1, 耿煜 2,武金木 3,王占川
(1.河北工业大学计算机软件学院,天津 300130 E-mail:gy0402@sina.com)
摘要:本文主要介绍了加密网卡的设计和加密网卡对数据的处理。首先结合目前网络安全的现状分析了加密网卡的产生是势在必趋的,并指出了加密网卡对数据安全的重要作用;继而提出了该加密网卡的设计思想,详细阐述了加密网卡的工作流程,并根据加密网卡所包含的重要组成部分,分别对排列码加密算法及IPSec进行了介绍。最后指出了加密网卡的应用前景必将更加广泛。
关键词:网卡,IPSec, 排列码加密解密算法,ESP封装
1. 引言
以Internet为代表的全球性信息化浪潮日益深刻,信息网络技术的应用正日益普及和广泛,应用层次正在深入,应用领域从传统的、小型业务系统逐渐向大型、关键业务系统扩展。伴随网络的普及,安全日益成为影响网络效能的重要问题,而Internet所具有的开放性、国际性和自由性在增加应用自由度的同时,对安全提出了更高的要求。
目前,网络安全技术的应用主要包括数据加密技术、防火墙技术、防病毒技术等。数据加密技术是为提高信息系统的数据安全性、保密性和防止秘密数据被破解所采用的主要手段之一。应用最为广泛、综合功能最强的是防火墙技术。防火墙是一种用来控制网络之间互相访问的网络互连设备,通常是软件和硬件的组合体,它在Internet与内部网之间建立起一个安全网关,保护了内部网络免受非法用户的侵入。
从安全保密的角度来看,互联网的安全主要指内部网(Intranet)的安全,因此除了在内部网与外部网的联接处用防火墙进行隔离之外,还应在内部网构筑安全保密系统,以确保内部网的安全。密码技术是保护信息安全的主要手段之一,加密软件就是伴随着对信息安全的要求应运而生,信息的加密和解密运算需要占用CPU的资源,大大降低了系统运行的效率。
而硬件加密网卡则提高了加密的速度,不但简化了信息处理过程,而且提高了整个网络的性能。实现了基于加密的强访问控制,从而有效地保护局域网内部主机间、主机与网关间的通信,防止了局域网内部的第三台计算机进行窃听;而且当移动用户安装了加密网卡后,与企业总部通信时,加密网卡就可以保证流经Internet的数据的安全。所以,加密网卡也可以保护外部网的安全。
2. 加密网卡系统介绍
2.1 主要性能指标
工作方式:全双工/半双工
接口标准:与计算机采用PCI总线接口,与网络采用双绞线RJ-45接口,可采用屏蔽或非屏蔽双绞线
数据传输速率(bit/s):10M/100M
密码方式:基于排列码的分组加密
密钥方式:数字串或任意的文字串
加密强度:比DES高 105781
加密时延:7.5ns内完成1个分组的加密
2.2 加密网卡的设计
网卡工作在物理层和数据链路层之间,在IP层之下,主要完成数据链路层的功能,所有发送和接收的数据都必须经过网卡。IPSec是有效保护IP层数据报的安全,它提供了一种标准的、健壮的以及包容广泛的机制,可用它为IP及上层协议(如TCP、UDP)提供安全保证。将IPSec的加密、解密模块集成在网卡上,而将IPSec的密钥交换与管理模块、SPD、SAD放在虚拟设备的驱动程序中实现,这样就在网络内部需要保护的主机之间建立了一条条安全隧道,有效地实现了局域网内部的安全。而网卡就是安全隧道两端的封装/解封装设备。
我们在网卡原有的功能结构基础上,增加加密模块、解密模块、封装模块、解封装模块,加密缓冲区、解密缓冲区。并且为加密模块、解密模块、封装模块、解封装模块设置输入数据线、输出数据线以及控制线。加密网卡的功能流程图如图一。
当主机发送数据时,由驱动程序控制询问SPD,判断是否加密或丢弃,如果丢弃,则直接丢弃;如果加密,则送到加密缓冲区,进行加密,当安全封装完,就送到发送缓冲区;不加密则直接送到发送缓冲区,进行网卡发送数据的工作。
当接收数据时,由网络接口控制器将数据送到网卡上,先进行网卡接收工作,然后由接收缓冲器将数据送到主机接口控制处,最后由驱动程序判断该包是否加密数据包,如果判断该包是加密数据则送到解密缓冲区,进行解封装,然后进行解密,最后询问SPD判断该包是否丢弃,如果丢弃,则直接丢弃,否则,送给主机;如果判断该包不是加密数据,由驱动程序询问SPD是否对该包进行丢弃,如果丢弃,则直接丢弃;否则,则直接送给主机。
驱动程序是网卡不可缺少的一个组成部分。在网卡驱动程序原功能的基础上,将具有基于排列码加密解密算法的IPSec基本功能的安全联盟和密钥协商与管理功能的模块在网卡驱动程序中实现就形成了加密网卡的驱动程序。
2.3 加密算法的介绍
该加密网卡采用排列码加密解密算法。排列码加密解密算法是一种分组密码,但它突破了传统分组密码从明文到密文的一对一映射关系,形成了多对多映射的分组密码新概念,从而提高了加密强度。该算法已经申请了中国专利,专利证号为:99107969.8[10]。
(图二)所示为排列码加密解密原理示意图,它的加密强度比世界最先进的DES高 105781 多倍;加密速度极快,仅几级门电路的延迟。本算法采用Maxplus设计此算法的专门功能部件来提高算法的加密速度。加密模块采用ALTERA 公司的MAX7000B系列产品 EPM7256BQC208-5。
2.4 IPSec的原理及结构
IPSec是一种比高层安全协议(如SOCK v5)的性能更好,实现起来更方便的安全协议,它可以实现密钥的自动管理以降低人工管理密钥的开销,而且对于传输层以上的应用来说它是完全透明的,具有更好的兼容性。
IPSec主要利用两种IPSec协议来提供安全服务:验证头AH(Authentication Header)和封装安全负载ESP(Encapsulating Security Paylaod)。其中,AH可以提供数据源地址验证、面向无连接的数据完整性以及抗重播服务;ESP除了提供上述服务之外,还可以选择提供机密性和有限的流量机密性服务。这两种协议都既可以用来保护一个完整的IP负载,也可以用来保护IP负载中的上层协议。此外,IPSec提供了两种工作模式:传输模式和隧道模式,传输模式用于端到端的安全保障,即可以实现主机对主机传输层的数据包的通信保护;而网关之间的安全保护或通过路由器发送数据包来提供安全服务时,则使用IPSec的隧道模式,该模式提供对IP分组的保护。
在IPSec协议套件中还包含了用于密钥交换和管理的Internet密钥交换协议IKE(Internet Key Exchange)以及相应的解释域、加密和认证算法、安全策略等协议组件。其中有两个重要的概念:SA(安全联盟)和SP(安全策略)。SA是两个IPSec通信实体间通过协商建立起来的一种协定,IPSec实施方案最终会构建一个SA数据库(SAD),由它来维护SA记录。SP为进/出数据包的处理提供了一组安全策略参数,并以记录的形式存放在SP数据库(SPD)中。
2.5 加密网卡对数据的处理过程
任何安装了该加密网卡的两台主机进行通信都要经过三个步骤,第一,通信双方确认对方的身份,即进行身份认证,建立安全通道ISAKMP SA。第二,通信双方协商IPSEC SA的各参数,并将SA添加到SAD中。最后,两主机开始正常通信,一切安全保护的运算工作都由网卡负责,对用户是透明的。
该加密网卡采用REALTEK的8139D作为主芯片,IPSec以BITS(Bump-in-the-stack)方式实现,ESP封装,工作在传送模式下,采用预共享密钥进行身份认证。
该加密网卡对发送接收数据的处理过程如图三、图四。
3.应用前景
随着网络的开放性、共享性和
互联网络的不断扩大,网络内部的安全必将会越来越受到重视。IPSec是一个开放的体系结构和一个开放的框架,它为网络层安全提供了一个稳定的、长期持久的基础。而建立在IPSec体系上的加密网卡系统能有效的解决网络内部端到端的数据通信,而且采用硬件加密克服了原先的软件加密速度慢的问题,从而为
网络安全提供了更有效的保护。因此采用加密网卡保护网络数据传送安全的优越性会越来越明显,必将会得到更广泛的应用。