CN108595981A - 加密安卓系统的方法 - Google Patents

加密安卓系统的方法 Download PDF

Info

Publication number
CN108595981A
CN108595981A CN201810436948.XA CN201810436948A CN108595981A CN 108595981 A CN108595981 A CN 108595981A CN 201810436948 A CN201810436948 A CN 201810436948A CN 108595981 A CN108595981 A CN 108595981A
Authority
CN
China
Prior art keywords
examined
subregion
encryption
android system
boot loader
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
CN201810436948.XA
Other languages
English (en)
Other versions
CN108595981B (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.)
Shenzhen Sangge'er Polytron Technologies Inc
Original Assignee
Shenzhen Sangge'er Polytron Technologies Inc
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 Shenzhen Sangge'er Polytron Technologies Inc filed Critical Shenzhen Sangge'er Polytron Technologies Inc
Priority to CN201810436948.XA priority Critical patent/CN108595981B/zh
Publication of CN108595981A publication Critical patent/CN108595981A/zh
Application granted granted Critical
Publication of CN108595981B publication Critical patent/CN108595981B/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施方式提供一种加密安卓系统的方法,包括以下步骤:Boot Loader和CPU相互验证、Boot Loader加密及验证至少一被检验分区、使用dm‑verity对system分区进行保护;具体包括:读取加密的CPU中efuse ROM的内容,通过解密算法对读取到的efuse ROM的内容进行解密,通过解密算法解密CPU,创建新分区,检验分区数据的完整性,对被检验分区名和分区密钥表进行正确性确定;本发明中,由于解密算法位于Boot loader中,其产生的要求计算量小,处理速度快,存储空间占用小,抗破解能力强,并且整个系统由硬件到软件,层层向上加密,从而可以保证客户数据不被窃取。

Description

