SSL/TLS证书是用于用户浏览器和网站服务器之间的数据传输加密,实现互联网传输安全保护,大多数情况下指的是服务器证书。服务器证书是用于向浏览器客户端验证服务器,这种是属于单向认证的SSL证书。但是,如果服务器需要对客户端进行身份验证,该怎么办?这就需要双向认证证书。

为什么需要另一种认证方式的证书?因为当同时使用两种认证方式的证书时,有助于双方(即客户端和服务器端)之间的相互认证。另外,与标准SSL证书不同的是,双向认证的SSL证书实际上被称作为个人认证证书(PAC)

在了解SSL证书的两种认证方式之前,您必须先要了解如何创建HTTPS连接的。

SSL身份验证的工作原理

  • 网站所有者为其网站域名购买SSL证书,CA遵循国际行业验证标准对申请人身份和域名所有权进行验证。验证成功后,CA为该域名颁发SSL证书。
  • 网站所有者将CA机构颁发的SSL证书公钥和私钥都安装到网站服务器上。
  • 当客户端浏览器提交HTTPS请求,将进行SSL握手
  • SSL握手结束后,浏览器将生成会话密钥,并使用服务器SSL / TLS证书中的公钥对会话密钥进行加密。
  • 会话密钥发送到服务器后,服务器使用相应的私钥对会话密钥解密。
  • 客户端浏览器与服务器双方利用这个会话密钥加密解密传输过程的所有数据。

之所以在上述过程中强调“ SSL握手”一词,是因为在单向认证和双向认证流程中,只有使用的证书类型和SSL握手过程本身不同,而所有其他步骤是一样的。

现在,在了解了SSL基础知识后,我们再进一步探讨单向认证SSL和双向认证的含义和工作过程。

如何使用常规的SSL证书进行单向认证?

什么是单向认证SSL证书?

在所有通信中,涉及两个端点,即浏览器和它所连接的网站(即客户端和服务器)。 在单向SSL身份认证过程中,仅验证一个端点(服务器)的身份。 当您尝试打开网站时,您的浏览器会通过检查网站的SSL证书来验证网站服务器的合法性。单向认证SSL证书也称为服务器身份认证证书。

SSL单向认证流程

在整个SSL握手流程中,仅仅单向验证了服务器的SSL证书。因此,这个单向认证过程使客户端浏览器可以连接到正确的网站服务器,并且仅通过安全连接将所有数据传输到目标站点。

接下来,我们再了解双向认证的相关知识。

如何使用个人认证证书进行双向认证?

什么是双向认证证书?

双向认证是指在SSL握手过程中将同时验证客户端和服务器的身份,所以双向认证SSL证书至少包括两个或两个以上的证书,一个是服务器证书,另一个或多个是客户端证书(即个人认证证书)。

双向认证流程

双向认证SSL握手过程与单向认证有所不同。大部分步骤与单向认证过程一样,但是,当客户端成功验证服务器后,会增加服务器验证客户端的流程步骤,具体如下图红色标注所示:

正如您所见,双向认证过程中,SSL握手多了两个步骤,也就是多了服务器验证客户端身份的流程。

双向认证的必备条件

  • 私钥
  • 个人认证证书
  • CA根证书
  • CA中间证书(非所有情况下必需)

有了以上必备东西,当客户端验证服务器身份后,服务器才能验证客户端身份。双方都有自己独立的SSL证书,而且这些证书必须是由受信任的第三方CA机构颁发的。

为什么需要双向认证SSL证书?

了解了单向认证和双向认证在SSL握手过程中的不同后,新的问题出现了:为什么需要双向认证证书?网站使用双向认证将选择哪些客户端与其进行安全通信?

因为双向认证需要服务器和客户端提供身份认证,只能是服务器允许的客户方能访问,安全性相对于高一些。所以需要做双向认证的SSL证书多数是企业,尤其是像金融行业等对安全性要求较高的企业。

比如,一个企业有自己的内部网站,该网站主要是用于员工查询信息和官方事务交流的。他们不希望任何人都可以这样自由访问内部网站。这种情况下,就可以选择使用双向认证的SSL证书验证客户端身份,然后再让他们访问网站。如此一来,企业可避免网络犯罪分子和僵尸程序进入该内部网站,降低不安全性风险。

总的来说,一般Web应用都是采用SSL单向认证的,用户数自由无限制,且无需在通讯层对用户身份进行验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,数据信息相对较多且复杂,可能会要求对客户端做身份验证,这时就需要做SSL双向认证,这也是保护公司内部数据信息的最好的方法。

