基于Windows的IPSec设计与实现
发布时间:2006-10-14 8:04:56   收集提供:gaoqian

中国人民银行成都分行 张文军


  由于历史的原因,各企业都存在一些以前开发的业务处理系统,这些业务系统没有考虑数据在局域网和广域网传输时的机密性和完整性。要解决这些系统数据的安全传输问题,可以采用将应用系统逐个改造,增加加密处理过程的方法来实现,但这种方法需要投入大量的人力和物力;也可以采用主机加装硬件加密装置的方法实现,但这种方法需要增加大量的投资,并且扩展性差。因此,利用IPSec技术,在网络层实现加密传输,适应已有的各种应用系统,保护已有的投资,成为我们的首选。

  技术解析

  IPSec协议是由IETF制定的一种基于IP协议的安全标准,用于保证IP数据包传输时的安全性。IPSec协议由安全协议(包括AH协议和ESP协议)、密钥管理协议(如IKE)以及认证和加密算法组成。

  IPSec支持传输模式和隧道模式。传输模式主要为上层协议提供保护,即对IP包的载荷进行保护,通常用于两个主机之间的端对端通信。隧道模式提供对所有IP包的保护,即将整个IP包(含包头和载荷)封装,作为新的IP包的载荷进行传送。

   其中,封装安全载荷是插入IP数据包内的一个协议头,以便为IP提供机密性、数据源验证、抗重播以及数据完整性等安全服务。验证头(AH)则用于为IP提供数据完整性、数据原始身份验证和一些可选的、有限的抗重播服务。IKE 是IPSec的自动密钥管理协议,它建立在Internet安全关联和密钥管理协议(ISAKMP)定义的框架上,定义出自己独一无二的验证加密材料生成技术,以及协商共享策略。


  具体实现

  目前,大部分单位的计算机都使用Windows 2000/XP操作系统,因此,我们通过在Windows主机上实现IPSec来确保数据加密传输和认证。我们采用NDIS技术在网络层与数据链路层插入自己编写的模块的方式实现IPSec。NDIS是一种网络接口规范,它将网络硬件抽象为网络驱动程序。它将用来管理硬件的底层驱动程序抽象为上层驱动程序,也维护着状态信息和网络驱动程序的参数。

  我们实现的IPSec系统包括管理模块、IKE密钥交换模块和IPSec驱动模块。其中:管理模块实现对安全关联数据库(SAD)和安全策略数据库(SPD)的管理,也可以通过IKE模块发起密钥交换;IKE密钥交换模块完成安全关联(SA)建立、协商、修改和删除等工作;IPSec驱动模块完成安全策略查询(是否对IP包进行IPSec处理),IP数据包的加/解密,数据包封装/拆封等工作。

  利用IPSec技术,在网络层实现IP数据包的加密传输和认证,有效地弥补了应用系统安全传输机制的不足,既提高了系统的安全性,又延长了应用系统的生命周期。

  
摘自 网络世界
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50