由于证书需要通过操作系统证书进行检查,或者在 Firefox 的情况下需要通过浏览器证书进行检查,因此我很难理解为什么 Web 服务器证书也包含公钥。
公钥是否也不在操作系统证书中?
在我看来,这听起来就像是说:
“嗨,我是大卫,在此我确认,我就是大卫。”
我在这里理解错了什么?
答案1
公钥加密依赖于所谓的非对称密码。这意味着用一个密钥(例如公钥)加密的东西,不能用同一个密钥解密。
这意味着你最终会得到一个由两部分组成的密钥:一个你分发给每个人的公钥,以及一个你自己保留的私钥。
通过提供公钥,您可以确保只有持有正确密钥的人才能解密数据。
您可以使用证书签名链检查公钥所有者,该证书签名链实际上是一个公司或人员列表,他们向您保证可以解密您的数据的人就是您希望能够解密数据的人。
然后,您向该人发送您自己的密钥(或密码等),使用他们的公钥进行加密,然后他们使用他们的密钥进行解密。由于您使用了他们的公钥,并且他们能够解密,因此您基本上已经验证了该网站是他们声称的网站,您可以“信任”与他们建立连接。如果他们无法使用公钥解密,则他们不是您要访问的网站。
正如您所说,该网站有一个元素,说明“嗨,我是 David,我在此确认,我是 David。”因为当您要向该网站发送一些非常私人的详细信息(例如您的登录用户名和密码)时,这就是您需要和想要的。您需要知道仅有的发送数据的地方可以解密您发送的数据。