SSL:如何保护证书免受中间人攻击?
Posted
技术标签:
【中文标题】SSL:如何保护证书免受中间人攻击?【英文标题】:SSL: How are certificates protected against man in the middle attacks? 【发布时间】:2011-01-07 18:08:35 【问题描述】:我的问题是关于 ssl 中的证书,但我认为这些问题应该适用于所有证书。为了清楚起见,我已经包含了 SSL 过程。
在 SSL 中,我理解的程序是:
1)客户
发送支持的加密算法 发送客户端随机数-
服务器
-
客户
-
客户端和服务器
-
客户
-
服务器
问题
是什么阻止了中间人在第二步发生攻击?为什么中间的人,比如 trudy,不能捕获服务器发送的证书并更改其中的公钥(更改为它拥有私钥的东西)。
我假设证书以某种方式加密。
但是服务器无法加密证书,因为客户端还没有公钥。当服务器从权威机构(如 veri-sign)获取密钥时,是否会使用 verisign 的公钥对密钥进行预加密?我认为这应该可行,因为所有网络浏览器都应该拥有大多数权威机构的公钥。
【问题讨论】:
深入描述 ssl(或 TLS)如何为任何感兴趣的人工作:moserware.com/2009/06/first-few-milliseconds-of-https.html 【参考方案1】:证书由一些受信任的权威机构签署,例如Verisign。
这些根权限的证书在您下载它们时直接内置在浏览器中。您可以在 Firefox 中查看根证书,例如,通过转到工具-->选项-->高级-->加密-->查看证书-->权限。
但是,如果这些根证书颁发机构中的任何一个遭到破坏,那么您是正确的,证书可能会被伪造,从而导致中间人攻击成为可能。
【讨论】:
只是为了详细说明这个过程:如果你想要一个由 Verisign 签署的证书,你必须向他们证明你有相关的私钥(通过为他们签名),并且你拥有相关域名。通常,这仅涉及回复该域的电子邮件,但对于 EV 证书 (en.wikipedia.org/wiki/Extended_Validation_Certificate),涉及更多(要求您亲自前往他们的大楼并提供多种形式的身份证明) ...这就是为什么 CACert 的日子不好过的原因。 没有。 MITM 仍然必须提供有效的CertificateVerify
消息。他只有拥有证书公钥的私钥才能做到这一点,这部分与CA无关。【参考方案2】:
不,证书未加密。但它是由证书颁发机构 (CA) 签署的。由于它们会检查证书中包含的信息(尤其是证书所属的 URL),因此给定 URL 不应该有第二个有效证书。
根据信任库(例如在您的浏览器中)检查 CA 的证书。如果此信任库遭到破坏,或者您信任无效证书,则无法防止中间人攻击
【讨论】:
那么是什么阻止 Tudy(中间人)更改证书中的信息但留下相同的签名?签名是否是证书中信息的哈希值?签名如何保证证书的安全? @sixtyfootersdude 你完全正确。证书基本上是一些内容(某人的公钥,它所属的 url ...)+ 用 CA 的私钥加密的内容的哈希。所以每个人都可以解密散列并将其与实际散列进行比较。但是更改内容的人无法重新创建加密哈希。 对证书进行哈希处理。然后使用 CA 的私钥对该散列进行加密。为了验证,验证者计算相同的哈希值,并使用 CA 的公钥解密签名并比较两个哈希值。 @sixtyfooter:是的,就是这样。签名通常是散列(或散列的散列),然后使用授权的 private 密钥进行加密。然后,任何人都可以使用权威的公钥密钥对其进行解密并验证哈希值,但没有人可以在不知道私钥的情况下伪造它。【参考方案3】:您实际上指出了 PKI 的一个弱点。
假设 Trudy 在您和 yourbank (bank.com) 中间。 Trudy 可以在第 2 步随意更改公钥,但证书的签名将无效。所以 Trudy 必须想办法重新生成签名。可以肯定地说,受信任的 CA 不会为他这样做。因此,他必须使用您的浏览器不信任的假 CA 进行签名。这在理论上仍然是安全的。
但是,根据一些测试,大多数浏览器(尤其是 IE 6)会显示模糊的安全警告,大多数人不理解并忽略。
【讨论】:
呵呵,看来是个有趣的骗局。我敢打赌,人们不会注意那些含糊的(和技术性的)警告。但我怀疑对于银行业和类似的事情,人们会更加小心。我想知道是否有可能有更清晰的警告.. 经验表明,唯一的解决方案是禁止连接。无论警告多么清晰,用户都会点击通过。我记得一个有趣的例子,一个消息框弹出,标题为“病毒警告”,框的内容是“这是一个病毒,你想继续吗”,有两个框,每个框都说“是”。 >"可以肯定地说,受信任的 CA 不会为他这样做。"呃没有。有数百个受信任的 CA,您只需要让其中任何一个颁发假证书,您就可以进行静默 MITM。一些 CA 因广泛滥用而被撤销,我们可以假设 NSA 自 200X 年末以来一直在这样做,并且其他犯罪组织购买或签发假证书没有问题。要在 facebook、google 和其他网站上实时看到这种情况,请安装 Firefox Certificate Patrol 扩展。 没有。 MITM 仍然必须提供有效的CertificateVerify
消息。他只有拥有证书公钥的私钥才能做到这一点,这部分与CA无关。以上是关于SSL:如何保护证书免受中间人攻击?的主要内容,如果未能解决你的问题,请参考以下文章