0

我已经实现了一个 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 字节?

谢谢

4

1 回答 1

1

使用 RSA 执行此操作,您将在客户端拥有公钥,在服务器端(也称为后端)拥有私钥。你总是会在某个地方得到一些秘密密钥......

如果您担心安全性:

  • 列出所有潜在的风险情景(技术和其他)
  • 检查每种情况的可能性有多大
  • 如果该特定情况成为现实,请检查“成本”是多少
  • 审核您当前的安全基础设施

然后继续处理最有问题的点(即最高“成本”和/或“最高”概率)。

于 2012-04-08T12:17:49.227 回答