用DS2432实现双向认证及软件功能保护
2008-07-17
作者:罗 敬, 张益星
摘 要: 介绍了一种应用DS2432器件实现双向认证及软件功能保护的方法。首先分析了信息认证的基本计算模型,然后应用DS2432器件并使用SHA-1算法实现了1-Wire" title="1-Wire">1-Wire网络的安全认证" title="安全认证">安全认证。分析了其质询-响应认证过程,从而得出可将系统密钥存放在安全存储器" title="安全存储器">安全存储器中,而不必存放在程序代码内。这种系统便于扩展,DS2432的数据安全性甚至可以实现远程配置信息修改,节省设计时间,实现了低成本的安全认证功能。
关键词: 认证 密钥 SHA-1算法 信息认证码MAC 1-Wire 数据安全
高技术电子产品保证正确的身份识别至关重要,系统供应商需要在外有黑客攻击这样的“外患”,内有克隆硬件这样的“内忧”的环境中保护其产品的安全性。实现这些安全需求的关键是认证。Maxim/Dallas Semiconductor公司的DS2432器件[1]以安全存储器形式提供加密控制和保护方案,非常适合需要知识产权保护、HW/SW许可权管理、安全软件功能与状态设置、防篡改数据存储等 方面的应用。
1 认证机制
1.1 认证
认证是指两个或多个实体之间建立身份认可的过程。单向认证情况下,一方需向另一方证明其身份的合法性。对于双向认证,双方需要彼此向对方证明自己的身份。最常用的认证方法是利用口令实现的。使用口令的主要问题是应用中口令是暴露的,极易被探测。
1883年,弗兰德斯语言学家Auguste Kerckhoffs发表了一篇关于军事加密的文章,震惊了整个世界。Kerckhoffs认为:安全不应依靠隐匿性(例如非公开的保密算法),而应依靠算法及其密钥的力量。如果安全受到破坏,只需替换密钥,而不是替换整个系统[2]。
基于密钥的认证过程[2]如图1所示。密钥(私密)和需要认证的数据(“信息”)作为输入,计算出信息认证码MAC后附加到信息上。信息接收方进行相同的运算,将MAC计算结果与随信息一起收到的MAC比较,如果二者相同,则信息是合法的。
但是,这种认证过程有一个弱点。非法者如果截取到信息,可随后回放此信息,以仿冒合法身份。为克服这种固有的MAC弱点和证明MAC发送方的合法身份,接收方可产生一个随机数,作为质询码回送给发送方。MAC发送方必须根据密钥、信息和质询码重新计算新的MAC,并返回给接收方。如果对应任何质询码发送方都可产生有效的MAC,则可以确信发送方是知道密钥的,其身份是合法的,该过程就是质询-响应认证。
1.2 SHA-1算法
在加密学中,由信息产生固定长度MAC的算法称为“单向”散列算法。单向算法从固定长度MAC输出推演出较长的原始信息极为困难。相反,通过加密的方法则较为容易,因为加密的信息与原始信息是成正比的。
SHA-1是经过深入研究和国际认可的单向散列算法[2-4],由National Institute of Standards and Technology (NIST)开发。SHA-1已经发展成为国际标准ISO/IEC 10118-3:2004,算法的数学基础是公开的。
SHA-1算法的主要特点包括以下几点: (1)不可逆性,从计算角度讲,不可能从MAC推演出输入信息。(2) 抗冲突性,对于特定MAC,找到多于一种输入信息是不现实的。(3)高雪崩效应,输入的任何变化都会使MAC结果产生巨大的变化。基于这些原因以及对该算法的国际性研究,Maxim/Dallas Semiconductor公司选择SHA-1作为其安全存储器的质询-响应认证算法。
2 利用DS2432实现低成本安全认证功能
DS2432 EEPROM内置SHA-1引擎,借助1-Wire接口,可以方便地将其加入到任何带有数字处理能力的电路中,例如带微控制器(μC)或FPGA的电路。最简单的情况下,仅仅需要一个空闲I/O引脚以及一个上拉电阻即可构成1-Wire接口。如果板上的计算能力或者剩余的程序存储空间不足以完成SHA-1算法MAC计算,设计者可以采用DS2460 SHA-1协处理器,或将计算任务转交给系统或网络中最近的主机。协处理器还有另一个好处,即可将系统密钥存放在安全存储器中,而不必存放在程序代码内[1]。
每个子系统电路板上的DS2432可以保护系统供应商免受上述欺骗。除了进行质询-响应认证外,DS2432还可以在其用户EEPROM内存储独立的配置信息。配置数据可防止非法篡改,且系统供应商具有完全的控制权。配置信息可以位图形式或代码字形式存储,完全由系统设计者决定。根据实际需要,应尽可能简单地设置配置信息。由于DS2432提供方便的1-Wire接口,设计者只需增加如图2所示的一个MOSFET和一个探测点,就可以在电路板其他部分不上电的情况下,通过探测点向DS2432写入配置信息。MOSFET将DS2432与其他电路隔离,当子系统正常工作时,也不会妨碍DS2432的正常访问。
该配置信息写入方法还带来另一个好处,系统在用户现场安装完毕后,允许进行远程更新/更改。任何未用于配置/功能管理的用户EEPROM均可采用电子标牌的形式实现电路板标识功能。
3 DS2432认证功能的设计与实现
3.1 器件总体架构
DS2432的1-Wire接口、1KB SHA-1安全存储器的主要数据单元和数据流路径如图3所示。在这个模型中包含了8字节密钥和临时存储质询码的缓冲存储器" title="缓冲存储器">缓冲存储器(暂存器)以及主要数据单元。数据单元包括独一无二的器件ID号、四个用户EEPROM页面、控制寄存器" title="控制寄存器">控制寄存器和系统常数。
器件ID号用作1-Wire网络中的节点地址,同时还用于认证过程。用户存储器存放待认证“信息”的主要部分。系统常数有助于满足格式需求和完成填充功能,从而构成SHA-1算法的64字节输入数据块。控制寄存器执行特定的器件功能,例如可选的密钥写保护或EEPROM仿真模式,控制寄存器通常不参与认证过程。
在这个模型中,可毫无限制地读取器件ID号和用户EEPROM的信息,并可完全读/写访问缓冲存储器,还可以直接装入密钥,但永远不能读取它。如若改变用户存储器或寄存器的内容,则要求主机和从机(即DS2432)计算出相同的写操作认证MAC,才可以打开缓冲存储器至EEPROM的路径。
根据MAC结果的不同用途,DS2432 SHA-1引擎具有三种不同的工作方式[3]。任何情况下,SHA-1引擎均接收64字节输入数据,并计算出20字节的MAC结果。不同之处在于输入数据。作为安全系统的根本需求,主机必须知道或者能够计算出应用中的有效/合法的从器件密钥。
3.2 质询-响应认证MAC
DS2432的主要功能是完成质询-响应认证。主机发送一个随机质询码,指示DS2432根据该质询码、密钥、主机所选存储器页的数据以及其他数据计算出响应MAC,如图4所示。
DS2432完成计算后,将MAC回送给主机进行验证。主机使用有效密钥和DS2432所使用的相同信息数据重新进行MAC计算。如果该结果和DS2432给出的MAC是匹配的,则器件是合法的,因为只有合法的DS2432才能正确地响应质询-响应认证过程。质询码是随机数据这一点是非常重要的。如果质询码始终不变,很容易遭受一个利用有效、静态、记录和回放的MAC (不是使用认证DS2432实时算出的MAC)进行回放攻击。
3.3 数据安全
除了提供从器件的认证功能外,还强烈要求存放在器件中的数据是可信的。为实现这一点,DS2432的写访问是安全受限的。将数据从暂存器拷贝到EEPROM或控制寄存器之前,DS2432要求主机提供写访问认证MAC来证明其合法身份。如图5所示,DS2432要根据暂存器中的新数据、密钥、需要更新的存储器页数据以及其他数据计算该MAC。
合法主机知道密钥后可计算出有效的写访问MAC。拷贝命令执行过程中收到主机MAC时,DS2432将其与自身计算的结果进行比较。只有二者匹配,数据才会从缓冲存储器传输至目标EEPROM,但不能修改写保护的存储器页,即使MAC是正确的。
3.4 密钥保护
DS2432的架构允许直接向器件装入密钥。可通过读保护提供密钥保护,如果需要,还可以采用写保护提供密钥保护,但这将永远不能改变密钥。只要在设备制造现场访问密钥是安全和可控的,这种保护等级是很有效的。
可以采用不同方法提升密钥保护等级[1]:(1)由DS2432计算其密钥。(2)由DS2432在不同场合分阶段计算其密钥。(3)计算密钥时包含利用独一无二的器件ID号,生成与器件相关的密钥。(4)组合利用(2)和(3)两种方法。
如果采用上面第1种方法,每个DS2432自己计算其密钥,只知道计算密钥的原始数据,永远不会暴露密钥本身。如果采用第2种方法,密钥在不同场合分阶段计算,只知道密钥的“本地”原始数据。这种方法可有效控制“最终”密钥的信息。如果采用第3种方法,密钥是与器件相关的,主机还需要增加一个计算步骤。但如果一个器件的密钥被意外发现,潜在危害却可降至最低。如果采用第4种方法,密钥分阶段计算,并且与具体器件相关,可获得最高保护等级。但是,为确保系统保密性,主机和从机一样需要在不同地点进行设置。
计算密钥之前,必须先装入一个已知数值作为密钥。有了这个已知密钥,必须向四个存储器页之一写入计算新密钥的32字节数据。接下来,需要向DS2432的暂存器写入一个局部密钥。局部密钥可以是用于计算的存储器页码和独一无二的器件ID号(CRC字节除外),或任何其他与应用相关的8字节数据。
如果指示DS2432计算密钥,则DS2432启动SHA-1引擎,使用图6所示的输入数据计算MAC。20字节MAC的最低8个字节自动拷贝到密钥存储器地址,立即成为有效密钥。
DS2432巧妙实现的安全认证功能,不但保护了程序代码,而且公共硬件平台利用安全的软件功能设置也有助于降低生产成本;DS2432的数据安全性甚至可以实现远程配置信息修改,节省了技术人员的宝贵时间;从DS2432所展示的功能可以看出,一个小小的硅晶片将对收益产生巨大的影响,实现了低成本的安全认证。
参考文献
[1] Maxim/Dallas Semiconductor. Protecting the R&D investment—two-way authentication and secure soft-feature settings. www.maxim.com.cn. 2005.
[2] SCHNE1ER B.应用密码学:协议,算法与C源程序[M].吴世忠,祝世雄,张文政等,译.北京:机械工业出版社,
2000.
[3] MEDHI D. HUANG D. MEHTA M, et al. Locationaware key management scheme for wireless seflS0r networks[C].Procedings of 2004 ACM Workshop on Se. curity of Ad Hoc and Sensor Networks.Washington DC. USA: ACM Press. 2004:29-42.
[4] LEE P P C, LUI J C S,YAU D K Y. Distributed collaborative key agreement protocols for dynam ic peer
groups[C]. Proc.of the ICNP,2002:53-62.