我遇到了this question 并且无法理解为什么有人需要对通过 SSL 提交的请求进行数字签名
- 数字签名旨在通过识别发送者并确保消息在客户端和服务器之间不会被更改来保证消息完整性
- SSL 旨在保护客户端和服务器之间的通信 channel ,以防止嗅探和 MITM attack从而保证消息不能被更改
上述方法中的一种不能替代另一种吗?
例如:
- 通过 SSL,我是否可以仅依靠身份验证 header 来识别发件人,而无需对请求进行数字签名,因为我可以保证 SSL 保护请求免受 MITM 的攻击?
或者
- 我可以信任通过 http 进行数字签名的消息吗?因为服务器会知道消息的来源并可以识别消息是否被更改?
最佳答案
通过仅使用 SSL,您可以保证消息在传输过程中不会被更改,这很好,但它没有说明发送者,基本上任何客户端都可以与服务器建立 ssl 连接并向其发送数据。
通过签名,服务器不仅能够验证数据是否未经篡改,还能够验证该特定客户端是否生成了数据。
关于security - 为什么要通过 SSL 对 http 请求进行数字签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58415172/