gsm - 如何使用 SIM 卡(安装小程序)

标签 gsm javacard sim-card globalplatform gemalto

我有一张具有以下 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卡。

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

(compact TLV data object)

Tag: 3, Len: 1 (card service data byte)

Card service data byte: 0

  • EF.DIR and EF.ATR access services: by GET RECORD(s) command

  • Card with MF

Tag: 7, Len: 3 (card capabilities)

Selection methods: 190

  • Record number supported

  • Short EF identifier supported

  • Implicit DF selection

  • DF selection by file identifier

  • DF selection by path

  • DF selection by full DF name

Data coding byte: 33

  • Behaviour of write functions: proprietary

  • Value 'FF' for the first byte of BER-TLV tag fields: valid

  • Data unit in quartets: 1

Command chaining, length fields and logical channels: 16

  • Logical channel number assignment: by the card

  • Maximum number of logical channels: 1

Tag: 6, Len: 6 (pre-issuing data)

Data: 54 59 53 04 4C 25 "TYS.L%"



如您所见,上面提到该卡具有 MF .

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

据我了解,卡的系统文件由一个Master File组成。它的 AID 是 3F00和一些 DF-s 和 EF-s。例如,根据下表的 TS 151.011 规范,我尝试选择一些 DF-s :

enter image description here

这些是结果:
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 卡感到非常困惑。我很感激任何人都可以对这个问题有所了解。
问候。

最佳答案

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

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

关于gsm - 如何使用 SIM 卡(安装小程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29387186/

相关文章:

java - 将 .class 文件转换为 .cap JavaCard 3.0.2 Connected Edition

python-gsmmodem 读取旧短信

node.js - WebSocket 数据消耗

android - SIM 上 JavaCard 小程序的可信时间来源

android - 获取插入的 SIM 卡的唯一 ID

ssl - 如何在作为客户端的 USIM sim 卡和服务器之间以 TLS-PSK 模式建立 TLS 连接?

android - 使用 SDK Android 检查 SIM PIN

windows - 使用php在windows上通信串口

java - Ubuntu 上的智能卡模拟 (Java Card - ISO7816) - 指定目标 JCRE

android - 如何使用Java卡中的公钥在Android应用程序中生成证书签名请求