Secure Socket Layer(SSL)俗称安全套接层,是由Netscape Communitcation于1990年开发,用于保障Word Wide Web(WWW)通讯的安全。主要任务是提供私密性,信息完整性和身份认证。1994年改版为SSLv2,1995年改版为SSLv3。
Transport Layer Security(TLS)标准协议由IETF于1999年颁布,整体来说TLS非常类似与SSLv3,只是对SSLv3做了些增加和修改。
SSL协议概述:SSL是一个不依赖于平台和运用程序的协议,用于保障运用安全,SSL在传输层和运用层之间,就像运用层连接到传输层的一个插口。
SSL连接的建立有两个主要的阶段:
第一阶段:Handshake phase(握手阶段)
a、协商加密算法
b、认证服务器
c、建立用于加密和HMAC用的密钥
第二阶段:Secure data transfer phase(安全的数据传输阶段)
在已经建立的SSL连接里安全的传输数据
SSL是一个层次化的协议,最底层是SSL record protocol(SSL纪录协议),record protocol包含一些信息类型或者说是协议,用于完成不同的任务。
下面我们对SSL/TLS里边的每一个协议的主要作用进行介绍:
一、Record Protocol:(记录协议)是主要的封装协议,它传输不同的高层协议和运用层数据。它从上层用户协议获取信息并且传输,执行需要的任务,例如:分片,压缩,运用MAC和加密,并且传输最终数据。它也执行反向行为,解密,确认,解压缩和重组装来获取数据。记录协议包括四个上层客户协议,Handshake(握手)协议,Alert(告警)协议,Change Cipher Spec(修改密钥说明)协议,Application Data(运用层数据)协议。
二、Handshake Protocols: 握手协议负责建立和恢复SSL会话。它由三个子协议组成。
a、Handshake Protocol(握手协议)协商SSL会话的安全参数。
b、Alert Protocol(告警协议) 一个事务管理协议,用于在SSL对等体间传递告警信息。告警信息包括,1.errors(错误),2.exception conditions(异常状况)例如:错误的MAC或者解密失败,3.notification (通告)例如:会话终止。
c、Change Cipher Spec Protocol(修改密钥说明)协议,用于在后续记录中通告密钥策略转换。
Handshake protocols(握手协议)用于建立SSL客户和服务器之间的连接,这个过程由如下这几个主要任务组成:
1、Negotiate security capabilities(协商安全能力):处理协议版本和加密算法。
2、Authentication(认证):客户认证服务器,当然服务器也可以认证客户。
3、Key exchange(密钥交换):双方交换用于产生master keys(主密钥)的密钥或信息。
4、Key derivation(密钥引出):双方引出master secret(主秘密),这个主秘密用于产生用于数据加密和MAC的密钥。
三、Application Data protocol: (运用程序数据协议)处理上层运用程序数据的传输。
有关ssl搭建可以看我以前写的文章
centos7搭建CA服务器颁发ssl证书
Winserver03-Web SSL服务搭建
centos7_vsftpd-ssl/tls搭建及ftp加固