网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息 。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等 。当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段 。IPSec 协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议 Authentication Header(AH)、封装安全载荷协议Encapsulating Security Payload(ESP)、密钥管理协议Internet Key Exchange (IKE)和用于网络认证及加密的一些算法等
文章插图
图 IPSec驱动程序服务
在安全协商(相关内容见:IPSec基础(四)--Internet密钥交换(IKE)和密钥保护)成功完成后,发送端IPSec驱动程序执行以下步骤:
1.从IKE处获得SA和会话密钥
2.在IPSec驱动程序数据库中查找相匹配的出站SA,并将SA中的SPI插入IPSec报头
3.对数据包签名--完整性检查;如果要求机密保护,则另外加密数据包
4.将数据包随同SPI发送至IP层,然后进一步转发至目的主机
接收端IPSec驱动程序执行以下步骤:
1.从IKE处获得会话密钥,SA和SPI
2.通过目的地址和SPI在IPSec驱动程序数据库中查找相匹配的入站SA
3.检查签名,对数据包进行解密(如果是加密包的话)
4.将数据包递交给TCP/IP驱动程序,然后再交给接收应用程序
二、IPSec体系结构模型图
在分别介绍了IKE,密钥管理和IPSec驱动程序后,我们来看一个完整的IPSec体系结构模型图,以便更好地理解IPSec体系结构 。
文章插图
图 IPSec流程图
为简单起见,我们假设这是一个Intranet例子,每台主机都有处于激活状态的IPSec策略:
1.用户甲(在主机A上)向用户乙(在主机B上)发送一消息
2.主机A上的IPSec驱动程序检查IP筛选器,查看数据包是否需要受保护以及需要受到何种保护
3.驱动程序通知IKE开始安全协商
4.主机B上的IKE收到请求安全协商通知
5.两台主机建立第一阶段SA,各自生成共享"主密钥" 注:若两机在此前通信中已经建立起第一阶段SA,则可直接进行第二阶段SA协商
6.协商建立第二阶段SA对:入站SA和出站SA 。SA包括密钥和SPI 。
7.主机A上IPSec驱动程序使用出站SA对数据包进行签名(完整性检查)与/或加密 。
8.驱动程序将数据包递交IP层,再由IP层将数据包转发至主机B
9.主机B网络适配器驱动程序收到数据包并提交给IPSec驱动程序 。
10.主机B上的IPSec驱动程序使用入站SA检查完整性签名与/或对数据包进行解密 。
11.驱动程序将解密后的数据包提交上层TCP/IP驱动程序,再由TCP/IP驱动程序将数据包提交主机B的接收应用程序 。
以上是IPSec的一个完整工作流程,虽然看起来很复杂,但所有操作对用户是完全透明的 。中介路由器或转发器仅负责数据包的转发,如果中途遇到防火墙、安全路由器或代理服务器,则要求它们具有IP转发功能,以确保IPSec和IKE数据流不会遭拒绝 。
这里需要指出的一点是,使用IPSec保护的数据包不能通过网络地址译码NAT 。因为IKE协商中所携带的IP地址是不能被NAT改变的,对地址的任何修改都会导致完整性检查失效 。
推荐阅读
- MPLS技术研究及应用
- IPSec基础-IPSec服务
- IPSec基础-IPSec策略
- IPSec基础-IPSec概览
- GRE:通用路由封装
- IPSEC 安全架构、应用及展望
- 密钥或对称密钥加密术
- 公共密钥基础设施
- 公共密钥或不对称加密