我刚刚简单阅读了 http 和 https 之间的区别。我不明白的是以下可能的情况:
每个人都有 SSL 公钥对吧?
那么,任何人都可以从 Web 服务器获取公钥,然后使用它来解密从 Web 服务器发送的消息吗?这样,如果 Web 服务器发送任何秘密信息,入侵者就可以知道,对吗?
我理解私钥在 Web 服务器上,因此只有 Web 服务器才能解密浏览器发送的加密消息(使用公钥)。因此从浏览器发送的数据是安全的。但我怀疑从 Web 服务器接收的数据是否真的安全。
或者假设公钥在不同用户之间是不同的。但是当浏览器第一次发送公钥时,入侵者可以破解它,对吗?
如果我理解错误,请纠正我。
编辑:好的,我想我从提问者在此链接中提供的描述中明白了这一点:
它说:
当客户端通过 SSL 安全端口连接到 company.com 时,公司会发回其公钥(以及一些其他信息,如它支持的密码)。... 一旦客户端对服务器感到满意(如果需要,服务器对客户端也感到满意),客户端就会从服务器提供的加密方法列表中选择要使用的 SSL 密码,并生成与该密码一起使用的“对称密钥”(密码)。客户端使用服务器的公钥加密此密码并将其发送回服务器。服务器(且只有服务器)可以解密此消息并获取此密码,该密码现在由客户端和服务器共享。
这意味着客户端不会只使用自己拥有的公钥进行加密,而是使用自己生成的密码(对称密钥),该密码将使用公钥加密与 Web 服务器共享。只有 Web 服务器才能知道客户端共享的密码,因为只有他拥有私钥部分。因此,Web 服务器和客户端都使用对称密钥来加密消息,没有人知道或可以入侵。
我对吗?
答案1
我认为你的想法更好,但请这样想。加密往往使用公钥和私钥,两者都用于解锁,唯一已知的是公钥。私钥往往与 SSL 证书一起存储,因此没有人知道用于解密消息的密钥。这可以确保双向消息的安全,除非使用漏洞,否则不可能有人知道来回发送的内容。漏洞往往涉及恶意软件或伪造的 SSL 证书,但您可以通过谷歌搜索了解有关此类问题的更多信息。
我认为您还应该知道,加密并非万无一失,并且可能会被破解,具体取决于密钥的强度。一个很好的例子是联想几个月前参与的 SuperFish(我认为这是正确的名字),他们使用 SSL 证书来覆盖其他网站的证书。这只是意味着它使用他们的 SSL 证书来安全访问各种网站,但问题是私钥的密码很容易猜到。他们不必破解算法,因为该公司使用公司名称作为密码(komodia)。现在,任何使用这些 superfish 证书的计算机都不再安全,因为任何人都可以解密消息并查看来回发送的信息。唯一的障碍是获取流量的访问权限,但这是另一个话题。
这并不常见,但大多数网站都使用强密钥,可能需要数十到数百年才能破解(没有密码)。如果你想知道是什么让证书变得强大,也可以谷歌一下。这能解决其他困惑吗?
答案2
HTTPS 是 HTTP 的高级版本,它专为客户端和服务器之间的安全交易而创建。此连接适用于 SSL 或 TLS 通信协议,并且两种协议都使用Asymmetric
公钥基础设施系统。非对称系统使用两个密钥(公钥/私钥)来加密/解密数据。当客户端向任何服务器请求页面时,都会向客户端发送两个响应 - 即公钥和证书,每当再次在此通道上进行通信时,服务器都会使用私钥加密/解密数据,浏览器使用其公钥来加密/解密数据。
您有疑问,是否有可能破解这些密钥?
我认为这是可能的。
目前有很多算法可以加密和解密数据/密钥。例如采用以下算法SHA
它有许多版本,并且每天都在改进。有关更多信息,请SHA3
访问关联。因此,如果入侵者破解了公钥,但他们无法解密它,除非SHA key
使用解密的密钥。(我从谷歌上学到的)因为SHA-3
24使用密钥对数据进行多轮加密。我曾在某处读到过SHA-3比其他算法更强大。因此,如果任何入侵者手头有公钥,他们就无法直接解密其数据,他们需要另一个密钥来加密这些密钥(公钥/私钥)。数据由密钥加密,密钥也由另一个密钥加密,该密钥不在任何平台上共享,无论是客户端还是服务器。如果对这些密钥进行了任何更改,服务器和数据都会识别它。因为它会以某种方式生成哈希码,可以使用该哈希码来识别它。请参阅此方法沙作品,
迄今为止,HTTPS 是更安全的连接,并且每个需要安全交易的站点都仅在客户端和服务器之间使用 HTTPS 连接。
总之,如果密钥不受入侵者的保护,那么该算法可以识别数据的变化。这就是为什么安全连接是可能的。
希望这将帮助您了解该场景背后到底发生了什么。