非对称加密认证方法和基于非对称加密认证的嵌入式设备的制作方法

文档序号:6522571阅读:220来源:国知局
非对称加密认证方法和基于非对称加密认证的嵌入式设备的制作方法
【专利摘要】本发明公开了一种非对称加密认证方法和基于非对称加密认证的嵌入式设备,该方法为在硬件系统中设置一个用于生成私钥的加密芯片;并在存储空间中开辟一块特定存储区域用于存储与加密和解密相关的数据;当操作系统收到从内核中其它驱动或上层应用程序传来的公钥时,激活认证过程以完成认证;认证过程包括以下步骤:1)通过加密芯片的驱动程序从加密芯片读出私钥;2)将私钥保存到所述的特定存储区域;3)使用RSA算法解密,完成认证,并将认证结果返回到操作系统。该非对称加密认证方法和基于非对称加密认证的嵌入式设备安全性高,能有效保障关键数据不被修改、删除或窃取。
【专利说明】非对称加密认证方法和基于非对称加密认证的嵌入式设备
【技术领域】
[0001]本发明涉及一种非对称加密认证方法和基于非对称加密认证的嵌入式设备。
【背景技术】
[0002]随着手持移动终端设备的技术发展,嵌入式设备(如平板电脑)已被广泛应用。目前嵌入式设备主要应用在普通民用领域,这些领域的需求具有通用性和普遍性,因此软硬件大多采用大众化、通用化的设计。
[0003]但在特殊应用领域,尤其是在保密、安全相关的应用领域,这种通用化的嵌入式设备并不适合,此时需要提供一些特定技术来满足保密、安全的相关要求。因此,有必要设计一种新型的加密认证方法和嵌入式设备,以满足特殊场合的保密、安全要求。

【发明内容】

[0004]本发明所要解决的技术问题是提供一种非对称加密认证方法和基于非对称加密认证的嵌入式设备,该非对称加密认证方法和基于非对称加密认证的嵌入式设备安全性高,能有效保障关键数据不被修改、删除或窃取。
[0005]发明的技术解决方案如下:
[0006]一种非对称 加密认证方法,在硬件系统中设置一个用于生成私钥的加密芯片;并在存储器中开辟一块特定存储区域用于存储与加密和解密相关的数据;所述的存储器为内存【RAM】或FLASH存储器;
[0007]当操作系统收到从内核中其它驱动程序或上层应用程序传来的公钥时,激活认证过程以完成认证;
[0008]认证过程包括以下步骤:
[0009]I)通过加密芯片的驱动程序从加密芯片读出私钥;
[0010]2)将私钥保存到所述的特定存储区域;
[0011]3)使用RSA算法对传入的公钥进行解密,完成认证,并将认证结果返回到操作系统。
[0012]所述的特定存储区域只由认证过程对应的程序使用,在解密过程中,私钥及与私钥相关的数据均存储在该特定存储区域内,而不使用系统其他存储区域(如临时内存等)进行存储,解密完成后对特定存储区域进行清空。
[0013]所述的在存储器中开辟一块特定存储区域的方法为:通过Boot Loader启动程序对存储器的物理地址空间进行分配,即分为的被隐藏的地址区段和不受限制的地址区段;隐藏地址区段对应于特定存储区域,又称为受限制的地址区段;在%於Loader启动程序中,通过配置处理器的基地址寄存器以及地址映射关系,使得Linux操作系统在建立MMU管理时,只在不受限制的地址区段上进行,而被隐藏的地址区段不参与MMU建立;使得在Linux系统启动后,MMU只能管理不受限制的物理地址区段;而被隐藏地址区段对MMU不可见,经过以上处理后,除指定的受信任的程序【如前述的认证过程所对应的程序,即认证程序】外,Linux操作系统及Linux操作系统上运行的程序都不能直接访问该被隐藏的地址区段;
[0014]通过指定的受信任的程序对该段隐藏的物理地址进行访问的实现方法为:该驱动程序不通过MMU的地址映射而是采用物理地址对该被隐藏的地址区段进行操作。
[0015]认证过程对应的程序【即认证程序】作为内核态程序运行在Linux操作系统中,受操作系统内核调度,内核中其它驱动或上层应用程序不能调用该程序。
[0016]一种基于非对称加密认证的嵌入式设备,包括处理器、IXD显示屏、内存、触摸屏控制器、FLASH存储器和USB接口;IXD显示屏、内存、触摸屏控制器、FLASH存储器和USB接口均与处理器连接;还包括用于生成私钥的加密芯片;所述的加密芯片与处理器连接;
[0017]还包括用于实现非对称加密认证的装置;所述用于实现非对称加密认证的装置包括:
[0018]在存储器中开辟一块特定存储区域用于存储与加密和解密相关的数据的装置;所述的存储器为内存【RAM】或FLASH存储器
[0019]当操作系统收到从内核中其它驱动程序或上层应用程序传来的公钥时,激活认证过程以完成认证的装置;
[0020]所述认证过程涉及到以下装置:
[0021]用于通过加密芯片的驱动程序从加密芯片读出私钥的装置;
[0022]用于将私钥保存到所述的特定存储区域的装置;
[0023]用于使用RSA算法对传入的公钥进行解密完成认证,并将认证结果返回到操作系统的装置。
[0024]嵌入式设备为平板电脑,所述的处理器为EXynos4412,FLASH存储器采用NANDFLASH存储器;内存为DDR3内存;还包括用于读写SD / TF器件的SD / TF插口 ;选用具有UART, I2C、SP1、PC1、USB任一接口的加密芯片,该加密芯片能提供2048位的私钥。
[0025]加密芯片采用TF32A09器件。
[0026]有益效果:
[0027]本发明的非对称加密认证方法和基于非对称加密认证的嵌入式设备,在整个嵌入式设备(如平板系统)中,只有该认证程序可以访问加密芯片及特定存储区域。涉及到私钥的操作均由该认证程序在特定存储区域(如内存或FLASH)内完成,内核中其它驱动或上层应用程序不能访问加密芯片及特定存储区域(如内存或FLASH)。此时实现这种机制的Linux操作系统就是一种具有安全特性的操作系统。基于这种安全操作系统实现的嵌入式设备(如平板系统)可对应用程序或驱动程序进行认证,确保这些数据或程序是受信的、安全的,从而增加了该嵌入式设备(如平板系统)的系统安全。
[0028]在本发明中,加密芯片提供私钥,公钥由内核中其它驱动或上层应用程序传入,认证程序在特定存储区域使用私钥对公钥进行认证,只有认证通过后,这些程序才能被操作系统调度运行,才有权对存储在内存中的数据或操作系统中使用到的数据进行操作,这种机制可以防止不受信任的程序对一些重要数据或信息的操作,增加了嵌入式设备的安全特性,因此可以广泛使用在对数·据或信息安全有安全保密要求的应用领域。
【专利附图】

