350 likes | 579 Views
智能电子钱包终端设计(三) —— CPU 卡读写软件设计. 电子与信息工程学院. 课 程 目 标. CPU 卡发卡功能的实现 CPU 卡消费功能的实现 CPU 卡的安全技术. 项目开发 —— CPU 卡 POS 机. 系统需求分析: 具备金融借记卡、电子钱包功能,符合中国人民银行金融卡规范。 具备脱机交易能力。 具备联机(网)通信能力。 操作稳定可靠。. 高安全性 多应用能力 应用灵活性. 项目实现之第三步 —— 软件编程. 读写器 控制软件. COS ( 卡软件 文件 系统 ). 卡 硬件. 命令. 响应. CPU 卡 POS 机.
E N D
智能电子钱包终端设计(三)——CPU卡读写软件设计智能电子钱包终端设计(三)——CPU卡读写软件设计 电子与信息工程学院
课 程 目 标 • CPU卡发卡功能的实现 • CPU卡消费功能的实现 • CPU卡的安全技术
项目开发——CPU卡POS机 • 系统需求分析: • 具备金融借记卡、电子钱包功能,符合中国人民银行金融卡规范。 • 具备脱机交易能力。 • 具备联机(网)通信能力。 • 操作稳定可靠。 高安全性 多应用能力 应用灵活性
项目实现之第三步——软件编程 读写器 控制软件 COS (卡软件 文件 系统) 卡 硬件 命令 响应 CPU卡POS机 CPU卡
CPU卡的命令与响应机制 • 按照国际标准ISO/IEC7816的规定,接触式CPU卡与接口设备之间使用命令与应答的通信机制,即接口设备发送命令,智能卡接收并处理后发送响应给接口设备。
命令 • 命令应用数据单元:固定的四个字节命令头+长度可变的命令体 • CLA:命令的类型 • INS:命令编码 • P1、P2:具体命令参数 • Lc:数据的长度 • Le:期望卡返回的数据长度
响应 • 响应应用数据单元:应答体+应答尾 • SW1、SW2:状态字节
命 令 集
发卡功能的实现: ——在卡上建立卡文件系统 发卡程序 RESET ;复位,应答:3B6C0002(默认ATR)33(SmartCOS版本号)61(卡状态字节)8638(明华卡制造机构标志)1113E789C61DA020(卡的唯一序列号) ;删除MF 80 0e 00 00 08 FFFFFFFFFFFFFFFF //80 0e 00 00 08 (命令头) FFFFFFFFFFFFFFFF (8字节传输代码) ;建立MF 80 e0 00 00 18 FFFFFFFFFFFFFFFF 0f 02 315041592e5359532e4444463031 ASSERT 9000 //80 e0 00 00 18 (命令头) FFFFFFFFFFFFFFFF (8字节传输代码) 0f (删除MF的权限) 00(DIR文件的短文件标识符) 315041592e5359532e4444463031(MF的文件名称,银行应用 必须用1PAY.SYS.DDF01 )
;建立密钥文件 80 e0 02 00 07 00 03 05 0f 00 0a 00 ASSERT 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 1234 ASSERT 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 00 ASSERT 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标识符)
消费功能的实现:——读写卡文件 卡应用(读/写文件) RESET ;选择EF0026 00 A4 02 00 02 0026 ASSERT 6130 ;读二进制文件0026 00 b0 00 00 10 ;校验PIN 00 20 00 00 02 1234 ;写二进制文件0026 00 d6 00 00 10 11223344556677881122334455667788 ;读二进制文件0026 00 b0 00 00 10
命令详解:Create File 建立文件 • Create File命令用于建立MF文件、DF文件和EF文件。 • 当建立MF文件时,卡片必须为空,卡片首先验证制造商密钥(传输代码),通过后把主控文件(MF)的数据写入EEPROM。8个字节的传输代码是由工厂在卡片制造时设定的,如用户无特殊要求,则为:FF FF FF FF FF FF FF FF,在建立MF时,若传输代码错误,则内部错误计数器加一,超过4次卡片自动锁死不可再用。
Lc 有关文件信息 0F/1A 传输代码 (8字节) 建立文件权限(1字节) 短文件标识符(1字节) MF的名称 (05-10) • 命令报文数据域 : MF: 例: 建立MF 80 e0 00 00 18 FFFFFFFFFFFFFFFF 0f 02 315041592e5359532e4444463031 ASSERT 9000 //80 e0 00 00 18 (命令头) FFFFFFFFFFFFFFFF (8字节传输代码) 0f (删除MF的权限) 00(DIR文件的短文件标识符) 315041592e5359532e4444463031(MF的文件名称,银行应用 必须用1PAY.SYS.DDF01 )
Lc 有关文件信息 09/14 文件标识符(2字节) 建立文件权限(1字节) 00 DF的名称 (05-10字节) DF: EF : 说明:在银行应用中 00 18在SmartCOS中用作交易明细文件的标识符, 00 01 用于钱包文件。 00 02 用于存折 0015用于发卡方专用数据文件 0016用于持卡人专用数据文件
;建立密钥文件 80 e0 02 00 07 00 03 05 0f 00 0a 00 ASSERT 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 1234 ASSERT 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 00 ASSERT 9000 //80 E0 02 00 07 (命令头) 0001(文件标识符) 00(二进制文件类型)0F(读权限)11(更新权限)01 00(文件长度)
建立MF、DF文件分别对应着Create End命令,当Create End成功执行之后,文件的安全条件才会有效。 CreateEnd DF 例: ;结束建立MF 80 e0 00 01 02 3f 00 ASSERT 9000 //80 E0 00 01 02 (命令头) 3F00(MF标识符) CreateEnd MF
智能卡安全技术 • 加密技术 • 认证技术 CPU与COS的存在使智能卡能够方便地采用 PIN校验、加密技术及认证技术等 来强化智能卡的安全性
对智能卡安全的威胁 • 窃听:智能卡和接口设备之间的信息流可以被截取分析,从而可被复制或插入假信号。 • 模拟(或伪造)智能卡:模拟与接口设备之间的交换信息,使接口设备无法判断出是合法的还是模拟的智能卡。 • 在交易中更换智能卡:在授权过程使用的是合法的智能卡,而在交易数据写入之前更换成另一张卡,因此将交易数据写入替代卡中。 • 修改信用卡中控制余额更新的日期:信用卡使用时需要输入当天日期,以供卡判断是否是当天第一次使用,即是否应将有效余额项更新为最高授权余额(也即是允许一天内支取的最大金额) • 商店雇员的作弊行为:接口设备写入卡中的数据不正确,或雇员私下将一笔交易写成两笔交易,因此接口设备不允许被借用、私自拆卸或改装。
加密技术 • 密码体制即密码编码 :密码算法+密钥。前者是公式、法则或程序,可以是公开的;后者是实现加密、解密时参与运算的参数,改变密钥也就改变了明文与密文的关系。 • 密码分析即密码破译:系指非授权者由所获密文推导获取加密算法和密钥,从而读懂密文的过程。 • 密钥管理:要保证信息的秘密,必须严防密钥泄露
对称密钥体制(DES) • 为了保证信息传输过程中的安全性,A可以通过使用密钥加密的方法,把加密后的信息传给B。B收到信息后,可以使用同样的密钥解密,从而获得其中的内容。这就是所谓“对称密钥”的做法 • 能够保证即使信息在传输过程中被截获,没有密钥的人也无法得知其中的内容。 • 在Internet环境中,对称密钥体制中的密钥管理成了一个头疼的事:要么大家共用一个密钥,就没有秘密可言;要么n个人相互通讯需要n(n-1)个密钥,数量太多而无法管理。
对称密钥体制(DES) • 也称为私钥密码体制 • 通信双方使用相同的密钥 • DES使用长度为56比特的密钥、加密长度为64比特的明文,获得长度为64比特的密文 • 缺陷之一是通信双方在进行通信之前需通过一个安全信道事先交换密钥。这在实际应用中通常是非常困难的 • 美国目前已经制定了新的数据加密标准,称作AES
发送方: DES Y X KEY 接收方: DES X Y KEY
非对称密钥体制(RSA) • 因此在Internet环境中,需要使用非对称密钥加密。即每个参与者,都有一对密钥,可以分别指定为公钥(PK)和私钥(SK),一个密钥加密的消息只有另一个密钥才能解密,而从一个密钥推断不出另一个密钥。公钥可以用来加密和验证签名;私钥可以用来解密和数字签名。每个人都可以公开自己的公钥,以供他人向自己传输信息时加密之用,只有拥有私钥的本人才能解密,保证了传输过程中的保密性。关键是需要每个人保管好自己的私钥。
非对称密钥体制(RSA) • 也称为公钥密码体制 ,其理论基础是将密码建立在解某些已知的数学难题之上。 • 通信双方各有自己的私人密钥(SK),并共有另一公共密钥(PK)。 • 公钥密码体制可使通信双方无需事先交换密钥就可建立起保密通信,但公钥算法要比私钥算法慢得多 • 在实际通信中,一般利用公钥密码体制来保护和分配(交换)密钥,而利用私钥密码体制加密消息。 • 公钥密码体制的出现为解决私钥密码体制的密钥分配开辟了一条广阔的道路。公钥密码体制主要用于认证(比如数字签名、身份识别等)和密钥管理等。
发送方: RSA Y X PK 接收方: RSA X Y SK
认证技术 • 信息验证码 (MAC—MessageAuthenticationCode) • 数字签名(Digital Signiture) • 数字证书(Digital Certificate) ——防止信息被篡改、伪造或过后否认
信息验证码(MAC—MessageAuthenticationCode) • 目标:防止信息被篡改,保护信息的完整性,要求在接收时能发现被篡改的数据 • 手段:采用一定的算法产生附加的校验码MAC,在接收点进行检验。信息验证码MAC(也称电文识别码或报文鉴别码)是利用密钥对数据加密处理而形成,篡改者由于不知道密钥,也就不能针对性地伪造MAC,对数据的非法修改将很容易被发现,以保证信息的完整性。
数字签名(Digital Signiture) • 目标:防伪造(信息的真实性),防抵赖。要求收方能确认发方的签名;发方签名后,不能否认自己的签名;发生矛盾时,公证人(第二方)能仲裁收发方的问题。 • 手段:散列(HASH)函数+公钥算法 • HASH函数:输入为一可变长输入,返回一固定长度串 (输入信息的特征值)
发送方: Message Hash 算法 传送 Message Digest 1 SK 接收方: Message Hash 算法 Message Digest 2 相等? Message Digest 1 PK
数字证书(Digital Certificate) • 目标:持卡人及商家的合法性。对数字签名和公钥加密技术来说,都会面临公开密钥(PK)的分发问题,即如何获得通讯对方的公钥并且相信此公钥是由某个身份确定的人拥有的,这就要求管理这些公钥的系统必须是值得信赖的。必须有一项技术来解决公钥与合法拥有者身份的绑定问题 ——数字证书(Digital Certificate)
手段:数字证书是一个签名文档(SK),标记特定对象的公开密钥(PK)。该证书由一个认证中心(CA)签发,认证中心类似于现实生活中公证人的角色,它具有权威性,是一个普遍可信的第三方。当通信双方都信任同一个CA时,两者就可以从CA得到对方的公开密钥从而能进行秘密通信、签名和检验。手段:数字证书是一个签名文档(SK),标记特定对象的公开密钥(PK)。该证书由一个认证中心(CA)签发,认证中心类似于现实生活中公证人的角色,它具有权威性,是一个普遍可信的第三方。当通信双方都信任同一个CA时,两者就可以从CA得到对方的公开密钥从而能进行秘密通信、签名和检验。 • 用户到CA申请私人密钥和公共密钥后,自己掌握私人密钥,而对方则可到CA取得公共密钥。
在实施电子商务的过程中,用Internet Explorer向一个认证中心申请电子证书时,就会有一对公钥和私钥自动产生出来;私钥可以存储在智能卡中,公钥和其他身份信息(比如姓名、电子邮件地址等)发给认证中心。如果认证中心批准该申请,那么包含公钥的电子证书就会被返回来,存储在智能卡中。 • 智能卡存储私钥和电子证书的做法,给最终用户提供了对自己安全信息的最大的控制,可以方便地从一台机器携带到另一台机器使用,可以在任何一个地点使用。
如果企业实施了基于Windows 2000的智能卡体制,由企业保安机构给每个员工颁发一个智能卡。员工就可以用这个卡完成很多的工作,比如打开公司的大门、打开自己的抽屉,登录到计算机和网络;加密自己的邮件和文件,这样即使管理员有完全控制的权限,管理员也不能获知其中的内容;员工还可以上网购物,比如购买一张机票,然后直接到飞机舱前划卡即可上飞机;还可以作为电话卡、信用卡使用;作为市政交费卡使用,支付水电煤气费;甚至作为电子钱包式的储值卡来使用,支付小额的午餐费、出租车费等。