关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > DS2432双向认证及软件功能保护

DS2432双向认证及软件功能保护

——
作者:时间:2007-01-26来源:《Maxim》收藏

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

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

本文引用地址:http://www.eepw.com.cn/article/21132.htm

什么是认证?

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

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

基于密钥的认证过程如图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作为其安全存储器的质询-响应认证算法。

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

ds2432 eeprom内置sha-1引擎,借助1-wire接口,可以方便地加入到任何带有数字处理能力的电路中,例如带微控制器(μc)的电路。最简单的情况下,仅仅需要一个空闲i/o引脚以及一个上拉电阻即可构成1-wire接口,如图3所示。如果板上的计算能力或者剩余的程序存储空间不足以完成sha-1 mac计算,设计者可以采用ds2460 sha-1协处理器,或将计算任务转交给系统或网络中最近的主机。协处理器还有另一个好处,可将系统密钥存放在安全存储器中,而不必存放在程序代码内。

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

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

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

验证硬件的合法性

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

第一种情况下,固件/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)。

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

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

合法主机知道密钥并可计算出有效的写访问mac。拷贝命令执行过程中收到主机mac时,ds2432将其与自身计算的结果进行比较。只有当二者匹配时,数据才会从缓冲存储器传输至目标eeprom。当然,不能修改写保护的存储器页,即使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个字节自动拷贝到密钥存储器地址,立即成为有效密钥。

结论

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



关键词:

评论


相关推荐

技术专区

关闭