摘要: 本应用说明描述了货币价值如何以电子形式表示并存储在iButton数据载体(令牌)中,特别是通过称为a的数字证书
本应用说明说明如何表示和存储货币价值我按钮 数据载体(令牌)。该文件定义了一种称为“Maxim数字货币证书”(又名“电子证书”)的数字证书,并描述了证书的各个组成部分。建议将电子货币证书应用于电子货币交易系统,例如自动售卖机、收费系统、收费站、收费表、换单系统等。
以便货币价值可以以电子形式表示并存储在我按钮数据载体和类似的便携式设备(或令牌),这里定义了一种结构,称为Maxim数字货币证书(以下简称“电子证书”)。
对于读者来说,重要的是要知道和理解,一个电子证书不仅由它所表示的数据组成,而且由它所存储的特定的、唯一的设备、设备中数据的物理位置及其“实例”所定义。这就是说,同样的数据写入不同的设备不是同一个ecercertificate,同样的数据写入同一设备的其他地方不是同一个ecercertificate,甚至同样的数据再次写入同一设备的同一位置也不是同一个ecercertificate。
注:本文档中使用的术语“交易器”是指任何能够从交易中增加或减少价值的有效系统我按钮电子现金载体。本通用术语适用于自动售货机、收费箱、收费站、停车计时器、换钞器,或任何从货物中增加或减少货币价值的设备我按钮设备。
在实物货币的情况下,每张纸币的价值是固定的,因此不同面值的纸币会被交换,直到交易出合适的价值为止。换句话说,为一种产品提供比所需价值更大的票据(钞票),实际成本与投标金额之间的差额作为找零退还给买方。
在eCash方案中,通过销毁和创建具有与正在执行的交易相应值的电子证书来交换价值。当客户出示价值为“X”的电子证书以购买成本为“Y”的物品或服务时,价值为“X”的原始电子证书将被销毁,并在客户令牌中替换为价值为“X”减去“Y”的电子证书。同样,在交易器内部可能存在一个代表所收集资金总价值的电子证书“C”。该电子证书被销毁,取而代之的是代表“C”+“Y”的电子证书,将从客户处收取的资金添加到钱柜中。在单次购买的过程中,销毁了两个电子证书,创建了两个新证书,每个证书代表支付所购买的产品或服务所需的价值的适当变化。这些被销毁的证书永远不能被重新创建,并且它们永远不会再存在。
的性质和设计我按钮令牌(以及它们被写入的机制)是这样的,即创建一个新的电子证书与销毁前一个电子证书同时发生,并通过相同的操作,因此总是可以防止货币价值的意外丢失或重复。(这被称为使事务原子化。)
安全的电子货币令牌有几个特性,允许创建有效和安全的电子证书。这些包括唯一的设备序列号和设备内数据的唯一物理地址(称为页码)。在某些设备中,由一个完整的、不可变的写周期计数器保证的设备中数据的唯一实例。
中使用的标准内存页大小我按钮设备,并与所需的格式兼容流行我按钮空间分配方案,一个证书的数据记录由32个数据字节组成。此外,电子证书(但不包括数据记录)包括它所在的偏移地址、电子证书的序列号我按钮设备,以及相关的写周期计数器值(如果适用)。
电子证书数据还包括用于区分类似交易的事务ID、表示证书货币价值的代码和用于确保电子证书有效性的加密MAC(消息验证码)。
电子证书的32字节数据记录的格式如下:
抵消 | 长度 | 内容 | 定义为 |
0 | 1 | 长度(常数= 29) | 操作系统 |
1 | 1 | 证书类型&算法 | 信用卡/借记卡的权威 |
2 | 20. | MAC | 信用卡/借记卡的权威 |
22 | 2 | 货币单位代码&乘数 | ISO4217 |
24 | 3. | 货币的平衡 | 信用卡/借记卡的权威 |
27 | 2 | 事务ID | 信用卡/借记卡的权威 |
29 | 1 | 延续指针 | 操作系统 |
30. | 2 | 倒CRC-16 | 操作系统 |
32字节的数据记录定义了一个证书的值,包含的数据元素定义如下:
Length由操作系统用来指定记录中可用数据区域的长度,减去错误检查字节。由于证书需要记录的每个可用字节,因此此长度固定为29字节。
“证书类型/算法”字段表示证书类型和一个预定义代码,该代码表示生成MAC时使用的算法。
迄今为止定义的有效证书类型有:
00000=未签名证书(MAC字段包含客户数据)
00001=SHA-1签名动态证书
00002=SHA-1签名静态证书
MAC(消息认证码)保存由所有电子证书元素和一些秘密元素生成的二进制代码。它用于防止非法更改或复制证书。
货币单位代码是一个长度为10位的二进制值,根据ISO-4217货币标准表示证书所表示的货币。该字段的上六阶位包含一个将应用于货币余额字段的乘数。
货币余额字段是一个24位二进制值,表示证书所表示的值(在应用来自货币单位代码的乘数之后)。
事务ID是在每个事务上写入的一个值,以便可以区分类似的事务。(这对于防止对系统的某些类型的可能攻击很重要。)
Continuation Pointer(延续指针)是一个操作系统定义的值,用于将读取器指向文件中的后续记录(页)我与货币记录相关的按钮装置。(有关标准文件结构的更多信息,请参阅应用说明114。)应该注意的是,任何超出32字节货币记录的后续文件数据都不是电子证书的一部分,尽管单字节延续指针本身是电子证书的一部分,并且共享电子证书的安全性。
反向CRC16是一个值,阅读器使用它来确保数据是正确的,以防止日常通信错误。该值是证书定义的一个组成部分。
ecercertificate还包括几个数据项,这些数据项不包含在32字节记录中,但仍然是ecercertificate的组成部分。这些都是:
货币秘密是一个64位值,它不与证书一起存储,也不存储在我按钮设备。此值仅为授权服务提供商设备所知。正是这个值的保密性保护了证书的值不被非法修改。
写入周期计数器是一个32位值,每次将新数据写入时,该值递增一次我保存证书的按钮数据页。将此计数器纳入电子证书的组成部分,使其每一个实例都是独一无二的,并防止以前的货币证书被非法重复使用。
页号是一个6位的值,它表示电子证书数据在文件中的物理位置我按钮设备。将该价值作为证书的组成部分,可防止该价值在证书内非法转移或复制我按钮设备。(为页码分配的字节的上两位被系统用来区分一些特殊情况。可以在特定的令牌设备数据表中找到它们应用的讨论。)
的我按钮地址(设备序列号)是一个56字节的值,表示一个唯一的标识我按钮设备。将此作为证书的组成部分,可防止在以下机构之间非法复制价值我按钮设备。
Constant String字段是包含在证书中但不包含在32字节数据记录中的数据。所有有能力执行电子证书事务的服务提供者系统都必须知道这些数据。
秘密计数器是一个32位计数器,在Maxim DS1963S货币中,每当一个秘密被改变时,它就会增加我按钮设备。服务提供者可以选择将此计数器值的全部或部分包含在电子证书中。
电子证书的安全性基于使用数学生成的MAC。创建MAC的过程需要一个512位的记录作为其输入,该记录包含了完整定义电子证书的所有数据。此记录包括电子证书数据的映像以及与受保护的电子证书实例的位置和唯一性相关的其他数据。64字节SHA-1输入记录的格式定义如下:
抵消 | 长度 | 内容 | 定义为 |
0 | 4 | 货币秘密(左) | 信用卡/借记卡的权威 |
4 | 1 | 长度(常数= 01Dh) | 操作系统 |
5 | 1 | 证书类型&算法 | 信用卡/借记卡的权威 |
6 | 20. | 常数串(注1) | 常数 |
26 | 2 | 货币单位代码&乘数 | ISO4217 |
28 | 3. | 货币的平衡 | 信用卡/借记卡的权威 |
31 | 2 | 事务ID | 信用卡/借记卡的权威 |
33 | 1 | 延续指针 | 操作系统 |
34 | 2 | 倒CRC-16 | 操作系统 |
36 | 4 | 写周期计数器(注2) | 令牌 |
40 | 1 | 页码+ X,M位 | 令牌 |
41 | 7 | 我按钮序号(无CRC) | 令牌 |
48 | 4 | 货币秘密(右) | 信用卡/借记卡的权威 |
52 | 3. | 秘密柜台(注3) | 信用卡/借记卡的权威 |
55 | 1 | SHA Pad字节(= 080H) | 上海恒 |
56 | 8 | SHA报文长度(440比特) | 上海恒 |
偏移量4和35(包括)之间的阴影区域表示电子证书有效载荷数据的图像,除了常量已替换为MAC和秘密计数器数据之外。当MAC生成后,它将被写入到证书中,取代常量字符串字节。
在硬件中提供数据完整性保护的某些令牌中不存在写周期计数器。在这些设备中,该字段使用0xFFFFFF。
服务提供者可以选择性地包括秘密计数器的低阶三个字节。如果不包括Secret Counter,则假定这三个字节是所有系统事务处理者都知道的常量数据。
的格言我按钮令牌包含提供安全可靠的电子证书容器的特殊硬件特性。这些设备能够在内部维护秘密并执行SHA-1散列功能,因此可以提供用于验证整个电子证书的MAC。这允许事务处理者验证的真实性我按钮设备以及从它接收到的所有数据的完整性,然后再继续测试货币价值的有效性。
身份验证涉及设备内部已知的64位身份验证秘密,通常由设备序列号和仅在服务提供商系统内已知的主秘密值生成。Authentication Secret在两个32字节的部分中使用,称为Secret(左)和Secret(右)。
认证我按钮设备还涉及一个24位的挑战值(在每个交易开始时由交易方随机生成)发送到我按钮中的数据进行身份验证之前我按钮。这个不断变化的值可以防止非法回放以前有效的身份验证响应。
与生成用于货币验证的SHA-1 MAC一样,为货币的身份验证定义了一个略有不同的SHA-1输入记录我按钮设备和数据。设备和数据认证的64字节SHA-1输入数据记录格式如下:
抵消 | 长度 | 内容 | 定义为 |
0 | 4 | 认证密码(左) | 信用卡/借记卡的权威 |
4 | 1 | 长度(常数= 29) | 操作系统 |
5 | 1 | 证书类型&算法 | 信用卡/借记卡的权威 |
6 | 20. | MAC | 信用卡/借记卡的权威 |
26 | 2 | 货币单位代码&乘数 | ISO4217 |
28 | 3. | 货币的平衡 | 信用卡/借记卡的权威 |
31 | 2 | 事务ID | 信用卡/借记卡的权威 |
33 | 1 | 延续指针 | 操作系统 |
34 | 2 | 倒CRC-16 | 操作系统 |
36 | 4 | 写周期计数器(注1) | 令牌 |
40 | 1 | 页码+ X,M位(注2) | 令牌、权威 |
41 | 7 | 我按钮序号(无CRC) | 令牌 |
48 | 4 | 认证密码(右) | 信用卡/借记卡的权威 |
52 | 3. | 挑战 | 信用卡/借记卡的权威 |
55 | 1 | SHA Pad字节(= 080H) | 上海恒 |
56 | 8 | SHA报文长度(440比特) | 上海恒 |
在没有写周期计数器的令牌中,该字段总是0xFFFFFFFF。
在没有写周期计数器的令牌中,该字段等于页码(0-15)加上64。有关详细信息,请参阅令牌设备规范。
根据本文的定义,在货币之外不存在电子证书我按钮。的我按钮本身,具有其唯一标识和唯一的电子证书值数据实例(由写周期计数器或令牌写保护保证),是电子证书本身的一个组成部分。重要的是要记住,ecercertificate不是它所保存的数据,而是该数据在单个设备和该设备内的物理位置中的单个实例。
电子证书数据记录的格式可以用作在系统之间传输值的方法,但是电子证书值的这种表示本身在任何意义上都不代表有效的电子证书。这是一个重要的区别。在最好的情况下,电子证书中涉及的所有数据项的集合是电子证书的图像,其本身没有货币价值(很像美元钞票的复印件,它代表钞票,但没有货币价值)。
存在许多我按钮设备包含内存(NV RAM或EEPROM)没有保护措施,如写周期计数器,SHA散列设施,和安全的秘密存储。尽管如此,可以使用这些设备来持有Maxim数字货币证书的相似性,并且实际上可以将它们视为合法的电子证书。虽然这类似于允许使用影印货币进行购买,但在一些低安全性或高度控制的应用中,它可能是可以接受的。
当使用MAC保护货币价值并将生成的证书复制到不安全的令牌中时(即,不能可靠地验证的令牌,并且其中的证书不能与任何形式的实例化相关联),它很容易受到各种重放和模拟攻击,但仍然可以防止更改和复制到其他令牌中。由于嵌入在电子证书中的MAC包括令牌地址(序列号)、内存偏移量和货币秘密,以及数据记录中的其他元素,因此它在许多方面都是安全的。
但是,如果没有特殊的机制所提供的安全我按钮设备,各种各样的攻击是可能的,有些几乎是微不足道的。在考虑使用非安全代币的任何类型的货币系统时,必须非常谨慎。
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308