35
SmartCard SmartCard 智智智智智智智智智智 智智 () —— CPU 智智智智智智智 智智智智智智智智智

智能电子钱包终端设计(三) —— CPU 卡读写软件设计

Embed Size (px)

DESCRIPTION

智能电子钱包终端设计(三) —— CPU 卡读写软件设计. 电子与信息工程学院. 课 程 目 标. CPU 卡发卡功能的实现 CPU 卡消费功能的实现 CPU 卡的安全技术. 项目开发 —— CPU 卡 POS 机. 系统需求分析: 具备金融借记卡、电子钱包功能,符合中国人民银行金融卡规范。 具备脱机交易能力。 具备联机(网)通信能力。 操作稳定可靠。. 高安全性 多应用能力 应用灵活性. 项目实现之第三步 —— 软件编程. 读写器 控制软件. COS ( 卡软件 文件 系统 ). 卡 硬件. 命令. 响应. CPU 卡 POS 机. - PowerPoint PPT Presentation

Citation preview

Page 1: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

智能电子钱包终端设计(三)

——CPU卡读写软件设计电子与信息工程学院

Page 2: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

课 程 目 标

CPU 卡发卡功能的实现

CPU 卡消费功能的实现

CPU 卡的安全技术

Page 3: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

项目开发—— CPU 卡 POS 机 系统需求分析:1. 具备金融借记卡、电子钱包功能,符合中国人民银

行金融卡规范。2. 具备脱机交易能力。3. 具备联机(网)通信能力。4. 操作稳定可靠。

高安全性多应用能力应用灵活性

Page 4: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

项目实现之第三步——软件编程

读写器控制软件

COS( 卡软件

文件系统 )

卡硬件

命令

响应

CPU卡CPU卡POS机

Page 5: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

CPU 卡的命令与响应机制

• 按照国际标准 ISO/IEC7816 的规定,接触式 CPU 卡与接口设备之间使用命令与应答的通信机制,即接口设备发送命令,智能卡接收并处理后发送响应给接口设备。

Page 6: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

命令• 命令应用数据单元:固定的四个字节命令头 + 长

度可变的命令体

命 令 头 命 令 体

CLA INS P1 P2 Lc 数据域 Le

• CLA :命令的类型 • INS :命令编码• P1 、 P2 :具体命令参数• Lc :数据的长度 • Le :期望卡返回的数据长度

Page 7: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

响应• 响应应用数据单元:应答体 + 应答尾

• SW1 、 SW2 :状态字节

应答体 应答尾部

响应数据体 SW1 SW2

Page 8: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

命令 指令类别 编码 用途 兼容性

Create File 80 E0 建立文件 ∆ Unblock_PIN 80 2C 解锁口令 ∆

Write KEY 80/84 D4 增加或修改密钥 √ Read Binary 00 B0 读二进制 √ *

Update Binary 00/04 D6 修改二进制 √ *

Read Record 00 B2 读记录 √ * Append Record 00/04 E2 追加记录 *

Update Record 00/04 DC 修改记录 √ *

Select File 00 A4 选择文件 √ * INT_FOR_DESCRYPT 80 1A 通用 DES计算初始化 √

DES CRYPT 80 FA 通用 DES计算 √

INT_SAM_FOR_PURCHASE

80 70 MAC1计算 √

CREDIT_SAM_FOR_PURCHASE

80 72 校验MAC2 √

Application Block 84 1E 应用锁定 √

Application Unlock 84 18 应用解锁 √

Card Block 84 16 卡片锁定 √ External authentication 00 82 外部认证 √ *

Get Challenge 00 84 产生随机数 √ *

Get Response 00 C0 取响应 √ * Internal Authentication 00 88 内部认证 √ *

Verify 00 20 校验 PIN √ *

Pin Change/Unblock 84 24 修改/解锁 PIN √ Change PIN 80 5E 修改 PIN √

Reload PIN 80 5E 重装 PIN √

Out_KEY 80 F6 PSAM母卡导出密钥 √

Page 9: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

发卡程序RESET; 复位 , 应答 :3B6C0002( 默认 ATR)33(SmartCOS 版本号 )61( 卡状态字节 )8638( 明华卡制造机构标志 )1113E789C61DA020( 卡的唯一序列号 )

; 删除 MF80 0e 00 00 08 FFFFFFFFFFFFFFFF //80 0e 00 00 08 ( 命令头 ) FFFFFFFFFFFFFFFF (8 字节传输代码 )

