基于sd可信计算模块的嵌入式终端的制作方法

文档序号:6390276阅读:712来源:国知局
专利名称:基于sd可信计算模块的嵌入式终端的制作方法
技术领域
本实用新型涉及可信终端,应用于嵌入式系统中。
背景技术
以手机为典型代表的嵌入式系统技术的飞速发展为大众的生活带来了巨大的便利,移动办公、手机银行等业务的蓬勃发展将原来在桌面计算机上运行的应用扩展到移动设备上,成为嵌入式领域中发展最为迅猛的方向之一。同时,手机等移动终端的系统安全问题也变得越来越重要。黑客攻击、病毒泛滥使嵌入式系统的安全问题显得尤为严峻。其中桌面计算机原指台式计算机,后泛指个人计算机。可信计算(Trusted Computing)是指在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性,遵从TCG (Trusted ComputingGroup,可信计算组织)规范。可信计算被认为是解决计算机环境安全问题的一项重要技术,能够从系统的安全启动、身份鉴别、数据加密等多个方面保护计算机系统的安全。在桌面计算机系统中,针对可信计算,中国当前采用的是在计算机主板上加入具有中国自主产权的TCM (Trusted Cryptography Module,可信密码模块)模块,TCM模块与处理器总线之间通过LPC(Low Pin Count,低引脚数)接口连接以交换数据,实现安全启动、身份鉴别、数据加密等功能,可以解决桌面计算机的系统安全问题。参考文献《可信计算》,英文名称《Apractical Guide to Trusted Computing)),作者DavidChallener (美国)RyanCatherman (美国)等,机械工业出版社,2009年I
月I曰。TCM标准是由国家密码管理局(全称国家商用密码管理办公室)联合国内一些IT企业推出的,是一种安全芯片,能有效保护PC,防止非法用户访问电脑。2007年12月20日,联想、同方、中兴集成电路、方正等12家PC、软件、芯片企业联合举办了 “打造中国信息安全DNA——中国自主可信计算产品联合发布会”,全球首款符合TCM规范的芯片诞生。随着信息技术的快速发展和用户需求的差异化,对目前电脑安全技术也提出了新的要求,单一的技术手段已经不能满足目前信息安全防护的需求。目前的安全电脑技术实现在硬件方面主要包括Smart card智能安全系统、TPM (Trusted Platform Module,可信赖平台模块)芯片嵌入式安全系统、硬盘双网隔离技术等;在软件方面包括安全系统及一键恢复功能等。这些技术目前都有各自的优缺点,多技术应用结合,互相补充才能实现真正有效的防护。业界专家表示,作为一个独立的系统,TPM芯片在架构上位于PC系统的最底层,独立于操作系统运行,固化在芯片中的程序也可以保证TPM芯片的自身安全。TPM芯片之所以安全,最大的优势是可以通过硬件算法对数据、密钥文件进行存储和加密。TPM实际上是一个含有密码运算部件和存储部件的小芯片上的系统,由CPU、存储器、1/0、密码运算器、随机数产生器和嵌入式操作系统等部件组成。[0012]LPC接口,是Intel于1997年9月29日公布的一个取代传统ISA BUS的一种新接口规范,并且以免费开放授权的方式,供业界采用。随着嵌入式系统的迅猛发展,在嵌入式系统上实现可信计算也变得愈发重要,但是桌面的可信计算并不能直接照搬到嵌入式系统中来,目前嵌入式系统的可信计算还没有统一的标准可循。目前存在的主要问题包括I.功耗问题TCM模块是面向桌面设计的,在嵌入式系统中实现数据的实时加解密将严重影响系统的待机时间,这在嵌入式系统中是不可接受的。2.接口问题TCM通过LPC接口与处理器总线相连接,但在嵌入式设备中不存在LPC接口,如果需要连接TCM模块与处理器,需要在其中间加入一个转接设备,进行传输协议的转换。也有厂商在TCM模块中提供I2C (Inter — Integrated Circuit)接口,使之能够适合于嵌入式应用,但是I2C是一种低速的串行数据传输协议,速度只能达到400Kbps, 已不能够达到高性能嵌入式系统的要求。3.数据存储问题在桌面系统中,操作系统和应用程序等普通数据是存储在硬盘或者固态硬盘中,TCM模块只是作为存储密钥等重要信息和加解密的引擎来使用;但是在嵌入式系统中,普通数据很多是存储在SD卡中,考虑到嵌入式系统体积紧凑的要求,如果把密钥存储等重要信息存储、加解密引擎以及普通数据的存储集成到一个设备中,降低体积与成本、提升集成度与可靠性,对嵌入式系统将是非常重要的。有的嵌入式应用中采用USB接口的可信计算模块来解决可信计算的问题,但是这个模块只能存储了密钥等重要信息,并且在嵌入式终端体积越来越小的情况下,通过USB接口外接一个模块将非常不便。
发明内容基于嵌入式系统可信计算的状况,本实用新型提出一种基于SD可信计算模块的嵌入式终端,提高可信计算在嵌入式终端上的适用性,且便于终端的可信计算的升级。为了实现本实用新型的发明目的,依据本实用新型的一个方面的一种基于SD可信计算模块的嵌入式终端,包括含有嵌入式微处理器及外围设备的嵌入式系统,以及基于SD卡封装并通过SD控制接口与所述嵌入式系统通信的SD可信计算模块;其中,SD可信计算模块含有嵌入式硬核,以控制运行片上操作系统通过扩展的SD协议预留的接口命令与所述嵌入式系统通信。基于本实用新型的上述方案,提出了一种基于SD可信计算模块的嵌入式终端架构,可信模块作为卡内置于嵌入式终端内,比需要接在外部的USB接口设备更适合于嵌入式系统终端。基于SD可信计算模块的方案可以在不改变系统硬件结构,不增加额外硬件的情况下,仅仅通过升级系统的存储部件,也就是SD卡来实现,并可以通过软件升级的方式实现嵌入式系统的可信计算升级,对嵌入式终端的运行环境、数据进行保护,并提供嵌入式设备的身份鉴别。由于SD卡的广泛适用性,基于本实用新型的上述方案可广泛应用于各种手持信息安全设备、手持金融终端等,并且易于实施,具有良好的应用前景。

