最近,我偶然发现了对PKI行动过程的基本了解。我看过关于这些原则的主要文章,但我仍然对理解这个过程感到愚蠢。我知道PKI不适用于“我的博客”,但为了简单起见,我们来看看简单的例子“我的电子商店”(例如apache和php)和简单的概念。我写了一些可能含糊不清甚至错误的陈述,但这就是我想知道的PKI过程:
“我的电子商店”作为一家公司需要在某些第三方CA“获得认证”。这意味着我需要在该CA购买某种1年的会员资格,然后,他们将在他们的系统中注册“我的电子商店”并向我发送一些证书和一对独特的公钥和私钥等内容。我会得到一些证书文件吗?
发布的证书中填写了我的信息和公钥,并存储在我的网络服务器的某个文件中。证书证明“我的电子商店”不是盗贼局。
每当用户通过“https”访问“我的电子商店”时,他们的浏览器“默默地”检查所提供的“我的电子商店”证书与在CA注册的证书。
当某个用户通过https输入“我的电子商店”时,会发生以下情况:“我的电子商店”(网络服务器)获取用户的公钥(PK1)。服务器默默地向用户呈现“我的电子商店”证书,因此用户获得“我的电子商店”的公钥(PK2)。在一些静默检查之后,用户的浏览器验证所呈现的certiticate并建立安全管道。
当用户通过安全管道发送请求时,请求使用“我的电子商店”的公钥加密。然后,Web服务器使用其私钥解密请求。然后,Web服务器使用用户的公钥发送加密响应。最后,用户的浏览器用他的私钥解密响应。
答案 0 :(得分:3)
答案 1 :(得分:1)
您在几个不同级别上的步骤不正确。让我以明确的方式重述它们。
您的网站需要拥有来自受信任第三方CA(Verisign等)的SSL证书。您需要从他们那里购买。您将生成公钥/私钥对,向他们提供您的公钥(它是证书请求的一部分),他们将生成证书。
证书包含您网站的域名,公钥和其他一些其他信息。它没有验证任何东西,尤其不是你的网站不是“盗贼局”。它通常证明您拥有您要为其申请证书的域名。这并不意味着您的网站无论如何都值得信赖。
当用户通过HTTPS访问您的网站时,您的服务器会将证书发送到客户端的浏览器。客户端在任何时候都不会与CA通信以验证您的证书。
3.1。通常,最终用户(客户端,客户)不需要自己的证书和私钥。这称为相互身份验证的SSL,涉及拥有证书的双方(您的客户和您的网站)。这在电子商务网站中很少使用(如果有的话)。
当用户通过HTTPS访问您的站点时,您的服务器会将证书发送到客户端浏览器。客户端将使用它来执行SSL握手。浏览器和您的站点之间的握手是建立安全隧道的原因。握手协议的细节比您需要的更具技术性。
当通过SSL隧道向服务器发送请求时,服务器将以与其他任何请求相同的方式处理它。唯一的区别是客户和服务器之间的通信是加密的。您的网络服务器可能会处理来自请求的数据解密,并将其呈现给您的网络服务器进行处理。同样,响应数据通过SSL隧道以加密形式返回给客户端。
更好?
答案 2 :(得分:0)
关于第3点:
据我所知,这并不完全正确。由于实际上没有一种已建立的实时测试基础设施(与DNS等服务相比),因此Web服务器会将完整的证书链发送到浏览器。 另一方面,浏览器或操作系统随附一组受信任的根证书(有时需要更新,Windows更新,新浏览器版本等)
是的,浏览器应该生成一个“不受信任的”密钥对,因为在正常情况下,标准用户不会生成自己的证书。
关于第5点:
这也不完全是事实。计算异步加密需要大量时间。因此,RSA算法仅用于交换密钥以实现更快的同步加密标准(即AES,3TES)。