编辑: QQ215851406 2018-10-27
应用笔记

156 DS1963S SHA 1-Wire API 用户指南 1.

0 绪论 本文的目的是让 1-Wire? 软件开发人员熟悉安全SHA应用中的API.在两个主要的开发包:JavaTM 1-Wire API和1-Wire公用程序包中均可得到这个API.本文既可以作为用各种API设计新的安全系 统的应用指南,也有助于深入理解各种开发包配备的演示系统. 本文假定用户对SHA iButton? 硬件和iButton采用的 1-Wire协议有了基本理解.DS1963S (SHA iButton)数据资料可从网站(www.maxim-ic.com.cn)下载,还可以从网上获得详述eCash (电子支付系 统)签名证书结构的应用笔记[AN151, Maxim Digital Monetary Certificates]、用于安全系统的高层协 议[AN157, SHA iButton API概述]、SHA-1 概述[AN1201, 1-Wire SHA-1 概述]、以及适合于存储器件 的文件系统的实现[AN114, 1-Wire File Structure]. 在任何一个货币 SHA 应用中,协处理器和用户令牌(user token)是两个主要组成部分.协处理器是 一个初始化后的 DS1963S,用于验证用户令牌是否为系统成员、确认用户的证书.用户令牌是装 载货币证书、并识别系统用户的 DS1963S (或类似的 1-Wire 器件).对于每一个 API,本文将简要 介绍其初始化协处理器、初始化用户令牌和实现交易的方法.每个交易过程都可以进一步细化, 包括用户鉴别、验证交易数据、根据动态信息更新交易数据. 在本文所有的代码示例中,底色是浅灰色的代码框内将高层任务拆分成更详细的操作条目.在Java 1-Wire API 中,这些低层代码将使用 OneWireContainer18 类.在公用程序包中,这些代码将 使用 SHA18.C 模块中的函数. 2.0 Java 1-Wire API 的SHA 应用 Java 1-Wire API 中的SHA 解决方案将一个新的软件包引入开发包系统:com.dalsemi.onewire.application.sha.图1给出了这个包的类,并且说明了它们之间的继承关系. 在详述该包中所介绍的方法的必要特性时,容器级方法被认为是最基本的单元,不再进行细化(虽 然这些资源可以在包中得到). SHATransaction 摘要父类用于描述所有的安全交易.该类定义了三个关键方法,描述一个典型交 易的基本步骤: 1) 验证用户令牌是否为系统的有效成员(verifyUser) 2) 验证数据是否经过适当鉴定、没有被窜改(verifyTransactionData) 3) 必要时更新数据并确保令牌接受更新(executeTransaction) 1-Wire 和iButton 是Dallas Semiconductor的注册商标. Java 是Sun Microsystems 的商标.

1 of

23 AN156

2 of

23 有两个交易样本扩展了 SHATransaction:SHADebit 和SHADebitUnsigned.前者(SHADebit)建立 了一个借方账户系统,将初始账目余额存储在签名的货币证书中(参见 AN151).典型应用中,要 验证用户是否是系统的有效成员,还要验证证书上的签名是否有效.如果用户和数据都是有效 的,则更新存储在货币证书上的余额,生成新的签名,而且证书也被写回到器件中.后者 (SHADebitUnsigned)用未签名的货币证书,利用空闲空间来实现一个备份方案,保护 EEPROM 器 件中的数据.在另一个应用笔记中谈及了这种交易类型(用DS1961S/DS2432 1-Wire 器件). SHA 交易将 SHAiButtonCopr 作为一个固定的成员(该类描述的是一个初始化了的 DS1963S,在SHA 交易中用作协处理器).从这个意义上说,SHATransaction 可以看成是 SHAiButtonCopr 的扩 展.它的功能和 Java 中的 decorator 类相类似,因为它把 要签名的内容 和 正在签名的内 容 区分开.这样,软件开发人员只需进行少量编码就可以很容易地把 要签名的内容 (即:协处理器,SHAiButtonCopr) 应用到不同的系统中去( 正在签名的内容 ).另外,SHAiButtonCoprVM,或者说是仿真协处理器,可以用来代替硬件 DS1963S.提出该类是因为它 具有一定的便利条件,但是为优化安全性推荐使用硬件协处理器. 包的继承结构 图1SHATransaction中的每一种方法都把SHAiButtonUser作为一个参数.API提供给两类用户对象: SHAiButtonUser33 和SHAiButtonUser18.虽然SHAiButtonUser默认设置只支持两类SHA iButton (家族码为 0x33 的DS1961S/DS2432 和家族码为 0x18 的DS1963S),但是SHATransaction的用户概 念可以扩展成支持所有的 1-Wire存储器件. 由于SHAiButtonUser33 和SHAiButtonUser18 只是提 供承载的必要帐务数据证明,所以它们都易于扩展.如果iButton验证对特定的系统不很重要,那么SHAiButtonUser类可以很容易地扩展为支持那些承载有签名账户信息的 1-Wire存储器.需要注 意即使其它存储器件不采用鉴别iButton的质询应答协议,用户令牌的

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题