什么是SSL双向认证,与单向认证证书有什么区别?的更多相关文章

  1. ssl双向认证和单向认证原理

    有朋友在搞一个项目,周末有聊到一些安全性的东西,很自然会想起https,但https究竟如何实施,其原理又是什么? 基于ssl,一般的应用都是单向认证,如果应用场景要求对客户来源做验证也可以实现成双向 ...

  2. ssl介绍以及双向认证和单向认证原理

    SSL安全证书可以自己生成,也可以通过第三方的CA(Certification Authority)认证中心付费申请颁发. SSL安全证书包括: 1.       CA证书,也叫根证书或中间级证书.单 ...

  3. 【计算机网络】ssl双向认证和单向认证原理

    有朋友在搞一个项目,周末有聊到一些安全性的东西,很自然会想起https,但https究竟如何实施,其原理又是什么? 基于ssl,一般的应用都是单向认证,如果应用场景要求对客户来源做验证也可以实现成双向 ...

  4. SSL双向认证和SSL单向认证的流程和区别

    refs: SSL双向认证和SSL单向认证的区别https://www.jianshu.com/p/fb5fe0165ef2 图解 https 单向认证和双向认证!https://cloud.tenc ...

  5. 基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证

    基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证 摘自:https://blog.csdn.net/ty1121466568/article/details/811184 ...

  6. webservice ssl双向认证配置

    1.在tomcat中安装axis2插件 2.生成证书,用jdk自带的keytool 服务端 keytool -genkey -alias Server -dname "CN=192.168. ...

  7. Https单向认证和双向认证介绍

    一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明文的,因 ...

  8. 图解 https 单向认证和双向认证!

    来源: 一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明 ...

  9. SSL单向认证和双向认证原理

    注:本文为个人学习摘录,原文地址:http://edison0663.iteye.com/blog/996526 为了便于更好的认识和理解 SSL 协议,这里着重介绍 SSL 协议的握手协议.SSL ...

随机推荐

  1. Elasticsearch 第六篇:聚合统计查询

    h2.post_title { background-color: rgba(43, 102, 149, 1); color: rgba(255, 255, 255, 1); font-size: 1 ...

  2. 「BalticOI 2020」病毒

    AC自动机+DP最短路转移 怎么说呢,挺套路的,也不是太难,但是一上手会被大量的信息淹没思路,还是要注意关注主要信息,不要被一些细节卡住 由于抗体是要在基因序里面出现过,那么考虑把抗体的序列检出AC自 ...

  3. 释放至强平台 AI 加速潜能 汇医慧影打造全周期 AI 医学影像解决方案

    基于英特尔架构实现软硬协同加速,显著提升新冠肺炎.乳腺癌等疾病的检测和筛查效率,并帮助医疗科研平台预防"维度灾难"问题 <PAGE 1 LEFT COLUMN: CUSTOM ...

  4. 如何用css设置鼠标属性的小手

    在元素中添加onmouseover="this.style.cursor='hand'"或者 cursor:pointer;

  5. 极客mysql08

    1.innodb支持RC和RR隔离级别实现是用的一致性视图(consistent read view) 2.事务在启动时会拍一个快照,这个快照是基于整个库的. 基于整个库的意思就是说一个事务内,整个库 ...

  6. Best Time to Buy and Sell Stock I II III IV

    一.Best Time to Buy and Sell Stock I Say you have an array for which the ith element is the price of ...

  7. TCP/IP模型简介和/etc/hosts文件说明

    软件=协议的实现. IP决定了主机的位置.端口号决定了进程的位置. 两台主机上的通讯实际是两台主机上两个具体进程的通讯. TCP/IP模型分四层: TCP/IP模型:应用层---传输层----网络层- ...

  8. 01 Servlet技术

    Servlet 1.Servlet技术 1.1.什么是Servlet Servlet是JavaEE规范之一.规范就是接口 Servlet就JavaWeb三大组件之一.三大组件分别是:Servlet程序 ...

  9. openstack常用命令-nova篇

    1.查看openstack版本 nova-manage version 2.查看节点 nova host-list 3.查看计算节点 nova hypervisor-list 4.查看计算节点上有哪些 ...

  10. python-网络安全编程第十天(web目录扫描&&fake_useragent模块&&optionParser模块)

    前言 昨天的内容没有完成今天花了点时间继续完成了 感觉自己的学习效率太低了!想办法提高学习效率吧 嗯 ,再制定下今天的目标 开始健身. python fake_useragent模块 1.UserAg ...