摘要
当今时代,身份盗用和伪造身份证件日益猖獗,确认身份的真实性变得至关重要。这不仅适用于个人,对电子产品也同样适用。几乎所有设备制造商都需要保护自己的产品,以防假冒零部件通过售后渠道流入OEM供应链。安全认证是一种强大的电子解决方案,它不仅能应对此类威胁,还能为最终产品带来其他有用特色。
本应用笔记阐述了“认证”(又称身份验证)的概念,重点介绍了ADI公司的解决方案,通过安全认证器可满足以下应用需求:知识产权保护、嵌入式硬件/软件许可管理、安全软特性和状态设置、防篡改数据存储。
引言
越来越多的系统要求为传统的非安全外设和耗材添加认证功能。典型的系统驱动认证包括:安全存储、基于证书的认证,或是外设、配件或耗材的质询-响应或OEM认证。认证可确保产品的可靠性和质量,从而避免假冒产品的出现。
什么是认证?
认证是一个旨在确认两个或多个实体之间身份真实性的过程。在单向认证中,仅有一方向另一方证明其身份。而在双向认证中,双方互相向对方证明身份。最常见的认证方式是密码。密码的主要问题在于使用时会被暴露,容易遭到窥探。
1883年,佛兰芒语言学家Auguste Kerckhoffs在深入研究密码学历史后,发表了一篇开创性的军事密码学论文。他主张,安全性不应建立在晦涩性之上,而应依赖于密钥的强度。这样一来,即便系统遭到入侵,也只需更换密钥,而不必替换整个系统。
一种经过验证的基于对称密钥的认证方法如图1所示:一个密钥和待认证的数据(“消息”)作为输入,用来计算消息认证码,即MAC。然后将MAC附加到消息上,并在请求时发送。消息的接收者执行相同的计算,并将其版本的MAC与随消息接收的MAC进行比较。如果两个MAC一致,则消息是可信的。然而,这一基础模型存在一个安全隐患:一旦静态消息和MAC被截获,攻击者便可实施重放攻击,让接收方误以为消息是来自合法发送者。

图1.MAC计算模型
为了证明MAC发起方(例如某个系统配件)的真实性,接收方(例如配件所连接的主机系统)生成一个随机数,并将其作为质询发送给发起方。然后,MAC发起方必须基于密钥、消息和质询计算一个新的MAC,并将其发送回接收方。如果发起方能够为任何质询生成有效的MAC,就基本可以确认其拥有密钥,身份真实可信。图2显示了这种质询-响应认证流程及相关的数据元素。

图2.质询-响应认证数据流
在密码学中,根据一条消息生成固定长度消息认证码的算法称为单向哈希函数。“单向”意味着在数学层面上,要从固定长度的输出MAC推断出通常更大的输入消息(包括密钥)是不可行的。
FIPS SHA-2和SHA-3是由美国国家标准与技术研究院(NIST)开发的两种单向哈希算法,已经过严格审查并获得国际认证。NIST网站已公开这些算法背后的数学原理。这些算法具有如下特征:1)不可逆性——在计算上不可能推导出与MAC对应的输入;2)抗碰撞性——几乎不可能找到两个不同的输入消息能产生相同的MAC;3)高雪崩效应——输入的任何变化都会导致MAC结果发生显著变化。出于上述原因,并考虑到算法经过国际审查,ADI公司选择将SHA-2和SHA-3用于旗下安全认证器的质询-响应认证。
低成本安全认证——系统实现方案
得益于1-Wire®接口,DS28E16等安全认证器可以轻松添加到任何具备数字处理能力的系统中,例如微控制器(µC)。在最简单的情形中,只需要一个备用微控制器端口引脚和一个用于1-Wire线路的上拉电阻,如图3所示。然而,这种方法有一个潜在风险:它使用的是非安全微控制器,攻击者可以通过分析该微控制器来理解和破坏其安全机制。
或者,如图4所示,可以使用集成1-Wire控制器接口的IC(如DS2477 SHA-256协处理器)来操作和控制DS28E16。虽然DS28E16支持仅采用微控制器的操作方案,但DS2477能带来以下优势:1)将SHA-256计算任务从主微控制器转移出去,减轻其负担;2)确保系统SHA-256密钥的存储高度安全;3)将1-Wire波形生成任务从主微控制器转移出去,减轻其负担。

