22.IPsec封装原理和实现1
IPSec封装协议
GRE是一个独立的协议,但是IPSec不是一个具体协议,它其实是一套协议的统称。 IPSec VPN 体 系 结 构 主 要 由 AH ( Authentication Header )、ESP(Encapsulating Security Payload) 和IKE(Internet Key Exchange)协议套件组 成。
IPSec的封装协议主要是:AH和ESP
AH:认证头协议。可对整个数据包(IP 报头与数据包中的数据负载)提供身份验 证、完整性与防重放保护。但是它不提供保密性,即它不对数据进行加密。数据可以读取, 但是禁止修改。AH 使用加密哈希算法签名数据包以求得完整性。AH 可以独立使用,也可 以与ESP协议组合使用,不能穿越NAT设备
AH的协议号为51号,AH报头结构如下图:
- Next Header : AH header的下一个头部的协议号,这个字段定义了被封装的数据的协 议
- Payload Length:AH header的长度。只定义了AH头长度,不包括外面的IP头和数据长 度
- Reserverd: 保留部分
- SPI : 安全的参数索引,使用了一个数值独立的识别到达远端对等体的连接,目的地址和 安全协议类型的组合,用于识别对这个包进行验证的安全联盟SA
- Sequence Number: 为该数据包提供防重放保护。序数是32位、递增的数字(从 1 开 始),它表示通过通信的安全关联所发送的数据包数。在快速模式安全关联的生存期内序列 号不能重复。接收方将检查该字段,以确认使用该数字的安全关联数据包还没有被接收过。 如果一个已经被接收,则数据包被拒绝。
- Authentication Data: 是一个长度可变的域,长度为32比特的整数倍。具体格式因认证 算法而异 。该认证数据也被称为数据报的完整性校验值(ICV)。就是哈希验证的值。将完整的IP数据包中所有的字段取出加上一个共享的密钥得出。主要的部分:IP数据包头、不包 括易变的字段、AH的头、不包括ICV的字段和用户数据。
ESP:封装安全负载(Encapsulating Security Payload)是IPsec体系结构中的一 种主要协议,其主要设计来在 IPv4 和 IPv6 中提供安全服务的混合应用。IPsec ESP 通过加 密需要保护的数据以及在 IPsec ESP 的数据部分放置这些加密的数据来提供机密性和完整 性。且ESP加密采用的是对称密钥加密算法,能够提供无连接的数据完整性验证、数据来源 验证和防重放攻击服务。根据用户安全要求,这个机制既可以用于加密一个传输层的段 (如:TCP、UDP、ICMP、IGMP),也可以用于加密一整个的 IP 数据报。 ESP的协议号为50,可以单独使用,也可以与AH一起使用,可以穿越NAT设备。如果 穿越PAT设备,需要使用NAT-T技术。 ESP的报文结构如下:
- ESP Header : 主要是包括SPI和Seq number,放在加密数据之前,同AH里面作用是一 样的
- 2.加密数据是由原始数据+ESP尾部信息+共享密钥计算得到 2. ESP Trailer:被放置在加密数据之后,包括一个填充区域和填充长度以及一个Next Header, 这个地方比较特殊,ESP header中没有Next Header放在Trailer中。
- ESP Authentication Data : 必须是32bit的整数倍,是在前面个字段基础上计算的出来 的完整性校验值ICV。包括:ESP头部、加密数据、密钥信息
IPSec封装模式
大家已经了解了GRE协议,可以看到GRE是对原始数据整个的保护,IPSec协议和GRE 一样都属于三层的VPN技术,其可以根据使用情况对原始数据进行不同的保护方式。
IPSec协议有两种封装模式: 传输模式和隧道模式。
传输模式中, 在IP报文头和高层协议之间插入AH或ESP头。 传输模式中的AH或ESP主 要对上层协议数据提供保护。
传输模式中的AH:在IP头部之后插入AH头, 对整个IP数据包进行完整性校验。
传输模式中的ESP:在IP头部之后插入ESP头, 在数据字段后插入尾部以及认证字段。 对高层数据和ESP尾部进行加密, 对IP数据包中的ESP报文头, 高层数据和ESP尾部进行完 整性校验。
传输模式中的AH+ESP:在IP头部之后插入AH和ESP头, 在数据字段后插入尾部以及 认证字段。
隧道模式中, AH或ESP头封装在原始IP报文头之前, 并另外生成一个新的IP头封装到 AH或ESP之前。 隧道模式可以完全地对原始IP数据报进行认证和加密, 而且, 可以使用 IPSec对等体的IP地址来隐藏客户机的IP地址。
隧道模式中的AH:对整个原始IP报文提供完整性检查和认证, 认证功能优于ESP。 但 AH不提供加密功能, 所以通常和ESP联合使用。
隧道模式中的ESP:对整个原始IP报文和ESP尾部进行加密, 对ESP报文头、 原始IP报 文和ESP尾部进行完整性校验。
隧道模式中的AH+ESP:对整个原始IP报文和ESP尾部进行加密, AH、ESP分别会对 不同部分进行完整性校验。
在站点到站点的VPN中,一般都是采用隧道模式进行封装,而在GRE+IPSec解决方案 中,一般会采用隧道模式封装。
总结:加密点和通信点相同,采用传输模式;加密点和通信点不同,采用隧道模式
加密算法及哈希算法
安全VPN满足的基本要求:
- 验证:确保VPN实体与正确的团体进行通信。验证可应用于VPN设备也可应用 于VPN用户
- 机密性:通过加密数据确保数据私有性
- 消息完整性:确保数据在传输过程中不被更改内容。 如果要想满足上面的基本要求,就会用到加密算法及哈希散列算法
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不 可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容, 通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密, 即将该编码信息转化为其原来数据的过程。
加密技术通常分为两大类:“对称式”和“非对称式”。
对称式加密技术
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技 术在当今被广泛采用。加密速度快,可以基于硬件实现,一般用于加密传输的数据,缺点是 密钥管理是个问题。常见的对称加密算法有:
- DES算法(Data Encryption Standard)
- 3DES AES算法
- RC4:使用非常广泛的流密码
- IDEA算法、Blowfish算法、Skipjack算法
非对称式加密技术
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公 钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可 以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对 称式的加密方法如果是在网络上传输加密文件就很难不把密钥告诉对方,不管用什么方法都 有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的, 也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传 输安全性问题。
由于算法很复杂,加密速度比对称加密算法要慢很多,所以不适合加密大的文件,已知公钥不能倒推出私钥。如果使用公钥进行加密,则使用与之对应的私钥进行解密,这样可以保证其保密性;如果使用私钥进行加密,则用与之对应的公钥进行解密,因为公钥可以轻松 获得,所以不能保证数据的紧密性,常用于实现数字签名的功能,来证明数据来源的不可否 认性、不可抵赖性。
常见的非对称加密算法有:
- RSA算法
- DSA
- PGP
- DH(Diffie-Hellman)算法
散列算法: 散列算法可以保证消息的完整性。其能够将一段可变长消息转换成一段定长字符。有以下特 性:
- 单向散列机制:即使得到结果,也不能逆推出原始结果
- 无冲突输出:想要找出两个具有相同散列输出的消息在计算上是不行的。
- 常用的有MD5(128 bit)和SHA-1(160 bit)
HMAC:基于散列的消息认证码
工作过程如下:
1、发送方将消息(message)和共享的key放到一起做哈希运算,得到MAC(消息认证码)
2、发送方将消息(message)及运算的MAC通过不安全信道传输到接收方
3、接收方取出消息(message),然后加上自己共享key,使用相同的散列算法重新计算 一个MAC(消息认证码)
- 原文作者:老鱼干🦈
- 原文链接://www.tinyfish.top:80/post/network/22.IPsec%E5%B0%81%E8%A3%85%E5%8E%9F%E7%90%86%E5%92%8C%E5%AE%9E%E7%8E%B01/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。