鉴于不断出现的系统伪造攻击事件,来自工业、军事/航空航天、商业和技术等各个领域的设计工程师正在寻找最佳的加密认证IC,以保护其先进的系统设计免受伪造之害。
遗憾的是,虽然有很多加密芯片可供选择,但大多数只能提供很小范围的安全保障。在某些情况下,设计工程师有意/无意中选择的芯片,可能与他们所期望的防伪(ACF)保护功能相差甚远。
有两种类型的认证IC:固定功能“状态机设计”,以及包含大量不同安全协议的软件可程序组件。图1显示了一个认证IC的通用原理架构图
图1:认证IC内部原理图(来源:Rambus)
可以对高性能安全处理器进行编码,以执行各种任务,包括身份验证。一个例子是可信平台模块(TPM)芯片,它可以执行许多不同类型的加密操作。相较之下,固定功能的认证芯片只执行一项任务:将质询安全地转化为回应。
质询/响应协议是防伪的核心,使用质询-握手验证协议(CHAP)示例有助于解解释这一点。在CHAP系统中,认证服务器以一种大量随机位的形式向用户发出质询。用户的密码(秘密值)用于加密质询,加密结果返回给服务器。一旦服务器收到用户响应,它就可以验证回应是否符合预期,这意味着用户必须输入正确的密码。确认匹配后,用户身份就通过了认证,由此得到了“质询/响应协议”的称号。
固定功能的ACF芯片也以类似的方式工作。它从验证器主机接收到质询(以大量随机位的形式),并且使用储存在ACF芯片内的秘密数据以加密的方式对该质询进行操作。然后,它将计算的结果返回给验证器芯片,然后就可以确认芯片知道正确的秘密值。如果确实是这样,芯片以及它所保护的产品就被认为是真实的。
考虑关键优势
尽管所有认证IC都使用秘密数值来遵守某种质询/响应协议,但为了彻底保护其系统设计免受伪造影响,精明的工程师就会对一个ACF芯片有别于其它同类芯片的关键差异进行全面审视。这涉及四个关键考虑因素:
1.要了解秘密数据如何储存在芯片中以及它是怎么受到保护的。
2.使用哪个密钥派生函数(KDF)?换句话说,秘密数据如何成为用于加密传入质询的密钥?
3.加密算法的具体细节也很重要,包括对DPA攻击和故障注入攻击的反应敏感程度。
4.芯片的整体防篡改功能也至关重要。
首先,系统设计人员必须询问所使用的非挥发性内存确切类型,以及该内存在芯片遭遇非侵入性、半侵入性和完全侵入性攻击时的坚韧性。供货商如何选择储存秘密数据是芯片的一个关键因素,安全芯片开发商会使用不同的技术来储存这些数据。相较于EEPROM或嵌入式闪存等带电可擦写式内存,一次性可程序设计(OTP)内存是更为安全的。虽然两者都会屈服于持续的侵入性攻击,但使用半侵入式扫描电子显微镜技术可以更容易地对带电可擦写式内存进行反向工程。
系统设计人员需要问的第二个问题是秘密数据如何成为用于加密质询的密钥。这是KDF的工作,它需要取出该资料并专门对其处理,以便让它成为密钥。最好使用工作量证明(PoW)函数从秘密数据中导出密钥。PoW函数或算法会以很高的时钟速率运行,并且需要使用极宽的数据路径,因此是无法在低成本微控制器(MCU)中进行有效模拟的。
实际上,具有这种PoW能力的KDF可以确保系统设计者每次在该芯片上执行认证时,芯片不仅会确认知道密钥,而且还可以执行KDF功能。这种双重身份认证专门用来防止攻击者仅使用程序设计到现成MCU中的秘密数据来部署低成本的攻击。
第三,需要清楚将质询转化为响应所使用的是什么加密引擎或实际协议。有许多协议可用于生成响应。一些芯片使用先进加密标准(AES),而其他芯片则使用安全哈希算法(SHA-2和SHA-3)。大多数安全芯片开发商都使用椭圆曲线密码术(ECC)。有不同的方法来组合质询和密钥,以便计算出响应,而且攻击者不能基于质询/响应数据对密钥进行反向工程。
然而,即便所有这些都确定后,也无法避免所有加密算法都必须面对的与差分功率分析(DPA)相关的问题。无论你使用ECC、AES、DES或任何SHA,都必须正视这一问题。实际上,几乎每个加密算法在根据质询计算相应的响应时都会「泄漏」一些与其密钥相关的信息。
小心DPA攻击
简言之,DPA攻击就是攻击者或假冒芯片制造商在真实芯片执行加密操作时想法监控它的电源消耗。然后,他们记录下这些波形,并使用泄漏信息来精确定位加密密钥的数据位。在大多数情况下,这足以从安全芯片中获取密钥的值。
采取这种数据分析过程不会引起昂贵的侵入性攻击。因此,在芯片中储存秘密数据的内存类型或者防篡改保护措施都无关紧要了。如果加密算法没有进行DPA保护,攻击者就可以透过DPA攻击来获取密钥。
因此,系统工程师应该专注于用来计算质询-响应的算法,使其具有DPA免疫性。在这种情况下,即使攻击者可以从安全芯片收集到数亿个电源追踪曲线(trace),也都无济于事。
这里需要提醒的是,DPA阻抗性或保护性与DPA免疫协议之间是有差异的,如图2所示:
图2:DPA阻抗性/保护与DPA免疫的区别(来源:Rambus)
有了DPA免疫协议,攻击者根本无法获得足够的信息来对密钥进行任何重要的推断,无论他们收集到多少电源消耗追踪曲线。另一方面,受DPA保护(但不具有DPA免疫性)且嵌入在低成本安全芯片中的加密IP核心最终将泄漏足够的信息让DPA攻击得逞。这可能需要很长的时间,攻击者可能需要收集超过1亿条追踪曲线才能获取密钥,但是可以做到的。
防篡改技术的重要性
上面列出的关键考虑因素中,第四项是确保在安全芯片中有防篡改功能。防篡改机制本身不是算法或安全问题。然而,它可以指明芯片制造商如何能够阻止攻击者进入芯片并以电子方式监控讯号。如果非侵入性攻击(例如DPA分析)证明无法得逞,攻击者就会使用篡改的办法来获取秘密数据,这对攻击者是十分有效的途径。
遗憾的是,关于芯片的特定防篡改技术大多不会公开,因为芯片开发商的技术是专有的,再说这些信息对有意攻击者来说是特别敏感的。但是,根据保密协议(NDA),系统工程师可以与供货商核实,以确定他们如何实施这一关键保护层。在检测到有篡改攻击时,确切知道安全芯片如何保护其秘密数据是最值得关心的事情。
总结来看,在现今这个时代,应该深入研究防伪技术。对于最先进的技术来说尤其如此,以防止那些既有耐心又非常渴望获得密钥的攻击者,他们用此启动兼容的安全芯片,让假冒山寨产品流入市场。