【问题标题】:Is providing a cryptographically secure token that only works for one request secure enough for a web service?提供仅适用于一个请求的加密安全令牌对于 Web 服务是否足够安全?
【发布时间】:2012-08-29 18:05:19
【问题描述】:
我正在创建一个处理敏感数据的 REST 服务。它将通过 SSL,所有双向的请求内容都将被额外加密。
对于授权,我打算这样做,以便客户端最初登录并获取令牌,然后他们必须在下一次请求时提供此令牌。他们所做的每个请求都会返回一个新令牌。每个令牌只能使用一次。
这是一个足够安全的授权方案吗?我研究过其他技术,例如亚马逊如何为 AWS 做这件事,但似乎请求签名增加了很多复杂性。
【问题讨论】:
标签:
web-services
security
rest
authorization
【解决方案1】:
SSL-without-additional-encryption 足够安全。您可以验证服务器是否提供了特定的证书,而不是“由受信任的 CA 签名的任何证书”,以抵抗 MITM 攻击。有时请求使用 HMAC 签名;秘密通过 SSL 传输,然后后续请求以未加密但签名的方式传输。 HMAC 请求签名并不复杂,但如果您通过 SSL 传输所有内容(不仅仅是初始密钥),那么就没有意义了。