基于基于PUF的可信根及可信计算平台架构设计的可信根及可信计算平台架构设计
物理不可克隆函数(Physical Unclonable Functions,PUF)在设备认证和安全密钥存储等应用中具有高度灵活
性,并被广泛用于嵌入式系统的安全防护。利用PUF技术为双核安全架构提供可信根(PUF-based Root of
Trust,PRoT),设计了以PRoT为信任锚点的信任链和密钥更新协议,保证了在SoC系统上可信关系的逐级扩
展以及安全启动的可靠性和安全性。通过测试实验表明,PUF能够为嵌入式系统提供安全灵活的可信根,PRoT
能够以较小TCB运行于双核隔离SoC系统中,其随机数种子和唯一设备密钥对多种攻击具有抗性。
0 引言引言
为有效防御恶意用户非法访问SoC中的敏感数据或危害其他部件,文献[1]提出了基于双核的通用计算与安全管控隔离的
SoC架构(下面简称“双核安全架构”),实现了安全核对计算核的安全启动、主动度量、实时监控、访问控制等安全服务。但这
一架构只能提供“隔离”而不是“可信”的执行环境,因为它无法向用户或外部验证者证明运行在执行环境中的软件是不可篡改
的。当前主流的验证技术是利用认证密钥对软件度量值进行签名和验签,而认证密钥和软件度量值都通过可信根来安全存
储
[2]
。因此,一个隔离的执行环境只有配备了可信根才能真正构成可信执行环境(Trusted Execution Environment,TEE)。
国内外针对可信根构建技术进行了许多研究。ARM公司基于GlobalPlatform TEE API标准定义了TrustZone应用平台架构,
利用硬件密钥、密码加速器、安全芯片等硬件资源来构建可信根
[3-4]
。文献[5]提出使用PUF来保护TEE的方法,但只考虑了
TrustZone应用平台上的安全启动过程,而忽视了认证、加密等安全防护功能,且没有给出具体设计实现。文献[6]提出了一种
便携式可信计算模块TEEM,可为各种计算平台提供可信计算功能,但没有实现TEEM与Rich OS的隔离,TEEM运行于整个
Linux操作系统,使得可信计算基(Trusted Computing Base,TCB)非常庞大,且没有考虑如何建立TEEM的信任链。
鉴于上述方法均无法构建高效灵活安全的可信根,本文提出了利用PUF技术为双核安全架构提供可信根PRoT,设计了基于
PRoT的信任链,以保证可信关系的逐级扩展。实验结果表明,PUF为嵌入式系统提供的可信根具有安全性,并根据PRoT部
署了密钥更新协议,进一步增强了系统的灵活性和攻击抗性。
1 基于基于PUF的可信根的可信根PRoT
具有轻量级属性的PUF适用于资源受限的嵌入式设备
[5]
,基于PUF构建可信根PRoT可为操作系统(Operating System,OS)
和安全服务提供可信计算功能,而无需额外的安全硬件资源,并允许用户在设备被物理攻击破坏后重新部署可信根。PRoT的
核心模块为可信构建模块(Trust Building Module,TBM)和Seal/Unseal服务。
1.1 可信构建模块可信构建模块TBM
本文利用模糊提取算法
[7]
从PUF响应值中提取唯一设备密钥,模糊提取算法结构如图1所示。模糊提取算法的工作过程分为
生成阶段和重现阶段。TBM实现于重现阶段,由BCH纠错码、密钥提取算法(Key Derivation Function,KDF)和密钥生成算法
(Key Generation Algorithm,KG)组成。
1.1.1 生成阶段生成阶段
生成阶段由制造商在设备生产中执行。首先,制造商选择随机数PS,用BCH纠错码对PS进行编码以获得代码
C(PS)=BCH
Enc
(PS)。PUF的响应R作为输入,与C(PS)异或得到代码S送入辅助数据H,在重现阶段中H用于生成相同的初始
种子PS。
评论0