CN102111321A - 一种用于vpn的加解密芯片驱动方法 - Google Patents
一种用于vpn的加解密芯片驱动方法 Download PDFInfo
- Publication number
- CN102111321A CN102111321A CN201110048530XA CN201110048530A CN102111321A CN 102111321 A CN102111321 A CN 102111321A CN 201110048530X A CN201110048530X A CN 201110048530XA CN 201110048530 A CN201110048530 A CN 201110048530A CN 102111321 A CN102111321 A CN 102111321A
- Authority
- CN
- China
- Prior art keywords
- chip
- user
- attitude
- encryption
- vpn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种用于VPN的加解密芯片驱动方法,包括以下步骤:S1:在Linux用户态通过设备控制接口的方式实现PCI访问接口;S2:在Linux用户态通过所述PCI访问接口对加解密芯片进行访问,并进行加解密芯片的初始化;S3:通过在用户态对芯片控制寄存器的直接访问的方式将SA写入加解密芯片,以建立VPN通道;S4:通过在用户态对芯片控制寄存器的直接访问对报文进行加解密处理。通过该方法可以方便地在Linux用户态下对加解密芯片的初始化、加解密运算操作进行调试。
Description
技术领域
本发明涉及计算机网络技术领域,特别是涉及一种用于防火墙VPN的Nitrox系列加解密芯片的改进的驱动方法。
背景技术
VPN(Virtual Private Network,虚拟专用网络)是指通过特殊的、加密的通讯协议在Internet上位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,它的主要功能包括:防火墙功能、认证、加密和隧道化。
VPN是对企业内部网的扩展,可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的加密传输通道,以保证数据的安全传输。建立和保持该加密传输通道需要用到一些复杂的加解密算法,如3DES(Triple DES,三重DES)、AES(Advanced Encryption Standard,高级加密标准)等。这些加密算法功能既可以由纯软件来实现,也可以由一些硬件,例如加速芯片来完成。加解密加速芯片可以大大加速VPN的加解密运算速度,从而提高防火墙产品的VPN性能。
图1为Cavium公司的Nitrox系列加解密加速芯片的驱动程序示意图。图中Core部分为内核态驱动部分,NPX指加解密芯片硬件,操作系统相关接口(Operating System Dependent Interface)之上的部分为用户态API(Application Programming Interface,应用程序接口)函数,提供给上层业务,例如IPSec(Internet协议安全性)或SSL(Secure Sockets Layer,安全套接层)协议栈进行调用。
具体地,如图1所示,Nitrox芯片的原有驱动程序的内核态部分可以编译成内核模块,或者直接编译到Linux内核中。这样,在加载模块文件或者内核启动时就会调用该内核态驱动的初始化函数进行包括缓存管理、上下文管理、密匙存储管理等芯片初始化/配置操作;芯片初始化成功后,可以通过打开Linux设备的方式获得芯片的操作权限,使用设备控制接口就可以对芯片进行访问;建立VPN通道时,首先通过协商写入通道的SA(system administrator,超级用户),调用内核态驱动提供的用户态SA写入接口就可以将SA写入芯片;通道建立后就可以利用内核态驱动提供的用户态报文处理接口对报文进行加解密处理。以上接口都是通过设备控制接口的方式调用Nitrox芯片的原有驱动程序的内核态部分的请求管理(Request Manager)模块对芯片进行访问。在Request Manager模块的处理中,要把报文从用户态内存空间拷贝到内核态内存空间,再交给芯片处理,芯片处理完成后,通过响应管理(Response Manager)模块通知用户态程序,再把报文由内核态内存空间拷贝回用户态内存空间。
对于基于Linux操作系统并且工作在Linux用户态的防火墙产品,若直接使用Nitrox芯片的原有驱动程序,虽然也可以实现防火墙的VPN硬件加解密功能,但经过Nitrox芯片处理的数据报文都要经由Linux内核态再到用户态程序,这样就必须经过一次内核态到用户态的数据报文拷贝。数据报文拷贝增加了处理开销,使得整个系统的VPN吞吐性能大大下降。同时,工作在Linux内核态的驱动程序也存在着调试困难,容易造成操作系统崩溃等弊病。
发明内容
(一)、要解决的技术问题
本发明要解决的技术问题在于如何实现在Linux用户态对加解密芯片进行驱动控制,以提高防火墙系统的VPN转发性能。
(二)、技术方案
为解决上述技术问题,本发明的技术方案提供了一种用于VPN的加解密芯片驱动方法,该方法包括以下步骤:
S1:在Linux用户态通过设备控制接口的方式实现PCI访问接口;
S2:在Linux用户态通过所述PCI访问接口对加解密芯片进行访问,并进行加解密芯片的初始化;
S3:通过在用户态对芯片控制寄存器的直接访问的方式将SA写入加解密芯片,以建立VPN通道;
S4:通过在用户态对芯片控制寄存器的直接访问对报文进行加解密处理。
优选地,所述步骤S1通过为Linux操作系统内核打上用户态驱动补丁来实现。
优选地,所述步骤S2通过设置从芯片控制寄存器到Linux操作系统用户态空间的映射来实现。
(三)、有益效果
根据本发明的技术方案,可以方便地在用户态下对加解密芯片的初始化、加解密运算操作进行调试,提高了防火墙系统的VPN转发性能。
附图说明
图1为现有的Nitrox系列加解密加速芯片的驱动方法示意图;
图2为本发明的加解密芯片驱动方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明的目的,但不用来限定本发明的范围。
如图2所示,本发明的用于防火墙VPN的加解密芯片驱动方法包括下述步骤S1-4:
S1:在Linux用户态通过设备控制接口的方式实现PCI访问接口;
具体地,可以为Linux操作系统内核打上用户态驱动补丁,该补丁的主要作用包括:为Linux操作系统内核提供访问PCI(PeripheralComponent Interconnect,外设组件互连)配置空间的设备控制接口,由此在Linux用户态实现了PCI访问接口。
本步骤的目的是使得可以从Linux用户态访问PCI内存空间。
S2:在Linux用户态通过所述PCI访问接口对加解密芯片进行访问,并进行加解密芯片的初始化;
具体地,可以设置从加解密加速芯片控制寄存器到Linux操作系统用户态空间的映射;优选地,使用标准的C库函数完成芯片寄存器到用户态空间的映射。
本步骤的目的是使得可以从Linux用户态访问加解密芯片。
S3:通过在用户态对芯片寄存器的直接访问的方式将SA写入加解密芯片,以建立VPN通道;
本步骤中由用户态建立VPN通道的步骤与原驱动中内核态操作方式不同,可以提高与上层软件的结合型,并方便调试。
S4:通过在用户态对芯片寄存器的直接访问对报文进行加解密处理。
与原驱动中内核态操作方式不同的是,本步骤中,整个报文处理流程都在用户态,减少了系统调用,从而提高了VPN的处理性能,同时也可以防止出现问题时造成的内核崩溃。
为实现上述加解密芯片驱动方法,还需要事先对现有的Nitrox芯片的驱动程序进行改进,具体改进方法包括:
A、对原Nitrox驱动中的目录结构进行修改,将树状结构修改为扁平式结构。即:将原Nitrox驱动程序中的所有Makefile文件放置在同一个目录下,并将文件格式修改为预置的统一格式。
本步骤的目的是为Linux操作系统内核态设置唯一的驱动目录,所述驱动目录包括重新编译后的原Nitrox驱动目录中的所有Makefile文件。然后可以将设置于Linux内核态的Nitrox驱动程序全部移植到用户态。其中,Makefile文件是指工程的自动化批量编译工具“make”所需要的配置文件。
B、设置内核态与用户态之间的普通函数调用
具体地,如A所述将原Linux内核态的Nitrox驱动程序全部移植到用户态,需要将原驱动程序中内核态与用户态之间所有的设备控制接口修改为普通的函数调用,例如,初始化、报文加解密处理接口等。即:将系统调用修改为函数调用。
经过以上修改,可以通过步骤S1-4方便地在用户态下对加解密芯片的初始化、加解密运算操作进行调试。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (3)
1.一种用于VPN的加解密芯片驱动方法,其特征在于,所述方法包括以下步骤:
S1:在Linux用户态通过设备控制接口的方式实现PCI访问接口;
S2:在Linux用户态通过所述PCI访问接口对加解密芯片进行访问,并进行加解密芯片的初始化;
S3:通过在用户态对芯片控制寄存器的直接访问的方式将SA写入加解密芯片,以建立VPN通道;
S4:通过在用户态对芯片控制寄存器的直接访问对报文进行加解密处理。
2.如权利要求1所述的用于VPN的加解密芯片驱动方法,其特征在于,所述步骤S1通过为Linux操作系统内核打上用户态驱动补丁来实现。
3.如权利要求1所述的用于VPN的加解密芯片驱动方法,其特征在于,所述步骤S2通过设置从芯片控制寄存器到Linux操作系统用户态空间的映射来实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110048530XA CN102111321A (zh) | 2011-03-01 | 2011-03-01 | 一种用于vpn的加解密芯片驱动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110048530XA CN102111321A (zh) | 2011-03-01 | 2011-03-01 | 一种用于vpn的加解密芯片驱动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102111321A true CN102111321A (zh) | 2011-06-29 |
Family
ID=44175355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110048530XA Pending CN102111321A (zh) | 2011-03-01 | 2011-03-01 | 一种用于vpn的加解密芯片驱动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102111321A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150190A (zh) * | 2013-03-26 | 2013-06-12 | 汉柏科技有限公司 | Linux系统下用户态网卡自动探测及驱动加载的方法 |
CN103853560A (zh) * | 2014-03-18 | 2014-06-11 | 浪潮集团有限公司 | 一种基于broadcom万兆交换机SDK交叉编译的方法 |
CN104077190A (zh) * | 2014-06-09 | 2014-10-01 | 汉柏科技有限公司 | 一种arm网口驱动的用户态移植方法和系统 |
CN105045694A (zh) * | 2015-07-23 | 2015-11-11 | 浪潮电子信息产业股份有限公司 | 一种自动测试Nitrox加速卡的方法 |
CN106453314A (zh) * | 2016-10-14 | 2017-02-22 | 东软集团股份有限公司 | 数据加解密的方法及装置 |
CN114153506A (zh) * | 2021-11-26 | 2022-03-08 | 上海弘积信息科技有限公司 | 一种负载均衡设备中驱动安全加速芯片的新方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866202A (zh) * | 2005-05-18 | 2006-11-22 | 大唐移动通信设备有限公司 | 嵌入式设备的驱动方法 |
CN101917350A (zh) * | 2010-09-13 | 2010-12-15 | 南京中兴特种软件有限责任公司 | 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法 |
CN101951378A (zh) * | 2010-09-26 | 2011-01-19 | 北京品源亚安科技有限公司 | 用于ssl vpn的协议栈体系结构及数据处理方法 |
-
2011
- 2011-03-01 CN CN201110048530XA patent/CN102111321A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866202A (zh) * | 2005-05-18 | 2006-11-22 | 大唐移动通信设备有限公司 | 嵌入式设备的驱动方法 |
CN101917350A (zh) * | 2010-09-13 | 2010-12-15 | 南京中兴特种软件有限责任公司 | 一种Linux下基于网卡驱动的零拷贝以太网报文捕获及发送的实现方法 |
CN101951378A (zh) * | 2010-09-26 | 2011-01-19 | 北京品源亚安科技有限公司 | 用于ssl vpn的协议栈体系结构及数据处理方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150190A (zh) * | 2013-03-26 | 2013-06-12 | 汉柏科技有限公司 | Linux系统下用户态网卡自动探测及驱动加载的方法 |
CN103150190B (zh) * | 2013-03-26 | 2016-04-27 | 汉柏科技有限公司 | Linux系统下用户态网卡自动探测及驱动加载的方法 |
CN103853560A (zh) * | 2014-03-18 | 2014-06-11 | 浪潮集团有限公司 | 一种基于broadcom万兆交换机SDK交叉编译的方法 |
CN104077190A (zh) * | 2014-06-09 | 2014-10-01 | 汉柏科技有限公司 | 一种arm网口驱动的用户态移植方法和系统 |
CN105045694A (zh) * | 2015-07-23 | 2015-11-11 | 浪潮电子信息产业股份有限公司 | 一种自动测试Nitrox加速卡的方法 |
CN106453314A (zh) * | 2016-10-14 | 2017-02-22 | 东软集团股份有限公司 | 数据加解密的方法及装置 |
CN106453314B (zh) * | 2016-10-14 | 2019-07-09 | 东软集团股份有限公司 | 数据加解密的方法及装置 |
CN114153506A (zh) * | 2021-11-26 | 2022-03-08 | 上海弘积信息科技有限公司 | 一种负载均衡设备中驱动安全加速芯片的新方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2874151B1 (en) | Method and apparatus for controlling access to encrypted data | |
US9973496B2 (en) | Controlled use of a hardware security module | |
CN100592313C (zh) | 一种电子文档防泄密系统及实现方法 | |
US9215067B2 (en) | Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters | |
CN102111321A (zh) | 一种用于vpn的加解密芯片驱动方法 | |
WO2021164166A1 (zh) | 一种业务数据保护方法、装置、设备及可读存储介质 | |
US20040025037A1 (en) | System and method for manipulating a computer file and/or program | |
WO2020015416A1 (zh) | 一种显示方法、装置及存储介质 | |
CN104331644A (zh) | 一种智能终端文件的透明加解密方法 | |
TW201447759A (zh) | 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法 | |
CN102214283B (zh) | 一种基于虚拟磁盘的文件保护系统和方法 | |
EP2919413A2 (en) | Data security verification method and device | |
CA2481040A1 (en) | Providing secure input and output to a trusted agent in a system with a high-assurance execution environment | |
CN106506147B (zh) | 一种基于国密算法实现IPsec-VPN的方法 | |
US8918868B2 (en) | Compartmentalization of the user network interface to a device | |
CN105786521B (zh) | 一种文件外发保护方法和装置 | |
WO2024032660A1 (zh) | 账户数据的更改方法、装置、计算机设备和存储介质 | |
CN101593252A (zh) | 一种计算机对usb设备进行访问的控制方法和系统 | |
CN112270002B (zh) | 全盘加密方法、系统运行方法和电子设备 | |
CN102360407A (zh) | 一种手机与电脑的通讯方法 | |
CN104182691A (zh) | 数据保密方法及装置 | |
CN113542303A (zh) | 秘钥在非可信环境的软件导入系统及方法 | |
CN105550605A (zh) | 一种加/解密引擎及其实现方法 | |
CN117118636B (zh) | IPv6国密安全网卡 | |
US10749899B1 (en) | Securely sharing a transport layer security session with one or more trusted devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110629 |