为什么要通过 SSL 对 http 请求进行数字签名
Why to digitally sign an http request over SSL
我遇到了 this question 但不明白为什么有人需要对通过 SSL 提交的请求进行数字签名
- 数字签名旨在通过识别发件人并确保消息在客户端和服务器之间不被更改来保证消息的完整性
- SSL 旨在保护客户端和服务器之间的通信通道以防止嗅探和 MITM attack 从而保证消息不会被更改
上述方法中的一种不能替代另一种吗?
例如:
- 通过 SSL,我是否可以仅依靠身份验证 header 来识别发件人而不对请求进行数字签名,因为我保证 SSL 保护请求免受 MITM 的攻击?
或
- 我能否信任通过 HTTP 进行数字签名的消息,因为服务器会知道消息的来源并且可以识别它是否被更改过?
通过仅使用 SSL,您可以保证消息在传输过程中不被更改,这很好,但它没有说明发送方,基本上任何客户端都可以与服务器建立 ssl 连接并向其发送数据。
带有签名的服务器不仅能够验证数据未被篡改,而且能够验证该特定客户端生成的数据。
我遇到了 this question 但不明白为什么有人需要对通过 SSL 提交的请求进行数字签名
- 数字签名旨在通过识别发件人并确保消息在客户端和服务器之间不被更改来保证消息的完整性
- SSL 旨在保护客户端和服务器之间的通信通道以防止嗅探和 MITM attack 从而保证消息不会被更改
上述方法中的一种不能替代另一种吗?
例如:
- 通过 SSL,我是否可以仅依靠身份验证 header 来识别发件人而不对请求进行数字签名,因为我保证 SSL 保护请求免受 MITM 的攻击?
或
- 我能否信任通过 HTTP 进行数字签名的消息,因为服务器会知道消息的来源并且可以识别它是否被更改过?
通过仅使用 SSL,您可以保证消息在传输过程中不被更改,这很好,但它没有说明发送方,基本上任何客户端都可以与服务器建立 ssl 连接并向其发送数据。
带有签名的服务器不仅能够验证数据未被篡改,而且能够验证该特定客户端生成的数据。