一、网络层安全协议
1. IPsec协议族概述
- 框架,允许通信双方选择合适的算法和参数
- 包含加密算法,所有IPsec的实现都必须使用
- 三部分:
- IP安全数据报格式的两个协议:鉴别首部AH协议和封装安全有效载荷ESP协议
- AH协议:提供源点鉴别和数据完整性,但不保密
- ESP协议:提供源点鉴别、数据完整性和保密。包含了AH协议的功能
- 有关加密算法的三个协议
- 互联网密钥交换IKE协议
- IP安全数据报格式的两个协议:鉴别首部AH协议和封装安全有效载荷ESP协议
- IPsec支持IPv4、IPv6
使用ESP或AH协议的IP数据报称为IP安全数据报(或IPsec数据报)
IP安全数据报两种不同的工作方式
- 运输方式:整个运输层报文段的前后分别添加若干控制信息,再加上IP首部,构成IP安全数据报
- 隧道方式:在原始IP数据报的前后分别添加若干控制信息,再加上新的IP首部,构成一个IP安全数据报
无论哪种方式,最后得出的IP安全数据报的IP首部是不加密的,为了使各个路由器识别IP首部中的有关信息,数据部分是经过加密的,并能够被鉴别
数据报的数据部分:数据报的有效载荷
2. 安全关联
发送IP安全数据报之前,在源实体和目的实体之间必须创建一条网络层的逻辑连线,即安全关联SA——单向连接,提供安全服务
如果进行双向安全通信,则两个方向都需要建立安全连接
建立安全关联SA的路由器或主机,必须维护这条SA的状态信息
状态信息应包含的项目
- 一个32位的连接标识符,称为安全参数索引SPI
- 安全关联SA的源点和终点的IP地址
- 所使用的加密类型
- 加密的密钥
- 完整性检查的类别
- 鉴别使用的密钥
3. IP安全数据报的格式
(1)首先在原始的IP数据报后面添加ESP尾部
ESP尾部的三个字段
- 填充字段:用全0填充
- 填充长度:8位,指出填充字段的字节数
- 填充的意义:数据加密要求数据块长度是若干字节的整数倍
- 下一个首部(8位):指明在接收端ESP的有效载荷应交给什么样的协议处理
(2)按照安全关联SA指明的加密算法和密钥,对ESP的有效载荷 + ESP尾部 进行加密
(3)加密后,添加ESP首部
ESP首部的两个32位字段
- 第一个:存放安全参数索引SPI
- 通过同一个SA的所有IP安全数据报都使用同样的SPI值
- 第二个:序号,鉴别用的序号,防止重放攻击
- 分组重传时,序号不重复
(4)按照SA指明的算法和密钥,对 ESP首部 + 加密的部分 生成报文鉴别码MAC
(5)把所生成的报文鉴别码MAC添加在ESP尾部的后面,和ESP首部、ESP的有效载荷、ESP尾部在一起,构成IP安全数据报的有效载荷
(6)生成新的IP首部,通常20字节长,和普通的IP数据报的首部格式一样。但是首部中协议字段值是50,表明在接收端,首部后面的有效载荷应交给ESP协议来处理
4. IPsec的其他构件
安全关联数据库SAD:存放SA,主机发送IP安全数据报时被查找获得必要信息,主机接收IP安全数据报时被查找获得信息来检查分组的安全性
安全策略数据库SPD:指明什么样的数据报需要进行IPsec处理(取决于源地址、源端口、目的地址、目的端口、以及协议的类型)
IP数据报到达时,SPA指出应当做什么(使用IP安全数据报或者不使用),SAD指出,如果使用IP安全数据报应当怎么做
创建SAD使用自动生成机制,使用互联网密钥交换IKE协议:为IP安全数据报创建安全关联SA
二、运输层安全协议
- 安全套接字层SSL
- 作用在端系统应用层的HTTP和运输层之间
- 在TCP之上建立起一个安全通道,为通过TCP传输的应用层数据提供安全保障
- 运输层安全TLS
- SSL3.0的基础上设计出
- 为所有基于TCP的网络应用提供安全数据传输服务
未使用SSL时,应用层的应用程序的数据是通过TCP套接字与运输层进行交互
- 应用层使用SSL最多的就是HTTP,但SSL并非仅用于HTTP,而是可用于任何应用层的协议
SSL提供的安全服务有三种:
- SSL服务器鉴别,允许用户证实服务器的身份
- 支持SSL的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥
- SSL客户鉴别,SSL的可选安全服务,允许服务器证实客户的身份
- 加密的SSL会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改
SSL简要工作过程:
- 协商加密算法
- 客户浏览器向服务浏览器发送浏览器的SSL版本号和一些可选的加密算法
- 服务器浏览器从中选定自己所支持的算法,并告知客户
- 服务器鉴别:
- 服务器向客户浏览器发送包含其RSA公钥的数字证书
- 客户浏览器使用该证书的认证机构CA公开发布的RSA公钥对该证书进行验证
- 会话密钥计算:
- 由客户浏览器随机产生一个秘密数
- 用服务器的RSA公钥进行加密后发送给过去
- 双方根据协商的算法产生共享的对称会话密钥
- 安全数据传输:
- 双方用会话密钥加密和解密它们之间传送的数据并验证其完整性
三、应用层安全协议
电子邮件:单向报文的安全问题,发送电子邮件是即时的行为,双方无法沟通约定加密
电子邮件安全协议要求使用对称密钥算法进行加密和解密
PGP:完整的电子邮件安全软件包,包括加密、鉴别、电子签名和压缩等技术
PGP将现有的一些加密算法组合在一起而已
PGP不是互联网的正是标准
PGP:提供电子邮件的安全性、发送方鉴别和报文完整性
工作原理:
- 发送方:
- 须有三个密钥:自己的私钥、接收者的公钥和自己生成的一次性密钥
- 对明文邮件进行 MD5 运算,得出 MD5 报文摘要
- 用自己的私钥对报文摘要加密(数字签名),得出报文鉴别码MAC,将其拼接在明文后面,得到扩展的邮件
- 使用自己生成的一次性密钥对扩展的邮件进行加密
- 用接收者的公钥对自己生成的一次性密钥进行加密
- 把加了密的一次性密钥和加了密的扩展的邮件发送
- 接收方:
- 须有:自己的私钥、发送方的公钥
- 把被加密的一次性密钥和被加密的扩展报文分离开
- 用自己的私钥解开发送者的一次性密钥
- 用解开的一次性密钥对报文进行解密,然后分离出明文和MAC
- 用发送者公钥对MAC进行解密(签名核实),得出报文摘要H,这个报文摘要就是发送者用明文邮件通过MD5运算生成的
- 对分离出的明文邮件进行 MD5 报文摘要运算,得出另一个报文摘要
- 比较这两个报文摘要是否一样,一样则对邮件的发送者的鉴别通过了,报文的完整性也得到肯定
双方不一定知道对方的公钥,可以使用双方知道的第三方来担保自己的公钥
第三方使用自己的密钥对发送方的公钥加密,接收方用第三方的公钥对发送方加密的公钥解密,进行鉴别