图I为基于SD可信计算模块的嵌入式终端的一种结构图[0023]图2为一种SD可信计算模块结构图。图3为一种SD可信计算模块存储分区结构。
具体实施方式
以下以一个具体实施例进行描述本发明的实施过程,但本实用新型不仅限于该实施例。本实用新型的内容涵盖任何在本实用新型核心内容上做修改、等效、替换的各种方案。基于可信模块的嵌入式终端如附图I所示,主要部件包括I. CPU :中央处理器,运行嵌入式系统的操作系统及应用软件,进行任务调度,实现嵌入式系统的控制功能;2.存储器包括ROM,RAM, FLASH,其中ROM用于存储不可修改的启动代码,RAM用 于存储运行中的变量,FLASH用于存储程序或者数据;3. IO接口用于实现外设访问及控制;4. SD可信计算模块实现可信计算的各项功能,并且可以实时进行数据加解密存储与读取操作。那么在SD可信计算模块中,包含支持可信计算的各种功能模块,通过以下内容完成与嵌入式系统的接口,详细如附图2所示。SD可信计算模块是硬件和固件的集合,提供密码算法支撑以及大容量数据安全存储功能。可信模块采用独立的封装形式,如SD卡,mini SD卡以及TF卡(T_Flash,又称microSD)的形式,适应不同的嵌入式系统终端的需求。SD可信计算模块采用国家密码管理局的密码算法,基本组成结构如附图2所示。I. SD控制接口 可信模块的输入输出硬件接口,提供对可信计算模块的资源访问;通过嵌入式系统的IO接口与嵌入式系统接口。2.随机数产生器是生成随机数的单元,所生成的随机数必须为真随机数,并满足国家商用密码随机数检测要求,为后续的身份验证提供基础;3.执行引擎SD可信计算模块的运算执行单元,一般为嵌入式CPU核,CPU上运行片上操作系统(COS, Chip Operating System),通过COS为外部访问可信模块提供接口。可信计算模块中的COS负责调度管理模块中的各种资源,嵌入式系统提供密码服务,实现可信计算的各项功能。嵌入式终端与可信模块之间的APDU (ApplicationProtocol Data Unit应用协议数据单元)通过SD协议扩展命令的数据域进行传输。4.非易失性存储器存储永久数据的存储单元,所说的永久数据包括密钥、身份等重要信息;还可以存放程序、运行数据等普通数据。两类数据共用SD卡内闪存存储空间,卡内空间以分区管理的方式进行存储,无需为密码增添新的存储介质。5.易失性存储器可信计算模块运行时临时数据的存储单元。6. SM2椭圆曲线密码算法引擎产生SM2密钥对和执行SM2加/解密、签名运算的单元;其密钥位长为m (m=256)。本方案采用的SM2算法,其密钥位长为m (m=256)。SM2算法包涵系统参数、密钥对生成、数字签名算法(SM2-1)、密钥交换协议(SM2-2)和加密算法(SM2-3)共五个部分。7. SM3引擎执行杂凑运算的单元;对于给定的长度为k(k〈264)的消息,SM3密码杂凑算法经过填充、迭代压缩和选裁,生成杂凑值。经预处理过的消息分组长度为512比特,本规范选用的杂凑值长度为256比特。SM3密码杂凑算法也是国家密码管理局编制的商用算法,用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。8. SMS4引擎执行对称密码运算的单元;本方案对称密码算法为SMS4。该算法是一个分组算法,该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。SMS4算法是一个分组算法,在诸如《完全映射及其密码学应用》中都有介绍。9. HMAC (keyed-Hash Message Authentication Code,密钥相关的哈希运算消息 认证码)引擎基于SM3引擎的计算消息认证码单元,利用密码杂凑算法SM3,对于给定的消息和验证双方共享的秘密信息产生长度为t个字节的消息验证码(t为消息验证码的长度,不小于16字节,不大于32字节),消息验证码产生过程采用FIPS PUB 198中的消息验证码产生过程。HMAC,利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC引擎提供HMAC运算作用( I)验证TPM接受的授权数据和认证数据;(2)确认TPM接受到的命令请求是已授权的请求,并且,命令在传送的过程中没有被改动过。定义HMAC需要一个加密用散列函数(表示为H,可以是MD5或者SHA-I)和一个密钥K。我们用B来表示数据块的字节数。(以上所提到的散列函数的分割数据块字长B=64),用L来表示散列函数的输出数据字节数(MD5中L=16,SHA-I中L=20)。鉴别密钥的长度可以是小于等于数据块字长的任何正整数值。应用程序中使用的密钥长度若是比B大,则首先用使用散列函数H作用于它,然后用H输出的L长度字符串作为在HMAC中实际使用的密钥。一般情况下,推荐的最小密钥K长度是L个字节。上述基于SD可信计算模块的嵌入式终端的核心内容在于提出一种基于SD卡实现的可信计算模块,在此终端中,采用基于SD接口的可信计算模块,实现嵌入式可信计算的功能,同时将SD卡的大容量存储空间分区,在同一张卡上,实现密钥等重要信息与普通数据分区存储而无需额外的存储设备,该SD卡既是可信计算模块,实现密钥等重要信息的存储以及加解密引擎功能,同时实现普通数据的加密存储功能。嵌入式终端与可信模块之间通信通过扩展SD协议的预留命令来实现。根据SD协议的规范,用户可以自定义扩展命令实现新的功能,这些新的命令是对SD规范中标准指令的补充,与SD普通的存储命令不会冲突。因此本方案遵从SD协议的规范设计,普通SD卡的存储功能不会受到影响。SD可信计算模块的存储空间即为模块内的闪存存储设备,无需额外的非易失存储空间,其闪存存储空间分配如附图3,分为系统保留区,密钥区和文件系统区。系统保留区为SD卡内系统预留,用于存储SD卡闪存的配置信息以及坏块的预留块,配置信息在可信模块生产过程中由专用闪存写入工具烧录,烧录完成后由可信模块内驱动软件管理,该内容为常规SD卡生产过程,不是本方案阐述重点。密钥区用于存放密钥、身份信息等。文件系统区用于存放数据文件。三个分区中,只有文件系统区对嵌入式系统的操作系统是可见的,对不支持可信计算的嵌入式系统,可信模块表现为普通SD卡,对支持可信计算的嵌入式系统,可以通过SD扩展命令访问密钥区和文件系统区。SD可信计算模块为嵌入式终端提供产生随机数、签名、完整性度量、数据加密功倉泛。随机数产生基于SD可信计算模块中的真随机数发生模块,随机数是嵌入式设备与可信模块之间身份认证的基础,嵌入式设备与可信模块对同一个随机数进行加解密运算 用以确认对方的身份合法性。基于真随机数的身份认证机制保证密钥在任何情况下只能通过加解密统一随机数的方式进行访问而不会被外部实体直接读取访问,确保密钥的安全性。SD可信计算模块采用密码模块密钥(EK)标识其身份,在SD可信计算模块拥有者授权下,在可信模块内部生成一个SM2密钥对,作为可信模块身份密钥(MIK),用于对模块内部的信息进行数字签名,实现可信模块身份认证和可信模块完整性报告,从而向外部证实可信模块内部数据的可信性。密码模块密钥在可信模块使用前由一个可信方签署,确保其可信性,用于建立密码模块密钥与可信密码模块的一一对应关系。假设M是一份消息,KPRI-S和KPUB-S分别是可信模块的一对身份密钥(MIK)的私钥和公钥。可信模块用KPRI-S对消息M进行加密,得到KPRI-S {M},并将KPRI-S {M}发送给指定的嵌入式设备,该嵌入式设备将得到的KPRI-S {M}用KPUB-S进行解密,得到消息M,即可证明消息M是可信模块身份认证密钥私钥为KPRI-S的嵌入式设备发送的。完整性度量是指计算部件的度量值计算度量值的过程是执行杂凑运算的过程。杂凑运算输入的数据应为度量者指定的可以表征被度量者特性的数据,定义为一个部件。杂凑运算输出的杂凑值即为被度量者的完整性度量值。度量者应把度量值记入可信模块中指定的PCR (平台配置寄存器)中。记入的办法是新PCR值=密码杂凑算法(原PCR值Μ度量值),Μ符号表示两段数据拼接起来形成一段数据的操作。在可信模块中的杂凑算法为SM3,输入消息分组长度为512比特,所得的杂凑值长度为256比特。可信模块把度量值记入可信密码模块内相应的平台配置寄存器(PCR)中。如果一个部件序列中的各部件完整性度量值存储在同一个PCR中,则采用压缩存储方式,即从第一个部件开始,将该部件完整性度量值与目标PCR的已有存储值拼接,进行杂凑运算,然后将所得结果再存储于该PCR中,依次类推,最后一个部件的完整性度量值存储操作完成后,所得值即为该部件序列存储到PCR中的完整性度量值。通过完整性度量的操作可以确认嵌入式系统各部件的完整性。如果一个部件完整性度量存储于PCR中的值与预期结果不符,则表示该部件的完整性被破坏,系统安全受到侵害,嵌入式系统将进入异常处理程序,尝试恢复该部件或者退出系统。数据加解密采用对称密码算法SMS4实现。在可信密码模块内部进行加解密操作时,需要通过命令指定密钥,数据分组长度为128比特,密钥长度为128比特。SD可信计算模块与嵌入式系统的命令交互基于SD协议的扩展命令进行,定义嵌入式系统与可信模块之间交互的基本命令接口,主要功能包括取随机数、身份验证、身份签名、完整性度量、更新密钥、安全读写。SD协议的标准命令如表I所示。表I SD协议命令格式
权利要求1.一种基于SD可信计算模块的嵌入式终端,其特征在于,包括含有嵌入式微处理器及外围设备的嵌入式系统,以及基于SD卡封装并通过SD控制接口与所述嵌入式系统通信的SD可信计算模块; 其中,SD可信计算模块含有嵌入式硬核,以控制运行片上操作系统通过扩展的SD协议预留的接口命令与所述嵌入式系统通信。
专利摘要本实用新型公开了一种基于SD可信计算模块的嵌入式终端,包括含有嵌入式微处理器及外围设备的嵌入式系统,以及基于SD卡封装并通过SD控制接口与所述嵌入式系统通信的SD可信计算模块;其中,SD可信计算模块含有嵌入式硬核,以控制运行片上操作系统通过扩展的SD协议预留的接口命令与所述嵌入式系统通信。本实用新型基于SD可信计算模块的嵌入式终端提高可信计算在嵌入式终端上的适用性,且便于终端的可信计算的升级。
文档编号G06F21/00GK202600714SQ20122024297
公开日2012年12月12日 申请日期2012年5月28日 优先权日2012年5月28日
发明者孙涛, 陈德展 申请人:山东神思电子技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1