加密安卓系统的方法
技术领域
本发明涉及到安卓开机加载分区过程,尤其涉及到分区的数据校验和数据加密的方法。
背景技术
安卓(Android)系统是基本Linux构架的,上电开机首先会加载Boot Loader(嵌入式系统的引导程序通常称为Boot Loader,类似于PC系统上的BIOS),Boot Loader初始化完成之后,会加载boot image(包括kernel和ramdisk),然后去执行其中的kernel部分,挂载其中的ramdisk部分,之后会加载system image,执行完system image中的开机流程,会进入桌面应用。进入桌面应用后,用户可以与系统进行交互。
验证启动功能旨在保证设备软件(从硬件信任根直到系统分区)的完整性。在启动过程中,无论是在每个阶段,都会在进入下一个阶段之前先验证下一个阶段的完整性和真实性。
Android4.4及更高版本支持通过可选的device-mapper-verity(dm-verity)内核功能进行的验证启动,以便对块设备进行透明的完整性检查。所述dm-verity有助于阻止可以持续保有Root权限并入侵设备的持续性Rootkit。验证启动功能有助于Android用户在启动设备时确定设备状态与上次使用时是否相同。
所述dm-verity保护机制位于内核中。因此,如果获取Root权限的软件在内核启动之前入侵系统,那么它将会一直拥有该权限。为了降低这种风险,大多数制造商都会使用烧录到设备的密钥来验证内核。然,这种密钥在设备出厂后将无法被更改。
发明内容
鉴于以上内容,有必要提供一种加密安卓系统的方法,从而实现对整个安卓系统的保护。
为实现上述目的,本发明所采用的技术方案是:
提供了一种加密安卓系统的方法,所述加密安卓系统的方法应用在安卓系统中,所述安卓系统包括Boot Loader、CPU和system分区,其中,所述加密安卓系统的方法包括以下步骤:
步骤S100:所述Boot Loader和所述CPU相互验证;
步骤S200:所述Boot Loader加密至少一被检验分区及对所述至少一被检验分区进行验证;及
步骤S300:使用源生方法device mapper verity(dm-verity)对所述system分区进行保护;
其中,所述步骤S100包括:
步骤S102:读取加密的CPU中efuse ROM的内容;
步骤S103:根据读取到的所述efuse ROM的内容,通过解密算法对所述efuse ROM的内容进行解密;及
步骤S104:根据所述解密后的efuse ROM的内容,通过解密算法解密所述CPU。
在本实施例的加密安卓系统的方法中,通过所述解密算法解密所述CPU后,可以使所述CPU操作不受限制,正常工作。
优选地,所述解密算法存储于所述Boot loader中。
本实施例中,由于所述解密算法位于所述Boot loader中,其产生的要求计算量小,处理速度快,存储空间占用小,抗破解能力强。
优选地,所述步骤S200包括:
步骤S201:创建一个新分区;
步骤S203:根据检验码和密钥检验分区数据的完整性;及
步骤S205:根据被取出的被检验分区签名对所述被检验分区名和分区密钥表进行正确性确定。
优选地,所述步骤S200包括:
步骤S202:查找所述被检验分区对应的检验码和密钥;
其中,所述步骤S202在所述步骤S201和所述步骤S203之间。
优选地,所述步骤S200包括:
步骤S204:所述Boot Loader取出所述被检验分区签名;
其中,所述步骤S204在所述步骤S203和所述步骤S205之间。
在本实施例中,由于所述被检验分区签名是由所述Boot Loader取出,因此,可以对分区的正确性和所有性进行检验,以避免第三方替换我们发布的boot.img、recovery.img、Modem等。
优选地,所述efuse ROM的内容包括密钥。
优选地,所述被创建的新分区为secro.img分区,所述secro.img分区包括版本号、表签名、表长度、被检验分区名、检验码及被检验分区签名。
优选地,所述版本号对应所述Boot Loader中的检验算法,所述表签名用于对所述被检验的分区名和分区密钥表进行正确性确定,所述表长度用于标记所述分区密钥表的大小,所述被检验分区名用于查找被检验的分区对应的检验码和密钥,所述检验码用于检验分区数据的完整性。
本实施例中,所述检验码用于检验分区数据的完整性,避免分区数据在刷机等过程中因变化而导致加载执行时出现的未知情况。
优选地,所述Boot loader包括所述检验算法,所述步骤S203具体为:根据所述检验码和所述密钥,通过所述检验算法检验所述分区数据的完整性。
优选地,所述至少一被检验分区包括3个被检验分区,分别是boot image(boot.img)分区、recovery image(recovery.img)分区、及modem分区。
与现有技术相比,本发明的有益效果为:由于所述解密算法位于所述Boot loader中,其产生的要求计算量小,处理速度快,存储空间占用小,抗破解能力强;通过所述检验码检验分区数据的完整性,避免分区数据在刷机等过程中因变化而导致加载执行时出现的未知情况。此外,在本实施例的加密安卓系统的方法中,整个系统由硬件到软件,层层向上加密,从而可以保证客户数据不被窃取。
附图说明
图1是本发明实施方式之加密安卓系统的方法的流程图。
图2是图1中的步骤S100的流程图。
图3是图1中的步骤S200的流程图。
图4是图3中的secro.img分区的结构图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
请参阅图1,本发明的一较佳实施方式,提供一种加密安卓系统的方法,所述加密安卓系统的方法应用在安卓系统中,所述系统包括Boot Loader和CPU。
所述系统还包括system分区。
其中,所述Boot Loader包括检验算法及解密算法。
其中,所述CPU存储有efuse ROM。
所述加密安卓系统的方法包括以下步骤:
步骤S100:所述Boot Loader和所述CPU相互验证。
步骤S200:所述Boot Loader加密至少一被检验分区及对所述至少一被检验分区进行验证。具体地,由所述Boot Loader对所述至少一被检验分区进行加载、对所述至少一被检验分区进行验证及对所述至少一被检验分区进行解密及对所述至少一被检验分区进行验证。在本实施例中,以加密3个被检验分区为例进行说明,但是分发明不限于3个被检验分区;具体的实施方式中,所述3个被检验分区分别是boot image(boot.img)分区、recovery image(recovery.img)分区、及modem分区。
在本实施例中,由于这些被检验分区是由所述Boot Loader进行加载,从而这些被检验分区由所述Boot Loader进行解密。
步骤S300:使用源生方法device mapper verity(dm-verity)对所述system分区进行保护。
在本实施例的加密安卓系统的方法中,整个系统由硬件到软件,层层向上加密,从而可以保证客户数据不被窃取。
其中,所述步骤S100的加密过程是由软件和硬件共同完成,相互绑定,相互依赖;优选地,所述步骤S100的加密过程由芯片广商和方案商共同完成。更进一步地,请参阅图2,所述步骤S100具体包括如下步骤:
步骤S101:系统加电。
步骤S102:读取加密的CPU中efuse ROM的内容。其中,所述efuse ROM的内容包括密钥。
步骤S103:根据读取到的所述efuse ROM的内容,通过解密算法对所述efuse ROM的内容进行解密。
步骤S104:根据所述解密后的efuse ROM的内容,通过解密算法解密所述CPU。所述CPU被解密后,可以使所述CPU操作不受限制,正常工作。
优选地,所述解密算法位于所述Boot loader中。在本实施例中,由于所述解密算法位于所述Boot loader中,其产生的要求计算量小,处理速度快,存储空间占用小,抗破解能力强。
请参阅图3,所述步骤S200具体包括如下步骤:
步骤S201:创建一个新分区。在本实施例中,创建一个secro.img分区作为新分区;其中,所述secro.img分区可以用于辅助所述Boot Loader对所述boot.img分区、recovery.img分区、及modem分区进行检验。
进一步地,请参阅图4,所述secro.img分区包括版本号、表签名、表长度、被检验分区名、检验码及被检验分区签名。在本实施例中,由于以上述所述的3个被检验分区为例进行说明,即以所述boot.img分区、所述recovery.img分区、及所述modem分区为例进行说明,因此,所述secro.img分区中包括有3个被检验分区名、3个检验码及3个被检验分区签名,所述3个被检验分区名、所述3个检验码及所述3个被检验分区签名分别对应所述boot.img分区、所述recovery.img分区、及所述modem分区。
优选地,所述版本号对应所述Boot Loader中的检验算法,因此,可以便于算法升级。
优选地,所述表签名用于对所述被检验的分区名和分区密钥表进行正确性确定。其中,所述分区密钥表是由分区密钥数据组成的表。
优选地,所述表长度用于标记所述分区密钥表的大小。
优选地,所述被检验分区名用于查找被检验的分区对应的检验码和密钥。
优选地,所述检验码用于检验分区数据的完整性,避免分区数据在刷机等过程中因变化而导致加载执行时出现的未知情况。
优选地,所述被检验分区签名由所述Boot Loader取出。在本实施例中,由于所述被检验分区签名是由所述Boot Loader取出,因此可以对所述被检验分区的正确性和所有性进行检验,以避免第三方替换我们发布的boot.img、recovery.img、Modem等。
步骤S202:查找所述被检验分区对应的检验码和密钥。
步骤S203:根据所述检验码和所述密钥检验分区数据的完整性。具体地,所述步骤S203具体为:根据所述检验码和所述密钥,通过所述检验算法检验所述分区数据的完整性。
步骤S204:所述Boot Loader取出所述被检验分区签名。
步骤S205:根据所述被取出的被检验分区签名对所述被检验分区名和分区密钥表进行正确性确定。
在本实施例的加密安卓系统的方法中,通过所述解密算法解密所述CPU后,可以使所述CPU操作不受限制,正常工作;且,由于所述解密算法位于所述Boot loader中,其产生的要求计算量小,处理速度快,存储空间占用小,抗破解能力强。
此外,在本实施例的加密安卓系统的方法中,整个系统由硬件到软件,层层向上加密,从而可以保证客户数据不被窃取。
其中,本发明的加密安卓系统的方法中的相关技术术语解释如下:
Boot Loader,嵌入式系统引导装载系统
CPU,中央处理器
ramdisk,虚拟内存盘
kernel,操作系统内核
system分区,系统分区
对本领域的技术人员来说,可以根据本发明的发明方案和发明构思结合生产的实际需要做出其他相应的改变或调整,而这些改变和调整都应属于本发明所公开的范围。

