详解SSL证书中的SSL握手协议
Posted wecloud1314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解SSL证书中的SSL握手协议相关的知识,希望对你有一定的参考价值。
是一种数字证书,利用了SSL安全套接字协议,保证上层应用数据传输的保密性、完整性以及传输双发身份的合法性。今天来具体说说SSL握手协议的工作流程。
第一阶段:建立安全能力
客户端-client_hello:
客户端可以支持的SSL最高版本号;
客户端生成的32字节的随机数;
会话标识符ID;
客户端可以支持的密码套件列表;
客户端可以支持的压缩方法列表。
服务端-server_hello:
SSL版本号,取收到的客户端SSL版本和服务端支持的最高版本中的较低者;
服务端生成的32字节的随机数;
会话标识符ID;
从收到的客户端密码套件列表中选择一个密码套件(包含密钥交换算法、对称加密算法、摘要算法);
从收到的客户端压缩方法列表中选择一种压缩方法。
第二阶段:服务端验证和密钥交换
服务端-certificate:
含有公钥信息的服务端数字证书或到CA的完整证书链。
服务端-server_key_exchange:
可选,根据密钥协商算法而定,如果传送给客户端的服务端证书数据不足以按照第一阶段选定的密钥交换算法协商密钥,该步骤不足密钥协商元素。ssl证书申请
服务端-certificate_request:
可选,请求验证客户端证书信息,单向数据认证(只认证服务端)无此步骤。
服务端-server_hello_done:
通知客户端版本号和加密套件协商结束。
第三阶段:客户端验证和密钥交换
客户端-certificate:
可选,客户端数字证书,双向数据认证中服务端要求验证客户端身份合法性。
客户端-client_key_exchange:
客户端交换密钥,视密钥交换算法而定,密钥协商参数或pre-master key(服务端公钥加密)。
客户端-certificate_verify:
可选,客户端将已交互的握手消息、会话密钥的摘要值用客户端私钥加密发送给服务端。
第四阶段:完成
客户端-change_cipher_spec:
改变密码格式信息,告诉服务端之后的报文消息用会话密钥加密。
客户端-finished:
向服务端宣布握手协议完成。
服务端-change_cipher_spec:
改变密码格式信息,告诉客户端之后的报文消息用会话密钥加密。
服务端-finished:
向客户端宣布握手协议完成。
以上是关于详解SSL证书中的SSL握手协议的主要内容,如果未能解决你的问题,请参考以下文章
SSL,SSL证书,SSL协议,三个其实都是一个吗?还是说有区别呢