CN113779587A - 电子电路的安全启动 - Google Patents

电子电路的安全启动 Download PDF

Info

Publication number
CN113779587A
CN113779587A CN202110646320.4A CN202110646320A CN113779587A CN 113779587 A CN113779587 A CN 113779587A CN 202110646320 A CN202110646320 A CN 202110646320A CN 113779587 A CN113779587 A CN 113779587A
Authority
CN
China
Prior art keywords
microcontroller
secure element
portions
content
key
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.)
Pending
Application number
CN202110646320.4A
Other languages
English (en)
Inventor
O·范涅尤文胡伊泽
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.)
Proton World International NV
Original Assignee
Proton World International NV
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 Proton World International NV filed Critical Proton World International NV
Publication of CN113779587A publication Critical patent/CN113779587A/zh
Pending legal-status Critical Current

Links

Images

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开的各实施例涉及电子电路的安全启动。公开了一种检查包括微控制器和嵌入式安全元件的电子设备的非易失性存储器的内容的至少第一部分的真实性的方法。该方法包括:使用被存储在与微控制器相关联的第一安全存储器区域中的指令启动微控制器,以及启动安全元件。安全元件具有多个解密密钥,每个解密密钥与第二可重编程非易失性存储器区域的内容的一部分相关联,该第二可重编程非易失性存储器区域与微控制器相关联。安全元件对第二区域的内容的第一部分执行签名检查。如果签名被验证,则安全元件将与第一部分相关联的解密密钥发送到微控制器。如果签名未被验证,则安全元件对第二存储器区域的内容的另一部分执行签名检查。

Description

电子电路的安全启动
技术领域
本公开总体涉及电子电路,并且更具体地涉及包括处理器和嵌入式安全元件的设备。本公开更具体地适用于控制包括由处理器在设备启动时执行的指令集的代码或固件的全部或部分的真实性。
背景技术
许多电子设备(例如,手机、电子密钥(加密狗)等)都配备有微处理器来处理数据和执行各种应用。在这些应用中,一些应用现在与需要保护经交换的数据的安全性的操作(例如,支付、访问控制操作等)相关联。
大型设备(例如,计算机、视频解码盒(机顶盒)等)包括可信平台模块(TPM),这些可信平台模块使得能够保护指令存储器的内容,并且具体地能够检查待执行代码或待执行程序尚未被破坏。这样的模块缺乏不太精密的设备,诸如例如,手机、电子密钥以及经连接的对象(经连接的手表、访问加密狗等)。
然而,即使电子设备没有包括安全平台模块,它们也越来越多地配备有嵌入式安全元件,这些安全元件实际上是代表微电路卡(智能卡、SIM卡等)的安全功能的集成电路。例如,这样的安全元件可能包含微电路卡仿真应用,这些微电路卡仿真应用为支付、访问控制等操作提供安全认证服务。
发明内容
实施例有助于保护电子设备的启动,以控制其所包含的代码或数据是真实的还是非损坏的。
实施例有助于电子设备的启动,该电子设备能够实现多个操作系统,以控制和/或管理哪个操作系统已经启动。
实施例有助于保护电子设备的启动,该电子设备能够实现多个操作系统,以控制与它所实现的操作系统相关联的代码或数据是真实还是非损坏的。
实施例提供对与电子设备中的微处理器相关联的嵌入式安全元件的保护。
实施例提供了一种检查电子设备的非易失性存储器的内容的至少第一部分的真实性的方法,该电子设备包括微控制器和嵌入式安全元件,该方法包括以下步骤:
启动微控制器,该微控制器具有被存储在第一安全存储器区域中的指令,该第一安全存储器区域与微控制器相关联;
启动安全元件,该安全元件包括多个解密密钥,每个解密密钥与第二可重编程非易失性存储器区域的内容相关联,该第二可重编非易失性存储器区域与微控制器相关联;
利用安全元件对第二区域的内容的第一部分执行签名检查;
如果签名被验证,则安全元件将与所述第一部分相关联的解密密钥发送到微控制器;以及
如果签名未被验证,则安全元件对所述第二存储器区域的内容的另一部分执行签名检查。
根据实施例,第二非易失性存储器区域的内容的每个部分包括使得微控制器能够实现不同操作系统的数据和指令。
根据实施例,微控制器能够实现至少三个操作系统。
根据实施例,如果签名未被验证,则安全元件将数据发送到微控制器。
根据实施例,所述数据包括解密密钥,该解密密钥不能解密所述第二非易失性存储器区域的内容的任何部分。
根据实施例,所述数据包括使得微控制器能够实现新操作系统(诸如先前没有被存储在微控制器的存储器中的操作系统)的数据和指令。
根据实施例,所述新操作系统是使得能够进行以下操作的操作系统:
重启微控制器;
发起对微控制器的诊断;
更新微控制器能够实现的一个或多个操作系统;或
重置微控制器。
根据实施例,微控制器生成第二密钥,将该第二密钥传输到安全元件,该安全元件使用该第二密钥来加密第一密钥到微控制器的传输。
根据实施例,第二密钥的传输使用公共密钥非对称算法。
根据实施例,非对称加密密钥对于每个微控制器/安全元件对都是唯一的。
根据实施例,第一密钥不被存储在微控制器的非易失性存储器中。
根据实施例,在第二区域的内容的至少一部分的真实更新的情况下,与被存储在安全元件中的所述部分相关联的签名被相应地修改。
根据实施例,第一密钥由安全元件生成。
根据实施例,如果签名未被验证,则安全元件选择它所检查的所述第二存储器区域的内容的另一部分。
根据实施例,安全元件可以基于在第二存储器区域的内容的一部分的先前实现期间接收到的指令,来选择所述第二存储器区域的内容的另一部分。
另一实施例提供了一种电子设备,包括:
微控制器;以及
嵌入式安全元件,
微控制器和安全元件均能够实现本文中所公开的一种或多种方法。
根据实施例,一个或多个中间电路插置在微控制器与安全元件之间。
在实施例中,一种方法包括:启动电子设备的微控制器,该微控制器具有被存储在第一安全存储器区域中的指令,该第一安全存储器区域与微控制器相关联;启动电子设备的安全元件,该安全元件具有多个解密密钥,每个解密密钥都与第二可重编程非易失性存储器区域的内容的多个部分中的一部分相关联,该第二可重编程非易失性存储器区域与微控制器相关联;利用安全元件对第二区域的内容的多个部分中的第一部分执行签名检查;响应于签名检查验证第二区域的内容的第一部分,由安全元件向微控制器发送与第一部分相关联的解密密钥;并且响应于签名检查未验证第二区域的内容的第一部分,由安全元件执行第二存储器区域的内容的多个部分中的另一部分的签名检查。在实施例中,第二存储器区域的内容的多个部分中的每个部分存储数据和指令,以实现多个操作系统中的相应操作系统。在实施例中,第二存储器区域的多个部分包括三个或更多个部分。在实施例中,该方法包括:由安全元件通过向微控制器发送数据来对多个部分中的每个部分的验证失败做出响应。在实施例中,数据包括伪解密密钥。在实施例中,数据包括数据和指令,以使微控制器实现除多个操作系统中的一个操作系统以外的操作系统的。在实施例中,除多个操作系统中的一个操作系统以外的操作系统是用于以下操作的操作系统:重启微控制器;发起对微控制器的诊断;更新多个操作系统中的一个或多个操作系统;重置微控制器;或前述的各种组合。在实施例中,微控制器生成第二密钥并且将该第二密钥传输到安全元件,该安全元件使用该第二密钥来加密第一密钥到微控制器的传输。在实施例中,第二密钥的传输使用公共密钥非对称算法。在实施例中,非对称密钥对于每个微控制器/安全元件对都是唯一的。在实施例中,第一密钥不被存储在微控制器的非易失性存储器中。在实施例中,该方法包括:响应于第二区域的内容的一部分的真实更新,修改与被存储在安全元件中的部分相关联的签名。在实施例中,第一密钥由安全元件生成。在实施例中,该方法包括,响应于签名检查未验证第二区域的内容的第一部分,由安全元件选择第二存储器区域的内容的多个部分中的另一部分来检查。在实施例中,安全元件基于在第二存储器区域的内容的一部分的先前实现期间接收到的指令,来选择第二存储器区域的内容的另一部分。
在实施例中,一种电子设备包括:微控制器,与第一安全存储器区域和第二可重编程非易失性存储器区域相关联,第二可重编程存储器区域具有多个部分;以及嵌入式安全元件,被耦合到微控制器,该嵌入式安全元件具有多个解密密钥,每个解密密钥与第二可重编程存储器区域的多个部分的相应部分相关联,其中嵌入式安全元件在操作中对第二区域的内容的多个部分中的第一部分执行签名检查;响应于签名检查验证第二区域的内容的第一部分,将与第一部分相关联的解密密钥发送到微控制器;并且响应于签名检查未验证第二区域的内容的第一部分,对第二存储器区域的内容的多个部分中的另一部分执行签名检查。在实施例中,第二非易失性存储器区域的多个内容部分中的每个部分存储数据和指令,以在微控制器上实现多个操作系统中的相应操作系统。在实施例中,安全元件在操作中通过向微控制器发送数据来对多个部分中的每个部分的验证失败进行响应。在实施例中,数据包括数据和指令,以使微控制器实现除多个操作系统中的一个操作系统以外的操作系统。在实施例中,除多个操作系统中的一个操作系统以外的操作系统在由微控制器执行时:重启微控制器;发起对微控制器的诊断;更新多个操作系统中的一个或多个操作系统;重置微控制器;或前述的各种组合。在实施例中,微控制器在操作中生成第二密钥并且将第二密钥传输到安全元件,并且该安全元件在操作中使用该第二密钥来加密第一密钥到微控制器的传输。在实施例中,第二密钥的传输使用公共密钥非对称算法。在实施例中,电子设备包括中间电路,该中间电路被耦合在微控制器与安全元件之间。
在实施例中,一种系统包括:存储器;微控制器,被耦合到存储器,该微控制器具有相关联的第一安全存储器区域和相关联的第二可重编程非易失性存储器区域,第二可重编程存储器区域具有多个部分;以及嵌入式安全元件,被耦合到微控制器,该嵌入式安全元件具有多个解密密钥,每个解密密钥与第二可重编程存储器区域的多个部分的相应部分相关联,其中嵌入式安全元件在操作中对第二区域的内容的多个部分中的第一部分执行签名检查;响应于签名检查验证第二区域的内容的第一部分,将与第一部分相关联的解密密钥发送到微控制器;并且响应于签名检查未验证第二区域的内容的第一部分,对第二存储器区域的内容的多个部分中的另一部分执行签名检查。在实施例中,在操作中,第二非易失性存储器区域的内容的多个部分中的每个部分存储数据和指令,以在微控制器上实现多个操作系统中的相应操作系统。在实施例中,安全元件在操作中通过以下来对多个部分中的每个部分的验证失败进行响应:发送数据和指令以使微控制器实现除多个操作系统中的一个操作系统以外的操作系统。在实施例中,第一安全存储器区域被集成到微控制器中,并且第二可重编程存储器区域被集成到存储器中。
在实施例中,一种非暂态计算机可读介质,具有内容,这些内容使电子设备执行方法,该方法包括:启动电子设备的微控制器;启动电子设备的安全元件,该安全元件具有多个解密密钥,每个解密密钥与可重编程非易失性存储器区域的内容的多个部分中的一部分相关联,该可重编程非易失性存储器区域与微控制器相关联;利用安全元件对可重新编程非易失性存储器区域的内容的多个部分中的第一部分执行签名检查;响应于签名检查验证内容的第一部分,由安全元件向微控制器发送与第一部分相关联的解密密钥;以及响应于签名检查未验证内容的第一部分,由安全元件执行内容的多个部分的另一部分的签名检查。在实施例中,内容的多个部分中的每个部分存储用于实现多个操作系统中的相应操作系统的数据和指令。在实施例中,该方法包括:由安全元件通过向微控制器发送数据来响应多个部分中的每个部分的验证失败。在实施例中,数据包括数据和指令,以使微控制器实现不同于多个操作系统中的一个操作系统的操作系统。在实施例中,内容包括被存储在与微控制器相关联的安全存储器区域中的指令。
附图说明
参考附图,在以下通过说明而非限制给出的具体实施例的描述中对前述示例特征和优点以及其他方面进行详细描述,其中
图1以框图的形式非常示意性地示出了配备有微控制器和安全元件的电子设备的实施例;
图2以框图的形式非常示意性地示出了图1的电子设备的微控制器的启动顺序的实施例;以及
图3以流程图的形式示出了图1的电子设备的微控制器的启动顺序的另一实施例。
具体实施方式
除非上下文另有说明,否则相同的特征在各个图中由相同的附图标记指定。特别地,在各个实施例中共同的结构特征和/或功能特征可以具有相同的附图标记并且可以具有相似或相同的结构特性、尺寸特性和材料特性。
为了清楚起见,仅对用于理解本文中所描述的实施例的步骤和元件进行详细说明和描述。
除非另有说明,否则当提及连接在一起的两个元件时,这意味着除了导体之外没有任何中间元件的直接连接,当提及耦合在一起的两个元件时,这意味着这两个元件可以连接或者它们可以经由一个或多个其他元件耦合。
在以下公开中,除非另有说明,否则当提及绝对位置限定词(诸如术语“前”、“后”、“顶”、“底”、“左”、“右”等)或相对位置限定词(诸如术语“上方”、“下方”、“较高”、“较低”等)或方位限定词(诸如“水平”、“垂直”等)时,参考图中所示的方位。
除非另有说明,否则表述“左右”、“近似”、“基本上”和“大约”意味着在10%以内或在5%以内。
图1以框图的形式非常示意性地示出了将被描述的示例实施例可能所应用的类型的电子设备1的示例。
设备1(例如,手机、电子密钥等)包括微控制器2(CPU-中央处理单元或处理核),该微控制器2负责执行在设备中实现的程序和应用中的全部或部分程序和应用。微控制器2经由一个或多个地址总线、数据总线和控制总线12与设备1的不同电子电路和外围设备(未示出)(例如,键盘等的显示控制电路)以及各种有线输入-输出接口或无线输入-输出接口14(I/O)(例如,蓝牙)通信。微控制器2通常集成易失性存储器和非易失性存储器,并且还处理设备1的类似存储器16(MEM(VM/NVM))的内容。微控制器2能够实现多个操作系统或低级固件。作为示例,第一操作系统可以是主操作系统,第二操作系统可以是更新操作系统,第三操作系统可以是数据恢复操作系统。根据另一示例,微控制器2能够实现多个主操作系统,诸如例如,电话的主操作系统和交通卡或银行卡的操作系统。微控制器2以及设备1的各种电路由功率单元18(PU)供电。例如,单元18是可能与电压调节器相关联的电池。
在本公开的目标应用中,设备1包括嵌入式安全元件3(例如,eSE(嵌入式安全元件)或eUICC(嵌入式通用集成电路卡)),该嵌入式安全元件3包括安全微处理器或处理核。元件3旨在包含电子设备的安全服务或应用,例如,支付、访问控制和其他应用。
可能情况下,中间元件或电路4(例如,近场通信控制器4(NFC)(也称为非接触式前端(CLF))、蓝牙控制器等)装备设备1。元件4(如图1中的点线所图示的)能够被微控制器2使用,例如,通过双线类型(I2C或SPI)的连接、以及通过元件3、通过单线类型(SWP-单线协议)的连接)。
根据安全元件3所支持的电压电平,所述元件要么由单元18供电,要么如图1所示由元件4供电,该元件4本身由单元18供电。例如,可以考虑微控制器的情况以及由单元18在大约3伏的电压下供电的非接触式通信控制器4的情况以及由控制器4在大约1.8伏(alim)的电压下供电的元件3的情况。NFC控制器4需要电源可能是由于控制器与安全元件3之间的通信协议所使用的电平。根据变型,不存在非接触式通信控制器4,在这种情况下,安全元件3直接连接到微控制器2并且由单元18直接供电。
提供了利用嵌入式安全元件3的存在来管理哪个操作系统由微控制器2执行。
还提供了利用嵌入式安全元件3的存在来检查与微控制器2相关联的存储器中的全部或部分存储器的内容(数据、指令等)的真实性。更具体地,提供了利用安全元件3的存在来检查与每个操作系统相关联的数据和指令的真实性,该操作系统能够在其实现之前由微控制器2实现。
图2是图示了图1的电子设备1的微控制器2的启动顺序的实施例的简化表示。
启动微控制器2在数据安全方面的固有风险如下,在盗版的情况下,可能盗版嵌入式安全元件的数据或指令。这种风险发生在被称为冷开机的开始时,之后发生上电,因为并非所有用于控制对不同电路的访问的机制都已初始化,诸如具体地,空闲区域和保留领域中的存储器配置。在“热”重置设备(也就是说,没有中断微控制器电源)的情况下,问题就不会那么严重,因为这种存储器区域配置机制通常不会受到影响。然而,还可以在重置操作中部分或全部删除存储器的情况下实现所描述的实施例。
在电源中断的情况下启动(设备的电子电路的上电)或复位时,微控制器2通过访问其包含代码的非易失性存储器的设置区域51(BOOT)开始(启动程序)。区域51通常为死存储器区域,也就是说,非易失性和不可重编程(有时称为“不可变”)。根据变型,区域51可以是非易失性存储器或易失性存储器的有限安全写入区域或受限安全写入区域。因此,它在制造时进行设置,不会冒被可能侵权者修改的风险。事实上讲,待保护存储器区域(MEMCPU)52为非易失性存储器区域,在实现操作系统时,该非易失性存储器区域通过该微控制器2操作。这种区域52通常包含可根据应用重新编程的代码(指令)和数据。如果侵权者成功地在这些区域中存储了攻击代码,他/她能够访问安全元件3,然后修改设备1的行为,收集操作系统直接操纵的机密数据和信息以例如将它们供应给操作系统所实现的盗用应用。在其余描述中,认为微控制器2的非易失性存储器的区域52划分为多个部分,每个部分包括与操作系统相关的数据和指令。更具体地,相对于操作系统的数据和指令都使用一个或多个加密密钥加密。每个操作系统都具有与其他操作系统的加密密钥不同的一个或多个自己的加密密钥。
根据实施例,微控制器所执行的启动代码51包含指令,该指令用于启动安全元件3(eSE);以及随后在初始化过程的排序中(如由箭头53所图示的),指令INST,该指令INST用于启动元件3对区域52的部分的检查过程。一旦指令INST已经由微控制器2传达到元件3,微控制器2就设置为保持模式(HOLD),在该保持模式下,该微控制器2等待来自安全元件的响应3。只要该微控制器2没有接收该响应,它就不会继续执行它所包含的代码。根据一个变型,安全元件3可以在其上电时自行启动,例如,与微控制器2同时启动。
元件3所执行的检查CHECK包括:读取区域52的第一部分,该第一部分存储与第一操作系统有关的数据;以及对所述部分执行真实性检查机制。例如,该机制是基于区域52的第一部分中包含的代码和数据的签名计算,用于根据元件3中存储的参考签名检查该签名。在这种情况下,在对区域52的内容进行授权修改的情况下,对元件3中存储的参考签名进行更新以允许后续真实性检查。
换言之,检查CHECK包括:每次操作系统请求被实现时,根据与操作系统有关的代码和数据执行签名计算。换言之,该检查能够检查与操作系统相关的数据是否未损坏。
进一步地,与操作系统相关的所有数据都被加密。更具体地,与操作系统有关的每个数据集通过使用不同于与另一操作系统有关的另一数据集的至少另一加密密钥不同的至少一个相同加密密钥来加密。对应解密密钥都被存储在安全元件3中。
如果元件3验证区域52的部分的内容的真实性,则该元件3向微控制器2做出响应(OK),并且向其发送与刚刚被检查的区域52的数据相关联的加密密钥。然后,微控制器2可以离开其保持模式并且执行与这些数据相关联的操作系统。
然而,如果元件3没有验证(NOK)区域52的第一部分的内容,则它向微控制器发送指示不能实现第一操作系统的指令。然后,元件3请求从区域52的另一部分接收数据和指令以便认证另一操作系统。如果微控制器的所有操作系统都被破坏,则元件3可以向微控制器发回数据或指令,例如,空解密密钥或微控制器默认指令。元件3还可以向微控制器2发送与新操作系统有关的一系列数据和指令。根据示例,新操作系统可以允许重启或重置微控制器2或设备1。根据另一示例,例如,新操作系统可以为诊断操作系统,该诊断操作系统使得能够对微控制器或甚至整个设备1的操作执行测试。根据又一示例,新操作系统可以是用于更新微控制器2的操作系统的操作系统。
图3是更详细地图示了图1的电子设备的微控制器的启动顺序的实施例的简化表示。
根据该实施例,该方法通过微控制器2与安全元件3之间的消息交换来执行。
启动微控制器2(框61,BOOT CPU)导致启动安全元件3(框62,BOOT eSE)。一旦启动,元件3就等待指令(WAIT)。
进一步地,还通过元件3执行对区域52的不同部分或包含待检查代码的非易失性存储器区域(NVM)的内容的检查,例如,通过签名检查。
根据实施例,对被存储在非易失性存储器52中并且在其启动之后形成微控制器2的初始化数据的代码和固定数据进行加密。所使用的加密例如是对称AES型加密。然而,一个或多个密钥不是被存储在微控制器2中,而是被存储在安全元件3中。
一旦启动了微控制器2(框61的结束)并且该微控制器2已经向元件3发出启动指令,该微控制器2就会生成密钥(框63,GEN KeyAESRDM),例如,用于加密代码的AES大小的随机数。
然后,微控制器2将密钥KeyAESRDM传输到安全元件。这种传输可以通过公共密钥机制来执行,该微控制器使用算法的公共密钥加密密钥KeyAESRDM(框64,CIPHERKeyAESRDM(PUBLIC KEY))。在实施例中,微控制器2不在非易失性存储器中存储随机数KeyAESRDM。事实上讲,对于该微控制器2而言,将这个数存储在易失性存储器中就已足够,从而减小了攻击风险。一旦密钥KeyAESRDM传输完毕,微控制器就设置为等待模式(WAIT)。
元件3借助于公共密钥机制(框65,DECIPHER KeyAESRDM)解密KeyAESRDM并且存储该KeyAESRDM(框66,STORE Key AES RDM)。
然后,元件3解密(框67,解密代码(AES Code Key)包含在与待实现操作系统相关的微控制器2的非易失性存储器的区域52的部分中(或与其相关联)的代码。元件3计算并检查(框68,COMPUTE/CHECK SIGNATURE)该代码的签名。
如果签名正确(框69的输出Y),则元件3使用密钥KeyAESRDM加密与刚刚检查的数据相对应的解密密钥AESCodeKey(框70,CIPHER AESCodeKey(KeyAESRDM))并且将其发送到微控制器2。后者使用密钥KeyAESRDM解密密钥AESCodeKey(框71,DECIPHER AESCodeKey(PUBLIC KEY))。如先前所提及的,元件3存储多个解密密钥AESCodeKey,每个解密密钥都与数据中的全部或部分数据相关联,该数据与操作系统有关。
然后,微控制器2使用密钥AESCodeKey来解密包含在区域52的部分中的代码,也就是说,刚刚由安全元件3检查的数据,并且执行它(EXECUTE)。然而,密钥AESCodeKey并没有通过微控制器2被存储在非易失性存储器中。因此,在微控制器2的一侧上,数字KeyAESRDM和密钥AESCodeKey仅被存储在易失性存储元件(RAM、寄存器等)中。
如果签名不正确(框69的输出N,OK?),元件3请求检查区域52的下一部分(框72,OTHER CODE?),也就是说,微控制器2所实现的与另一操作系统有关的数据和指令。因此,与第一操作系统有关的数据和指令没有被解密,因此微控制器2不能使用它们。
如果尚未检查与另一操作系统有关的数据和指令(框72的输出Y),则与该另一操作系统有关的数据发送到元件3(框52)并且检查它们的签名(框67)。
如果与其他操作系统有关的所有数据和指令都已被检查并且被认为已损坏(框72的输出N),则元件3向微控制器发送数据或指令(框73,SEND NULL),例如,空解密密钥或关于微控制器2的默认指令。元件3还可以将与新操作系统有关的一系列数据和指令发送到微控制器2。根据示例,新操作系统可以允许重启或重置微控制器2或设备1。根据另一示例,新操作系统可以例如是诊断操作系统,该诊断操作系统使得能够对微控制器2或甚至整个设备1的操作执行测试。根据又一示例,新操作系统可以是用于更新微控制器2的操作系统的操作系统。
在元件3所发送的数据或指令或可能一系列数据和指令发送到微控制器2之前,它们使用密钥KeyAESRDM加密(框70)。微控制器2解密它们(框71),然后使用它们。
根据一个备选实施例,密钥AESCodeKey在每次改变包含在区域52中的代码的签名时(也就是说,每次代码的全部或部分被修改时)由安全元件3生成。
根据另一变型,在制造(微控制器2和安全元件3的)电路时,微控制器的存储器52的加密密码由安全元件3生成。这意味着代码AESCodeKey从一个设备1变化到另一设备。
在实施例中,非对称密钥(公共密钥和私有密钥对)对于每个微控制器部件2/安全元件3对都是唯一的。
根据另一变型,安全元件3可以选择哪个操作系统要通过微控制器2实现。
根据另一变型,安全元件可以在判定应当实现哪个操作系统之前检查所有操作系统。
根据另一变型,在更新操作系统时,可以修改被存储在与该操作系统相关联的安全元件3中的解密密钥。
根据另一变型,安全元件3可以负责判定应当实现哪个操作系统。例如,它可以在已经确定与第一操作系统有关的数据已损坏之后判定应当启动哪个操作系统。例如,它可以判定启动具有更新所述第一操作系统的功能的另一操作系统。更具体地,安全元件3可以加载能够实现微控制器2的数据的另一操作系统。为了做出这个选择,安全元件可以接收指示其在检查数据之前(例如,在先前实现操作系统中的一个操作系统期间)要遵循的程序的安全指令。作为一个变型,如果安全元件3在直接先前实现另一操作系统期间接收到命令,则它甚至可以在检查与操作系统有关的数据之前启动操作系统。
已经对各种实施例和变型进行了描述。本领域技术人员应当理解,可以组合这些各种实施例和变型的某些特征,并且本领域技术人员应当想到其他变型。
最后,基于上文所给出的功能指示,所描述的实施例和变型的实际方式落入本领域技术人员的能力范围之内。
这样的变更、修改和改进旨在作为本公开的一部分,并且旨在落入本公开的精神和范围之内。因而,前述描述仅作为示例而非旨在限制。
一些实施例可以采用计算机程序产品的形式或包括计算机程序产品。例如,根据一个实施例,提供了一种包括计算机程序的计算机可读介质,该计算机程序适于执行上文所描述的方法或功能的一个或多个方法或功能。介质可以是物理存储介质(诸如例如,只读存储器(ROM)芯片)、或盘(诸如数字多功能盘(DVD-ROM)、光盘(CD-ROM)、硬盘、网络、或要通过适当驱动器或经由适当连接读取的便携式媒体物品),包括在一个或多个条码或被存储在一个或多个此类计算机可读介质上的其他相关代码中编码的并且可由适当阅读器设备读取的媒体物品。
更进一步地,在一些实施例中,方法和/或功能中的一些或所有方法和/或功能可以以其他方式(诸如至少部分以固件和/或硬件)实现或提供,这些其他方式包括但不限于一个或多个专用集成电路(ASIC)、数字信号处理器、离散电路系统、逻辑门、标准集成电路、控制器(例如,通过执行适当指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD))等、以及采用RFID技术的设备、及其各种组合。
上文所描述的各种实施例可以组合以提供其他实施例。如果需要采用各种专利、申请和出版物的概念来提供其他实施例,则可以修改实施例的各方面。
根据上述具体实施方式,可以对实施例做出这些和其他改变。一般而言,在以下权利要求中,所使用的术语不应被解释为将权利要求局限于说明书和权利要求中所公开的特定实施例,而应当被解释为包括所有可能实施例以及这样的权利要求享有权利的全部范围的等同物。因而,权利要求不受本公开的限制。

Claims (32)

1.一种方法,包括:
启动电子设备的微控制器,所述微控制器具有被存储在第一安全存储器区域中的指令,所述第一安全存储器区域与所述微控制器相关联;
启动所述电子设备的安全元件,所述安全元件具有多个解密密钥,每个解密密钥与第二可重编程非易失性存储器区域的内容的多个部分中的一部分相关联,所述第二可重编程非易失性存储器区域与所述微控制器相关联;
利用所述安全元件对所述第二区域的内容的所述多个部分中的第一部分执行签名检查;
响应于所述签名检查验证所述第二区域的所述内容的所述第一部分,由所述安全元件向所述微控制器发送与所述第一部分相关联的所述解密密钥;以及
响应于所述签名检查未验证所述第二区域的所述内容的所述第一部分,由所述安全元件执行所述第二存储器区域的内容的所述多个部分中的另一部分的签名检查。
2.根据权利要求1所述的方法,其中所述第二存储器区域的内容的所述多个部分中的每个部分存储数据和指令,以实现多个操作系统中的相应操作系统。
3.根据权利要求2所述的方法,其中所述第二存储器区域的所述多个部分包括三个或更多个部分。
4.根据权利要求2所述的方法,包括:由所述安全元件通过向所述微控制器发送数据来响应所述多个部分中的每个部分的验证失败。
5.根据权利要求4所述的方法,其中所述数据包括伪解密密钥。
6.根据权利要求4所述的方法,其中所述数据包括数据和指令,以使所述微控制器实现除所述多个操作系统中的一个操作系统以外的操作系统。
7.根据权利要求6所述的方法,其中除所述多个操作系统中的一个操作系统以外的所述操作系统是用于以下操作的操作系统:
重启所述微控制器;
发起对所述微控制器的诊断;
更新所述多个操作系统中的一个或多个操作系统;
重置所述微控制器;或
前述的各种组合。
8.根据权利要求1的方法,其中所述微控制器生成第二密钥,将所述第二密钥传输到所述安全元件,所述安全元件使用所述第二密钥来加密所述第一密钥到所述微控制器的所述传输。
9.根据权利要求8的方法,其中所述第二密钥的所述传输使用公共密钥非对称算法。
10.根据权利要求9的方法,其中非对称加密密钥对于每个微控制器/安全元件对是唯一的。
11.根据权利要求1的方法,其中所述第一密钥不被存储在所述微控制器的所述非易失性存储器中。
12.根据权利要求1的方法,其中响应于所述第二区域的所述内容的一部分的真实更新,与被存储在所述安全元件中的所述部分相关联的所述签名被修改。
13.根据权利要求1的方法,其中所述第一密钥由所述安全元件生成。
14.根据权利要求1所述的方法,其中响应于所述签名检查未验证所述第二区域的所述内容的所述第一部分,所述安全元件选择所述第二存储器区域的内容的所述多个部分中的所述另一部分来检查。
15.根据权利要求14所述的方法,其中所述安全元件基于在所述第二存储器区域的所述内容的一部分的先前实现期间接收到的指令,来选择所述第二存储器区域的所述内容的所述另一部分。
16.一种电子设备,包括:
微控制器,与第一安全存储器区域和第二可重编程非易失性存储器区域相关联,所述第二可重编程存储器区域具有多个部分;以及
嵌入式安全元件,被耦合到所述微控制器,所述嵌入式安全元件具有多个解密密钥,每个解密密钥与所述第二可重编程存储器区域的所述多个部分的相应部分相关联,其中所述嵌入式安全元件在操作中:
对所述第二区域的内容的所述多个部分中的第一部分执行签名检查;
响应于所述签名检查验证所述第二区域的所述内容的所述第一部分,将与所述第一部分相关联的所述解密密钥发送到所述微控制器;以及
响应于所述签名检查未验证所述第二区域的所述内容的所述第一部分,对所述第二存储器区域的内容的所述多个部分中的另一部分执行签名检查。
17.根据权利要求16所述的电子设备,其中,在操作中,所述第二非易失性存储器区域的内容的所述多个部分中的每个部分存储数据和指令,以在所述微控制器上实现多个操作系统中的相应操作系统。
18.根据权利要求17所述的电子设备,其中所述安全元件在操作中通过向所述微控制器发送数据来对所述多个部分中的每个部分的验证失败进行响应。
19.根据权利要求18所述的电子设备,其中所述数据包括数据和指令,以使所述微控制器实现除所述多个操作系统中的一个操作系统以外的操作系统。
20.根据权利要求19所述的电子设备,其中除所述多个操作系统中的一个操作系统以外的所述操作系统在由所述微控制器执行时:
重启所述微控制器;
发起对所述微控制器的诊断;
更新所述多个操作系统中的一个或多个操作系统;
重置所述微控制器;或
前述的各种组合。
21.根据权利要求16所述的电子设备,其中所述微控制器在操作中生成第二密钥并且将所述第二密钥传输到所述安全元件,并且所述安全元件在操作中使用所述第二密钥来加密所述第一密钥到所述微控制器的所述传输。
22.根据权利要求21所述的电子设备,其中所述第二密钥的所述传输使用公共密钥非对称算法。
23.根据权利要求16所述的电子设备,包括中间电路,所述中间电路被耦合在所述微控制器与所述安全元件之间。
24.一种系统,包括:
存储器;
微控制器,被耦合到所述存储器,所述微控制器具有相关联的第一安全存储器区域和相关联的第二可重编程非易失性存储器区域,所述第二可重编程存储器区域具有多个部分;以及
嵌入式安全元件,被耦合到所述微控制器,所述嵌入式安全元件具有多个解密密钥,每个解密密钥与所述第二可重编程存储器区域的所述多个部分的相应部分相关联,其中所述嵌入式安全元件在操作中:
对所述第二区域的内容的所述多个部分中的第一部分执行签名检查;
响应于所述签名检查验证所述第二区域的所述内容的所述第一部分,将与所述第一部分相关联的解密密钥发送到所述微控制器;以及
响应于所述签名检查未验证所述第二区域的所述内容的所述第一部分,对所述第二存储器区域的内容的所述多个部分中的另一部分执行签名检查。
25.根据权利要求24所述的系统,其中,在操作中,所述第二非易失性存储器区域的内容的所述多个部分中的每个部分存储数据和指令,以在所述微控制器上实现多个操作系统中的相应操作系统。
26.根据权利要求25所述的系统,其中所述安全元件在操作中通过以下来对所述多个部分中的每个部分的验证失败进行响应:发送数据和指令以使所述微控制器实现除所述多个操作系统中的一个操作系统以外的操作系统。
27.根据权利要求24所述的系统,其中所述第一安全存储器区域被集成到所述微控制器中,并且所述第二可重编程存储器区域被集成到所述存储器中。
28.一种非暂态计算机可读介质,具有内容,所述内容使电子设备执行方法,所述方法包括:
启动所述电子设备的微控制器;
启动所述电子设备的安全元件,所述安全元件具有多个解密密钥,每个解密密钥与可重编程非易失性存储器区域的内容的多个部分中的一部分相关联,所述可重编程非易失性存储器区域与所述微控制器相关联;
利用所述安全元件,对所述可重新编程非易失性存储器区域的内容的所述多个部分中的第一部分执行签名检查;
响应于所述签名检查验证所述内容的所述第一部分,由所述安全元件向所述微控制器发送与所述第一部分相关联的所述解密密钥;以及
响应于所述签名检查未验证所述内容的所述第一部分,由所述安全元件执行内容的所述多个部分的另一部分的签名检查。
29.根据权利要求28所述的非暂态计算机可读介质,其中内容的所述多个部分中的每个部分存储数据和指令,以实现多个操作系统中的相应操作系统。
30.根据权利要求29所述的非暂态计算机可读介质,其中所述方法包括:由所述安全元件通过向所述微控制器发送数据来对所述多个部分中的每个部分的验证失败进行响应。
31.根据权利要求30所述的非暂态计算机可读介质,其中所述数据包括数据和指令,以使所述微控制器实现除所述多个操作系统中的一个操作系统以外的操作系统。
32.根据权利要求28所述的非暂态计算机可读介质,其中所述内容包括被存储在与所述微控制器相关联的安全存储器区域中的指令。
CN202110646320.4A 2020-06-10 2021-06-10 电子电路的安全启动 Pending CN113779587A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR2006042A FR3111441B1 (fr) 2020-06-10 2020-06-10 Démarrage sécurisé d'un circuit électronique
FR2006042 2020-06-10
US17/343,146 2021-06-09
US17/343,146 US11768968B2 (en) 2020-06-10 2021-06-09 Secure starting of an electronic circuit

