首页> 中国专利> 一种IPSec组件架构及VPN隧道建立方法

一种IPSec组件架构及VPN隧道建立方法

摘要

本申请实施例中提供了一种IPSec组件架构及VPN隧道建立方法。采用本申请中的方案,将包括IPSec核心组件的TEE侧模块组设置在TEE可信执行环境中运行,将包括IPSec协议封装模块及TCP/IP协议栈的REE侧模块组设置在REE驱动系统环境中运行,同时设置共用的存储单元以连接IPSec协议封装模块和IPSec核心组件。由于TEE驱动系统可独立于电子设备上的其它应用来访问硬件和软件安全资源,因此在VPN隧道建立过程中,其关键数据的处理过程可以避开常规操作系统的其它应用干扰。又因为IPSec协议封装模块及TCP/IP协议栈设置在REE驱动系统中,因此IP协议数据包封装处理流程可置于REE驱动系统处理,实现了在保证VPN隧道安全性的同时具备降低TEE驱动系统复杂度、负载度、提高处理效率以及降低开发成本的技术效果。

著录项

说明书

技术领域

本申请涉及网络安全技术,具体地,涉及一种IPSec组件架构及VPN隧道建立方法。

背景技术

现有技术中,TEE驱动系统即可信执行环境,该环境可以保证不被常规操作系统干扰的计算,因此称为“可信”。概括来讲TEE是一个与Rich OS并行运行的独立执行环境,为Rich OS环境提供安全服务。TEE基于ARM TrustZone而实现,可独立于Rich OS和其上的应用来访问硬件和软件安全资源。

REE驱动系统是所有移动设备通用的环境,运行通用的OS(Operating System),例如Android,IOS系统等。

而互联网安全协议(Internet Protocol Security,简称:IPSec),是一种通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族。由于其具有高度的安全性和机密性,目前通常被应用于构建VPN数据隧道,实现信息的安全传输。

目前,IPSec的协议组件是在通用操作系统REE中实现的,如手机Android系统,基于IPSec协议的VPN隧道构建的核心组件也均设置在REE的内核中。然而,由于REE操作系统的运行环境比较复杂,例如,通常装载有大量的,包括娱乐、新闻、游戏、视频类的各种应用,由此往往给攻击者带来可趁之机,利用系统漏洞窃取高价值信息。

可见,现有技术中存在着基于IPSec协议的VPN隧道构建过程中,因IPSec核心组件设置在REE操作系统下运行,容易因系统漏洞而造成敏感信息泄露的技术问题。

发明内容

本申请实施例中提供了一种IPSec组件架构及VPN隧道建立方法。

根据本申请实施例的第一个方面,提供了一种IPSec组件架构,应用于一电子设备,包括:

REE侧模块组,包括IPSec协议封装模块及TCP/IP协议栈;

TEE侧模块组,在TEE驱动系统中运行,包括IPSec核心组件;

存储单元,所述存储单元分别与所述IPSec协议封装模块、所述IPSec核心组件连接;

其中,所述REE侧模块组在REE驱动系统中运行,所述TEE侧模块组在TEE驱动系统中运行。

可选地,在所述电子设备安装有互联的TEE客户端、可信应用TA时,所述TEE客户端设置在REE驱动系统下运行,且所述可信应用TA设置在TEE驱动系统下运行。

可选地,所述IPSec核心组件包括:

IPSec认证信息库、IKE协商模块、SA数据库、加解密引擎、及IPSec控制模块,且所述IPSec核心组件未包括IPSec协议封装模块及TCP/IP协议栈。

根据本申请实施例的第二个方面,提供了一种VPN隧道建立方法,应用于如第一个方面所述的IPSec组件架构,所述方法包括:

通过所述TEE客户端发出第一指令,所述第一指令用以表征用户的VPN隧道建立需求;

所述IPSec协议封装模块基于所述第一指令封装IPSec/IP协议,获得IP协议封装包,且将所述IP协议封装包发送至所述存储单元;

通过所述TEE客户端发出第二指令,以使所述可信应用TA通知所述IPSec核心组件将建立VPN隧道的数据加载至所述IP协议封装包,获得VPN隧道数据包;

通过运行在TEE驱动系统下的可信外设发送所述VPN隧道数据包,以使所述电子设备在TEE驱动系统下构建VPN隧道。

可选地,所述可信应用TA通知所述IPSec核心组件将建立VPN隧道的数据加载至所述IP协议封装包,包括:

所述可信应用TA发出隧道构建信号;

所述IPSec核心组件中的IPSec控制模块在接收到所述隧道构建信号后,读取所述IPSec核心模块内的隧道认证信息及协商数据;

所述IPSec控制模块将所述隧道认证信息及协商数据加载至所述IP协议封装包,获得所述VPN隧道建立数据包。

可选地,所述IPSec控制模块在接收到所述隧道构建信号后,读取自身存储的隧道认证信息及协商数据,包括:

所述IPSec控制模块从所述IPSec核心组件中的IPSec认证信息库读取所述隧道认证信息;和/或,

所述IPSec控制模块从所述IPSec核心组件中的IKE协商模块读取所述协商数据。

可选地,所述电子设备在TEE驱动系统下构建VPN隧道,包括:

通过所述IPSec核心组件中的SA数据库加载或存储SA协议;和/或,

通过所述IPSec核心组件中的加解密引擎对构建VPN隧道过程中的收发数据进行加密和/或解密。

可选地,在所述通过所述TEE客户端发出第二指令之前,所述方法还包括:

所述TEE客户端发出携带VPN隧道建立需求信息的建立指令,用以使所述可信应用TA基于所述建立指令初始化VPN隧道建立的上下文环境。

根据本申请实施例的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理装置执行所述计算机程序时实现如第二个方面所述的可信VPN隧道建立方法中的步骤。

根据本申请实施例的第四个方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第二个方面所述的可信VPN隧道建立方法中的步骤。

采用本申请实施例中提供的一种IPSec组件架构及VPN隧道建立方法,将包括IPSec核心组件的TEE侧模块组设置在TEE可信执行环境中运行,将包括IPSec协议封装模块及TCP/IP协议栈的REE侧模块组设置在REE驱动系统环境中运行,同时设置共用的存储单元以连接IPSec协议封装模块和IPSec核心组件。由于TEE驱动系统可独立于电子设备上的其它应用来访问硬件和软件安全资源,因此在基于IPSec协议的VPN隧道建立过程中,其关键数据的处理过程可以避开常规操作系统的其它应用干扰。又因为IPSec协议封装模块及TCP/IP协议栈设置在REE驱动系统中,因此IP协议数据包封装处理流程可置于REE驱动系统处理,实现了在保证VPN隧道安全性的同时具备降低TEE驱动系统复杂度、负载度,以及降低开发成本的技术效果。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为一种IPSec组件架构的结构图;

图2为一种VPN隧道建立方法的流程图。

具体实施方式

在实现本申请的过程中,发明人发现现有技术存在着基于IPSec协议的VPN隧道构建过程中,因IPSec核心组件设置在通用执行环境(REE)下运行,容易因系统漏洞而造成敏感信息泄露的技术问题。

针对上述问题,本申请实施例中提供了一种IPSec组件架构及VPN隧道建立方法,将包括IPSec核心组件的TEE侧模块组设置在可信执行环境(TEE)中运行,将包括IPSec协议封装模块及TCP/IP协议栈的REE侧模块组设置在REE驱动系统环境中运行,并通过设置共用的存储单元以连接IPSec协议封装模块和IPSec核心组件。由于TEE驱动系统可独立于电子设备上的其它应用来访问硬件和软件安全资源,因此在基于IPSec协议的VPN隧道建立过程中,其关键数据的处理过程置于TEE中,避开常规操作系统的其它应用干扰。同时又因为IPSec协议封装模块及TCP/IP协议栈设置置于在REE中处理,实现了在保证VPN隧道终端侧安全性的同时,具备降低TEE系统复杂度、负载度,以及降低开发成本的技术效果。

