GP常用功能介绍

上传人:人*** 文档编号:496414067 上传时间:2022-08-22 格式:DOCX 页数:23 大小:89.39KB
返回 下载 相关 举报
GP常用功能介绍_第1页
第1页 / 共23页
GP常用功能介绍_第2页
第2页 / 共23页
GP常用功能介绍_第3页
第3页 / 共23页
GP常用功能介绍_第4页
第4页 / 共23页
GP常用功能介绍_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《GP常用功能介绍》由会员分享,可在线阅读,更多相关《GP常用功能介绍(23页珍藏版)》请在金锄头文库上搜索。

1、GP常用功能介绍GP 常用功能介绍 11. 前言31.1 目标31.2 参考文档32. 安全域介绍32.1 安全域分类32.1.1 安全域密钥分散42.1.2 用户信息结构42.2 安全域密钥说明42.3 安全域密钥分散53. SCP02的外部认证63.1外部认证的APDU命令63.1.1 INITIALIZE UPDATE 命令63.1.2 会话密钥分散73.1.3 EXTERNAL AUTHENTICATE 命令73.2 计算 APDU 的 MAC94. 卡内容管理94.1 卡内容装载和安装94.1.1 卡内容的装载104.1.2 卡内容的安装104.2 卡内容移除124.2.1 应用的移

2、除124.2.2 可执行装载文件的移除134.2.3 可执行装载文件和相关应用的移除144.3 内容的移交(context Extradition)145. APDU命令参考155.1 CLASS字节编码155.2 一般性的错误情形155.3 INSTALL 命令165.3.1 命令消息165.3.2 命令消息中发送的数据字段175.3.3 响应消息215.4 LOAD 命令215.4.1 命令消息215.4.2 响应消息221. 前言1.1 目标本文档主要介绍GlobalPlatform上安全域,应用常用操作内容,以方便使 用都快速掌握必要信息。1.2 参考文档GlobalPlatform

3、卡片规范 2.22. 安全域介绍卡片管理器作为 GlobalPlatform 架构中的首要组件起到了 GlobalPlatform 卡 片中心管理者的作用,特定的密钥和安全管理应用被称作安全域,负责确保发卡 方和其他安全域提供者之间的密钥的完全隔离。安全域负责提供各类安全服务,包括密钥管理、加密解密、针对其提供者(发 卡方、应用提供方、授权管理者)的应用进行数字签名的生成与验证。当发卡方、应用提供方、授权管理者等卡外实体要用到的秘钥从其他是提取 隔开来时,可以通过新的安全域来代理它们的实现这个需求。2.1 安全域分类作为卡外授权机构的卡片内代表的安全域,依据现有的三种授权机构,可以 划分为三种

4、主流类型:主安全域:卡片上首要的、强制性存在的安全域,是卡片管理者 (通常是发 卡方)在卡片内的代表;辅助安全域:卡片上次要的、可选择地存在的安全域,是应用提供方或发卡 方以及它们的代理方在卡片内的代表;授权管理者安全域:一种特殊类型的辅助安全域,授权管理者负责将某种安 全策略贯彻到所有加载到卡片的应用代码上,授权管理者安全域就是授权管理者 在卡片内的代表,卡片上可能存在多个这样的安全域。2.1.1 安全域密钥分散HealthInfo info = new HealthInfo(Activity activity,Handler handler);handler 用于执行交互。2.1.2 用户

5、信息结构接口返回一个com.cosw.health.pojo.Info对象,此对象包含用户信息。如下表:变量名称变量类型变量说明nameString用户名称genderString姓别ethnicString民族birthdayString生日idCardString身份证号addresslString用户地址1address2String用户地址22.2 安全域密钥说明安全域的密钥都是静态的方式存在于卡片内的,是在安全域实例化后,对它 进行个人化(Put Key)时写入卡内的。一般是由后端系统根据根密钥派生出来的安全域密钥。KEYDATA (密钥数据)是每个IC卡应用分区都可以访问的一个数据

6、单元, KMC标识符是INITIALIZE UPDATE命令响应数据的一部分,并给定位IC卡发 行商的 KMC 提供了方便。在IC卡上必须存在个人化主密钥(KMC)的版本号,这个主密钥用来 为每个应用生成初始的个人化密钥(KENC、KMAC和KDEK)。必须为每张IC卡生成一个加密分散密钥(KENC),并把它写入相应的应用 中。这个密钥用来生成 IC 卡密文和验证主机密文。如果密文的安全等级要求 STORE DATA命令的数据字段是加密的,这个分散密钥还用来在CBC模式下对 该命令的数据字段进行解密。KENC是一个16字节(112比特加奇偶校验位)的DES密钥。KENC 密钥用以下方法推算:K

7、ENC : = DES3(KMC) KEYDATA的 6 个最低有效字节lF0 II 01 11 DES3(KMC) KEYDATA的 6 个最低有效字节 | 0F | 01 。必须为每张IC卡生成一个校验码分散密钥(KMAC)并写入相应的IC卡。 这个密钥用来校验EXTERNAL AUTHENTICATE命令使用的C-MAC。同时当 STORE DATA命令的密文安全级要求命令中的数据采用MAC时,这个密钥也 用来校验STORE DATA命令使用的C-MAC。KMAC是一个16字节(112比特加奇偶校验位)的DES密钥。KMAC 应采用以下方法导出:KMAC : = DES3(KMC) KE

