传输层安全(TLS)详解
1. 同步:ChangeCipherSpec和Finished
当密钥推导完成后,双方通过发送ChangeCipherSpec消息告知对方,随后以发送Finished消息完成握手。
1.1 ChangeCipherSpec
在记录层,ChangeCipherSpec消息有其独立的类型值。严格来说,它不属于握手协议,但它是触发通信从非加密模式切换到加密模式的关键信号。后续的Finished消息会使用新的加密参数进行保护。
1.2 Finished
Finished消息将客户端和服务器对握手过程的视图编码为消息认证码(MAC),未加密的MAC被称为verify_data,其计算方式如下:
verify_data ← PRF(ms, finished_label, hTranscript)
其中,finished_label用于表明消息来自客户端还是服务器,分别为ASCII字符串 client finished 或 server finished 。hTranscript是对到目前为止发送或接收的所有握手消息(不包括ChangeCipherSpec消息)的哈希值,哈希函数与PRF中使用的相同。除非协商的密码套件另有规定,Finished消息长度为12字节。服务器对握手过程的视图包含一条加密消息ClientFinished,此时hTranscript是对明文verify_data计算得到的。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



