SSL的单向认证和双向认证
原文地址:http://alvinhu.com/blog/2013/06/20/one-way-and-two-way-ssl-authentication/?utm_source=tuicool&utm_medium=referral
为了便于更好的认识和理解SSL协议,这里着重介绍SSL协议的握手流程。SSL协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术。SSL的握手流程非常有效的让客户端和服务器之间完成相互之间的身份认证。
SSL握手流程
- 客户端向服务器发送ClientHello消息,说明它支持的最高TLS协议版本,随机数、密码算法列表及压缩方法。
- 服务器回复ServerHello消息,包含基于客户端ClientHello消息所选择的TLS协议版本,随机数、密码算法列表及压缩方法。服务器选择的协议版本为客户端和服务器都支持的最高版本。
- 当双方知道了连接参数,服务器向客户端发送证书。
- 客户端验证服务器证书的合法性,包括:服务器证书是否过期、发行服务器证书的CA是否可靠、发行CA的公钥能否正确解开服务器证书的发行CA的数字签名、服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第5步。
- 客户端随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤3中的服务器证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。
- 如果服务器要求客户端的身份认证(在握手过程中为可选),客户端可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户端自己的证书以及加密过的“预主密码”一起传给服务器。
- 如果服务器要求客户端的身份认证,服务器必须检验客户端证书和签名随机数的合法性,具体的合法性验证包括:客户端证书是否过期,发行客户端证书的CA是否可靠,发行CA的公钥能否正确解开客户端证书的发行CA的数字签名,检查客户端证书是否在证书废止列表(CRL)中。如果合法性验证没有通过,通讯立刻中断;如果合法性验证通过,服务器将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。
- 服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于SSL协议的安全数据通讯的加解密通讯。同时在SSL通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。
- 客户端向服务器发出信息,指明后面的数据通讯将使用的步骤8中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。
- 服务器向客户端发出信息,指明后面的数据通讯将使用的步骤8中的主密码为对称密钥,同时通知客户端服务器的握手过程结束。
- SSL的握手部分结束,SSL安全通道的数据通讯开始,客户端和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。
单向认证vs双向认证
上面所述的是双向认证SSL协议的具体通讯过程,这种情况要求服务器和客户端双方都有证书。单向认证SSL协议不需要客户端拥有CA证书,具体的流程相对于上面的步骤,只需将服务器验证客户端证书的步骤去掉,以及在协商对称密码方案,对称通话密钥时,服务器发送给客户端的是没有加过密的(这并不影响SSL过程的安全性)密码方案。这样,双方具体的通讯内容,就是加密过的数据。如果有第三方攻击,获得的只是加密的数据,第三方要获得有用的信息,就需要对加密的数据进行解密,这时候的安全就依赖于密码方案的安全。而幸运的是,目前所用的密码方案,只要通讯密钥长度足够的长,就足够的安全。这也是我们强调要求使用128位加密通讯的原因。
一般Web应用都是采用单向认证的,原因很简单,用户数目广泛,且无需做在通讯层做用户身份验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,情况就不一样,可能会要求对客户端(相对而言)做身份验证。这时就需要做双向认证。
SSL的单向认证和双向认证的更多相关文章
- SSL单向认证和双向认证说明
SSL单向认证和双向认证说明 一.SSL双向认证具体过程 浏览器发送一个连接请求给安全服务器. 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. 客户浏览器检查服务器送过来的证书是否是由自己 ...
- tomcat------https单向认证和双向认证
一.https分为单向认证和双向认证: 单向认证就是说,只有客户端使用ssl时对服务器端的证书进行认证,也就是说,客户端在请求建立之前,服务器端会向客户端发送一个证书,一般情况下,这种证书都是由自己 ...
- Tomcat添加HTTPS单向认证和双向认证
前言 前一段时间有了解如何配置Tomcat服务为Https单向认证和双向认证,当时也做了一些记录,今天开始写博客,就把以前的记录拿出来整理下,分享给大家.本文没有介绍证书如何生成,会在下一篇博文里介绍 ...
- Https、OpenSSL自建CA证书及签发证书、nginx单向认证、双向认证及使用Java访问
0.环境 本文的相关源码位于 https://github.com/dreamingodd/CA-generation-demo 必须安装nginx,必须安装openssl,(用apt-get upd ...
- SSL单向认证和双向认证原理
注:本文为个人学习摘录,原文地址:http://edison0663.iteye.com/blog/996526 为了便于更好的认识和理解 SSL 协议,这里着重介绍 SSL 协议的握手协议.SSL ...
- https 单向认证和双向认证配置
HTTPS 是我们开发中经常用到的通信加密技术,能有效保护我们网络访问中的安全,本文主要讲解单向 和 双向 https 的配置.关于https 的实现原理在这里我就不赘述了,附上阮一峰老师的关于htt ...
- Https单向认证和双向认证介绍
一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明文的,因 ...
- 图解 https 单向认证和双向认证!
来源: 一.Http HyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准.HTTP协议传输的数据都是未加密的,也就是明 ...
- https单向认证和双向认证
单向认证: .clinet<--server .clinet-->server .client从server处拿到server的证书,通过公司的CA去验证该证书,以确认server是真实的 ...
随机推荐
- 如何使用JW Player来播放Flash并隐藏控制按钮和自定义播放完成后执行的JS
在一个客户项目中播放的flash需要进行定制如不显示控制按钮,flash播放完成后执行特定的js等,在用过了N多的JQery插件和播放器后最终JW Player插件可以满足我的以上要求 因为JW Pl ...
- /etc/ssh/sshd_config 配置(ssh连接)
# Package generated configuration file# See the sshd_config(5) manpage for details # What ports, IPs ...
- Nodejs 天涯帖子《鹿鼎记中计》 柳成萌著 下载爬虫
功能:从天涯帖子中下载楼主发言到一个文本文件中 实验对象:http://bbs.tianya.cn/post-no05-308123-1.shtml <鹿鼎记中计> 柳成萌著 爬取效果: ...
- (笔试题)数组A中任意两个相邻元素大小相差1,在其中查找某个数。
题目: 数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置.如数组:[1,2,3,4,3,4,5,6,5],找到4在数组中的位置. 思路: 很明显,在数组中寻找 ...
- 基于Struts2、Spring、Hibernate实现的包括多条件查询分页的基础Dao层帮助jar包实现
操作数据库经常使用操作就是增删查改.每做一次就写一次这些操作太麻烦,也不是必需,特别是写多条件查询并分页时.太痛苦了,所以抽出时间写了个dao帮助jar.导入即搞定!妈妈再有不用操心我的项目了! 转载 ...
- STL - C++ 11的Lambda表达式(下)
关于lambda的基础知识,请参考上一篇的地址如下: http://www.cnblogs.com/davidgu/p/4825625.html 我们再举个STL使用Lambda来进行排序的例子,如下 ...
- Android下文件的压缩和解压(Zip格式)
Zip文件结构 ZIP文件结构如下图所示, File Entry表示一个文件实体,一个压缩文件中有多个文件实体. 文件实体由一个头部和文件数据组,Central Directory由多个File he ...
- 〖Android〗/system/etc/fallback_fonts.xml
<?xml version="1.0" encoding="utf-8"?> <!-- Fallback Fonts This file sp ...
- 移动通信安全——GSM安全体系
一.GSM网络概述 1.安全机制 认证用户,防止未授权接入 对空中接口传输加密,防止无线信道上用户信息被窃听 SIM卡独立于终端,管理用户信息 在空中接口上以临时身份标识用户,防止用户被跟踪 但是GS ...
- Android 弹幕效果开发案例
概述 现在有个很流行的效果就是弹幕效果,满屏幕的文字从右到左飘来飘去.看的眼花缭乱,看起来还蛮cool的 现在就是来实现这一的一个效果,大部分的都是从右向左移动漂移,本文的效果中也支持从左向右的漂移移 ...