【发布时间】:2012-04-08 10:08:38
【问题描述】:
我已经实现了一个 web 服务身份验证,它的工作原理与 amazon s3 几乎相同。
身份验证是无会话的。它的工作原理是这样的:
- 在每个请求中发送一个
DateHTTP Header - 发送一个 HMAC_SHA1 的 secretKey+date-header+some-parts-of-the-body 的内容(伪代码:
hmac_sha1(secretKey+dateHeader+substr(body,0,100))) - 后端也知道 secretKey(20 个字符的随机密钥)。
- 后端通过同样的 HMAC_SHA1 来检查请求,如果值相等,则请求被“证明”并且将被执行。
所以。我认为这几乎是亚马逊所做的。
但是不做对称 (HMAC_SHA1) 而是对“请求的部分”进行非对称加密 (RSA) 的想法怎么样?
我想避免在我的后端使用 secretKey。最好只将公钥放在后端。
- 您认为这是个好主意吗?
- 它会让系统“更强大”吗?
- 使用 RSA 加密的最佳最大大小是多少? 1000 字节?
谢谢
【问题讨论】: