1.1 硬件安全简介
长期以来,硬件一直被视为支持整个计算机系统的可信平台,是负责运行从软件层传递指令的抽象层。因此,与硬件相关的安全性研究通常涉及加密算法的硬件实现,硬件被用于提高加密应用程序计算的性能和效率[1]。硬件版权保护技术也被归入与硬件相关的安全领域。虽然水印技术已被广泛用于解决版权保护问题[2],但是安全领域的研究者并未考虑硬件本身的保护问题。安全领域的研究者往往认为集成电路供应链(以下简称IC供应链)本身既封闭又复杂,攻击者无法轻易攻击集成电路。随着尖端工艺的代工成本和现代片上系统(system-on-a-chip,SoC)平台设计复杂性的不断提高,曾经局限于一个国家甚至一家公司的IC供应链已经遍布全球。在这种形式下,硬件电路设计中的第三方资源(主要指用于外包芯片制造和SoC开发的第三方知识产权,即intellectual property,简称IP核,包括软核和硬核)在现代电路设计和制造中得到了广泛的应用。这类资源的利用虽然在很大程度上减少了设计工作量、降低了制造成本、缩短了产品上市时间(time to marketing,TTM),但是对第三方资源及服务的高度依赖也引发了安全问题,打破了“攻击者无法轻松访问封闭的IC供应链”的幻想。例如,恶意代工厂可能会将硬件木马程序插入所制造的芯片中,交付的IP核可能包含恶意逻辑和设计缺陷,这些缺陷在IP核集成到SoC平台后会被攻击者利用。
硬件安全的概念在硬件木马出现后被正式引入。学术界和工业界开始采取措施缓解或防止相关威胁。硬件安全最初指的是硬件木马的设计、分类、检测和隔离。硬件木马威胁与不受信任的代工厂密切相关。因此,研究者开发的硬件木马检测方法往往侧重于IC制造过程的流片后阶段,强调增强现有检测方法的安全性[3-18]。鉴于第三方IP核可能是恶意逻辑插入的另一个攻击向量,对综合前设计的保护也变得同样重要。据此,研究者还开发了流片前电路保护方法[19-24]。
除了硬件木马检测,硬件安全的概念还从测试解决方案延伸到形式化验证方法。形式化验证方法不仅在保证软件程序安全时得到广泛应用,还被证明在硬件代码的安全验证中颇为有效,因为硬件代码通常是使用硬件描述语言(hardware description language,HDL)编写的[25-28]。形式化验证方法的发展不仅有助于为硬件设计提供高水平的安全保证,即便在攻击者可能有权访问原始设计的情况下也是如此,也有助于克服黄金模型在许多硬件木马检测方法中的局限性。然而,在实现形式化验证方法时,安全属性的构建却成为硬件安全研究者尝试解决的一个开放性问题。
近年来,硬件安全研究的演进已经从硬件木马的检测转移至可信硬件的开发,即构建信任根。虽然硬件设备的一些固有特性对电路性能有负面影响,但是可以将这些特性用于安全保护。一个典型的例子是物理不可克隆函数(physical unclonable function,PUF)的开发,借助电路制作过程中的工艺偏差,以“激励—响应”对的格式生成特定芯片的指纹。除金属—氧化物半导体场效应晶体管(MOSFET)外,研究者正在研究新型的晶体管,如自旋转移矩(spin transfer torque, STT)器件、忆阻器和自旋畴壁器件等,利用器件性能的特殊性来实现新型的硬件安全应用。
硬件安全领域的另一个趋势是开发增强安全性的硬件基础设施来保护设备。换言之,就是要开发出能够将安全性、保护和身份验证集成到专用工具链的新型硬件基础设施。研究者正在开发各种增强安全性的架构[29-36]。本章将介绍硬件级别的增强功能。这些功能可提供高级安全性,并能把安全防护扩展到所有体系结构层。硬件安全领域的技术发展趋势是从增强安全性的角度重新评估硬件功能、性能、可靠性、设计及验证,开发出可操作的软、硬件平台,确保现代计算机系统的安全设计、制造和部署。本书将特别关注支持安全引导和访问控制的安全处理器及SoC设计,防范硬件和固件级别的攻击。
此外,在IC供应链全球化的背景下,硬件IP的保护也引起了关注。在各种硬件IP保护方案中,逻辑锁定(又称功能混淆)已成为一个热门领域,研究者正在开发各种混淆技术[37,38]。本节只简要介绍了硬件安全技术,后续章节将详细介绍各种技术及其相关解决方案的更多细节。