CN101379506B - 用于从外部存储装置进行安全引导的方法和设备 - Google Patents
用于从外部存储装置进行安全引导的方法和设备 Download PDFInfo
- Publication number
- CN101379506B CN101379506B CN200780004543.9A CN200780004543A CN101379506B CN 101379506 B CN101379506 B CN 101379506B CN 200780004543 A CN200780004543 A CN 200780004543A CN 101379506 B CN101379506 B CN 101379506B
- Authority
- CN
- China
- Prior art keywords
- program
- module
- secure data
- signature
- external memory
- 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.)
- Expired - Fee Related
Links
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
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本发明描述用于从外部存储装置安全地引导电子装置(例如,蜂窝式电话)的技术。最初从外部存储器装置的不可写入区(例如,NAND快闪装置的一次性可编程(OTP)区)检索安全数据(例如,散列摘要、签名、密码密钥等等)。从所述外部存储器装置的可写入或主要区检索第一程序(例如,引导程序)且基于所述安全数据来验证所述第一程序。所述第一程序在经验证的情况下经启用以用于执行。可从所述外部存储器装置的所述主要区检索第二程序且基于所述安全数据来验证所述第二程序。所述第二程序在经验证的情况下经启用以用于执行。可检索和验证额外的程序。可使用安全散列函数、数字签名和/或某一其它密码技术来验证每一程序。
Description
技术领域
本发明大体上涉及电子设备,且更具体地说涉及用于从外部存储装置安全地引导电子装置的技术。
背景技术
电子装置(例如,蜂窝式电话)通常基于控制装置内的硬件且支持各种所设计功能的软件和/或固件来操作。软件和/或固件可存储在外部非易失性存储器中,在加电期间加载于快速内部存储器和/或外部易失性存储器中并由处理器执行。外部和内部存储器通常经选择以提供所需要的存储容量和存取能力且选择成尽可能为经济的。
在许多例子中,需要或必须确定从外部存储器检索的软件和/或固件是否有效且经授权以用于执行。举例来说,具有不同特征的不同软件版本可用于不同等级的服务预订。因而可能需要防止具有基本预订的电子装置加载和执行具有预期用于高级预订的增强功能性的软件版本。作为另一实例,可能需要防止窜改软件和/或固件以启用未经授权的特征。另外,敌对方可能导致更坏的后果,例如网络破坏和/或中断。
发明内容
因此在此项技术中需要用以将软件和/或固件存储在经济的存储器中且检查从这些存储器检索的软件和/或固件的有效性的技术。
本文描述用于从外部存储装置(例如,NAND快闪存储器装置)安全地引导电子装置(例如,蜂窝式电话)的技术。安全引导指代载入来自外部存储装置的软件程序以及检查所载入软件程序的有效性的过程。软件程序可包含软件代码、固件代码或两者的组合。
本文所描述的技术可利用外部存储装置上的不可写入区来存储实际上不可更改的安全数据。所述不可写入区可以是一次性可编程(OTP)区、一次性写入(OTW)区等等。如本文所使用,安全数据包括不可容易更改的数据(例如,存储在OTP区或OTW区中的数据)以及由所述不可容易更改的数据验证的数据。所述安全数据可包含一个或一个以上散列摘要、签名、证书、密码密钥等等,或其组合。所述技术利用安全数据来验证从外部存储装置载入的软件程序,允许执行经验证的程序以及防止执行未经授权的程序。
在安全引导的实施例中,最初从外部存储器装置的不可写入区(例如,NAND快闪存储器的OTP区)检索安全数据。从外部存储器装置的可写入或主要区检索第一程序(例如,引导程序),且基于所述安全数据来验证第一程序。举例来说,所述安全数据可包含第一散列摘要。第一程序接着可通过以下步骤来验证:(1)散列第一程序以产生第二散列摘要,以及(2)比较第一与第二散列摘要。所述第一程序在经验证的情况下经启用以用于执行。
可从所述外部存储器装置的所述主要区检索第二程序,且基于所述安全数据来验证第二程序。举例来说,安全数据可包含密码密钥,其可存储在不可写入区中或由存储在所述不可写入区中的数据验证。第二程序可接着通过以下步骤来验证:(1)检索含有第一签名和公用密钥的证书,(2)检索第二程序的第二签名,(3)使用密码密钥检验第一签名以验证证书,以及(4)使用来自证书的公用密钥检验第二签名以验证第二程序。第二程序在经验证的情况下经启用以用于执行。可检索且验证额外的程序。每一程序可使用安全散列函数、数字签名和/或某一其它密码技术来验证。
在下文进一步详细描述本发明的各种方面和实施例。
附图说明
结合附图考虑,从以下陈述的详细描述中将更显而易见本发明的特征和性质,附图中相同参考符号贯穿全文进行相应识别。
图1展示无线通信装置的框图。
图2A和2B展示使用安全散列函数来验证引导程序的过程。
图3A和3B展示使用数字签名来验证软件程序的过程。
图4展示使用证书的多个等级的验证。
图5展示具有OTP区和主区的NAND快闪存储器。
图6展示用于执行来自NAND快闪存储器的安全引导的过程。
图7展示用于验证软件程序的过程。
具体实施方式
在本文使用词语“示范性”以表示“用作实例、例子或说明”。本文描述为“示范性”的任何实施例或设计并非必须解释为比其它实施例或设计优选或有利。
本文所描述的安全引导技术可用于各种电子装置,例如那些用于无线通信、个人电子设备、计算、连网等等的电子装置。所述技术也可与具有不可写入区的各种存储装置一起使用,例如固态存储器装置、存储卡、硬盘、紧密盘(CD)等等。不可写入区是存储装置的不可用数据重写的区。举例来说,不可写入区可以是可用数据仅编程一次的OTP区。不可写入区可用于存储支持安全引导过程的安全数据。为了清楚起见,下文描述用于具有带有OTP区的NAND快闪存储器的无线通信装置的技术。
图1展示无线通信装置100的框图,其可以是蜂窝式电话、手机、手持式装置、无线模块、个人数字助理(PDA)、终端、调制解调器或某些其它设备或装置。无线装置100能够经由接收路径和传输路径以一个或一个以上无线通信系统提供双向通信。在接收路径上,由基站传输的信号由天线112接收且提供到接收器(RCVR)114。接收器114调节且数字化所接收的信号,且提供输入样本到数字段120用于进一步处理。在传输路径上,传输器(TMTR)116接收且调节待由无线装置100传输的数据,且产生经由天线112传输到基站的经调制信号。
数字段120包括支持无线装置100的数字处理的各种处理、接口和存储器单元。对于图1中所示的实施例,数字段120包括调制解调器处理器122、应用处理器124、控制器/处理器130、静态随机存取存储器(SRAM)132、NAND快闪控制器140和同步动态RAM(SDRAM)控制器142,其全部可经由一个或一个以上总线134而彼此通信。调制解调器处理器122执行用于数据传输和接收的处理(例如,编码、调制、解调、解码等等)。应用处理器124可执行用于音频、视频、图形和/或其它应用(例如散列和检验算法)的处理。控制器/处理器130可指导数字段120内的各种单元的操作。SRAM 132存储由数字段120内的控制器和处理器使用的程序代码和数据。
NAND快闪控制器140有助于在NAND快闪存储器150与数字段120之间传送数据。SDRAM控制器142有助于在SDRAM 152与数字段120之间传送数据。控制器/处理器130也可指导NAND快闪控制器140和/或SDRAM控制器142的操作。控制器/处理器130在引导期间(例如,当无线装置100加电时)可指导从NAND快闪存储器150到SRAM132的数据传送,且可进一步有助于NAND快闪存储器150与SDRAM 152之间的数据传送。
NAND快闪存储器150与SDRAM 152是数字段120外部的存储器装置,且为数字段120内的处理单元提供大容量存储。NAND快闪存储器150为数字段120所使用的程序代码和数据提供非易失性存储。NAND快闪存储器150也可由其它类型的非易失性存储器来替换。SDRAM 152为数字段120所使用的程序代码和数据提供具有随机存取能力的存储。SDRAM 152也可由其它类型的易失性存储器(例如,SRAM、DRAM等等)和/或非易失性存储器(例如,NOR快闪存储器)来替换。
一般地,数字段120可包括任何数目的处理、接口和存储器单元。数字段120内的控制器和处理器可使用一个或一个以上数字信号处理器(DSP)、微处理器、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器等等来实施。数字段120可实施在一个或一个以上专用集成电路(ASIC)和/或某些其它类型的集成电路(IC)上。
如图1中所示,无线装置100可利用具有不同类型存储器的存储器结构。SRAM和SDRAM是一旦移除电力就失去其数据的易失性存储器。SRAM和SDRAM可以随机方式存取且一般用作主要运行时间存储器。快闪存储器是即使在移除电力后也可保留其数据的非易失性存储器。NAND快闪存储器(其为一种类型的快闪存储器)具有大存储容量、用于持续存储器存取的良好速度以及低成本。然而,NAND快闪存储器对于随机存储器存取具有较差的性能,且通常以页为单位(一次一页)来存取,其中每一页具有特定大小(例如,512字节)。
图1中所示的存储器结构并入有NAND快闪存储器和SRAM/SDRAM,且能够以减少的成本提供具有随机存取的大存储容量。对于此存储器结构,程序代码可永久地存储在NAND快闪存储器中。一旦被加电,无线装置就执行需要(尤其)将程序代码从NAND快闪存储器传送到SRAM/SDRAM的引导程序。
NAND快闪存储器可存储控制无线装置内的硬件的各种软件程序,且进一步支持各种所设计的功能和特征。软件程序(或仅仅是程序)可包含软件代码、固件代码或其组合。固件通常指代嵌入于例如快闪存储器或只读存储器(ROM)的硬件装置中的程序代码。软件通常指代可比固件容易修改的程序代码。
存储在NAND快闪存储器中的软件程序可包含控制引导过程的引导程序和控制硬件的操作且支持所需要的特征和功能的高层程序。引导程序也可称作引导代码、引导加载程序等等。高层程序可包括(例如)初始化无线装置内的各件硬件的硬件初始化程序、负责直接控制和管理硬件和基本系统操作的操作系统、支持各种应用(例如,音频、视频、图形和游戏等等)的应用程序和/或其它软件程序。这些各种软件程序可彼此依赖,且可在引导过程期间按序载入。
软件程序可在制造期间编程到NAND快闪存储器中、在无线装置的激活期间下载到NAND快闪存储器中等等。无论软件程序如何载入到NAND快闪存储器中,可能需要或必须确定存储在NAND快闪存储器中的软件程序是否被授权,从而允许执行经授权的程序且防止执行未经授权的程序。
本文所描述的技术支持来自例如NAND快闪存储器的外部存储装置的安全引导。安全引导检查从NAND快闪存储器检索的每一程序且检验所述程序是否经授权用于执行。安全引导可使用NAND快闪存储器的OTP区和密码技术来实现。
NAND快闪存储器包括主要区和OTP区。主要区是NAND快闪存储器的可用数据写入任何次数的较大区。OTP区通常是NAND快闪存储器的可仅被编程一次的较小区。OTP区用于不可改变的实用目的。存储在OTP区中的数据是永久性的且不可容易地修改或窜改。来自OTP区和主要区两者的数据可被容易地存取或检索。
图2A和2B展示使用安全散列函数来验证引导代码和根公用密钥r(下文描述)的过程的实施例。图2A展示在源实体(例如,无线装置的制造商)处执行的处理。对于图2A中所示的实施例,引导代码和根公用密钥r用于形成输入消息,所述输入消息由安全散列函数210散列以产生摘要。到达安全散列函数210的输入消息可以是任何长度,且输出摘要是具有由经选择使用的散列算法所确定的固定长度的伪随机位串。安全散列函数210可实施SHA-1(安全散列算法)、SHA-2(其包括SHA-224、SHA-256、SHA-384和SHA-512)、MD-4(消息摘要)、MD-5或此项技术中已知的某些其它安全散列算法。安全散列算法具有密码特性,使得消息与其摘要之间的函数不可逆,且两个消息映射到相同摘要的可能性是很小的。对于图2A中所示的实施例,引导代码和根公用密钥r存储在NAND快闪存储器的主要区中,且摘要和安全散列算法存储在NAND快闪存储器的OTP区中。在其它实施例中,根公用密钥r和/或引导代码可存储在NAND快闪存储器的OTP区中。
图2B展示在无线装置处执行的用以验证引导代码和根公用密钥r的处理。引导代码和根公用密钥r从NAND快闪存储器检索且由安全散列函数220散列以产生摘要。安全散列函数220在源实体处实施由安全散列函数210使用的相同安全散列算法。此安全散列算法可驻存在无线装置(图2B中未展示)处,或可从NAND快闪存储器(如图2B中所示)的OTP区检索。安全散列算法也可以代码的形式存储以由ASIC 120内的处理器执行。比较单元222接收存储在NAND快闪存储器的OTP区中的摘要和由安全散列函数220产生的摘要,比较所存储的摘要与所产生的摘要,且在两个摘要匹配的情况下声明引导代码与根公用密钥r经验证。存储在OTP区中的摘要不能被容易地窜改或替换。安全散列算法的密码特性确保引导代码与根公用密钥r的另一组合映射到存储在OTP区中的相同摘要的可能性很小。因此,由第三方对引导代码或根公用密钥r的任何窜改可容易地由所产生摘要与所存储摘要之间的失配检测到。
图3A和3B展示使用数字签名来验证软件程序x的过程的实施例。软件程序x可以是引导代码或高级程序。本实施例使用两组密码密钥:(1)一组用以签名和验证软件程序x的私有和公用密钥,其称作私有密钥x和公用密钥x,以及(2)一组用以识别和验证源实体的私有和公用密钥,其称作根私有和公用密钥r。根私有密钥r和私有密钥x是秘密的,且仅为源实体所知。使根公用密钥r可用于无线装置且用于检验使用根私有密钥所产生的签名。公用密钥x用于检验使用私有密钥x所产生的签名。
图3A展示在源实体处执行的处理。软件程序x由安全散列函数310散列以产生摘要,其称作摘要x。安全散列函数310可实施SHA-1、SHA-2、MD-5或某一其它安全散列算法。签名函数(sign function)312使用私有密钥x产生摘要x上的签名。此签名称作签名x。签名函数312可实施RSA(李维斯特(Rivest)、萨莫尔(Shamir)和阿德曼(Adleman))算法、数字签名标准(DSS)算法或此项技术中已知的某一其它密码(数字签名或加密)算法。软件程序x和签名x可存储在NAND快闪存储器的主要区中。
签名函数314使用根私有密钥r产生公用密钥x上的签名以及可能其它信息。此签名称作签名cx且用以验证源实体。签名函数314可实施RSA、DSS或某一其它密码算法。签名函数312和314可实施相同或不同的密码算法。证书产生器316形成含有签名cx、公用密钥x以及可能其它信息(例如用于源实体的标识符、经选择使用的密码算法、证书的截止日期等等)的证书。此证书称作证书x,且可作为X.509证书或以此项技术中已知的某一其它格式而存储。证书x可存储在NAND快闪存储器的主要区中。根公用密钥r可存储在NAND快闪存储器的任何位置,或可以其它方式而可用于无线装置,例如存储在无线装置内。
图3B展示在无线装置处执行的用以验证软件程序x的处理。从NAND快闪存储器检索根公用密钥r和证书x。检验函数320从证书x中提取签名cx和公用密钥x,使用根公用密钥r检验签名cx,且在签名cx经检验的情况下提供公用密钥x。对于图2A和2B中所示的实施例,根公用密钥r存储在NAND快闪存储器中,且由安全散列算法对照NAND快闪存储器的OTP区中所存储的摘要进行检验。因此,由第三方对证书x的任何窜改可容易地由签名cx未经检验而检测到。
签名程序x从NAND快闪存储器检索且由安全散列函数322散列以产生摘要,其称作摘要x′。安全散列函数322在源实体处实施由安全散列函数310使用的相同安全散列算法。检验函数324接收来自安全散列函数322的摘要x′、来自NAND快闪存储器的签名x和来自检验函数320的公用密钥x。检验函数324使用密钥x和摘要x′检验签名x,且指示签名x是否经检验。公用密钥x使用根公用密钥r来进行验证,根公用密钥r接着通过存储在NAND快闪存储器的OTP区中的引导代码摘要来验证。因此,由第三方对软件程序x和/或签名x的任何窜改可容易地由签名x未经检验而检测到。
图3A和3B中所示的实施例允许一个根公用密钥r验证任何数目的软件程序。对于每一软件程序可使用所述程序的私有密钥产生签名,且对于程序使用根私有密钥r来产生证书。根私有密钥r可用以验证每一软件程序的证书,且经验证证书内的公用密钥可用以验证程序的签名。
图4展示使用证书的N个等级的验证的实施例,其中N可以是任何正的值。对于此实施例,证书1含有(1)使用根私有密钥r产生的签名c1、(2)公用密钥1和(3)图4中未展示的可能其它信息。一般地,证书n(n=1,...,N)含有(1)使用私有密钥n-1产生的签名cn、(2)公用密钥n和(3)可能其它信息。私有密钥0是根私有密钥r。公用密钥N可能是待验证的软件程序x的公用密钥x。对于第一等级验证,证书1通过使用根公用密钥r检验签名c1来验证。如果签名c1经检验,那么对于验证的每一随后等级n,通过使用来自前一等级的公用密钥n-1检验签名cn来验证所述等级的证书n。如果所有N个等级经验证,那么公用密钥x可用以验证软件程序x,如上文关于图3B所描述。
多个等级的验证可用于多层密码密钥层级。证书1可用于验证充当信任基础的根证书授权(CA)。由于根证书授权的私有密钥r是信任基础,所以采取步骤来保护这些私有密钥,且因此使其使用受到限制。可产生更“可消耗的”额外等级的中间证书授权。在组织上,多层密钥层级是方便的,因为证书的检验链可通过产生软件程序的组织来产生。因此,载入到无线装置上的软件程序的部分可个别地由不同的无线装置制造商来定制。
在另一实施例中,软件程序(其可为引导代码或高级程序)使用私有密钥来签名,且相应的公用密钥存储在NAND快闪存储器的OTP区中。
一般地,软件程序可使用安全散列、数字签名、加密和/或其它密码技术来验证。基于存储在NAND快闪存储器的OTP区中的安全数据来实现验证。认为是安全的数据完整性受保护,即不能被容易地修改或窜改。安全数据可包括一个或一个以上摘要、签名、证书、密码密钥等等,或其任何组合。
图5展示NAND快闪存储器150的实施例,NAND快闪存储器150包括OTP区和主要区。对于图5中所示的实施例,OTP区510存储用于无线装置的标识符(电话ID)、用于引导代码的安全散列算法以及由源实体对引导代码和根公用密钥产生的散列摘要。电话ID可以是电子序列号(ESN)、移动设备标识符(MEID)或无线装置所特有的某一其它类型的标识符。电话ID可用以确保NAND快闪存储器用于适当的无线装置。安全散列算法可存储在NAND快闪存储器的OTP区中,且经检索以由数字段120在引导过程期间使用。或者,安全散列算法可驻存在数字段120内而未存储在OTP区中。可基于引导代码和根公用密钥来产生引导代码摘要,如图2A中所示。根公用密钥用于验证由源实体所产生的证书,且由源散列算法在引导期间进行检验以检查其有效性。或者,根公用密钥可存储在无线装置内,例如在数字段120内部。
引导代码存储在NAND快闪存储器的主要区的段522中。引导代码通常是在引导过程期间在安全数据和散列算法检验引导代码的有效性之后将载入和执行的第一程序。引导代码初始化和配置无线装置,且接着检索、检验和执行高级软件程序。软件程序A存储在NAND快闪存储器的主要区的段524中。签名和证书可经产生以用于软件程序A(例如,如图3A中所示),且分别作为签名A和证书A而存储在段524中。软件程序A可以是引导过程期间例如在引导代码经验证的情况下将载入和执行的第二程序。软件程序B存储在NAND快闪存储器的主要区的段526中。签名和证书可经产生以用于软件程序B(例如,如图3A中所示),且分别作为签名B和证书B而存储在段526中。软件程序B可以是引导过程期间例如在软件程序A经验证的情况下将载入和执行的第三程序。其它软件程序也可存储在NAND快闪存储器中。每一软件程序可包括用以验证所述软件程序的签名和证书。
一般地,NAND快闪存储器可存储任何数目的软件程序和任何类型的软件程序。软件程序可以任何次序载入和执行。在一实施例中,软件程序以层级或依序次序载入,例如首先引导代码、接着软件程序A、接着软件程序B等等。此依序载入允许一个程序验证另一程序。举例来说,软件程序A可含有初始化无线装置内的硬件的基本功能。软件程序B可含有依赖于软件程序A所提供的基本功能的定制功能和特征。软件程序A可由无线装置的设计者产生,且软件程序B可由卖主或原始设备制造商(OEM)产生以定制无线装置。
图6展示用于执行来自NAND快闪存储器的安全引导的过程600的实施例。过程600可在例如当无线装置加电时执行。最初,安全数据从NAND快闪存储器的OTP区载入到数字段内的SRAM中(框612)。安全数据可包括用以验证NAND快闪存储器的内容的任何数据。对于图5中所示的实施例,安全数据包括引导代码摘要和安全散列算法。安全数据可包括用于其它实施例的其它类型的数据。
引导代码接着从NAND快闪存储器载入到SRAM和/或SDRAM中(框614)。使用与在源实体处对于引导代码使用的相同安全散列算法基于所载入的引导代码而产生散列摘要(还是框614)。由于NAND快闪存储器较易于发生位误差,可使用所以误差校正码(ECC)和/或误差检测码来减少数据误差的概率且确保在从NAND快闪存储器载入数据时的数据完整性。
从所载入的引导代码产生的散列摘要接着与存储在OTP区中的散列摘要进行比较(框616)。如果所产生的散列摘要不与所存储的散列摘要匹配,如框618中所确定,那么声明误差(框620),且引导过程终止。在框620中可经由误差消息通知用户和/或可采取其它适当动作。
如果所产生和所存储的散列摘要匹配且对于框618答案为“是”,那么验证引导代码。引导代码可被执行,且可控制和/或指导剩余的引导过程。举例来说,引导代码可初始化NAND快闪控制器140和SDRAM控制器142以将剩余的软件程序直接从NAND快闪存储器载入到SDRAM。
将指数x设置为待载入和验证的下一软件程序(例如,对于图5中的NAND快闪存储器150,x=A)(框622)。软件程序x接着从NAND快闪存储器载入到SDRAM中(框624)。还从NAND快闪存储器载入软件程序x的证书x和签名x。使用适当的公用密钥(例如,根公用密钥)验证证书x,如上文关于图3B和图4所描述(框626)。如果证书x经验证,那么使用所载入的软件程序x和从证书x获得的公用密钥x来检验签名x,同样如上文关于图3B和图4所描述(框628)。
接着确定签名x是否经检验(框630)。如果答案为“否”,那么声明误差和/或可采取其它动作(框620),且引导过程终止。否则,如果签名x经检验,那么允许执行软件程序x。软件程序x和/或引导代码可载入下一软件程序。接着确定是否所有软件程序都已载入(框632)。如果答案为“否”,那么过程返回到框622以载入下一软件程序。否则,如果所有软件程序都已载入,那么过程终止。
对于图6中所示的实施例,软件程序可以层级次序来载入。每一软件程序可由先前程序基于被存储用于所述软件程序的密码数据(例如,签名、证书和/或密码密钥)来验证。验证过程可利用存储在OTP区中的安全数据。验证过程可起源于安全数据(例如根公用密钥,其可能是存储在OTP区中的安全数据的一部分或由存储在OTP区中的安全数据来进行验证),且可栓住任何数目的等级。允许执行每一经验证的程序且每一经验证的程序可初始化无线装置内的适当硬件。还可信任每一经验证的程序以验证其它高级程序。可信任所有经验证回根的程序。
载入和验证过程可继续进行,直到所有相关程序都已从NAND快闪存储器载入到SDRAM为止。操作系统可在一旦载入充分数目的程序时即刻就开始过程,而不必等待直到所有程序都载入到SDRAM中为止。在已载入最后的程序后,无线装置具备完全功能。
基于整个引导代码产生引导代码的散列摘要,如图2A中所示。软件程序x的签名基于摘要x而产生,而摘要x基于整个软件程序而产生,如图3A中所示。给定软件程序(其可以是引导代码或高级程序)的验证可通过在从NAND快闪存储器载入软件程序时在传输中执行散列计算来加速。
数据以页为单位(一次一页)从NAND快闪存储器读取,其中每一页具有特定大小(例如,512字节)。为了从NAND快闪存储器读取数据页,首先激活NAND快闪存储器,将读取命令发送到NAND快闪存储器,且还将页地址发送到NAND快闪存储器。接着将所选择的数据页从NAND阵列传送到NAND快闪存储器内的NAND缓冲器。此页传送花费某一时间量。当完成页传送时,NAND快闪存储器通过使准备就绪/忙碌信号变为逻辑高来指示其已准备就绪。在此点上,可通过提供读取时钟来从NAND快闪存储器读取数据页。
在一实施例中,通过一次散列一个数据页来产生散列摘要。在已从NAND快闪存储器载入数据页之后,将读取下一页的命令发送到NAND快闪存储器。当NAND快闪存储器正忙于将下一页从NAND快闪存储器的单元阵列发送到NAND快闪存储器的内部缓冲器时,对刚刚载入的页计算散列摘要(例如,通过图1中的处理器124)。一旦已从NAND快闪存储器载入最后页,就对最后页执行散列计算,且其后不久产生散列摘要。由于软件程序可存储在许多页中,所以在载入每一页时计算散列摘要可实质上缩短用以执行散列的时间量,这可缩短引导过程。
为了清楚起见,已使用存储在OTP区中的安全数据来描述安全引导技术。一般地,安全数据可存储在存储装置的任何安全区中。安全区是不可写入且不可容易地更改或修改的区。举例来说,安全数据可存储在OTP区、一次性写入(OTW)区、只读存储器(ROM)区、可锁定区(其具有锁定控制以防止写入到所述区)或某一其它不可写入区中。
为了清楚起见,已关于具有OTP区的NAND快闪存储器描述了安全引导技术。NAND快闪存储器具有各种所需要的特征,例如高存储容量、低成本、良好的擦除和编程特性、用于持续存取的良好数据传送速度等等。所述技术也可用于其它类型的存储器装置(例如,NOR快闪存储器)和其它类型的存储装置(例如,存储卡、硬盘、紧密盘(CD)等等)。对于所有这些存储装置,存储在不可写入(例如,OTP)区中的安全数据可得到充分程度的信任,且可用作用于验证存储在存储装置的主要区中的软件程序的安全根。
安全引导技术可用于可与一个或一个以上无线广域网(WWAN)、无线局域网(WLAN)、无线个人局域网(WPLAN)和/或其它无线网络通信的无线装置。WWAN可以是码分多址(CDMA)网络、全球移动通信系统(GSM)网络、通用移动电信系统(UMTS)网络等等。CDMA网络实施cdma2000,其涵盖IS-95、IS-2000、IS-856等等。UMTS网络实施宽带-CDMA(W-CDMA)。W-CDMA和GSM描述于来自名为“第三代合作伙伴计划”(3GPP)的联盟的文献中。cdma2000描述于来自名为“第三代合作伙伴计划2”(3GPP2)的联盟的文献中。3GPP和3GPP2文献是可公开获得的。安全引导技术也可用于其它电子装置。
图7展示用于在电子装置中验证软件程序的过程700的实施例。从外部存储器装置的不可写入区(例如,NAND快闪存储器的OTP区)检索安全数据(框710)。从外部存储器装置的可写入或主要区检索第一程序(例如,引导程序)(框712),且基于安全数据对其进行验证(框714)。举例来说,安全数据可包含第一散列摘要以及待执行的散列算法。可接着通过以下步骤来验证第一程序:(1)散列第一程序以产生第二散列摘要,以及(2)比较第一与第二散列摘要。第一程序在经验证的情况下被启用以用于执行(框716)。
可从外部存储器装置的可写入或主要区检索第二程序(框722),且基于安全数据对其进行验证(框724)。举例来说,安全数据可包含密码密钥。可接着通过以下步骤来验证第二程序:(1)从外部存储器装置的可写入或不可写入区检索含有第一签名和公用密钥的证书,(2)从可写入或不可写入区检索第二程序的第二签名,(3)使用密码密钥检验第一签名以验证证书,以及(4)使用来自证书的公用密钥检验第二签名以验证第二程序。第二程序在经验证的情况下经启用以用于执行(框726)。可检索且验证额外的程序。
本文所描述的安全引导技术可通过各种方式来实施。举例来说,这些技术可实施在硬件、固件、软件或其组合中。对于硬件实施方案,用以执行安全引导的处理单元可实施在一个或一个以上ASIC、DSP、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、电子装置、经设计以执行本文所描述的功能的其它电子单元,或其组合内。
所述技术也可使用执行本文所描述的功能的固件和/或软件模块(例如,程序、函数等等)来实施。模块可存储在存储器(例如,图1中的SRAM 132、NAND快闪存储器150和/或SDRAM 152)中,且可由处理器(例如,处理器130)来执行。
提供对所揭示实施例的先前描述以使所属领域的技术人员能够制造或使用本发明。所属领域的技术人员将容易了解对这些实施例的各种修改,且本文所界定的一般原理可在不脱离本发明的精神或范围的情况下应用于其它实施例。因此,本发明并不希望限于本文所展示的实施例,而是应被赋予与本文所揭示的原理和新颖特征一致的最广泛范围。
Claims (25)
1.一种用于从外部存储器装置进行安全引导的设备,其包含:
用于从所述外部存储器装置的不可写入区检索安全数据的模块;
用于从所述外部存储器装置的可写入区检索第一程序的模块;
用于基于所述安全数据验证所述第一程序的模块;以及
用于在经验证的情况下启用所述第一程序的执行的模块;
用于从所述外部存储器装置的所述可写入区检索第二程序的模块;
用于基于所述安全数据验证所述第二程序的模块;以及
用于在所述第二程序由所述第一程序进行验证的情况下且在所述第一程序的执行启用之后启用所述第二程序的执行的模块。
2.根据权利要求1所述的设备,其中所述安全数据包含第一散列摘要,且其中所述用于验证所述第一程序的模块包括:用于散列所述第一程序以产生第二散列摘要的模块;以及用于比较所述第一与第二散列摘要以验证所述第一程序的模块。
3.根据权利要求1所述的设备,其中所述用于验证所述第一程序的模块包括:用于使用密码密钥来检验所述第一程序的签名从而验证所述第一程序的模块,其中所述密码密钥从所述安全数据获得或由所述安全数据验证。
4.根据权利要求1所述的设备,其中所述用于验证所述第一程序的模块包括:用于从所述外部存储装置检索所述第一程序的第一签名和包含第二签名和公用密钥的证书的模块;用于使用密码密钥检验所述第二签名以验证所述证书的模块,其中所述密码密钥从所述安全数据获得或由所述安全数据验证;以及用于使用所述公用密钥检验所述第一签名以验证所述第一程序的模块。
5.根据权利要求1所述的设备,其中所述第一程序是引导所述设备的引导代码。
6.根据权利要求1所述的设备,还包括:用于从所述外部存储器装置的所述可写入区检索第三程序的模块;用于基于所述安全数据验证所述第三程序的模块;以及用于在经验证的情况下启用所述第三程序的执行的模块。
7.根据权利要求6所述的设备,其中所述第三程序由所述第二程序进行验证。
8.根据权利要求1所述的设备,其中所述外部存储器装置是NAND快闪装置。
9.根据权利要求1所述的设备,其中所述外部存储器装置是NOR快闪装置。
10.根据权利要求1所述的设备,其中所述不可写入区是一次性可编程(OTP)区。
11.一种用于从外部存储器装置进行安全引导的方法,其包含:
从外部存储器装置的不可写入区检索安全数据;
从所述外部存储器装置的可写入区检索第一程序;
基于所述安全数据验证所述第一程序;
在经验证的情况下启用所述第一程序的执行,
从所述外部存储器装置的所述可写入区检索第二程序;
基于所述安全数据验证所述第二程序;以及
所述第二程序由所述第一程序进行验证的情况下且在所述第一程序的执行启用之后启用所述第二程序的执行。
12.根据权利要求11所述的方法,其中所述安全数据包含第一散列摘要,且其中所述验证所述第一程序包含
散列所述第一程序以产生第二散列摘要,以及
比较所述第一与第二散列摘要以验证所述第一程序。
13.根据权利要求11所述的方法,还包括使用密码密钥来检验所述第一程序的签名从而验证所述第一程序,其中所述密码密钥从所述安全数据获得或由所述安全数据验证。
14.根据权利要求11所述的方法,其中所述验证所述第一程序包含
从所述外部存储器装置检索所述第一程序的第一签名以及包含第二签名和公用密钥的证书,
使用密码密钥检验所述第二签名以验证所述证书,其中所述密码密钥从所述安全数据获得或由所述安全数据验证,以及
使用所述公用密钥检验所述第一签名以验证所述第一程序。
15.根据权利要求11所述的方法,其中所述第一程序是引导电子设备的引导代码。
16.根据权利要求11所述的方法,还包括:从所述外部存储器装置的所述可写入区检索第三程序;基于所述安全数据验证所述第三程序;以及在经验证的情况下启用所述第三程序的执行。
17.根据权利要求16所述的方法,其中所述第三程序由所述第二程序进行验证。
18.根据权利要求11所述的方法,其中所述外部存储器装置是NAND快闪装置。
19.根据权利要求11所述的方法,其中所述外部存储器装置是NOR快闪装置。
20.根据权利要求11所述的方法,其中所述不可写入区是一次性可编程(OTP)区。
21.一种无线通信装置,其包含:
用于从NAND快闪装置的主要区检索引导程序的模块;
用于基于安全数据验证所述引导程序的模块;
用于在经验证的情况下启用所述引导程序的执行的模块;
用于在经验证的情况下执行所述引导程序的模块;
用于从所述NAND快闪装置的所述主要区检索第二程序的模块;
用于基于所述安全数据验证所述第二程序的模块;以及
用于在所述第二程序由所述引导程序进行验证的情况下且在所述引导程序的执行启用之后启用所述第二程序的执行的模块。
22.根据权利要求21所述的装置,其中所述安全数据包含第一散列摘要,且其中所述装置还包含:用于散列所述引导程序以产生第二散列摘要的模块;以及用于比较所述第一与第二散列摘要以验证所述引导程序的模块。
23.根据权利要求22所述的装置,还包含:用于一次一页地从所述NAND快闪装置的所述主要区检索所述引导程序的模块;以及用于在从所述NAND快闪装置检索所述页时一次一页地散列所述引导程序以产生所述第二摘要的模块。
24.根据权利要求23所述的装置,还包括:用于检索包含第一签名和公用密钥的证书的模块;用于检索所述第二程序的第二签名的模块;用于使用密码密钥检验所述第一签名以验证所述证书的模块,其中所述密码密钥从所述安全数据获得或由所述安全数据验证;以及用于使用所述公用密钥检验所述第二签名以验证所述第二程序的模块。
25.根据权利要求24所述的装置,还包括:用于一次一页地从所述NAND快闪装置的所述主要区检索所述第二程序的模块;用于在从所述NAND快闪装置检索所述页时一次一页地散列所述第二程序以产生散列摘要的模块;以及用于使用所述公用密钥和所述散列摘要来检验所述第二签名的模块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/351,966 US8291226B2 (en) | 2006-02-10 | 2006-02-10 | Method and apparatus for securely booting from an external storage device |
US11/351,966 | 2006-02-10 | ||
PCT/US2007/061916 WO2007095465A2 (en) | 2006-02-10 | 2007-02-09 | Method and apparatus for securely booting from an external storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101379506A CN101379506A (zh) | 2009-03-04 |
CN101379506B true CN101379506B (zh) | 2015-02-18 |
Family
ID=38289881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780004543.9A Expired - Fee Related CN101379506B (zh) | 2006-02-10 | 2007-02-09 | 用于从外部存储装置进行安全引导的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8291226B2 (zh) |
EP (1) | EP1982287A2 (zh) |
JP (1) | JP5221389B2 (zh) |
KR (1) | KR101049647B1 (zh) |
CN (1) | CN101379506B (zh) |
WO (1) | WO2007095465A2 (zh) |
Families Citing this family (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356539B2 (en) | 2005-04-04 | 2008-04-08 | Research In Motion Limited | Policy proxy |
DE102005025806B4 (de) * | 2005-06-02 | 2008-04-17 | Bundesdruckerei Gmbh | Verfahren zum Zugriff von einer Datenstation auf ein elektronisches Gerät |
SE531992C2 (sv) * | 2006-02-24 | 2009-09-22 | Oniteo Ab | Metod och system för säker programvaruprovisionering |
US8601590B2 (en) * | 2006-04-27 | 2013-12-03 | Panasonic Corporation | Content distribution system |
KR100880379B1 (ko) * | 2006-05-25 | 2009-01-23 | 삼성전자주식회사 | 외부로부터 제공받는 부트 코드로 부팅되는 정보기기시스템 |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US20080046739A1 (en) * | 2006-08-16 | 2008-02-21 | Research In Motion Limited | Hash of a Certificate Imported from a Smart Card |
US8341411B2 (en) * | 2006-08-16 | 2012-12-25 | Research In Motion Limited | Enabling use of a certificate stored in a smart card |
US7987351B2 (en) * | 2006-10-06 | 2011-07-26 | Broadcom Corporation | Method and system for enhanced boot protection |
US8528108B2 (en) * | 2006-10-06 | 2013-09-03 | Agere Systems Llc | Protecting secret information in a programmed electronic device |
US8209542B2 (en) * | 2006-12-29 | 2012-06-26 | Intel Corporation | Methods and apparatus for authenticating components of processing systems |
US8555070B2 (en) * | 2007-04-10 | 2013-10-08 | Abbott Medical Optics Inc. | External interface access control for medical systems |
US8555410B2 (en) * | 2007-04-10 | 2013-10-08 | Abbott Medical Optics Inc. | External interface access control |
US9092629B2 (en) * | 2007-04-16 | 2015-07-28 | The Directv Group, Inc. | Method and apparatus for authenticating a code image upon starting a device |
US8205217B2 (en) * | 2007-09-29 | 2012-06-19 | Symantec Corporation | Methods and systems for configuring a specific-use computing system limited to executing predetermined and pre-approved application programs |
US8090955B2 (en) * | 2007-10-17 | 2012-01-03 | Micron Technology, Inc. | Boot block features in synchronous serial interface NAND |
US8683213B2 (en) * | 2007-10-26 | 2014-03-25 | Qualcomm Incorporated | Progressive boot for a wireless device |
DE102008011925B4 (de) * | 2008-02-29 | 2018-03-15 | Globalfoundries Inc. | Sicheres Initialisieren von Computersystemen |
US8468366B2 (en) * | 2008-03-24 | 2013-06-18 | Qualcomm Incorporated | Method for securely storing a programmable identifier in a communication station |
DE102008021567B4 (de) * | 2008-04-30 | 2018-03-22 | Globalfoundries Inc. | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel |
US20090327741A1 (en) * | 2008-06-30 | 2009-12-31 | Zimmer Vincent J | System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid) |
US8781127B2 (en) * | 2008-09-05 | 2014-07-15 | Vixs Systems, Inc. | Device with privileged memory and applications thereof |
US8594333B2 (en) * | 2008-09-05 | 2013-11-26 | Vixs Systems, Inc | Secure key access with one-time programmable memory and applications thereof |
US20100228906A1 (en) * | 2009-03-06 | 2010-09-09 | Arunprasad Ramiya Mothilal | Managing Data in a Non-Volatile Memory System |
US9058491B1 (en) | 2009-03-26 | 2015-06-16 | Micron Technology, Inc. | Enabling a secure boot from non-volatile memory |
EP2251813A1 (en) * | 2009-05-13 | 2010-11-17 | Nagravision S.A. | Method for authenticating access to a secured chip by a test device |
US8356184B1 (en) | 2009-06-25 | 2013-01-15 | Western Digital Technologies, Inc. | Data storage device comprising a secure processor for maintaining plaintext access to an LBA table |
US8745365B2 (en) * | 2009-08-06 | 2014-06-03 | Imation Corp. | Method and system for secure booting a computer by booting a first operating system from a secure peripheral device and launching a second operating system stored a secure area in the secure peripheral device on the first operating system |
US8683088B2 (en) | 2009-08-06 | 2014-03-25 | Imation Corp. | Peripheral device data integrity |
US9336410B2 (en) * | 2009-12-15 | 2016-05-10 | Micron Technology, Inc. | Nonvolatile memory internal signature generation |
WO2011097482A1 (en) | 2010-02-05 | 2011-08-11 | Maxlinear, Inc. | Conditional access integration in a soc for mobile tv applications |
WO2011119985A2 (en) * | 2010-03-26 | 2011-09-29 | Maxlinear, Inc. | Firmware authentication and deciphering for secure tv receiver |
WO2011123561A1 (en) | 2010-03-30 | 2011-10-06 | Maxlinear, Inc. | Control word obfuscation in secure tv receiver |
US8310885B2 (en) * | 2010-04-28 | 2012-11-13 | International Business Machines Corporation | Measuring SDRAM control signal timing |
CA2738157C (en) | 2010-04-29 | 2017-07-11 | Research In Motion Limited | Assignment and distribution of access credentials to mobile communication devices |
CN101888448B (zh) * | 2010-06-07 | 2014-03-19 | 中兴通讯股份有限公司 | 一种实现锁网锁卡的方法及移动终端 |
US8892855B2 (en) | 2010-08-10 | 2014-11-18 | Maxlinear, Inc. | Encryption keys distribution for conditional access software in TV receiver SOC |
US8996851B2 (en) | 2010-08-10 | 2015-03-31 | Sandisk Il Ltd. | Host device and method for securely booting the host device with operating system code loaded from a storage device |
CN103329095B (zh) * | 2011-01-28 | 2017-03-22 | 惠普发展公司,有限责任合伙企业 | 用编码的信息验证管理程序 |
KR101944468B1 (ko) * | 2011-04-04 | 2019-04-30 | 삼성전자주식회사 | 컨텐츠를 보호하기 위한 방법, 호스트 장치, 저장 장치 및 기계로 읽을 수 있는 저장 매체 |
US20140149729A1 (en) | 2011-07-18 | 2014-05-29 | Ted A. Hadley | Reset vectors for boot instructions |
US8782389B2 (en) | 2011-07-19 | 2014-07-15 | Sandisk Technologies Inc. | Storage device and method for updating a shadow master boot record |
US9858401B2 (en) * | 2011-08-09 | 2018-01-02 | Biogy, Inc. | Securing transactions against cyberattacks |
JP5865661B2 (ja) * | 2011-10-06 | 2016-02-17 | シャープ株式会社 | 半導体デバイス |
KR20130049542A (ko) * | 2011-11-04 | 2013-05-14 | 삼성전자주식회사 | 메모리 소자 및 이를 포함하는 메모리 시스템 |
KR101878682B1 (ko) * | 2011-11-14 | 2018-07-18 | 삼성전자주식회사 | 컨텐츠를 보호하기 위한 방법 및 저장 매체 |
US9054874B2 (en) | 2011-12-01 | 2015-06-09 | Htc Corporation | System and method for data authentication among processors |
US9305142B1 (en) | 2011-12-19 | 2016-04-05 | Western Digital Technologies, Inc. | Buffer memory protection unit |
US8813218B2 (en) * | 2012-02-14 | 2014-08-19 | Janus Technologies, Inc. | Security-enhanced computer systems and methods |
JP5962918B2 (ja) * | 2012-03-09 | 2016-08-03 | パナソニックIpマネジメント株式会社 | 記憶装置、ホスト装置、記憶システム |
JP2013008397A (ja) * | 2012-10-09 | 2013-01-10 | Fujitsu Ltd | 制御プログラム、方法および機器 |
US9881161B2 (en) | 2012-12-06 | 2018-01-30 | S-Printing Solution Co., Ltd. | System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof |
EP2746982B1 (en) * | 2012-12-22 | 2018-05-09 | Samsung Electronics Co., Ltd | Method and apparatus for supporting dynamic change of authentication means for secure booting |
DE102013006549A1 (de) * | 2013-04-08 | 2014-10-09 | Fiducia It Ag | Verfahren und System zum bargeldlosen Bezahlen oder Geldabheben mit einem mobilen Kundenterminal |
US9239920B2 (en) * | 2013-04-23 | 2016-01-19 | Qualcomm Incorporated | Generation of working security key based on security parameters |
EP2797335A1 (en) | 2013-04-26 | 2014-10-29 | Nagravision S.A. | Method to watermark a compressed content encrypted by at least one content key |
EP2797334A1 (en) | 2013-04-26 | 2014-10-29 | Nagravision S.A. | Method and device to embed watermark in uncompressed video data |
KR20140136166A (ko) * | 2013-05-20 | 2014-11-28 | 삼성전자주식회사 | 관리자 권한 획득 방지 방법 및 장치 |
US9235710B2 (en) | 2013-05-23 | 2016-01-12 | Cisco Technology, Inc. | Out of band management of basic input/output system secure boot variables |
CN104182242A (zh) * | 2013-05-28 | 2014-12-03 | 华为技术有限公司 | 一种系统启动方法及装置 |
KR20150008546A (ko) * | 2013-07-15 | 2015-01-23 | 삼성전자주식회사 | 보안 다운로드 및 기능 실행방법 및 장치 |
KR102140297B1 (ko) * | 2013-12-19 | 2020-08-03 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치 |
CN114692167A (zh) * | 2014-04-15 | 2022-07-01 | 麦利尔亚洲新加坡私人有限公司 | 可信根 |
US9672361B2 (en) | 2014-04-30 | 2017-06-06 | Ncr Corporation | Self-service terminal (SST) secure boot |
US9984256B2 (en) * | 2014-05-15 | 2018-05-29 | Seagate Technology Llc | Storage device tampering detection |
US9489542B2 (en) | 2014-11-12 | 2016-11-08 | Seagate Technology Llc | Split-key arrangement in a multi-device storage enclosure |
EP3299986A4 (en) * | 2015-05-20 | 2018-05-16 | Fujitsu Limited | Program verification method, verification program, and information processing device |
US20180204006A1 (en) * | 2015-07-23 | 2018-07-19 | Qualcomm Technologies International, Ltd. | Fast authentication of code in a low-power system |
US9798887B2 (en) * | 2015-08-26 | 2017-10-24 | Qualcomm Incorporated | Computing device to securely activate or revoke a key |
US10025600B2 (en) * | 2015-10-02 | 2018-07-17 | Google Llc | NAND-based verified boot |
CN105117652B (zh) * | 2015-10-09 | 2018-12-04 | 天津国芯科技有限公司 | 一种基于NAND Flash的SOC启动方法 |
CN105681032B (zh) * | 2016-01-08 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 密钥存储方法、密钥管理方法及装置 |
US10282189B2 (en) | 2016-06-30 | 2019-05-07 | Synaptics Incorporated | Updating program code stored in an external non-volatile memory |
US10365961B2 (en) * | 2016-09-09 | 2019-07-30 | Dell Products L.P. | Information handling system pre-boot fault management |
KR101886176B1 (ko) * | 2016-10-25 | 2018-08-08 | 시큐리티플랫폼 주식회사 | 소유자만 기록 가능한 부트영역을 포함하는 저장장치 |
US10587421B2 (en) * | 2017-01-12 | 2020-03-10 | Honeywell International Inc. | Techniques for genuine device assurance by establishing identity and trust using certificates |
CN106845290B (zh) * | 2017-01-25 | 2020-06-05 | 天津大学 | 用于安全存储芯片的sram控制器及其接口电路 |
US10708061B2 (en) | 2017-06-25 | 2020-07-07 | Microsoft Technology Licensing, Llc | Secure key storage for multi-core processor |
US10402567B2 (en) | 2017-06-25 | 2019-09-03 | Microsoft Technology Licensing, Llc | Secure boot for multi-core processor |
US10503892B2 (en) * | 2017-06-25 | 2019-12-10 | Microsoft Technology Licensing, Llc | Remote attestation for multi-core processor |
US10521617B2 (en) | 2017-08-14 | 2019-12-31 | Western Digital Technologies, Inc. | Non-volatile memory device with secure read |
US10657260B2 (en) * | 2017-09-19 | 2020-05-19 | Sling Media Pvt Ltd | Electronic devices and methods supporting unsecured system-on-chip secure boot functionalities |
WO2019183459A1 (en) * | 2018-03-23 | 2019-09-26 | Micron Technology, Inc. | Storage device authenticated modification |
US10984107B2 (en) * | 2018-04-24 | 2021-04-20 | Mellanox Technologies, Ltd. | Secure boot |
US11003537B2 (en) * | 2018-05-29 | 2021-05-11 | Micron Technology, Inc. | Determining validity of data read from memory by a controller |
US20210357220A1 (en) * | 2018-07-31 | 2021-11-18 | Hewlett-Packard Development Company, L.P. | Executing instructions |
US11250135B1 (en) * | 2018-07-31 | 2022-02-15 | Marvell Asia Pte, Ltd. | Method and apparatus for authorizing unlocking of a device |
WO2020069541A1 (de) * | 2018-10-04 | 2020-04-09 | Riddle & Code Gmbh | Elektronische markierung |
US11269986B2 (en) * | 2018-10-26 | 2022-03-08 | STMicroelectronics (Grand Ouest) SAS | Method for authenticating a program and corresponding integrated circuit |
TWI738135B (zh) * | 2019-04-07 | 2021-09-01 | 新唐科技股份有限公司 | 監控系統開機之安全裝置及其方法 |
JP2020177539A (ja) * | 2019-04-19 | 2020-10-29 | キヤノン株式会社 | 情報処理装置、及びその制御方法 |
KR20200130539A (ko) | 2019-05-08 | 2020-11-19 | 삼성전자주식회사 | 강력한 보안 기능을 제공하는 스토리지 장치 및 그 스토리지 장치를 포함하는 전자 장치 |
US11256314B2 (en) | 2019-08-09 | 2022-02-22 | Dell Products L.P. | System and method for power management of field-programmable gate arrays and load balancing of personality bitstreams from a baseboard management controller |
US10942766B2 (en) * | 2019-08-09 | 2021-03-09 | Dell Products, L.P. | System and method for providing heterogeneous personality bitstreams on field-programmable gate arrays from a baseboard management controller |
US11442885B2 (en) | 2019-08-09 | 2022-09-13 | Dell Products L.P. | System and method to change field-programmable gate array personality from a baseboard management controller |
US20210097184A1 (en) * | 2019-09-27 | 2021-04-01 | Advanced Micro Devices, Inc. | Secure buffer for bootloader |
US11385902B2 (en) * | 2019-11-17 | 2022-07-12 | Nuvoton Technology Corporation | Secure firmware management with hierarchical boot sequence using last known good firmware |
US11216562B2 (en) * | 2019-12-31 | 2022-01-04 | Micron Technology, Inc. | Double wrapping for verification |
JP2021149417A (ja) | 2020-03-18 | 2021-09-27 | キオクシア株式会社 | 記憶装置および制御方法 |
KR20210149521A (ko) | 2020-06-02 | 2021-12-09 | 삼성전자주식회사 | 메모리 시스템 및 이의 동작 방법 |
US11829773B2 (en) * | 2020-06-11 | 2023-11-28 | Verizon Patent And Licensing Inc. | Systems and methods for securely booting a network device with a service provider trust anchor |
EP3929784A1 (de) * | 2020-06-23 | 2021-12-29 | Siemens Aktiengesellschaft | Booteinrichtung für ein computerelement und verfahren zum booten eines computerelements |
US11294582B2 (en) * | 2020-09-08 | 2022-04-05 | Micron Technology, Inc. | Customer-specific activation of functionality in a semiconductor device |
US12061702B2 (en) * | 2020-10-07 | 2024-08-13 | Google Llc | Identity and root keys derivation scheme for embedded devices |
CN112433742A (zh) * | 2020-11-26 | 2021-03-02 | 中电金融设备系统(深圳)有限公司 | 安全的固件更新方法、装置、设备及存储介质 |
US11741232B2 (en) | 2021-02-01 | 2023-08-29 | Mellanox Technologies, Ltd. | Secure in-service firmware update |
DE102021003840A1 (de) * | 2021-07-27 | 2023-02-02 | Mercedes-Benz Group AG | Verfahren zur Überprüfung digitaler Signaturen, Fahrzeug-Recheneinheit und Fahrzeug |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6106396A (en) * | 1995-06-29 | 2000-08-22 | Silicon Gaming, Inc. | Electronic casino gaming system with improved play capacity, authentication and security |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6625729B1 (en) * | 2000-03-31 | 2003-09-23 | Hewlett-Packard Company, L.P. | Computer system having security features for authenticating different components |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5610981A (en) | 1992-06-04 | 1997-03-11 | Integrated Technologies Of America, Inc. | Preboot protection for a data security system with anti-intrusion capability |
JPH0793980A (ja) | 1993-09-24 | 1995-04-07 | Toshiba Emi Ltd | データ記録再生装置 |
ATE496444T1 (de) | 1995-06-29 | 2011-02-15 | Igt Reno Nev | Elektronisches casinospielsystem mit verbesserten spielmöglichkeiten, authentifizierung und sicherheit |
US6708274B2 (en) | 1998-04-30 | 2004-03-16 | Intel Corporation | Cryptographically protected paging subsystem |
US20010007131A1 (en) | 1997-09-11 | 2001-07-05 | Leonard J. Galasso | Method for validating expansion roms using cryptography |
US6463535B1 (en) | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
US7409546B2 (en) | 1999-10-20 | 2008-08-05 | Tivo Inc. | Cryptographically signed filesystem |
US6565443B1 (en) | 1999-09-14 | 2003-05-20 | Innovative Gaming Corporation | System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device |
US6595856B1 (en) | 2000-01-04 | 2003-07-22 | Sigma Game, Inc. | Electronic security technique for gaming software |
JP3971890B2 (ja) | 2000-11-01 | 2007-09-05 | 日本電信電話株式会社 | 署名検証支援装置、署名検証支援方法、及び電子署名検証方法 |
US20030018892A1 (en) * | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
US20030079136A1 (en) * | 2001-08-21 | 2003-04-24 | Emmanuel Ericta | Security framework |
DE10208442A1 (de) | 2001-09-27 | 2003-05-15 | Marc Delling | Hochsicherheits-Server als Datenverarbeitungsanlage |
US6944757B2 (en) | 2001-10-16 | 2005-09-13 | Dell Products L.P. | Method for allowing CD removal when booting embedded OS from a CD-ROM device |
US7434068B2 (en) | 2001-10-19 | 2008-10-07 | Intel Corporation | Content protection in non-volatile storage devices |
TWI228220B (en) | 2002-03-08 | 2005-02-21 | Samsung Electronics Co Ltd | System boot using NAND flash memory and method thereof |
US7620811B2 (en) | 2002-04-23 | 2009-11-17 | Panasonic Corporation | Server device and program management system |
JP4675031B2 (ja) | 2002-04-23 | 2011-04-20 | パナソニック株式会社 | サーバ装置及びプログラム管理システム |
JP4492025B2 (ja) | 2002-05-21 | 2010-06-30 | 株式会社デンソー | 電子制御装置のデータ格納方法 |
KR100469669B1 (ko) | 2002-09-24 | 2005-02-02 | 삼성전자주식회사 | 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법 |
JP4323163B2 (ja) * | 2002-11-25 | 2009-09-02 | 三菱電機株式会社 | サーバ装置 |
US7112204B2 (en) * | 2003-02-06 | 2006-09-26 | Medicinelodge, Inc. | Tibial tubercle osteotomy for total knee arthroplasty and instruments and implants therefor |
JP2004265286A (ja) | 2003-03-04 | 2004-09-24 | Fujitsu Ltd | 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理 |
US20050091496A1 (en) | 2003-10-23 | 2005-04-28 | Hyser Chris D. | Method and system for distributed key management in a secure boot environment |
JP2005157528A (ja) | 2003-11-21 | 2005-06-16 | Fuji Xerox Co Ltd | メモリ装置 |
US7401234B2 (en) | 2004-03-01 | 2008-07-15 | Freescale Semiconductor, Inc. | Autonomous memory checker for runtime security assurance and method therefore |
JP4002253B2 (ja) * | 2004-04-14 | 2007-10-31 | 日本電信電話株式会社 | 証明書発行サービス装置、証明書発行サービス方法及び証明書発行サービスプログラム |
JP4604543B2 (ja) | 2004-04-30 | 2011-01-05 | 日本電気株式会社 | 計算機、計算機起動方法、管理サーバ装置およびプログラム |
US7694121B2 (en) | 2004-06-30 | 2010-04-06 | Microsoft Corporation | System and method for protected operating system boot using state validation |
JP2006146485A (ja) | 2004-11-18 | 2006-06-08 | Toshiba Corp | 携帯端末 |
JP2006178909A (ja) | 2004-12-24 | 2006-07-06 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
JP4489030B2 (ja) * | 2005-02-07 | 2010-06-23 | 株式会社ソニー・コンピュータエンタテインメント | プロセッサ内にセキュアな起動シーケンスを提供する方法および装置 |
JP4373943B2 (ja) | 2005-02-28 | 2009-11-25 | Tdk株式会社 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
US20070143530A1 (en) * | 2005-12-15 | 2007-06-21 | Rudelic John C | Method and apparatus for multi-block updates with secure flash memory |
US8429643B2 (en) | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
US8683213B2 (en) | 2007-10-26 | 2014-03-25 | Qualcomm Incorporated | Progressive boot for a wireless device |
-
2006
- 2006-02-10 US US11/351,966 patent/US8291226B2/en active Active
-
2007
- 2007-02-09 EP EP07717594A patent/EP1982287A2/en not_active Withdrawn
- 2007-02-09 CN CN200780004543.9A patent/CN101379506B/zh not_active Expired - Fee Related
- 2007-02-09 JP JP2008554518A patent/JP5221389B2/ja not_active Expired - Fee Related
- 2007-02-09 WO PCT/US2007/061916 patent/WO2007095465A2/en active Application Filing
- 2007-02-09 KR KR1020087021939A patent/KR101049647B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6106396A (en) * | 1995-06-29 | 2000-08-22 | Silicon Gaming, Inc. | Electronic casino gaming system with improved play capacity, authentication and security |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6625729B1 (en) * | 2000-03-31 | 2003-09-23 | Hewlett-Packard Company, L.P. | Computer system having security features for authenticating different components |
Also Published As
Publication number | Publication date |
---|---|
US20070192610A1 (en) | 2007-08-16 |
JP2009526333A (ja) | 2009-07-16 |
CN101379506A (zh) | 2009-03-04 |
WO2007095465A2 (en) | 2007-08-23 |
JP5221389B2 (ja) | 2013-06-26 |
EP1982287A2 (en) | 2008-10-22 |
US8291226B2 (en) | 2012-10-16 |
KR20080091857A (ko) | 2008-10-14 |
KR101049647B1 (ko) | 2011-07-14 |
WO2007095465A3 (en) | 2008-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101379506B (zh) | 用于从外部存储装置进行安全引导的方法和设备 | |
CA2701279C (en) | Progressive boot for a wireless device | |
EP2633464B1 (en) | Software authentication | |
US7500098B2 (en) | Secure mode controlled memory | |
US20080148001A1 (en) | Virtual Secure On-Chip One Time Programming | |
US8478973B2 (en) | System and method for providing a secure application fragmentation environment | |
JP2007512787A (ja) | トラステッド・モバイル・プラットフォーム・アーキテクチャ | |
EP2069992A2 (en) | Protecting interfaces on processor architectures | |
WO2014176101A1 (en) | Generation of working security key based on security parameters | |
US12061702B2 (en) | Identity and root keys derivation scheme for embedded devices | |
CN113748698B (zh) | 存取网络时的安全通信 | |
CN112384922A (zh) | 加密密钥分布 | |
US20230351057A1 (en) | Security component and method of operation | |
US20240354417A1 (en) | Deriving Identity and Root Keys for Embedded 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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150218 Termination date: 20190209 |
|
CF01 | Termination of patent right due to non-payment of annual fee |