【问题标题】:webservice sessionless-authentication like amazon s3 more strong with rsa?webservice sessionless-authentication like amazon s3 is more strong with rsa?
【发布时间】:2012-04-08 10:08:38
【问题描述】:

我已经实现了一个 web 服务身份验证,它的工作原理与 amazon s3 几乎相同。

身份验证是无会话的。它的工作原理是这样的:

  • 在每个请求中发送一个Date HTTP 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 字节?

谢谢

【问题讨论】:

    标签: security openssl rsa


    【解决方案1】:

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

    如果您担心安全问题:

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

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

    【讨论】:

    • 谢谢。但为什么我需要服务器端的私钥?服务器只创建头部和部分正文的加密内容,然后将其与客户端发送的请求的加密内容进行比较。所以。服务器端只需要加密。没有?
    • @JonasSchnelli 客户端使用公钥加密,解密然后需要私钥...如果您从不解密任何内容,那么您就不需要私钥...但是您并没有更好比现在关闭 - 你仍然有一个共享的秘密(客户端和服务器知道公钥)......
    • @JonasSchnelli 另一点:对称/非对称密钥的安全性/强度不同 - 例如:根据NIST 第 63 页,3072 位 RSA 类似于 AES128。
    猜你喜欢
    • 1970-01-01
    • 2023-01-02
    • 2012-05-06
    • 1970-01-01
    • 2022-12-02
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多