Jon*_*han 5 security oauth password-protection
我正在实施用于API身份验证的两条腿OAuth协议的提供程序端.我们将向消费者提供消费者密钥和秘密,他们将使用这些密钥和密钥来签署请求.两条腿OAuth由互操作性标准决定,因此是一项要求.
秘密类似于密码,我通常不会将密码存储为纯文本(bCrypt或类似的将是我的正常选择).但是因为我的提供者需要访问纯文本秘密来验证签名,所以它必须是一些纯文本或可逆形式.
我考虑过以下选项:
这是最明显的解决方案,但如果数据库以某种方式受到损害,那么所有的秘密都必须改变.对我来说,这个解决方案并不理想,因为它具有以纯文本形式存储密码的所有问题.
这将提供一些安全性,因为如果数据库被泄露,那么秘密仍然是安全的.但是可逆加密需要加密密钥,密钥必须存储在服务器上.这意味着如果攻击者破坏了计算机,则可以规避加密.
有什么我没有想到的吗?
澄清有效地,它使用2腿Oauth作为单点登录系统.'consumer'创建一个请求,包括使用者密钥,nonce和其他几个参数.然后通过计算具有消费者秘密的HMAC-SHA1来签署整个请求.当请求到达我们的提供者系统时,重复该过程,如果签名匹配,则继续请求处理.因此,我们需要明文秘密来计算我们方面的HMAC-SHA1签名.不幸的是,这种机制是由我们需要遵守的行业标准协议决定的.
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |