SSL/TLS 认证
2018-12-07 09:48:49 0 举报
SSL/TLS 认证流程(包括单向认证和双向认证)
作者其他创作
大纲/内容
Client Key Exchange
Client Hello
服务器保存随机数2
Server Key Exchange
Encrypted Handshake Messge
服务器端响应hello报文,内容包括SSL版本信息,握手期间使用的秘钥交换算法(DH或者基于RSA等)选择的加密套件,MAC算法,压缩算法,生成的随机数2等
将PreMaster Key 发送给服务器
将握手消息的HMAC值使用自己的私钥进行签名
Certificate
发送黑线部分的消息为双向认证,不发送黑线部分的消息为单向认证
Server Hello
客户端
如果使用DH算法,发送服务器使用的DH参数
客户端对服务器证书进行验证,验证通过后取出服务器端公钥,生成随机数3,使用服务器端公钥对随机数3进行加密生成PreMaster Key
客户端保存随机数3,根据三个随机数计算出Master Secert
Certificate Verify
通知客户端server hello 过程结束
服务器
如何服务器需要验证客户端证书,则发送证书请求
客户端发送hello包,内容包括SSL版本信息,拥有的加密套件,压缩算法,生成的随机数1等
发送签名值给服务器
通知服务器之后使用协商出的秘钥进行加密
客户端将握手消息生成摘要使用协商出的秘钥进行加密,客户端发出的第一条加密消息
Client Finish
客户端获取随机数2
ChangeCipherSpec
Server Hello Done
服务器将握手消息生成摘要使用协商出的秘钥进行加密,服务器发出的第一条加密消息
服务器获取随机数1
Application Data
如果收到服务器端的证书请求则发送客户端证书
客户端验证通过后从证书中获取服务器证书中的公钥
这几条消息可以分开发送,也可以自由组合
客户端保存随机数1
Certificate Request
服务器发送自己的证书(匿名DH算法不需要)
Server Finish
收藏
收藏
0 条评论
回复 删除
下一页