rcr*_*ick 188 security algorithm ssl certificate
安全验证ssl证书所需的一系列步骤是什么?我(非常有限)的理解是,当您访问https站点时,服务器将证书发送到客户端(浏览器),浏览器从该证书获取证书的颁发者信息,然后使用它来联系发布者,并以某种方式比较有效性证书.
Eli*_*ght 268
这是一个非常简化的解释:
您的Web浏览器下载Web服务器的证书,该证书包含Web服务器的公钥.此证书使用受信任的证书颁发机构的私钥进行签名.
您的Web浏览器安装了所有主要证书颁发机构的公钥.它使用此公钥来验证Web服务器的证书是否确实由受信任的证书颁发机构签名.
证书包含Web服务器的域名和/或IP地址.您的Web浏览器向证书颁发机构确认证书中列出的地址是具有打开连接的地址.
您的Web浏览器生成共享对称密钥,该密钥将用于加密此连接上的HTTP流量; 这比使用公钥/私钥加密更有效.您的浏览器使用Web服务器的公钥加密对称密钥,然后将其发回,从而确保只有Web服务器可以解密它,因为只有Web服务器具有其私钥.
请注意,证书颁发机构(CA)对于防止中间人攻击至关重要.但是,即使是未签名的证书也会阻止某人被动地收听您的加密流量,因为他们无法访问您的共享对称密钥.
Cli*_*ris 51
值得注意的是,除了购买证书(如上所述)之外,您还可以免费创建自己的证书; 这被称为"自签名证书".自签名证书与购买证书之间的区别很简单:购买的证书已经由您的浏览器已经知道的证书颁发机构签名.换句话说,您的浏览器可以轻松验证购买的证书的真实性.
不幸的是,这导致了一种常见的误解,即自签名证书本身就不如GoDaddy和Verisign等商业CA销售的证书,如果你使用它们,你必须忍受浏览器警告/例外; 这是不正确的.
如果您安全地分发自签名证书(或CA证书,如bobince建议的那样)并将其安装在将使用您的站点的浏览器中,它就像购买的那个一样安全,并且不容易受到中间人的攻击攻击和证书伪造.显然,这意味着只有少数人需要安全访问您的网站(例如,内部应用程序,个人博客等)才有可能.
为了提高认识并鼓励像我这样的小型博主自我保护自己,我写了一个入门级教程,更详细地解释了证书背后的概念以及如何安全地创建和使用自签名证书(包括代码示例和屏幕截图).
ych*_*che 28
你之前这么说
浏览器从该证书中获取证书的颁发者信息,然后使用该信息与发布者联系,并以某种方式比较证书的有效性.
客户不必与发行人核实,因为有两件事:
请注意,如果没有1,则无法完成.
在我前一段时间制作的这个大图中可以更好地解释这一点
(跳到底部的"签名是什么?")
Fra*_*hes 11
首先,任何人都可以创建 2 个密钥。一个用于加密数据,另一个用于解密数据。前者可以是私钥,后者可以是公钥,还有 VIcerza。
其次,简单来说,证书颁发机构 (CA) 提供为您创建证书的服务。如何?他们使用某些值(CA 的颁发者名称、您服务器的公钥、公司名称、域等),并使用他们的 SUPER DUPER ULTRA SECURE SECRET 私钥并加密这些数据。这个加密数据的结果是一个签名。
所以现在 CA 会给你一个证书。证书基本上是一个包含前面提到的值(CA 的颁发者名称、公司名称、域、您服务器的公钥等)的文件,包括签名(即后者值的加密版本)。
现在,说了这么多,这里有一个非常重要的部分要记住:您的设备/操作系统(Windows、Android 等)几乎保留了所有主要/受信任 CA 及其公钥的列表(如果您正在考虑这些公钥用于解密证书内的签名,您是正确的!)。
好的,如果你阅读了上面的内容,这个顺序示例现在将变得轻而易举:
为什么?想一想,只有这个公钥才能解密签名,让内容看起来就像私钥加密之前一样。
这是创建上述标准的主要原因之一(如果不是主要原因)。
假设黑客简拦截了互联网用户鲍勃的请求,并用她自己的证书回复。然而,hacker-Jane 仍然足够小心地在证书中声明颁发者是 Example-CA。最后,hacker-Jane 记得她必须在证书上包含签名。但是 Jane 使用什么密钥来签署(即创建证书主要内容的加密值)证书????
因此,即使hacker-Jane 用她自己的密钥签署了证书,您也会看到接下来会发生什么。浏览器会说:“好的,这个证书是由 Example-CA 颁发的,让我们用 Example-CA 的公钥解密签名”。解密后,浏览器发现证书内容根本不匹配。因此,浏览器会向用户发出非常明确的警告,并表示不信任该连接。
客户端有预先存储的SSL证书颁发机构的公钥.服务器的证书必须有一条信任链,通过中间权限直到一个所谓的"根"证书,以便服务器受信任.
您可以检查和/或更改受信任的权限列表.通常,您这样做是为您信任的地方当局添加证书 - 例如您所在的公司或您就读的学校或不参加的学校.
预播种列表可能因您使用的客户端而异.大型SSL证书供应商确保他们的根证书在所有主要浏览器中($$$).
除非攻击者拥有受信任的根证书的私钥,否则"中间人"攻击是"不可能的".由于相应的证书被广泛部署,因此这种私钥的暴露将对电子商务的安全性产生严重影响.因此,这些私钥受到非常严密的保护.