一种基于国密算法实现IPsec‑VPN的方法技术

技术编号:14854185 阅读:94 留言:0更新日期:2017-03-18 21:06
本发明专利技术提供了一种基于国密算法实现IPsec‑VPN的方法,其特征在于,包括用户层算法扩展和内核层算法扩展,其中,用户层算法扩展步骤为:建立加密库和加密引擎库以及动态加载加密引擎库;内核层算法扩展步骤为:构建国密算法驱动模块、加载国密算法驱动模块、应用国密算法驱动模块以及卸载国密算法驱动模块。本发明专利技术在用户层采用加密引擎机制,不需要改动系统内核代码,只需要定义一个加密库和加密引擎库,在加密引擎库中实现需要扩展的密码算法接口,在使用前进行动态加载即可;在内核层采用将扩展的算法功能实现模块化,在需要的时候在系统中动态地加载,只需要在系统内核中增加少量的代码,模块本身不编译进内核,从而控制了内核的大小。

【技术实现步骤摘要】

本专利技术提供了一种实现IPsec-VPN的方法,尤其是一种基于国密算法实现IPsec-VPN的方法。
技术介绍
随着密码技术和计算技术的发展,1024位RSA公钥密码算法正面临日益严重的安全威胁,国密SM2算法相比RSA算法具有如下优势:签名速度和密钥对生成速度都远快于RSA;国密SM2算法的单位安全强度高于RSA算法。为保障重要经济系统密码应用的安全,防止出现非自主密码算法受到攻击导致重要经济系统敏感数据泄露、危害国家安全等影响,国密局推荐使用国产密码算法,包括非对称加密算法SM2、哈希算法SM3和对称加密算法SM4。要使用国密算法就涉及到算法扩展的问题,算法扩展分两种情况:一是在用户层的算法扩展,二是内核层的算法扩展。用户层的算法扩展,通常的做法就是首先实现需要扩展的算法,然后在软件代码中调用原有算法的地方替换成调用扩展的算法,这样使用软件算法尚可,但是如果要使用硬件算法,各个厂家应用程序接口不统一,不能屏蔽硬件之间的差异性,就需要在软件代码中每个调用硬件算法接口的地方修改接口函数名,这样毫无疑问会增加开发者的工作量,也不利于软件代码的维护;内核层的算法扩展,通常的做法是首先在内核代码里实现需要扩展的算法,然后在内核中调用算法的地方替换成调用扩展的算法,最后进行内核的编译,这样生成的内核会很大,而且要在现有的内核中添加很少的功能,都要重新编译整个内核,在系统中进行内核的更新,更新内核必然会导致整个系统功能暂停,很不利于现场业务的持续性开展。
技术实现思路
本专利技术要解决的技术问题是现有的国密算法扩展在用户层存在应用程序接口不统一的问题,在内核层存在占用内核空间且需要重新编译系统内核的问题。为了解决上述技术问题,本专利技术提供了一种基于国密算法实现IPsec-VPN的方法,其特征在于,包括用户层算法扩展和内核层算法扩展,其中,用户层算法扩展包括如下步骤:步骤1.1,建立加密库和加密引擎库,在加密引擎库中存储SM2加密引擎,在加密库中存储SM2算法接口;步骤1.2,动态加载加密引擎库,根据加密需要在加密引擎库中选择SM2加密引擎,并利用SM2加密引擎调用加密库中的SM2算法接口;内核层算法扩展包括如下步骤:步骤2.1,构建国密算法驱动模块,根据系统内核模块的GPL兼容许可权,对构建的国密算法驱动模块进行许可申明;步骤2.2,加载国密算法驱动模块,根据加密需要在系统内核动态加载时执行国密算法驱动模块,注册国密SM3算法结构体和国密SM4算法结构体,利用国密SM3算法结构体实现SM3算法接口的加载初始化,利用国密SM4算法结构体实现对国密SM4算法接口的加载初始化;步骤2.3,应用国密算法驱动模块,利用国密算法驱动模块在系统内核中实现IPsec-VPN保护分组流的功能;步骤2.4,卸载国密算法驱动模块,在应用加密完成后,注销国密SM4算法结构体和国密SM3算法结构体,从而实现SM3算法接口和SM4算法接口的卸载。在用户层采用加密引擎机制,不需要改动系统内核代码,只需要定义一个加密库和加密引擎库,在加密引擎库中实现需要扩展的密码算法接口,在使用前进行动态加载即可,能够透明地使用第三方提供的软件加密库或者硬件加密设备进行加密,非常方便;在内核层采用将扩展的算法功能实现模块化,在需要的时候在系统中动态地加载,这样做的好处是,只需要在系统内核中增加少量的代码,模块本身不编译进内核,从而控制了内核的大小,模块一旦被加载,将和系统内核其它的部分完全一样,系统内核可以直接调用模块所实现的功能,同时,系统内核只需要升级一次,模块和系统内核分开,其自身功能有问题时也不需要重新编译系统内核来升级内核。作为本专利技术的进一步限定方案,国密算法驱动模块为系统内核加密框架的一部分,用于系统内核自带的IPsec模块的加载调用。国密算法驱动模块作为系统内核加密框架的一部分,能够直接被系统内核自带的IPsec模块的加载调用,使用方便灵活。本专利技术的有益效果在于:(1)在用户层采用加密引擎机制,不需要改动系统内核代码,只需要定义一个加密库和加密引擎库,在加密引擎库中实现需要扩展的密码算法接口,在使用前进行动态加载即可,能够透明地使用第三方提供的软件加密库或者硬件加密设备进行加密,非常方便;(2)在内核层采用将扩展的算法功能实现模块化,在需要的时候在系统中动态地加载,这样做的好处是,只需要在系统内核中增加少量的代码,模块本身不编译进内核,从而控制了内核的大小,模块一旦被加载,将和系统内核其它的部分完全一样,系统内核可以直接调用模块所实现的功能,同时,系统内核只需要升级一次,模块和系统内核分开,其自身功能有问题时也不需要重新编译系统内核来升级内核。附图说明图1为本专利技术的openssl引擎工作流程示意图;图2为本专利技术的IPsec-VPN实现框架示意图。具体实施方式本专利技术公开了一种基于国密算法实现IPsec-VPN的方法,包括用户层算法扩展和内核层算法扩展,其中,用户层算法扩展包括如下步骤:步骤1.1,建立加密库和加密引擎库,在加密引擎库中存储SM2加密引擎,在加密库中存储SM2算法接口;步骤1.2,动态加载加密引擎库,根据加密需要在加密引擎库中选择SM2加密引擎,并利用SM2加密引擎调用加密库中的SM2算法接口;内核层算法扩展包括如下步骤:步骤2.1,构建国密算法驱动模块,根据系统内核模块的GPL兼容许可权,对构建的国密算法驱动模块进行许可申明;步骤2.2,加载国密算法驱动模块,根据加密需要在系统内核动态加载时执行国密算法驱动模块,注册国密SM3算法结构体和国密SM4算法结构体,利用国密SM3算法结构体实现SM3算法接口的加载初始化,利用国密SM4算法结构体实现对国密SM4算法接口的加载初始化;步骤2.3,应用国密算法驱动模块,利用国密算法驱动模块在系统内核中实现IPsec-VPN保护分组流的功能,国密算法驱动模块为系统内核加密框架的一部分,可被系统内核自带的IPsec模块的直接加载调用;步骤2.4,卸载国密算法驱动模块,在应用加密完成后,注销国密SM4算法结构体和国密SM3算法结构体,从而实现SM3算法接口和SM4算法接口的卸载。本专利技术是基于开源软件实现的IPsec-VPN,IPsec(InternetProtocolSecurity,因特网协议安全性)是为了在IP层提供提供高质量的、可互操作的、基于密码学的通信安全而制定的一套协议族,IPsec-VPN是指采用IPsec协议来实现远程接入的一种VPN(VirtualPrivateNetwork,虚拟专用网络)技术。IPsec-VPN支持Linux2.6以上内核。从Linux2.6内核开始,内核就自身带有IPsec模块。IPsec-VPN的作用是建立安全分组流的密钥交换,而保护分组流的功能在Linux内核中实现。建立安全分组流的密钥交换过程中用到非对称加密算法,保护分组流过程中用到哈希算法和对称加密算法。要使用国密算法就涉及到算法扩展的问题,算法扩展分两种情况:一是在用户层的算法扩展,二是内核层的算法扩展。针对用户层存在的问题,本专利技术利用openssl的加密引擎机制,不需要改动其核心代码,只需要定义一个加密引擎,在加密引擎中调用需要扩展的密码算法接口,在使用前进行动态加载即可,使openssl能本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/62/201610951107.html" title="一种基于国密算法实现IPsec‑VPN的方法原文来自X技术">基于国密算法实现IPsec‑VPN的方法</a>