Claims (10)

1.一种加密安卓系统的方法,应用在安卓系统中,所述安卓系统包括Boot Loader、CPU和system分区,其特征在于,所述加密安卓系统的方法包括以下步骤:
步骤S100:所述Boot Loader和所述CPU相互验证;
步骤S200:所述Boot Loader加密至少一被检验分区及对所述至少一被检验分区进行验证;及
步骤S300:使用源生方法device mapper verity(dm-verity)对所述system分区进行保护;
其中,所述步骤S100包括:
步骤S102:读取加密的CPU中efuse ROM的内容;
步骤S103:根据读取到的所述efuse ROM的内容,通过解密算法对所述efuse ROM的内容进行解密;及
步骤S104:根据所述解密后的efuse ROM的内容,通过解密算法解密所述CPU。
2.如权利要求1所述的加密安卓系统的方法,其特征在于:所述解密算法存储于所述Boot loader中。
3.如权利要求1所述的加密安卓系统的方法,其特征在于:所述步骤S200包括:
步骤S201:创建一个新分区;
步骤S203:根据检验码和密钥检验分区数据的完整性;及
步骤S205:根据被取出的被检验分区签名对所述被检验分区名和分区密钥表进行正确性确定。
4.如权利要求3所述的加密安卓系统的方法,其特征在于:所述步骤S200包括:
步骤S202:查找所述被检验分区对应的检验码和密钥;
其中,所述步骤S202在所述步骤S201和所述步骤S203之间。
5.如权利要求3或4所述的加密安卓系统的方法,其特征在于:所述步骤S200包括:
步骤S204:所述Boot Loader取出所述被检验分区签名;
其中,所述步骤S204在所述步骤S203和所述步骤S205之间。
6.如权利要求3或4所述的加密安卓系统的方法,其特征在于:所述efuse ROM的内容包括密钥。
7.如权利要求3所述的加密安卓系统的方法,其特征在于:所述被创建的新分区为secro.img分区,所述secro.img分区包括版本号、表签名、表长度、被检验分区名、检验码及被检验分区签名。
8.如权利要求7所述的加密安卓系统的方法,其特征在于:所述版本号对应所述BootLoader中的检验算法,所述表签名用于对所述被检验的分区名和分区密钥表进行正确性确定,所述表长度用于标记所述分区密钥表的大小,所述被检验分区名用于查找被检验的分区对应的检验码和密钥,所述检验码用于检验分区数据的完整性。
9.如权利要求3或4所述的加密安卓系统的方法,其特征在于:所述Boot loader包括检验算法,所述步骤S203具体为:根据所述检验码和所述密钥,通过所述检验算法检验所述分区数据的完整性。
10.如权利要求1所述的加密安卓系统的方法,其特征在于:所述至少一被检验分区包括3个被检验分区,分别是boot image(boot.img)分区、recovery image(recovery.img)分区、及modem分区。
CN201810436948.XA 2018-05-09 2018-05-09 加密安卓系统的方法 Active CN108595981B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810436948.XA CN108595981B (zh) 2018-05-09 2018-05-09 加密安卓系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810436948.XA CN108595981B (zh) 2018-05-09 2018-05-09 加密安卓系统的方法

