CN103914658B - 终端设备的安全启动方法及终端设备 - Google Patents

终端设备的安全启动方法及终端设备 Download PDF

Info

Publication number
CN103914658B
CN103914658B CN201310002938.2A CN201310002938A CN103914658B CN 103914658 B CN103914658 B CN 103914658B CN 201310002938 A CN201310002938 A CN 201310002938A CN 103914658 B CN103914658 B CN 103914658B
Authority
CN
China
Prior art keywords
hash digest
memory
image file
hash
bootstrap
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.)
Active
Application number
CN201310002938.2A
Other languages
English (en)
Other versions
CN103914658A (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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai Co Ltd
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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN201310002938.2A priority Critical patent/CN103914658B/zh
Publication of CN103914658A publication Critical patent/CN103914658A/zh
Application granted granted Critical
Publication of CN103914658B publication Critical patent/CN103914658B/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
    • G06F21/575Secure boot
    • 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/604Tools and structures for managing or administering access control systems
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Abstract

本发明涉及移动终端领域,公开了一种终端设备的安全启动方法及终端设备。本发明中,终端设备包括只读的第一存储器、一次性可编程的第二存储器和可擦写非易失性的第三存储器,第一存储器中存有第一安全代码,第二存储器保存第一哈希摘要,第三存储器中存有基本安全内容、引导程序和映像文件;基本安全内容中包括第一公钥和第二安全代码;引导程序中包括预先被以第一私钥加密的第二哈希摘要的密文;用第一安全代码和第一哈希摘要认证基本安全内容,再以第一公钥和第二安全代码认证引导程序。一方面通过严格的多重认证提高了启动的安全性,另一方面第二存储器中只需要存放基本安全内容的哈希摘要,对第二存储器所需的容量较少,降低了成本。

Description

终端设备的安全启动方法及终端设备
技术领域
本发明涉及移动终端领域,特别涉及终端设备的安全启动技术。
背景技术
在移动终端领域几乎所有的入侵都需要更改系统内容,外界对传统的入侵方式主要是通过破坏调换硬件单元或更改系统文件的内容。而通常防入侵的检查方式是基于已知的入侵手段进行检查,这样几乎很难对新的入侵手段进行防范。系统入侵事件完全有可能持续几个星期甚至更长时间而不能被发觉,熟练的入侵者能够清除系统日志和欺骗过通常的入侵检查系统,但是几乎所有的入侵都需要更改关键的系统文件,因此对系统进行完整性和一致性验证非常有必要,这就是安全启动的功能和目的。
图1是移动终端芯片的典型结构示意图,芯片主要由负责控制、运算功能的处理器及其配套片内只读存储器(Read-Only Memory,简称“ROM”)/随机存取存储器(RandomAccess Memory,简称“RAM”);JTAG接口(Joint Test Action Group,联合测试工作组制订的测试接口标准)和通用输入输出口(General Purpose Input/Out,简称“GPIO”);以及其他功能模块组成。处理器配有相应的片内存储器供程序和数据的存放,由于受到片内存储器容量的限制,移动终端的主要程序(包括操作系统和应用程序)都存放在芯片外部的Flash(闪速存储器)中。外部RAM是芯片运行期间主要的内存单元,负责存放正在运行的程序代码和数据。
系统的正常启动过程如下:
1、从ROM开始启动;
2、将Boot loader(引导程序)从Flash移到处理器的内部RAM中去;
3、运行Boot loader,初始化外部RAM,将代码从Flash拷贝至外部RAM;
4、程序指针指向外部RAM,开始执行外部RAM中的程序。
这个启动过程没有对代码进行校验,用户可以随意对代码进行更改和破解,移动终端的安全无法得到保障,系统厂商的功能,譬如说锁网锁卡,很容易被破解,所以需要一种机制来防范和识别代码的完整性和正确性。
发明内容
本发明的目的在于提供一种终端设备的安全启动方法及终端设备,一方面通过严格的多重认证提高了启动的安全性,另一方面由于只读的存储器中只需要存放基本安全内容的哈希(Hash)摘要和证验用安全代码,对只读的存储器所需的容量较少,所以降低了成本。
为解决上述技术问题,本发明的实施方式公开了一种终端设备的安全启动方法,该设备包括处理器、只读的第一存储器、一次性可编程的第二存储器和可擦写非易失性的第三存储器,该第一存储器中存储有第一安全代码,第二存储器存储有第一哈希摘要,该第三存储器中存储有基本安全内容、引导程序、和操作系统的映像文件;该基本安全内容中包括第一公钥和第二安全代码;该引导程序中包括预先被以第一私钥加密的第二哈希摘要的密文,第一私钥和第一公钥构成一组密钥对;所述方法包括以下步骤:
处理器运行第一安全代码计算基本安全内容的哈希摘要;
如果计算所得的基本安全内容的哈希摘要与第一哈希摘要相同,则该处理器运行第二安全代码,以第一公钥对第二哈希摘要的密文进行解密,得到第二哈希摘要的明文,并且计算引导程序的哈希摘要;
如果计算所得的引导程序的哈希摘要与第二哈希摘要的明文相同,则该处理器运行引导程序加载映像文件。
本发明的实施方式还公开了一种终端设备,包括:
处理器、只读的第一存储器、一次性可编程的第二存储器和可擦写非易失性的第三存储器,该第一存储器中存储有第一安全代码,第二存储器存储有第一哈希摘要,该第三存储器中存储有基本安全内容、引导程序、和操作系统的映像文件;该基本安全内容中包括第一公钥和第二安全代码;该引导程序中包括预先被以第一私钥加密的第二哈希摘要的密文,第一私钥和第一公钥构成一组密钥对;
处理器用于:运行第一安全代码计算基本安全内容的哈希摘要;如果计算所得的基本安全内容的哈希摘要与第一哈希摘要相同,则运行第二安全代码,以第一公钥对第二哈希摘要的密文进行解密得到第二哈希摘要的明文,并且计算引导程序的哈希摘要;如果计算所得的引导程序的哈希摘要与第二哈希摘要的明文相同,则运行引导程序。
本发明实施方式与现有技术相比,主要区别及其效果在于:
一方面通过严格的多重认证提高了启动的安全性,另一方面由于一次性可编程的存储器中只需要存放基本安全内容的哈希摘要,对一次性可编程的存储器所需的容量较少,所以降低了成本。
进一步地,以引导程序中的公钥等信息对映像文件进一步进行认证,可以进一步提高启动的安全性,又可以灵活升级版本,只需要拥有私钥就可以发布合法的软件版本。
进一步地,只对引导程序的重要部分进行认证,即可以保证安全性,又可以减少认证的计算量,提高认证的效率。
进一步地,只对映像文件的重要部分进行认证,即可以保证安全性,又可以进一步减少认证的计算量,提高认证的效率。
进一步地,将第一安全代码存放在只读存储器(ROM),将第一哈希摘要存放在一次性可编程存储器(OTP)中。因为安全代码一般不会变化,使用只读存储器可以按同规格批量制造,降低了成本。而哈希摘要需要等基本安全内容确定后才能计算出来,基本安全内容有国际移动设备识别码(International Mobile Equipment Identity,简称“IMEI”)等信息,每个终端都会不同,使用OTP虽然成本较高,但可以满足按设备定制的需要。将ROM和OTP组合起来使用,既降低了总的制造成本,又满足了定制的需要。
进一步地,将第一存储器与处理器集成在同一个物理芯片上,可以防止通过更换第一存储器而破坏安全机制的做法,提高了攻击安全机制的成本。
附图说明
图1是现有技术中一种典型的终端设备芯片的结构示意图;
图2是本发明第一实施方式中一种终端设备的安全启动方法的流程示意图;
图3是本发明第一实施方式中一种终端设备的安全启动方法的流程示意图;
图4是本发明第一实施方式中一种一次性可编程存储器的结构示意图;
图5是本发明第一实施方式中一种引导程序的结构示意图;
图6是本发明第一实施方式中一种映像文件的结构示意图;
图7是本发明第一实施方式中一种基本安全内容的结构示意图;
图8是本发明第二实施方式中一种终端设备的结构示意图;
图9是本发明第二实施方式中一种安全启动的流程示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种终端设备的安全启动方法。图2是该终端设备的安全启动方法的流程示意图。
该设备包括处理器、只读的第一存储器、一次性可编程的第二存储器和可擦写非易失性的第三存储器,该第一存储器中存储有第一安全代码,一次性可编程的第二存储器存储有第一哈希摘要,该第三存储器中存储有基本安全内容、引导程序、和操作系统的映像文件(Image)。该基本安全内容(Basal Secure Content,简称“BSC”,为一组安全代码和安全数据的集合)中包括第一公钥和第二安全代码。该引导程序中包括预先被以第一私钥加密的第二哈希摘要的密文,第一私钥和第一公钥构成一组密钥对。
第一存储器以只读存储器ROM实现,第二存储器以一次性可编程存储器(One-Time-Programmable Memory,简称“OTP”)实现,其中,第一安全代码存储在第一存储器,第一哈希摘要存储在第二存储器。
第二存储器中还存储本终端设备的标识UID。
OTP为一次性可编程的存储单元,其一旦被编程过后就不能再被修改。如图4所示,本实施方式中,OTP中保存的第一哈希摘要占160比特,UID占64比特。芯片的UID为产品唯一却不重复的编号,UID由64bit二进制数组成,足以保证所有产品不会重复。UID在芯片出厂前写入,对用户只读,保证UID不被篡改。
将第一安全代码存放在只读存储器(ROM),将第一哈希摘要存放在一次性可编程存储器(OTP)中。因为安全代码一般不是变化,使用只读存储器可以按同规格批量制造,降低了成本。而哈希摘要需要等基本安全内容确定后才能计算出来,基本安全内容有国际移动设备识别码(IMEI)等信息,每个终端都会不同,使用OTP虽然成本较高,但可以满足按设备定制的需要。将ROM和OTP组合起来使用,既降低了总的制造成本,又满足了定制的需要。
此外,可以理解,在本发明的其它某些实例中,第一存储器也可以都由一次性可编程存储器实现,或都由只读存储器实现,或由提供在只读功能的其它类型的存储器实现。
第一存储器与处理器集成在同一个物理芯片中,可以防止通过更换第一存储器而破坏安全机制的做法,提高了攻击安全机制的成本。在本发明的其它某些实例中,第一存储器也可以与处理器分别位于不同的物理芯片上。
优选地,可擦写非易失性的第三存储器可以使用闪速存储器(Flash)。在本发明的其它某些实例中,也可以使用SD卡,微型硬盘等类型的存储器,只要满足重复擦写、断电后数据不会丢失的条件就可以。
在嵌入式操作系统中,引导程序(BootLoader)是在操作系统内核运行之前运行的程序,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
具体地说,如图2所示,该终端设备的安全启动方法包括以下步骤:
在步骤201中,处理器运行第一安全代码计算基本安全内容(BSC)的哈希摘要。
此后进入步骤202,判断计算所得的基本安全内容(BSC)的哈希摘要与第一哈希摘要是否相同。
若是,则进入步骤203;若否,则结束本流程。
如果计算所得的基本安全内容(BSC)的哈希摘要与第一哈希摘要不同,则终止设备的正常启动。
本发明各实施方式中所称的终止设备的正常启动可以是终止后续的运行,可以是显示警告信息,也可以是运行预先指定的程序(例如ROM中的安全启动程序)。
在步骤203中,处理器运行第二安全代码,以第一公钥对第二哈希摘要的密文进行解密,得到第二哈希摘要的明文。
此后进入步骤204,处理器计算引导程序的哈希摘要。
此后进入步骤205,判断计算所得的引导程序的哈希摘要与第二哈希摘要的明文是否相同。
若是,则进入步骤209;若否,则终止论备的正常启动,结束本流程。
在步骤209中,处理器运行引导程序加载映像文件。加载映像文件是指将映像文件加载到随机存取存储器(Random Access Memory,简称“RAM”),并执行RAM中的程序,从而完成启动过程。
此后结束本流程。
上述流程一方面通过严格的多重认证提高了启动的安全性,另一方面由于一次性可编陈的存储器中只需要存放基本安全内容的哈希摘要,对一次性可编陈的存储器所需的容量较少,所以降低了成本。
因为可以设置引导程序认证的长度,所以不用担心升级后引导程序长度的变化,增加了灵活性。
优选地,在本实施方式中,引导程序中还可以包括第二公钥。
映像文件中包括预先被以第二私钥加密的第三哈希摘要的密文,第二私钥和第二公钥构成一组密钥对。
这样,在步骤209之前,还包括以下步骤,如图3所示:
在步骤205中,判断计算所得的引导程序的哈希摘要与第二哈希摘要的明文是否相同。
若是,则进入步骤206;若否,则终止设备的正常启动,结束本流程。
在步骤206中,处理器运行第二安全代码,以第二公钥对第三哈希摘要的密文进行解密,得到第三哈希摘要的明文。
可以理解,以公钥对密文进行解密是一个现有技术,第二公钥对第三哈希摘要的密文进行解密可以用ROM中的第一安全代码,也可以用基本安全内容中的第二安全代码,也可以用引导程序中的代码。
此后进入步骤207,处理器读取映像文件需要校验的长度,并计算映像文件指定长度部分的哈希摘要。为加快校验速度可以只校验代码部分,而不校验铃声,图片等数据,也可以全部校验。
计算映像文件的哈希摘要可以用ROM中的第一安全代码,也可以用基本安全内容中的第二安全代码,也可以用引导程序中的代码。
此后进入步骤208,判断计算所得的映像文件的哈希摘要与第三哈希摘要的明文是否相同。
若是,则进入步骤209;若否,则结束本流程。
如果计算所得的映像文件的哈希摘要与第三哈希摘要的明文相同,则该处理器运行引导程序加载映像文件。
以引导程序中的公钥等信息对映像文件进一步进行认证,可以进一步提高启动的安全性。
在本发明的其它某些实例中,如果安全性的要求不是很高,根据已被验证的引导程序中的信息对映像文件进行验证即步骤206、207和208可以省略。
进一步的,如果安全性的要求不是很高,根据基本安全内容对引导程序进行验证即步骤203、204和205可以省略。此时方案只校验基本安全内容,相当于扩展了一次性可编程存储器的容量大小。
此外,在本发明的其它某些实例中,可以将映像文件的验证信息(如公钥)也放在基本安全内容中,根据基本安全内容中的信息直接验证引导程序和映像文件。
更具体地说,引导程序还包括需校验部分和未校验部分,以及表示需校验部分位置的信息,如图5所示,表示需校验部分位置的信息由长度、设置字、Hash摘要组成。其中长度为需要校验的引导程序长度,设置字功能保留,校验和为经过公开密钥算法加密后的引导程序的Hash摘要。
第二哈希摘要是对引导程序中需校验部分进行哈希计算的结果。
上述步骤204中,即在计算引导程序的哈希摘要的步骤中,根据引导程序中表示需校验部分位置的信息,对引导程序中需校验部分进行哈希计算得到哈希摘要。
只对引导程序的重要部分进行认证,即可以保证安全性,又可以减少认证的计算量,提高认证的效率。
此外,可以理解,在本发明的其它某些实例中,第二哈希摘要也可以是对引导程序的整体做Hash的结果,以提高安全性。
同样地,映像文件还包括需校验部分和未校验部分,以及表示需校验部分位置的信息,如图6所示,表示需校验部分位置的信息由长度、设置字、Hash摘要组成。其中长度为需要校验的映像文件长度,设置字功能保留,校验和为经过公开密钥算法加密后的映像文件的Hash摘要。
第三哈希摘要是对映像文件中需校验部分进行哈希计算的结果。
上述步骤207,即在计算映像文件的哈希摘要的步骤中,根据映像文件中表示需校验部分位置的信息,对映像文件中需校验部分进行哈希计算得到哈希摘要。
此外,可以理解,本发明的各实施方式中,表示需校验部分位置的信息可以是一个起始位置加上一个长度,也可以只是一个长度(使用缺省的起始位置)。
只对映像文件的重要部分进行认证,即可以保证安全性,又可以减少认证的计算量,提高认证的效率。
在本发明的其它某些实例中,第三哈希摘要也可以是对映像文件的整体作Hash的结果,以提高安全性。
基本安全内容的逻辑结构如图7所示,由安全代码区和用户数据组成,安全代码的主要功能有安全算法的实现代码和验证引导程序所用代码,用户数据包含第一公钥和用户想要加入的任何信息,例如:国际移动设备识别码(IMEI),产品号,地区码,语言码等信息中的任意一个或其任意组合。
综上所述,安全启动的工作流程如下:
步骤一、用ROM内第一安全代码配合OTP校验BSC,验证BSC的合法性和完整性。
芯片加电后,系统从ROM开始执行,首先计算出整个BSC的Hash摘要,和OTP内保存的Hash摘要比较,如果正确程序跳转到BSC,反之中止开机。在系统中ROM在芯片制造时就已经固化,不能被修改,OTP在移动终端出厂时也已经被编程,不能再次被修改,所以这两者可以认为是安全可靠的。而任何BSC的改动都会导致开机后实时计算出来的Hash摘要变动,和OTP内保存的Hash摘要不一致,所以如果两者一致的话可以保证BSC的合法性和完整性;
引入BSC可以节约方案的实现成本。BSC内保存的主要为公开密钥加密算法的公钥和用户数据,如果直接保存公开密钥加密算法的公钥和用户数据需要很大的OTP存储容量,例如2048位RSA算法需要占用2048位的OTP容量,其他用户数据也需要占用OTP容量。而采用本发明中BSC的机制,无论多大的数据都只需要在OTP中保存一个Hash摘要,保存一个Hash摘要只需要很少的OTP存储容量,例如MD5算法只需要128比特,SHA-1只需要160比特,其他保存在Flash中。OTP的成本并不低,而外部Flash的成本相对于OTP来说低好几个数量级。
步骤二、用校验通过的BSC校验Boot loader,验证Boot loader的合法性和完整性。
Boot loader中表示需校验部分位置的信息(VLR)中保存的Hash摘要事先使用私钥用公开密钥算法签过名,加密(签名)用的私钥和保存在BSC内的公钥对应,只要拥有私钥可以对任何Boot loader进行加密,签名Bootloader是在发布软件之前在一台安全的电脑上完成。
当程序跳转到BSC,BSC首先读取保存在Boot loader VLR中的Hash摘要,使用BSC内保存的公钥用公开密钥算法解密;之后BSC读取Bootloader VLR中保存的校验长度,计算这个长度的Boot loader的实际Hash摘要。把计算出来的Hash摘要和公开密钥算法解密出来的Hash摘要比较。任何Boot loader的变动都会导致实际计算出来的Hash摘要变化,从而和公开密钥算法解密出来的Hash摘要(这个Hash摘要受公开密钥加密算法保护,不容易被仿照)不一致,这表示Boot loader发生变动,程序中止开机。反之如果两者相同则表示Bootloader没有被修改过,程序执行正常开机流程。这步保证Boot loader的合法性和完整性;
步骤三、用校验通过的Boot loader校验Image,验证Image的合法性和完整性。
Image VLR中保存的Hash摘要事先使用私钥用公开密钥算法签过名,签名用的私钥和保存在Boot loader内的公钥对应,只要拥有私钥可以对任何Image进行签名,签名Image是在发布软件之前在一台安全的电脑上完成。
当程序跳转到Boot loader,Boot loader首先读取保存在Image VLR中的Hash摘要,使用Boot loader内保存的公钥用公开密钥算法解密;之后Boot loader读取Image VLR中保存的校验长度,计算这个长度的Image的实际Hash摘要。把计算出来的Hash摘要和公开密钥算法解密出来的Hash摘要比较。任何Image的变动都会导致实际计算出来的Hash摘要变化,从而和公开密钥算法解密出来的Hash摘要不一致,这表示Image发生变动,程序中止开机。反之如果两者相同则表示Image没有被修改过,程序执行正常开机流程。这步保证Image的合法性和完整性;
步骤四、控制权交给校验通过的Image,安全启动完成。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable ArrayLogic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第二实施方式涉及一种终端设备。图8是该终端设备的结构示意图。
具体地说,如图8所示,该终端设备包括:
处理器、只读的第一存储器、一次性可编程的第二存储器和可擦写非易失性的第三存储器,该第一存储器中存储有第一安全代码,第二存储器中存储有第一哈希摘要,该第三存储器中存储有基本安全内容、引导程序、和操作系统的映像文件。该基本安全内容中包括第一公钥和第二安全代码。该引导程序中包括预先被以第一私钥加密的第二哈希摘要的密文,第一私钥和第一公钥构成一组密钥对。
处理器用于:运行第一安全代码计算基本安全内容的哈希摘要。如果计算所得的基本安全内容的哈希摘要与第一哈希摘要相同,则运行第二安全代码,以第一公钥对第二哈希摘要的密文进行解密得到第二哈希摘要的明文,并且计算引导程序的哈希摘要。如果计算所得的引导程序的哈希摘要与第二哈希摘要的明文相同,则运行引导程序。
第一存储器以只读存储器ROM实现,第二存储器以一次性可编程存储器(One-Time-Programmable Memory,简称“OTP”)实现,其中,第一安全代码存储在第一存储器,第一哈希摘要存储在第二存储器。
将第一安全代码存放在只读存储器(ROM),将第一哈希摘要存放在一次性可编程存储器(OTP)中。因为安全代码一般不会变化,使用只读存储器可以按同规格批量制造,降低了成本。而哈希摘要需要等基本安全内容确定后才能计算出来,基本安全内容有国际移动设备识别码(IMEI)等信息,每个终端都会不同,使用OTP虽然成本较高,但可以满足按设备定制的需要。将ROM和OTP组合起来使用,即降低了总的制造成本,又满足了定制的需要。
此外,可以理解,在本发明的其它某些实例中,第一存储器也可以都由一次性可编程存储器实现,第二存储器也可以都由只读存储器实现(此时BSC的内容固定),或由提供一次性可编程的其它类型的存储器实现。
第一存储器与处理器集成在同一个物理芯片中,第二存储器可以与处理器集成在同一个物理芯片中,也可以在其他芯片中。
将第一存储器与处理器集成在同一个物理芯片上,可以防止通过更换第一存储器而破坏安全机制的做法,提高了攻击安全机制的成本。
此外,可以理解,在本发明的其它某些实例中,第一存储器也可以与处理器分别位于不同的物理芯片上。
第二存储器还存储本终端设备的标识UID。
优选地,可擦写非易失性的第三存储器可以使用闪速存储器(Flash)。在本发明的其它某些实例中,也可以使用SD卡,微型硬盘等类型的存储器,只要满足重复擦写、断电后数据不会丢失的条件就可以。
在嵌入式操作系统中,引导程序(Boot Loader)是在操作系统内核运行之前运行的程序,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
优选地,引导程序中还包括第二公钥。映像文件中包括预先以第二私钥加密的第三哈希摘要的密文,第二私钥和第二公钥构成一组密钥对;
处理器还用于:运行第二安全代码,以第二公钥对第三哈希摘要的密文进行解密,得到第三哈希摘要的明文,并且计算映像文件的哈希摘要。如果计算所得的映像文件的哈希摘要与第三哈希摘要的明文相同,则运行引导程序加载映像文件。
此外,可以理解,以公钥对密文进行解密是一个现有技术,第二公钥对第三哈希摘要的密文进行解密可以用基本安全内容中的第二安全代码,也可以用引导程序中的代码。
计算映像文件的哈希摘要可以用基本安全内容中的第二安全代码,也可以用引导程序中的代码。
在本发明的其它某些实例中,如果安全性的要求不是很高,处理器根据已被验证的引导程序中的信息对映像文件进行验证的步骤可以省略。
在本发明的其它某些实例中,可以将映像文件的验证信息(如公钥)也放在基本安全内容中,根据基本安全内容中的信息验证引导程序和映像文件。
优选地,引导程序还包括需校验部分和未校验部分,以及表示需校验部分位置的信息,如图5所示。
第二哈希摘要是对引导程序中需校验部分进行哈希计算的结果。
处理器是根据引导程序中表示需校验部分位置的信息,对引导程序中需校验部分进行哈希计算,得到引导程序的哈希摘要。
映像文件还包括需校验部分和未校验部分,以及表示需校验部分位置的信息,如图6所示。
第三哈希摘要是对映像文件中需校验部分进行哈希计算的结果。
处理器是根据映像文件中表示需校验部分位置的信息,对映像文件中需校验部分进行哈希计算,得到映像文件的哈希摘要。
本发明的安全启动方案采用多级信任链机制,将系统自下而上建立起系统平台的信任链。这个信任链的最底层是芯片的第一存储器和OTP,最高层是系统应用程序。整个信任链如图9所示:采用哈希算法,由第一存储器来保证基本安全内容的完整性和可信性,然后使用公开密钥算法,由基本安全内容来保证引导程序的完整性和可信性,最后用公开密钥算法,由引导程序来保证映像文件(包含操作系统内核,操作系统及其他程序和数据的一个或多个集合)的完整性和可信性,提供一个安全的启动过程。
在安全启动实现上我们采用了公开密钥加密算法签名的方式来实现对引导程序和映像文件的认证,下载到片外Flash的引导程序和映像文件需要使用工具用私钥进行签名,也就是说任何合法的引导程序和映像文件都是经过私钥签名的。基本安全内容和引导程序中保存着对应的公钥,在安全启动时基本安全内容和引导程序将会使用公钥分别对引导程序和映像文件进行验签,从而保证引导程序和映像文件的合法性和完整性,同时使用公开密钥算法签名的方法也保证了软件的可升级性,而并不是移动终端制造完以后就不能再升级了。软件的升级模块同样经过公开密钥加密算法验签,保证软件升级过程的安全性。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (11)

1.一种终端设备的安全启动方法,其特征在于,该设备包括处理器、只读的第一存储器、一次性可编程的第二存储器和可擦写非易失性的第三存储器,该第一存储器中存储有第一安全代码,第二存储器存储有第一哈希摘要,该第三存储器中存储有基本安全内容、引导程序、和操作系统的映像文件;该基本安全内容中包括第一公钥和第二安全代码;该引导程序中包括预先被以第一私钥加密的第二哈希摘要的密文,第一私钥和第一公钥构成一组密钥对;所述方法包括以下步骤:
所述处理器运行第一安全代码计算所述基本安全内容的哈希摘要;
如果计算所得的所述基本安全内容的哈希摘要与第一哈希摘要相同,则该处理器运行第二安全代码,以第一公钥对第二哈希摘要的密文进行解密,得到第二哈希摘要的明文,并且计算所述引导程序的哈希摘要;
如果计算所得的所述引导程序的哈希摘要与第二哈希摘要的明文相同,则该处理器运行引导程序。
2.根据权利要求1所述的终端设备的安全启动方法,其特征在于,所述引导程序中还包括第二公钥;
所述映像文件中包括预先被以第二私钥加密的第三哈希摘要的密文,第二私钥和第二公钥构成一组密钥对;
在所述处理器运行引导程序加载所述映像文件的步骤之前,还包括以下步骤:
所述处理器运行第二安全代码,以第二公钥对第三哈希摘要的密文进行解密,得到第三哈希摘要的明文,并且计算所述映像文件的哈希摘要;
如果计算所得的所述映像文件的哈希摘要与第三哈希摘要的明文相同,则该处理器运行引导程序加载所述映像文件。
3.根据权利要求2所述的终端设备的安全启动方法,其特征在于,所述映像文件还包括需校验部分和未校验部分,以及表示需校验部分位置的信息;
所述第三哈希摘要是对所述映像文件中需校验部分进行哈希计算的结果;
所述计算映像文件的哈希摘要的步骤中,根据所述映像文件中表示需校验部分位置的信息,对所述映像文件中需校验部分进行哈希计算得到哈希摘要。
4.根据权利要求1至3中任一项所述的终端设备的安全启动方法,其特征在于,所述引导程序还包括需校验部分和未校验部分,以及表示需校验部分位置的信息;
所述第二哈希摘要是对所述引导程序中需校验部分进行哈希计算的结果;
所述计算引导程序的哈希摘要的步骤中,根据所述引导程序中表示需校验部分位置的信息,对所述引导程序中需校验部分进行哈希计算得到哈希摘要。
5.根据权利要求1至3中任一项所述的终端设备的安全启动方法,其特征在于,所述基本安全内容中还包括以下信息之一或其任意组合:
国际移动设备识别码,产品号,地区码,语言码。
6.根据权利要求5所述的终端设备的安全启动方法,其特征在于,所述第一存储器与所述处理器集成在同一个物理芯片中。
7.根据权利要求6所述的终端设备的安全启动方法,其特征在于,所述第二存储器中还存储本终端设备的标识。
8.一种能安全启动的终端设备,其特征在于,包括:
处理器、只读的第一存储器、一次性可编程的第二存储器和可擦写非易失性的第三存储器,该第一存储器中存储有第一安全代码,第二存储器存储有第一哈希摘要,该第三存储器中存储有基本安全内容、引导程序、和操作系统的映像文件;该基本安全内容中包括第一公钥和第二安全代码;该引导程序中包括预先被以第一私钥加密的第二哈希摘要的密文,第一私钥和第一公钥构成一组密钥对;
所述处理器用于:运行第一安全代码计算所述基本安全内容的哈希摘要;如果计算所得的所述基本安全内容的哈希摘要与第一哈希摘要相同,则运行第二安全代码,第一公钥对第二哈希摘要的密文进行解密,得到第二哈希摘要的明文,并且计算所述引导程序的哈希摘要;如果计算所得的所述引导程序的哈希摘要与第二哈希摘要的明文相同,则运行引导程序。
9.根据权利要求8所述的能安全启动的终端设备,其特征在于,所述引导程序中还包括第二公钥;所述映像文件中包括预先以第二私钥加密的第三哈希摘要的密文,第二私钥和第二公钥构成一组密钥对;
所述处理器还用于:运行第二安全代码,以第二公钥对第三哈希摘要的密文进行解密,得到第三哈希摘要的明文,并且计算所述映像文件的哈希摘要;如果计算所得的所述映像文件的哈希摘要与第三哈希摘要的明文相同,则运行引导程序加载所述映像文件。
10.根据权利要求9所述的能安全启动的终端设备,其特征在于,所述映像文件还包括需校验部分和未校验部分,以及表示需校验部分位置的信息;
所述第三哈希摘要是对所述映像文件中需校验部分进行哈希计算的结果;
所述处理器是根据所述映像文件中表示需校验部分位置的信息,对所述映像文件中需校验部分进行哈希计算,得到所述映像文件的哈希摘要。
11.根据权利要求8至10中任一项所述的能安全启动的终端设备,其特征在于,所述引导程序还包括需校验部分和未校验部分,以及表示需校验部分位置的信息;
所述第二哈希摘要是对所述引导程序中需校验部分进行哈希计算的结果;
所述处理器是根据所述引导程序中表示需校验部分位置的信息,对所述引导程序中需校验部分进行哈希计算,得到所述引导程序的哈希摘要。
CN201310002938.2A 2013-01-05 2013-01-05 终端设备的安全启动方法及终端设备 Active CN103914658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310002938.2A CN103914658B (zh) 2013-01-05 2013-01-05 终端设备的安全启动方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310002938.2A CN103914658B (zh) 2013-01-05 2013-01-05 终端设备的安全启动方法及终端设备

Publications (2)

Publication Number Publication Date
CN103914658A CN103914658A (zh) 2014-07-09
CN103914658B true CN103914658B (zh) 2017-02-22

Family

ID=51040331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310002938.2A Active CN103914658B (zh) 2013-01-05 2013-01-05 终端设备的安全启动方法及终端设备

Country Status (1)

Country Link
CN (1) CN103914658B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109583189A (zh) * 2018-12-13 2019-04-05 深圳忆联信息系统有限公司 固件安全加载方法、装置、计算机设备及存储介质

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123505A (zh) * 2014-07-24 2014-10-29 丹阳市广播电视台 Android智能设备防刷机系统及其校验方法
CN104618104B (zh) * 2014-12-15 2019-11-29 惠州Tcl移动通信有限公司 配件、电子设备及实现配件认证的系统
CN104598841B (zh) * 2014-12-29 2017-11-28 东软集团股份有限公司 一种面向终端安全的双系统引导方法和装置
WO2017012126A1 (en) * 2015-07-23 2017-01-26 Qualcomm Technologies International, Ltd. Fast authentication of code in a low-power system
CN105447403B (zh) * 2015-11-05 2018-05-25 天津津航计算技术研究所 一种适用于嵌入式实时信息处理单元的加密方法
GB2545010B (en) * 2015-12-03 2018-01-03 Garrison Tech Ltd Secure boot device
CN106855927A (zh) * 2015-12-08 2017-06-16 展讯通信(上海)有限公司 终端设备及其启动方法
CN106934289A (zh) * 2015-12-30 2017-07-07 北京展讯高科通信技术有限公司 校验及形成签名映像的方法
CN107220547B (zh) * 2016-03-21 2020-07-03 展讯通信(上海)有限公司 终端设备及其启动方法
CN105844147A (zh) * 2016-03-22 2016-08-10 福建超瑞创原信息技术有限公司 一种应用验签方法和装置
CN107451432A (zh) * 2016-05-30 2017-12-08 深圳市中兴微电子技术有限公司 一种启动程序检查方法和装置
CN106295363B (zh) * 2016-07-29 2019-05-14 北京小米移动软件有限公司 开机校验方法及装置
CN107870788B (zh) * 2016-09-26 2020-10-02 展讯通信(上海)有限公司 多可信执行环境下终端设备的启动方法和终端设备
CN106656481B (zh) * 2016-10-28 2019-08-30 美的智慧家居科技有限公司 身份认证方法、装置以及系统
KR102617354B1 (ko) * 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
CN108363918B (zh) * 2017-04-28 2022-02-18 清华大学 处理器操作系统的引导启动方法、装置及处理器系统
US10503892B2 (en) 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
US10708061B2 (en) * 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor
CN108280351A (zh) * 2017-12-25 2018-07-13 上海电力学院 一种基于tpm的用电采集终端的可信启动方法
CN108804952B (zh) * 2018-05-29 2021-06-25 郑州云海信息技术有限公司 一种服务器开机控制装置及控制方法
CN109997140B (zh) * 2018-09-10 2023-03-24 深圳市汇顶科技股份有限公司 使用一次写入寄存器从设备的睡眠状态加速安全启动的低功耗嵌入式设备
CN109542518B (zh) * 2018-10-09 2020-12-22 华为技术有限公司 芯片和启动芯片的方法
CN109446011A (zh) * 2018-11-01 2019-03-08 郑州云海信息技术有限公司 一种硬盘的固件安全测试方法、装置及存储介质
CN110007974B (zh) * 2019-03-29 2021-02-19 联想(北京)有限公司 应用于操作系统启动的方法和装置、及电子设备
CN110008724B (zh) * 2019-03-29 2023-03-21 记忆科技(深圳)有限公司 固态硬盘控制器安全加载方法、装置及存储介质
CN112016056A (zh) * 2019-05-30 2020-12-01 中车株洲电力机车研究所有限公司 一种便捷的牵引变流器的软件加密方法及装置
CN110245466B (zh) * 2019-06-19 2021-08-24 苏州科达科技股份有限公司 软件完整性保护和验证方法、系统、设备及存储介质
CN113032786B (zh) * 2019-12-25 2023-07-04 成都鼎桥通信技术有限公司 认证凭证的传递方法、芯片及设备
CN111401929B (zh) * 2020-04-02 2023-04-07 浙江大华技术股份有限公司 设备防窜货方法、系统、计算机设备及存储介质
CN113742784A (zh) * 2020-05-27 2021-12-03 瑞昱半导体股份有限公司 应用加速验证映像文件方法的系统
CN111814137B (zh) * 2020-06-29 2024-03-22 深圳市海邻科信息技术有限公司 终端的运维方法、运维系统及存储介质
CN111970122B (zh) * 2020-08-06 2023-01-10 中国联合网络通信集团有限公司 识别官方app的方法、移动终端及应用服务器
CN111970684B (zh) * 2020-09-09 2023-01-24 中国联合网络通信集团有限公司 自动选择通信app的方法、系统、计算机设备及存储介质
CN112105001B (zh) * 2020-09-09 2022-10-28 中国联合网络通信集团有限公司 自动安装运营商app的方法、系统、设备及存储介质
CN112306565B (zh) * 2020-11-05 2023-05-23 山东云海国创云计算装备产业创新中心有限公司 一种fpga产品的加密启动装置、方法及相关组件
CN112445537B (zh) * 2020-12-11 2022-04-15 中国科学院信息工程研究所 操作系统可信启动方法、装置、移动终端和存储介质
CN114647453B (zh) * 2022-03-01 2023-06-09 芯原微电子(成都)有限公司 多处理器的可信动态启动方法、系统、存储介质及终端
CN114598544B (zh) * 2022-03-22 2023-07-11 全球能源互联网研究院有限公司南京分公司 一种智能物联终端安全状态基线判别方法及装置
CN115599407B (zh) * 2022-11-29 2023-08-15 深圳宏芯宇电子股份有限公司 固件烧录方法、固件烧录系统及存储器存储装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1991779A (zh) * 2005-12-30 2007-07-04 联想(北京)有限公司 基于安全芯片的防病毒方法
CN102136044A (zh) * 2010-07-14 2011-07-27 华为技术有限公司 安全启动方法、装置及计算机系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1991779A (zh) * 2005-12-30 2007-07-04 联想(北京)有限公司 基于安全芯片的防病毒方法
CN102136044A (zh) * 2010-07-14 2011-07-27 华为技术有限公司 安全启动方法、装置及计算机系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109583189A (zh) * 2018-12-13 2019-04-05 深圳忆联信息系统有限公司 固件安全加载方法、装置、计算机设备及存储介质
CN109583189B (zh) * 2018-12-13 2020-08-11 深圳忆联信息系统有限公司 固件安全加载方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN103914658A (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
CN103914658B (zh) 终端设备的安全启动方法及终端设备
CN103093150B (zh) 一种基于可信芯片的动态完整性保护方法
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
US8543839B2 (en) Electronic device and method of software or firmware updating of an electronic device
TWI376634B (en) Computing system, method, computer-readable medium and patch data structure product for augmenting software
US7421588B2 (en) Apparatus, system, and method for sealing a data repository to a trusted computing platform
KR100746012B1 (ko) 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
CN102298529B (zh) 为系统提供硅集成代码
Kühn et al. Realizing property-based attestation and sealing with commonly available hard-and software
US20140040636A1 (en) Embedded controller to verify crtm
JPWO2009107349A1 (ja) 情報処理装置
JP2010510574A (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
JP2009015818A (ja) 動的信頼管理
CN103080904A (zh) 提供多阶段锁步完整性报告机构
US20080278285A1 (en) Recording device
US20130091394A1 (en) Data processing apparatus and validity verification method
JP7113115B2 (ja) シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法
US9659171B2 (en) Systems and methods for detecting tampering of an information handling system
WO2021249359A1 (zh) 数据完整性保护的方法和装置
CN105930733A (zh) 一种信任链构建方法和装置
JP5466645B2 (ja) 記憶装置、情報処理装置およびプログラム
US10181956B2 (en) Key revocation
CN112613011B (zh) U盘系统认证方法、装置、电子设备及存储介质
CN109583197B (zh) 一种可信叠层文件加解密方法

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
TR01 Transfer of patent right

Effective date of registration: 20180402

Address after: The 300456 Tianjin FTA test area (Dongjiang Bonded Port) No. 6865 North Road, 1-1-1802-7 financial and trade center of Asia

Patentee after: Xinji Lease (Tianjin) Co.,Ltd.

Address before: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee before: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140709

Assignee: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Assignor: Xinji Lease (Tianjin) Co.,Ltd.

Contract record no.: 2018990000196

Denomination of invention: Safe starting method of terminal equipment, and terminal equipment

Granted publication date: 20170222

License type: Exclusive License

Record date: 20180801

EE01 Entry into force of recordation of patent licensing contract
TR01 Transfer of patent right

Effective date of registration: 20221024

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 300456 1-1-1802-7, north area of financial and Trade Center, No. 6865, Asia Road, Tianjin pilot free trade zone (Dongjiang Bonded Port Area)

Patentee before: Xinji Lease (Tianjin) Co.,Ltd.

TR01 Transfer of patent right