admin 管理员组文章数量: 1086019
2024年4月29日发(作者:nginx怎么配置服务)
第21卷第7期
计算机技术与发展
COMPUTER TECHNOLOGY AND DEVELOPMENT
V01.21 No.7
20l1年7月
July 201I
Linux2.4内核下I PSec加密卡的实现研究
黄兴利 ,蔡国强 ,于红毅
(1.温州大学商学院,浙江温州325000;
2.西北工业大学网络环境下复杂系统控制实验室,陕西西安710072)
摘要:在综合考虑安全性、处理速度及开发周期的基础上,针对Linux2.4内核提出了将IPSec协议分解为由主处理器实
现的计算复杂型操作和由硬件加密卡实现的计算密集型操作的方案。主处理器进行协议解析、数据包的封装等操作,专
用加密卡实现加解密、认证等高强度计算,并给出了相关的接口函数方便用户进行二次开发。专门设计了Linux操作系统
下加密卡的驱动,实现了高速稳定的DMA数据传输。实验结果表明该方案具有高安全性、高速及良好的可扩展性等优
点,具有良好的应用前景。
关键词:Linux;网络协议安全;加密卡;驱动设计;接口函数
中图分类号:TP393.08 文献标识码:A 文章编号:1673—629X《2011)07—0161—04
Research and Implementation of IPSec Encryption Card
on Linux 2.4 Kernel
HUANG Xing—li’
CA[Guo—qiang ,YU Hong—yi
,
(1.Business College。Wenzhou University-Wenzhou 325000。China;
2.Network-based Complex Sys ̄m Con ̄ol Lab。Northwestern Polytechnical Unive ̄ity。Xi’all 710072,China)
Abstract:After taking safety,processing speed anddevelopment circle into consideration,a new project based OnLinux2.4 kerneldivid-
ing IPSee protocol into complex computational operation and CPU-bound operation is given in the paper.Operations about protocol a.
nalysis as well as data packaging are fulilfled by main processor,while operatins abouto encryptin。decryptoion and authentication are
implemented by specil ahardwareencrypti0n card.andmoreover,mimedinterfacefunctions ale shown clearlywhichishelpfulforIe—de—
velopment.Specil driaver system is designed under Linux operation sysem。atnd high spP ̄d as well as stable DMA data trans ̄r is imple—
mented.Itisilluminatedfromthe experiment resultsthatthis project has goodmerist such ashigh security,high speedand perfect ex—
pandabilitywith a promising application prospect.
Key words:Linux;lPSec;encryptin card;droiver design;interface function
O 引 言
网络技术和Intemet的快速发展使网络应用渗透
到现代人生活的方方面面,然而随之而来的互联网安
全问题也日渐成为困扰企业及个人的重要问题,Inter-
net工程任务组(roTE)在Intemet标准(草案RFC 。 )
中定义了网络IP层上的安全体系结构——IPSec(In—
tel'net Protocol Security),它在不改变用户应用程序的
核下普遍采用的IPSec实现方案是FreeS/Wan,即纯软
件方案,用主机或服务器上的CPU来完成全部操作,
简单易行、开发周期短,但是网络设备负载明显提高,
关键网络设备的处理性能降低,在速度和实时性上不
能满足要求;目前常用的纯硬件方案采用通用结构处
理器与FPGA相结合的处理形式 ,将整个IPSec交
由硬件实现,具有高速、低延时、对用户透明、安全性好
情况下,提供对网络数据的保密和认证服务 ,实现网
络信息的安全传输 。
目前IPSec的设计实现大致有三种方案 :纯软
等优点,但它的开发周期长,不支持用户在此基础上的
再次开发 ;文中“IPSec加密卡”采用软硬件协同方
案实现,将IPSec中涉及到加密、认证等高位数据的密
集运算交由专门设计的硬件加密卡执行,而将协议处
理、密钥管理、安全策略管理等复杂运算交由主机或服
务器上的CPU来执行 ,这种实现将软件开发的高效
率及灵活性与硬件开发的高速率结合,可有效缩短开
发周期,并且软硬件结合时各种接口的明确定义使用
户可以在此基础上进行再次开发,实现定制功能。
件方案,纯硬件方案及软硬件协同方案。Linux2.4内
收稿日期:20l0一l1—30;修回日期:2011-02-15
基金项目:温州市科技计划项目(G20090113)
作者简介:黄兴利(1981一),男,硕士研究生,讲师,研究方向为计算
机网络、数据库。
・
162・ 计算机技术与发展 第2l卷
l系统整体设计
IPSec加密卡采用软硬件结合的设计方案,用软件
在具体实现上,分为总线控制逻辑、数据接口、安
全处理控制单元和安全处理单元等。
其中:
实现IPSec安全体系,用硬件实现加密模块及认证模
块的设计,整体结构框图如图1所示。
总线控制逻辑(状态、地址和总线控制)和数据寄
罔 、
、
...... .
一/
<圣
容。
存器共同完成与CPU等的接口逻辑;指令译码器把指
令翻译成微指令序列通过微指令总线传送到安全处理
控制器;状态寄存器指示加密卡当前状态,包括忙、错
误、准备好、使能等;标签寄存器指示当前寄存器的内
安全处理单元作为加密卡的核心,由算法寄存器、
<置
图1 IPSec加密卡整体框图
一
寄存器栈、操作数栈和数据总线接口单元等基本单元
构成,负责微指令的处理。为了实现对网络数据包的
安全快速处理,安全处理单元中重点实现了加密算法
模块(包括AES对称加密算法)、消息认证模块(包括
消息摘要和安全散列算法HMAC—MD5和HMAC—SHA
1模块)。
由上图可以看出,IPSec数据包的处理是由控制层
面与数据层面相结合实现的,控制层面即软件部分实
现IPSec协议的处理过程,而数据层面即硬件部分实
现繁琐的加解密处理及认证部分处理,
二者分工明确,共同实现IPSec数据包
的处理过程。
2软件处理部分
在Linux系统中已经固化实现了
IPSec协议,采用FreeS/WAN 处理
IPSec协议中的所有任务,在本项目中,
FreeS/WAN仅负责协议处理的复杂型
计算,加密及认证等密集型任务则交由
加密卡实现。
该软件由如下几个模块“ 组成:
(1)KLIPS模块——运行在操作系统内核空间,
图2硬件加密卡体系结构图
以该体系结构为基础实现的加密卡可以直接用于
IPSec协议的加速处理,也可与网络处理单元配合使
用,构成具有IPSec协议处理功能的安全网卡、安全交
换机和安全路由器等网络设备。
主要负责安全联盟和密钥的管理工作,以及对数据报
的加密、解密的处理工作,实现对进入或外出IP包的
安全处理;
(2)Pluto模块——运行在用户空间的守护进程,
实现IKE协议,主要负责安全联盟的协商工作;
(3)PF—KEY模块——实现pfkey2协议,完成上
4驱动设计与实现
4.1整体驱动流程
述两个模块间关于SA的通信。
具体而言,KLIPS模块以module形式加载在操作
系统内核,对输入和输出的数据包进行AH或ESP协
驱动程序的设计是一个模块化设计过程,图3给
出了驱动程序的整体设计流程。
4.2完整模块设计
完整的模块设计如下所示:
int initPlx
init
module(void)
—_
}义处理,并提供SPDB(安全策略库)和SADB(安全关
联数据库),而Pluto模块作为用户模块,提供IKE驻
留模块以及策略管理驻留模块,为通信双方协商密钥
并对IPSec的实现方式等进行设置,PF—KEY模块相
当于沟通内核空间及用户空间的桥梁。
}
//初始化代码
module(void)
void exit Plx
cleanup
_
_
{
3硬件加密卡部分的设计与实现
基于IPSee的加密卡的体系结构如图2所示。
//清除代码
}
第7期 黄兴利等:Linux2.4内核下IPSec加密卡的实现研究 ・163・
)
。
===]==。
’、
=工
。
三 .
嚣
.
—
l {三 三 l l
Dispa
誉tch l枞oCon
申请中断,注册中断
处理程序
是t
中断处理模块
———— ==
... ..............
I1...... .....一
释放设备模块
图3加密卡驱动程序设计流程
驱动程序模块加载人内核时,内核会调用模块中
的初始化函数Plx—init—module,它负责注册和初始化
模块所提供的所有资源和功能。但在卸载该模块时,
内核会调用函数Plx—cleanup—module。模块所注册的
每一项都需要在此函数里注销,返还给系统所有曾申
请的资源 。。。
4.2.1初始化设备模块
此模块的功能为:
(1)通过内核函数pci present检查PCI总线是否
被Linux内核支持;
(2)搜索检查驱动支持的设备,保存配置空间中
的所需信息;
(3)激活PCI设备。
模块主要完成了建立设备驱动程序接口,注册驱
动程序,寻找设备,挂载设备及为设备分配缓存等工
作。
4.2.2打开设备模块
在该模块中,驱动程序主要完成了以下工作:
(1)检查读写模式,申请对设备的控制权;
(2)分配并填写被置于filp->private—data里的数
据结构;
(3)申请PCI设备VO资源的占用;
(4)实现中断申请,注册中断处理程序;
(5)增加对该驱动模块的引用计数。
4.2.3控制信息模块
实际上控制信息模块完成了对绝大部分设备的操
作,包括设备查询、cI寄存器访问、cI空间映射、Serial
EEPROM访问、10端口的访问、PCI物理内存分配、中
断、VPD、PCI内存与本地总线之间的读写、DMA等,其
中最关键的操作即DMA数据传输操作。
驱动程序中DMA实现流程如图4所示。
4.2.4释放设备模块
释放设备模块是调用DispatchTable结构中的Dis—
patch release方法来实现的,Dispatch—release函数实
现释放设备模块操作,其作用正好与打开设备相反。
主要完成的工作包括:
初始化DMA通道
写入参数
:
'3-开DMA通道
PlxPci DmttChannelOpen
I
写入传输参数
执行块传输
PlxPei
DmaTransferl ̄lock
—
I查询等待。MA结束f
关闭DMA通道
PlxPci
Dre.aChannelClose
图4 DMA实现流程
(1)释放对设备的控制权;
(2)释放由open分配的、保存在flip->private_data
中的所有内容;
(3)释放中断;
(4)释放PCI设备I/O资源的占用权。对I/O内
存资源,同时释放其内存映射;
(5)释放设备驱动程序占用的内存;
(6)注销设备驱动程序。
4.3接口函数描述
为了简化函数的调用过程,充分考虑到用户的使
用习惯并为上层IPSec软件提供接口,需要将DMA函
数及加密流程进一步封装,在不同层面上使用不同的
表1接13'函数表
函数名称 函数功用
把字符串密钥转换为0一F十
asc
—
to xx(key,kks。16) 六进制数字符
makeKey(kks,k,keylength)
把0一F十六进制数字符转换
为32位数据
W
ritelnv(pDevice,kivec) 入向量寄存器
以32位为单位将初始向量写
Readlnv(pDevice) 读向量寄存器进行校验
WriteKey(pDevice,keylength, 以32位为单位将密钥写入密
k、 钥寄存器
ReadKey(pDevice,keylength) 读密钥寄存器进行校验
Encryptlnit(pDevice,mode, 确定加解密模式及发送加解
enc) 密命令
CipherCompute(pDevice,in— 进行DM
put。length,output)
A传输
・
l64・ 计算机技术与发展 第2l卷
接口函数(见表1)。 的接口函数允许用户在此基础上进行二次开发,具有
高安全性、高速及可扩展性等优点。
5性能测试
在Linux2.4内核下,采用手动配置IPSec密钥的
方式,在ESP隧道模式下利用两网关互ping的方式 u
参考文献:
[1]蔡集明,陈林.对IPSec中AH和ESP协议的分析与建议
进行IPSec加密卡的性能测试,并使用ethereal进行网
[J].计算机技术与发展,2009,19(11):15—17.
关间抓包¨ 对数据进行加解密及散列分析(测试结果
[2]RFC2401:Security Architecture for the Internet Pretocd[S].
1998.
见表2)。
[3] Kent S,Atkinson R.RFC 2401 Security Architecture for the
表2 网关互ping测试结果
Internet Protocol[S].1998.
处理形式 吞吐率(/Mbps) 数据安全性
[4]罗恒洋.IPSec在MPLS VPN中的应用[J].计算机技术与
AES+MD5 38.147 数据流保密
发展,2009,19(3):168-1 ̄1.
AES+SHA1 36.235 数据流保密
[5]孙黎.IPSec安全芯片的设计与实现[D].西安:西北工
业大学,2007.
对加密卡性能进行单独测试,主要性能参数是实
[6]Hamed H.Modeling and veriifcation of IPSec and VPN securi—
现加解密及认证的速率,结果见表3。
ty policies[C]//13th IEEE International Conference.[s.I.]:
表3加密卡性能测试结果
『S.n.1,2005.
处理方式 吞吐率(IMbps) 时钟频率(MHz)
[7]林建德.北京:中国VPN市场研究年度报告[R].北京:
AES(ECB) 549.868 98.8
[出版者不详],2005.
AES(CBC) 477.434 93.25
[8]高振栋.动态IP环境下IKEv2扩展设计与改进[J].计算
机技术与发展,2008,18(12):162-165.
HMAC—SHA1 293 47.51
[9]Wilson C,Peter D.虚拟专用网的创建与实现[M].北京:机
HMAC—MD5 253 33.62
械工业出版社,2000.
实验结果表明,硬件实现IPSec协议都可以保证
[10]Rubmi,Jonathan.1inux设备驱动程序[M].魏永明,译.北
数据的高速安全传输,完全满足高速网络的需求。
京:中国电力出版社,2002.
[11]杨黎斌,慕德俊,蔡晓妍,等,基于硬件加密的嵌入式VPN
6结束语
网关的实现[J].计算机工程与应用,2007,43(4):122—
125.
IPSec协议对于保证虚拟专用网的网络安全性具
[12]顾文婷,潘雪增,楼学庆,等,面向IPsec安全策略的VPN
有极其重要的意义。文中实现了基于开源Linux操作
性能评估模型[J].计算机工程与应用,2009,45(36):78-
系统的IPSec硬件加速,适用于VPN数据安全传输;采
81.
用软硬件结合的方式,极大地缩短了开发周期,而完善
(上接第160页)
构,在低成本FPGA上成功实现了DES算法的功能。
出版社,2009.
通过综合仿真和硬件实现验证了算法的正确性和实用
[6]Drimer S.Security ofr Volatile FPGAs[D].London:Philoso—
性。
phy to the University of Cambridge,Darwin CoRege,2009.
[7]Kahate A.密码学与网络安全[M].邱仲,译.北京:清
参考文献:
华大学出版社,2005.
[8] 陈雪林,王毅.DES算法的s盒分析[J].内肛科技,
[1]刘涛,胡佳伟.校园网络环境下数据加密的研究与设计
2007,8(7):139-140.
[J],计算机技术与发展,2008,18(1):171-174.
[2]王衍波,薛通.应用密码学[M].北京:机械工业出版
[9] 曹建国,王丹,王威.基于RSA公钥密码安全性的研
究[J].计算机技术与发展,2007,17(1):172-173.
社,2003.
[3]普运伟,耿植林,楼静.从DES算法论分组密码的设计
[1O]Raphael C.Reducing the exhaustive key search of the data
encryption standard[R].Malaysia:Information Security Re—
原则[J].微机发展(现更名:计算机技术与发展),2005,
search Lab,Swinburile University of TeehnoMgy,2006.
l5(5):57—59.
[4]Lagger A.Implementation of DES Algorithm Using FPGA
[11]张春辉.DES算法原理及改进[J].电脑知识与技术,
Technology[R].[s.1.].Microelectronic Syflems Laboratory
2009,5(22):6173—6174.
Winter eSmester Project,2002.
[12]李辉.基于FPGA的数字系统设计[M].西安:西安电子
[5]金晨辉,郑浩然,张少武,等.密码学[M].北京:高等教育
科技大学出版社,2008.
版权声明:本文标题:Linux2.4内核下IPSec加密卡的实现研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714397495a678504.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论