您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子元器件应用-SHA iButton API 概述
1of38绪论绪论绪论绪论DallasSHAiButton®(DS1963S)是一个智能令牌具有很高的安全性并支持多种服务本文简要介绍了使用SHAiButton实现数字认证和交易的应用并以一个示范服务程序为例来具体说明安装服务数据和处理电子交易的步骤本文还论述了主要API的调用方法介绍了命令注释列表和实现各种API的数据流程SHAiButton适用于多种应用批量运输电子门锁门镜控制计算机和网络访问控制电话付费停车计费器预付费表自动售货机软件授权什么是什么是什么是什么是SHASHA安全散列算法经过加密专家多年来的发展和改进已经成为公认的昀安全并被广泛使用的散列算法之一在SHAiButtonDallasSemiconductor的型号为DS1963S中实现的SHA算法是SHA-1它符合联邦信息发行标准180-1即FIPS180-1杂散函数可以简单的理解为取一串输入码称为预映射或信息并把它转化为固定的较短长度的输出序列称为散列值信息摘要或信息认证代码的过程由于SHA是对压缩后的信息摘要进行检查它对检测输入序列中的错误或变化是非常有效的单向散列函数的特征是产生摘要容易但从给定的摘要反求出输入信息非常困难单向散列函数的安全性就在于其产生摘要的操作过程具有较强的单向性在输入序列中嵌入密码任何人在不知道密码的情况下都不能产生正确的摘要从而保证其安全性SHA将输入流按照每块512位64个字节分块并产生20个字节被称为信息认证代码MAC或信息摘要的输出如果输入长度不是512位算法就把它凑成昀接近于512的整倍数值下图说明了由多个输入块512位产生昀后的MAC的链状图应用笔记应用笔记应用笔记应用笔记157SHAiButtonAPI概述概述概述概述引擎的输入数据块包括存储在读/写数据页32个字节暂存器中的用户数据15个字节和服务供应商预装在不可读取的加密页中的密钥8个字节参见图1计算结果MAC保存在暂存器中用于后续操作由于对特定SHA操作的依赖性该输出MAC在通过外部访问的暂存器中不一定要隐藏起来SHAiButton中中中中MAC生成器生成器生成器生成器图1SHAiButton的特性的特性的特性的特性SHAiButton是一个只需昀少硬件就能访问大约4k位读/写数据的载体通过激活集成的512位SHA-1引擎算出基于器件内存储信息的160位的信息认证代码MAC数据依照1-Wire®协议串行传输该协议只需一根数据连线和一根地线每个SHAiButton利用其相应的密钥和页计数器能够同时服务于8个独立的应用中SHAiButton也可以作为协处理器保护系统密钥的安全也可以协助本地交易主机计算用户令牌认证和确认应用数据所需要的MACSHAiButton和其它iButton一样有附加的存储区域称为暂存器向存储器写数据时用作缓冲器SHAiButton的暂存器还用于向SHA-1引擎注入数据段或接收/比较信息认证代码向iButton写数据的时候数据首先被写到暂存器中在这里数据能被读回并验证是否有通信错误数据被验证之后复制暂存器命令把数据传到目标存储器位置这一过程在没有可靠的电接触环境下可以确保数据的完整性DS1963SSHAiButton有如下特殊性能4096位可读/写的非易失存储器分成16页每页256位16个存储页中的8个有独自的64位密钥和32位只读可回溯写次数计数器内置512位SHA-1引擎作为用户令牌器件能同时支持8个独立的服务可用作协处理器存储系统密钥和计算用户令牌认证确认应用数据所需要的MAC数据页(32个字节)密钥页(8个字节)暂存器(15个字节)暂存器MAC(20个字节)输入数据块SHA-11-Wire是DallasSemiconductor的注册商标AN1573of38SHAiButton存储器图存储器图存储器图存储器图通用的读通用的读通用的读通用的读/写访问数据存储器写访问数据存储器写访问数据存储器写访问数据存储器16页页页页每页每页每页每页32个字节个字节个字节个字节页码页码页码页码地址范围地址范围地址范围地址范围(TA1TA2)密钥号密钥号密钥号密钥号计数器值计数器值计数器值计数器值计数器递增计数器递增计数器递增计数器递增00000H至001FH00无10020H至003FH11无20040H至005FH22无30060H至007FH33无40080H至009FH44无500A0H至00BFH55无600C0H至00DFH66无700E0H至00FFH77无80100H至011FH00写数据时90120H至013FH11写数据时100140H至015FH22写数据时110160H至017FH33写数据时120180H至019FH44写数据时1301A0H至01BFH55写数据时1401C0H至01DFH66写数据时1501E0H至01FFH77写数据时不可读取不可读取不可读取不可读取的加密存储器的加密存储器的加密存储器的加密存储器八个八个八个八个64位密钥位密钥位密钥位密钥页码页码页码页码地址范围地址范围地址范围地址范围(TA1TA2)说明说明说明说明160200H至0207H密钥00208H至020FH密钥10210H至0217H密钥20218H至021FH密钥3170220H至0227H密钥40228H至022FH密钥50230H至0237H密钥60238H至023FH密钥7值得注意的是只有向第8到第15页写数据时页计数器才会递增在特定操作中一对匹配数据页共用一个计数器和密钥例如第0页和第8页共用0号计数器和0号密钥向第8页写数据时0号计数器增1而向第0页写数据时对0号计数器没有影响在第0页或第8页执行ReadAuthenticatedPage读鉴别页命令时都将返回0号计数器的值计算MAC都将使用密钥0AN1574of38只读计数存储器只读计数存储器只读计数存储器只读计数存储器九个九个九个九个32位计数器位计数器位计数器位计数器页码页码页码页码地址范围地址范围地址范围地址范围(TA1TA2)说明说明说明说明0260H至0263H第8页的写次数计数器0264H至0267H第9页的写次数计数器0268H至026BH第10页的写次数计数器026CH至026FH第11页的写次数计数器0270H至0273H第12页的写次数计数器0274H至0277H第13页的写次数计数器0278H至027BH第14页的写次数计数器19027CH至027FH第15页的写次数计数器0280H至0283H密钥0的写次数计数器0284H至0287H密钥1的写次数计数器0288H至028BH密钥2的写次数计数器028CH至028FH密钥3的写次数计数器0290H至0293H密钥4的写次数计数器0294H至0297H密钥5的写次数计数器0298H至029BH密钥6的写次数计数器20029CH至029FH密钥7的写次数计数器2102A0H至02A3HPRNG计数器(SHA引擎实现计数)在电子付费应用中使用在电子付费应用中使用在电子付费应用中使用在电子付费应用中使用SHAiButtonSHAiButton既可以用作用户令牌又可以用作协处理器协处理器可以完成交易会话期间的器件认证和验证应用数据所需要的MAC计算无需执行SHA计算代码有效缩短了开发周期把SHAiButton用作协处理器的另一个好处是可以把系统密钥存储在钮扣内而钮扣不能够被检测也就不会泄漏密钥在本文中我们假设SHAiButton协处理器用于本地主机执行必要的器件认证和服务数据验证本文将用到的一些术语定义如下本地主本地主本地主本地主机机机机包含必要组件的硬件单元它能利用用户SHAiButton或其它ePurse令牌完成电子交易从功能上讲本地主机包含三个关键部件交易控制单元典型的微处理器诸如显示器和令牌接收器的用户接口协处理器地址编码地址编码地址编码地址编码ANROMID注册号注册号注册号注册号序列号序列号序列号序列号可替代使用代表DS1963S或其它任何1-Wire器件内部由工厂激光刻入的全球唯一的64位码AN1575of38交易控制单元交易控制单元交易控制单元交易控制单元TCU在协处理器和用户令牌之间进行通信的组件典型的微处理器实现器件认证和服务数据验证系统认证密钥系统认证密钥系统认证密钥系统认证密钥主认证密钥主认证密钥主认证密钥主认证密钥可替代使用安装在协处理器中的密钥用于鉴别用户器件器件认证密钥器件认证密钥器件认证密钥器件认证密钥安装在用户iButton中的密钥本地主机可以验证其是否属于该系统通过绑定系统认证密钥与用户器件的地址编码保证了每个用户器件认证密钥的唯一性系统签名密钥系统签名密钥系统签名密钥系统签名密钥主签名密钥主签名密钥主签名密钥主签名密钥可替代使用代表安装在协处理器中用于签名和验证服务数据的密钥签名签名签名签名由服务数据系统签名密钥和其它服务或器件指定数据计算出的信息认证代码MAC签名通常嵌入于服务数据页中使本地主机能快速地验证服务数据器件数据器件数据器件数据器件数据用户数据用户数据用户数据用户数据应用数据应用数据应用数据应用数据账户数据账户数据账户数据账户数据交易数据交易数据交易数据交易数据代表诸如访问控制或电子付费应用的服务数据用户器件用户器件用户器件用户器件用户令牌用户令牌用户令牌用户令牌数字认证或电子付费应用中服务数据的数字载体本文凡是提到用户器件或用户令牌时都指DS1963SSHAiButton协处理器协处理器协处理器协处理器本文协处理器是一个计算单元能够完成交易过程中所必要的MAC计算服务安装服务安装服务安装服务安装为了使用器件认证和数据验证的SHAiButton必须在协处理器和用户iButton中安装适当的数据和密钥这个过程通常被称为服务初始化协处理器内装有两个密钥系统认证密钥和系统签名密钥系统认证密钥用来对每个用户器件建立唯一的认证密钥和验证用户器件是否属于该系统系统签名密钥用于产生签名和验证服务数据的有效性用户iButton内只需安装一个密钥唯一的器件认证密钥值得重视的是用户器件SHAiButton的认证密钥是唯一的它与系统认证密钥不同利用用户的器件地址作为计算器件密钥输入的组成部分服务数据有两类静态的和动态的静态服务数据在交易期间从不发生改变而动态服务数据在每次交易的过程中总是进行更新比如用于办公室或饭店的访问控制的服务数据含有定时的访问特权信息这些数据需要进行验证但同步处理器本地主机不对它进行修改另一方面自动售货机或停车计费器则需要从账户借记适当的金额并对减少后的余额数进行再次数字签名使其能够被其它本地主机加以验证如果系统只是要知道一个用户器件是否属于该系统经授权的用户而不必根据服务数据的内容确定是否交易就不必保护服务数据AN1576of38总的说来电子付费系统包含以下步骤对于服务安装1把系统认证密钥安装到SHAiButton协处理器2把系统签名密钥安装到SHAiButton协处理器如果需要数据保护对于每个用户器件3把用户器件认证密钥安装到用户SHAiButton4把有签名的服务数据安装到用户SHAiButton如果需要数据保护对于处理交易5使用SHAiButton协处理器完成用户器件认证6使用SHAiButton协处理器完成用户数据验证如果需要数据保护器件认证器件认证器件认证器件认证为了认证用户SHAiButtonTCU会请求协处理器计算一个随机质询1并将其送回用户iButton请求它利用ReadAuthenticatedPage命令计算应答MAC用户iButton利用质询服务
本文标题:电子元器件应用-SHA iButton API 概述
链接地址:https://www.777doc.com/doc-5955528 .html