获取数据 APDU 命令不同的标签和响应格式
Get Data APDU command different tags and response format
如您所知,Gloabal Platform Card Specification 定义了一个名为 Get Data 的命令来从智能卡中检索一些信息。
GlobalPlatformPro 是与智能卡通信的流行工具之一。当我使用此工具列出 卡上已安装的小程序时,我得到以下输出:
D:-TestTools\SmartCard>GP -list -d -v -i
//Useless Info Censored
ATR: 3B6800000073C84012009000
//Select APDU Command
A>> T=0 (4+0000) 00A40400 00
A<< (0018+2) (48ms) 6F108408A000000003000000A5049F6501FF 9000
***** Card info:
A>> T=0 (4+0000) 80CA9F7F 00
A<< (0045+2) (65ms) 9F7F2A4250010C425102902610116000099A5A0AF9425211694253117E00000000000000000000000000000000 9000
Card CPLC:
ICFabricator: 4250
ICType: 010C
OperatingSystemID: 4251
OperatingSystemReleaseDate: 0290
OperatingSystemReleaseLevel: 2610
ICFabricationDate: 1160
ICSerialNumber: 00099A5A
ICBatchIdentifier: 0AF9
ICModuleFabricator: 4252
ICModulePackagingDate: 1169
ICCManufacturer: 4253
ICEmbeddingDate: 117E
ICPrePersonalizer: 0000
ICPrePersonalizationEquipmentDate: 0000
ICPrePersonalizationEquipmentID: 00000000
ICPersonalizer: 0000
ICPersonalizationDate: 0000
ICPersonalizationEquipmentID: 00000000
***** CARD DATA
A>> T=0 (4+0000) 80CA0066 00
A<< (0078+2) (95ms) 664C734A06072A864886FC6B01600C060A2A864886FC6B02020101630906072A864886FC6B03640B06092A864886FC6B040215650B0609
2B8510864864020103660C060A2B060104012A026E0102 9000
GlobalPlatform card
Version: 2.1.1
TAG3: 1.2.840.114283.3
SCP version: SCP_02_15
TAG5: 1.3.656.840.100.2.1.3
TAG6: 1.3.6.1.4.1.42.2.110.1.2
***** KEY INFO
A>> T=0 (4+0000) 80CA00E0 00
A<< (0020+2) (47ms) E012C00401018010C00402018010C00403018010 9000
VER:1 ID:1 TYPE:DES3 LEN:16
VER:1 ID:2 TYPE:DES3 LEN:16
VER:1 ID:3 TYPE:DES3 LEN:16
//Useless Info Censored
正如您在上面看到的,该工具使用以下 APDU 命令从卡中提取了 Card Info
、Card Data
和 Key Info
:
- 卡片信息:
80 CA 9F 7F
- 卡数据:
80 CA 00 66
- 关键信息:
80 CA 00 E0
问题:
标签 E0
和 66
在 全球平台卡规范 中提到,但标签 9F 7F
不吨!规范在哪里?
Global Platform Specification中提到,Card Data
(Tag 66
)的格式定义在ISO/IEC7816第 6 部分。但是在这个文档中只有一个table如下:
正如你在上面看到的,这个table的内容和我在GPP工具输出中看到的结果真的不一样。我如何解释输出(获取数据 APDU 命令响应)?
(在全球平台 2.2.1 和 ISO/IEC 7816-6:2004 的上下文中)
标签'E0'(关键信息模板):
- 在全球平台中定义(参见第 11.3.3.1 节和表 11-27 和 11-28)。
标签'66'(名片数据):
在 ISO 7816-6 中定义 -- 它可能包含名为 "Discretionary Data Objects" 的标记“73”,描述为“未在
ISO/IEC 7816"(参见 Table 6)。
全球平台将标签'66'(卡片数据)中的标签'73'的内容定义为"Card Recognition Data"(参见第7.4.1.3节,附录H.2和Table H-1).此定义符合 ISO 7816。
标签'9F7F'(CPLC/卡片生产生命周期数据):
- 在 "Visa Integrated Circuit Card / Card Specification" 中定义,它不是 public(但可以使用 google 找到)。开放平台 2.0.1(GP 的前身)定义 CPLC 应该可以使用
GET DATA
命令检索——但它没有告诉特定的标签。
希望这是有道理的...祝你好运!
如您所知,Gloabal Platform Card Specification 定义了一个名为 Get Data 的命令来从智能卡中检索一些信息。
GlobalPlatformPro 是与智能卡通信的流行工具之一。当我使用此工具列出 卡上已安装的小程序时,我得到以下输出:
D:-TestTools\SmartCard>GP -list -d -v -i
//Useless Info Censored
ATR: 3B6800000073C84012009000
//Select APDU Command
A>> T=0 (4+0000) 00A40400 00
A<< (0018+2) (48ms) 6F108408A000000003000000A5049F6501FF 9000
***** Card info:
A>> T=0 (4+0000) 80CA9F7F 00
A<< (0045+2) (65ms) 9F7F2A4250010C425102902610116000099A5A0AF9425211694253117E00000000000000000000000000000000 9000
Card CPLC:
ICFabricator: 4250
ICType: 010C
OperatingSystemID: 4251
OperatingSystemReleaseDate: 0290
OperatingSystemReleaseLevel: 2610
ICFabricationDate: 1160
ICSerialNumber: 00099A5A
ICBatchIdentifier: 0AF9
ICModuleFabricator: 4252
ICModulePackagingDate: 1169
ICCManufacturer: 4253
ICEmbeddingDate: 117E
ICPrePersonalizer: 0000
ICPrePersonalizationEquipmentDate: 0000
ICPrePersonalizationEquipmentID: 00000000
ICPersonalizer: 0000
ICPersonalizationDate: 0000
ICPersonalizationEquipmentID: 00000000
***** CARD DATA
A>> T=0 (4+0000) 80CA0066 00
A<< (0078+2) (95ms) 664C734A06072A864886FC6B01600C060A2A864886FC6B02020101630906072A864886FC6B03640B06092A864886FC6B040215650B0609
2B8510864864020103660C060A2B060104012A026E0102 9000
GlobalPlatform card
Version: 2.1.1
TAG3: 1.2.840.114283.3
SCP version: SCP_02_15
TAG5: 1.3.656.840.100.2.1.3
TAG6: 1.3.6.1.4.1.42.2.110.1.2
***** KEY INFO
A>> T=0 (4+0000) 80CA00E0 00
A<< (0020+2) (47ms) E012C00401018010C00402018010C00403018010 9000
VER:1 ID:1 TYPE:DES3 LEN:16
VER:1 ID:2 TYPE:DES3 LEN:16
VER:1 ID:3 TYPE:DES3 LEN:16
//Useless Info Censored
正如您在上面看到的,该工具使用以下 APDU 命令从卡中提取了 Card Info
、Card Data
和 Key Info
:
- 卡片信息:
80 CA 9F 7F
- 卡数据:
80 CA 00 66
- 关键信息:
80 CA 00 E0
问题:
标签
E0
和66
在 全球平台卡规范 中提到,但标签9F 7F
不吨!规范在哪里?Global Platform Specification中提到,
Card Data
(Tag66
)的格式定义在ISO/IEC7816第 6 部分。但是在这个文档中只有一个table如下:
正如你在上面看到的,这个table的内容和我在GPP工具输出中看到的结果真的不一样。我如何解释输出(获取数据 APDU 命令响应)?
(在全球平台 2.2.1 和 ISO/IEC 7816-6:2004 的上下文中)
标签'E0'(关键信息模板):
- 在全球平台中定义(参见第 11.3.3.1 节和表 11-27 和 11-28)。
标签'66'(名片数据):
在 ISO 7816-6 中定义 -- 它可能包含名为 "Discretionary Data Objects" 的标记“73”,描述为“未在 ISO/IEC 7816"(参见 Table 6)。
全球平台将标签'66'(卡片数据)中的标签'73'的内容定义为"Card Recognition Data"(参见第7.4.1.3节,附录H.2和Table H-1).此定义符合 ISO 7816。
标签'9F7F'(CPLC/卡片生产生命周期数据):
- 在 "Visa Integrated Circuit Card / Card Specification" 中定义,它不是 public(但可以使用 google 找到)。开放平台 2.0.1(GP 的前身)定义 CPLC 应该可以使用
GET DATA
命令检索——但它没有告诉特定的标签。
- 在 "Visa Integrated Circuit Card / Card Specification" 中定义,它不是 public(但可以使用 google 找到)。开放平台 2.0.1(GP 的前身)定义 CPLC 应该可以使用
希望这是有道理的...祝你好运!