现在广泛使用的有两个协议:

  • 安全套接字层 SSL (Secure Socket Layer)
  • 运输层安全 TLS (Transport Layer Security)

SSL作用在端系统应用层的HTTP和运输层之间,在TCP之上建立起一个安全通道,为通过TCP传输的应用层数据提供安全保障。

在SSL 3.0的基础上设计了TLS协议,为所有基于TCP的网络应用提供安全数据传输服务。

image-20210319215734119.png

在未使用SSL时,应用层的应用程序的数据是通过TCP套接字与运输层进行交互的。

在使用SSL时:

  • 因为SSL增强了TCP服务,因此SSL应该是运输层协议。然而实际上,需要使用安全运输的应用程序(如HTTP)却把SSL驻留在应用层。
  • 在应用程序下面多了一个SSL子层,而在应用程序和SSL子层之间,还有一个SSL套接字,其作用和以前讲过的TCP套接字相似,是应用程序和SSL子层的应用编程接口API。

SSL提供的安全服务:

  • SSL服务器鉴别:允许用户证实服务器的身份。支持SSL的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥。
  • SSL客户鉴别:允许服务器正式客户身份
  • 加密的SSL会话:对报文进行加密,并检测报文是否被篡改

简要过程如下:

image-20210320103637083.png

  1. 协商加密算法
    • 第①步:$A \to B$,发送SSL版本号和可选加密算法;
    • 第②步:$B \to A$,选择算法并告知A。
  2. 服务器鉴别
    • 第③步:$B \to A$,发送包含其RSA公钥的数字证书。
    • 第④步:A使用认证机构CA公开发布的RSA公钥对证书进行验证。
  3. 会话密钥计算
    • 第⑤步:$A \to B$,随机生成一个秘密数,用B的RSA公钥进行加密后发送给B。
    • 第⑥步:双方根据算法产生共享的对称会话密钥。
  4. 安全数据传输
    • 第⑦步:双方用会话密钥加密和解密它们之间传送的数据并验证其完整性。