图3.基本应用示例

图4.使用协处理器来增强安全性
防止伪造
有些系统采用可更换的传感器、外设、模块或耗材,常会成为未经授权的售后服务公司的目标。伪造的替换件可能会引入安全隐患,降低应用质量,而且通常会对OEM解决方案产生负面影响。若将安全认证引入解决方案中,主机系统就能检验传感器或模块的真实性,并在检测到伪造品时根据特定应用采取相应的措施。如图5所示,可在系统与相连外设之间执行质询-响应序列来确认真实性。

图5.使用质询-响应序列来检验真实性
嵌入式硬件/软件许可管理
参考设计在授权给第三方厂商进行生产时,必须建立保护机制,防止知识产权被滥用。同时,出于收益管理的需要,还必须对参考设计的使用次数进行追踪与核实。预编程的SHA-256认证器(交付第三方制造商之前已内置密钥、用户存储器和设置),例如DS28E25,能够轻松应对诸如此类的需求。作为上电自检的一部分,参考设计(图6)利用DS28E25来执行认证序列。只有拥有有效密钥(仅由授权公司和参考设计设备本身掌握)的DS28E25,才能成功返回有效的MAC。如果检测到无效MAC,参考设计的处理器将根据特定应用采取相应的措施。这种方法还有一项优势,就是能够通过存储在安全DS28E25存储器中的设置,选择性地许可和启用参考设计的特性与功能。(有关此概念的更多信息,请参见软特性管理部分。)
拥有有效密钥的DS28E25或其他安全认证器通过以下两种安全方法之一提供给被许可方或第三方制造商:1)由参考设计许可方预编程,或2)由ADI公司根据许可方的输入预编程,然后交付给第三方制造商。无论采用何种方式,发送给被许可方或制造商的设备数量是已知的,且可用于核实许可费用。

图6.参考设计认证
验证硬件真实性
当验证硬件真实性时,需要考虑两种情况(图7):

图7.硬件认证示例
在第一种情况下,固件或FPGA尝试对克隆的电路板进行认证。为使认证成功,克隆设备的制造商必须将密钥加载到安全认证器中,以便将数据写入用户EEPROM。虽然这可能会使数据看似正确,但加载的密钥在这个系统中是无效的。鉴于更改固件或FPGA的复杂性,而且需要与主机保持兼容,因此固件或FPGA配置必须与原始版本完全一致。如果电路板在上电阶段对DS28E50执行质询-响应认证,则DS28E50生成的MAC将会与固件或FPGA计算的MAC不同。MAC不一致是电路板不可信的有力证据。所以,系统通过对电路板执行质询-响应序列就可检测到克隆,并根据特定应用采取相应的措施。
在第二种情况下,电路板对主机系统进行认证。电路板可通过以下步骤验证主机的真实性:
如果两个MAC一致,则电路板可以认定主机可信。
软特性管理
电子系统的大小不一,从手持设备到占据多个机架的大型装置,多种多样。设备越大,开发成本越高。为了控制成本,设计上倾向于使用有限种类的小型子系统(板卡)来构建大型系统。在实际应用中,并非子系统的所有特性都是必要的。相比在硬件上移除这些特性,保留电路板设计并通过控制软件来禁用部分特性是更具成本效益的做法。然而,这种策略也带来了新问题:一些精明的客户若需多个全功能系统,只需要仅购买一个全功能单元和多个减配单元。然后通过复制软件,使减配单元也能表现得如同全功能单元一样,但所需支付的价格更低。这最终会使系统供应商的利益受损。
在每个子系统的电路板上部署ADI公司的SHA-256设备(如DS28E25安全认证器),可有效防止此类不当做法,保护系统供应商的利益。除了执行质询-响应认证外,DS28E25还能将各种配置设置存储在其用户的EEPROM中。正如在数据安全部分所述,这些数据受到保护,未经授权无法更改,系统供应商因此享有完全控制权。系统设计人员可以酌情选择以位图或编码字的形式存储配置设置。
安全认证设备概述
通用设备架构
设备中的SHA引擎可以根据要执行的操作,以三种方式之一运行。无论何种情况,引擎都会接收输入数据并计算MAC结果。对于每类操作,根据MAC结果的目标用途,SHA引擎的输入数据会有所差异。基于对称密钥的安全系统的基本要求是,对于任何SHA操作,主机必须知道或能够计算出待认证的附属设备中存储的密钥。
注:鉴于安全认证产品的安全性和应用敏感性,本文不讨论设备细节。签署保密协议(NDA)后可获取完整版的设备数据手册,其中会提供这方面的信息。
质询-响应认证MAC
SHA-2或SHA-3安全认证器的主要用途是质询-响应认证。主机发送一个随机质询,并指示附属设备根据质询、密钥、用户内存和其他数据(这些数据共同构成“消息”)计算MAC响应(图8)。

图8.质询-响应认证MAC的数据流
计算完成后,附属设备将其MAC发送给主机进行验证。主机随后使用有效的密钥和附属设备所用的消息数据再次计算MAC。如果它和从附属设备接收到的MAC一致,就可以确认该设备是可信的,因为只有正品配件才能正确响应质询-响应序列。质询必须基于随机数据,这一点至关重要。如果质询永远不变,就会为重放攻击提供可乘之机:攻击者可以重放之前截获的有效静态MAC,替代由真实配件即时计算的MAC,从而绕过认证机制。
数据安全
除了证明真实性外,我们还希望知道附属设备中存储的数据是否可信。基于这一考量,安全认证器中的EEPROM写入权限受到严格限制,以防止数据被篡改。
将数据从输入缓冲区复制到EEPROM或控制寄存器之前,附属设备会要求主机提供有效的写访问认证MAC以证明其真实性。附属设备根据其输入缓冲存储器中的新数据、其密钥和其他数据计算此MAC,如图9所示。
真实的主机知道或能够计算密钥,并能够生成有效的写访问MAC。附属设备在复制存储命令期间接收到来自主机的MAC时,会将其与自己的计算结果进行比较。只有当两个MAC一致时,数据才会从输入缓冲区传输到EEPROM中的目标位置。当然,即使MAC正确,被设定为写保护的存储页面也是无法修改的。

图9.写访问认证MAC的数据流
密钥保护
ADI公司安全认证器的架构允许将密钥直接加载到设备中。密钥受读取保护机制的保障,必要时还可启用写入保护,以彻底禁止其被修改。只要在设备生产现场的初次安装期间确保对密钥的访问是安全且受控的,该保护机制就能有效发挥作用。
有多种方式可提高密钥的质量:
如果每个安全认证器独立计算其密钥,则只有密钥的组成要素是已知的,而密钥本身永远不会暴露。如果密钥分多个阶段在不同地点计算,则各地点仅知晓该密钥的局部信息。这种方式可以有效控制对“最终密钥”的知情范围。如果密钥是设备专属的,则主机需要执行额外的计算步骤,但在这种情况下,即便设备密钥被意外泄露,潜在损害也会非常小。如果密钥分多个阶段计算且是设备专属的,则可以实现尽可能高的保密性。然而,主机同配件一样,也需要在不同地点设置,以防止系统保密性被破坏。
如果要求安全认证器计算密钥,则它会使用SHA引擎和设备专属的数据项来计算MAC,如图10所示。然后,它会使用MAC结果推导出新的密钥。

图10.新密钥计算的数据流
结语
借助ADI公司的安全认证解决方案,系统开发商能够有效防范配件或子系统的仿冒风险。此外,防篡改用户存储器提供了安全的方法来启用或禁用系统的选配功能。一颗小巧而强大的硅芯片,可能成为撬动企业利润增长的关键。
参考文献
https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/Studies/HardwareAttacks/Hardware-Attacks-Microcontroller.html。[2024年5月28日访问]。