SSL证书实现双向认证的方法
什么是双向SSL证书?
SSL/TLS证书用于保护用户浏览器和网站服务器之间的数据传输。当大多数人谈到这些证书时,一般指的是服务器证书,它用于对服务器进行客户机身份验证。但是,如果需要执行客户机身份验证,即希望对浏览器进行客户机身份验证,该怎么办?这就是双向SSL证书(或“双向SSL”)派上用场的地方。
为什么我需要使用双向SSL证书?因为当使用这两种类型的证书时,它促进了双方之间的相互身份验证。双向SSL证书与标准SSL证书不同,双向SSL证书实际上称为个人身份验证证书(PAC)。
在了解了双向SSL证书之后,接下来我们进一步探索单向SSL和双向SSL身份验证过程的含义、工作原理和用法。
单向SSL身份验证如何与传统的SSL/TLS证书一起工作?
在所有的通信中,都涉及到两个端点,浏览器和它所连接的网站。客户端和服务器。在单向SSL身份验证中,只有一个端点(服务器)的身份得到验证。当您试图打开一个网站时,您的浏览器通过检查网站的SSL证书来验证网站服务器的合法性。单向SSL证书也称为服务器身份验证证书。
单向SSL身份验证中SSL握手过程是如何发生的?
1.当用户试图在他们的web浏览器上连接到一个网站时,浏览器会尝试建立一个到该网站服务器的HTTPS连接。它在ClientHello进程中将受支持的密码套件发送到服务器。
2.服务器通过发送它的公共证书(即SSL/TLS证书)发送给浏览器。
3.浏览器检查该证书是否是合法的(例如:支持最新的算法,配置正确等)
4.浏览器从预安装的根存储库中检查CA签名的有效性。
5.如果一切正常,SSL握手过程将完成,浏览器将生成会话密钥。
如上所述,在整个SSL握手过程中,只验证服务器的SSL证书。基本上,这个过程使浏览器能够确保它连接到正确的网站服务器,并且所有的数据只能通过安全连接路由到指定的网站。
双向SSL证书与单向SSL有何不同?
在SSL的两种方式中,在SSL握手过程中对客户机和服务器的身份进行验证。这就是它们被称为相互身份验证SSL证书的原因。现在,让我们探讨SSL握手过程的两种不同方式:
1.当用户试图在他们的web浏览器上连接一个网站时,浏览器会尝试建立一个到该网站服务器的HTTPS连接。它在ClientHello进程中将受支持的密码套件发送到服务器。
2.服务器通过发送它的公共证书来响应,将SSL/TLS证书发送给浏览器。
3.浏览器检查证书是否合法,未过期或撤销,支持最新算法,配置正确等。
4.在此之后,浏览器将从预安装的根存储库中检查证书颁发机构签名的有效性。
5.一旦成功地验证了服务器,客户机(浏览器)本身就会向服务器发送它的公共证书。
6.服务器验证浏览器证书的有效性和CA的签名。
7.如果一切正常,SSL握手过程将完成,浏览器将生成会话密钥。
可以看到,在双向SSL证书中,在SSL握手过程中还涉及两个额外的步骤。
一旦客户机验证了服务器的身份,服务器也有机会验证客户机的身份。在这里,双方都有自己的单独的SSL证书,这些证书必须由公开信任的证书颁发机构签名。
现在我们已经了解了单向SSL和双向SSL之间的SSL握手过程有何不同,那么下一个问题就出现了,为什么需要双向证书?网站使用双向证书来选择哪些客户可以安全地与之交互。
例如,一个组织的内部网网站通常是为其员工访问信息和就官方事务进行交流而存在的。该组织不希望任何人访问这样的内部网站,并希望限制受众。此外,员工应该通过他们的官方设备访问该网站,以进一步降低非主动访问的风险。
在这种情况下,组织可以在允许客户访问网站之前使用双向SSL证书对客户进行身份验证,公司还可以用它来清除进入他们网站的网络罪犯和机器人。
结论:
双向SSL证书一般用于组织内部的沟通。例如,当您在所有员工的设备上都有一个S/MIME或个人身份验证证书时,没有人可以拦截和读取两个端点之间的通信。就SSL证书而言,一些组织使用它来阻止来自特定地理位置的特定用户或网站访问者。无论哪种方式,双向SSL或任何其他双向证书(如S/MIME)都为您的内部和外部通信提供了健壮的安全性。