7

我有一张具有以下 ATR 的智能卡:

ATR = 3B 9E 94 80 1F 42 80 31 00 73 BE 21 10 66 54 59 53 04 4C 25 CF.

根据atr-parse.appspot.com的输出,我发现它是一张MCI(伊朗移动通信公司)SIM 卡

这些是我从历史字节中获得的信息:

(紧凑 TLV 数据对象)

Tag:3,Len:1(卡服务数据字节)

卡服务数据字节:0

  • EF.DIR 和 EF.ATR 访问服务:通过 GET RECORD(s) 命令

  • MF卡

标签:7,Len:3(卡片功能)

选择方法:190

  • 支持的记录号

  • 支持短 EF 标识符

  • 隐式 DF 选择

  • 按文件标识符选择 DF

  • DF选择路径

  • 按全 DF 名称选择 DF

数据编码字节:33

  • 写函数的行为:专有

  • BER-TLV 标签字段的第一个字节的值“FF”:有效

  • 四重奏数据单位:1

命令链、长度字段和逻辑通道:16

  • 逻辑通道号分配:由卡

  • 最大逻辑通道数:1

标签:6,Len:6(发布前数据)

数据:54 59 53 04 4C 25“TYS.L%”

正如您在上面看到的,提到该卡有一个MF.

问题是我不能用这张卡做任何事情。在第一步中,我想列出它的内容。我查看了TS 11.11TS 102.221TS 131.102TS 151.011规范。

据我从上述文件中了解到,该卡的系统文件Master File由其 AID3F00和一些 DF-s 和 EF-s 组成。例如,基于TS 151.011规范的下表,我尝试选择一些 DF-s:

在此处输入图像描述

这些是结果:

Connected to RTP CCID USB Reader 0
ATR: 3B 9E 94 80 1F 42 80 31 00 73 BE 21 10 66 54 59 53 04 4C 25 CF

> APDU
> A0 A4 04 00 02 5F 30
< 6A 82

> APDU
> A4 A4 04 00 00
< 6E 00

> APDU
> A0 A4 04 00 00
< 67 00

> APDU
> 00 A4 04 00 00
< 61 13

> APDU
> 00 C0 00 00 13
< 6F 11 84 09 A0 00 00 00 62 03 01 08 01 A5 04 9F 65 01 FF
< 90 00

> APDU
> 00 A4 04 00 09 A0 00 00 00 62 03 01 08 01
< 61 13

> APDU
> A0 A4 04 00 09 A0 00 00 00 62 03 01 08 01
< 6E 00

> APDU
> 00 A4 04 00 09 A0 00 00 00 62 03 01 08 01
< 61 13

> APDU
> 00 C0 00 00 13
< 6F 11 84 09 A0 00 00 00 62 03 01 08 01 A5 04 9F 65 01 FF
< 90 00

> APDU
> 00 A4 04 00 02 3F 00
< 6A 82

> APDU
> A0 A4 04 00 02 3F 00
< 6E 00

正如你在上面看到的,我都失败了,我只能找到 ISD 的 AID。

我也尝试使用GlobalPlatformPro工具列出内容,但该卡似乎不支持 Initial Update APDU 命令:

C:\Users\User\Desktop\today>java -jar gp.jar -visa2 -key 47454D5850524553534F53414D504C45 -unlock -list -v -d -i
# Detected readers from SunPCSC
[*] RTP CCID USB Reader 0
SCardConnect("RTP CCID USB Reader 0", T=*) -> T=0, 3B9E94801F4280310073BE211066545953044C25CF
SCardBeginTransaction("RTP CCID USB Reader 0")
Reader: RTP CCID USB Reader 0
ATR: 3B9E94801F4280310073BE211066545953044C25CF
More information about your card:
    http://smartcard-atr.appspot.com/parse?ATR=3B9E94801F4280310073BE211066545953044C25CF

A>> T=0 (4+0000) 00A40400 00
A<< (0019+2) (249ms) 6F118409A00000006203010801A5049F6501FF 9000
Auto-detected ISD AID: A00000006203010801
***** Card info:
A>> T=0 (4+0000) 80CA9F7F 00
A<< (0000+2) (73ms) 6A86
GET DATA(CPLC) returned SW: 6A86
NO CPLC
***** CARD DATA
A>> T=0 (4+0000) 80CA0066 00
A<< (0000+2) (81ms) 6E00
NO CARD DATA
***** KEY INFO
A>> T=0 (4+0000) 80CA00E0 00
A<< (0000+2) (82ms) 6E00
A>> T=0 (4+0000) 00CA00E0 00
A<< (0000+2) (60ms) 6E00
GET DATA(Key Information Template) not supported
A>> T=0 (4+0008) 80500000 08 FE44F8E8DF60349B 00
A<< (0000+2) (61ms) 6D00
pro.javacard.gp.GPException: INITIALIZE UPDATE failed SW: 6D00
        at pro.javacard.gp.GlobalPlatform.check(GlobalPlatform.java:1092)
        at pro.javacard.gp.GlobalPlatform.openSecureChannel(GlobalPlatform.java:398)
        at pro.javacard.gp.GPTool.main(GPTool.java:371)

C:\Users\User\Desktop\today> 

我想知道怎么了?如何在这张 SIM 卡上安装 java 卡小程序?

请注意,我已经成功地使用了 Java Card,但我对这些 SIM 卡完全感到困惑。我很感激任何人都可以对这个问题有所了解。问候。

4

2 回答 2

3

如果您从市场上获得该卡(不是您自己的开发卡),则几乎不可能在其上安装小程序,因为您不知道其 ISD 的密钥集。这样做是为了仅授予发卡机构和卡所有者 (MNO) 对 SIM 卡内容的完全控制权。

另一种可能的解释是,并非所有 SIM 卡都完全支持 GP 或 Javacard。现有的 SIM 卡仅符合 2G/3G/4G 标准(GSM 11.11、11.14、102.222 等),只能让其用户对网络进行身份验证。这样的 SIM 卡也可以拥有 STK 应用程序,但它不一定作为 javacard 小程序实现。

于 2015-06-10T07:42:16.467 回答
1

根据您上次的 Initialize Update 命令日志,可能有一些可能性: 1. 您的卡不支持 Scp02/Scp03,如果它支持 GP,可能性较小。2. ISD 没有配置 SCP 支持的参数。3. 卡上的同一逻辑通道上还有另一个安全通道。

根据我的观点,可能有最后两种可能性。

要检查第三个,您应该尝试使用以下步骤启动 Scp02: 1. 发送冷复位 (PowerON-Power-OFF) 2. 选择 ISD 3. 发送 Initialize Update 命令。

如果它不起作用,那么您需要 ISD 应用程序参数的信息,从这些参数中您可以确定 ISD 是否支持 SCP02/03?

这些参数可以是:'C9 04 81 02 XX YY'(这里是 XX-supported SCP 和 YY-parameter 'i' value for SCP)。

于 2015-07-02T18:23:07.323 回答