CN107683479B - 基于nand的验证引导 - Google Patents
基于nand的验证引导 Download PDFInfo
- Publication number
- CN107683479B CN107683479B CN201680036170.2A CN201680036170A CN107683479B CN 107683479 B CN107683479 B CN 107683479B CN 201680036170 A CN201680036170 A CN 201680036170A CN 107683479 B CN107683479 B CN 107683479B
- Authority
- CN
- China
- Prior art keywords
- nand flash
- flash memory
- read
- soc
- boot
- 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
Links
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
提供了一种包括NAND闪存的设备,该NAND闪存包括存储引导代码和密钥的只读部分以及耦合到NAND闪存的片上系统(SoC)。SoC包括存储一个或多个指令的只读存储器(ROM)和被配置为在启动时执行存储在ROM中的一个或多个指令以从NAND闪存请求引导代码和密钥的处理器。处理器进一步被配置为加载和执行引导代码以使用密钥在引导过程期间对后续代码执行信任链验证过程。还呈现了使用该设备的方法。
Description
技术领域
本公开一般地涉及计算机,并且更具体地涉及为嵌入在电子设备中的计算机提供NAND验证的根引导过程。
背景技术
目前可用的个人电子设备由于尺寸减小而继续增加处理性能并提高移动性。片上系统(SoC)架构已经成为许多这些个人电子设备的标准设备架构,其可以是智能电话、平板设备、膝上型设备、可穿戴设备或其它电子设备,诸如路由器和相关网络硬件,包括机顶盒(STB)和多媒体播放设备。但是,在一些操作系统的场境下,由SoC提供的引导安全水平可能不足以防止恶意入侵电子设备和未授权访问电子设备资源和数据。
发明内容
在第一实施例中,设备包括具有存储引导代码和密钥的只读部分的NAND闪存。该设备进一步包括耦合到NAND闪存的片上系统(SoC)。在一些实施例中,SoC包括存储一个或多个指令的只读存储器(ROM)以及被配置为在启动时执行存储在ROM中的一个或多个指令以从NAND闪存请求引导代码和密钥的处理器。处理器可以进一步被配置为加载和执行引导代码以在引导过程期间使用密钥对后续代码执行信任链验证过程。
在第二实施例中,用于引导电子设备的方法包括:执行存储在片上系统(SoC)的只读存储器(ROM)中的命令以请求引导代码和存储在NAND闪存的只读部分中的密钥。该方法可以包括加载和执行引导代码以在引导过程期间使用密钥对后续代码执行信任链验证过程。后续代码可以被存储在NAND闪存的读写部分中。进一步地,该方法可以包括:在引导过程期间,当信任链验证过程返回无效签名时,停止引导过程,并且当信任链验证过程成功完成时加载和执行应用。
在一些实施例中,非暂时性计算机可读介质存储命令,当所述命令由耦合到NAND闪存的片上系统(SoC)中的处理器执行时,使SoC执行用于引导电子设备的方法。因此,该方法包括执行存储在SoC的只读存储器(ROM)中的命令以请求存储在NAND闪存的只读部分中的引导代码和密钥,加载和执行引导代码以在引导过程期间使用密钥对后续代码执行信任链验证过程,其中后续代码存储在NAND闪存的读写部分中,并且当信任链验证过程返回无效签名时,停止引导过程。
在又一些实施例中,设备包括用于数据存储的装置,其具有存储引导代码和密钥的只读部分。该设备还包括耦合到用于数据存储的装置的片上系统(SoC)。在一些实施例中,SoC包括存储一个或多个指令的只读存储器(ROM),以及处理器,所述处理器被配置为在启动时执行存储在ROM中的一个或多个指令以从用于数据存储的装置请求引导代码和密钥。处理器还可以被配置为加载和执行引导代码,以在引导过程期间使用密钥对后续代码执行信任链验证过程。
附图说明
图1图示出根据一些实施例的包括具有基于NAND闪存的验证的引导的电子设备以及它们彼此的关系的示例架构。
图2图示出根据一些实施例的支持耦合到片上电路(SoC)的NAND闪存的如图1中的设备的电路板。
图3A图示出根据一些实施例的分区成只读部分和读写部分的NAND闪存。
图3B图示出根据一些实施例的分区成只读部分和读写部分的NAND闪存。
图4图示出根据一些实施例的用于配置用于验证的引导的NAND闪存的方法的流程图。
图5图示出根据一些实施例的用于使用NAND闪存来引导电子设备的方法的流程图。
在附图中,除非另有说明,具有相同或相似附图标记的元件具有相同或相似的功能或步骤。
具体实施方式
在以下详细描述中,阐述了许多具体细节以提供对本公开的全面理解。然而,对于本领域的普通技术人员将显而易见的是,可以在没有这些具体细节中的一些的情况下实践本公开的实施例。在其他情况下,公知的结构和技术未被详细示出以免混淆本公开。
符合本公开的电子设备包括具有处理能力的非易失性存储器电路,诸如NAND型闪存,以向嵌入在电子设备中的SoC提供存储器存储能力。随着SoC的复杂度增加,根据一些实施例的电子设备包括验证的引导特征,其限制未授权的源对电子设备的操作。在一些实施例中,所公开的验证的引导通过运行存储在SoC外部的NAND闪存中的至少一些命令来开始用于文件管理和应用执行的操作系统。符合本公开的实施例中包括的验证的引导特征将由SoC处理的软件和硬件资源限制到授权的源。该策略增强了诸如媒体机构的服务提供商的专有价值,并且避免了将恶意软件引入电子设备。希望安全地访问电子设备以防止恶意方远程访问设备,特别是当这些设备处理高度敏感的个人信息或有价值的专有信息时。
符合本公开的实施例包括配置在耦合到SoC的NAND闪存的只读部分中以处理引导的初始阶段的信任根。使用NAND闪存可能是期望的,因为NOR闪存架构倾向于昂贵且通常较慢。此外,由于NAND闪存是没有移动部件的固态设备,所以与用于存储在移动/嵌入式设备中的磁盘相比,NAND闪存是期望的。因此,包含NAND闪存的电子设备在振动和冲击方面是坚固的。此外,NAND闪存的存储成本远远低于电子设备和电器中使用的小存储器容量的磁盘。在一些计算机应用中,诸如在网络服务器中,对于其快速性能(例如,与NOR闪存相比),NAND闪存可能是期望的。
本文公开的实施例包括验证的引导过程,其通过执行SoC中的命令来访问存储在NAND闪存的只读部分中的私钥来开始。执行的命令使存储在NAND闪存的只读部分中的固件验证引导过程的后续阶段。因此,在引导过程继续时,本文公开的信任链使用私钥来验证NAND闪存的读写部分中的签名。存储在NAND闪存的只读部分中的受信私钥使得能够对电子设备的每个引导过程使用大而强的加密。因此,引导过程是验证的引导过程,因为在引导过程的每个步骤处,使用在NAND闪存的只读部分中存储的受信私钥来验证公钥。引导过程中每个步骤处的公钥都可以存储在NAND闪存的读写块中。在一些实施例中,多个公钥可以被存储在NAND闪存的不同读写部分中,其在受信引导验证期间在不同时间被寻址。此外,在一些实施例中,至少一个公钥可以被存储在SoC中的存储器电路(例如,掩模ROM)中,用于在引导过程期间使用存储在NAND闪存的只读部分中的受信私钥进行验证。信任链中的分解点可以在引导过程发生时被识别,并且引导过程停止。
因为通过根引导验证和存储在NAND闪存的只读部分中的受信私钥来保护对电子设备的操作系统的访问,所以本文所公开的电子设备的制造商更好地控制安装在电子设备中的代码和固件,而不必依靠第三方(例如,SoC制造商)来进行软件安全和保护。这使得能够更好地保护提供给电子设备的内容(例如,媒体播放器下游或软件更新)。这对于为“智能”电子设备提供自己的操作系统(OS)的制造商来说尤其是期望的。实际上,本公开的实施例可以不依赖SoC中的附加ROM来用作信任根。因此,诸如媒体机构的设备制造商和服务提供商可以将他们的代码、服务和硬件在他们自己的根/信任链内保持可管理。
图1图示出根据一些实施例的包括使用基于NAND闪存的验证的引导的电子设备以及它们彼此的关系的示例架构100。架构100包括通过网络150连接的服务器110、个人电子设备120和路由器130。更一般地,个人电子设备120和路由器130可以包括具有计算和联网能力的任何电子设备。个人电子设备120可以是例如平板计算机121(例如,包括电子书阅读器和便携式平板设备)、移动设备123(例如,智能电话或PDA)、机顶盒(STB)125(例如,用于电视机124)、个人计算机设备126、可转换设备(例如,平板到膝上型计算机设备)、腕带感测设备127、智能手表128、可佩带显示设备129、可穿戴计算机、可穿戴智能设备或具有用于显示和处理内容的适当处理器、存储器和通信能力的任何其他设备。更具体地,个人电子设备120和路由器130可以由服务器110中的一个或多个的注册客户端使用。个人电子设备120中的至少一个被配置为包括和执行用于显示内容的至少基于网络的应用。基于网络的应用可以是例如web浏览器、文档或文本编辑程序、图像编辑程序、视频编辑程序、游戏程序、媒体播放器程序、社交网络程序或显示内容的任何其他程序。内容可以是例如网页、文档、图像、视频、音频文件、游戏或其他可显示的内容。
服务器110可以是具有适当的处理器、存储器和通信能力的任何设备,用于托管网页的内容或提供网络服务,诸如数据存储、媒体下游应用或社交网络平台。网络150可以包括例如个人区域网(PAN)、局域网(LAN)、校园网(CAN)、城域网(MAN)、广域网(WAN)、宽带网(BBN)、互联网等。此外,网络150可以包括但不限于以下网络拓扑中的任何一个或多个,包括总线网络、星形网络、环形网络、网状网络、星形总线网络、树形或分层网络等。而且,在一些实施例中,网络150可以是将诸如电影、视频、游戏等媒体内容传送到诸如STB 125的个人电子设备的有线网络。
由于NAND闪存相对于其他存储器电路的低成本,因此具有降低的存储器要求的诸如路由器130和可穿戴设备127、128、129的低成本设备可受益于如本文所公开的电子设备的实施例。
图2图示出用于诸如来自图1的设备110、120和130中的任一个的电子设备200的电路板202。根据一些实施例,电路板202支持耦合到片上系统(SoC)205的NAND闪存201。SoC205包括处理器213和存储器215。处理器213被配置为执行存储在存储器215中的多个指令。当处理器213执行存储在存储器215中的指令时,其使设备200执行与电子设备相关联的操作,包括如本文所公开的基于网络的应用。基于网络的应用可以包括基于web的应用,其中设备200通过网络接口电路(NIC)230从远程设备传送和接收数据。处理器213包括NAND控制器电路,以提供指令并从NAND闪存201检索数据。SoC 205包括存储用于处理器213中的NAND控制器电路的指令的掩模ROM 225。掩模ROM 225中的指令使SoC 205开始和执行引导过程。在一些实施例中,掩模ROM 225可以存储与存储在NAND闪存201中的私钥匹配的公钥,用于执行电子设备200的验证的引导。
SoC 205包括多个引脚210,其中引导引脚211接收并传送引导命令和引导数据进出SoC 205。NAND闪存201通过线路220耦合到SoC 205的引导引脚211。当SoC 205通电时,处理器213通过读取和执行来自掩模ROM 225的命令来开始电子设备200的引导过程,以从NAND闪存201中的只读部分请求根引导存根。掩模ROM 225可以包括使处理器213在锁定引脚221上断言锁定信号的指令。锁定引脚221中的锁定信号可以是用于锁定在NAND闪存201中的块的“高”或“低”信号,其被配置为在根引导验证过程期间,在首次读取来自NAND闪存201的只读部分中的块的数据之后,在锁定引脚上接收到“高”或“低”信号时被锁定。之后,锁定信号阻止未授权方对NAND闪存201中的锁定块的访问。
如本文所公开的电子设备(例如,图1的设备110、120和130中的任何一个)的实施例包括具有通过在电路板202上使线路220将SoC 205中的掩模ROM 225耦合到NAND闪存201直接从NAND闪存201引导的能力的SoC 205。引导引脚211可以包括耦合到NAND闪存201的数据引脚和控制引脚。例如,在一些实施例中,引脚211包括用于数据传输的八(8)个引脚和用于控制NAND闪存201的六(6)个或更多个引脚(例如,包括锁定引脚221)。通常,NAND闪存201可以包括与SoC 205中的引脚210中的任何一个耦合的其他线路,为了清楚目的其在图2中未示出。在一些实施例中,除了NAND闪存201之外,没有单独的组件被添加到SoC 205用于验证的根引导。一些实施例可以包括电路板202中的受信平台模块(TPM),用于引导过程的回退保护和远程鉴证。NAND闪存201的减小的尺寸为电路设计者在电路板202上提供了额外的实际状态,以安装更多的设备(例如,传感器),或者进一步减小电子设备的整体大小。
在一些实施例中,线路220耦合将被锁定的NAND闪存中的块存储器部分或只读部分与被配置为接收诸如根引导验证命令的引导命令的SoC 205中的引脚211耦合。在一些实施例中,电路板202中的引导过程被硬连线到NAND闪存201的只读块中的特定预选位置,这增强了引导速度和可靠性。更具体地,一些实施例包括与具有跨越NAND闪存201中的多个逻辑门的串行链路的存储器块耦合的引导引脚211。例如,在一些实施例中,引导引脚211耦合到SoC205中的串行端口。
更一般地,在符合本公开的一些实施例中,SoC中的引导引脚211与配置用于串行数据通信的存储器电路(例如,NAND闪存201)中的存储器块耦合。这减少了SoC中的引导引脚211的数量和引导过程期间的电路板202的功耗,另外的优点是简化了通过电路板202的线路220的布线并减少了焊盘的数量和电路板202的制造复杂度。
图3A图示出根据一些实施例的分区为只读部分303和读写部分305的NAND闪存201。NAND闪存201包括逻辑单元(LUN)311-1至311-k,其中k是任何整数(以下统称为LUN311)。LUN 311中的每一个包括多个块313,并且每个块313包括存储数据的多个页面315。
因此,在一些实施例中,以块粒度确定只读部分303和读写部分305,即,只读部分303和读写部分305均包括整数个块313。只读部分303包括存储只读数据的多个块313。读写部分305包括被配置为可重写块的多个存储器块,并且可以包括在引导过程期间使用的其他资源中的诸如读写固件块、内核块和根文件系统(rootfs)块的引导过程的元素。
所公开的系统的某些实施例包括使用存储在NAND闪存201的只读部分303中的私钥的引导过程的信任链。私钥为电子设备200中的引导过程提供信任根。因此,因为至少受信私钥存储在NAND闪存201的只读部分303中,所以信任根被编码在外部方不可访问的硬件电路中。因此,本文公开的实施例提供了安全可靠的引导过程,其使用有限数量的存储器和功率资源。此外,本文所公开的电子设备在减小的空间中包括数量减少的离散低成本组件。
NAND闪存201的一些实施例包括使一次编程(OTP)命令能够将至少一个块313锁定在NAND闪存的只读部分303中的只读特征。OTP命令禁止指向锁定的块的进一步的“写入”和“擦除”命令。在一些实施例中,OTP命令在工厂中发出以在运送给客户之前锁定NAND闪存201的“只读”部分303。因此,包括验证的引导命令的NAND闪存201的“只读”部分303被保护。
符合本公开的实施例通过使用NAND闪存201来存储强私钥并放松而简化了当前配置,并且在一些情况下消除了对SoC205中的NOR闪存的需要。
某些制造商提供了以工厂水平制作NAND闪存201的只读部分303的特征。因此,一些实施例包括以工厂水平为至少只读部分303提供信任根。通常,使用NAND闪存的只读特征来保持诸如组件的序列号(例如,相关SoC的序列号)的简单数据。在一些实施例中,SoC中的掩模ROM 225中的公钥与存储在NAND闪存201的只读部分303中的私钥相关联。此外,NAND闪存201的只读部分303使用具有私钥的数字签名验证以验证存储在读写部分305中的代码。
图3B图示出根据一些实施例的分区成只读部分303和读写部分305的NAND闪存201。只读部分303包括在验证步骤351中使用的私钥355。读写部分305包括包括固件签名361的读写固件块321、包括内核签名363的内核块323、包括rootfs签名365的根文件系统(rootfs)块325和“有状态”分区块327。有状态分区块327可以包括服务中的命令,其中对服务的后续请求取决于第一请求的结果。在一些实施例中,有状态分区块327存储随时间变化的用户数据(例如,由SoC 205运行的不同应用(包括基于web的应用)的用户设置)。固件签名361、内核签名363和rootfs签名365是与私钥355兼容的公钥。在一些实施例中,固件签名361、内核签名363和rootfs签名365是具有比私钥355小的大小的公钥。例如,当私钥355包括约8kbits时,固件签名361、内核签名363或rootfs签名365中的每一个可以包括小于约2kbits或3kbits。
虽然读写部分305易于修改,但是在符合本公开的实施例中,只有私钥355授权的各方可以满足验证步骤351。验证步骤351确保签名361、363和365与私钥355的一致性,其被安全地存储在只读部分303中。因此,对读写部分305中的文件的访问和修改受到高授权标准的制约,从而防止恶意方对电子设备200进行控制。因此,符合本公开的实施例避免了执行从SoC 205中的掩模ROM 215验证的引导过程的风险。事实上,SoC 205中的掩模ROM 215可以容易受到恶意方的外部攻击,因为掩模ROM 215通常具有用于引导验证的有限大小(因此较弱)的加密密钥的存储容量(例如,2048位密钥或更小)。在符合本公开的实施例中,私钥355可以包括8kb,或甚至更多。因此,NAND闪存201提供比当前验证的引导过程好的安全性和长的使用寿命,因为更大的加密私钥355在变得不可纠正之前可能承受更多的磨损和撕裂错误。在一些实施例中,为了纠正磨损和撕裂,NAND闪存201可以包括纠错机制,这将允许私钥355在由于过多的读取错误而变得不可纠正之前被读取更多次。
此外,如本文公开的实施例确保仅当资源可访问私钥355时才释放存储在读写NAND部分305中的新软件。这是因为读写NAND部分中的软件需要与存储在NAND的只读部分303中的私钥355兼容的公钥。如果私钥355被存储在掩模ROM 225中,如在现有技术的设备中的情况那样,则不能保证软件开发者(例如,应用开发者)SoC充分地受到保护以免受第三方恶意访问。此外,与本文公开的实施例相比,使用存储在掩模ROM 225中的加密密钥实现引导验证的现有技术配置具有较弱的加密,因为掩模ROM 225中的大小约束限制了私钥的大小。
在一些实施例中,当只读NAND部分303包括将处理器213定向到请求访问来自读写固件部分321的数据的命令时,在验证的引导过程期间执行验证步骤351。验证步骤351可以被SoC205执行并且可以包括与固件签名361匹配的私钥355。验证步骤351可以在验证的引导过程期间执行多于一次,以当读写固件块321已经被验证和访问时多次访问内核323中的数据。使用相应的签名361、363、365和私钥355来验证来自相应的块321、323、325和327的代码。一旦代码已经被验证,则对于SoC中的处理器213执行代码是安全的。执行验证步骤351的实例形成可以被称为用于引导过程的“信任链”的验证序列。信任链步骤的成功完成确认引导过程是合法的,并且控制SoC的软件具有经认可和授权的资源。
图4图示出根据一些实施例的用于配置用于验证的引导的NAND闪存的方法400的流程图。方法400中的电子设备可以是符合本公开的服务器、个人电子设备或路由器(例如,服务器110、个人电子设备120和路由器130)。此外,方法400中的NAND闪存可以被耦合到电路板上的SoC(例如,NAND闪存201、SoC 205和电路板202)。验证的引导可以包括使用私钥(例如,私钥355、固件签名361、内核签名363和rootfs签名365)来验证多个公钥或签名。在一些实施例中,符合本公开的方法可以包括以不同顺序、时间重叠或甚至同时执行的方法400中的至少一个或多个框。
框402包括选择NAND闪存的一部分作为只读部分。框404包括用信任的引导根对只读部分中的至少一个块进行编程。在一些实施例中,框404包括将私钥存储在NAND闪存的只读部分中。在一些实施例中,框404包括在信任的引导根中写入固件代码块。固件代码可以包括用于签名验证的数据和命令,诸如私钥355。此外,在一些实施例中,框404包括写入固件代码数据和命令的块,以加载和验证引导过程中的后续阶段。在一些实施例中,框404包括在固件数据和命令的块中写入以当遇到故障时在恢复模式下执行引导过程。
框406包括锁定至少一个编码块以免被写入和/或擦除。框406可以包括使用用于特定NAND闪存的合适的接口。在一些实施例中,NAND闪存包括类似于具有锁定引脚(例如,锁定引脚221)的NOR-闪存电路的接口。在一些实施例中,框406可以包括从SoC发出OTP命令。在一些实施例中,当在包括指定的OTP区域的NAND闪存上执行框404时,框406可以自动完成。在其他实施例中,框406可以包括在根据框404写入块之后提供用于制作NAND闪存OTP的块的指令。
框408包括使用固件签名、内核签名和根文件系统签名分别对NAND闪存的读写部分中的读写固件块、内核块和根文件系统块进行编程。在一些实施例中,框408包括在标准闪存文件系统上对内核、根文件系统和读写固件进行编码。在一些实施例中,框408包括使用众所周知的程序(诸如以诸如“原始blob”数据格式的“nandwrite”)对内核进行编码。在一些实施例中,框408包括根据未分类的块图像文件系统(UBIFS)协议将根文件系统存储在NAND闪存中。因此,在一些实施例中,框408包括使用设备映射器(dm)形成块设备的虚拟层。例如,在一些实施例中,框408包括使用包括内核资源(例如,“dm-verity”)的映射表来提供对存储器块的只读透明完整性检查。在一些实施例中,框408包括将根文件系统编码在压缩的只读文件系统(例如,“SquashFS”)中。这种配置可以适用于其中需要低开销的受限块设备和存储器系统,诸如嵌入式系统。进一步根据一些实施例,框408包括根据UBIFS协议在NAND闪存的读写部分中形成合适的分区。
框410包括选择片上系统(SoC)中的引脚集合以与NAND闪存的只读部分中的至少一个编程的块耦合。在一些实施例中,框410包括在耦合SoC和NAND闪存(例如,线路220)的总线中选择用于数据的线路和用于控制命令的线路。例如,一些设备可以包括具有十四(14)条线路的NAND总线,其中在框410中选择八(8)条线路来传送数据,并且在框410中选择六(6)条线路来传送控制命令。
图5图示出了示出根据一些实施例的用于使用NAND闪存来引导电子设备的方法500的流程图。方法500中的电子设备可以是包括符合本公开的SoC的服务器、个人电子设备或路由器(例如,服务器110、个人电子设备120、路由器130和SoC205)。此外,方法500中的NAND闪存可以通过连接到SoC上的引脚的电路板上的多条线路耦合到SoC。SoC包括如本文所公开的处理器、存储器和掩模ROM电路(例如,NAND闪存201、引脚211和221、线路220、电路板210、处理器213、存储器215和掩模ROM 215)。NAND闪存可以包括只读部分和读写部分,每个部分以块粒度形成(例如,只读部分303、读写部分205和块313)。因此,NAND闪存的只读部分包括在方法500的一些实施例(例如,私钥355和验证步骤351)中包括的验证步骤中使用的私钥。在一些实施例中,读写部分可以包括读写固件块、内核块、根文件系统块和有状态分区块(例如,读写固件块321、内核块323、rootfs块325和有状态分区块327)。
在打开电子设备时,方法500可以由SoC中的处理器执行。此外,在一些实施例中,符合本公开的方法可以包括以不同顺序、时间重叠或者甚至同时执行的方法500中的至少一个或多个步骤。
框502包括在SoC中所包括的ROM中执行命令,该命令在打开电子设备时请求存储在NAND闪存的只读部分中的根引导代码和密钥。框502可以包括将存储在SoC的掩模ROM中的公钥与存储在NAND闪存的只读部分中的私钥相匹配。在一些实施例中,框502包括向NAND闪存提供读取命令以读取NAND闪存的只读部分。读取命令可以经由诸如开放式NAND闪存接口(ONFI)的基于命令的接口来提供,而不限于适合于给定应用的特定接口。
框504包括发出块锁定信号以保护NAND闪存的只读部分中的块。此外,符合本公开的实施例包括在引导过程的早期发出块锁定信号,以在稍后阶段为NAND闪存配置提供更大的灵活性。在一些实施例中,框504包括通过锁定引脚发出块锁定信号。在一些实施例中,框504可以包括选择要被锁定的NAND闪存中的多个块,然后使用它们相应的地址锁定所选块。
框506包括从NAND闪存请求固件签名验证。因此,框506可以包括由SoC中的处理器验证NAND闪存的只读部分中的私钥和存储在读写固件中的固件签名是兼容的。框508包括当固件签名有效时在NAND闪存中的读写固件块中读取文件和执行命令。框510包括内核签名验证。在一些实施例中,框510包括使用在只读NAND闪存部分中的私钥验证存储在NAND闪存的读写部分的内核中的内核签名。当根据块510内核签名有效时,框512包括在NAND闪存的内核中读取文件并执行命令。框514包括根文件系统签名验证。在一些实施例中,框514包括使用只读NAND闪存部分中的私钥来验证NAND闪存的读写部分的根文件系统中的根文件系统签名。当根据框514根文件系统签名有效时,框516包括在NAND闪存的根文件系统中读取文件并执行命令。
如步骤506至516所示,在使用密钥的引导过程期间对后续代码加载和执行引导代码可以被包括在通用框517中作为信任验证过程的链。后续代码被存储在NAND闪存的读写部分的块321、323、325和327中。根据一些实施例,当任何签名验证框506、510和514返回无效签名时,在框520中停止引导过程。在一些实施例中,如果在框506、510和514中的任何一个中检测到签名违反,则框520包括将SoC设置为恢复模式。
当框517中的信任链验证过程成功完成时,框518包括在SoC中加载和执行应用。在一些实施例中,框518包括访问来自NAND闪存的读写部分中的有状态服务的文件和命令。应用可以包括通过NIC电路与网络通信的服务操作。
方法500可以在电子设备中在安装或更新软件之后的“重新引导”的场境下执行。例如,当用户在STB中安装新的视频播放软件以播放更高分辨率或更高质量的视频时,情况可能如此。在这样的实施例中,电子设备制造商和媒体提供商期望确保更新和安装的软件是合法的。
如本文讨论的计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、存储在专用于所讨论的程序的单个文件中或者存储在多个协同的文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点或跨多个站点分布并通过通信网络互连的多个计算机上执行。本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。
本说明书中描述的主题的各个方面可以在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或者包括前端组件(例如,具有用户可以通过其与本说明书中描述的主题的实施方式交互的图形用户界面或Web浏览器的客户端计算机)或者一个或多个这样的后端、中间件、或前端组件的任何组合的计算系统中实现。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络(例如,网络150)可以包括例如PAN、LAN、CAN、MAN、广域网WAN、BBN、互联网等中的任何一个或多个。此外,通信网络可以包括但不限于例如以下网络拓扑中的任何一个或多个:总线网络、星形网络、环形网络、网状网络、星形总线网络、树状或分层网络等。通信模块可以是例如调制解调器或以太网卡。
本文使用的术语“机器可读存储介质”或“计算机可读介质”是指参与向处理器(例如,处理器213)提供指令或数据用于执行的任何介质或媒介。这样的介质可以采取多种形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘、磁盘或闪存。机器可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带、任何其它磁介质、CD-ROM、DVD、任何其他光介质、打孔卡、纸带、具有孔图案的任何其他物理介质、RAM、PROM、EPROM、FLASH EPROM、任何其他存储器芯片或盒式存储器或计算机可读取的任何其他介质。机器可读存储介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合,或者它们中的一个或多个的组合。
如本文所使用的,在一系列术语之前的词语“至少一个”与术语“和”或“或”分开任何术语,将整个列表而不是列表的每个成员进行修改(即,每个项)。短语“至少一个”不需要选择至少一个项;相反,该短语允许包括任何一个项中的至少一个和/或项的任何组合中的至少一个和/或每个项中的至少一个的含义。举例来说,短语“A、B和C中的至少一个”或“A、B或C中的至少一个”均仅指A、仅指B或仅指C;A、B和C的任何组合;和/或A、B和C中的每一个中的至少一个。就说明书或权利要求书中使用的术语“包括”、“具有”等而言,这样的术语旨在以与术语“包括”作为当被用作权利要求中的过渡词时解释“包括”类似的方式被包含。
除非特别说明,否则单数形式的元素的引用并不意味着“一个且仅一个”,而是意味着“一个或多个”。术语“一些”是指一个或多个。本领域普通技术人员已知或以后将已知的本公开内容所描述的各种构造的元件的所有结构和功能等同物通过引用被明确地并入本文,并且旨在被本主题技术所涵盖。此外,在此公开的任何内容都不旨在奉献给公众,而不管这样的公开是否在上面的描述中被明确地叙述。
虽然本说明书包含许多细节,但是这些不应该被解释为对可以要求保护的范围的限制,而是作为主题的特定实施方式的描述。在本说明书中在单独实施例的场境中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的场境中描述的各种特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变化。
已经根据特定方面描述了本说明书的主题,但是可以实现其他方面并且在下面的权利要求的范围内。例如,尽管在附图中以特定的顺序描述了操作,但是这不应该被理解为要求以所示出的特定顺序或按次序执行这样的操作,或者要执行所有示出的操作以实现期望的结果。权利要求中列举的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描述的过程不一定要求所示出的特定顺序或次序,以实现期望的结果。在某些情况下,多任务和并行处理可以是有利的。而且,在上述方面中的各种系统组件的分离不应当被理解为在所有方面都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。其他变型也在以下权利要求的范围内。
Claims (18)
1.一种设备,包括:
NAND闪存,所述NAND闪存包括存储引导代码和私钥的只读部分;以及
耦合到所述NAND闪存的片上系统SoC,所述SoC包括:
存储一个或多个指令的只读存储器ROM;以及
处理器,所述处理器被配置为:
在启动时执行存储在所述ROM中的所述一个或多个指令,以向所述NAND闪存请求所述引导代码和所述私钥;以及
加载和执行所述引导代码,以在引导过程期间使用所述私钥对后续代码执行信任链验证过程,其中所述信任链验证过程包括基于来自所述NAND闪存的所述私钥来验证所述SoC中所存储的公钥。
2.根据权利要求1所述的设备,进一步包括被配置为与远程设备耦合的网络接口电路,并且其中所述处理器进一步被配置为:当所述引导过程完成时,通过所述网络接口电路从所述远程设备传送和接收数据。
3.根据权利要求1所述的设备,进一步包括电路板,所述电路板包括通过多个引脚将所述NAND闪存与所述SoC耦合的线路,其中所述引脚中的一个是锁定引脚,所述锁定引脚被配置为提供锁定信号以锁定所述NAND闪存中的一个或多个块。
4.根据权利要求1所述的设备,进一步包括受信平台模块TPM,所述受信平台模块TPM耦合到所述SoC并且被配置为当所述处理器请求时提供所述引导过程的回退保护和远程鉴证。
5.根据权利要求1所述的设备,其中所述SoC包括掩模只读存储器ROM。
6.根据权利要求1所述的设备,其中所述NAND闪存包括包含多个块的读写部分,每一个块存储签名,所述签名要在所述信任链验证过程中使用所述私钥进行验证。
7.根据权利要求1所述的设备,其中所述NAND闪存包括读写部分,所述读写部分存储要在所述引导过程期间在所述信任链验证过程进行时加载和执行的代码。
8.一种用于引导电子设备的方法,包括:
执行存储在片上系统SoC的只读存储器ROM中的命令,以请求存储在NAND闪存的只读部分中的引导代码和私钥;
加载和执行所述引导代码,以在引导过程期间使用所述私钥对后续代码执行信任链验证过程,其中所述后续代码被存储在所述NAND闪存的读写部分中,并且所述信任链验证过程包括将存储在所述SoC的所述ROM中的公钥与所述私钥匹配;
当所述信任链验证过程返回无效签名时停止所述引导过程;以及
当在所述引导过程期间所述信任链验证过程成功完成时加载和执行应用。
9.根据权利要求8所述的方法,进一步包括:发出块锁定命令,以保护在所述NAND闪存的所述只读部分中的块。
10.根据权利要求9所述的方法,其中发出块锁定命令包括:通过所述SoC中的锁定引脚向所述NAND闪存提供块锁定信号。
11.根据权利要求8所述的方法,其中所述NAND闪存的所述读写部分包括:
读写固件块中的固件签名;
内核块中的内核签名;以及
根文件系统块中的根文件系统签名,并且其中执行信任链序列包括:
使用所述私钥验证所述固件签名;
当所述固件签名有效时,在所述读写固件中读取文件和执行命令;
使用所述私钥验证所述内核签名;
当所述内核签名有效时,在所述内核中读取文件和执行命令;
使用所述私钥验证所述根文件系统签名;以及
当所述根文件系统签名有效时,在所述根文件系统中读取文件和执行命令。
12.根据权利要求8所述的方法,其中加载和执行所述应用包括:在所述NAND闪存的所述读写部分的有状态分区中读取文件和执行命令,所述有状态分区包括要由所述电子设备执行的所述应用的用户设置。
13.根据权利要求8所述的方法,其中加载和执行所述应用包括:开始基于web的应用,以及使用耦合到所述电子设备中的所述SoC的网络接口电路NIC与服务器进行通信。
14.一种存储命令的非暂时性计算机可读介质,所述命令当由在耦合到NAND闪存的片上系统SoC中的处理器执行时,使所述SoC执行用于引导电子设备的方法,所述方法包括:
执行存储在所述SoC的只读存储器ROM中的命令,以请求存储在NAND闪存的只读部分中的引导代码和私钥;
加载和执行所述引导代码,以在引导过程期间使用所述私钥对后续代码执行信任链验证过程,其中所述后续代码被存储在所述NAND闪存的读写部分中,其中所述信任链验证过程进一步包括将存储在所述SoC的所述ROM中的公钥与所述私钥匹配;以及
当所述信任链验证过程返回无效签名时停止所述引导过程。
15.根据权利要求14所述的非暂时性计算机可读介质,其中所述命令进一步使所述SoC发出块锁定命令,以保护在所述NAND闪存的所述只读部分中的块。
16.根据权利要求15所述的非暂时性计算机可读介质,其中发出块锁定命令包括:通过所述SoC中的锁定引脚向所述NAND闪存提供块锁定信号。
17.根据权利要求14所述的非暂时性计算机可读介质,其中使所述SoC执行加载和执行应用的所述命令包括用于在所述NAND闪存的所述读写部分的有状态分区中读取文件和执行命令的命令,所述有状态分区包括要由所述电子设备执行的所述应用的用户设置。
18.根据权利要求14所述的非暂时性计算机可读介质,其中使所述SoC执行加载和执行应用的所述命令包括用于开始基于web的应用以及使用耦合到所述电子设备中的所述SoC的网络接口电路NIC与服务器进行通信的命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/874,320 | 2015-10-02 | ||
US14/874,320 US10025600B2 (en) | 2015-10-02 | 2015-10-02 | NAND-based verified boot |
PCT/US2016/052711 WO2017058577A1 (en) | 2015-10-02 | 2016-09-20 | Nand-based verified boot |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107683479A CN107683479A (zh) | 2018-02-09 |
CN107683479B true CN107683479B (zh) | 2020-11-24 |
Family
ID=57047339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680036170.2A Active CN107683479B (zh) | 2015-10-02 | 2016-09-20 | 基于nand的验证引导 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10025600B2 (zh) |
EP (1) | EP3356986B1 (zh) |
CN (1) | CN107683479B (zh) |
WO (1) | WO2017058577A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3478541B1 (de) * | 2016-07-04 | 2022-09-28 | SEW-EURODRIVE GmbH & Co. KG | Sicherheitseinrichtung und verfahren zum betreiben eines systems |
CN106656502B (zh) * | 2016-09-26 | 2020-09-01 | 上海兆芯集成电路有限公司 | 计算机系统及安全执行的方法 |
EP3542298B1 (en) | 2017-01-12 | 2022-08-03 | Google LLC | Verified boot and key rotation |
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 |
US11086997B1 (en) | 2018-02-26 | 2021-08-10 | United States Of America As Represented By The Secretary Of The Air Force | Active attestation of embedded systems |
EP3637253B1 (en) | 2018-08-10 | 2021-09-29 | Shenzhen Goodix Technology Co., Ltd. | Soc chip and bus access control method |
US10740084B2 (en) * | 2018-08-16 | 2020-08-11 | Intel Corporation | Soc-assisted resilient boot |
US11151255B2 (en) * | 2018-10-26 | 2021-10-19 | Dell Products L.P. | Method to securely allow a customer to install and boot their own firmware, without compromising secure boot |
KR102126931B1 (ko) * | 2018-11-07 | 2020-06-25 | 시큐리티플랫폼 주식회사 | 시큐어 부팅 장치 및 방법 |
US11829478B2 (en) * | 2019-01-08 | 2023-11-28 | Oracle International Corporation | Full server recovery architecture for cloud bare metal instances |
US10963592B2 (en) | 2019-02-05 | 2021-03-30 | Western Digital Technologies, Inc. | Method to unlock a secure digital memory device locked in a secure digital operational mode |
US11232210B2 (en) | 2019-03-26 | 2022-01-25 | Western Digital Technologies, Inc. | Secure firmware booting |
CN110489169B (zh) * | 2019-08-06 | 2021-10-19 | 晶晨半导体(上海)股份有限公司 | 一种片上系统的存储器快速启动方法 |
US10997297B1 (en) | 2019-12-06 | 2021-05-04 | Western Digital Technologies, Inc. | Validating firmware for data storage devices |
KR20210097379A (ko) * | 2020-01-30 | 2021-08-09 | 삼성전자주식회사 | 보안 장치, 전자 장치, 보안 부트 관리 시스템, 부트 이미지 생성 방법 및 부트 체인 실행 방법 |
US11934680B2 (en) * | 2020-02-06 | 2024-03-19 | Arris Enterprises Llc | Systems and methods for booting from NAND flash using squashfs to maximize memory |
US11734018B2 (en) * | 2020-07-17 | 2023-08-22 | Western Digital Technologies, Inc. | Parallel boot execution of memory devices |
JP2022044114A (ja) * | 2020-09-07 | 2022-03-17 | キオクシア株式会社 | 半導体集積回路およびその試験方法 |
US11782726B1 (en) * | 2020-09-29 | 2023-10-10 | Amazon Technologies, Inc. | Serial bootstrap |
EP3989478B1 (en) * | 2020-10-22 | 2023-10-18 | Moxa Inc. | Computing system and device for handling a chain of trust |
CN113127015B (zh) * | 2021-04-25 | 2024-06-18 | 联想(北京)有限公司 | 一种安装方法、装置以及电子设备 |
CN113987547A (zh) * | 2021-11-05 | 2022-01-28 | 锐凌无线通讯科技(深圳)有限公司 | 数据校验方法、装置、电子设备和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869936A (zh) * | 2005-05-25 | 2006-11-29 | 三星电子株式会社 | 电子设备及其引导方法 |
CN103412778A (zh) * | 2013-08-12 | 2013-11-27 | 上海盈方微电子股份有限公司 | 一种片上系统NANDFlash程序引导方法与装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7610433B2 (en) * | 2004-02-05 | 2009-10-27 | Research In Motion Limited | Memory controller interface |
CN100447736C (zh) * | 2004-05-08 | 2008-12-31 | 英特尔公司 | 包括固件接口运行时环境保护字段的设备和方法 |
US20060026417A1 (en) * | 2004-07-30 | 2006-02-02 | Information Assurance Systems L.L.C. | High-assurance secure boot content protection |
US20060136705A1 (en) * | 2004-12-21 | 2006-06-22 | Motorola, Inc. | Multiple stage software verification |
US8291226B2 (en) | 2006-02-10 | 2012-10-16 | Qualcomm Incorporated | Method and apparatus for securely booting from an external storage device |
US7447893B2 (en) * | 2006-03-15 | 2008-11-04 | Inventec Corporation | Method and system for updating boot block BIOS program |
US20080294838A1 (en) | 2007-05-25 | 2008-11-27 | Agere Systems Inc. | Universal boot loader using programmable on-chip non-volatile memory |
US20090204964A1 (en) | 2007-10-12 | 2009-08-13 | Foley Peter F | Distributed trusted virtualization platform |
JP5552541B2 (ja) * | 2009-12-04 | 2014-07-16 | クリプトグラフィ リサーチ, インコーポレイテッド | 検証可能な耐漏洩性暗号化および復号化 |
US8266369B2 (en) * | 2009-12-18 | 2012-09-11 | Nxp B.V. | Flash memory interface |
US10746899B2 (en) * | 2010-03-12 | 2020-08-18 | Mark C. Robinson | 3D-well log invention |
US20120165640A1 (en) * | 2010-12-23 | 2012-06-28 | Roche Diagnostics Operations, Inc. | Structured blood glucose testing performed on handheld diabetes management devices |
CN102905479B (zh) * | 2011-07-25 | 2017-06-06 | 富泰华工业(深圳)有限公司 | 可折叠的便携式电子装置 |
US8732527B2 (en) * | 2011-08-16 | 2014-05-20 | Google Inc. | Secure recovery apparatus and method |
US9396335B2 (en) * | 2012-08-28 | 2016-07-19 | Dell Products, Lp | Arbitrary code execution and restricted protected storage access to trusted code |
KR102139327B1 (ko) | 2012-11-15 | 2020-07-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법 |
KR20140073384A (ko) | 2012-12-06 | 2014-06-16 | 삼성전자주식회사 | 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법 |
FR3002671B1 (fr) * | 2013-02-27 | 2016-07-29 | Inside Secure | Procede de mise a jour du systeme d'exploitation d'un microcircuit securise |
DE102013227184A1 (de) * | 2013-12-27 | 2015-07-02 | Robert Bosch Gmbh | Verfahren zur Absicherung eines Systems-on-a-Chip |
US11228427B2 (en) * | 2014-02-11 | 2022-01-18 | Ericsson Ab | System and method for securing content keys delivered in manifest files |
US10013565B2 (en) * | 2014-08-18 | 2018-07-03 | Dell Products, Lp | System and method for secure transport of data from an operating system to a pre-operating system environment |
US9621551B2 (en) * | 2014-09-15 | 2017-04-11 | Dell Products L.P. | Systems and methods for providing secure pre-boot and root authentication to an information handling system |
US9584317B2 (en) * | 2014-10-13 | 2017-02-28 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
CN105765897B (zh) * | 2014-11-06 | 2019-06-28 | 华为技术有限公司 | 一种安全信息配制方法、安全验证方法以及相关芯片 |
US9569601B2 (en) * | 2015-05-19 | 2017-02-14 | Anvaya Solutions, Inc. | System and method for authenticating and enabling functioning of a manufactured electronic device |
-
2015
- 2015-10-02 US US14/874,320 patent/US10025600B2/en active Active
-
2016
- 2016-09-20 CN CN201680036170.2A patent/CN107683479B/zh active Active
- 2016-09-20 EP EP16775421.7A patent/EP3356986B1/en active Active
- 2016-09-20 WO PCT/US2016/052711 patent/WO2017058577A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869936A (zh) * | 2005-05-25 | 2006-11-29 | 三星电子株式会社 | 电子设备及其引导方法 |
CN103412778A (zh) * | 2013-08-12 | 2013-11-27 | 上海盈方微电子股份有限公司 | 一种片上系统NANDFlash程序引导方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3356986A1 (en) | 2018-08-08 |
US10025600B2 (en) | 2018-07-17 |
WO2017058577A1 (en) | 2017-04-06 |
US20170097830A1 (en) | 2017-04-06 |
EP3356986B1 (en) | 2023-07-05 |
CN107683479A (zh) | 2018-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107683479B (zh) | 基于nand的验证引导 | |
US11080405B2 (en) | Securing operating system configuration using hardware | |
CN109542518B (zh) | 芯片和启动芯片的方法 | |
JP6318425B2 (ja) | リードオンリメモリのブートコードパッチ | |
US9965270B2 (en) | Updating computer firmware | |
US10860305B1 (en) | Secure firmware deployment | |
KR101280048B1 (ko) | 운영체계들과 다른 소프트웨어의 인스톨을 제한하는 해킹방지 방법 | |
US20170372076A1 (en) | Technologies for provisioning and managing secure launch enclave with platform firmware | |
US20120054734A1 (en) | Device software upgrade using a dynamically sized partition | |
US10592661B2 (en) | Package processing | |
US10817200B2 (en) | Memory interface for a secure NOR flash memory | |
US8386763B1 (en) | System and method for locking down a capability of a computer system | |
TWI570591B (zh) | 允許測試金鑰用於bios安裝之技術 | |
US10725845B2 (en) | Methods of operating memory system | |
US11301566B2 (en) | Firmware anti-rollback | |
US20240103837A1 (en) | Seamless and secure motherboard replacement system and method | |
US11615190B2 (en) | Secure boot policy for platform security using neutral processors in an information handling system | |
JP2023026017A (ja) | 起動検証プログラム、情報処理装置および起動検証方法 | |
Rosenbaum et al. | A Tour Beyond BIOS into UEFI Secure Boot |
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 |