openssl - TLS/SSL 中的消息完整性

标签 openssl security ssl

我正在阅读有关 TLS/SSL 协议(protocol)的内容。有两个要点阻止我继续前进。

1) 在 TLS/SSL 中维护消息完整性的需要是什么。如果服务器始终经过身份验证并且在客户端和服务器之间建立了专用 channel (从而排除了中间人攻击),那么有人如何修改传输中的消息?

2)即使需要维护完整性校验,又会用到哪个hash函数?客户端和服务器之间的契约(Contract)何时建立?

任何相关的阅读链接都会有很大帮助。谢谢!

最佳答案

  1. 因为您不能保证在所有情况下都有私有(private) channel - 例如有人可以通过互联网控制两台主机之间的众多路由点之一,并执行 MitM 攻击。

  2. 散列函数是在握手时决定的。它通常是一个相对强大的散列函数的 HMAC 版本,例如SHA2 系列或 Whirlpool。

TLS protocol handshake on Wikipedia 的描述非常详细,应该可以帮助您了解如何选择密码、哈希函数和其他参数。

关于openssl - TLS/SSL 中的消息完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8377505/

相关文章:

android - 如何在 flutter 中为 facebook 生成 key 哈希

linux - 带有 fPIC 编译器标志的 CrossCompile openssl 不起作用(找不到 e_os.h)

bash - 暴力破解 16 个字符的 key 需要多长时间

node.js - nodejs 没有连接到任何其他端口

python - Pip 安装失败,出现 “connection error"ssl 问题

ssl - GCP OV 和 EV ssl 证书

ruby - 如何使用 Ruby 加密文件?

openssl - 与我的xgf相比,OpenSSL 1.0.1e CipherSuites和TLS1.2混合信号更多

Linux:在没有副本的情况下更改文件所有权?

javascript - 将所有域添加到 CORS 的安全隐患(访问控制允许来源 : *)