TLS协议概述
学习了TLS协议的一些基本原理和实现,想将它分享出来,也看看我是否是学到了精髓,我尽量表述清楚,如果 有不对的地方请大家评论批评指正。
TLS协议基础
TLS通过建立安全连接实现数据在两个应用进程之间的安全传输过程,能够实现双向身份鉴别、保证数据的完整性和保密性。TLS的前身是安全接口层SSL,所以也常写成SSL/TLS关于TLS的发展,我觉得了解一个协议的发展背景和发展历史也是作为安全人士的一种素养,所以不了解的同志还是可以去百度一下。
TLS协议结构如图所示:
在整个TLS协议体系中包含了三个协议:TLS握手协议、TLS记录协议、TLS改变密码规范协议、TLS报警协议。
TLS记录协议用于封装上层协议消息,通过TLS记录协议传输的上层消息可以实现源端鉴别、保密性和完整性。
TLS握手协议是一种实现身份鉴别和和安全参数协商的协议。客户端和服务器端通过TLS协议传输数据前,需要通过TLS握手协议完成双向身份鉴别过程,并约定压缩算法、加密算法、MAC算法、加密密钥、MAC密钥等安全参数。
通信双方约定新的安全参数后,需要通过TLS改变密码规范协议通知对方开始使用新约定的安全参数。
报警协议用来传输错误消息,如解密失败、无法确认证书等。通信双方第一次启动握手协议时,初始安全参数为不压缩、不加密、不计算MAC。
TLS记录协议
TLS记录协议封装过程: