本申请涉及电数字数据处理领域,尤其涉及arm架构应用处理器的加密通信方法及系统。
背景技术:
从狭义角度讲,片上系统(systemonchip,简称soc)是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲,soc是一个微小型系统。国内外学术界一般倾向将soc定义为将微处理器、模拟ip核、数字ip核和存储器(或片外存储控制接口)集成在单一芯片上,其通常是客户定制的或面向特定用途的标准产品。
arm(advancedriscmachine,进阶精简指令集机器)v8架构中application(应用)位于特权等级最低的el0级,guestos(linuxkernel、window等)位于el1级,提供虚拟化支持的hypervisor位于el2级,提供security支持的seuritymonitor位于el3级。只有在异常发生时(或者异常处理返回时),才能切换异常等级/特权等级(exceptionlevel,el)。当异常发生时,有两种选择,或停留在当前的el,或跳转到更高的el,el不能降级。同样,异常处理返回时,也有两种选择,或停留在当前el,或调到更低的el。
现有技术中,soc一块硬件设备上具有逻辑上分离的通信芯片如5g通信芯片和应用处理器,应用处理器在el1级运行一个应用操作系统例如安卓系统。应用操作系统和通信芯片通过应用操作系统管控的一块共享内存进行数据交换,即应用操作系统写入数据到共享内存,通信芯片读取共享内存。反之亦然。然而,由于soc集成方案,硬件已经固定,不便嵌入加密模块。此时如需加密通信,仅能使用调用式密码模块,而现有的加密通信方式存在被绕过的风险。
技术实现要素:
为了克服现有技术中存在的不足,本发明要解决的技术问题是提供一种arm架构应用处理器的加密通信方法及系统,其能大大降低加密被绕过的风险,使得通信更安全。
为解决上述技术问题,根据本发明的第一方面,提供一种arm架构应用处理器的加密通信方法,该方法包括:
使应用操作系统运行于所述应用处理器的第一级异常等级;
使至少进行内存分配管控的微内核系统运行于所述应用处理器的比所述第一级异常等级级别高的第二级异常等级,其中所述微内核系统将内存分为第一内存区域和第二内存区域;
微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行。
在实施例中,所述微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行包括:
响应于应用操作系统写入数据到第一内存区域,微内核系统捕获相应的写入事件;
微内核系统将第一内存区域和相应页表信息传给所述硬件加密模块;
所述硬件加密模块对第一内存区域中的数据进行加密,并将加密后数据写入到所述第二内存区域;
微内核系统通知通信芯片;
通信芯片从第二内存区域读取数据。
在实施例中,所述微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行包括:
响应于通信芯片将数据写入到第二内存区域,微内核系统将第二内存区域的数据传给所述硬件加密模块;
所述硬件加密模块对数据进行解密并将解密后数据写入到所述第一内存区域;
微内核系统通知应用操作系统;
应用操作系统从第一内存区域读取数据。
为解决上述技术问题,根据本发明的第二方面,提供一种arm架构应用处理器的加密通信系统,该系统包括:
应用处理器运行设置模块,用于使应用操作系统运行于所述应用处理器的第一级异常等级;
微内核系统运行设置模块,用于使至少进行内存分配管控的微内核系统运行于所述应用处理器的比所述第一级异常等级级别高的第二级异常等级,其中所述微内核系统将内存分为第一内存区域和第二内存区域;
读写设置模块,用于微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行。
现有技术通常由应用处理器操作系统直接调用加密模块,应用操作系统通常是内核部分代码非常大,例如linux内核代码在2千万行以上,存在很多漏洞的隐患。按照本发明,通过高执行等级的微内核系统对内存进行管控,对内存进行划分,应用操作系统仅与第一内存区域(共享内存)通信,通信芯片仅与第二内存区域通信,第一内存区域与第二内存区域之间的读写操作必须经硬件加密模块进行。微内核操作系统代码量在1万行左右,而且可以做形式化验证,软件代码安全性高于linux内核,从而大大降低了现有技术加密模块可能被绕过的风险,使得soc内的通信更安全。
结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。
附图说明
图1为根据本发明方法的一实施例的流程图;
图2为根据本发明系统的一实施例的框图。
为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。
具体实施方式
下面参照附图对本发明的实施方式和实施例进行详细说明。
通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。
图1示出了根据本发明的arm架构应用处理器的加密通信方法的一优选实施例的流程图。基于arm架构的应用处理器和通信芯片集成在soc芯片上,通信芯片为2g、3g、4g和/或5g通信芯片,在此以5g通信芯片为例进行说明。arm定义了异常等级来进行权限控制,分别是el0、el1、el2和el3,其异常等级级别依次递增。
在步骤s102,使应用操作系统如linux系统运行于应用处理器的el1级。
在步骤s104,使至少进行内存分配管控的微内核系统运行于应用处理器的el2级,微内核系统将内存分为第一内存区域(现有技术中也称为共享内存)和第二内存区域。在其它实施例中,微内核系统也可运行于el3级。
在步骤s106,响应于应用操作系统写入数据到第一内存区域,微内核系统捕获该写入事件。
在步骤s108,微内核系统将第一内存区域和相应页表信息传给硬件加密模块。硬件加密模块设置于应用处理器外部。如果使用现有soc芯片,由于其硬件已经固定,硬件加密模块设置在soc芯片外部。但硬件加密模块也可集成在soc芯片内部。
在步骤s110,硬件加密模块对第一内存区域中的数据进行加密,并将加密后数据写入到第二内存区域。
在步骤s112,微内核系统例如通过产生中断之类的信号通知通信芯片。
在步骤s114,通信芯片读取第二内存区域中的数据。
从网络传入的数据将执行逆向的过程,即,响应于通信芯片将数据写入到第二内存区域,微内核系统将第二内存区域的数据传给硬件加密模块;硬件加密模块对数据进行解密并将解密后数据写入到第一内存区域;微内核系统例如通过产生软中断信号通知应用操作系统;应用操作系统读取第一内存区域中的数据。
图2示出了根据本发明的arm架构应用处理器的加密通信系统的一优选实施例的框图,该系统包括:应用处理器运行设置模块202,用于使应用操作系统运行于所述应用处理器的第一级异常等级;微内核系统运行设置模块204,用于使至少进行内存分配管控的微内核系统运行于所述应用处理器的比第一级异常等级级别高的第二级异常等级,其中所述微内核系统将内存分为第一内存区域和第二内存区域;读写设置模块206,用于微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行。
在一实施例中,读写设置模块206包括:捕获子模块,用于响应于应用操作系统写入数据到第一内存区域,微内核系统捕获相应的写入事件;第一传输子模块,用于使得微内核系统将第一内存区域和相应页表信息传给所述硬件加密模块;加密子模块,用于使得所述硬件加密模块对第一内存区域中的数据进行加密,并将加密后数据写入到所述第二内存区域;第一通知子模块,用于使得微内核系统通知通信芯片;第一读取子模块,用于使得通信芯片从第二内存区域读取数据。
在另一实施例中,读写设置模块206还包括:第二传输子模块,用于响应于通信芯片将数据写入到第二内存区域,微内核系统将第二内存区域的数据传给所述硬件加密模块;解密子模块,用于使得所述硬件加密模块对数据进行解密并将解密后数据写入到所述第一内存区域;第二通知子模块,用于使得微内核系统通知应用操作系统;第二读取子模块,用于使得应用操作系统从第一内存区域读取数据。
在此所述的多个不同实施方式或者其特定特征、结构或特性可在本发明的一个或多个实施方式中适当组合。另外,在某些情形下,只要适当,流程图中和/或流水处理描述的步骤顺序可修改,并不必须精确按照所描述的顺序执行。另外,本发明的多个不同方面可使用软件、硬件、固件或者其组合和/或执行所述功能的其它计算机实施的模块或装置进行实施。本发明的软件实施可包括保存在计算机可读介质中并由一个或多个处理器执行的可执行代码。计算机可读介质可包括计算机硬盘驱动器、rom、ram、闪存、便携计算机存储介质如cd-rom、dvd-rom、闪盘驱动器和/或具有通用串行总线(usb)接口的其它装置,和/或任何其它适当的有形或非短暂计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。本发明可结合任何适当的操作系统使用。
除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。
前面说明了本发明的一些优选实施例,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。本领域技术人员可以在本发明技术构思的启发和不脱离本发明内容的基础上对本发明做出各种变型和修改,这些变型或修改仍落入本发明的保护范围之内。
1.一种arm架构应用处理器的加密通信方法,其特征在于,所述方法包括:
使应用操作系统运行于所述应用处理器的第一级异常等级;
使至少进行内存分配管控的微内核系统运行于所述应用处理器的比所述第一级异常等级级别高的第二级异常等级,其中所述微内核系统将内存分为第一内存区域和第二内存区域;
微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行。
2.根据权利要求1所述的方法,其特征在于,所述微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行包括:
响应于应用操作系统写入数据到第一内存区域,微内核系统捕获相应的写入事件;
微内核系统将第一内存区域和相应页表信息传给所述硬件加密模块;
所述硬件加密模块对第一内存区域中的数据进行加密,并将加密后数据写入到所述第二内存区域;
微内核系统通知通信芯片;
通信芯片从第二内存区域读取数据。
3.根据权利要求1或2所述的方法,其特征在于,所述微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行还包括:
响应于通信芯片将数据写入到第二内存区域,微内核系统将第二内存区域的数据传给所述硬件加密模块;
所述硬件加密模块对数据进行解密并将解密后数据写入到所述第一内存区域;
微内核系统通知应用操作系统;
应用操作系统从第一内存区域读取数据。
4.根据权利要求1所述的方法,其特征在于,所述应用处理器和所述通信芯片集成在片上系统型芯片上。
5.根据权利要求1所述的方法,其特征在于,所述通信芯片为2g、3g、4g和/或5g通信芯片。
6.一种arm架构应用处理器的加密通信系统,其特征在于,所述系统包括:
应用处理器运行设置模块,用于使应用操作系统运行于所述应用处理器的第一级异常等级;
微内核系统运行设置模块,用于使至少进行内存分配管控的微内核系统运行于所述应用处理器的比所述第一级异常等级级别高的第二级异常等级,其中所述微内核系统将内存分为第一内存区域和第二内存区域;
读写设置模块,用于微内核系统使得应用操作系统仅读写第一内存区域,通信芯片仅读写第二内存区域,第一和第二内存区域之间的读写经设置于应用处理器外部的硬件加密模块进行。
7.根据权利要求6所述的系统,其特征在于,所述读写设置模块包括:
捕获子模块,用于响应于应用操作系统写入数据到第一内存区域,微内核系统捕获相应的写入事件;
第一传输子模块,用于使得微内核系统将第一内存区域和相应页表信息传给所述硬件加密模块;
加密子模块,用于使得所述硬件加密模块对第一内存区域中的数据进行加密,并将加密后数据写入到所述第二内存区域;
第一通知子模块,用于使得微内核系统通知通信芯片;
第一读取子模块,用于使得通信芯片从第二内存区域读取数据。
8.根据权利要求7所述的系统,其特征在于,所述读写设置模块还包括:
第二传输子模块,用于响应于通信芯片将数据写入到第二内存区域,微内核系统将第二内存区域的数据传给所述硬件加密模块;
解密子模块,用于使得所述硬件加密模块对数据进行解密并将解密后数据写入到所述第一内存区域;
第二通知子模块,用于使得微内核系统通知应用操作系统;
第二读取子模块,用于使得应用操作系统从第一内存区域读取数据。
9.根据权利要求6所述的系统,其特征在于,所述应用处理器和所述通信芯片集成在片上系统型芯片上。
10.根据权利要求6所述的系统,其特征在于,所述通信芯片为2g、3g、4g和/或5g通信芯片。
技术总结