【附图说明】[0029]图1为硬件系统原理框图;
[0030]图2为认证程序实现示意图。
【具体实施方式】
[0031]以下将结合附图和具体实施例对本发明做进一步详细说明:
[0032]实施例1:
[0033]如图1-2,硬件系统由一块生成私钥的加密芯片、Exynos4412处理器、触摸屏、串口、I2C 口、SPI 口、USB 口、FLASH、SD / TF、DDR3、电源等组成。软件系统是在 Linux 操作系统基础上,新增一种非对称加密认证程序。该程序需完成以下工作:1)从加密芯片中获取私钥,2)将私钥保存到特定存储区域,3)获取内核中其它驱动或上层应用程序传入的公钥,4)在特定存储区域(如内存或FLASH)中使用RSA非对称加密算法进行密钥认证。该认证程序对应用程序不可见,只由操作系统调度。
[0034]本发明选用EXynos4412作为处理器,该处理器在平板领域有很好的应用,其不仅处理能力及性能强,而且接口丰富,可外挂各种类型的储存器。集成串口可用于对平板的调试。集成USB 口用于平板的数据传输,也可用作平板初始化时的系统加载。存储器取用NAND FLASH和DDR3器件,也可取用外挂的SD / TF器件。可选用UART、I2C、SP1、PC1、USB等接口的加密芯片,其需实现RSA算法,并且可提供2048位的私钥。
[0035]在软件实施中,主要在Linux操作系统中增加一个认证程序或模块,该程序需实现以下功能:1)当操作系统启动后,认证程序就开始运行,并一直处于等待状态;2)当操作系统收到公钥后,会激活认证程序,此时认证程序取得公钥后运行;3)认证程序通过加密芯片的驱动程序读出私钥;4)将私钥保存到特定存储区域;5)认证程序使用RSA算法解jUJ,完成认证,并将认证结果返回。
[0036]加密芯片的驱动程序主要完成对加密芯片的接口驱动以及芯片内部寄存器的读写。本系统使用的加密芯片是用串口与CPU连接,因此需先驱动串口,然后通过串口按芯片要求的数据协议完成芯片内部寄存器的读写。不同加密芯片的接口和内部寄存器读写方法会不同,因此编写驱动时应参考对应的芯片手册。
[0037]特定存储区域是指在系统内开辟一块存储区域只由认证程序使用,其它程序不能使用。在认证程序解密过程中,涉及到私钥及其相关数据时,均应在特定存储区域内,不应使用系统其他存储空间(如临时内存),解密完成后应对特定存储区域进行清空。
[0038]认证程序是作为内核态程序运行在Linux操作系统中的,是受操作系统内核调度的,内核中其它驱动程序或上层应用程序不能调用该程序。由于内核中其它驱动程序或上层应用程序的创建和调度都是由操作系统中的进程管理来完成的,因此这些驱动或应用程序在创建或调度时,必须先提交自己的公钥给进程管理,然后再由进程管理激活认证程序进行认证。
[0039]本发明的核心在于在硬件系统包含一块生成私钥的加密芯片。该芯片用来提供私钥给认证程序,且只接受认证程序的操作。软件系统是在Linux操作系统基础上,新增一种非对称加密认证程序。该认证程序需完成以下工作:1)从加密芯片中获取私钥,2)将私钥保存到特定存储区域(如内存或FLASH),3)接收内核中其它驱动或上层应用程序传入的公钥,4)在特定存储区域(如内存或FLASH)中使用RSA非对称加密算法进行密钥认证。该认证程序对应用程序不可见,只由操作系统调度。在整个平板系统中,只有认证程序可以操作特定存储区域(如内存或FLASH),涉及私钥的操作均由认证程序在该特定存储区域(如内存或FLASH)完成。
[0040]这部分内存空间需要采用地址隐藏技术,即由Boot Loader程序划分出隐藏地址空间,这段隐藏地址不参与操作系统的MMU建立,因此不受操作系统中的MMU管理,这段隐藏地址只能由认证程序进行读写操作。
[0041]可对平板应用中的关键数据或程序进行认证,确保这些数据或程序是受信的、安全的,从而增加了平板系统的安全特性。
[0042]本发明的技术解决方案如下:
[0043]1.在硬件系统中设计一块独立的加密芯片。该芯片用来提供私钥。
[0044]2.在Linux操作系统中,新增一个认证模块或程序。该认证程序需完成下列工作:I)从加密芯片中获取私钥,2)将私钥保存到特定存储区域(如内存或FLASH),3)获取内核中其它驱动或应用程序传入的公钥,4)在特定存储区域(如内存或FLASH)中使用RSA非对称加密算法进行密钥认证。说明:认证程序是在Iinux操作系统中增加的运行在内核态的程序,认证程序不需要运行在特定存储区域,但是该认证程序操作的私钥必须保存在特定存储区域,而且对私钥进行的操作也必须在特定存储区域完成。特定存储区域的作用只是用来保存私钥,以及保护私钥在使用过程中的安全;私钥也必须存放在特定存储区域,不能存在其他地方)。
[0045]认证结果将返回并提供给操作系统使用,操作系统将根据认证结果判断该程序是否受信,从而决定该程序是否可在操作系统中被创建或调度,及其是否允许进行其他操作。这样可间接的对操作系统中使用到的数据或内存中的数据起到了保护作用。如果程序或进程认证不通过,将由操作系统的进程管理直接禁止或KILL该程序或进程,该程序或进程将不被授权在本操作系统中运行。
[0046]通过Boot Loader启动程序对存储器的物理地址空间进行分配,即分为的被隐藏的地址区段和不受限制的地址区段;隐藏地址区段对应于特定存储区域,又称为受限制的地址区段;
[0047]在Boot Loader启动程序中,通过配置处理器的基地址寄存器以及地址映射关系,使得Linux操作系统在建立MMU管理时,只在不受限制的地址区段上进行,而被隐藏的地址区段不参与MMU建立。这样在Linux系统启动后,MMU只能管理不受限制的物理地址区段(包括地址映射、页表建立等);而被隐藏地址区段对MMU不可见,换而言之MMU根本不知道。经过以上处理后,Linux操作系统及其上运行的程序都不能直接访问该被隐藏的地址区段,甚至不知道有这段地址的存在。驱动程序(如本发明的认证程序)采用物理地址(实地址)对这段地址区域进行操作,类似于UB00T程序中的地址操作方式,不考虑MMU的地址映射。对于不同的存储器件,该驱动程序实现的方法会不同,比如,若采用NAND FLASH存储器件作为隐藏地址的载体,因此该驱动程序必须针对NAND FLASH实现块设备的底层读写操作。
【权利要求】
1.一种非对称加密认证方法,其特征在于,在硬件系统中设置一个用于生成私钥的加密芯片;并在存储器中开辟一块特定存储区域用于存储与加密和解密相关的数据;所述的存储器为内存或FLASH存储器; 当操作系统收到从内核中其它驱动程序或上层应用程序传来的公钥时,激活认证过程以完成认证; 认证过程包括以下步骤: 1)通过加密芯片的驱动程序从加密芯片读出私钥; 2)将私钥保存到所述的特定存储区域; 3)使用RSA算法对传入的公钥进行解密,完成认证,并将认证结果返回到操作系统。
2.根据权利要求1所述的非对称加密认证方法,其特征在于,所述的特定存储区域只由认证过程对应的程序使用,在解密过程中,私钥及与私钥相关的数据均存储在该特定存储区域内,而不使用系统其他存储区域进行存储,解密完成后对特定存储区域进行清空。
3.根据权利要求1所述的非对称加密认证方法,其特征在于,所述的在存储器中开辟一块特定存储区域的方法为:通过Boot Loader启动程序对存储器的物理地址空间进行分配,即分为的被隐藏的地址区段和不受限制的地址区段;隐藏地址区段对应于特定存储区域,又称为受限制 的地址区段;在Boot Loader启动程序中,通过配置处理器的基地址寄存器以及地址映射关系,使得Linux操作系统在建立MMU管理时,只在不受限制的地址区段上进行,而被隐藏的地址区段不参与MMU建立;使得在Linux系统启动后,MMU只能管理不受限制的物理地址区段;而被隐藏地址区段对MMU不可见,经过以上处理后,除指定的受信任的程序外,Linux操作系统及Linux操作系统上运行的程序都不能直接访问该被隐藏的地址区段; 通过指定的受信任的程序对该段隐藏的物理地址进行访问的实现方法为:该驱动程序不通过MMU的地址映射而是采用物理地址对该被隐藏的地址区段进行操作。
4.根据权利要求1-3任一项所述的非对称加密认证方法,其特征在于,认证过程对应的程序作为内核态程序运行在Linux操作系统中,受操作系统内核调度,内核中其它驱动或上层应用程序不能调用该程序。
5.一种基于非对称加密认证的嵌入式设备,包括处理器、IXD显示屏、内存、触摸屏控制器、FLASH存储器和USB接口;IXD显示屏、内存、触摸屏控制器、FLASH存储器和USB接口均与处理器连接;其特征在于,还包括用于生成私钥的加密芯片;所述的加密芯片与处理器连接; 还包括用于实现非对称加密认证的装置;所述用于实现非对称加密认证的装置包括: 在存储器中开辟一块特定存储区域用于存储与加密和解密相关的数据的装置;所述的存储器为内存或FLASH存储器; 当操作系统收到从内核中其它驱动程序或上层应用程序传来的公钥时,激活认证过程以完成认证的装置; 所述认证过程涉及到以下装置: 用于通过加密芯片的驱动程序从加密芯片读出私钥的装置; 用于将私钥保存到所述的特定存储区域的装置; 用于使用RSA算法对传入的公钥进行解密完成认证,并将认证结果返回到操作系统的装置。
6.根据权利要求5所述的基于非对称加密认证的嵌入式设备,其特征在于,嵌入式设备为平板电脑,所述的处理器为ExynoS4412,FLASH存储器采用NAND FLASH存储器;内存为DDR3内存;还包括用于读写SD / TF器件的SD / TF插口 ;选用具有UART、I2C、SP1、PC1、USB任一接口的加密芯片,该加密芯片能提供2048位的私钥。
7.根据权利要求6所述的基于非对称加密认证的嵌入式设备,其特征在于,加密芯片采用TF32A09 器件。
【文档编号】G06F21/62GK103679037SQ201310655436
【公开日】2014年3月26日 申请日期:2013年12月5日 优先权日:2013年12月5日
【发明者】刘智臣, 肖弱, 谭永祥, 孙文德, 聂世刚, 黄波 申请人:长城信息产业股份有限公司, 长沙湘计海盾科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1