CN105718807A - 基于软tcm和可信软件栈的安卓***及其可信认证***与方法 - Google Patents

基于软tcm和可信软件栈的安卓***及其可信认证***与方法 Download PDF

Info

Publication number
CN105718807A
CN105718807A CN201610052539.0A CN201610052539A CN105718807A CN 105718807 A CN105718807 A CN 105718807A CN 201610052539 A CN201610052539 A CN 201610052539A CN 105718807 A CN105718807 A CN 105718807A
Authority
CN
China
Prior art keywords
android
software
module
tcm
soft
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610052539.0A
Other languages
English (en)
Other versions
CN105718807B (zh
Inventor
周福才
易海
高健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201610052539.0A priority Critical patent/CN105718807B/zh
Publication of CN105718807A publication Critical patent/CN105718807A/zh
Application granted granted Critical
Publication of CN105718807B publication Critical patent/CN105718807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

基于软TCM和可信软件栈的安卓***及其可信认证***与方法,属于安卓***及安卓软件安全技术领域。包括建立在现有安卓***的安卓内核上的软TCM、可信软件栈和软TCM驱动模块;软TCM与可信软件栈嵌入现有安卓***的***库;可信软件栈在软TCM之上;软TCM驱动模块位于现有安卓***的Linux内核层;可信认证***包括该安卓***启动的可信认证***和安卓软件安装的可信认证***;可信认证方法包括该安卓***的启动可信认证过程和安卓软件安装的可信认证过程。本发明基于可信计算的思想来解决安卓操作***的安全性的一体化解决方案,增加了对安卓终端完整性的检验,加强了***底层的防护,确保安卓终端中的第三方软件也是安全可信的,从而使得安卓终端绝对安全。

Description

基于软TCM和可信软件栈的安卓***及其可信认证***与方法
所属技术领域
本发明属于安卓***及安卓软件安全技术领域,特别涉及一种基于软TCM和可信软件栈的安卓***及其可信认证***与方法。
背景技术
信息时代的技术发展是瞬息万变的,移动互联网技术无疑是当今世界的大热门,而安卓操作***的市场占有率很高,其安全问题也越来越受到人们的重视。目前安卓***面临的安全问题主要有两个方面:
(1)恶意攻击:攻击者利用安卓***自身的漏洞,对安卓***发起恶意的攻击,从而窃取用户的隐私信息用于非法的用途,甚至直接获得安卓***的控制权,可以轻松获取和修改用户的数据信息,后果不堪设想。
(2)恶意软件:恶意软件开发者通常对应用商店热门的应用进行篡改,加入恶意的代码并重新打包上传至应用商店。还有的恶意开发者自己编写一个看似正常的软件,却悄悄加入了恶意代码。这两种恶意的做法都是在用户不知情的情况下执行恶意的代码,对用户的利益构成了威胁。
针对目前安卓***所面临的安全问题,研究人员将更多的注意力集中在安卓***的第三方软件的安全检测上,认为只要***上安装的第三方软件是安全的,安卓***也就不会受到任何的安全威胁。顺着这个思路,目前比较广泛的做法是基于第三方软件行为的分析,即结合已知的恶意行为模式,判断第三方软件是否具有恶意倾向。
但是,这种针对第三方软件检测的方法非常依赖检测前就建设好的恶意代码库,也就是有着恶意行为的代码库,建设这种代码库的过程十分困难,必须有足够的人力和财力的支持,并经过长时间的积累才可以完成。不过就算能够完成恶意行为代码库的建设,由于安卓***下的恶意软件编写门槛低,参与其中的人有很多,恶意软件更新速度很快,所以对于大量的新出现的恶意软件是不可能防范的。与此同时,基于第三方软件行为的分析忽略了安卓***终端的完整性,即没有考虑到安卓***底层受到篡改的情况,位于安卓***应用层的检测对于安卓***的底层安全防范鞭长莫及,如果安卓***本身在用户不知道的情况下遭到某种方式的攻击和篡改,对第三方软件的检测也便失去了意义。
可见,相比于更新速度极快的恶意软件,目前安卓***安全防范的方案相对滞后、被动,并且忽视了安卓***终端的完整性检验,对于安卓***的底层安全显得无能为力。
发明内容
针对现有技术存在的不足,本发明提出一种基于软TCM和可信软件栈的安卓***及其可信认证***与方法。
本发明所采用的技术方案是这样实现的:
一种基于软TCM和可信软件栈的安卓***,包括建立在现有安卓***的安卓内核上的软TCM、可信软件栈和软TCM驱动模块;所述软TCM与所述可信软件栈嵌入现有安卓***的***库,为安卓***的应用程序提供调用环境;其中所述可信软件栈在所述软TCM之上,作为外部访问与管理软TCM的接口;所述软TCM驱动模块,位于现有安卓***的Linux内核层,根据Linux***特性编写,用于为所述软TCM提供安卓***的底层调用接口;
所述软TCM,包括:
设备驱动模块:为可信软件栈与软TCM提供通信接口;从可信软件栈接收对软TCM的控制与查询命令、需要软TCM对其进行存储或加解密的数据;
命令解释和收发模块:对设备驱动模块传入的命令进行解析,转换为软TCM内部的命令后,发送至命令执行模块;对设备驱动模块传入的需要软TCM对其进行存储或加解密的数据进行解析后,发送给加解密模块;
加解密模块:利用中国国家密码管理局发布的SM2椭圆曲线公钥密码算法、SM3密码杂凑算法和SM4分组密码算法对解析后的需要软TCM对其进行加解密的数据进行加解密处理;
命令执行模块:执行软TCM的内部命令;
内部密钥和数据存储模块:含有模拟PCR寄存器;用于维护软TCM内部密钥、数据,实现软TCM内部状态和部分数据的永久存储;
一种基于软TCM和可信软件栈的安卓***的可信认证***,包括:该安卓***启动的可信认证***和安卓软件安装的可信认证***;
所述该安卓***启动的可信认证***,包括:
度量模块:在安卓***的启动执行模块LinuxKernel、InitProcess、Services、Zygote/Vm、SystemServer、ServerManager中均加入度量模块;从启动执行模块LinuxKernel的度量模块开始,依次由当前启动执行模块的度量模块对下一个启动执行模块进行度量,每个度量模块使用软TCM中的SM3密码杂凑算法计算下一个启动执行模块的哈希值即度量值并发送给该度量模块所在的启动执行模块的扩展PCR操作模块;
扩展PCR操作模块:在安卓***的启动执行模块LinuxKernel、InitProcess、Services、Zygote/Vm、SystemServer、ServerManager中均加入扩展PCR操作模块;从启动执行模块LinuxKernel的扩展PCR操作模块开始,依次由当前启动执行模块的扩展PCR操作模块将模拟PCR寄存器中的当前值与对应的度量模块发送的度量值进行合并;使用软TCM中的SM3密码杂凑算法计算合并结果的哈希值,并用该哈希值更新模拟PCR寄存器中的当前值,并将模拟PCR寄存器中的当前值写入日志;
完整性认证模块:在安卓***的启动执行模块HomeLauncher中加入完整性认证模块;所述完整性认证模块用于将模拟PCR寄存器中的当前值与预设值进行比较,若模拟PCR寄存器中的当前值不等于预设值,则将日志中记录的模拟PCR寄存器中的当前值逐一与预先获取的未经篡改的模拟PCR寄存器中的当前值记录进行对比,定位被篡改的启动执行模块后,输出安卓***启动认证失败及被篡改的启动执行模块的提示信息;
所述安卓软件安装的可信认证***,包括:
CA:接收软件开发者的公钥及身份信息;核实软件开发者身份;向可信的软件开发者颁发代码签名证书,并提供安卓软件签名与打包工具;
安卓软件签名模块:从软件开发者处获取可信的未签名安卓软件和代码签名证书;使用软TCM中的SM3密码杂凑算法计算该可信的未签名安卓软件的哈希值;使用软件开发者的私钥和软TCM中的SM2椭圆曲线公钥密码算法对该可信的未签名安卓软件的哈希值进行加密,得到数字签名;将数字签名和该可信的未签名安卓软件以及代码签名证书进行打包,形成签名后的安卓软件;
代码签名证书验证模块:用于验证代码签名证书的有效性,若无效,则停止安卓软件安装过程,若有效,则将该代码签名证书的有效验证结果发送给安卓软件完整性认证模块;数字签名验证模块:使用软件开发者的公钥对数字签名进行解密,得到可信的未签名安卓软件的哈希值Hash_1;使用软TCM中的SM3密码杂凑算法,对未知来源的不可信的未签名安卓软件计算哈希值Hash_2;判断Hash_1与Hash_2是否相等,否,则停止安卓软件安装过程,是,则将该数字签名有效验证结果发送给安卓软件完整性认证模块;
安卓软件完整性认证模块:如果代码签名证书的有效验证结果和数字签名有效验证结果均收到,则继续进行安卓软件安装过程,否则停止安卓软件安装过程;
所述基于软TCM和可信软件栈的安卓***的可信认证方法,包括:该安卓***的启动可信认证过程和安卓软件安装的可信认证过程;
所述该安卓***的启动可信认证过程,包括如下步骤:
步骤1:开机启动安卓***;
步骤2:首先将安卓***的启动执行模块LinuxKernel作为控制节点,使用软TCM中的SM3密码杂凑算法计算下一个启动执行模块InitProcess的哈希值即度量值;
步骤3:将模拟PCR寄存器中的当前值与InitProcess的度量值进行合并;
步骤4:使用软TCM中的SM3密码杂凑算法计算合并结果的哈希值,并用该哈希值更新模拟PCR寄存器中的当前值,并将模拟PCR寄存器中的当前值写入日志;
步骤5:依次将安卓***的启动执行模块InitProcess、Services、Zygote/Vm、SystemServer和ServerManager分别作为控制节点,按照步骤2至4的方法,分别计算出Services的度量值及对应的模拟PCR寄存器中的当前值、Zygote/Vm的度量值及对应的模拟PCR寄存器中的当前值、SystemServer度量值及对应的模拟PCR寄存器中的当前值、ServerManager度量值及对应的模拟PCR寄存器中的当前值、HomeLauncher度量值及对应的模拟PCR寄存器中的当前值;
步骤6:将模拟PCR寄存器中的当前值与预设值进行比较,若模拟PCR寄存器中的当前值不等于预设值,则将日志中记录的模拟PCR寄存器中的当前值逐一与预先获取的未经篡改的模拟PCR寄存器中的当前值记录进行对比,定位被篡改的启动执行模块后,输出安卓***启动认证失败及被篡改的启动执行模块的提示信息。
所述安卓软件安装的可信认证过程,包括如下步骤:
步骤1:CA验证软件开发者信息并向软件开发者颁发证书;
步骤1-1:软件开发者产生私钥对,即公钥和私钥;
步骤1-2:软件开发者与CA签订合同并支付费用;
步骤1-3:软件开发者向CA提供其身份信息及公钥;
步骤1-4:CA核实软件开发者身份;
步骤1-5:CA向可信的软件开发者颁发代码签名证书,并提供安卓软件签名与打包工具;
步骤2:软件开发者对安卓软件进行签名;
步骤2-1:软件开发者获取可信的未签名安卓软件和CA颁发的代码签名证书;
步骤2-2:使用软TCM中的SM3密码杂凑算法计算该可信的未签名安卓软件的哈希值;
步骤2-3:使用软件开发者的私钥和软TCM中的SM2椭圆曲线公钥密码算法对该可信的未签名安卓软件的哈希值进行加密,得到数字签名,并将数字签名和该可信的未签名安卓软件以及代码签名证书进行打包,形成待上传到应用商店的签名后的安卓软件;
步骤3:对从应用商店获得的待安装的安卓软件进行认证;
步骤3-1:对待安装的安卓软件进行解压,得到代码签名证书、数字签名和未知来源的不可信的未签名安卓软件;
步骤3-2:验证代码签名证书的有效性,若无效,则停止安卓软件安装过程,若有效,则将该代码签名证书的有效验证结果发送给步骤3-6;
步骤3-3:使用软件开发者的公钥对数字签名进行解密,得到可信的未签名安卓软件的哈希值Hash_1;
步骤3-4:使用软TCM中的SM3密码杂凑算法,对未知来源的不可信的未签名安卓软件计算哈希值Hash_2;
步骤3-5:判断Hash_1与Hash_2是否相等,否,则停止安卓软件安装过程,是,则将该数字签名有效验证结果发送给步骤3-6;
步骤3-6:如果代码签名证书的有效验证结果和数字签名有效验证结果均收到,则继续进行安卓软件安装过程,否则停止安卓软件安装过程;
本发明的有益效果是:本发明基于可信计算的思想来解决安卓操作***的安全性的一体化解决方案,可信计算技术可为安卓操作***带来新的安全特性,如更加强壮的引导链,完成TCM的软件实现,不依赖硬件,并采用中国国家密码管理局发布的加解密算法,提高了数据的安全能力,同时加入可信计算软件栈,内嵌于安卓***本身,增加了对安卓终端完整性的检验,加强了***底层的防护,通过与数字证书相结合,增加了交互认证的能力。本***的应用前景体现在以下三个方面:
首先,与安卓终端的硬件厂商合作,进入消费电子市场,即人们常用的安卓手机、平板,本***对安卓终端完整性的检验和对安卓***底层的防护,能很好的保护安卓终端的安全。
其次,还可以将本***应用于对安全的要求更加严格的情境,如国家的涉密企业或机关。当然,这仍需要与安卓终端的硬件厂商合作,在保证安卓终端完整性和底层安全的基础上,加上第三方安卓软件的证书***,确保安卓终端中的第三方软件也是安全可信的,从而使得安卓终端绝对安全。
最后,可以为研究机构、学校、安卓终端硬件厂商提供实验环境,支持他们编写或移植基于安卓***的可信软件。
附图说明
图1为本发明一种实施方式的基于软TCM和可信软件栈的安卓***的结构示意图;
图2为本发明一种实施方式的软TCM与可信软件栈及软TCM驱动模块的位置关系示意图;
图3为本发明一种实施方式的启动可信认证***的结构示意图;
图4为本发明一种实施方式的安卓软件安装的可信认证***的结构示意图;
图5为本发明一种实施方式的安卓***的启动可信认证过程示意图;
图6为本发明一种实施方式的安卓软件安装的可信认证过程示意图;
图7为本发明一种实施方式的软件开发者对安卓软件进行签名的流程图;
图8为本发明一种实施方式的对待安装的安卓软件进行认证的流程图;
图9(a)为本发明一种实施方式的安卓***模拟器启动过程截图;(b)为(a)的安卓***模拟器启动完成截图;
图10为本发明一种实施方式的安卓软件签名与打包工具截图;
图11为本发明一种实施方式的安卓软件签名与打包过程截图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
本发明引入了可信计算的思想和可信计算的标准,同时结合安卓***自身的特点,将软TCM和可信软件栈与安卓***相结合得到本实施方式的基于软TCM和可信软件栈的安卓***,如图1所示,包括建立在现有安卓***的安卓内核上的软TCM、可信软件栈和软TCM驱动模块;所述软TCM与所述可信软件栈嵌入现有安卓***的***库,为安卓***的应用程序提供调用环境;其中所述可信软件栈在所述软TCM之上,如图2所示,作为外部访问与管理软TCM的接口;所述软TCM驱动模块,位于现有安卓***的Linux内核层,根据Linux***特性编写,用于为所述软TCM提供安卓***的底层调用接口,如图2所示;
本实施方式的软TCM与可信软件栈其实就是作为现有安卓***的底层库文件,为安卓***的应用程序提供调用环境,而现有安卓***的底层库文件一般都位于安卓***架构的***运行层,***运行库层可以分为两个部分,分别是***库和安卓运行库。其中***库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带,包含了由C/C++编写的库。所以,软TCM与可信软件栈嵌入安卓***的***库中。
可信计算的核心便是TCM(TrustedCryptographyModule,可信密码模块),由于TCM为硬件,其成本和能耗使其难以在移动终端广泛应用,因此本发明根据安卓操作***的特点,完成TCM的软件实现,为移植到安卓操作***做好准备。本实施方式的软TCM,主要用于为现有安卓***提供数据安全存储、数据加解密及可信认证的功能,如图2所示,其包括:
设备驱动模块:为可信软件栈与软TCM提供通信接口;从可信软件栈接收对软TCM的控制与查询命令、需要软TCM对其进行存储或加解密的数据;
命令解释和收发模块:对设备驱动模块传入的命令进行解析,转换为软TCM内部的命令后,发送至命令执行模块;对设备驱动模块传入的需要软TCM对其进行存储或加解密的数据进行解析后,发送给加解密模块;
加解密模块:利用中国国家密码管理局发布的SM2椭圆曲线公钥密码算法、SM3密码杂凑算法和SM4分组密码算法对解析后的需要软TCM对其进行加解密的数据进行加解密处理;
命令执行模块:执行软TCM的内部命令;
内部密钥和数据存储模块:含有模拟PCR寄存器;用于维护软TCM内部密钥、数据,实现软TCM内部状态和部分数据的永久存储;
在本实施方式的基于软TCM和可信软件栈的安卓***中,将可信软件开发所需要的环境内置于安卓***运行库中的***库中,所以,无论是基于安卓***下的Linux内核的可信软件开发,还是基于安卓***的可信软件开发,第三方开发者或研究人员都能顺利的调用可信计算标准的软件栈中的函数。同时,由于本***是基于安卓***完成的,得益于安卓***良好的架构和开放性,使得第三方开发者和研究人员能够很容易的为本***编写丰富的功能模块,对本***功能进行扩展。
在本实施方式的基于软TCM和可信软件栈的安卓***中,将可信软件(例如本发明的基于软TCM和可信软件栈的安卓***的可信认证***)开发所需要的环境即可信软件栈,内置于现有安卓***的***库中。所以,无论是基于安卓***下的Linux内核的可信软件开发,还是基于安卓***的可信软件开发,第三方开发者或研究人员都能顺利的调用可信软件栈中的标准函数。同时,由于本***是基于现有安卓***完成的,得益于现有安卓***良好的架构和开放性,使得第三方开发者和研究人员能够很容易的为本***编写丰富的功能模块,对本***功能进行扩展。
本实施方式的基于软TCM和可信软件栈的安卓***的可信认证***,包括:该安卓***的启动可信认证***和安卓软件安装的可信认证***;
本实施方式的启动可信认证***,如图3所示,包括:
度量模块:在安卓***的启动执行模块LinuxKernel、InitProcess、Services、Zygote/Vm、SystemServer、ServerManager中均加入度量模块;从启动执行模块LinuxKernel的度量模块开始,依次由当前启动执行模块的度量模块对下一个启动执行模块进行度量,每个度量模块使用软TCM中的SM3密码杂凑算法计算下一个启动执行模块的哈希值即度量值并发送给度量模块所在的启动执行模块的扩展PCR操作模块;
扩展PCR操作模块:在安卓***的启动执行模块LinuxKernel、InitProcess、Services、Zygote/Vm、SystemServer、ServerManager中均加入扩展PCR操作模块;从启动执行模块LinuxKernel的扩展PCR操作模块开始,依次由当前启动执行模块的扩展PCR操作模块将模拟PCR寄存器中的当前值与对应的度量模块发送的度量值进行合并;使用软TCM中的SM3密码杂凑算法计算合并结果的哈希值,并用该哈希值更新模拟PCR寄存器中的当前值,并将模拟PCR寄存器中的当前值写入日志;
完整性认证模块:在安卓***的启动执行模块HomeLauncher中加入完整性认证模块;所述完整性认证模块用于将模拟PCR寄存器中的当前值与预设值进行比较,若模拟PCR寄存器中的当前值不等于预设值,则将日志中记录的模拟PCR寄存器中的当前值逐一与预先获取的未经篡改的模拟PCR寄存器中的当前值记录进行对比,定位被篡改的启动执行模块后,输出安卓***启动认证失败及被篡改的启动执行模块的提示信息;
本实施方式的安卓软件安装的可信认证***,如图4所示,包括:
CA:接收软件开发者的公钥及身份信息;核实软件开发者身份;向可信的软件开发者颁发代码签名证书,并提供安卓软件签名与打包工具;
安卓软件签名模块:从软件开发者处获取可信的未签名安卓软件和代码签名证书;使用软TCM中的SM3密码杂凑算法计算该可信的未签名安卓软件的哈希值;使用软件开发者的私钥和软TCM中的SM2椭圆曲线公钥密码算法对该可信的未签名安卓软件的哈希值进行加密,得到数字签名;将数字签名和该可信的未签名安卓软件以及代码签名证书进行打包,形成签名后的安卓软件;
代码签名证书验证模块:用于验证代码签名证书的有效性,若无效,则停止安卓软件安装过程,若有效,则将该代码签名证书的有效验证结果发送给安卓软件完整性认证模块;
数字签名验证模块:使用软件开发者的公钥对数字签名进行解密,得到可信的未签名安卓软件的哈希值Hash_1;使用软TCM中的SM3密码杂凑算法,对未知来源的不可信的未签名安卓软件计算哈希值Hash_2;判断Hash_1与Hash_2是否相等,否,则停止安卓软件安装过程,是,则将该数字签名有效验证结果发送给安卓软件完整性认证模块;
安卓软件完整性认证模块:如果代码签名证书的有效验证结果和数字签名有效验证结果均收到,则继续进行安卓软件安装过程,否则停止安卓软件安装过程;
本实施方式的基于软TCM和可信软件栈的安卓***的可信认证方法,包括:该安卓***的启动可信认证方法和安卓软件安装的可信认证方法;
在安卓***启动的时候,先要进行启动的可信认证,在操作***可信的启动认证中,确定信任链和信任根是关键所在,然后再通过信任链进行完整性度量。本发明结合安卓***自身的特点,引入可信计算度量启动序列的思想,设计了本实施方式的安卓***的启动可信认证方法。
本实施方式的该安卓***的启动可信认证方法,如图5所示,包括如下步骤:
步骤1:开机启动安卓***;
步骤2:首先将安卓***的启动执行模块LinuxKernel作为控制节点,使用软TCM中的SM3密码杂凑算法计算下一个启动执行模块InitProcess的哈希值即度量值;
步骤3:将模拟PCR寄存器中的当前值与InitProcess的度量值进行合并;
步骤4:使用软TCM中的SM3密码杂凑算法计算合并结果的哈希值,并用该哈希值更新模拟PCR寄存器中的当前值,并将模拟PCR寄存器中的当前值写入日志;
步骤5:依次将安卓***的启动执行模块InitProcess、Services、Zygote/Vm、SystemServer和ServerManager分别作为控制节点,按照步骤2至4的方法,分别计算出Services的度量值及对应的模拟PCR寄存器中的当前值、Zygote/Vm的度量值及对应的模拟PCR寄存器中的当前值、SystemServer度量值及对应的模拟PCR寄存器中的当前值、ServerManager度量值及对应的模拟PCR寄存器中的当前值、HomeLauncher度量值及对应的模拟PCR寄存器中的当前值;
步骤6:将模拟PCR寄存器中的当前值与预设值进行比较,若模拟PCR寄存器中的当前值不等于预设值,则将日志中记录的模拟PCR寄存器中的当前值逐一与预先获取的未经篡改的模拟PCR寄存器中的当前值记录进行对比,定位被篡改的启动执行模块后,输出安卓***启动认证失败及被篡改的启动执行模块的提示信息。
由步骤2至步骤5可以看出,本实施方式中信任链从LinuxKernel开始,经过InitProcess、Services、Zygote/Vm、SystemServer、ServerManager,直到HomeLauncher结束。安卓***启动的信任链,在信任当前某一启动执行模块的前提下,由该启动执行模块去评估下一个启动执行模块的安全性,确定下一启动执行模块可信之后再将控制权转交给下一个启动执行模块,然后依次向后推进。其中任链的起点LinuxKernel,也就是信任根。因为安卓***自身的架构是很科学的,它有着严格的访问控制机制,这涉及到安卓***的稳定与安全,所以Linux内核之上的安卓***部分访问Linux内核是受到十分严格的控制的,目前还没有发现任何能够在安卓***的上层修改Linux内核镜像的手段,所以这里可以认为,Linux内核这个源头是安全可信的,即LinuxKernel作为信任根是完全没有问题的。而没有选择LinuxKernel的上一级BootLoader,是因为BootLoader是在操作***内核之前运行,初始化硬件设备、建立内存空间映射图,从而将***的软硬件环境带到一个合适状态,以便为最终调用操作***内核准备好正确的环境。看起来BootLoader是个更好的选择,因为它更加贴近硬件,恶意攻击者更难接近。不过也正因为BootLoader过于贴近硬件,所以对其修改难度大,甚至会造成安卓***的不稳定,所以选择了真实情况下同样是安全可信且修改起来更加实际的LinuxKernel。
在确定了信任链和信任根后,操作***从信任根开始沿着信任链进行启动,认证的关键操作莫过于度量了。这个词看起来十分抽象,但可以把它理解为,度量是对文件进行哈希运算。
从图5中可以看出,在信任链上,每个启动执行模块都会先对其下一个启动执行模块进行度量,再用度量值进行扩展PCR操作,随后该启动执行模块将控制权移交到下一启动执行模块,再将此时模拟PCR寄存器中的当前值写入日志文件中。即从信任根LinuxKernel开始,沿着信任链逐级向下,一直到HomeLauncher,也就是信任链的结尾。信任链上的各个启动执行模块都进行过度量之后,会校验模拟PCR寄存器中的值。如果结果符合预期,则简单的输出结果、更新日志文件即可;如果结果不符合预期,通过对比日志文件,发现被篡改的启动执行模块,并马上向用户发出警告。
需要说明的是,对安卓***启动的完整性度量不能强制保证启动过程是可信的,本实施方式的启动可信认证***并不能控制安卓终端的执行过程,也就不能阻止安卓***的启动过程,只能忠实的记录启动过程的完整性状态,在安卓***启动完成之后,通过校验模拟PCR寄存器中的值来判断启动过程是否可信,得出结论后交由用户处理。
本实施方式的安卓软件安装的可信认证方法,如图6所示,包括如下步骤:
步骤1:CA(CertificateAuthority,证书认证机构)验证软件开发者信息并向软件开发者颁发证书;
步骤1-1:软件开发者产生私钥对,即公钥和私钥;
步骤1-2:软件开发者与CA签订合同并支付费用;
步骤1-3:软件开发者向CA提供其身份信息及公钥;
步骤1-4:CA核实软件开发者身份;
步骤1-5:CA向可信的软件开发者颁发代码签名证书,并提供安卓软件签名与打包工具;
步骤2:软件开发者对安卓软件进行签名,如图7所示;
步骤2-1:软件开发者获取可信的未签名安卓软件和CA颁发的代码签名证书;
步骤2-2:使用软TCM中的SM3密码杂凑算法计算该可信的未签名安卓软件的哈希值;
步骤2-3:使用软件开发者的私钥和软TCM中的SM2椭圆曲线公钥密码算法对该可信的未签名安卓软件的哈希值进行加密,得到数字签名,并将数字签名和该可信的未签名安卓软件以及代码签名证书进行打包,形成待上传到应用商店的签名后的安卓软件;
步骤3:对从应用商店获得的待安装的安卓软件进行认证,如图8所示;
步骤3-1:对待安装的安卓软件进行解压,得到代码签名证书、数字签名和未知来源的不可信的未签名安卓软件;
步骤3-2:验证代码签名证书的有效性,若无效,则停止安卓软件安装过程,若有效,则将该代码签名证书的有效验证结果发送给步骤3-6;
步骤3-3:使用软件开发者的公钥对数字签名进行解密,得到可信的未签名安卓软件的哈希值Hash_1;
步骤3-4:使用软TCM中的SM3密码杂凑算法,对未知来源的不可信的未签名安卓软件计算哈希值Hash_2;
步骤3-5:判断Hash_1与Hash_2是否相等,否,则停止安卓软件安装过程,是,则将该数字签名有效验证结果发送给步骤3-6;
步骤3-6:如果代码签名证书的有效验证结果和数字签名有效验证结果均收到,则继续进行安卓软件安装过程,否则停止安卓软件安装过程;
为安卓软件加入代码签名证书和数字签名可以极大改善***的安全状况,对于软件开发者、安卓软件、用户、操作***以及证书管理机构都会带来益处。比如,对于软件开发者而言,可以为软件开发者的程序提供抗伪造能力,有助于建立软件开发者信誉和保护软件开发者的知识产权;对于软件而言,数字签名保护其不被篡改,表明其软件开发者身份,避免其被反病毒软件误判为恶意程序;对于用户而言,数字签名提供了简便的判别未知应用程序可信性、完整性的方法;对于操作***而言,代码签名证书和数字签名的使用可以通过检查安卓软件的数字签名完整性,识别其是否被恶意代码感染,是保证***安全稳定的基础;对于证书管理机构而言,这会规范软件开发者程序的发布流程,推动产业的良心发展。
实施测试
1.基于软TCM和可信软件栈的安卓***的启动可信认证测试。
软TCM和可信软件栈是在安卓***启动后自动启动并一直运行在***后台的,而二者的启动与运行是以守护进程的形式运行于安卓***的底层Linux内核中的,软TCM和可信软件栈的守护进程分别是tcmd和tcsd,接下来从安卓***启动开始进行测试。
首先,打开嵌入了软TCM和可信软件栈的安卓***模拟器(没变),安卓***模拟器需要在Ubuntu***的终端中启动,输入下面的命令行,其中-kernel参数指定了需要加载的Linux内核的路径,而-sdcard参数指定了SD卡镜像路径。
$emulator–kernel/home/neusec/goldfish/arch/arm/boot/zImage–sdcardsdcard.img
稍加等待,模拟器便开始启动,模拟器启动中和启动成功的截图如图9(a)和9(b)所示。
在安卓***启动完成之后,使用谷歌提供的ADB工具,可以进入安卓***的shell程序,因为安卓***是基于Linux内核建立的,所以这个shell可以看成是安卓***的终端,通过它可以查看、管理安卓***中的方方面面,如文件管理、进程管理等等。
在安卓***启动之后,在adbshell中,使用ps命令,可以查看安卓***中的进程。查看的进程中,关键的两个进程如下所示,即tcmd和tcsd。其中tcmd是软TCM的守护进程,而tcsd是可信计算软件栈的守护进程。可以看到,这两个进程都属于root用户,也就是安卓***底层的Linux内核。这两个进程是常驻在安卓***后台的,因为是基于Linux内核且由C++编写,所以占用***的资源极少,不必担心常驻的两个进程会影响到安卓***的性能。
安卓***的启动可信认证是在每一次安卓***启动的时候自动完成的,不过在启动之后,可以利用adbshell工具,使用cat命令查看/data/log/start_log路径下的日志文件。日志文件是每次安卓***启动的时候写入的有关安卓***启动流程中各个步骤的安全信息,如下所示。
#catstart_log
*********************************
2015-5-17,18:40:48
Initprocessissafe
Serviceissafe
Zygote/Vmissafe
Systemserverissafe
Servermanagerissafe
Homelauncherissafe
AndroidOSissafeandstartupsuccess!
*********************************
*********************************
2015-5-19,10:50:18
Initprocessissafe
Serviceissafe
Zygote/Vmissafe
Systemserverissafe
Servermanagerissafe
Homelauncherissafe
AndroidOSissafeandstartupsuccess!
*********************************
可以看出,日志文件存储了安卓***每次启动的信息,包括启动时间、InitProcess安全信息、Services安全信息、Zygote/Vm安全信息、Systemserver安全信息、Servermanager安全信息、Homelauncher安全信息、安卓***启动总结性信息。如上面两条信息所示,安卓***都成功且安全的启动了。
2.基于软TCM和可信软件栈的安卓***的安卓软件安装的可信认证测试。
CA向可信的软件开发者提供的安卓软件签名与打包工具的截图如图10所示。该工具使用之前由CA颁发的代码签名证书,对软件开发者编写好的安卓软件进行签名,签名后的安卓软件输出到源安卓软件路径下并在命名时在安卓软件名称后面加上_with_signature。本次测试使用QQ软件作为例子,测试的过程截图如图11所示。
接下来对基于软TCM和可信软件栈的安卓***进行测试,此部分的测试是通过谷歌提供的ADB工具进行的,adbinstall/path命令是在安卓***中安装指定路径下的应用程序,其原理是先将安卓软件上传至安卓***中,再调用安卓***的软件安装过程对安卓软件进行解析和安装。
首先先对未签名的安卓软件进行测试,测试结果为:
$adbinstall./mobileqq.apk
668KB/s(23649161bytesin33.533s)
pkg:/data/local/tmp/mobileqq.apk
Error:Authenticationfailed
可以看到,经过了33.533秒的上传,安卓软件上传到安卓***中的路径为/data/local/tmp/mobileqq.apk,最后的安装结果为Error:Authenticationfailed,即认证失败,这是由于该安卓软件是没有经过签名的,所以不能通过安装前的认证。
接着再对已签名的安卓软件进行测试,测试结果为:
$adbinstall./mobileqq_with_signature.apk
1425KB/s(21477847bytesin14.715s)
pkg:/data/local/tmp/mobileqq_with_signature.apk
realpkg:/data/local/tmp/com/tencent.mobileqq.apk
Successed
可以看到,经过了14.715秒的上传,安卓软件上传到安卓***中的路径为/data/local/tmp/mobileqq_with_signature.apk,同时也显示了经过解压的安卓软件的路径为/data/local/tpm/com.tencent.mobileqq.apk,最后的安装结果为Success,即安装成功。

Claims (4)

1.一种基于软TCM和可信软件栈的安卓***,其特征在于:其包括建立在现有安卓***的安卓内核上的软TCM、可信软件栈和软TCM驱动模块;所述软TCM与所述可信软件栈嵌入现有安卓***的***库,为安卓***的应用程序提供调用环境;其中所述可信软件栈在所述软TCM之上,作为外部访问与管理软TCM的接口;所述软TCM驱动模块,位于现有安卓***的Linux内核层,根据Linux***特性编写,用于为所述软TCM提供安卓***的底层调用接口;
所述软TCM,包括:
设备驱动模块:为可信软件栈与软TCM提供通信接口;从可信软件栈接收对软TCM的控制与查询命令、需要软TCM对其进行存储或加解密的数据;
命令解释和收发模块:对设备驱动模块传入的命令进行解析,转换为软TCM内部的命令后,发送至命令执行模块;对设备驱动模块传入的需要软TCM对其进行存储或加解密的数据进行解析后,发送给加解密模块;
加解密模块:利用中国国家密码管理局发布的SM2椭圆曲线公钥密码算法、SM3密码杂凑算法和SM4分组密码算法对解析后的需要软TCM对其进行加解密的数据进行加解密处理;
命令执行模块:执行软TCM的内部命令;
内部密钥和数据存储模块:含有模拟PCR寄存器;用于维护软TCM内部密钥、数据,实现软TCM内部状态和部分数据的永久存储。
2.权利要求书1所述的基于软TCM和可信软件栈的安卓***的可信认证***,其特征在于:其包括:该安卓***启动的可信认证***和该安卓***的安卓软件安装的可信认证***;
所述该安卓***启动的可信认证***,包括:
度量模块:在安卓***的启动执行模块LinuxKernel、InitProcess、Services、Zygote/Vm、SystemServer、ServerManager中均加入度量模块;从启动执行模块LinuxKernel的度量模块开始,依次由当前启动执行模块的度量模块对下一个启动执行模块进行度量,每个度量模块使用软TCM中的SM3密码杂凑算法计算下一个启动执行模块的哈希值即度量值并发送给度量模块所在的启动执行模块的扩展PCR操作模块;
扩展PCR操作模块:在安卓***的启动执行模块LinuxKernel、InitProcess、Services、Zygote/Vm、SystemServer、ServerManager中均加入扩展PCR操作模块;从启动执行模块LinuxKernel的扩展PCR操作模块开始,依次由当前启动执行模块的扩展PCR操作模块将模拟PCR寄存器中的当前值与对应的度量模块发送的度量值进行合并;使用软TCM中的SM3密码杂凑算法计算合并结果的哈希值,并用该哈希值更新模拟PCR寄存器中的当前值,并将模拟PCR寄存器中的当前值写入日志;
完整性认证模块:在安卓***的启动执行模块HomeLauncher中加入完整性认证模块;所述完整性认证模块用于将模拟PCR寄存器中的当前值与预设值进行比较,若模拟PCR寄存器中的当前值不等于预设值,则将日志中记录的模拟PCR寄存器中的当前值逐一与预先获取的未经篡改的模拟PCR寄存器中的当前值记录进行对比,定位被篡改的启动执行模块后,输出安卓***启动认证失败及被篡改的启动执行模块的提示信息;
所述该安卓***的安卓软件安装的可信认证***,包括:
CA:接收软件开发者的公钥及身份信息;核实软件开发者身份;向可信的软件开发者颁发代码签名证书,并提供安卓软件签名与打包工具;
安卓软件签名模块:从软件开发者处获取可信的未签名安卓软件和代码签名证书;使用软TCM中的SM3密码杂凑算法计算该可信的未签名安卓软件的哈希值;使用软件开发者的私钥和软TCM中的SM2椭圆曲线公钥密码算法对该可信的未签名安卓软件的哈希值进行加密,得到数字签名;将数字签名和该可信的未签名安卓软件以及代码签名证书进行打包,形成签名后的安卓软件;
代码签名证书验证模块:用于验证代码签名证书的有效性,若无效,则停止安卓软件安装过程,若有效,则将该代码签名证书的有效验证结果发送给安卓软件完整性认证模块;数字签名验证模块:使用软件开发者的公钥对数字签名进行解密,得到可信的未签名安卓软件的哈希值Hash_1;使用软TCM中的SM3密码杂凑算法,对未知来源的不可信的未签名安卓软件计算哈希值Hash_2;判断Hash_1与Hash_2是否相等,否,则停止安卓软件安装过程,是,则将该数字签名有效验证结果发送给安卓软件完整性认证模块;
安卓软件完整性认证模块:如果代码签名证书的有效验证结果和数字签名有效验证结果均收到,则继续进行安卓软件安装过程,否则停止安卓软件安装过程。
3.权利要求1所述的基于软TCM和可信软件栈的安卓***的可信认证方法,其特征在于:包括:该安卓***启动的可信认证过程和该安卓***的安卓软件安装的可信认证过程;
所述该安卓***的启动可信认证过程,包括如下步骤:
步骤1:开机启动安卓***;
步骤2:首先将安卓***的启动执行模块LinuxKernel作为控制节点,使用软TCM中的SM3密码杂凑算法计算下一个启动执行模块InitProcess的哈希值即度量值;
步骤3:将模拟PCR寄存器中的当前值与InitProcess的度量值进行合并;
步骤4:使用软TCM中的SM3密码杂凑算法计算步骤3合并结果的哈希值,并用该哈希值更新模拟PCR寄存器中的当前值,并将模拟PCR寄存器中的当前值写入日志;
步骤5:依次将安卓***的启动执行模块InitProcess、Services、Zygote/Vm、SystemServer和ServerManager分别作为控制节点,按照步骤2至4的方法,分别计算出Services的度量值及对应的模拟PCR寄存器中的当前值、Zygote/Vm的度量值及对应的模拟PCR寄存器中的当前值、SystemServer度量值及对应的模拟PCR寄存器中的当前值、ServerManager度量值及对应的模拟PCR寄存器中的当前值、HomeLauncher度量值及对应的模拟PCR寄存器中的当前值;
步骤6:将模拟PCR寄存器中的当前值与预设值进行比较,若模拟PCR寄存器中的当前值不等于预设值,则将日志中记录的模拟PCR寄存器中的当前值逐一与预先获取的未经篡改的模拟PCR寄存器中的当前值记录进行对比,定位被篡改的启动执行模块后,输出安卓***启动认证失败及被篡改的启动执行模块的提示信息;
所述该安卓***的安卓软件安装的可信认证过程,包括如下步骤:
步骤1:CA验证软件开发者信息并向软件开发者颁发代码签名证书,并提供安卓软件签名与打包工具;
步骤2:软件开发者对安卓软件进行签名;
步骤2-1:软件开发者获取可信的未签名安卓软件和CA颁发的代码签名证书;
步骤2-2:使用软TCM中的SM3密码杂凑算法计算该可信的未签名安卓软件的哈希值;
步骤2-3:使用软件开发者的私钥和软TCM中的SM2椭圆曲线公钥密码算法对该可信的未签名安卓软件的哈希值进行加密,得到数字签名,并将数字签名和该可信的未签名安卓软件以及代码签名证书进行打包,形成待上传到应用商店的签名后的安卓软件;
步骤3:对从应用商店获得的待安装的安卓软件进行认证;
步骤3-1:对待安装的安卓软件进行解压,得到代码签名证书、数字签名和未知来源的不可信的未签名安卓软件;
步骤3-2:验证代码签名证书的有效性,若无效,则停止安卓软件安装过程,若有效,则将该代码签名证书的有效验证结果发送给步骤3-6;
步骤3-3:使用软件开发者的公钥对数字签名进行解密,得到可信的未签名安卓软件的哈希值Hash_1;
步骤3-4:使用软TCM中的SM3密码杂凑算法,对未知来源的不可信的未签名安卓软件计算哈希值Hash_2;
步骤3-5:判断Hash_1与Hash_2是否相等,否,则停止安卓软件安装过程,是,则将该数字签名有效验证结果发送给步骤3-6;
步骤3-6:如果代码签名证书的有效验证结果和数字签名有效验证结果均收到,则继续进行安卓软件安装过程,否则停止安卓软件安装过程。
4.根据权利要求3所述的基于软TCM和可信软件栈的安卓***的可信认证方法,其特征在于:所述该安卓***的安卓软件安装的可信认证过程中步骤1包括如下步骤:
步骤1-1:软件开发者产生私钥对,即公钥和私钥;
步骤1-2:软件开发者与CA签订合同并支付费用;
步骤1-3:软件开发者向CA提供其身份信息及公钥;
步骤1-4:CA核实软件开发者身份;
步骤1-5:CA向可信的软件开发者颁发代码签名证书,并提供安卓软件签名与打包工具。
CN201610052539.0A 2016-01-26 2016-01-26 基于软tcm和可信软件栈的安卓***及其可信认证***与方法 Active CN105718807B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610052539.0A CN105718807B (zh) 2016-01-26 2016-01-26 基于软tcm和可信软件栈的安卓***及其可信认证***与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610052539.0A CN105718807B (zh) 2016-01-26 2016-01-26 基于软tcm和可信软件栈的安卓***及其可信认证***与方法

Publications (2)

Publication Number Publication Date
CN105718807A true CN105718807A (zh) 2016-06-29
CN105718807B CN105718807B (zh) 2018-08-03

Family

ID=56155033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610052539.0A Active CN105718807B (zh) 2016-01-26 2016-01-26 基于软tcm和可信软件栈的安卓***及其可信认证***与方法

Country Status (1)

Country Link
CN (1) CN105718807B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506166A (zh) * 2016-10-26 2017-03-15 泰山医学院 云计算环境下终端可信平台***
CN107077557A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 软件应用程序发布和验证的方法及装置
CN107360167A (zh) * 2017-07-17 2017-11-17 浪潮(北京)电子信息产业有限公司 一种认证方法及装置
CN107743125A (zh) * 2017-10-17 2018-02-27 华北电力大学 一种电力业务终端的数据安全管理方法
CN109889477A (zh) * 2018-12-20 2019-06-14 北京华胜天成信息技术发展有限公司 基于可信密码引擎的服务器启动方法及装置
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10416991B2 (en) 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
CN110348240A (zh) * 2019-06-24 2019-10-18 中国人民解放军战略支援部队信息工程大学 复印机离线数据提取解析方法及装置
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
CN112328467A (zh) * 2020-09-17 2021-02-05 北京中数科技术有限公司 一种嵌入式***程序测试方法及装置
CN113536387A (zh) * 2020-04-15 2021-10-22 青岛海信移动通信技术股份有限公司 一种检测内核数据完整性的终端和方法
CN114115836A (zh) * 2022-01-28 2022-03-01 麒麟软件有限公司 一种基于Linux操作***的可信TCM软件栈的设计方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246537A (zh) * 2008-03-28 2008-08-20 兰雨晴 一种基于可信多任务操作***实现可信计算的方法
CN102073816A (zh) * 2010-12-31 2011-05-25 兰雨晴 基于行为的软件可信度量***及方法
CN103093150A (zh) * 2013-02-18 2013-05-08 中国科学院软件研究所 一种基于可信芯片的动态完整性保护方法
CN103575205A (zh) * 2012-07-18 2014-02-12 宁波卓一工业设计有限公司 基于android平台的桥梁传感监测终端
CN104301926A (zh) * 2014-10-31 2015-01-21 大唐移动通信设备有限公司 一种面向通信网络测试的分布式自动拨测***及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246537A (zh) * 2008-03-28 2008-08-20 兰雨晴 一种基于可信多任务操作***实现可信计算的方法
CN102073816A (zh) * 2010-12-31 2011-05-25 兰雨晴 基于行为的软件可信度量***及方法
CN103575205A (zh) * 2012-07-18 2014-02-12 宁波卓一工业设计有限公司 基于android平台的桥梁传感监测终端
CN103093150A (zh) * 2013-02-18 2013-05-08 中国科学院软件研究所 一种基于可信芯片的动态完整性保护方法
CN104301926A (zh) * 2014-10-31 2015-01-21 大唐移动通信设备有限公司 一种面向通信网络测试的分布式自动拨测***及方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506166A (zh) * 2016-10-26 2017-03-15 泰山医学院 云计算环境下终端可信平台***
CN106506166B (zh) * 2016-10-26 2020-02-11 泰山医学院 云计算环境下终端可信平台***
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10416991B2 (en) 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
CN107077557B (zh) * 2016-12-29 2020-07-31 深圳前海达闼云端智能科技有限公司 软件应用程序发布和验证的方法及装置
WO2018119892A1 (zh) * 2016-12-29 2018-07-05 深圳前海达闼云端智能科技有限公司 软件应用程序发布和验证的方法及装置
CN107077557A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 软件应用程序发布和验证的方法及装置
CN107360167B (zh) * 2017-07-17 2020-07-07 浪潮(北京)电子信息产业有限公司 一种认证方法及装置
CN107360167A (zh) * 2017-07-17 2017-11-17 浪潮(北京)电子信息产业有限公司 一种认证方法及装置
CN107743125A (zh) * 2017-10-17 2018-02-27 华北电力大学 一种电力业务终端的数据安全管理方法
CN109889477A (zh) * 2018-12-20 2019-06-14 北京华胜天成信息技术发展有限公司 基于可信密码引擎的服务器启动方法及装置
CN110348240A (zh) * 2019-06-24 2019-10-18 中国人民解放军战略支援部队信息工程大学 复印机离线数据提取解析方法及装置
CN113536387A (zh) * 2020-04-15 2021-10-22 青岛海信移动通信技术股份有限公司 一种检测内核数据完整性的终端和方法
CN113536387B (zh) * 2020-04-15 2024-06-04 青岛海信移动通信技术有限公司 一种检测内核数据完整性的终端和方法
CN112328467A (zh) * 2020-09-17 2021-02-05 北京中数科技术有限公司 一种嵌入式***程序测试方法及装置
CN112328467B (zh) * 2020-09-17 2022-06-28 北京中数科技术有限公司 一种嵌入式***程序测试方法及装置
CN114115836A (zh) * 2022-01-28 2022-03-01 麒麟软件有限公司 一种基于Linux操作***的可信TCM软件栈的设计方法及***

Also Published As

Publication number Publication date
CN105718807B (zh) 2018-08-03

Similar Documents

Publication Publication Date Title
CN105718807A (zh) 基于软tcm和可信软件栈的安卓***及其可信认证***与方法
US11604882B2 (en) Cloudlet computing device with secure boot operations
US20200272739A1 (en) Performing an action based on a pre-boot measurement of a firmware image
Parno et al. Bootstrapping trust in commodity computers
US9690498B2 (en) Protected mode for securing computing devices
US9363087B2 (en) End-to-end security for hardware running verified software
McCune et al. Flicker: An execution infrastructure for TCB minimization
Parno et al. Bootstrapping trust in modern computers
US7711960B2 (en) Mechanisms to control access to cryptographic keys and to attest to the approved configurations of computer platforms
CN107679393B (zh) 基于可信执行环境的Android完整性验证方法和装置
CN109756492B (zh) 基于sgx的云平台可信执行方法、装置、设备及介质
Paverd et al. Hardware security for device authentication in the smart grid
KR20030082485A (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색
KR20170089352A (ko) 가상화 시스템에서 수행하는 무결성 검증 방법
Gallery et al. Trusted computing: Security and applications
CN112511306A (zh) 一种基于混合信任模型的安全运行环境构建方法
Bugiel et al. Implementing an application-specific credential platform using late-launched mobile trusted module
Jiang et al. An effective authentication for client application using ARM trustzone
Park et al. TGVisor: A tiny hypervisor-based trusted geolocation framework for mobile cloud clients
Qin et al. RIPTE: runtime integrity protection based on trusted execution for IoT device
Jacob et al. faulTPM: Exposing AMD fTPMs’ Deepest Secrets
AT&T
Feng Trusted Computing: Principles and Applications
Hao et al. Trusted block as a service: Towards sensitive applications on the cloud
Futral et al. Fundamental principles of intel® txt

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant