安全套接层(Secure Sockets Layer,SSL)协议是一个安全传输、保证数据完整的安全协议,之后的传输层安全(TLS)是SSL的作专有版本。SSL处于应场层和传输层之间。
SSL主要包括SSL记录协议、SSL握手协议、SSL告警协议、SSL修改密文协议等,协议栈如图所示。
(1)浏览器向服务器发送请求信息(包含协商SSL版本号、询问选择何种对称密钥算法),开始新 会话连接。
(2)服务器返回浏览器请求信息,附加生成主密钥所需的信息,确定SSL版本号和对称密钥算法,发送服务器证书(包含了RSA公钥),并使用某CA中心私钥加密。
(3)浏览器对照自己的可信CA表判新服务器证书是否在可信CA表中。如果不在,则通信中止:如果在,则使用CA表中对应的公钥解密,得到服务器的公钥。
(4)浏览器随机产生一个对称密钥,使用服务器公钥加密并发送给服务器。
(5)浏览器和服务器相互发一个报文,确定使用此对称密钥加密;再相互发一个报文,确定浏览器端和服务器端握手过程完成。
(6)握手完成,双方使用该对称密钥对发送的报文加密。
安全超文本传输协议(Hyper Text Transfer Protocol over Secure Socket Layer, HTTPS)是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。它使用 SSL 对信息内容进行加密,使用 TCP 的 443 端口发送和接收报文,其使用语法与 HTTP 类似,使用 “HTTPS://+URL” 形式。
安全超文本传输协议(Secure Hyper Text Transfer Protocol, S-HTTP)是一种面向安全信息通信的协议,是EIT公司结合 HTTP 而设计的一种消息安全通信协议。S-HTTP可提供通信保密、身份识别、可信赖的信息传输服务及数字签名等。
S-HTTP和SSL的异同如表所示。
SSL | S-HTTP | |
---|---|---|
工作层次 | 传输层和应用层之间 | 应用层 |
处理对象 | 数据流 | 应用数据 |
基于消息的抗抵赖性证明 | 不可以 | 可以 |
加密算法 | RC4 | 可以协商加密算法(如RSA、DSA、DES) |