数据加密/解密模块完成对IP数据包的加密和解密操作。可选的加密算法有IDEA算法和DES算法。前者在用软件方式实现时可以获得较快的加密速度。为了 进一步提高系统效率,可以采用专用硬件的方式实现数据的加密和解密,这时采用DES算法能得到较快的加密速度。随着当前计算机运算能力的提高,DES算法的安全性开始受到挑战,对于安全性要求更高的网络数据,数据加密/解密模块可以提供TriPle DES加密服务。
数据分组的封装/分解模块实现对IP数据分组进行安全封装或分解。当从安全网关发送IP数据分组时,数据分组封装/分解模块为IP数据分组附加上身份认证头AH和安全数据封装头ESP。当安全网关接收到IP 数据分组时,数据分组封装/分解模块对AH和ESP进行协议分析,并根据包头信息进行身份验证和数据解密。加密函数库为上述模块提供统一的加密服务。加密函数库设计的一条基本原则是通过一个统一的函数接口界面与上述模块进行通信。这样可以根据实际的需要,在挂接加密算法和加密强度不同的函数库时,其它模块不需作出改动。
2 IPSec VPN系统的实现过程及具体设计
2.1 IPSec协议的实现
IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,因特网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。
IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。
IPsec协议中的AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供数据可靠性保证。
AH协议(IP协议号为51)提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。
ESP协议(IP协议号为50)提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。
在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。同时使用AH和ESP时,设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。
2.2 VPN的实现
1.VPN网关需要两张网卡的支持,一张网卡连接内部私有网络,一张网卡连接Internet。
2. Internet中的终端A通过发送以内部网络的终端B的私有IP地址为目的地址的数据包来对终端B进行访问。
3. VPN网关中连接Internet的那一端收到来自终端A发出的数据包时,会检查它的目的地址。如果目的地址是属于内部网络中的地址,那么就封装该数据包,不同的VPN技术会采用不同的封装方式。封装后的原数据包用来负载VPN网关构造出的新VPN数据包,新的VPN数据包的目标地址为内部网络中的VPN网关的外部地址。 基于IPSec协议的Linux VPN网关平台(5):http://www.751com.cn/jisuanji/lunwen_13723.html