DS1991型信息纽扣的密钥破解和等效替换(论文).doc
DS1991信息纽扣的密钥破解和等效替换
杨振野,韦方明,陈坤城,胡兴敏
摘要:本文详细分析了DS1991/DS1425型信息纽扣(TM卡)的初始化、ROM命令和功能命令的操作流程和工作时序图,讨论了密钥破解原理,进而按照1-wire的接口原理和信息纽扣密钥破解的需要给出了适用于DS1991/DS1425型信息纽扣密钥破解和等效替换的电气原理图。
关键词:信息纽扣,密钥破解,等效替换
分类号:TP309.7 文献标识码:B
1. 引言
信息纽扣(iButton)又称TM卡(Touching Memory),是遵循1-wire单总线通信协议的存储器芯片,目前常见的型号有DS1991和DS1961S。DS1425为早期产品,现已由DS1991所取代,其时序与DS1991完全一致。
与目前多数串行数据通信方式(如SPI和I2C)不同,1-wire单总线采用单根信号线(地线除外)实现数据的双向传输。它具有节省I/O 线资源、结构简单、成本低廉且便于扩展和维护等优点。单总线适用于单个主器件系统控制一个或多个从器件的场合。当单总线上只有一个从器件时,可按照单节点方式操作。
由于信息纽扣应用时所需连接线少(共2条,除地线外仅1条)、外壳坚固并能承受较苛刻的环境、易于随身携带,因而常被用于PC机软件狗、身份识别或电子支付。多密钥信息纽扣DS1991是Dallas公司推出的具有密钥保护功能的信息纽扣封装形式的非易失型数据存储器,在目前的软件狗中最为常见。DS1961S为新一代安全存储器,采用SHA-1引擎保护,因而具有更高的安全性。
DS1991的存储器被分成3个安全存储分区,每个分区具有384bit的存储容量,且每个分区都有独立的64bit识别码(ID)和64bit密钥。读写安全存储区时,器件将验证每个分区的64bit密钥,若密钥不匹配,则安全存储器只能被擦写,但不能被读出。
国内一些公司由于人员流动大或文档保管不力,常常会出现信息纽扣密钥丢失的情况。如果不能找回丢失的密钥,则会使应用系统不能继续销售,给企业带来损失。为此,必须采取一种较为简便的方法为企业找回信息纽扣的密钥以避免不应有的损失。
2. 信息纽扣的操作流程分析
所有的单总线器件的操作流程都基本相同,即可分为初始化、执行ROM命令和执行功能命令三个基本步骤。每次访问单总线器件都必须按照这个操作流程。如果操作流程有误,单总线器件就不会响应主器件。对于不同器件,具体的ROM命令和功能命令的命令集可能并不完全相同,但操作顺序不会改变。
所谓初始化,就是由主器件将单总线从高电平置为低电平并保持480μs以上,使连接于单总线上的所有从器件都复位。对器件的所有访问过程都必须从初始化开始。初始化流程如图3.2所示。首先由主器件发出的复位脉冲,然后从器件给出应答脉冲。从器件的应答脉冲使主器件知道单总线上有从器件存在且准备就绪。发送复位脉冲和发送在线应答的时序要求请参见[1]。
DS1991/DS1425的ROM命令共有4条,Read ROM(读ROM代码)、Match ROM(匹配ROM代码)、Search ROM(搜索ROM代码)和Skip ROM(越过ROM代码)。
DS1991所支持的功能命令共有6条,其中暂存器操作命令3条:Read Scratchpad(读暂存区)、Write Scratchpad(写暂存区)和Copy Scratchpad(复制暂存区);安全存储分区操作命令3条:Read Subkey(读安全存储区)、Write Subkey(写安全存储区)和Write Password(写密钥)。3条安全存储分区操作命令与密钥有关。
图1 初始化流程图
功能命令由3个字节组成。第一字节为功能命令代码,它定义了6个可执行的功能命令;第2字节是操作地址,其中的低6bit存储分区内的起始地址,高2bit是安全存储分区代码;命令的第3字节是第2字节的反码,如表1所示。
表1 DS1991功能命令组成
命令 |
第1字节 |
第2字节 |
第3
字节 |
|
B7 B6 |
B5 B4 B3 B2 B1 B0 |
|
Read Subkey(读安全存储分区) |
66H |
安全存储分区代码:00,01,10 |
010000B~111111B |
第2字节的反码 |
|
|
|
|
Write Subkey(写安全存储分区) |
99H |
|
Write Password
(写密钥) |
5AH |
0 0 0 0 0 0 |
|
所有这些信号应答时序中,除了应答脉冲,都由主器件发出同步信号。
3. 密钥破解原理
但由于通信流程未加密,而验证密钥时又必须由微处理器将密钥以明文形式传送给器件,所以其密钥易被截获故安全性不高。
图2 复位时序
由DS1991的时序图和命令流程[1]可知,我们只要采用单片机系统构成密钥破解装置快速跟踪并分析单总线的数据,即可将密钥分析出来。
DS1991的复位时序图如图2所示。单片机首先发送复位脉冲使单总线为低电平的持续时间大于tRSTL;然后,主器件释放单总线,同时转换为接收模式。通过上拉电阻将单总线拉至高电平;从器件在检测到数据端口的上升沿后,将延时等待tPDH,接着发送应答脉冲tPDL。为了检测应答脉冲,主器件必须在tMSP(采样时间)时刻后检测单总线的逻辑电平。tRSTH窗口时间必须不小于tPDHMAX、tPDLMAX与tRECMIN的三项之和。一旦tRSTH结束,器件之间即可开始数据通信。
分析流程如图3所示。首先,必须分析出由读写器发出的1-WIRE复位脉冲,否则就一直等候。1-WIRE复位脉冲一旦出现,紧随其后的必然是四种ROM命令之一。必须分析发出的ROM命令是哪一种,以确定在其后应放弃多少个字节的数据。追踪装置在放弃若干字节之后,即可接收到功能命令。一旦分析出是功能命令,如为66H、99H或5AH之一,即可得到相应的密钥和安全存储分区区号。由前文可知,一个DS1991或DS1425最多可能使用3个密钥。所以,即使分析出某一个密钥也并不意味着破解工作结束,还要继续等候分析。
图3 密钥分析流程图
密钥破解装置的电气原理图如图4所示。这里采用了液晶显示器,可以使装置具有更多的功能。为了适应标准的单总线通信协议,破解装置的晶振的频率要足够高,这里采用了36MHz。为了避免破解装置对原单总线应用系统产生影响,在引入线中增加了非门74HC04。图3中的“CRYPTO EEPROM”为AT88SC0104C,是非易失型安全存储器,既用于存储解出的密钥,又可以防范被抄板。
4. DS1991/DS1425的等效替换
所有的信息纽扣都具有惟一的ROM代码,如果信息纽扣读写器(即读卡器)验证ROM代码,则可以排除直接用另外的信息纽扣代用的可能性。但是,如果我们采用单片机系统按照1-WIRE通信协议来模拟实现DS1991/DS1425的全部功能,则完全没有问题。等效替换的技术路线如下:
A. 追踪读写器所使用的信息纽扣全部密钥;
B. 使用读写器,由所破解的密钥和分区号读出DS1991/DS1425中所使用的各安全存储分区的全部内容;
C. 将所读出的各安全存储分区的全部内容置入等效替换装置中的单片机系统。
图4 密钥破解装置的电气原理图
结论
本文作者创新点:分析了DS1991和DS1425两种信息纽扣器件的密钥破解原理,给出了实用的密码破解装置的硬件设计和相应的软件流程图。
参考文献
[1] Dallas公司. DS1991 Multi-key iBUTTON. Dallas公司网页:http:// www.maxim-ic.com/products/ibutton/
[2] 李裕华,李舫,孙明.自装IC智能卡卡机.西安:西安交通大学出版社,2005.
[3] 远致科技有限公司(烟台)网页:http://www.1-wire.com.cn
[4] 实诚电子网页:基于AT88SC0104C的电子产品加密技术.http:// www.setchief.com.
[5] 基于混沌保密的USB软件加密狗及其反解密研究.微计算机信息.2005,21(8):15~17
[6] 杨振野.IC卡技术及其应用.北京:科学出版社,2006.
Exploitation and Replacement of iButton DS1991 Keys
ZHENYE YANG,FANGMING WEI,KUNCHENG CHEN,XINGMIN HU
Department of Electronic Information Engineering
Guangdong Polytechnic Normal University,510665
Abstract:The flow diagram and timing chart of initialization, ROM commands and function commands of DS1991/DS1425 is analyzed in the paper, and then the exploitation principle of DS1991 Keys is discussed detail. Then, key exploitation and replacement of iButton DS1991/DS1425 is introduced in this paper. According to interface of 1-wire and Exploitation and Replacement of iButton DS1991 Keys, the practical hardware is given in the paper.
Keywords:Information button, Key,Exploitation, Replacement
作者简介:杨振野(1957-),男(汉族),江苏南通人,广东技术师范学院电子信息工程系教授,博士,主要从事IC卡应用装置与系统和医用电子仪器(心电仪器和B超)方面的研究。
Biography: Zhenye Yang(1957-),male(Han),Nantong of Jiangsu Province,Ph D. Professor of Electronic Information Engineering Department,Guangdong Polytechnic Normal University,main interesting: identification card application and biomedical engineering.
通信地址:广州市中山大道293号(邮编:510665);电话:020-85662866,13710680786;E-mail:yang1006@21cn.com
基金资助项目:粤科计字[2004]211号(2004-12-24)