; 建立 MF80 e0 00 00 18 FFFFFFFFFFFFFFFF 0f 02 315041592e5359532e4444463031ASSERT 9000 //80 e0 00 00 18 ( 命令头 ) FFFFFFFFFFFFFFFF (8 字节传输代码 ) 0f ( 删除 MF 的权限 ) 00(DIR 文件的短文件标识符 ) 315041592e5359532e4444463031(MF 的文件名称 , 银行应用 必须用 1PAY.SYS.DDF01 )

发卡功能的实现:

—— 在卡上建立卡文件系统

Page 10: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

; 建立密钥文件80 e0 02 00 07 00 03 05 0f 00 0a 00ASSERT 9000 //80 e0 02 00 07 ( 命令头 ) 0003( 密钥文件标识 )05( 文件类型 ) 0F( 增加新密钥的权限 )00( 保留 ) 0A( 密钥个数 ) 00( 系统保留 )

; 安装密钥 PIN80 d4 00 00 0a 01 01 00 0b 0f 11 0f 33 1234ASSERT 9000 //80 d4 00 00 0a ( 命令头 ) 01( 密钥标识符 )01( 密钥版本号 ) 00( 算法标识 )0B( 密钥类型 )0F( 使用权限 ) 11( 后续状态 )0F( 修改权限 )33 ( 错误计数器 )1234( 个人 PIN)

; 建立二进制文件 0026 80 e0 02 00 07 00 26 00 1f 2f 01 00ASSERT 9000 //80 E0 02 00 07 ( 命令头 ) 0001( 文件标识符 ) 00( 二进制文件类型 )1f( 读权限 )2f( 更新权限 )01 00( 文件长度 )

; 结束建立 MF 80 e0 00 01 02 3f 00 ASSERT 9000 //80 E0 00 01 02 ( 命令头 ) 3F00(MF 标识符 )

Page 11: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

卡应用(读 / 写文件)RESET

; 选择 EF002600 A4 02 00 02 0026ASSERT 6130

; 读二进制文件 002600 b0 00 00 10

; 校验 PIN00 20 00 00 02 1234

; 写二进制文件 002600 d6 00 00 10 11223344556677881122334455667788

; 读二进制文件 002600 b0 00 00 10

消费功能的实现:——读写卡文件

Page 12: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

命令详解: Create File 建立文件 • Create File 命令用于建立 MF 文件、 DF 文件和 E

F 文件。• 当建立 MF 文件时,卡片必须为空,卡片首先验

证制造商密钥 ( 传输代码 ) ,通过后把主控文件( MF )的数据写入 EEPROM 。 8 个字节的传输代码是由工厂在卡片制造时设定的,如用户无特殊要求,则为: FF FF FF FF FF FF FF FF ,在建立 MF 时,若传输代码错误,则内部错误计数器加一,超过 4 次卡片自动锁死不可再用。

Page 13: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

• Create File 的命令报文:

代码 值 CLA 80 INS E0 P1 00-- 建立MF

01-- 建立 DF 02-- 建立 EF

P2 00-- 正在建立 01-- 建立结束(MF、DF)

Lc 文件信息长度 DATA 文件信息

Page 14: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

命令报文数据域 : Lc 有关文件信息

0F/1A

传输代码(8 字节 )

建立文件权限 (1 字节 )

短 文 件 标 识符 (1 字节 )

MF 的名称 (05-10 )

MF:

例 :建立 MF80 e0 00 00 18 FFFFFFFFFFFFFFFF 0f 02 315041592e5359532e4444463031ASSERT 9000 //80 e0 00 00 18 ( 命令头 ) FFFFFFFFFFFFFFFF (8 字节传输代码 ) 0f ( 删除 MF的权限 ) 00(DIR 文件的短文件标识符 ) 315041592e5359532e4444463031(MF 的文件名称 , 银行应用 必须用 1PAY.SYS.DDF01 )

Page 15: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

DF :

EF :

  Lc 有关文件信息

09/14文 件 标识符 (2字节 )

建 立 文 件 权限 (1 字节 )

00 DF 的名称(05-10 字节 )

 

Lc 有关文件信息

07 文件标识符 (2字节)

文件类型 (1字节)

权限 1 (1字节)

权限 2 (1字节)

Len1 (1字节)

Len2 (1 字节)

说明 : 在银行应用中

00 18 在 SmartCOS 中用作交易明细文件的标识符,

00 01 用于钱包文件。

00 02 用于存折

0015 用于发卡方专用数据文件

0016 用于持卡人专用数据文件

Page 16: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

; 建立密钥文件80 e0 02 00 07 00 03 05 0f 00 0a 00ASSERT 9000 //80 e0 02 00 07 ( 命令头 ) 0003( 密钥文件标识 )05( 文件类型 ) 0F( 增加新密钥的权限 )00( 保留 ) 0A( 密钥个数 ) 00( 系统保留 )

; 安装密钥 PIN (明文安装)80 d4 00 00 0a 01 01 00 0b 0f 11 0f 33 1234ASSERT 9000 //80 d4 00 00 0a ( 命令头 ) 01( 密钥标识符 )01( 密钥版本号 ) 00( 算法标识 )0B( 密钥类型 )0F( 使用权限 ) 11( 后续状态 )0F( 修改权限 )33 ( 错误计数器 )1234( 个人 PIN)

; 建立二进制文件 0026 80 e0 02 00 07 00 26 00 0f 11 01 00ASSERT 9000 //80 E0 02 00 07 ( 命令头 ) 0001( 文件标识符 ) 00( 二进制文件类型 )0F( 读权限 )11( 更新权限 )01 00( 文件长度 )

Page 17: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

• 建立 MF 、 DF 文件分别对应着 Create End命令,当 Create End 成功执行之后,文件的安全条件才会有效。

代码 值 CLA 80 INS E0 P1 01 P2 01 Lc 02 DATA FID

代码 值 CLA 80 INS E0 P1 00 P2 01 Lc 02 DATA 3F 00

CreateEnd DF

CreateEnd MF

例:; 结束建立 MF 80 e0 00 01 02 3f 00 ASSERT 9000 //80 E0 00 01 02 ( 命令头 ) 3F00(MF 标识符 )

Page 18: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

智能卡安全技术 • 加密技术• 认证技术

CPUCPU 与与 COSCOS 的存在使智能卡能够方便地采用的存在使智能卡能够方便地采用PINPIN 校验、加密技术及认证技术等校验、加密技术及认证技术等

来强化智能卡的安全性来强化智能卡的安全性

Page 19: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

对智能卡安全的威胁 • 窃听:智能卡和接口设备之间的信息流可以被截取分析,从而可被复

制或插入假信号。• 模拟(或伪造)智能卡:模拟与接口设备之间的交换信息,使接口设

备无法判断出是合法的还是模拟的智能卡。• 在交易中更换智能卡:在授权过程使用的是合法的智能卡,而在交易

数据写入之前更换成另一张卡,因此将交易数据写入替代卡中。 • 修改信用卡中控制余额更新的日期:信用卡使用时需要输入当天日期,以供卡判断是否是当天第一次使用,即是否应将有效余额项更新为最高授权余额(也即是允许一天内支取的最大金额)

• 商店雇员的作弊行为:接口设备写入卡中的数据不正确,或雇员私下将一笔交易写成两笔交易,因此接口设备不允许被借用、私自拆卸或改装。

Page 20: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

加密技术 • 密码体制即密码编码 :密码算法 + 密钥。前者是公式、法则或程序,可以是公开的;后者是实现加密、解密时参与运算的参数,改变密钥也就改变了明文与密文的关系。

• 密码分析即密码破译:系指非授权者由所获密文推导获取加密算法和密钥,从而读懂密文的过程。

• 密钥管理:要保证信息的秘密,必须严防密钥泄露

Page 21: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

对称密钥体制( DES )

• 为了保证信息传输过程中的安全性, A可以通过使用密钥加密的方法,把加密后的信息传给 B。 B收到信息后,可以使用同样的密钥解密,从而获得其中的内容。这就是所谓“对称密钥”的做法

• 能够保证即使信息在传输过程中被截获,没有密钥的人也无法得知其中的内容。

• 在 Internet环境中,对称密钥体制中的密钥管理成了一个头疼的事:要么大家共用一个密钥,就没有秘密可言;要么n个人相互通讯需要 n(n-1) 个密钥,数量太多而无法管理。

Page 22: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

对称密钥体制( DES )• 也称为私钥密码体制• 通信双方使用相同的密钥• DES 使用长度为 56比特的密钥、加密长度为 64比特的明文,获得长度为 64比特的密文

•缺陷之一是通信双方在进行通信之前需通过一个安全信道事先交换密钥。这在实际应用中通常是非常困难的

• 美国目前已经制定了新的数据加密标准,称作 AES

Page 23: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

DESX Y

KEY

DESY X

KEY

发送方:

接收方:

Page 24: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

非对称密钥体制( RSA )• 因此在 Internet环境中,需要使用非对称密钥加

密。即每个参与者,都有一对密钥,可以分别指定为公钥 (PK) 和私钥 (SK) ,一个密钥加密的消息只有另一个密钥才能解密,而从一个密钥推断不出另一个密钥。公钥可以用来加密和验证签名;私钥可以用来解密和数字签名。每个人都可以公开自己的公钥,以供他人向自己传输信息时加密之用,只有拥有私钥的本人才能解密,保证了传输过程中的保密性。关键是需要每个人保管好自己的私钥。

Page 25: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

非对称密钥体制( RSA )• 也称为公钥密码体制 ,其理论基础是将密码建立在解某些已知的数学难题之上。

• 通信双方各有自己的私人密钥( SK ),并共有另一公共密钥( PK )。

• 公钥密码体制可使通信双方无需事先交换密钥就可建立起保密通信,但公钥算法要比私钥算法慢得多

• 在实际通信中,一般利用公钥密码体制来保护和分配(交换)密钥,而利用私钥密码体制加密消息。

• 公钥密码体制的出现为解决私钥密码体制的密钥分配开辟了一条广阔的道路。公钥密码体制主要用于认证(比如数字签名、身份识别等)和密钥管理等。

Page 26: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

RSAX Y

PK

RSAY X

SK

发送方:

接收方:

Page 27: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

认证技术

• 信息验证码( MAC—MessageAuthenticationCode ) • 数字签名( Digital Signiture )• 数字证书( Digital Certificate )

——防止信息被篡改、伪造或过后否认

Page 28: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

信息验证码( MAC—MessageAuthenticationCode )

• 目标:防止信息被篡改,保护信息的完整性,要求在接收时能发现被篡改的数据

• 手段:采用一定的算法产生附加的校验码 MAC ,在接收点进行检验。信息验证码 MAC (也称电文识别码或报文鉴别码)是利用密钥对数据加密处理而形成,篡改者由于不知道密钥,也就不能针对性地伪造 MAC ,对数据的非法修改将很容易被发现,以保证信息的完整性。

Page 29: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

64位 64位 64位

DES DES

64位

DES

64位

密钥

32位

MAC

明文

MAC产生原理

Page 30: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

数字签名( Digital Signiture ) • 目标:防伪造(信息的真实性),防抵赖。

要求收方能确认发方的签名;发方签名后,不能否认自己的签名;发生矛盾时,公证人(第二方)能仲裁收发方的问题。

• 手段:散列( HASH )函数 +公钥算法 • HASH函数:输入为一可变长输入,返回

一固定长度串 (输入信息的特征值)

Page 31: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

Message

Message Digest 1

Hash 算法

SK

传送

发送方:

Message

Message Digest 2

Hash 算法

PK

相等?

接收方:

Message Digest 1

Page 32: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

数字证书( Digital Certificate )• 目标:持卡人及商家的合法性。对数字签

名和公钥加密技术来说,都会面临公开密钥( PK)的分发问题,即如何获得通讯对方的公钥并且相信此公钥是由某个身份确定的人拥有的,这就要求管理这些公钥的系统必须是值得信赖的。必须有一项技术来解决公钥与合法拥有者身份的绑定问题 ——数字证书( Digital Certificate )

Page 33: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

• 手段:数字证书是一个签名文档( SK),标记特定对象的公开密钥( PK)。该证书由一个认证中心( CA)签发,认证中心类似于现实生活中公证人的角色,它具有权威性,是一个普遍可信的第三方。当通信双方都信任同一个 CA时,两者就可以从 CA得到对方的公开密钥从而能进行秘密通信、签名和检验。

• 用户到 CA申请私人密钥和公共密钥后,自己掌握私人密钥,而对方则可到 CA取得公共密钥。

Page 34: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

• 在实施电子商务的过程中,用 Internet Explorer向一个认证中心申请电子证书时,就会有一对公钥和私钥自动产生出来;私钥可以存储在智能卡中,公钥和其他身份信息(比如姓名、电子邮件地址等)发给认证中心。如果认证中心批准该申请,那么包含公钥的电子证书就会被返回来,存储在智能卡中。

• 智能卡存储私钥和电子证书的做法,给最终用户提供了对自己安全信息的最大的控制,可以方便地从一台机器携带到另一台机器使用,可以在任何一个地点使用。

Page 35: 智能电子钱包终端设计(三) —— CPU 卡读写软件设计

SmartCardSmartCard

• 如果企业实施了基于Windows 2000的智能卡体制,由企业保安机构给每个员工颁发一个智能卡。员工就可以用这个卡完成很多的工作,比如打开公司的大门、打开自己的抽屉,登录到计算机和网络;加密自己的邮件和文件,这样即使管理员有完全控制的权限,管理员也不能获知其中的内容;员工还可以上网购物,比如购买一张机票,然后直接到飞机舱前划卡即可上飞机;还可以作为电话卡、信用卡使用;作为市政交费卡使用,支付水电煤气费;甚至作为电子钱包式的储值卡来使用,支付小额的午餐费、出租车费等。