第16章 · 播客 第5集
安全性和保密性设计 · IPSec:AH、ESP、IKE 与两种模式
🎙️ 本集播客:第5集:IPSec 为什么在 IPv6 是必备、IPv4 是可选;SA 单向、SPI 唯一标识;AH 提供完整性和认证但不保密、ESP 反之;传输模式省资源、隧道模式整包加密加新 IP 头——四组「谁提供什么」的对照题逐个拆。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
明
阿明
安全协议来了。IPSec 出现之前,IP 层是裸奔的?
雅
小雅
原文的原话:在 TCP/IP 协议中,对 IP 数据包没有提供任何安全保护,攻击者可以通过网络嗅探、IP 欺骗、连接截获等方法攻击正常的 TCP/IP 通信。由此带来三种危险:数据并非来自合法的发送者、数据在传输过程中被非法篡改、信息内容已被人窃取。
雅
小雅
IETF 为此制定了一套开放标准的网络安全协议 IPSec,把密码技术应用在网络层,向发送方和接收方提供源地址验证、数据传输的完整性、存取控制、保密性等安全服务,为其上层协议如 TCP、UDP 等提供透明的安全保护服务。
明
阿明
它在 IPv4 和 IPv6 里的身份不一样?
雅
小雅
高频判断题:在 IPv6 中,IPSec 协议是一个必备的组成部分,被强制实施;在 IPv4 中,它是一个可选的扩展协议。「IPv6 必备、IPv4 可选」,两边别对调。
雅
小雅
加密对象也有讲究:IPSec 协议对数据的加密以数据包而不是整个数据流为单位,这既灵活又有助于提高 IP 数据包的安全性。而且它不是加密数据包的头部和尾部信息——源地址、目的地址、端口号、CRC 校验值等都不加密——而是对数据包中的数据进行加密。由于加密发生在 IP 层,可在不改变 HTTP 等上层应用协议的情况下进行安全加密。
明
阿明
工作模式上它也是端到端的?
雅
小雅
原文:IPSec 使用端到端的工作模式,掌握加密、解密方法的只有数据的发送方和接收方,各自负责相应处理,网络中其他节点只负责转发数据、无须支持 IPSec,从而实现加密通信与传输媒介无关。适用范围一句带过:能为局域网、拨号用户、远程站点、Internet 之上的通信提供强有力的保护,还可用于不同局域网之间通过互联网的安全互联。
明
阿明
IPSec 是一个协议还是一堆协议?
雅
小雅
不是一个单独的协议,它包括应用于 IP 层上网络数据安全的一整套协议,主要包括 AH 认证头部协议、ESP 封装安全负载协议、IKE 密钥交换协议,以及用于网络认证及加密的一些算法。三个缩写的中文名先钉死:Authentication Header、Encapsulating Security Payload、Internet Key Exchange。
雅
小雅
分工一句话是本节最重的考点,照原文念:AH 提供数据的完整性和认证,但不包括保密性;而 ESP 原则上只提供保密性,但也可在 ESP Header 中选择适当的算法及模式来实现数据的完整性和认证。AH 和 ESP 可分开使用也可一起使用;IKE 则提供加密算法、密钥等的协商。
明
阿明
这就是那道经典题:提供完整性和认证但不提供保密性的是——AH。ESP 反着记:原则上只管保密,选了算法才兼管完整性。IKE 管协商。
雅
小雅
再补 AH 的细节:AH 先将数据进行校验和加密,然后封装为 IP 包,实现无连接通信的数据完整性、数据源认证和防止重放攻击;它能完成除数据加密外的 ESP 所能提供的所有功能,认证覆盖范围比 ESP 广,包括对 IP 头中一些选项的认证。格式上,在 IP 头和被保护的数据之间插入一个 AH 头,包括下一报头、有效载荷长度、保留位、安全参数索引、序列号、认证数据。
雅
小雅
认证算法两档:AH 中采用 MD5 算法可提供完整性服务,MD5 对任意长度的信息散列产生唯一的 128 位消息摘要;也可采用 SHA 算法提供更强的抗攻击能力——SHA 是在 MD5 的基础上增加了分组处理的迭代次数和复杂性,产生 160 位的消息摘要。还有,接收者通过检验数据包中单向递增的序列号来确定数据包合法性、防止重放攻击。MD5 出 128、SHA 出 160,第三次见面了。
雅
小雅
ESP 的结构:在 IP 数据包的头和被保护数据之间插入 ESP 头,在被保护数据后附加 ESP 尾。ESP 头包括安全参数索引——标识用于处理数据包的安全关联、序列号——防止重放攻击、有效荷载数据;ESP 头的所有字段都是不加密的,因为解密数据包时需要先读取头部字段。ESP 尾包括填充项、填充项长度、下一个头部、认证数据。
明
阿明
「ESP 头不加密」这个反直觉的点会考吧?
雅
小雅
会,判断题原文照抄。再补两个处理顺序和默认算法:对于发出的数据包首先进行加密处理,对于收到的数据包则先进行认证处理;DES 是 ESP 中默认的加密算法,采用 64 位的密钥,加密解密使用同一个密钥,此外可选择 3DES、AES、RC5、RC6、Blowfish 等。「ESP 默认加密算法是 DES、密钥 64 位」连着记。
明
阿明
SA 和 SPI 这对词一直没弄明白。
雅
小雅
安全关联 SA 是提供通信安全服务的发送方和接收方之间的一种单向关系,是构成 IPSec 的基础,是通信双方经协商建立起来的一种协定。安全关联可以用一个 32 位的安全参数索引 SPI 来唯一标识,一个 SPI 值决定一个特定的 SA,它通常放在 AH 或 ESP 头中。
明
阿明
「单向」是什么意思?
雅
小雅
就是这条考点:安全关联是单向的,如果要对两台主机 A 与 B 实现双向安全,则需要两个安全关联,每个方向一个——A 到 B 一个、B 到 A 一个。判断题「一个 SA 可同时保护双向通信」,错。SA 的内容包含 IP 数据包是否加密、认证,以及加密认证采用的算法、密钥等相关信息;所有 SA 记录存放在安全关联数据库中,按散列方式存取。
雅
小雅
配套的安全策略也记一句:安全策略定义了两个 IPSec 系统之间的安全通信特征,决定为数据包提供的安全服务;一个 IPSec 系统的所有安全策略存放在安全策略数据库中,根据选择符——包括源地址、目的地址、协议、端口等——进行检索,通常与 SA 合作作用于通信的数据包。
明
阿明
IKE 呢?它跟 ISAKMP 什么关系?
雅
小雅
IKE 是一个混合协议,使用了 ISAKMP——Internet 安全关联和密钥管理协议、密钥确定协议 Oakley、描述支持匿名和快速密钥刷新的密钥交换的 SKEME 协议。IKE 除了实现通信双方的密钥交换,还使用 ISAKMP 实现 IPSec 的安全关联。ISAKMP 是 IKE 的核心组成部分,定义了协商、建立、修改、删除安全关联的过程和数据格式。
雅
小雅
ISAKMP 的工作分两个阶段:第一阶段,通信双方协商并建立一个安全的通道,并对该通道进行验证,为第二阶段提供安全服务;第二阶段,为 IPSec 建立起具体的 IPSec 安全关联,用于保护双方的数据传输安全。协商过程中使用了 Diffie-Hellman 机制、Oakley 的密钥交换模式和 SKEME 的共享和密钥更新技术。
明
阿明
最后是两种工作模式,这个年年考。
雅
小雅
传输模式:首先将要传送的数据用 IPSec 加密封装,再把相关的 IPSec 头插入 IP 头和被保护的数据之间。因为 IP 头没有加密,接收端直接处理 IP 头,然后从 IPSec 头读取 SPI 值得到相对的 SA,再解密。特点是 IPSec 头直接加在欲传送的数据前,加密的部分较少,比较节省带宽和 CPU 负载,通信和处理效率较高;在传输模式中,解密者就是目的地址端的使用者。
雅
小雅
隧道模式:首先使用 SA 的相关信息将 IP 的数据包全部加密,接下来在前面加上 ESP Header,然后把它们作为数据为它们再加上一个新的 IP 头。接收端收到 ESP 封包后,用 ESP Header 中 SPI 值提供的 SA 解出后面的装载数据,取回原始的 IP 头与封包。隧道模式可以在两个终端之间建立一个安全的隧道,通信均在这个隧道中进行,因此安全性较高。
明
阿明
所以那道题:对整个 IP 包加密并加上新 IP 头的是——隧道模式;只在 IP 头与数据之间插入 IPSec 头、省带宽省 CPU 的是——传输模式。
雅
小雅
对,两个关键识别词:隧道模式抓「全部加密、新 IP 头、安全性较高」,传输模式抓「IP 头不加密、节省资源、解密者就是目的端使用者」。本集必背:IPSec 是 IETF 制定、密码技术应用在网络层、IPv6 中必备强制实施、IPv4 中可选扩展;加密以数据包为单位、不加密头部尾部信息;整套协议含 AH、ESP、IKE;AH 提供完整性和认证不含保密性、认证范围比 ESP 广、用 MD5 出 128 位或 SHA 出 160 位、靠序列号防重放;
明
阿明
接着背。
雅
小雅
ESP 原则上只提供保密性、头字段不加密、默认算法 DES 用 64 位密钥、发出先加密收到先认证;IKE 负责加密算法和密钥协商,核心是 ISAKMP、分两阶段建通道再建安全关联;SA 是单向的、32 位 SPI 唯一标识、双向要两个;传输模式省资源、隧道模式整包加密加新 IP 头安全性较高。
明
阿明
AH 和 ESP 的「谁管什么」彻底分清了。下一集 SSL?
雅
小雅
对,SSL 夹在 TCP 和应用层之间,它那三个「基本安全性」和一条「不能保证不可否认性」的短板,还有 32767、16383 这两个字节上限,都是题眼。