您现在的位置:首页 > 技术资料 | ![]() |
DS2432双向认证及软件功能保护
在冒名顶替、伪造证件行为猖獗的年代,保证正确的身份识别至关重要。这不仅对个人如此,对电子产品也是如此。系统供应商需要在外有黑客攻击这样的“外患”,内有克隆硬件这样的“内忧”的环境中保护其产品的安全性。实现这些安全需求的关键是认证。 什么是认证? 基于密钥的认证过程如图1所示:密钥(私密)和需要认证的数据(“信息”)作为输入,来计算信息认证码,即MAC。MAC然后附加到信息上。信息接收方进行相同的运算,将MAC计算结果与随信息一起收到的MAC比较。如果二者相同,则信息是合法的。
但是,这种基本MAC计算模型也有一个弱点。非法者如果截取到信息,可随后回放此信息,以仿冒合法身份。为克服这种固有的MAC弱点和证明MAC发送方的合法身份,接收方可产生一个随机数,作为质询码回送给发送方。MAC发送方必须根据密钥、信息和质询码重新计算新的MAC,并返回给接收方。如果对应任何质询码发送方都可产生有效的MAC,则可以确信发送方是知道密钥的,其身份是合法的(图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/Dallas Semiconductor选择SHA-1作为其安全存储器的质询-响应认证算法。 低成本安全认证—功能实现
嵌入式硬件/软件授权管理 具有64位有效密钥的DS2432可通过以下两种安全方法提供给被授权者或第三方制造商:a) 由参考设计授权公司预先编程;或b) 由Maxim/Dallas Semiconductor根据授权公司的输入信息预先编程并供货给第三方制造商。无论采用何种方法,供给被授权者或制造商的器件数量都是已知的,可据此收取授权许可费用。
验证硬件的合法性
第一种情况下,固件/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网站下载。
可毫无限制地读取器件ID号和用户EEPROM。并可完全读/写访问缓冲存储器。可以直接装入密钥,但永远不能读取它。改变用户存储器或寄存器的内容要求主机和从机(即DS2432)计算出相同的写操作认证MAC,才可以打开缓冲存储器至EEPROM的路径。 取决于MAC结果的不同用途,DS2432 SHA-1引擎具有三种不同的工作方式。任何情况下,SHA-1引擎均接收64字节输入数据,并计算出20字节MAC结果。不同之处在于输入数据。作为安全系统的根本需求,主机必须要么知道、要么能够计算出应用中有效/合法从器件的密钥。 质询-响应认证MAC
DS2432完成计算后,将MAC回送给主机进行验证。主机使用有效密钥和DS2432所使用的相同信息数据重新进行MAC计算。如果该结果和DS2432给出的MAC是匹配的,则器件是合法的,因为只有合法的DS2432才能正确地响应质询-响应过程。质询码是随机数据这一点是非常重要的。如果质询码始终不变,很容易遭受一个利用有效、静态、记录和回放的MAC (不是使用认证DS2432实时算出的MAC)进行回放攻击。 数据安全 合法主机知道密钥并可计算出有效的写访问MAC。拷贝命令执行过程中收到主机MAC时,DS2432将其与自身计算的结果进行比较。只有当二者匹配时,数据才会从缓冲存储器传输至目标EEPROM。当然,不能修改写保护的存储器页,即使MAC是正确的。
密钥保护 可以采用不同方法提升密钥保护等级: 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个字节自动拷贝到密钥存储器地址,立即成为有效密钥。
结论
|