安全的集中式HMAC身份验证服务

时间:2012-12-09 10:59:34

标签: web-services http authentication web https

我需要将身份验证集中到我的其他Web服务,并使所有Web服务的身份验证都相同。所以我开始编写外部Web服务来处理身份验证。

为了保持兼容性,因为身份验证是使用HMAC签名(使用私钥签名)和单个请求一起执行的(因此没有任何类型的令牌)我想让所有Web服务发送包含在内的HMAC传入请求和StringToSign(用于生成HMAC的数据表示)。

因此授权服务可以(知道私钥)尝试编写相同的签名,如果匹配,则回复200 OK并使用JSON对象说“授权”。

所有这些通信都通过HTTPS进行,但我想弄清楚如果有人拦截或修改此答案会导致403 Forbidden成为200 OK ......

我应该用某种方式来识别这是原始答案吗?如果是这样,我该怎么办?

我同意CA发布的ssl证书是安全的,但是如何确保我的HTTPS层没有受到攻击,允许攻击者修改授权响应?

P.S。请提供一些标准的解决方案,如果有的话,我不希望它与我现在使用的技术有关,因为每个服务可能使用自己的堆栈,我真的不希望它是.NET或其他东西因为有一个专有的身份验证机制实现。

1 个答案:

答案 0 :(得分:1)

  

所有这些通信都是通过HTTPS进行的,但我正在努力解决这个问题   如果有人会拦截或修改这个答案会发生什么呢?

这就是HTTPS中 S 的用途:SSL保证邮件的integrity。如果攻击者伪造了请求,客户端会注意到它。

您可以在#security询问专家。