8、YDATA 的 6 个最低有效字节 lF0 II 02 11 DES3 (KMC) KEYDATA的 6 个最低有效字节 II 0F II 02 。必须为每张IC卡生成一个密钥加密分散密钥(KDEK)并将它写入相应的 IC卡。这个密钥用来在ECB模式下对STORE DATA命令收到的机密数据进行 解密。KDEK是一个16字节(112比特加奇偶校验位)的DES密钥。KDEK应采用以下方法导出:KDEK : = DES3(KMC) KEYDATA 的 6个最低有效字节 II F0 II 03 II DES3 (KMC) KEYDATA 的 6 个最低有效字节 II 0F II 03。2.3 安全域

9、密钥分散简单的说密钥分散就是用根密钥对分散数据进行一次加密,得出的结果就是 子密钥。【样例】:根密钥(KMC)=4464748494A4B4C4D4E4F密钥数据(KEYDATA)=7分散因子 kenc=7F71470F01分散因子 kmac=7F71470F02分散因子 kdek=7F71470F03用根密钥(KMC)对分散因子进行3DES运算:分散出 kenc=4E891150F7A210E474A50083B0F2F910分散出 kmac=64E9EFAC8792D5F3F9BE16667B734A6B分散出 kdek=5CCFBF18DCA7FF987C0B90C92EF25712【代

10、码】:commons-card 工程:mons.card.GPExternalAuth.java/ 分散出主密钥byte keys = GPExternalAuth. PBOCDiversifyKey (kmc, keyData);3. SCP02的外部认证卡和卡外实体都可以扮演一个安全消息发送实体和接实体的角色。SCP02提 供了安全的以下3 个级别:实体认证(安全级别 00) 卡认证卡外实体,卡外实体认证卡,证明了卡外 实体知道与卡相同的秘密。完整性和数据来源认证(安全级别 01) 接收实体(卡或卡外实体)确信收到 的数据确实按照正确的顺序来自一个被认证过的发送实体(卡或卡外实体),并且

11、没有被更改过。数据的机密性(安全级别 03) 从发旁顾实体(卡或卡外实体)到接收实体(卡 或卡外实体)正在被传输的数据不能被认证的其它实体看到。3.1外部认证的APDU命令3.1.1 INITIALIZE UPDATE 命令参见:80 50 + P1 + P2 + Lc + Data +Le代码值含义CLA80INS50INITIALIZE UPDATEPlXX密钥版本号P200引用控控制参数P2Lc08主机随机数据长度Da taXX主机随机数Le00PS: 如果 P1 值为 00则选择第一个可用密钥进行初始化。 响应数据:名字长度备注密钥派生数据10字节一般由后端系统用来派生卡静态 密钥密钥

12、信息2字节包含了密钥的版本号和安全通道 的协议标识符序列计数器2字节卡内一个递增的计数器,它用于创建会话密钥卡随机数6字节内部生成的随机数卡认证码8字节认证码3.1.2会话密钥分散3.1.3 EXTERNAL AUTHENTICATE 命令卡片认证主机,并确定所有后续命令所需的安全级别。84 82 + P1 + P2 + Lc + Data + Le代码值含义CLA84INS82EXTERNAL AUTHENTICATEPlXX安全级别(00,01,03)P200引用控控制参数P2Lc10主机认证码及MAC长度Da taXX主机认证码及MACLe不存在样例】:主机随机数据:607088050返

13、回数据:160007750B1A97528A29D47693D80ED6BA160001 /计数器750B1A97528A /卡随机数29D47693D80ED6BA /卡认证码kenc=4E891150F7A210E474A50083B0F2F910kmac=64E9EFAC8792D5F3F9BE16667B734A6Bkdek=5CCFBF18DCA7FF987C0B90C92EF25712会话分散因子senc=000000000会话分散因子smac=0000000000会话分散因子sdek=0000000000进行3DES-CBC iv全0运算:SENC=EAA4B56F2E23B38

14、306D4C72FD47C5DDDSMAC=31A41E63BAD0E361C40F2A51D6EA3BDCSDEK=F6F687747BB0BD383E9C2A119182BF88验证认证码:主机随机数+卡片计数器+卡片随机数据60708+0001750B1A97528A+800001) 用 SENC 对 60708 进行加密得到:33BF52E1B892551O2) 上一步结果与 0001750B1A97528A 异域得到:33BE27EAA205079A3) 上一步结果用SENC加密,得到:41568684C2E16CFC4) 上一步结果与80000异域得到:C1568684C2E16CFC5) 上一步结果用SENC加密,得到:29D47693D80ED6BA6) 得到的结果与卡片上送数据里的认证码一样,通过。计算新的认证码:卡片计数器+卡片随机数据+主机随机数0001750B1A97528A+60708+80000计算过程与上面一样,得出结果:FD1FC70AA3606C0C 生成不带 MAC 的命令:8482010010FD1FC70AA3606C0C 计算 MAC: 补 80 后:8482010010FD1FC70AA3606C0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号