本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。

为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

实施例一

请参考图1,本申请实施例一提供一种IPSec组件架构,应用于一电子设备,包括:

REE侧模块组11,包括IPSec协议封装模块111及TCP/IP协议栈112;

TEE侧模块组12,在TEE中运行,包括IPSec核心组件;

存储单元13,所述存储单元分别与所述IPSec协议封装模块111、所述IPSec核心组件连接;

其中,所述REE侧模块组在REE中运行,所述TEE侧模块组在TEE中运行。

所述IPSec协议封装模块可以是指实现对数据进行IP协议形式封装功能,或对IP协议数据解析功能的设备或软件模块。而进一步具体地,本申请实施例方案中所述IPSec协议封装模块可以不涉及对数据进行IPSec形式的加密、解析功能。

所述IPSec核心组件可以是指实现对IP协议的分组、加密、认证、收发等功能的核心组件集合。例如,所述IPSec核心组件可以包括IPSec认证信息库、IKE协商模块、SA数据库、加解密引擎、及IPSec处理模块等。

所述存储单元可以为具有数据存储功能的任意设备或介质,其可以是独立设置的存储器,也可以是电子设备中某设备集成的模块单元,其数量可以是一个或多个,其类型可以包括只读存储器(英文:Read Only Memory,简称:ROM)、随机存取存储器(英文:RandomAccess Memory,简称:RAM)和磁盘存储器等。

本申请实施例中的REE侧模块组及TEE侧模块组中还可根据需要设置其它相应的功能模块。例如,在REE中运行的用户操作模块等。

在本申请实施例的IPSec组件架构中,IPSec核心组件设置在TEE可信执行环境中运行,由于TEE驱动系统可独立于电子设备上的其它应用来访问硬件和软件安全资源,因此在基于IPSec协议的VPN隧道建立过程中,其关键数据的处理过程可以避开常规操作系统的其它应用干扰。同时又因为IPSec协议封装模块及TCP/IP协议栈设置在REE中运行处理,具有在保证VPN隧道终端侧安全性的同时起到降低TEE复杂度、负载度,以及降低开发成本的技术效果。

进一步地,在所述电子设备安装有互联的TEE客户端、可信应用TA时,所述TEE客户端设置在REE系统下运行,且所述可信应用TA设置在TEE系统下运行。

所述IPSec核心组件具体包括:IPSec认证信息库1211、IKE协商模块1212、SA数据库1213、加解密引擎1214、及IPSec控制模块1215,且IPSec协议封装模块及TCP/IP协议栈处置置于REE环境中处理,减轻TEE系统的负载,确保TEE系统的安全、稳定与高效。

实施例二

请参考图2,本申请实施例二提供一种VPN隧道建立方法,应用于如实施例一所述的IPSec组件架构,所述方法包括:

步骤201:通过所述TEE客户端发出第一指令,所述第一指令用以表征用户的VPN隧道建立需求。

在本步骤执行前,用户可以采取多种方式向TEE客户端表达所述VPN隧道建立需求。例如可以直接对TEE客户端进行操作,也可以通过对其它REE系统环境中的应用程序进行操作,然后由其它应用程序将对应生成的信号指令转发到TEE客户端即可。

步骤202:所述IPSec协议封装模块基于所述第一指令封装IPSec/IP协议,获得IP协议封装包,且将所述IP协议封装包发送至所述存储单元。

所述IP协议封装包可以是指采用IP协议格式构造的数据形式,其中并未承载业务数据,也即是空载的IP协议数据。

步骤203:通过所述TEE客户端发出第二指令,以使所述可信应用TA通知所述IPSec核心组件将建立VPN隧道的数据加载至所述IP协议封装包,获得VPN隧道数据包。

所述第二指令可以是SMC指令。

所述建立VPN隧道的数据可以包括隧道认证数据、IKE协商数据、IPSec协商数据,等等,只要是与VPN隧道建立过程中相关的、需要进行IP协议形式加载的参数都可以作为所述建立VPN隧道的数据。

