计算机网络|网络安全协议SSL的知识梳理

背景 在上信息安全课程的时候,经常听到SSL层协议为web安全提供一种安全保障机制,但是该协议的具体操作过程以及对协议的格式不甚了解。现所看论文是对网络安全协议验证方法的研究,并使用CSP(通信顺序进场)语言对SSL协议进行了描述,在对抽象语言进行理解之前,我想首先得理清SSL的具体过程。
协议简介

  • 安全套接字(Secure Socket Layer,SSL)协议是一种用于Web浏览器与Web服务器之间安全交换信息的加密协议,提供三个基本的安全服务:完整性、保密性、认证性。
  1. 秘密性: SSL客户机和服务器之间传送的数据经过了加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文信息
  2. 完整性: SSL利用散列(HASH)函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输的信息全部到达目的地,可以避免服务器和客户机之间的信息受到破坏。
  3. 认证性:利用证书技术和可信的第三方认证,可以让客户机和服务器相互识别对方的身份。
  • SSL于1994年被一位名为Netscape的人开发的,专门用来保护Web的通信, 后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议。目前有三个版本:2、3、3.1,最常用的是1995年发布的第三版本。
  • SSL协议位于可靠的传输层协议(如:TCP)之上,应用层(如:HTTP)之下。使用TCP来提供一种可靠的端到端的安全服务,它是客户/服务器应用之间的通信不被攻击窃听,并且始终对服务器进行认证,还可以选择对客户进行认证。
协议体系结构 SSL协议由两层组成,分别由SSL记录层协议和SSL握手协议组成。同时由两层子协议同时作用,如图所示:
计算机网络|网络安全协议SSL的知识梳理
文章图片

0x01: SSL握手协议
计算机网络|网络安全协议SSL的知识梳理
文章图片

  1. 作用时间
    客户机和服务器用SSL连接通信时使用的”第一个”子协议。在应用层发送报文之前实行。
  2. 功能
    协商SSL协议的版本、协商加密套间、协商密钥参数、验证通讯双方的身份或仅验证服务器身份(可选)、建立SSL连接
  3. 握手流程(以单方向认证为例)
    计算机网络|网络安全协议SSL的知识梳理
    文章图片

    形象化比喻:
    C(Client): 我想和你进行安全通话,我的对称算法有DES,RC5,秘钥交换算法有RSA和DH,摘要算法有MD5和SHA。
    S(Server): 我们用DES-RSA-SHA这对组合。这是我的证书C,你拿去验证我的身份。 ——协商SSL协议的版本
    C: (通过CA验证S证书的真实性,若有误,发出警告断开连接)下面我要用你的公钥进行加密,给你发消息了。
    消息内容:生成per_master_secret(用于对初始化向量和hmac密钥进行加密),使用S的公钥对per_master_secret加密后发送给S
    C:我说完了(使用公钥加密) ——认证身份&&生成ClientKeyExchange
    S: (用私钥进行解密获得per_master_secret)生成初始化向量、hmac秘钥、加密密钥,并用per_master_secret进行加密后发送给C
    S:我说完了 ——协商完毕一套加密算法
    SSL会话建立完毕,应用层可以开始发送数据!
  4. SSL握手协议报文格式
    计算机网络|网络安全协议SSL的知识梳理
    文章图片

    3个字段:Type,Length,Content
    Type:(1字节)该字段指明使用的SSL握手协议报文类型
    1) hello_request:
    2) client_hello:
    3) server_hello:
    4) certificate:
    5) server_key_exchange:
    6) certificate_request:
    7) server_done:
    8) certificate_verify:
    9) client_key_exchange:
    10) finished: 引用块内容
    Length:(3字节)以字节为单位的报文长度。
    Content:(≥1字节):对应报文类型的的实际内容、参数
    详情可见 SSL报文详解
0x02:SSL握手协议
  1. 作用时间
    作用于所有的SSL通信,记录协议封装上层的握手协议、警告协议、改变密码格式协议、应用数据协议
  2. 功能
    1) 分组、组合
    2) 压缩、解压缩
    3) 以及消息认证
    4) 加密传输等
  3. 记录流程
    计算机网络|网络安全协议SSL的知识梳理
    文章图片

  4. SSL记录报头
    计算机网络|网络安全协议SSL的知识梳理
    文章图片

总结 【计算机网络|网络安全协议SSL的知识梳理】本文只是对SSL整个架构的简单理解,其中涉及到的具体操作(如密钥的生成、DES的加密),都是涉及到密码学的非常复杂的过程,如有兴趣,可以参考博文SSL协议详解,其中有更详细的说明。

    推荐阅读