Publications (1)

Publication Number Publication Date
CN113779587A true CN113779587A (zh) 2021-12-10

Family

ID=73497831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110646320.4A Pending CN113779587A (zh) 2020-06-10 2021-06-10 电子电路的安全启动

Country Status (4)

Country Link
US (2) US11768968B2 (zh)
EP (1) EP3923169A1 (zh)
CN (1) CN113779587A (zh)
FR (1) FR3111441B1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101965570A (zh) * 2008-02-29 2011-02-02 先进微装置公司 具有安全启动机制的计算机系统
US20160055113A1 (en) * 2013-04-23 2016-02-25 Hewlett-Packard Development Company, L.P. Redundant System Boot Code in a Secondary Non-Volatile Memory
CN105556551A (zh) * 2013-09-30 2016-05-04 苹果公司 使用电子设备的安全元件来进行在线支付
KR20160058375A (ko) * 2014-11-14 2016-05-25 삼성전자주식회사 단말 내장형 보안 요소와의 안전한 통신
CN106650506A (zh) * 2015-11-03 2017-05-10 质子世界国际公司 电子电路的受控启动
CN106650456A (zh) * 2015-11-03 2017-05-10 质子世界国际公司 电子电路的安全启动

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000138917A (ja) 1998-05-29 2000-05-16 Texas Instr Inc <Ti> 安全計算システム及び方法
AUPQ321699A0 (en) 1999-09-30 1999-10-28 Aristocrat Leisure Industries Pty Ltd Gaming security system
JP4226760B2 (ja) 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
GB0020370D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Trusted device
US7000115B2 (en) 2001-06-19 2006-02-14 International Business Machines Corporation Method and apparatus for uniquely and authoritatively identifying tangible objects
NO20015812A (no) 2001-11-28 2003-03-10 Telenor Asa Registrering og aktivering av elektroniske sertifikater
US20030120922A1 (en) 2001-12-06 2003-06-26 Fairchild Semiconductor Corporation Device authentication system and method
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
EP1629624B1 (en) 2003-05-30 2013-03-20 Privaris, Inc. An in-curcuit security system and methods for controlling access to and use of sensitive data
US8332652B2 (en) 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
US8332653B2 (en) 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US7844808B2 (en) 2006-12-18 2010-11-30 Microsoft Corporation Computer compliance enforcement
FR2926149B1 (fr) 2008-01-07 2010-01-29 Bull Sas Dispositif, systemes et procede de demarrage securise d'une installation informatique
US9613215B2 (en) 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
US8103909B2 (en) 2008-09-15 2012-01-24 Juniper Networks, Inc. Automatic hardware-based recovery of a compromised computer
US20120060039A1 (en) 2010-03-05 2012-03-08 Maxlinear, Inc. Code Download and Firewall for Embedded Secure Application
US8635481B1 (en) 2010-04-29 2014-01-21 Amazon Technologies, Inc. Power cut off mode
US8385553B1 (en) 2012-02-28 2013-02-26 Google Inc. Portable secure element
US9100174B2 (en) 2012-08-31 2015-08-04 Freescale Semiconductor, Inc. Secure provisioning in an untrusted environment
US9792439B2 (en) * 2012-09-19 2017-10-17 Nxp B.V. Method and system for securely updating firmware in a computing device
US10084603B2 (en) 2013-06-12 2018-09-25 Lookout, Inc. Method and system for rendering a stolen mobile communications device inoperative
EP2852118B1 (en) 2013-09-23 2018-12-26 Deutsche Telekom AG Method for an enhanced authentication and/or an enhanced identification of a secure element located in a communication device, especially a user equipment
US9912474B2 (en) 2013-09-27 2018-03-06 Intel Corporation Performing telemetry, data gathering, and failure isolation using non-volatile memory
US20150242620A1 (en) * 2014-02-27 2015-08-27 Microsemi SoC Corporation Methods for controlling the use of intellectual property in individual integrated circuit devices
FR3024915B1 (fr) 2014-08-18 2016-09-09 Proton World Int Nv Dispositif et procede pour assurer des services de module de plateforme securisee
US9430658B2 (en) 2014-12-16 2016-08-30 Freescale Semiconductor, Inc. Systems and methods for secure provisioning of production electronic circuits
US10211985B1 (en) 2015-03-30 2019-02-19 Amazon Technologies, Inc. Validating using an offload device security component
US9626512B1 (en) 2015-03-30 2017-04-18 Amazon Technologies, Inc. Validating using an offload device security component
US10243739B1 (en) 2015-03-30 2019-03-26 Amazon Technologies, Inc. Validating using an offload device security component
JP6132952B1 (ja) 2016-04-07 2017-05-24 三菱電機株式会社 車載エンジン制御装置
US10733284B2 (en) 2016-10-06 2020-08-04 Samsung Electronics Co., Ltd. Trusted execution environment secure element communication
US9946899B1 (en) 2016-10-14 2018-04-17 Google Llc Active ASIC intrusion shield
US10963570B2 (en) 2018-12-11 2021-03-30 Verizon Media Inc. Secure boot of remote servers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101965570A (zh) * 2008-02-29 2011-02-02 先进微装置公司 具有安全启动机制的计算机系统
US20160055113A1 (en) * 2013-04-23 2016-02-25 Hewlett-Packard Development Company, L.P. Redundant System Boot Code in a Secondary Non-Volatile Memory
CN105556551A (zh) * 2013-09-30 2016-05-04 苹果公司 使用电子设备的安全元件来进行在线支付
KR20160058375A (ko) * 2014-11-14 2016-05-25 삼성전자주식회사 단말 내장형 보안 요소와의 안전한 통신
CN106650506A (zh) * 2015-11-03 2017-05-10 质子世界国际公司 电子电路的受控启动
CN106650456A (zh) * 2015-11-03 2017-05-10 质子世界国际公司 电子电路的安全启动

