DS1991L多密钥iButton替代方案
扫描二维码
随时随地手机看文章
摘要:DS1991L多密钥iButton是由Maxim的6英寸晶圆厂生产,该晶圆厂的生产工艺已过时,且不再使用。DS1991L所提供的密码保护已不再是数据安全领域的新技术。Maxim已开发出安全级别高于DS1991L而且成本更低的替代方案。因此,为了降低旧设备升级到新的生产工艺时的开发成本,Maxim启动了最后一次采购DS1991L的流程,并鼓励所有DS1991L用户在现有库存用完之前,将产品移植到更新、更安全的iButton器件。本应用笔记讨论了替代现有DS1991L应用的三种选择。每种替代方案都具有更好的性能。
DS1991L概述及背景资料
密码保护不再属于先进技术。基于密码保护的系统其最大缺陷是通过窃听通信可以最终破译密码。
由于DS1991L不提供任何写保护功能,恶意攻击者可以很容易篡改密钥信息(标识、密码、数据),从而造成器件在应用中失效。具有质询-响应认证功能以及对应用数据加密的器件成为更安全、性价比更高的替代方案。
在DS1991L应用中,1-Wire®主机必须知道如何识别相关密钥,必须知道对应的密码。使用DS1991L之前,必须安装识别码、密码和密钥数据。在此之后,器件可以进行现场操作,经常需要读取密钥数据、更换密钥。该器件优势之一是内置电池的NV SRAM技术,即便主机(读写头)掉电,也能保证从暂存器到加密数据区域的复制过程不受影响。
DS1991L替代方案
三款iButton可用来替代DS1991L。这三款器件是DS1977、DS1961S和DS1963S。表1列出了这三款器件与DS1991L以及各自特性比较。
DS1977与DS1991L类似,采用密码保护功能,两者特性非常接近。DS1961S和DS1963S采用基于SHA-1的认证方案,即采用加密措施。没有加密时,应用数据是公开的,并可读取。DS1961S和DS1977采用EEPROM工艺,DS1963S采用NV SRAM工艺。
表1. 器件比较
器件型号 | ||||
特性 | DS1991L | DS1977 | DS1961S | DS1963S |
用户存储器 | 3 x 48字节,称为密钥 | 32K字节 | 128字节 | 8 x 2页,每页32字节(共512字节) |
安全性 | 三个独立的8字节密码(每个密码对应一个密钥),读、写操作采用同一密码 | 两个8字节密码(一个用于读操作、一个用于完全访问) | 一个8字节密钥,用于安全写操作 | 八个8字节密钥 |
数据管理 | 三个8字节密钥标示区域(每个区域对应一个密钥) | 推荐1-Wire文件系统 | 推荐1-Wire文件系统 | 推荐1-Wire文件系统 |
用于中间存储和数据验证的数据缓存器 | 64字节暂存器 | 64字节暂存器 | 8字节暂存器 | 32字节暂存器 |
认证 | — | — | 3字节质询码;20字节MAC码响应 | 3字节质询码;20字节MAC码响应 |
写操作计数器 | 0 | 0 | 0 | 16个(8个用于存储器页、8个用于密钥) |
工艺 | NV SRAM | EEPROM | EEPROM | NV SRAM |
电源 | 内置电池 | 主机寄生供电 | 主机寄生供电 | 内置电池 |
1-Wire速率 | 标准速率 | 标准速率和高速模式 | 标准速率和高速模式 | 标准速率和高速模式 |
相对成本¹ | — | 高于DS1991L | 远低于DS1991L | 略高于DS1991L |
温度范围 | -40°C至+70°C | -40°C至+85°C | -40°C至+85°C | -40°C至+85°C |
其它功能 | 密码不匹配时,伪随机数发生器产生虚假数据 | 可工作在无密码保护状态 | 存储器和密钥带有写保护;EPROM仿真模式 | 伪随机数发生器;可用作SHA-1协处理器 |
DS1977密码保护的32KB EEPROM iButton
与DS1991L相比,DS1977存储器容量更大(32KB)、支持1-Wire高速模式并使用两个密码,一个用于读操作,另一个用于完全访问操作。可禁止DS1977的密码保护功能,使其用于无需安全保护的设备。尽管成本高于DS1991L,但从单字节成本看,DS1977在所有替代型号和DS1991L中成本最低。
由于采用EEPROM,DS1977应用中的1-Wire主机必须能够实现强上拉,以便为读、写操作提供电源。在接触式操作环境下,可能导致读操作错误,在写操作时需要额外的防护措施。如果使能密码保护,则1-Wire主机必须知道至少一个密码(读操作或完全访问)。对于任何基于密码保护的系统,可通过窃听通信最终破译密码。
将DS1977用于密码保护之前,必须安装密码并使能了密码保护功能。为了优化大容量存储器的使用,建议按照1-Wire文件系统(参考应用笔记114:“1-Wire File Structure”)格式化并使用存储器。然后将应用文件(或数据)写入DS1977。写操作完成后,该器件准备就绪,可用于存储区域操作,即可以访问存储器数据并更改数据。
为将当前的DS1991L应用升级到DS1977,需要更改相应的应用程序,以识别新器件、器件命令,并在正确的时间置于强上拉状态,为器件供电。通常,建议在更改密码前先禁止密码保护功能。安装密码时,须确保已定义密码的所有8个字节。发送Copy Scratchpad命令之前,需要验证暂存器内容。在新密码从暂存器成功复制到对应的存储区域后,应采用不同数据覆盖暂存器内容,以便擦除“开放空间”保留的密码。为在接触式操作环境下可靠运行,强烈建议按照应用笔记159:“在iButton应用中通过软件方法实现可靠的1-Wire通信”中有关保证数据完整性的措施进行设计。
DS1961S带有SHA-1引擎的1K位保护EEPROM iButton
DS1961S的安全性比DS1991L高得多。DS1961S采用EEPROM,并支持1-Wire高速通信模式。与基于密码的系统不同,该器件的安全功能基于所安装的密钥,而且永远不会在存储区之间传输(暴露信息)。密钥可以是器件特定信息,如:利用主机密钥、存储器数据、注册码以及常数按照SHA-1算法计算得到密钥。除密钥外,所有保存在DS1961S的数据开放读取权限。但是,进行写操作时需要知道密钥。需要进行数据加密,以防止公众得到器件存储的数据。这三款替代型号,包括DS1991L在内,DS1961S的成本最低。由于采用EEPROM,DS1961S可从1-Wire主机获得供电电源。在接触式操作环境下,器件的写操作与NV SRAM器件相比,数据遭到破坏的风险略高一些。
在5V电源、采用2.2kΩ或更低上拉电阻的环境中,DS1961S 应用中的1-Wire主机无需采取任何特殊的供电措施。如果上拉电压低于5V,应减小上拉电阻(最方便的方法,见应用笔记4255:“为1-Wire器件的扩展功能供电”),或采用强上拉以便提供写操作和器件运行SHA-1引擎所需的额外功率。DS1961S主机必须知道或能够计算所需的密钥,以便验证DS1961S是系统合法用户,从而可以更改EEPROM数据。与计算自身SHA-1 MAC码(信息认证码)不同,主机可使用带EEPROM的DS2460 SHA-1协处理器。
使用DS1961S之前,必须先定义、安装器件密钥。经过计算的密钥其安全性要高于类似于加载密码的固定密钥(常数)。其次,应用所需的数据必须写入器件。对于容量相对较小的存储器,可选择使用1-Wire文件系统。如果适用,可对单页或所有存储器页以及密钥进行写保护,以防止使用过程中发生变化。也可以将其中一个存储器页置于EPROM仿真模式,该模式下对应位只能从1变为0;该项功能在一些应用中非常有用。初始设置完成后,DS1961S准备就绪可以进行现场操作,即访问存储器数据、改写数据。
为将现有的DS1991L应用升级到DS1961S,需要以下两个改动:
- 修改应用软件,使其识别新器件并知道如何使用。
- 如果工作在低压环境,必须通过软件激活强上拉功能,以便为计算和安装新密钥、计算页MAC和更新EEPROM提供所需的功率。
发送Copy Scratchpad命令之前,始终验证暂存器。为保证在接触式操作环境下可靠运行,强烈建议按照应用笔记159中有关保证数据完整性的措施进行设计(参见上文)。有关SHA-1安全性的其它信息,请参考本文档最后给出的应用笔记列表。需要强调的是应用笔记1820:“White Paper 1: SHA Devices Used in Small Cash Systems”中说明了DS1961S在电子支付应用中作为令牌的使用情况。
DS1963S SHA iButton
DS1963S的安全性远远高于DS1991L。DS1963S采用NV SRAM,对存储器页和密钥执行写操作计数,并支持1-Wire高速通信模式。DS1963S和DS1961S类似,均采用密钥进行认证;密钥已安装但永远不会在存储区之间传输(暴露信息)。器件支持8个密钥,每个密钥对应两个存储器页。这些密钥可以是器件特定信息,如:利用主机密钥、存储器数据、注册码、存储器页号以及常数按照SHA-1算法计算得到的密钥。除密钥外,保存在DS1963S的数据可以开放读取权限。为了防止公众得到器件存储的数据,需要进行数据加密。DS1963S与DS1961S的不同之处在于:在不知道密钥的情况下也可以更改DS1963S的数据;器件的存储器页或密钥不带写保护功能。DS1963S成本低于DS1977;如果四个或多个应用共用一片DS1963S,每个应用的成本低于其它几款替代型号。由于采用NV SRAM,读操作、写操作以及SHA-1计算所需电源均由内部电池提供。这一功能对写操作非常有利。一旦接受Copy Scratchpad命令,即使器件断开与主机的连接也不会影响数据传送到存储器页或密钥。
DS1963S的存储器数据在无需知道密钥的前提下即可进行修改。因此,必须保留部分器件提供的应用数据空间,用于存储“签名”,以便验证应用数据的有效性。器件通过质询-响应进行认证后,还要进行其它认证操作,利用存储器页的内部密钥进行验证。签名可以是20字节的SHA-1 MAC码。密钥用来计算签名数据,通常不存储在DS1963S内;除器件认证密钥外,主机必须知道签名密钥,以便验证数据并产生将要写入器件的验证数据。与计算自身SHA-1 MAC不同,主机应使用带EEPROM的DS2460 SHA-1协处理器。在存储旧数据的地址(例如,电子支付应用中完成一次支付后),为防止回复攻击,嵌入签名的计算必须包含页的写操作计数值。
使用DS1963S之前,必须先定义、安装器件认证密钥。经过计算的密钥其安全性要高于类似于加载密码的固定密钥(常数)。其次,应将所需的数据,包括用于数据认证的有效嵌入签名,写入器件。为允许多个应用共用一个DS1963S,推荐使用1-Wire文件系统。初始化设置完成后,DS1963S就绪可以进行现场操作,即可访问存储器并更改数据。
为将现有的DS1991L应用升级到DS1963S,需要对应用软件进行修改,以识别新型号、了解命令、识别相应的数据页(多页)并可验证器件及其存储数据的有效性。典型情况下,应用改变存储区的数据,需要计算并在新的数据页嵌入有效签名。发送Copy Scratchpad命令之前总是需要验证暂存器。为保证在接触式操作环境下可靠运行,建议按照应用笔记159有关保证数据完整性的措施进行设计。有关SHA-1安全性的详细信息,请参考本文档最后给出的应用笔记列表。需要强调的是应用笔记1820中说明了DS1963S在电子支付应用中作为令牌使用以及SHA-1协处理器的情况。
方案选择
上述每款替代器件需要对现有软件进行改动(如DS1977)或需要开发新软件。DS1977需要(DS1961S可能需要)将1-Wire主机升级到支持强上拉,以便提供足够的功率。表2列出了每种替代方案的优、缺点。
表2. 替代方案
DS1977 | DS1961S | DS1963S | |
所需主机硬件改动 | 增加强上拉 | 增加强上拉(必要时) | 无 |
应用软件改动 | 修改现有软件 | 需要开发新软件 | 需要开发新软件 |
优点 | • 存储器容量远大于DS1991L、DS1961S以及DS1963S • 独立密码,分别用于读操作和完全访问 |
• 成本最低 • 无法捕获密码 • 写操作需要知道器件密钥 • 基于质询-响应认证和安全写操作,支持更高的安全等级 |
• 无法捕获密码 • 基于质询-响应认证、数据内嵌签名和写操作计数值,支持更高的安全等级 • 多达8个程序可以共用同一器件 |
缺点 | • 安全性与DS1991L相似 • 单个程序或多个程序共用同一密钥 |
• 单个程序或多个程序共用同一密钥 | • 没有密钥的情况下可以更改数据或使其无效 |
如果不能修改硬件(强上拉),则DS1977无法用作替代产品。
如果硬件接口无法提供足够的电流支持DS1961S通信,DS1963S则是唯一选择。由于该器件的安全性基于密钥(而不是密码),DS1963S的安全性更高,如果4个应用或更多应用共用同一器件,性价比也更高。DS1963S的应用软件比较复杂,但速度不会低于DS1991L,因为该器件支持1-Wire高速通信模式。DS1963S的缺点是每个程序由于嵌入签名,数据容量较低。但是,单个程序可利用多个数据存储器页和密钥补偿这一缺陷。
如果系统能够选择强上拉或不需要强上拉,DS1961S则是一个性价比较高的选择。由于DS1977与DS1991L的原理最接近,使用该器件对软件的改动最少。
总结
本应用笔记讨论了替代现有DS1991L应用的三款器件以及采用新技术的优势。每个器件都需要对应用软件进行修改(有些情况下改动较大)以及对1-Wire主机硬件进行修改(DS1963S除外,DS1961S在某些情况下不需要)。尽管软件改动较大,但采用基于SHA-1认证的应用具有更高的安全性,并且性价比高于DS1991L。利用DS2460 SHA-1协处理器有助于简化实现SHA-1安全算法所需的软件改动。