CPU卡读写操作与安全控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(读/写)条件时可用相应命令读/写
基本文件结构及操作命令
• 二进制结构 :数据以字节为单位进行读写, 操作命令: Read Binary /Update Binary • 记录结构: (1)线性定长记录文件结构 :以固定的长度来处理每条记录。通过 逻辑上连续的记录号,可访问这类记录 (2)线性变长记录文件结构 :每条记录的长度可以各不相同。仍然 是以记录号来访问各条记录。 (3)循环定长记录文件结构 :可看作一个环形记录队列,记录按照 先进先出的原则存储。 操作命令: Read Record /Append Record /Update Record • 密钥文件结构:每个DF或MF下有且只有一个KEY文件,在任何情况下 密钥均无法读出。在KEY文件中可存放多个密钥,每个密钥为一条定 长记录。记录中规定了其标识、版本、算法、属性及密钥本身等内容 。
兼容性 ∆ ∆ √ √* √* √* * √* √* √ √ √ √ √ √ √ √* √* √* √* √* √ √ √ √
命
令
集
响应
• APDU响应:应答体+应答尾
应答体 响应数据体 SW1 应答尾部 SW2
• 响应体:(可选) 可变长度数据域,由Le确定最大长度 • 状态位:(必备) SW1、SW2:状态字节,表征当前APDU命令的处理情况 处理完成:正常处理:61XX,9000 警告错误:62XX,63XX 处理中断:执行错误:64XX,65XX 检测错误:67XX-6FXX
非对称密钥体制(RSA)
• 因此在Internet环境中,需要使用非对称密钥加 密。即每个参与者,都有一对密钥,可以分别指 定为公钥(PK)和私钥(SK),一个密钥加密的消息 只有另一个密钥才能解密,而从一个密钥推断不 出另一个密钥。公钥可以用来加密和验证签名; 私钥可以用来解密和数字签名。每个人都可以公 开自己的公钥,以供他人向自己传输信息时加密 之用,只有拥有私钥的本人才能解密,保证了传 输过程中的保密性。关键是需要每个人保管好自 己的私钥。
加密技术
• 密码体制即密码编码 :密码算法+密钥。
前者是公式、法则或程序,可以是公开的;后 者是实现加密、解密时参与运算的参数,改变 密钥也就改变了明文与密文的关系。
• 密码分析即密码破译:系指非授权者由所
获密文推导获取加密算法和密钥,从而读懂密 文的过程。
• 密钥管理:要保证信息的秘密,必须严防密
COS的应用控制管理
• 主要功能: 1. 提供应用顺序流程控制; 2. 命令解释与执行:对外部输入的每条命令 做语法分析,分析和检查命令参数是否正 确,然后执行相应功能。 3. 提供命令执行权限控制。
文件数据的操作和管理规则
1.对某个文件做操作之前,必须先选择该文件。 2.按文件系统的三层结构操作,COS不支持以路 径方式选择文件,所以在选择某个文件前必须先 选择它的上一层文件,不允许跨层选择。卡片上 电后自动选择主控文件。 3.访问文件中的数据要受文件的安全属性的控制。 4.对文件的建立要受该文件所属的上层文件的安全 属性的控制。
例: ;写二进制文件0026 00 d6 00 00 10 112233445566778811 22334455667788
命令详解:Verify 校验
• 功能:比较校验命令数据域外部输入的个人密码
与卡中存放的个人密码是否一致。 • 命令报文:
代码 CLA INS P1 P2 Lc DATA 值 00 20 00 00 02-06 外部输入的个人密码
例:建立文件时 ;安装密钥PIN 80 d4 00 00 0a 01 01 00 0b 0f 11 0f 33 1234 读写文件时: ;校验PIN 00 20 00 00 02 1234 应答:63CX,X表示允 许重试次数;63C0锁 死;6983失败
Leabharlann Baidu
若校验成功,则安全状态寄存器的值被置成该密钥的后 续状态,同时错误计数器被置成初始值;若校验错误则 错误计数器减1次;若个人密码已被锁死,则不能执行 该命令。被锁死的个人密码可用解锁、重装指令恢复。
命令 Create File Unblock_PIN Write KEY Read Binary Update Binary Read Record Append Record Update Record Select File INT_FOR_DESCRYPT DES CRYPT INT_SAM_FOR_PURC HASE CREDIT_SAM_FOR_P URCHASE Application Block Application Unlock Card Block External authentication Get Challenge Get Response Internal Authentication Verify Pin Change/Unblock Change PIN Reload PIN Out_KEY
;读二进制文件0026 00 b0 00 00 10
命令详解:Select File 选择文件
• 功能:通过文件名、文件标识符来选择智能卡中
的文件。 • 命令报文:
代码 CLA INS P1 值 00 A4 00—按文件标识符选择 DF/MF 02—选择 EF 04—按文件名选择应用 00—第一个或仅有一个 02—下一个 文件信息长度 文件标识符或 DF /MF 名称
智能(CPU)卡技术
——CPU卡读写操作与安全控制
课 程 目 标
• CPU卡通信协议
• CPU卡通信流程
• CPU卡的读写操作 • CPU卡的安全技术
项目开发——CPU卡POS机
• 系统需求分析: 高安全性 1. 具备金融借记卡、电子钱包功能,符合中国人民银 多应用能力 行金融卡规范。 应用灵活性 2. 具备脱机交易能力。 3. 具备联机(网)通信能力。 4. 操作稳定可靠。
实训:用卡操作 ——CPU卡文件读写
RESET ;选择EF0026 00 A4 02 00 02 0026 ;读二进制文件0026 00 b0 00 00 10 ;校验PIN 00 20 00 00 02 1234 ;写二进制文件0026 00 d6 00 00 10 11223344556677881122334455667788
命令
• APDU命令:固定的4个字节命令头+长度可变的命令体
CLA 命 令 头 INS P1 命 令 体 P2 Lc 数据域 Le
• CLA:命令的类型 (必备) • INS:命令编码(必备) • P1、P2:具体命令参数(必备) • Lc:数据的长度 (可选) • 数据域:具体的命令数据(可选) • Le:期望卡返回的数据长度(可选) 例:建立二进制文件0026 80 E0 02 00 (命令头) 07 (Lc)0026(文件标识符) 00(二进制 文件类型)1f(读权限)2f(更新权限)01 00(Le,文件长度)
项目实现之第三步——软件编程
ISO/IEC7816智能卡通信协议APDU ——Application Protocol Data Unit应用协议数据单元 智能卡外应用程序(读写器程序)与智能卡内应用程 序(COS)进行通信的基本协议 ——命令与响应机制
CPU卡的命令与响应机制
• 读写器程序发送命令 • COS接收并处理命令后回送响应
钥泄露
对称密钥体制(DES)
• 为了保证信息传输过程中的安全性,A可以通过使用密钥 加密的方法,把加密后的信息传给B。B收到信息后,可 以使用同样的密钥解密,从而获得其中的内容。这就是所 谓“对称密钥”的做法 • 能够保证即使信息在传输过程中被截获,没有密钥的人也 无法得知其中的内容。
• 在Internet环境中,对称密钥体制中的密钥管理成了一个 头疼的事:要么大家共用一个密钥,就没有秘密可言;要 么n个人相互通讯需要n(n-1)个密钥,数量太多而无法管 理。
COS的安全控制管理
• 对智能IC卡中的静态、动态数据进行安全控制及 管理。具体分为两种功能: 1.安全传输控制:明文传输方式;认证传输方式; 加密传输方式;混合传输方式。
2.内部安全控制管理 :一是对数据及功能(如某一 命令)的存取执行权限的控制;二是对内部静态 保密数据(如加密密钥等)的安全管理。
非对称密钥体制(RSA)
• 也称为公钥密码体制 ,其理论基础是将密码建立在解某 些已知的数学难题之上。 • 通信双方各有自己的私人密钥(SK),并共有另一公共 密钥(PK)。
• 公钥密码体制可使通信双方无需事先交换密钥就可建立起 保密通信,但公钥算法要比私钥算法慢得多
用途 建立文件 解锁口令 增加或修改密钥 读二进制 修改二进制 读记录 追加记录 修改记录 选择文件 通用 DES 计算初始化 通用 DES 计算 MAC1 计算 校验 MAC2 应用锁定 应用解锁 卡片锁定 外部认证 产生随机数 取响应 内部认证 校验 PIN 修改/解锁 PIN 修改 PIN 重装 PIN PSAM 母卡导出密钥
对称密钥体制(DES)
• 也称为私钥密码体制 • 通信双方使用相同的密钥
• DES使用长度为56比特的密钥、加密长度为64比 特的明文,获得长度为64比特的密文
• 缺陷之一是通信双方在进行通信之前需通 过一个安全信道事先交换密钥。这在实际 应用中通常是非常困难的 • 美国目前已经制定了新的数据加密标准, 称作AES
文件访问方式
• 主文件MF
复位后自动被选择,在任何一级子目录下可通过 文件标识3F00或其文件名来选择MF
• 专用文件DF 通过文件名或文件标识符来选择DF,在MF 下可以选择任意DF。如果当前文件是一个 DF下的一个EF,同样可以通过选择DF的文 件标识符或文件名来选择任意DF。
• 基本文件
对EF操作前必须先选择该文件,满足
例: ;选择EF0026 00 A4 02 00 02 0026 应答: 61XX,表示还有XX数 据可返回
P2 Lc DATA
命令详解:Read Binary 读二进制
• 功能:读取二进制文件的内容
• 命令报文:
代码 CLA INS P1 P2 Le 值 00 B0 XX,文件短标识符或预读文件的偏移量 XX,预读文件的偏移量 XX,要读的字节数
例: ;读二进制文件0026 00 b0 00 00 10 应答:读出的16B二进 制数据 ffffffffffffffffffffffffffffffff
•应答报文数据域的内容为读出的二进制文件内容
命令详解:Update Binary 读二进制
• 功能:写二进制文件。
• 命令报文:
代码 CLA INS P1 P2 Lc DATA 值 00/04 D6 XX,文件短标识符或欲写文件的偏移量 XX,欲读文件的偏移量 XX,要写入的字节数(+安全报文) 写入的数据
智能卡的安全控制
• 加密技术 • 认证技术
CPU与COS的存在使智能卡能够方便地采用 PIN校验、加密技术及认证技术等 来强化智能卡的安全性
对智能卡安全的威胁
• 窃听:智能卡和接口设备之间的信息流可以被截取分析,从而可被复 制或插入假信号。
• 模拟(或伪造)智能卡:模拟与接口设备之间的交换信息,使接口设 备无法判断出是合法的还是模拟的智能卡。 • 在交易中更换智能卡:在授权过程使用的是合法的智能卡,而在交易 数据写入之前更换成另一张卡,因此将交易数据写入替代卡中。 • 修改信用卡中控制余额更新的日期:信用卡使用时需要输入当天日期, 以供卡判断是否是当天第一次使用,即是否应将有效余额项更新为最 高授权余额(也即是允许一天内支取的最大金额) • 商店雇员的作弊行为:接口设备写入卡中的数据不正确,或雇员私下 将一笔交易写成两笔交易,因此接口设备不允许被借用、私自拆卸或 改装。
指令类别 80 80 80/84 00 00/04 00 00/04 00/04 00 80 80 80 80 84 84 84 00 00 00 00 00 84 80 80 80
编码 E0 2C D4 B0 D6 B2 E2 DC A4 1A FA 70 72 1E 18 16 82 84 C0 88 20 24 5E 5E F6
基本文件结构及操作命令
• 二进制结构 :数据以字节为单位进行读写, 操作命令: Read Binary /Update Binary • 记录结构: (1)线性定长记录文件结构 :以固定的长度来处理每条记录。通过 逻辑上连续的记录号,可访问这类记录 (2)线性变长记录文件结构 :每条记录的长度可以各不相同。仍然 是以记录号来访问各条记录。 (3)循环定长记录文件结构 :可看作一个环形记录队列,记录按照 先进先出的原则存储。 操作命令: Read Record /Append Record /Update Record • 密钥文件结构:每个DF或MF下有且只有一个KEY文件,在任何情况下 密钥均无法读出。在KEY文件中可存放多个密钥,每个密钥为一条定 长记录。记录中规定了其标识、版本、算法、属性及密钥本身等内容 。
兼容性 ∆ ∆ √ √* √* √* * √* √* √ √ √ √ √ √ √ √* √* √* √* √* √ √ √ √
命
令
集
响应
• APDU响应:应答体+应答尾
应答体 响应数据体 SW1 应答尾部 SW2
• 响应体:(可选) 可变长度数据域,由Le确定最大长度 • 状态位:(必备) SW1、SW2:状态字节,表征当前APDU命令的处理情况 处理完成:正常处理:61XX,9000 警告错误:62XX,63XX 处理中断:执行错误:64XX,65XX 检测错误:67XX-6FXX
非对称密钥体制(RSA)
• 因此在Internet环境中,需要使用非对称密钥加 密。即每个参与者,都有一对密钥,可以分别指 定为公钥(PK)和私钥(SK),一个密钥加密的消息 只有另一个密钥才能解密,而从一个密钥推断不 出另一个密钥。公钥可以用来加密和验证签名; 私钥可以用来解密和数字签名。每个人都可以公 开自己的公钥,以供他人向自己传输信息时加密 之用,只有拥有私钥的本人才能解密,保证了传 输过程中的保密性。关键是需要每个人保管好自 己的私钥。
加密技术
• 密码体制即密码编码 :密码算法+密钥。
前者是公式、法则或程序,可以是公开的;后 者是实现加密、解密时参与运算的参数,改变 密钥也就改变了明文与密文的关系。
• 密码分析即密码破译:系指非授权者由所
获密文推导获取加密算法和密钥,从而读懂密 文的过程。
• 密钥管理:要保证信息的秘密,必须严防密
COS的应用控制管理
• 主要功能: 1. 提供应用顺序流程控制; 2. 命令解释与执行:对外部输入的每条命令 做语法分析,分析和检查命令参数是否正 确,然后执行相应功能。 3. 提供命令执行权限控制。
文件数据的操作和管理规则
1.对某个文件做操作之前,必须先选择该文件。 2.按文件系统的三层结构操作,COS不支持以路 径方式选择文件,所以在选择某个文件前必须先 选择它的上一层文件,不允许跨层选择。卡片上 电后自动选择主控文件。 3.访问文件中的数据要受文件的安全属性的控制。 4.对文件的建立要受该文件所属的上层文件的安全 属性的控制。
例: ;写二进制文件0026 00 d6 00 00 10 112233445566778811 22334455667788
命令详解:Verify 校验
• 功能:比较校验命令数据域外部输入的个人密码
与卡中存放的个人密码是否一致。 • 命令报文:
代码 CLA INS P1 P2 Lc DATA 值 00 20 00 00 02-06 外部输入的个人密码
例:建立文件时 ;安装密钥PIN 80 d4 00 00 0a 01 01 00 0b 0f 11 0f 33 1234 读写文件时: ;校验PIN 00 20 00 00 02 1234 应答:63CX,X表示允 许重试次数;63C0锁 死;6983失败
Leabharlann Baidu
若校验成功,则安全状态寄存器的值被置成该密钥的后 续状态,同时错误计数器被置成初始值;若校验错误则 错误计数器减1次;若个人密码已被锁死,则不能执行 该命令。被锁死的个人密码可用解锁、重装指令恢复。
命令 Create File Unblock_PIN Write KEY Read Binary Update Binary Read Record Append Record Update Record Select File INT_FOR_DESCRYPT DES CRYPT INT_SAM_FOR_PURC HASE CREDIT_SAM_FOR_P URCHASE Application Block Application Unlock Card Block External authentication Get Challenge Get Response Internal Authentication Verify Pin Change/Unblock Change PIN Reload PIN Out_KEY
;读二进制文件0026 00 b0 00 00 10
命令详解:Select File 选择文件
• 功能:通过文件名、文件标识符来选择智能卡中
的文件。 • 命令报文:
代码 CLA INS P1 值 00 A4 00—按文件标识符选择 DF/MF 02—选择 EF 04—按文件名选择应用 00—第一个或仅有一个 02—下一个 文件信息长度 文件标识符或 DF /MF 名称
智能(CPU)卡技术
——CPU卡读写操作与安全控制
课 程 目 标
• CPU卡通信协议
• CPU卡通信流程
• CPU卡的读写操作 • CPU卡的安全技术
项目开发——CPU卡POS机
• 系统需求分析: 高安全性 1. 具备金融借记卡、电子钱包功能,符合中国人民银 多应用能力 行金融卡规范。 应用灵活性 2. 具备脱机交易能力。 3. 具备联机(网)通信能力。 4. 操作稳定可靠。
实训:用卡操作 ——CPU卡文件读写
RESET ;选择EF0026 00 A4 02 00 02 0026 ;读二进制文件0026 00 b0 00 00 10 ;校验PIN 00 20 00 00 02 1234 ;写二进制文件0026 00 d6 00 00 10 11223344556677881122334455667788
命令
• APDU命令:固定的4个字节命令头+长度可变的命令体
CLA 命 令 头 INS P1 命 令 体 P2 Lc 数据域 Le
• CLA:命令的类型 (必备) • INS:命令编码(必备) • P1、P2:具体命令参数(必备) • Lc:数据的长度 (可选) • 数据域:具体的命令数据(可选) • Le:期望卡返回的数据长度(可选) 例:建立二进制文件0026 80 E0 02 00 (命令头) 07 (Lc)0026(文件标识符) 00(二进制 文件类型)1f(读权限)2f(更新权限)01 00(Le,文件长度)
项目实现之第三步——软件编程
ISO/IEC7816智能卡通信协议APDU ——Application Protocol Data Unit应用协议数据单元 智能卡外应用程序(读写器程序)与智能卡内应用程 序(COS)进行通信的基本协议 ——命令与响应机制
CPU卡的命令与响应机制
• 读写器程序发送命令 • COS接收并处理命令后回送响应
钥泄露
对称密钥体制(DES)
• 为了保证信息传输过程中的安全性,A可以通过使用密钥 加密的方法,把加密后的信息传给B。B收到信息后,可 以使用同样的密钥解密,从而获得其中的内容。这就是所 谓“对称密钥”的做法 • 能够保证即使信息在传输过程中被截获,没有密钥的人也 无法得知其中的内容。
• 在Internet环境中,对称密钥体制中的密钥管理成了一个 头疼的事:要么大家共用一个密钥,就没有秘密可言;要 么n个人相互通讯需要n(n-1)个密钥,数量太多而无法管 理。
COS的安全控制管理
• 对智能IC卡中的静态、动态数据进行安全控制及 管理。具体分为两种功能: 1.安全传输控制:明文传输方式;认证传输方式; 加密传输方式;混合传输方式。
2.内部安全控制管理 :一是对数据及功能(如某一 命令)的存取执行权限的控制;二是对内部静态 保密数据(如加密密钥等)的安全管理。
非对称密钥体制(RSA)
• 也称为公钥密码体制 ,其理论基础是将密码建立在解某 些已知的数学难题之上。 • 通信双方各有自己的私人密钥(SK),并共有另一公共 密钥(PK)。
• 公钥密码体制可使通信双方无需事先交换密钥就可建立起 保密通信,但公钥算法要比私钥算法慢得多
用途 建立文件 解锁口令 增加或修改密钥 读二进制 修改二进制 读记录 追加记录 修改记录 选择文件 通用 DES 计算初始化 通用 DES 计算 MAC1 计算 校验 MAC2 应用锁定 应用解锁 卡片锁定 外部认证 产生随机数 取响应 内部认证 校验 PIN 修改/解锁 PIN 修改 PIN 重装 PIN PSAM 母卡导出密钥
对称密钥体制(DES)
• 也称为私钥密码体制 • 通信双方使用相同的密钥
• DES使用长度为56比特的密钥、加密长度为64比 特的明文,获得长度为64比特的密文
• 缺陷之一是通信双方在进行通信之前需通 过一个安全信道事先交换密钥。这在实际 应用中通常是非常困难的 • 美国目前已经制定了新的数据加密标准, 称作AES
文件访问方式
• 主文件MF
复位后自动被选择,在任何一级子目录下可通过 文件标识3F00或其文件名来选择MF
• 专用文件DF 通过文件名或文件标识符来选择DF,在MF 下可以选择任意DF。如果当前文件是一个 DF下的一个EF,同样可以通过选择DF的文 件标识符或文件名来选择任意DF。
• 基本文件
对EF操作前必须先选择该文件,满足
例: ;选择EF0026 00 A4 02 00 02 0026 应答: 61XX,表示还有XX数 据可返回
P2 Lc DATA
命令详解:Read Binary 读二进制
• 功能:读取二进制文件的内容
• 命令报文:
代码 CLA INS P1 P2 Le 值 00 B0 XX,文件短标识符或预读文件的偏移量 XX,预读文件的偏移量 XX,要读的字节数
例: ;读二进制文件0026 00 b0 00 00 10 应答:读出的16B二进 制数据 ffffffffffffffffffffffffffffffff
•应答报文数据域的内容为读出的二进制文件内容
命令详解:Update Binary 读二进制
• 功能:写二进制文件。
• 命令报文:
代码 CLA INS P1 P2 Lc DATA 值 00/04 D6 XX,文件短标识符或欲写文件的偏移量 XX,欲读文件的偏移量 XX,要写入的字节数(+安全报文) 写入的数据
智能卡的安全控制
• 加密技术 • 认证技术
CPU与COS的存在使智能卡能够方便地采用 PIN校验、加密技术及认证技术等 来强化智能卡的安全性
对智能卡安全的威胁
• 窃听:智能卡和接口设备之间的信息流可以被截取分析,从而可被复 制或插入假信号。
• 模拟(或伪造)智能卡:模拟与接口设备之间的交换信息,使接口设 备无法判断出是合法的还是模拟的智能卡。 • 在交易中更换智能卡:在授权过程使用的是合法的智能卡,而在交易 数据写入之前更换成另一张卡,因此将交易数据写入替代卡中。 • 修改信用卡中控制余额更新的日期:信用卡使用时需要输入当天日期, 以供卡判断是否是当天第一次使用,即是否应将有效余额项更新为最 高授权余额(也即是允许一天内支取的最大金额) • 商店雇员的作弊行为:接口设备写入卡中的数据不正确,或雇员私下 将一笔交易写成两笔交易,因此接口设备不允许被借用、私自拆卸或 改装。
指令类别 80 80 80/84 00 00/04 00 00/04 00/04 00 80 80 80 80 84 84 84 00 00 00 00 00 84 80 80 80
编码 E0 2C D4 B0 D6 B2 E2 DC A4 1A FA 70 72 1E 18 16 82 84 C0 88 20 24 5E 5E F6