Also Published As

Publication number Publication date
FR3111441A1 (fr) 2021-12-17
EP3923169A1 (fr) 2021-12-15
US20230385461A1 (en) 2023-11-30
US11768968B2 (en) 2023-09-26
US20210390214A1 (en) 2021-12-16
FR3111441B1 (fr) 2022-08-05

Similar Documents

Publication Publication Date Title
US11086999B2 (en) Secure starting of an electronic circuit
US11087000B2 (en) Controlled starting of an electronic circuit
TWI524275B (zh) 儲存裝置及操作一儲存裝置之方法
TWI384366B (zh) 用於智慧卡記憶體模組之智慧控制器系統及方法
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
CN103069384A (zh) 用从储存设备加载的操作系统代码安全地引导主机设备的主机设备和方法
US9734091B2 (en) Remote load and update card emulation support
US20110044451A1 (en) Information processing apparatus and falsification verification method
CN101983375A (zh) 将密码模块绑定到平台
CN109656750B (zh) 用于在安全闪存装置上数据恢复的基于puf的引导加载
US8339240B2 (en) Semiconductor element, biometric authentication method, biometric authentication system and mobile terminal
US11481523B2 (en) Secure element
CN111177709A (zh) 一种终端可信组件的执行方法、装置及计算机设备
JP2007173911A (ja) データ処理装置、データ処理プログラム、およびデータ処理システム
CN112020718A (zh) 电子装置的完整性检查
CN113779587A (zh) 电子电路的安全启动
CN108256336B (zh) 操作系统与主板的绑定及识别方法
EP2985724B1 (en) Remote load and update card emulation support
CN110851881A (zh) 终端设备的安全检测方法及装置、电子设备及存储介质
US20230114775A1 (en) Portable Chip Device and Method for Executing a Software Module Update in a Portable Chip Device
CN118246040A (zh) 电子设备的保护
CN118246039A (zh) 电子设备的保护

Legal Events

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