【密码学原理】传输层安全——SSL协议

Web安全的威胁有

【密码学原理】传输层安全——SSL协议

安全套接层协议(SSL)体系结构

SSL为TCP提供可靠的端到端安全服务,SSL不是单个协议而是两层协议,如图所示

【密码学原理】传输层安全——SSL协议

SSL中包含定义了两个重要概念:SSL会话和SSL连接

  • 连接:提供合适服务类型的一种传输,对SSL来说,连接表示的是对等网络关系,连接时短暂的,每个连接与一个会话相关
  • 会话:SSL会话是一个客户端和服务器间的关联,会话是通过握手协议创建的,定义了一组多个连接共享的密码安全参数。会话可以用于减少为每次连接建立安全参数的昂贵协商费用

SSL记录协议

提供两种服务:

  • 保密性:握手协议定义了加密SSL载荷的传统加密共享**
  • 消息完整性:握手协议定义了生成消息认证码(MAC)的共享**

SSL记录协议的整个操作过程如图所示

【密码学原理】传输层安全——SSL协议

记录协议接收一个要传送的应用消息,将其分为块、压缩、加上MAC、加密,加上一个SSL头,将得到的最终数据单元放入一个TCP段中。

第一步是分段,每个上层消息被分成若干小于或等于【密码学原理】传输层安全——SSL协议字节的段,接着进行可选择压缩,压缩必须采用无损压缩,并且增加长度不能超过1024字节。接着对压缩数据计算MAC,然后将压缩消息和MAC用对称加密,加密对内容增加长度不能超过1024字节,可用加密算法:

【密码学原理】传输层安全——SSL协议

对流密码而言,压缩消息和MAC一起被加密,MAC在加密之前计算,然后将MAC和压缩后的明文一起加密。

对分组密码而言,填充应该在MAC之后,加密之前进行。

SSL记录协议的最后一步是加上一个SSL头:

  • 内容类型(8位):封装段使用的高层协议
  • 主版本号(8位):表明SSL使用的主版本号
  • 从版本号(8位)
  • 压缩长度(16位)

【密码学原理】传输层安全——SSL协议

SSL修改密码规范协议

【密码学原理】传输层安全——SSL协议

协议由一个仅包含一个字节的值为1的消息组成,此消息使得挂起状态被复制到当前状态中,用于更新此链接使用的密码套件。

SSL警报协议

报警协议用于向对等实体传递SSL相关的警报,警报消息按照当前状态压缩和加密。

每个消息由两个字节组成,值1表示警报,值2表示致命错误,传递消息出错的严重程度。如果级别是致命的,则SSL将立即终止连接,而会话中的其他连接将继续进行,但不会在此会话中建立新连接。第二个字节包含描述特定警报信息的代码。警报有:

  • 意外信息
  • MAC记录出错
  • 解压失败
  • 握手失败
  • 非法参数
  • 结束通知
  • 无证书
  • 证书出错
  • 不支持的证书
  • 证书撤销
  • 证书过期
  • 未知证书

SSL握手协议

此协议允许客户端和服务器相互认证,协商加密和MAC算法,保护数据使用的**通过SSL记录传送。握手协议再传递应用数据之前使用。握手协议由客户端和服务器间交换的一系列消息组成,每个消息由三个域组成:

  • 类型(1字节):表明10中消息中的一种,消息类型如下图
  • 长度(3字节):消息的字节长度
  • 内容

【密码学原理】传输层安全——SSL协议

【密码学原理】传输层安全——SSL协议

客户端和服务器之间建立逻辑连接的初始交换如图所示

【密码学原理】传输层安全——SSL协议