Publications (2)

Publication Number Publication Date
CN108595981A true CN108595981A (zh) 2018-09-28
CN108595981B CN108595981B (zh) 2021-07-20

Family

ID=63636005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810436948.XA Active CN108595981B (zh) 2018-05-09 2018-05-09 加密安卓系统的方法

Country Status (1)

Country Link
CN (1) CN108595981B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112379898A (zh) * 2020-12-01 2021-02-19 上海爱信诺航芯电子科技有限公司 一种用于v2x设备的软件安全启动方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1723465A (zh) * 2002-02-25 2006-01-18 英特尔公司 加载可信操作系统的方法和装置
CN103853983A (zh) * 2012-12-06 2014-06-11 三星电子株式会社 执行安全引导的片上系统、使用其的图像形成装置及方法
CN104835537A (zh) * 2015-05-13 2015-08-12 福州瑞芯微电子有限公司 Soc芯片自适应启动方法及装置
US9230112B1 (en) * 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US9411688B1 (en) * 2013-12-11 2016-08-09 Xilinx, Inc. System and method for searching multiple boot devices for boot images
CN105957276A (zh) * 2016-05-17 2016-09-21 福建新大陆支付技术有限公司 基于Android系统智能POS安全系统及启动、数据管控方法
CN106384053A (zh) * 2016-09-14 2017-02-08 江苏北弓智能科技有限公司 移动操作系统可信启动方法和装置
CN106775674A (zh) * 2016-11-29 2017-05-31 深圳市恒扬数据股份有限公司 一种基于通用引导加载程序的设备及其启动方法
CN107135074A (zh) * 2016-02-29 2017-09-05 中兴通讯股份有限公司 一种高级安全方法和装置
CN107729198A (zh) * 2017-10-18 2018-02-23 深圳合纵富科技有限公司 一种Android系统固件校验方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1723465A (zh) * 2002-02-25 2006-01-18 英特尔公司 加载可信操作系统的方法和装置
CN103853983A (zh) * 2012-12-06 2014-06-11 三星电子株式会社 执行安全引导的片上系统、使用其的图像形成装置及方法
US9230112B1 (en) * 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US9411688B1 (en) * 2013-12-11 2016-08-09 Xilinx, Inc. System and method for searching multiple boot devices for boot images
CN104835537A (zh) * 2015-05-13 2015-08-12 福州瑞芯微电子有限公司 Soc芯片自适应启动方法及装置
CN107135074A (zh) * 2016-02-29 2017-09-05 中兴通讯股份有限公司 一种高级安全方法和装置
CN105957276A (zh) * 2016-05-17 2016-09-21 福建新大陆支付技术有限公司 基于Android系统智能POS安全系统及启动、数据管控方法
CN106384053A (zh) * 2016-09-14 2017-02-08 江苏北弓智能科技有限公司 移动操作系统可信启动方法和装置
CN106775674A (zh) * 2016-11-29 2017-05-31 深圳市恒扬数据股份有限公司 一种基于通用引导加载程序的设备及其启动方法
CN107729198A (zh) * 2017-10-18 2018-02-23 深圳合纵富科技有限公司 一种Android系统固件校验方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
庄雪亚 等: "一种基于FPGA的高效安全配置模式的设计", 《电子与封装》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112379898A (zh) * 2020-12-01 2021-02-19 上海爱信诺航芯电子科技有限公司 一种用于v2x设备的软件安全启动方法及系统
CN112379898B (zh) * 2020-12-01 2022-08-09 上海爱信诺航芯电子科技有限公司 一种用于v2x设备的软件安全启动方法及系统

