应用笔记3675

利用安全认证保护您的研发成果

Scott Jones

摘要:在冒名顶替、伪造证件行为猖獗的年代,保证正确的身份识别至关重要。这不仅对个人如此,对电子产品也是如此。系统供应商需要在外有黑客攻击这样的“外患”,内有克隆硬件这样的“内忧”的环境中保护其产品的安全性。实现这些安全需求的关键是认证

本文解释了认证的概念,以及Maxim以安全存储器形式提供加密控制和保护的方案,非常适合需要知识产权保护、HW/SW许可权管理、安全软件功能与状态设置、防篡改数据存储等应用。


什么是认证?

认证是指两个或多个实体之间建立身份认可的过程。单向认证情况下,一方需向另一方证明其身份的合法性。对于双向认证,双方需要彼此向对方证明自己的身份。最常用的认证方法是利用口令实现。使用口令的主要问题是应用中口令是暴露的,极易被探测。

我们先来回顾一下加密的历史应用,1883年弗兰德斯语言学家Auguste Kerckhoffs发表了一篇关于军事加密的文章,震惊了整个世界。Kerckhoffs讲道,安全不应依靠隐匿性(例如非公开的保密算法),而应依靠算法及其密钥的力量。如果安全受到破坏,Kerckhoffs认为,只需替换密钥,而不是替换整个系统。

基于密钥的认证过程如图1所示:密钥(私密)和需要认证的数据(“信息”)作为输入,来计算信息认证码,即MAC。MAC然后附加到信息上。信息接收方进行相同的运算,将MAC计算结果与随信息一起收到的MAC比较。如果二者相同,则信息是合法的。

图1. 该MAC计算模型
图1. 该MAC计算模型

但是,这种基本MAC计算模型也有一个弱点。非法者如果截取到信息,可随后回放此信息,以仿冒合法身份。为克服这种固有的MAC弱点和证明MAC发送方的合法身份,接收方可产生一个随机数,作为质询码回送给发送方。MAC发送方必须根据密钥、信息和质询码重新计算新的MAC,并返回给接收方。如果对应任何质询码发送方都可产生有效的MAC,则可以确信发送方是知道密钥的,其身份是合法的(图2)。该过程就是质询-响应认证。

图2. 质询-响应认证过程
图2. 质询-响应认证过程

在加密学中,由信息产生固定长度MAC的算法称为“单向”散列函数。单向表示从固定长度MAC输出推演出较长的原始信息极为困难。相反,通过加密,加密的信息与原始信息是成正比的。

SHA-1是经过深入研究和国际认可的单向散列算法,由National Institute of Standards and Technology (NIST)开发。SHA-1已经发展成为国际标准ISO/IEC 10118-3:2004,算法的数学基础是公开的,并可从NIST网站获取。SHA-1算法的主要特点包括以下几点:1) 不可逆性—从计算角度讲,不可能从MAC推演出输入信息;2) 抗冲突性—对于特定MAC,找到多于一种输入信息是不现实的;3) 高雪崩效应—输入的任何变化都会使MAC结果产生巨大的变化。基于这些原因以及对该算法的国际性研究,Maxim选择SHA-1作为其安全存储器的质询-响应认证算法。

低成本安全认证—功能实现

DeepCover®安全认证器(DS28E15)借助1-Wire®接口,可以方便地加入到任何带有数字处理能力的电路中,例如带微控制器(µC)的电路。最简单的情况下,仅仅需要一个空闲的微控制器端口引脚以及一个上拉电阻即可构成1-Wire接口,如图3所示。然而,该方法存在潜在风险,即所使用的非安全微控制器会被攻击者进行分析,从而使安全保护大打折扣。

或者采用如图4所示的方法,使用DeepCover安全认证器(DS2465),该器件为集成1-Wire主机接口的SHA-256协处理器,可用于控制DS28E15。DS28E15可以在仅使用微控制器的方案中使用,而采用DS2465的好处在于:1) 将主µC从计算SHA-256的工作中脱离出来;2) 为系统SHA-256密钥存储提供高度安全保护;3) 将主µC从1-Wire波形生成的工作中脱离出来。

图3. 典型系统环境
图3. 典型系统环境

图4. 使用协处理器增强安全性
图4. 使用协处理器增强安全性

嵌入式硬件/软件授权管理

参考设计需要授权,并可能由第三方进行生产,需要防范非法使用程序代码。考虑到收入原因,还有必要跟踪和确认参考设计的使用次数。DS2432经过预先编程(在供给第三方制造商之前先装入密钥和存储器设定值),可以轻松地满足这些需求和提供更多功能。上电自检时,参考设计(图4)通过DS2432执行认证过程。只有具备有效密钥的DS2432才能成功地返回有效MAC。如果检测到无效MAC,处理器将采取相应的特定操作。这种方法还带来另外一个好处,即可以通过DS2432安全存储器的设定值有选择地授权和使能参考设计的功能。(有关此概念的更多信息,见软件功能管理一节。)

具有64位有效密钥的DS2432可通过以下两种安全方法提供给被授权者或第三方制造商:a) 由参考设计授权公司预先编程;或b) 由Maxim根据授权公司的输入信息预先编程并供货给第三方制造商。无论采用何种方法,供给被授权者或制造商的器件数量都是已知的,可据此收取授权许可费用。

图6. 认证参考设计
图6. 认证参考设计

验证硬件的合法性

验证硬件的合法性时,需要考虑两种情况(图5):1) 克隆电路板完全拷贝固件/FPGA配置信息;以及2) 克隆系统主机。

图7. 硬件认证实例
图7. 硬件认证实例

第一种情况下,固件/FPGA试图认证克隆的电路板。克隆制造商要向用户EEPROM写入数据,必须向DS2432装入密钥。尽管这使数据看似正确,而密钥在系统中却是无效的。由于改动固件/FPGA极为复杂,为保持和主机兼容,必须精确拷贝原始固件/配置信息。如果在上电阶段电路板执行DS2432质询-响应认证过程,则DS2432产生的MAC与微控制器/FPGA计算出的MAC不同。MAC不匹配充分证明电路板是不合法的。系统与电路板之间执行质询/响应过程可以检测到该失配现象,并据此采取相应的特定操作。

第二种情况下,电路板试图认证主机系统。电路板通过以下步骤验证主机的身份:1) 产生质询码,由DS2432计算质询-响应认证码MAC;2) 向网络主机发送计算MAC的相同输入数据(当然不包括密钥),主机根据这些数据和自己掌握的密钥计算并返回质询-响应认证码MAC。如果二者产生的MAC相同,则电路板断定主机是合法的。当然,如果DS2432和网络主机有约定的话,也能获得相同的MAC。

软件功能管理

电子产品涵盖手持式产品到安装于机架上的单元。单元的尺寸越大,开发的成本越昂贵。为使成本得到有效控制,利用一些较小的子系统(电路板)来构建大型系统是非常有益的。通常,应用中并不需要子系统的所有功能。最具成本效益的作法不是去除这些功能,而是保持电路板不变,仅在控制软件中禁用某些功能。但这种方法又会产生新的问题:如果聪明的客户需要一些功能完备的系统,他可以只购买一套功能完备的单元和一些功能较少的单元。通过软件拷贝,功能较少的单元就可以提供完备的功能,而价格却更低,因此欺骗了系统供应商。

每个子系统电路板上的DS2432可以保护系统供应商免受这类欺骗。除了进行质询-响应认证外,DS2432还可以在其用户EEPROM内存储独立的配置信息。配置数据可防止非法篡改,系统供应商具有完全的控制权,这一点将在数据安全一节进一步阐述。配置信息可以存储为位图形式或代码字形式,完全由系统设计者决定。根据实际需要,应尽可能简单地设置配置信息。由于DS2432提供方便的1-Wire接口,设计者只需增加一个晶体管和一个探测点,如图6所示。可以在电路板其它部分不上电的情况下,通过探测点向DS2432写入配置信息。MOSFET将DS2432与其它电路隔离,当子系统正常工作时,也不会妨碍DS2432的正常访问。

该配置写入方法还带来另一个好处,系统在用户现场安装完毕后,允许进行远程更新/更改。任何未用于配置/功能管理的用户EEPROM均可采用电子标牌的形式实现电路板标识功能。该功能在应用笔记178:"利用1-Wire产品标识印刷电路板"中进行了详细说明,此应用笔记178可从Maxim网站下载。

DS2432认证功能详细说明

器件总体架构

DS2432 1-Wire接口、1kb SHA-1安全存储器的主要数据单元和数据流路径如图7所示。可以看到8字节密钥和临时存储质询码的缓冲存储器(暂存器)。前面未曾提及的数据单元包括独一无二的器件ID号(标准1-Wire特性)、四个用户EEPROM页面、控制寄存器和系统常数。

器件ID用作1-Wire网络中的节点地址,同时还用于认证过程。用户存储器存放待认证“信息”的主要部分。系统常数有助于满足格式需求和完成填充功能,从而构成SHA-1计算的64字节输入数据块。控制寄存器执行特定的器件功能,例如可选的密钥写保护或EEPROM仿真模式;控制寄存器通常不参与认证过程。

可毫无限制地读取器件ID号和用户EEPROM。并可完全读/写访问缓冲存储器。可以直接装入密钥,但永远不能读取它。改变用户存储器或寄存器的内容要求主机和从机(即DS2432)计算出相同的写操作认证MAC,才可以打开缓冲存储器至EEPROM的路径。

取决于MAC结果的不同用途,DS2432 SHA-1引擎具有三种不同的工作方式。任何情况下,SHA-1引擎均接收64字节输入数据,并计算出20字节MAC结果。不同之处在于输入数据。作为安全系统的根本需求,主机必须要么知道、要么能够计算出应用中有效/合法从器件的密钥。

质询-响应认证MAC

正如前面的应用示例所述,DS2432的主要功能是完成质询-响应认证。主机发送一个随机质询码,指示DS2432根据该质询码、密钥、主机所选存储器页的数据、以及其它数据(这些数据共同构成信息)计算出响应MAC (见图8)。

图8. 用于生成质询-响应认证MAC
图8. 用于生成质询-响应认证MAC

DS2432完成计算后,将MAC回送给主机进行验证。主机使用有效密钥和DS2432所使用的相同信息数据重新进行MAC计算。如果该结果和DS2432给出的MAC是匹配的,则器件是合法的,因为只有合法的DS2432才能正确地响应质询-响应过程。质询码是随机数据这一点是非常重要的。如果质询码始终不变,很容易遭受一个利用有效、静态、记录和回放的MAC (不是使用认证DS2432实时算出的MAC)进行回放攻击。

数据安全

除了提供从器件的认证功能外,同时强烈要求存放在器件中的数据是可信的。为实现这一点,DS2432的写访问是安全受限的。将数据从暂存器拷贝到EEPROM或控制寄存器之前,DS2432要求主机提供写访问认证MAC来证明其合法身份。DS2432根据暂存器中的新数据、密钥、需要更新的存储器页数据、以及其它数据(图9)计算该MAC。

合法主机知道密钥并可计算出有效的写访问MAC。拷贝命令执行过程中收到主机MAC时,DS2432将其与自身计算的结果进行比较。只有当二者匹配时,数据才会从缓冲存储器传输至目标EEPROM。当然,不能修改写保护的存储器页,即使MAC是正确的。

图9. 用于计算写访问认证MAC的输入数据
图9. 用于计算写访问认证MAC的输入数据

密钥保护

DS2432的架构允许直接向器件装入密钥。可通过读保护提供密钥保护,如果需要,还可以采用写保护提供密钥保护,这将永远不能改变密钥。只要在设备制造现场访问密钥是安全和可控的,这种保护等级是很有效的。

可以采用不同方法提升密钥保护等级: a) 由DS2432计算其密钥;b) 由DS2432在不同场合分阶段计算其密钥;c) 计算密钥时包含独一无二的器件ID号,生成与器件相关的密钥;d) 组合第2和第3种方法。

如果采用上面第1种方法,每个DS2432自己计算其密钥,只知道计算密钥的原始数据;永远不会暴露密钥本身。如果采用第2种方法,密钥在不同场合分阶段计算,只知道密钥的“本地”原始数据。这种方法可有效控制“最终”密钥的信息。如果密钥是与器件相关的(第3种方法),主机还需要增加一个计算步骤。但如果一个器件的密钥被意外发现,潜在危害却可降至最低。如果密钥分阶段计算,并且与具体器件相关(第4种方法),可获得最高保护等级。但是,为确保系统保密性,主机和从机一样需要在不同地点进行设置。

计算密钥之前,必须先装入一个已知数值作为密钥。有了这个已知密钥,必须向四个存储器页之一写入计算新密钥的32字节数据。接下来,需要向DS2432的暂存器写入一个局部密钥。局部密钥可以是用于计算的存储器页码和独一无二的器件ID号(CRC字节除外),或任何其它与应用相关的8字节数据。

如果指示DS2432计算密钥,则DS2432启动SHA-1引擎,使用图10所示的输入数据计算MAC。20字节MAC的最低8个字节自动拷贝到密钥存储器地址,立即成为有效密钥。

图10. 计算密钥的输入数据
图10. 计算密钥的输入数据

结论

了解安全认证功能并巧妙实现,可提供极具竞争力的优势。认证不但保护了程序代码,而且公共硬件平台利用安全的软件功能设置有助于降低生产成本。DS2432的数据安全性甚至可以实现远程配置修改,节省了技术人员的宝贵时间。从DS2432所展示的功能可以看出,一个小小的硅晶片将对收益产生巨大的影响。

1-Wire是Maxim Integrated Products, Inc.的注册商标。

DeepCover是Maxim Integrated Products, Inc.的注册商标。



相关型号
DS1961S 带有SHA-1引擎的iButton 1Kb EEPROM  
DS1963S 带有SHA-1功能的iButton金融器件  
DS2460 SHA-1协处理器,带有EEPROM 免费样品  
DS2465 DeepCover安全认证器具有SHA-256协处理器和1-Wire主机功能 免费样品  
DS24L65 DeepCover安全认证器,具有SHA-256协处理器和1-Wire主机功能 免费样品  
DS28E01-100 1Kb、保护型1-Wire EEPROM,带有SHA-1引擎 免费样品  
DS28E02 1-Wire SHA-1认证器,具有1Kb EEPROM,工作在1.8V 免费样品  
DS28E10 1-Wire SHA-1认证 免费样品  
DS28E15 内置1-Wire SHA-256和512位用户EEPROM的DeepCover安全认证方案 免费样品  
DS28E22 内置1-Wire SHA-256和2Kb用户EEPROM的DeepCover安全认证方案 免费样品  
DS28E25 内置1-Wire SHA-256和4Kb用户EEPROM的DeepCover安全认证方案 免费样品  
DS28EL15 DeepCover安全认证器,带有1-Wire SHA-256和512位用户EEPROM 免费样品  
DS28EL22 DeepCover安全认证器,带有1-Wire SHA-256和2Kb用户EEPROM 免费样品  
DS28EL25 DeepCover安全认证器,带有1-Wire SHA-256和4Kb用户EEPROM 免费样品  


下一步
EE-Mail 订阅EE-Mail,接收关于您感兴趣的新文档的自动通知。

© Jun 23, 2006, Maxim Integrated Products, Inc.
The content on this webpage is protected by copyright laws of the United States and of foreign countries. For requests to copy this content, contact us.

APP 3675: Jun 23, 2006
应用笔记3675, AN3675, AN 3675, APP3675, Appnote3675, Appnote 3675