本步骤执行时,可以通过所述可信应用TA向所述IPSec核心组件中具有控制功能的控制模块发送通知,进一步再由所述控制模块从存储单元上读取所述IP协议封装包,并控制IPSec核心组件中的各协作功能组件将所述建立VPN隧道的数据作为业务数据加载到所述IP协议封装包上,获得VPN隧道数据包。

需要提醒的是,生成所述VPN隧道数据包后,需要将其置于TEE系统下的存储介质中。

步骤204:通过运行在TEE驱动系统下的可信外设发送所述VPN隧道数据包,以使所述电子设备在TEE系统下构建VPN隧道。

所述可信外设可以为设置在TEE系统中运行的通信组件。由于所述VPN隧道数据包生成、存储、发送的过程均在TEE中进行,因此可起到进一步保证所述VPN隧道数据包安全性的技术效果。

对端设备在接收到所述VPN隧道数据包后,可以实现直接基于其承载的相关数据而完成VPN隧道的搭建。

进一步地,所述可信应用TA通知所述IPSec核心组件将建立VPN隧道的数据加载至所述IP协议封装包,包括:

所述可信应用TA发出隧道构建信号;

所述IPSec核心组件中的IPSec控制模块在接收到所述隧道构建信号后,读取所述IPSec核心模块内的隧道认证信息及协商数据;

所述IPSec控制模块将所述隧道认证信息及协商数据加载至所述IP协议封装包,获得所述VPN隧道建立数据包。

进一步地,所述IPSec控制模块在接收到所述隧道构建信号后,读取自身存储的隧道认证信息及协商数据,包括:

所述IPSec控制模块从所述IPSec核心组件中的IPSec认证信息库读取所述隧道认证信息;和/或,

所述IPSec控制模块从所述IPSec核心组件中的IKE协商模块读取所述协商数据。

进一步地,所述电子设备在TEE下构建VPN隧道,包括:

通过所述IPSec核心组件中的SA数据库加载或存储SA协议;和/或,

通过所述IPSec核心组件中的加解密引擎对构建VPN隧道过程中的收发数据进行加密和/或解密。

所述加解密引擎可以是指具备对数据进行IPSec形式加密、解析功能的模块组件。

进一步地,在所述通过所述TEE客户端发出第二指令之前,所述方法还包括:

所述TEE客户端发出携带VPN隧道建立需求信息的建立指令,用以使所述可信应用TA基于所述建立指令初始化VPN隧道建立的上下文环境。

同样的,所述VPN隧道建立需求信息也可以为用户通过各类形式的操作输入相应的需求,还可以是系统预设的各类环境条件参数。本领与普通技术人员可以根据需要而自行设置,本申请技术方案不作进一步限定。

前述图1实施例中的可信IPSec模组中的各种变化方式和具体实例同样适用于本实施例的VPN隧道构建方法,通过前述对可信IPSec模组的详细描述,本领域技术人员可以清楚的知道本实施例中VPN隧道构建方法的实施方法,所以为了说明书的简洁,在此不再详述。

本申请实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理装置执行所述计算机程序时实现如实施例二所述的VPN隧道建立方法中的步骤。

本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例二所述的隧道构建方法中的步骤。

由此可见,本申请实施例中的技术方案将包括IPSec核心组件的TEE侧模块组设置在可信执行环境(TEE)中运行,将包括IPSec协议封装模块及TCP/IP协议栈的REE侧模块组设置在REE驱动系统环境中运行,并通过设置共用的存储单元以连接IPSec协议封装模块和IPSec核心组件。由于TEE驱动系统可独立于电子设备上的其它应用来访问硬件和软件安全资源,因此在基于IPSec协议的VPN隧道建立过程中,其关键数据的处理过程可以避开常规操作系统的其它应用干扰。同时又因为IPSec协议封装模块及TCP/IP协议栈处理设置在REE中,因此IP协议数据包封装处理流程可置于REE中处理,实现了在保证VPN隧道安全性的同时,减轻TEE系统的负载,提供响应效率以及降低开发成本的技术效果。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号