主要介绍SSL握手协议以建立安全通信通道的过程。
1) 客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。
2) 服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。
3) 客户利用服务器传过来的信息验证服务器的合法性。服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第4)步。
4) 客户端随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤2)中的服务器的证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。
5) 如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给服务器。
6) 如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性。具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的 CA 是否可靠,发行 CA 的公钥能否正确解开客户证书的发行 CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。
7) 服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。
8) 客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤7)中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。
9) 服务器向客户端发出信息,指明后面的数据通讯将使用的步骤7)中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。
10) SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。
当客户从服务器端传送的证书中获得相关信息时,需要检查以下内容来完成对服务器的认证:时间是否在证书的合法期限内;签发证书的机关是否客户端信任的;签发证书的公钥是否符合签发者的数字签名(防止证书信息篡改);证书中的服务器域名是否符合服务器自己真正的域名。服务器被验证成功后,客户继续进行握手过程。
重点:
我们"ABC Company"申请到这个证书后,我们把证书投入使用,我们在通信过程开始时会把证书发给对方,对方如何检查这个证书的确是合法的并且是我们"ABC Company"公司的证书呢?首先应用程序(对方通信用的程序,例如IE、OUTLook等)读取证书中的Issuer(发布机构)为"SecureTrust CA" ,然后会在操作系统中受信任的发布机构的证书中去找"SecureTrust CA"的证书,如果找不到,那说明证书的发布机构是个水货发布机构,证书可能有问题,程序会给出一个错误信息。 如果在系统中找到了"SecureTrust CA"的证书,那么应用程序就会从证书中取出"SecureTrust CA"的公钥,然后对我们"ABC Company"公司的证书里面的指纹和指纹算法用这个公钥进行解密,然后使用这个指纹算法计算"ABC Company"证书的指纹,将这个计算的指纹与放在证书中的指纹对比,如果一致,说明"ABC Company"的证书肯定没有被修改过并且证书是"SecureTrust CA" 发布的,证书中的公钥肯定是"ABC Company"的。对方然后就可以放心的使用这个公钥和我们"ABC Company"进行通信了。
相关推荐
SSL双向认证握手过程 非常详细
SSL交互和握手过程 SSL消息按如下顺序发送: 1.Client Hello 客户发送服务器信息,包括它所支持的密码组。密码组中有密码算法和钥匙大小; 2.Server Hello 服务器选择客户和服务器都支持的密码组到客户。 3....
SSL握手过程实例分析
实现了数字证书的制作、SSL安全通讯、加解密操作等功能
详细解析SSl的通信过程,有助于初学者理解,里面有图解!!
为了便于更好的认识和理解SSL 协议,这里着重介绍SSL 协议的握手协议。介绍SSL协议双向认证的具体过程。
摘要视图订阅manjingliu的编程之旅在校学,认真学编程登录 | 注册登录 | 注册安全(38)76494次千里之外15篇221篇1篇1条三、开始监听htt
详细介绍https连接的主要过程,ssl协议握手过程,解析传输数据
1、握手与密钥协商过程 2、会话缓存握手过程 3、重建连接
8 只验证服务器的SSL握手过程 9 验证服务器和客户端的SSL握手过程 11 恢复原有会话的SSL握手过程 12 典型组网应用 13 HTTPS 13 SSL VPN 13 参考文献 14 SSL网络安全技术白皮书全文共15页,当前为第4页。SSL网络安全...
SSL协议简介、握手过程、工作原理、及其面临的安全问题和安全威胁
openssl握手过程
SSL检测:握手过程探测、协议/加密套件、SSL常见漏洞扫描。 开发环境: 基于Python2.7,具体依赖库请参考requirements或pip install -r requirements在线安装。 托管 官网: 码云: Github: 交流群:3
HTTPS连接时,采用证书认证时的双向握手协议过程分析。
Eclipse更新站点:http://sourceforge.net/projects/eclipse-plugin.openconf.p/files/update-site/由于源加密策略而导致的更新站点已知问题:如果在更新过程中遇到SSL握手问题请参考... 分步视频教程:第1部分-设置-...
已成功与服务器建立连接,但是在登录过程中发生错误(provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)
SMTP IP SSL TCP HTTP FTP 17 SSL协议—1 概况 SSL提供一个安全的"握手"来初始化一个TCP/IP连接 建立TCP"连接" SSL握手,建立SSL会话 完成客户端和服务器之间关于安全等级、密码算法、通信密钥的协商,以及执行对...
也就是说,客户端和服务器都在连接握手中发送自己的证书,客户端验证服务器证书是否有效,然后服务器验证客户端证书的有效性。 如果一切正常,则建立连接。 此后,服务器可以读取客户端证书信息以执行客户端识别。
握手3个包,ssl 握手9个包,一共12个包) - 默认端口:http 80,https 443 发散问题:ssl 怎么握手的? https 的加密过程 1. 客户端发起 HTTPS 请求 2. 服务端拿出配置好的一套 HTTPS 证书,(自己制作或组织申请) 3....
SSL记录层协议(SSL记录协议)SSL握手协议(SSL握手协议)提供服务方和客户方相互认证 2.知识点总结 具体过程 双方协商SSL版本,加密算法,压缩算法 双方交换数字证书(认证过的公钥) 双方共识DH算法,分别产生...