【技术保护点】
一种基于国密算法实现IPsec‑VPN的方法,其特征在于,包括用户层算法扩展和内核层算法扩展,其中,用户层算法扩展包括如下步骤:步骤1.1,建立加密库和加密引擎库,在加密引擎库中存储SM2加密引擎,在加密库中存储SM2算法接口;步骤1.2,动态加载加密引擎库,根据加密需要在加密引擎库中选择SM2加密引擎,并利用SM2加密引擎调用加密库中的SM2算法接口;内核层算法扩展包括如下步骤:步骤2.1,构建国密算法驱动模块,根据系统内核模块的GPL兼容许可权,对构建的国密算法驱动模块进行许可申明;步骤2.2,加载国密算法驱动模块,根据加密需要在系统内核动态加载时执行国密算法驱动模块,注册国密SM3算法结构体和国密SM4算法结构体,利用国密SM3算法结构体实现SM3算法接口的加载初始化,利用国密SM4算法结构体实现对国密SM4算法接口的加载初始化;步骤2.3,应用国密算法驱动模块,利用国密算法驱动模块在系统内核中实现IPsec‑VPN保护分组流的功能;步骤2.4,卸载国密算法驱动模块,在应用加密完成后,注销国密SM4算法结构体和国密SM3算法结构体,从而实现SM3算法接口和SM4算法接口的卸载。

【技术特征摘要】
1.一种基于国密算法实现IPsec-VPN的方法,其特征在于,包括用户层算法扩展和内核层算法扩展,其中,用户层算法扩展包括如下步骤:步骤1.1,建立加密库和加密引擎库,在加密引擎库中存储SM2加密引擎,在加密库中存储SM2算法接口;步骤1.2,动态加载加密引擎库,根据加密需要在加密引擎库中选择SM2加密引擎,并利用SM2加密引擎调用加密库中的SM2算法接口;内核层算法扩展包括如下步骤:步骤2.1,构建国密算法驱动模块,根据系统内核模块的GPL兼容许可权,对构建的国密算法驱动模块进行许可申明;步骤2.2,加载国密算法驱动模块,根据加密需要在系统内核动态加载时执行国密算法驱动模块,...

【专利技术属性】
技术研发人员:朱红韦小刚李维娄征陆忞严东屠正伟纪元许洪华
申请(专利权)人:国网江苏省电力公司南京供电公司南京南瑞集团公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1