前言
在互联网刚诞生的时候,Honeywell Information System公司便提出了OSI网络模型,并最终推广使用。
HTTP协议作为OSI模型的应用层中不可或缺的一个协议,凭其优秀的性能得到了广泛的应用,但是随后人们发现了一个重大漏洞,HTTP协议使用了明文传输数据,这使得任何人只要拦截下数据包就可以直接查看交互信息甚至可以随意修改交互信息,这是非常危险的。
这份危险刺激着密码学的发展,随着对称加密算法、公私钥加密算法和消息摘要算法相继提出和发展完善,信息的保密性、完整性和可用性得到了极大的保障,于是人们在密码学的基础上设计了SSL协议,与HTTP协议配合使用,并统称为HTTPS。HTTPS弥补HTTP明文传输的缺点,为通讯信息进行加密等操作,以保证网络通讯的安全。在对SSL协议完善的过程中,由于历史原因,SSL协议从SSL3.0之后改名为TLS,但是SSL依旧有些服务器在用,因此习惯上称之为SSL/TLS协议。
一、SSL/TLS协议
SSL(Secure Socket Layer,安全套接字层)协议是位于OSI七层模型中的表示层(在五层模型中属于应用层)的可靠的面向连接的协议,SSL通过互相认证、使用摘要算法确保完整性和使用加密算法确保私密性,使客户端和服务器之间实现了安全的通讯。该协议主要由SSL记录协议和SSL握手协议组成。目前SSL的最新版本是1996年发布的SSL3.0,虽然该协议在2015年被RFC 7568列为不安全协议而不建议使用,但是有部分服务器仍在使用。
TLS(Transport Layer Security,传输层安全)协议是在SSL3.0的基础上改进的协议,是SSL3.0的后续版本,并在1999年发布了第一个版本TLS1.0。作为SSL的升级版,TLS协议与SSL协议具有相同的目的:解决浏览器与服务器通讯中的认证、保密性和完整性的安全问题。TLS协议也可以分为两个部分:记录协议(Record Pro