
#百人创作先锋团#硬件可信方案
硬件安全(硬件“三防”技术)和基于硬件可信根的可信计算构成了完整的硬件可信方案。
硬件安全源于密码学以及硬件保护技术。在计算机出现的早期,已经存在探针、逆向等形式的物理攻击,侧信道攻击诞生于20世纪90年代,然后相继出现了故障注入攻击,以及更加复杂的组合攻击。组合攻击就是协同多种不同方式的攻击,来获取设备中的资产。因此,硬件安全的主要目的是针对硬件攻击的防护,包含了防侧信道攻击、防故障注入攻击、防物理攻击等。
侧信道攻击是利用设备的端口对芯片进行电磁信号和功耗的分析来破译用户信息的攻击模式,但不会破坏芯片。常见的攻击类型有时间分析、功耗分析、电磁辐射分析、光子分析。针对侧信道攻击的防护技术有功率均衡、时钟加扰、伪操作、加噪声、掩码算法。
故障注入攻击是利用故障(电压波动、时钟异常等)引起电路出现异常,根据异常信息分析芯片内部的敏感信息,或者直接利用引起的电路异常来改变程序运行等。常见的攻击类型有电压注入、时钟注入、电磁注入、温度注入和激光注入。针对故障注入攻击的防护技术有金属外壳、逻辑深埋、逻辑冗余、时钟冗余、传感器检测。
物理攻击是去除芯片封装,对内部电路进行电接触,结合其他攻击手段获取保存在芯片内部的敏感信息。常见的攻击类型有FIB(Focused Ion Beam,聚焦离子束)电路修改/探针攻击、单板级走线篡改/探针窃听、整机攻击等。针对物理攻击的防护技术有被动防护、主动防护、特殊封装、逻辑深埋、自擦除、加扰或加密。
基于硬件可信根的可信计算技术的诞生可追溯至1985年发布的橙皮书Department of Defense Trusted Computer System Evaluation Criteria,基于可信根的可信计算是以硬件为基础,以软件为支撑,实现系统身份可认证和系统行为可预期,主要有安全启动、可信启动、安全存储、安全运行等支撑技术。
安全启动
安全启动建立硬件可信根,从可信根开始,一级验证一级,建立信任链,把信任扩展到整个系统,实现系统行为可预期。安全启动首先建立一个硬件可信根(硬件可信根是信任链的起点,不可篡改),然后再建立一条信任链,从可信根开始到启动代码、操作系统,再到应用,一级验证一级,一级信任一级。从而把这种信任扩展到整个设备。
安全启动的过程下图所示,芯片内部BootROM启动后,对BIOS(Basic Input/Output System,基本输入输出系统)软件进行签名验签,验证通过后,启动BIOS执行。BIOS对OS软件进行签名验签,OS软件经BIOS验证通过后执行。OS软件对上层应用软件进行签名验签,全部验证通过后,系统启动完成。
安全启动的过程
可信启动
可信启动也是首先建立一个不可篡改的硬件可信根,然后再建立一条信任链,从硬件可信根开始到启动代码、操作系统,再到应用,一级度量一级,一级信任一级,从而把这种信任扩展到整个系统。可信启动与安全启动的差别是,安全启动先签名验签,然后系统才启动,而可信启动是系统先启动,然后对系统逐级进行可信度量。
可信启动的过程如下图所示,由系统内置完全可信的CRTM(Core Root of Trust for Measurement,可信度量根的核心),作为最基本的硬件可信根开始整个系统的可信启动,在启动中,CRTM、各级Boot和OS软件对下一级软件进行度量计算,并将度量值扩展至可信模块,如TPM (Trusted Platform Module,可信平台模块)芯片。存储在可信模块中的度量值会被用于生成可信报告,发送到远端证明服务器进行远程证明。
可信启动的过程
安全存储
以硬件可信根为基础,派生出加密密钥,用于敏感数据的加密,确保存储数据的安全。派生密钥使用的随机数必须由真随机数发生器产生。按照BSI(Bundesamt für Sicherheit in der Informationstechnik,德国信息安全办公室)分类标准,真随机数发生器分为物理真随机数发生器和非物理真随机数发生器。物理真随机数发生器的随机性来源于真正的物理随机过程,如热噪声、散粒噪声、二极管击穿熵、自由运行的振荡器等。各种商用硬件随机数发生器都属于物理真随机数发生器。非物理真随机数发生器的随机性来源于系统外部的随机事件,如磁盘I/O、中断、键盘鼠标操作时间等。
数据密钥存储在介质上时,需要通过存储保护机制来对其进行安全保护,以保证密钥的完整性和机密性。根密钥需要使用系统提供的安全存储功能存储,如专用的硬件安全模块,包括HSM、TPM等。
安全运行
安全运行以硬件可信根为信任源头,以隔离和访问控制技术来构建运行时的数据、控制和管理的安全。安全运行基于TrustZone技术,将原有的一个系统隔离成两个独立的功能域,即安全域和非安全域,通过硬件的特殊设计来进行代码隔离,以实现隔离的完整性。外设操作通过安全的设置独立存在于安全/非安全域中。通过从安全域进行系统的安全启动,来保证系统启动的安全以及信任链传递过程中传递起点的可信。两个功能域之间的切换只能通过监控模式进行。从非安全域进入安全域的过程受到严格控制以及监控。从安全域可以看到非安全域的状态和信息,从非安全域看不到安全域的状态和信息。TEE就是一种基于TrustZone技术构建的可信运行环境。
文章转载自公众号:智车Robot
