仅通过收听网络上 PC 的网络活动就可以解密 SSL,这不是真的吗?(例如,从第一次随机 PC 连接到咖啡店,并一直收听,直到用户停止浏览并且您不再关心进一步的数据)不是所有的密钥和算法都已发布,以便它可以没有任何暴力破解?
(这是一个是或否的问题,但引用一个来源会很适合进一步阅读)
仅通过收听网络上 PC 的网络活动就可以解密 SSL,这不是真的吗?(例如,从第一次随机 PC 连接到咖啡店,并一直收听,直到用户停止浏览并且您不再关心进一步的数据)不是所有的密钥和算法都已发布,以便它可以没有任何暴力破解?
(这是一个是或否的问题,但引用一个来源会很适合进一步阅读)
您的问题的简短回答是,在一般情况下*,不。
更长的答案是,这不可能的原因很大程度上与在建立 SSL 会话时使用公私钥密码术有关,这意味着会话密钥在任何时候都不会通过网络以明文形式传输会议期间。
*有多种情况可能导致某人能够解密 SSL 加密通信,但它们不太可能适用于一般咖啡店场景。
您可以创建一个公共共享密钥,而无需通过网络传输它。阅读维基百科或其他来源中的 RSA 和 Diffie-Hellman 密钥交换,了解其工作原理。你甚至可以自己做一个简单的测试计算(但它只对非常大的数字和一些小的修改是安全的)。
一旦你理解了这一点,你可能想看看(同样简单的)针对这些算法的中间人攻击(可能也在维基百科上)。为了防止这些,您需要相互验证,例如,通过签署 DH/RSA 公钥并让对等方验证签名。
这种身份验证反过来需要“签名颁发者”(认证机构)的一些常识,但该信息不需要保密。因此,每个浏览器都简单地附带了这个最终成分(“根证书”),并且有大量的过程来创建和接受它。
因此,只要您信任浏览器供应商在您的浏览器中放入根证书的这些权威机构,以发布正确的身份验证信息(证书),您就能够创建加密+身份验证的连接。(如果你不知道你连接到哪里,加密几乎没用!)
SSL不能用你说的方法解密。
但是,您描述的内容类似于对 WEP 等无线网络密钥的攻击。
服务器的私钥永远不会被传输。这意味着客户端可以发送使用服务器公钥加密的信息,并且只有服务器可以解密它。此信息将产生一个只有客户端和服务器知道的会话密钥,并将用于加密流量。
注意:这是一个非常简化的摘要。还有很多“魔术”可以确保您使用正确服务器的公钥并且无法重播流量。
维基百科有一篇很好的文章能够公钥/私钥密码学