电子电路的受控启动本申请要求于2015年11月3日提交的法国专利申请第15/60511
号的优先权权益。
技术领域
本公开内容总体上涉及电子电路,并且更具体地涉及包括处理
器和嵌入式安全元件的设备。本公开更具体地应用于在设备的启动
时控制处理器中包含的指令中的全部或部分指令的真伪。
背景技术
很多电子设备、例如手机、电子密钥(电子狗)等配备有用于
处理数据和执行各种应用的微处理器。在这样的应用中,一些应用
现在与需要保护所交换的数据的安全的操作(例如支付、访问控制
和其他操作)相关联。
例如计算机、视频解码盒(机顶盒)等的更明显的设备包括可
信平台模块(TPM),TPM使得能够保护指令存储器的内容并且具
体检查要执行的代码或程序尚未被涂改。这样的模块不存在于不复
杂的设备,诸如手机、电子密钥和所连接的对象(所连接的手表、
访问电子狗等)。
电子设备即使不包括安全平台模块,通常仍然越来越多地配备
有嵌入式安全元件,嵌入式安全元件实际上为表示微电路卡(智能
卡、SIM等)的安全功能的集成电路。例如,这样的安全元件包含
提供用于支付、访问控制和其他操作的安全认证服务的微电路卡仿
真应用。
发明内容
希望能够保护电子设备的启动以控制使得其所包含的代码或数
据是真实的或者未被改写。
实施例提供一种克服在电子设备中启动的微处理器的已知技术
的缺点中的全部或部分缺点的解决方案。
实施例提供保护与电子设备中的微处理器相关联的嵌入式安全
元件。
因此,实施例提供一种检查包括微控制器和嵌入式安全元件的
电子设备的非易失性存储器的内容的真伪的方法,方法包括:
使用与微控制器相关联的第一非可再编程存储区域中存储的指
令启动微控制器;
启动安全元件;
使用安全元件对与微控制器相关联的第二可再编程非易失性存
储区域的内容执行签名验证;以及
如果签名没有被验证,则中断微控制器的电源。
根据实施例,如果签名被验证,则安全元件向微控制器发送第
二区域的内容的验证消息。
根据实施例,微控制器等待来自安全元件的响应以执行第二区
域中包含的指令。
根据实施例,在第二区域的内容发生认证更新的情况下,相应
地修改安全元件中存储的签名。
根据实施例,在安全元件的启动时,安全元件监控源自微控制
器的请求的到达,以便在这一请求在给定时间之后没有到达的情况
下引起微控制器的电源的中断。。
实施例提供一种电子设备,其包括:
微控制器;
嵌入式安全元件;以及
用于基于嵌入式安全元件的请求中断微控制器的电源的开关。
根据实施例,在微控制器与安全元件之间插入有中间电路。
根据实施例,微控制器和安全元件能够实现以上方法。
在对具体实施例的以下非限制性描述中结合附图详细讨论以上
和其他特征和优点。
附图说明
参考附图来描述非限制性和非排他性实施例,其中相似的附图
标记遍及各个视图指代相似的部分,除非另由所指。下文中参考附
图来描述一个或多个实施例,在附图中:
图1是配备有微控制器和嵌入式安全元件的电子设备的实施例
的框图形式的非常简化的表示;
图2是示出图1的电子设备的微控制器的启动序列的实施例的
简化表示;以及
图3是示出图1的电子设备的微控制器的启动序列的另一实施
例的简化表示。
具体实施方式
在不同的附图中,相同的元件分配有相同的附图标记。
为了清楚,仅示出并且将详述有助于理解所描述的实施例的这
些步骤和元素。特别地,没有详述所执行的处理或者执行这些处理
的电路的应用,所描述的实施例兼容这样的设备的一般应用。另外,
也没有详述电子设备的不同元件之间的信号交换协议,所描述的实
施例在此再次兼容当前使用的协议。在以下描述中,在提及术语“关
于”、“接近”或“在……的数量级”时,表示在10%的范围内,
优选地在5%的范围内。
图1以框图的形式非常示意性地示出将要描述的实施例所适用
的类型的电子设备1的示例。
例如电话、电子密钥等的设备1包括负责控制在设备中执行的
程序和应用中的全部或部分程序和应用的微控制器2(CPU——中央
处理单元)。微控制器2经由一个或多个地址、数据和控制总线12
与设备1的不同的电子电路和外围设备(未示出)(例如显示器控
制电路、键盘等)以及与各种有线或无线输入输出接口14(I/O)(例
如蓝牙)通信。微控制器2通常集成易失性和非易失性存储器,并
且还处理设备1的类似存储器16(MEM(VM/NVM))的内容。微
控制器2和设备1的各种电路由供电单元18(PU)来供电。例如,
单元18是有可能与电压调节器相关联的电池。
在本公开所涉及的应用中,设备1还包括嵌入式安全元件3(例
如eSE——嵌入式安全元件或eUICC——嵌入式通用集成电路卡),
安全元件3包括安全微处理器。元件3意图包含电子设备的安全服
务或应用,例如支付、访问控制和其他应用。
有可能的是,例如近场通信控制器4(NFC)(也称为非接触式
前端(CLF))、蓝牙控制器等的中间元件或电路4配备设备1。元
件4(图1中用虚线图示)能够由微控制器2例如通过双股线类型的
连接来使用(I2C或SPI),并且由元件3通过单线类型的连接来使
用(SWP——单线协议)。
根据安全元件3承受的电压电平,上述元件由单元18来供电,
或者如图1所示,由本身被单元18供电的元件4来供电。例如,可
以考虑由单元18在3伏特数量级的电压下对微控制器2和非接触式
通信控制器4供电的情况以及由控制器4在1.8伏特(PWR)数量
级的电压下对元件3供电的情况。NFC控制器4对电源的需要可以
是由于通信协议在控制器与安全元件3之间所使用的电平。
本文提出利用嵌入式安全元件3的存在检查与微控制器2相关
联的存储器中的全部或部分存储器的内容(数据、指令等)的真伪。
图2是示出图1的电子设备1的微控制器2的启动序列的实施
例的简化表示。
微控制器2的启动在数据安全方面的固有风险在于,在微控制
器代码(程序)被盗取的情况下,嵌入式安全元件的数据冒有被盗
取的风险。这一风险发生在启动(被称为冷启动)时,在这之前为
上电,因为并非所有的用于控制对不同电路的访问的机制已经被初
始化,并且特别是空闲区域和保留区域中的存储器的配置。问题在
设备“热”复位的情况下不太严重,也就是说,没有微控制器电源
的中断,因为这样的存储器区域配置机制通常未被触及。然而,所
描述的实施例也可以在复位时部分或整体删除存储器的情况下实
现。
在具有电源中断的情况下启动(设备的电子电路的上电)或复
位时,微控制器2通过访问其包含代码(启动程序)的非易失性存
储器的设定区域51来启动(BOOT)。区域51通常是只读存储区域,
也就是非易失性和非可再编程(有时称为“不可变”)。其因此在
制造时设定并且没有冒着被可能的盗版者修改的风险。实际上,应
当被保护的存储区域52(MEMCPU)是在应用需要访问元件3时被
微控制器2采用的非易失性存储区域。这样的区域52还包含根据应
用可再编程的代码(指令)和数据。如果盗版者在这些区域中成功
存储攻击代码,则他/她能够访问安全元件3。
由微控制器执行的启动代码51包含用于启动安全元件3的指令
(即,eSE的函数Fn(BOOT))以及随后在初始化过程的序列(用箭
头53图示)中用于启动元件3对区域52的内容的检查或验证的过
程的指令INST。一旦微控制器2向元件3通信指令INST,则微控
制器2转为保持模式(HOLD),在保持模式下,微控制器2等待来
自安全元件3的响应。只要微控制器2没有接收到这一响应,就不
采取其包含的代码的执行。
由元件3执行的检查CHECK包括读取区域52的全部或部分并
且执行认证检查机制。例如,这一机制是基于区域52中所包含的代
码和数据的签名计算,并且用于对照元件3中存储的参考签名来检
查这一签名。在这种情况下,如果区域52的内容发生认证修改,则
更新元件3中存储的参考签名以使得能够进行随后的真伪检查。
如果元件3验证区域52的内容的真伪,则其向微控制器2作出
响应。微控制器2然后可以离开其保持模式并且基于区域52的内容
执行初始化的其余部分。
然而,如果元件3没有验证(NOK)区域52的内容,则其经由
插入在微控制器2的电源线路上的开关K引起这一电源的中断。然
后其迫使微控制器被重启并且重复以上描述的步骤。如果由于瞬态
故障产生错误,则下一执行验证该启动。然而,如果区域52中包含
的代码有效地提出问题(无论其在攻击之后还是在存储器问题之
后),微控制器2将连续地启动,例如,直到电池18耗尽,或者只
要设备1被连接就不断地进行,但是从没有通过启动阶段BOOT。
优选地,在元件3启动时(Fn(BOOT)eSE),元件3监控源自
微控制器2的请求(指令INST)的到达。如果这一请求在相对于启
动与到达或请求INST之间的一般时间所确定的某个时间(例如在几
百个毫秒的数量级)之后没有到达,则元件3引起微控制器2的电
源的中断。这在微控制器的启动程序BOOT扰动的情况下提供另外
的安全。
图3是示出图1的电子设备的微控制器的启动序列的另一实施
例的简化表示。
根据本实施例,每件事情通过微控制器2与安全元件3之间的
消息的互换来执行,而没有必要作用于(中断)微控制器电源。
微控制器2和安全元件3的启动按照与前一实施例中相同的方
式来被引起,也就是,在微控制器2的启动(框61,BOOT CPU)
时被引起,微控制器2引起安全元件3的启动(框62,BOOT eSE)。
一旦被启动,元件3转为其中元件3等待指令的模式(WAIT)。
另外,优选地通过由元件3进行的签名检查来执行对包含要检
查的代码的区域52或者非易失性存储区域(NVM)的内容的检查。
根据图3的实施例,存储在非易失性存储器52中并且在其启动
之后形成微控制器2的初始化的数据的代码和固定数据被加密。所
使用的加密例如是对称AES型加密。然而,加密密钥并非存储在微
控制器2中,而是存储在安全元件3中。
一旦微控制器2启动(框61的结尾)并且向元件3给出启动指
令,则其生成密钥(框63,GEN KeyAESRDM),优选地是用于加
密代码的AES的大小的随机数。
微控制器2然后向安全元件传输密钥KeyAESRDM。优选地,
这一传输由公共密钥机制来执行,微控制器使用算法的公共密钥对
密钥KeyAESRDM加密(框64,CIPHER KeyAESRDM(PUBLIC
KEY))。优选地,微控制器2不在非易失性存储器中存储随机数
KeyAESRDM。实际上,其将这一数存储在易失性存储器中就足够了,
这降低了攻击风险。一旦传输密钥KeyAESRDM,微控制器转向等
待模式(WAIT)。
元件3借助于安全密钥机制对KeyAESRDM解密(框65,
DECIPHER(KeyAESRDM))并且对其进行存储(框66,STORE
KeyAESRDM)。
元件3然后解密微控制器2的非易失性存储器的区域52中包含
(或者与其相关联)的代码(框67,DECIPHER CODE AESCodeKey),
并且计算和检查代码签名(框68,COMPUTE/CHECK SIGNATURE)。
如果签名不正确(框69的输出N,OK?),则元件3不响应于
微控制器2并且其操作被停止(STOP)。
如果签名正确(框69的输出Y),则元件3使用密钥KeyAESRDM
对密钥AESCodeKey加密(框70,CIPHER AESCodeKey
(KeyAESRDM))并且将其发送给微控制器2。微控制器使用密钥
KeyAESRDM对密钥AESCodeKey解密(框71,DECIPHER
AESCodeKey(PUBLIC KEY))。
微控制器2然后使用密钥AESCodeKey解密区域52中包含的代
码并且执行该代码(EXECUTE)。然而,微控制器2没有将密钥
AESCodeKey存储在非易失性存储器中。因此,在微控制器2侧,数
KeyAESRDM和密钥AESCodeKey仅存储在易失性存储元件(RAM、
寄存器等)中。
根据替选实施例,由安全元件3针对区域52中所包含的代码的
签名的每个变化(也就是在该代码每次被修改时)生成密钥
AESCodeKey。
根据另一变型,在制造(微控制器2或安全元件3的)电路时,
由安全元件3生成微控制器的存储器52的加密代码。这表示,代码
AESCodeKey从一个设备1到另一设备发生变化。
优选地,对于每个微控制器部件2/安全元件3的对,非对称密
钥(公共密钥和私有密钥的对)唯一。
应当注意,可以组合两个实施例及其相应变型。例如,在根据
第二实施例的认证失败的情况下(框69的输出N,图3),根据关
于图2描述的实施例可以设置安全元件中断微控制器的电源。
已经描述了各种实施例。本领域技术人员能够想到各种修改。
特别地,具有要检查的内容的存储区域的选择取决于应用并且可以
变化。另外,安全元件与微控制器之间的数据交换加密过程的选择
也取决于应用。另外,已经描述的实施例的实际实现在本领域技术
人员使用上文中给出的功能指示的情况下的能力范围内。
这样的变化、修改和改进意图是本公开的部分,并且意图在本
发明的精神和范围内。因此,以上描述仅作为示例而非意在限制。
本发明仅如以下权利要求及其等同方案中定义地被限制。
可以组合以上描述的各种实施例以提供另外的实施例。可以鉴
于以上详细描述对实施例做出这些和其他变化。通常,在以下权利
要求中,所使用的术语不应当被理解为将权利要求限制为本说明书
和权利要求中公开的具体实施例,而是应当被理解为包括所有可能
的实施例连同这样的权利要求授权的等同方案的整个范围。因此,
权利要求不受本公开的限制。