Also Published As

Publication number Publication date
CN108595981B (zh) 2021-07-20

Similar Documents

Publication Publication Date Title
US11089016B2 (en) Secure system on chip
CN107851150B (zh) 用于可信i/o的安全硬件和软件证明的技术
US8572410B1 (en) Virtualized protected storage
US7788730B2 (en) Secure bytecode instrumentation facility
KR101176646B1 (ko) 상태 검증을 사용하는 보호된 오퍼레이팅 시스템 부팅을 위한 시스템 및 방법
CN102208000B (zh) 为虚拟机镜像提供安全机制的方法和系统
CN101965570B (zh) 具有安全启动机制的计算机系统
US8171275B2 (en) ROM BIOS based trusted encrypted operating system
US20110289294A1 (en) Information processing apparatus
US20050021968A1 (en) Method for performing a trusted firmware/bios update
CN104008342B (zh) 一种通过bios和内核实现安全可信认证的方法
US7930503B2 (en) Method and apparatus for operating multiple security modules
US20130055335A1 (en) Security enhancement methods and systems
JP2014507043A (ja) オペレーティングシステムのコンフィグレーション値の保護
JP2005527019A (ja) マルチトークンのシール及びシール解除
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
JP2008171389A (ja) ドメイン・ログオンの方法、およびコンピュータ
US8656190B2 (en) One time settable tamper resistant software repository
KR20140051350A (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
US11809571B2 (en) Vulnerability analysis using continuous application attestation
CN110390201A (zh) 计算机系统以及初始化计算机系统的方法
US10181956B2 (en) Key revocation
JP2008160325A (ja) リムーバブル・デバイスを用いたユーザの認証方法およびコンピュータ
CN108595981A (zh) 加密安卓系统的方法
CN114579337A (zh) 用于在用户设备中生成核心转储的方法和系统

Legal Events

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