CN103530578A - 一种android***的软构可信平台模块STPM的构建方法 - Google Patents
一种android***的软构可信平台模块STPM的构建方法 Download PDFInfo
- Publication number
- CN103530578A CN103530578A CN201310491430.3A CN201310491430A CN103530578A CN 103530578 A CN103530578 A CN 103530578A CN 201310491430 A CN201310491430 A CN 201310491430A CN 103530578 A CN103530578 A CN 103530578A
- Authority
- CN
- China
- Prior art keywords
- stpm
- key
- android system
- module
- credible
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种android***的软构可信平台模块(Soft-ComponentTrustedPlatformModule,STPM)的构建方法,本发明按照可信计算的思想,在不改变现有手持设备硬件架构的基础上,借鉴TPM(TrustedPlatformModule,可信平台模块)的技术思路,采用分治思想,在android***中分别实现STPM的可信存储、可信度量和三层密钥管理等功能,构建STPM安全模块,为移动设备上的二次安全开发提供基础,开发人员可以在此基础上进一步实现***的安全启动、上层应用程序启动度量、用户隐私数据保护等各种安全功能的开发。本发明从***底层为移动设备***安全和用户隐私数据保密提供了基础。本发明的主要优点:该STPM的构建,弥补现有移动设备缺少TPM的缺陷,为移动设备的安全开发提供基础。
Description
技术领域
本发明属于信息安全领域,尤其涉及一种android***的软构可信平台模块(Soft-Component Trusted Platform Module,STPM)的构建方法。
背景技术
近年来,Android***的智能平台设备以其良好的开放性、交互性、友好用户体验性和平台便捷性等特点,越来越受到人们的青睐。特别是最近几年的迅速发展,成功地将Google的网络应用功能扩展到个人手持设备。但是,作为一种开放性的***,由于其体系结构设计上的缺陷,在带给人们便利的同时,也带来了不少安全隐患。Android***通过沙箱(Sandbox)来实现应用程序之间的隔离,从而控制各个应用程序对设备资源的访问权限。然而这些安全手段远远不能达到用户的安全需求。
最近,德国一所大学的三位研究人员通过测试发现,超过99%的Android智能平台能轻易地被黑客侵袭。《2013信息安全十大关键预测》报告,受安卓***普及率大幅提升的影响,恶意与高风险的安卓应用数量在2012年底达到35万个,而这个数字在2013年或将攀升四倍,预计达到140万个,而且这些恶意应用将呈现越来越复杂化的趋势。
目前,Android***结构在以下几个方面的安全性缺陷尤为突出:
(1)设备丢失带来的用户隐私数据泄露问题。目前绝大多数嵌入式移动设备都不能有效应对移动设备丢失带来的隐私数据泄露等问题,近年来通过窃取隐私数据进行各种诈骗活动的事件发生率逐年上升;
(2)手机被植入窃取隐私数据等各类型的非法软件,这些软件通过申请一些敏感的权限来窃取手机中的隐私信息(如位置信息、商业秘密和军事机密等),从而进一步达到自己的非法目的,比如,恶意追踪手机用户位置、非法监听用户通话,控制用户手机行为等。
因此如何有效保障移动设备的平台和应用的安全性,已经成为一个丞待解决的安全问题。
目前广泛应用于PC机的可信计算技术为嵌入式***的安全增强方法提供了新思路。可信计算技术作为一种提高计算机***安全性的行之有效的新技术,其可信计算机的构造需要可信平台模块TPM的安全支撑,可信启动的信任链也是围绕可信计算芯片来实现的。
可信平台模块TPM(Trusted Platform Module)是一种SOC(System on Chip)芯片,它是可信计算平台的信任根,是整个平台可信的基点。它由执行引擎、存储器、I/O、密码协处理器、随机数发生器等部件组成。可信平台模块TPM拥有丰富的计算资源和密码资源,在嵌入式操作***的管理下构成一个以安全为主要特色的小型计算机***。其具有密钥管理、加解密、数字签名、数据安全存储等功能。在此基础上,它可以完成作为可信存储根和可信报告根等职能。
然而目前大多数嵌入式***上并没有内置相应安全芯片。本发明不改变现有嵌入式平台硬件架构的情况下,构建一种STPM(软构可信平台模块)安全模块,该模块为***底层级的安全开发提供了基础。
发明内容
针对现有普通移动嵌入式设备在体系结构上的不安全性,本发明提出了一种android***的软构可信平台模块的构建方法,构建了一种软构可信平台模块(Soft-Component TrustedPlatform Module,STPM)安全增强模块。
本发明所采用的技术方案是:一种android***的软构可信平台模块STPM的构建方法,其特征在于:在不改变现有手持设备硬件架构的基础上,采用分治方案构建STPM安全模块,在android***中分别实现STPM的可信存储、可信度量和三层密钥管理功能;其具体实现过程为:
采用存储隔离技术,实现对Nand Flash上重要区域写保护,防止用户非法的刷写操作,为可信启动提供一个可靠的基础环境;
优化Nand Flash分区,在Nand Flash上开辟一块透明数据存储区,设置该数据存储区为用户不可见且不可篡改或者一旦篡改即可被发现,用于存储度量基准值,提供STPM的可信存储功能;
在Nand Flash特定区域开辟三层密钥存储区,用于提供密钥树的存储,该区域提供STPM的三层密钥管理,密钥树中各级密钥层层加密,根密钥由用户掌握,用户只有提供正确的根密钥才能获得STPM的控制权,同时在Bootloader分区、Kernel分区中分别载入完整性度量模块,度量模块提供STPM的可信度量功能。
作为优选,所述的Nand Flash上重要区域包括Bootloader分区、Kernel分区和PCR分区。
作为优选,所述的在Nand Flash上开辟的一块透明数据存储区,其存储空间大小为1MB。
作为优选,所述的透明数据存储区用于存储Bootloader和Kernel关键启动节点的度量基准值信息。
作为优选,所述的在Nand Flash特定区域开辟三层密钥存储区,是在Nand Flash上开辟5MB分区空间KEYStore,用于存储并管理三层密钥。
作为优选,所述的三层密钥,按树形结构进行组织管理,处于上级的父密钥对处于下级的密钥进行加密保存,同时辅以细粒度密钥访问授权机制,确保密钥体系的安全。
作为优选,所述的根密钥不存储于移动设备上,每次用户登录时,输入正确的PIN码,***根据PIN码生成根密钥SRK,进而取得手持设备和STPM控制权。
作为优选,所述的在Bootloader分区、Kernel分区中分别载入完整性度量模块,度量模块提供STPM的可信度量功能,同时,在内核中嵌入可动态加载的内核安全管理增强模块,以上各安全模块依次协同工作,实现STPM的可信度量功能。
本发明在普通嵌入式设备没有TPM芯片的前提下,STPM借鉴TPM(Trusted PlatformModule,可信平台模块)芯片的可信计算思想,通过构建STPM安全模块来实现TPM的部分功能,为可信计算平台提供信任根(可信存储根和可信度量根)功能,为整个移动平台可信提供基点和重要支撑,从而拓展了可信计算的应用场景;同时,本方法从体系结构角度为当前移动设备提供了安全优化,为***安全启动提供基础。
本发明提供的android***中STPM的构建方法有以下主要优点:
第一,本发明在不改变现有嵌入式移动设备的***架构的基础上,以可信计算理论为理论基础,借鉴TPM芯片实现思路,构建软构可信平台模块STPM,从体系结构角度为现有android***移动嵌入式平台进行结构上的安全优化;
第二,移动嵌入式平台上STPM的构建实现了TPM芯片的主体功能,在嵌入式平台上为可信计算理论(依赖于TPM安全芯片)提供了可信根,拓展了可信计算的应用场景;同时,在没有TPM硬件芯片的情况下,本发明为实现嵌入式移动设备的安全启动和应用软件的保护提供了基础;
第三,STPM中三层密钥管理的根密钥由用户完全掌握,保证了各级密钥的绝对安全。
附图说明
图1:本发明实施例的可信android***结构图。
图2:本发明实施例的对Nand Flash重要区域写保护示意图。
具体实施方式
以下将结合具体实施例的附图对本发明做进一步的阐述。
请见图1、图2,本发明所采用的技术方案是:一种android***的软构可信平台模块(Soft-Component Trusted Platform Module,STPM)的构建方法,在不改变现有手持设备硬件架构的基础上,采用分治方案构建STPM安全模块,在android***中分别实现STPM的可信存储、可信度量和三层密钥管理功能;其具体实现过程为:
采用存储隔离技术,实现对Nand Flash上包括Bootloader分区、Kernel分区和PCR分区的重要区域写保护,防止用户非法的刷写操作,为可信启动提供一个可靠的基础环境;
优化Nand Flash分区,在Nand Flash上开辟一块存储空间大小为1MB的透明数据存储区,设置该数据存储区为用户不可见且不可篡改或者一旦篡改即可被发现,用于存储Bootloader和Kernel关键启动节点的度量基准值信息,提供STPM的可信存储功能;为避免用户误操作或非法篡改,在内核中不挂载该分区,这样就防止了内核态和用户态程序篡改该分区的可能,同时***每次上电启动都首先对该分区进行度量,只有该区域(STPM之可信存储根)度量安全可信,才继续进行启动操作;
在Nand Flash上开辟5MB分区空间KEYStore,用于存储并管理三层密钥,该区域提供STPM的三层密钥管理,三层密钥按树形结构进行组织管理,处于上级的父密钥对处于下级的密钥进行加密保存,同时辅以细粒度密钥访问授权机制,确保密钥体系的安全;密钥树中各级密钥层层加密,根密钥由用户掌握,根密钥不存储于移动设备上,每次用户登录时,输入正确的PIN码,***根据PIN码生成根密钥SRK,进而取得手持设备和STPM控制权;
同时在Bootloader分区、Kernel分区中分别载入完整性度量模块,同时,在内核中嵌入可动态加载的内核安全管理增强模块,以上各安全模块依次协同工作,实现STPM的可信度量功能。
本发明的***首次启动,用户输入一个PIN码作为种子,生成设备的根密钥SRK,请见图1,安全度量模块B的随机数发生器生成一个随机数作为用户级密钥Ekey,Ekey由根密钥SRK加密存放。同样生成文件级密钥VEKey,VEKey作为Ekey的子密钥由Ekey加密存储于KEYStore里。KEYStore中密钥层层加密存放,根密钥由用户掌握,保证了各级密钥的绝对安全。
根密钥SRK生成方法:
(1)digest[256]=SM3{PIN};
(2)SRK[n]=digest[2n]⊕digest[2n+1](0≤n<128)。
本发明提出了一种android***的软构可信平台模块(Soft-Component Trusted PlatformModule,STPM)的构建方法,首先,优化Nand Flash分区,实现STPM的可信存储;然后在***中的不同启动阶段载入安全子模块,协同实现TPM的可信存储、可信度量和三层密钥管理功能。通过本发明构建的安全增强模块STPM,开发人员可以在此基础上进一步实现***的安全启动、上层应用程序启动度量、用户隐私数据保护等各种安全功能的开发。本发明从***底层为移动设备***安全和用户隐私数据保密提供了基础。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,因此,凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1. 一种android***的软构可信平台模块STPM的构建方法,其特征在于:在不改变现有手持设备硬件架构的基础上,采用分治方案构建STPM安全模块,在android***中分别实现STPM的可信存储、可信度量和三层密钥管理功能;其具体实现过程为:
采用存储隔离技术,实现对Nand Flash上重要区域写保护,防止用户非法的刷写操作,为可信启动提供一个可靠的基础环境;
优化Nand Flash分区,在Nand Flash上开辟一块透明数据存储区,设置该数据存储区为用户不可见且不可篡改或者一旦篡改即可被发现,用于存储度量基准值,提供STPM的可信存储功能;
在Nand Flash特定区域开辟三层密钥存储区,用于提供密钥树的存储,该区域提供STPM的三层密钥管理,密钥树中各级密钥层层加密,根密钥由用户掌握,用户只有提供正确的根密钥才能获得STPM的控制权,同时在Bootloader分区、Kernel分区中分别载入完整性度量模块,度量模块提供STPM的可信度量功能。
2.根据权利要求1所述的android***的软构可信平台模块STPM的构建方法,其特征在于:所述的Nand Flash上重要区域包括Bootloader分区、Kernel分区和PCR分区。
3.根据权利要求1所述的android***的软构可信平台模块STPM的构建方法,其特征在于:所述的在Nand Flash上开辟的一块透明数据存储区,其存储空间大小为1MB。
4.根据权利要求1所述的android***的软构可信平台模块STPM的构建方法,其特征在于:所述的透明数据存储区用于存储Bootloader和Kernel关键启动节点的度量基准值信息。
5.根据权利要求1所述的android***的软构可信平台模块STPM的构建方法,其特征在于:所述的在Nand Flash特定区域开辟三层密钥存储区,是在Nand Flash上开辟5MB分区空间KEYStore,用于存储并管理三层密钥。
6.根据权利要求5所述的android***的软构可信平台模块STPM的构建方法,其特征在于:所述的三层密钥,按树形结构进行组织管理,处于上级的父密钥对处于下级的密钥进行加密保存,同时辅以细粒度密钥访问授权机制,确保密钥体系的安全。
7.根据权利要求1所述的android***的软构可信平台模块STPM的构建方法,其特征在于:所述的根密钥不存储于移动设备上,每次用户登录时,输入正确的PIN码,***根据PIN码生成根密钥SRK,进而取得手持设备和STPM控制权。
8. 根据权利要求1所述的android***的软构可信平台模块STPM的构建方法,其特征在于: 所述的在Bootloader分区、Kernel分区中分别载入完整性度量模块,度量模块提供STPM的可信度量功能,同时,在内核中嵌入可动态加载的内核安全管理增强模块,以上各安全模块依次协同工作,实现STPM的可信度量功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310491430.3A CN103530578B (zh) | 2013-10-18 | 2013-10-18 | 一种android***的软构可信平台模块STPM的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310491430.3A CN103530578B (zh) | 2013-10-18 | 2013-10-18 | 一种android***的软构可信平台模块STPM的构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103530578A true CN103530578A (zh) | 2014-01-22 |
CN103530578B CN103530578B (zh) | 2016-01-27 |
Family
ID=49932580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310491430.3A Active CN103530578B (zh) | 2013-10-18 | 2013-10-18 | 一种android***的软构可信平台模块STPM的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530578B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016065636A1 (zh) * | 2014-10-28 | 2016-05-06 | 东莞宇龙通信科技有限公司 | 用于终端的数据管理方法、数据管理装置和终端 |
CN107070881A (zh) * | 2017-02-20 | 2017-08-18 | 北京古盘创世科技发展有限公司 | 密钥管理方法、***及用户终端 |
WO2017182089A1 (en) * | 2016-04-21 | 2017-10-26 | Huawei Technologies Co., Ltd. | Method for write-protecting boot code if boot sequence integrity check fails |
CN107301023A (zh) * | 2017-06-29 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种固态盘配置信息管理方法和装置 |
CN107679393A (zh) * | 2017-09-12 | 2018-02-09 | 中国科学院软件研究所 | 基于可信执行环境的Android完整性验证方法和装置 |
CN109889477A (zh) * | 2018-12-20 | 2019-06-14 | 北京华胜天成信息技术发展有限公司 | 基于可信密码引擎的服务器启动方法及装置 |
CN111444553A (zh) * | 2020-04-01 | 2020-07-24 | 中国人民解放军国防科技大学 | 支持tee扩展的安全存储实现方法及*** |
CN112235324A (zh) * | 2020-12-14 | 2021-01-15 | 杭州字节信息技术有限公司 | 一种基于KeyStore密钥树的密钥管理***、更新方法、读取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214277A (zh) * | 2010-04-01 | 2011-10-12 | 中国科学院计算技术研究所 | 创建多核处理器虚拟机***可信环境的方法及装置 |
US20130159729A1 (en) * | 2011-07-29 | 2013-06-20 | Microsoft Corporation | Software-based trusted platform module |
-
2013
- 2013-10-18 CN CN201310491430.3A patent/CN103530578B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214277A (zh) * | 2010-04-01 | 2011-10-12 | 中国科学院计算技术研究所 | 创建多核处理器虚拟机***可信环境的方法及装置 |
US20130159729A1 (en) * | 2011-07-29 | 2013-06-20 | Microsoft Corporation | Software-based trusted platform module |
Non-Patent Citations (1)
Title |
---|
MARIO STRASSER ET AL: ""A Software-Based Trusted Platform Module Emulator"", 《PROCEEDINGS OF THE 1ST INTERNATIONAL CONFERENCE ON TRUSTED COMPUTING AND TRUST IN INFORMATION TECHNOLOGIES》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016065636A1 (zh) * | 2014-10-28 | 2016-05-06 | 东莞宇龙通信科技有限公司 | 用于终端的数据管理方法、数据管理装置和终端 |
WO2017182089A1 (en) * | 2016-04-21 | 2017-10-26 | Huawei Technologies Co., Ltd. | Method for write-protecting boot code if boot sequence integrity check fails |
CN107070881A (zh) * | 2017-02-20 | 2017-08-18 | 北京古盘创世科技发展有限公司 | 密钥管理方法、***及用户终端 |
CN107301023A (zh) * | 2017-06-29 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种固态盘配置信息管理方法和装置 |
CN107679393A (zh) * | 2017-09-12 | 2018-02-09 | 中国科学院软件研究所 | 基于可信执行环境的Android完整性验证方法和装置 |
CN107679393B (zh) * | 2017-09-12 | 2020-12-04 | 中国科学院软件研究所 | 基于可信执行环境的Android完整性验证方法和装置 |
CN109889477A (zh) * | 2018-12-20 | 2019-06-14 | 北京华胜天成信息技术发展有限公司 | 基于可信密码引擎的服务器启动方法及装置 |
CN111444553A (zh) * | 2020-04-01 | 2020-07-24 | 中国人民解放军国防科技大学 | 支持tee扩展的安全存储实现方法及*** |
CN112235324A (zh) * | 2020-12-14 | 2021-01-15 | 杭州字节信息技术有限公司 | 一种基于KeyStore密钥树的密钥管理***、更新方法、读取方法 |
CN112235324B (zh) * | 2020-12-14 | 2021-03-02 | 杭州字节信息技术有限公司 | 一种基于KeyStore密钥树的密钥管理***、更新方法、读取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103530578B (zh) | 2016-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103530578B (zh) | 一种android***的软构可信平台模块STPM的构建方法 | |
Sun et al. | TrustOTP: Transforming smartphones into secure one-time password tokens | |
Cooijmans et al. | Analysis of secure key storage solutions on android | |
Zhao et al. | Sectee: A software-based approach to secure enclave architecture using tee | |
Dai et al. | SBLWT: A secure blockchain lightweight wallet based on trustzone | |
Sun et al. | Trustice: Hardware-assisted isolated computing environments on mobile devices | |
CN107679393B (zh) | 基于可信执行环境的Android完整性验证方法和装置 | |
CN104012030B (zh) | 用于保护对称加密密钥的***及方法 | |
CN102624699B (zh) | 一种保护数据的方法和*** | |
US10536274B2 (en) | Cryptographic protection for trusted operating systems | |
US9755831B2 (en) | Key extraction during secure boot | |
Zhang et al. | Cryptographic key protection against FROST for mobile devices | |
CN104871167A (zh) | 固件中的防盗 | |
KR20140019599A (ko) | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 | |
Arfaoui et al. | Trusted execution environments: A look under the hood | |
CN109587106A (zh) | 密码分区的云中的跨域安全性 | |
Shepherd et al. | LIRA-V: Lightweight remote attestation for constrained RISC-V devices | |
CN106096418A (zh) | 基于SELinux的开机安全等级选择方法、装置及终端设备 | |
CN109643344A (zh) | 用于共享安全性元数据存储器空间的方法和装置 | |
CN103488937A (zh) | 一种度量方法、电子设备及度量*** | |
Martínez-Rodríguez et al. | Sok: Remote power analysis | |
Benadjila et al. | Wookey: Designing a trusted and efficient USB device | |
Ding et al. | Android low entropy demystified | |
Rabimba et al. | Lessons learned from blockchain applications of trusted execution environments and implications for future research | |
Sajid et al. | An analysis on host vulnerability evaluation of modern operating systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |