/TLS证书是用于用户浏览器和网站服务器之间的数据传输加密,实现互联网传输安全保护,大多数情况下指的是服务器证书。服务器证书是用于向浏览器客户端验证服务器,这种是属于单向认证的。但是,如果服务器需要对客户端进行身份验证,该怎么办?这就需要双向认证证书。
为什么需要另一种认证方式的证书?因为当同时使用两种认证方式的证书时,有助于双方(即客户端和服务器端)之间的相互认证。另外,与标准不同的是,双向认证的实际上被称作为个人认证证书(PAC)。
在了解的两种认证方式之前,您必须先要了解如何创建HTTPS连接的。
之所以在上述过程中强调" 握手"一词,是因为在单向认证和双向认证流程中,只有使用的证书类型和握手过程本身不同,而所有其他步骤是一样的。
现在,在了解了基础知识后,我们再进一步探讨单向认证和双向认证的含义和工作过程。
在所有通信中,涉及两个端点,即浏览器和它所连接的网站(即客户端和服务器)。 在单向身份认证过程中,仅验证一个端点(服务器)的身份。 当您尝试打开网站时,您的浏览器会通过检查网站的来验证网站服务器的合法性。单向认证也称为服务器身份认证证书。
在整个握手流程中,仅仅单向验证了服务器的。因此,这个单向认证过程使客户端浏览器可以连接到正确的网站服务器,并且仅通过安全连接将所有数据传输到目标站点。
接下来,我们再了解双向认证的相关知识。
双向认证是指在握手过程中将同时验证客户端和服务器的身份,所以双向认证至少包括两个或两个以上的证书,一个是服务器证书,另一个或多个是客户端证书(即个人认证证书)。
双向认证握手过程与单向认证有所不同。大部分步骤与单向认证过程一样,但是,当客户端成功验证服务器后,会增加服务器验证客户端的流程步骤,具体如下图红色标注所示:
正如您所见,双向认证过程中,握手多了两个步骤,也就是多了服务器验证客户端身份的流程。
有了以上必备东西,当客户端验证服务器身份后,服务器才能验证客户端身份。双方都有自己独立的,而且这些证书必须是由受信任的第三方CA机构颁发的。
了解了单向认证和双向认证在握手过程中的不同后,新的问题出现了:为什么需要双向认证证书?网站使用双向认证将选择哪些客户端与其进行安全通信?
因为双向认证需要服务器和客户端提供身份认证,只能是服务器允许的客户方能访问,安全性相对于高一些。所以需要做双向认证的多数是企业,尤其是像金融行业等对安全性要求较高的企业。
比如,一个企业有自己的内部网站,该网站主要是用于员工查询信息和官方事务交流的。他们不希望任何人都可以这样自由访问内部网站。这种情况下,就可以选择使用双向认证的验证客户端身份,然后再让他们访问网站。如此一来,企业可避免网络犯罪分子和僵尸程序进入该内部网站,降低不安全性风险。
总的来说,一般Web应用都是采用单向认证的,用户数自由无限制,且无需在通讯层对用户身份进行验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,数据信息相对较多且复杂,可能会要求对客户端做身份验证,这时就需要做双向认证,这也是保护公司内部数据信息的最好的方法。