并通过破坏主干路由器来解密他们的 SSL 流量
不,这是错误的(但它不会影响问题的其余部分)。根据该声明,NSA 入侵了属于目标的路由器(这并不重要)。更重要的是,入侵路由器并没有帮助 NSA 解密 SSL 流量:它所做的只是让 NSA 对加密和签名的流执行中间人攻击。如果 SSL 的所有方面都成立,那么该攻击就会被检测到,并且 NSA 将无法解密合法流量。
攻击的决定性部分是 NSA 可以为 Google 制作假证书。SSL证书大致包含以下部分:
- 证书属于谁的描述 (Google)
- 该实体的公钥
- 对证书担保人(CA)的描述
- 一些数学魔法,确保只有 CA 私钥的持有者才能创建该证书
NSA 似乎知道 CA 的私钥,因此他们可以创建一个包含不同公钥的证书,该公钥对应于 NSA 创建的私钥,而不是 Google 持有的私钥。
由于假证书与真证书不同,因此具有不同的指纹。(请注意,对于 MD5 指纹,情况可能并非如此:MD5 的抗碰撞性已被充分破坏,以允许创建两个具有相同指纹的证书——但不能制作与现有证书具有相同指纹的证书。但没有这样的漏洞以 SHA-1 闻名。)因此,如果您检测到证书的 SHA-1 指纹是错误的,那么您就知道您正在积极参与中间人。
这具有有限的实际重要性,因为您必须能够以某种方式可靠地检索该 SHA-1 值。您将在哪里找到可信赖的连接来检索这些指纹?
在多方之间传播验证
是抵抗少数 CA 的危害同时允许浏览迄今为止未知的站点的一种方法。