security - 为什么要通过 SSL 对 http 请求进行数字签名

标签 security ssl https digital-signature

我遇到了this question 并且无法理解为什么有人需要对通过 SSL 提交的请求进行数字签名

  1. 数字签名旨在通过识别发送者并确保消息在客户端和服务器之间不会被更改来保证消息完整性
  2. SSL 旨在保护客户端和服务器之间的通信 channel ,以防止嗅探和 MITM attack从而保证消息不能被更改

上述方法中的一种不能替代另一种吗?

例如:

  • 通过 SSL,我是否可以仅依靠身份验证 header 来识别发件人,而无需对请求进行数字签名,因为我可以保证 SSL 保护请求免受 MITM 的攻击?

或者

  • 我可以信任通过 http 进行数字签名的消息吗?因为服务器会知道消息的来源并可以识别消息是否被更改?

最佳答案

通过仅使用 SSL,您可以保证消息在传输过程中不会被更改,这很好,但它没有说明发送者,基本上任何客户端都可以与服务器建立 ssl 连接并向其发送数据。

通过签名,服务器不仅能够验证数据是否未经篡改,还能够验证该特定客户端是否生成了数据。

关于security - 为什么要通过 SSL 对 http 请求进行数字签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58415172/

相关文章:

node.js - 如何将 HTTP 流转换为 HTTPS?

php - 使用 openid 替换 mysql 用户验证

security - 安全存储 API key : environment versus JSON

ubuntu - HAproxy REQ_SSL_SNI 和 SSL 终止

java - 使用证书身份验证将 Grails 配置为 POST

google-chrome - 编写 SSL 客户端和服务器 key

javascript - 在 Meteor Js 中加密 Mongodb 数据

java - 使用 Spring Security 在同一个应用程序中的两个领域?

ssl - 获取 SSL 连接以使用 STUNNEL/Win32

ubuntu - 使用 https 连接重定向非 www http 请求 www 域