网络安全——互联网使用的安全协议

网络层安全协议

IP 安全性很差:

  • 没有为通信提供良好的数据源鉴别机制;
  • 没有为数据提供强大的完整性保护机制;
  • 没有为数据提供任何机密性保护;
  • 在设计和实现上存在安全漏洞,使各种攻击有机可乘。例如:攻击者很容易构造一个包含虚假地址的 IP 数据报。

IP 几乎不具备任何安全性,不能保证:数据机密性、数据完整性、数据来源认证。

IPsec 提供了标准、健壮且包含广泛的机制保证 IP 层安全。

IPsec协议族

IPsec 就是“IP 安全(security)”的缩写。IPsec 并不是一个单个的协议,而是能够在 IP 层提供互联网通信安全的协议族。

IPsec 是个框架,它允许通信双方选择合适的算法和参数(例如,密钥长度)。

为保证互操作性,IPsec 还包含了所有 IPsec 的实现都必须有的一套加密算法。

IPsec协议组成

IPsec 由三部分组成:

  • IP 安全数据报格式的两个协议:鉴别首部 AH(Authentication Header)协议、封装安全有效载荷 ESP(Encapsulation Security Payload)协议
  • 有关加密算法的三个协议
  • 互联网密钥交换 IKE(Internet Key Exchange)协议

AH 协议提供源点鉴别和数据完整性,但不能保密。ESP 协议比 AH 协议复杂得多,它提供源点鉴别、数据完整性和保密。

使用 ESP 或 AH 协议的 IP 数据报称为 IP 安全数据报(或 IPsec数据报)。

IPsec 支持 IPv4 和 IPv6。

AH 协议的功能都已包含在 ESP 协议中。因此使用 ESP 协议就可以不使用 AH 协议。

IP 安全数据报有两种工作方式

运输方式:在整个运输层报文段的前后分别添加若干控制信息,再加上 IP 首部,构成 IP 安全数据报。适合于主机到主机之间的安全传送。 需要使用 IPsec 的主机都运行 IPsec 协议。

隧道方式:在原始的 IP 数据报的前后分别添加若干控制信息,再加上新的 IP 首部,构成一个 IP 安全数据报。需要在 IPsec 数据报所经过的所有路由器上都运行 IPsec 协议。隧道方式常用来实现虚拟专用网 VPN。

无论使用哪种方式,最后得出的 IP 安全数据报的 IP 首部都是不加密的。

所谓“安全数据报”是指数据报的数据部分是经过加密的,并能够被鉴别的。

通常把数据报的数据部分称为数据报的有效载荷(payload)。

安全关联

在发送 IP 安全数据报之前,在源实体和目的实体之间必须创建一条网络层的逻辑连接。此逻辑连接叫做安全关联 SA(Security Association)。

IPsec 就把传统互联网无连接的网络层转换为具有逻辑连接的网络层。

安全关联是从源点到终点的单向连接,它能够提供安全服务。

在安全关联 SA 上传送的就是 IP 安全数据报。

如要进行双向安全通信,则两个方向都需要建立安全关联。

若 n 个员工进行双向安全通信,一共需要创建(2 + 2n)条安全关联 SA。

路由器 R1 到 R2 的安全关联 SA
假定公司总部的主机 H1 要和分公司的主机 H2 通过互联网进行安全通信。公司总部与分公司之间的安全关联 SA 就是在路由器 R1 和 R2 之间建立的。

主机 H1 到 H3 之间的通信
假定公司总部的主机 H1 要和内部的主机 H3 进行通信。由于都在公司内部,不需要加密,因此不需要建立安全关联。

路由器 R1 到主机 H2 的安全关联 SA
若公司总部的主机 H1 要和某外地业务员的主机 H2 进行安全通信,需要在公司总部的路由器 R1 和外地业务员的主机 H2 建立安全关联 SA。

安全关联 SA 状态信息:

  1. 一个 32 位的连接标识符,称为安全参数索引 SPI(Security Parameter Index)。
  2. 安全关联 SA 的源点和终点的 IP 地址(例如路由器 R1 和 R2 的 IP 地址)。
  3. 所使用的加密类型(例如,DES 或 AES)。
  4. 加密的密钥。
  5. 完整性检查的类型(例如,使用报文摘要 MD5 或 SHA-1 的报文鉴别码 MAC)。
  6. 鉴别使用的密钥。

IP 安全数据报的格式

注意:在“原始的 IP 首部”中,用主机 H1 和 H2 的 IP 地址分别作为源地址和目的地址。而在 IP 安全数据报的“新的 IP 首部”中,用路由器 R1 和 R2 的 IP 地址分别作为源地址和目的地址。

IPsec 的其他构件

安全关联数据库 SAD(Security Association Database) 存放SA。
安全策略数据库 SPD(Security Policy Database) 指明什么样的数据报需要进行 IPsec 处理。
互联网密钥交换 IKE(Internet Key Exchange) 为 IP 安全数据报创建安全关联 SA。

