【发布时间】:2011-01-07 18:08:35
【问题描述】:
我的问题是关于 ssl 中的证书,但我认为这些问题应该适用于所有证书。为了清楚起见,我已经包含了 SSL 过程。
在 SSL 中,我理解的程序是:
1)客户
- 发送支持的加密算法
- 发送客户端随机数
- 服务器
- 选择(并发送)一个
- 对称算法
- 一种公钥算法
- MAC 算法
- 发送它的证书
- 发送服务器随机数
- 客户
- 验证证书
- 提取公钥
- 生成预主密钥 (pms)
- 使用服务器公钥加密并发送
- 客户端和服务器
- 从 PMS 和 nonces 计算主分泌 (MS)
- PMS 切片以生成两个加密和两个 mac 密钥
- 客户
- 发送所有握手的 mac(以确保它们之前没有被修改)
- 服务器
- 发送所有握手的 mac
问题
是什么阻止了中间人在第二步发生攻击?为什么中间的人,比如 trudy,不能捕获服务器发送的证书并更改其中的公钥(更改为它拥有私钥的东西)。
我假设证书以某种方式加密。
但是服务器无法加密证书,因为客户端还没有公钥。当服务器从权威机构(如 veri-sign)获取密钥时,是否会使用 verisign 的公钥对密钥进行预加密?我认为这应该可行,因为所有网络浏览器都应该拥有大多数权威机构的公钥。
【问题讨论】:
-
深入描述 ssl(或 TLS)如何为任何感兴趣的人工作:moserware.com/2009/06/first-few-milliseconds-of-https.html
标签: security networking ssl certificate