IKE 是个非常复杂的协议,以另外三个协议为基础:

  • Oakley —— 是密钥生成协议。
  • 安全密钥交换机制 SKEME(Secure Key Exchange Mechanism) —— 是用于密钥交换的协议。它利用公钥加密来实现密钥交换协议中的实体鉴别。
  • 互联网安全关联和密钥管理协议 ISAKMP(Internet Secure Association and Key Management Mechanism) —— 用于实现 IKE 中定义的密钥交换,使 IKE 的交换能够以标准化、格式化的报文创建安全关联 SA。

运输层安全协议

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

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

安全套接层 SSL 由 Netscape 于 1994 年开发,广泛应用于基于万维网的各种网络应用(但不限于万维网应用)。SSL 作用在端系统应用层的 HTTP 和运输层之间,在 TCP 之上建立起一个安全通道,为通过 TCP 传输的应用层数据提供安全保障。

1996 年发布 SSL 3.0,成为 Web 安全的事实标准。

1999 年,IETF 在 SSL 3.0 基础上推出了传输层安全标准 TLS,为所有基于 TCP 的网络应用提供安全数据传输服务。

SSL / TLS 的位置

在发送方,SSL 接收应用层的数据,对数据进行加密,然后把加了密的数据送往 TCP 套接字。在接收方,SSL 从 TCP 套接字读取数据,解密后把数据交给应用层。

运输层不使用安全协议和使用安全协议的对比

SSL / TLS 建立在可靠的 TCP 之上,与应用层协议独立无关。

SSL / TLS 已被所有常用的浏览器和万维网服务器所支持。

SSL / TLS 基本目标:实现两个应用实体之间的安全可靠通信。

应用层使用 SSL 最多的就是 HTTP,但 SSL 并非仅用于 HTTP,而是可用于任何应用层的协议。

TCP 的 HTTPS 端口号是 443,而不是平时使用的端口号 80。

SSL提供的安全服务

SSL提供的安全服务:

  • SSL 服务器鉴别,允许用户证实服务器的身份。支持 SSL 的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥。
  • SSL 客户鉴别,SSL 的可选安全服务,允许服务器证实客户的身份。
  • 加密的 SSL 会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改。

SSL安全会话建立过程

简要过程:

  1. 协商加密算法。浏览器 A 向服务器 B 发送浏览器的 SSL 版本号和一些可选的加密算法。B 从中选定自己所支持的算法(如 RSA),并告知 A。
  2. 服务器鉴别。服务器 B 向浏览器 A 发送包含其 RSA 公钥的数字证书。A 使用该证书的认证机构 CA 公开发布的RSA公钥对该证书进行验证。
  3. 会话密钥计算。由浏览器 A 随机产生一个秘密数。用服务器 B 的 RSA 公钥进行加密后发送给 B。双方根据协商的算法产生共享的对称会话密钥。
  4. 安全数据传输。双方用会话密钥加密和解密它们之间传送的数据并验证其完整性。

应用层安全协议

应用层中有关电子邮件的安全协议。

发送电子邮件是个即时的行为。发送方 A 和接收方 B 并不会为此而建立任何会话。

电子邮件安全协议就应当为每种加密操作定义相应的算法,以及密钥管理、鉴别、完整性保护等方法。

PGP (Pretty Good Privacy)

PGP(Pretty Good Privacy)是一个完整的电子邮件安全软件包,包括加密、鉴别、电子签名和压缩等技术。

PGP 并没有使用什么新的概念,它只是将现有的一些算法如 MD5,RSA,以及 IDEA 等综合在一起而已。

PGP 工作原理

假定 A 向 B 发送电子邮件明文X,使用 PGP 进行加密。A 有三个密钥:A的私钥、B的公钥和A生成的一次性密钥。B 有两个密钥:B的私钥和A的公钥。

PGP 提供电子邮件的安全性、发送方鉴别和报文完整性。

发送方 A 的工作:

  1. 对明文邮件 X 进行 MD5 运算,得出 MD5 报文摘要 H。用 A 的私钥对 H 进行加密(即数字签名),得出报文鉴别码 MAC,把它拼接在明文 X 后面,得到扩展的邮件(X, MAC)。
  2. 使用 A 自己生成的一次性密钥对扩展的邮件(X, MAC)进行加密。
  3. 用 B 的公钥对 A 生成的一次性密钥进行加密。
  4. 把加了密的一次性密钥和加了密的扩展的邮件发送给 B。

接收方 B 的工作:

  1. 把被加密的一次性密钥和被加密的扩展报文(X, MAC)分离开。
  2. 用 B 自己的私钥解出 A 的一次性密钥。
  3. 用解出的一次性密钥对报文进行解密,然后分离出明文 X 和 MAC。
  4. 用 A 的公钥对 MAC 进行解密(即签名核实),得出报文摘要 H。这个报文摘要就是 A 原先用明文邮件 X 通过 MD5 运算生成的那个报文摘要。
  5. 对分离出的明文邮件 X 进行 MD5 报文摘要运算,得出另一个报文摘要H(X)。把H(X)和前面得出的 H 进行比较,是否一样。如一样,则对邮件的发送方的鉴别就通过了,报文的完整性也得到肯定。
打赏
  • Copyrights © 2017-2023 WSQ
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信