首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SIM卡(安装applet)

如何使用SIM卡(安装applet)
EN

Stack Overflow用户
提问于 2015-04-01 09:27:04
回答 2查看 5K关注 0票数 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数据对象) 标签: 3,Len: 1(卡服务数据字节) 卡服务数据字节:0

  • EF.DIR和EF.ATR访问服务:通过GET记录命令
  • 带MF的卡

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

选择方法: 190

  • 支持的记录号码
  • 支持短EF标识符
  • 隐式DF选择
  • 按文件标识符选择DF
  • DF路径选择
  • DF全称选择

数据编码字节: 33

  • 写函数的行为:专有的
  • BER标记字段的第一个字节的“FF”值:有效
  • 四分之一数据单位:1

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

  • 逻辑通道号分配:通过卡
  • 最大逻辑通道数:1

标签: 6,Len: 6(预发数据)

资料: 54 59 53 04 C 25 "TYS.L%“

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

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

据我所知,从上面的文档中,卡的系统文件由一个Master File组成,它的辅助is是3F00和一些DF-s和EF-s。例如,基于TS 151.011规范的下表,我尝试选择一些DF-s:

以下是研究结果:

代码语言:javascript
复制
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工具列出内容,但似乎卡片不支持初始Update命令:

代码语言:javascript
复制
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卡完全感到困惑。我很感谢任何人都能在这个问题上作出任何解释。致以问候。

EN

回答 2

Stack Overflow用户

发布于 2015-06-10 07:42:16

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

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

票数 3
EN

Stack Overflow用户

发布于 2015-07-02 18:23:07

根据初始化更新命令的最后一条日志,可能存在一些可能性: 1.卡上不支持Scp02 02/Scp02 03,如果它支持GP,则可能性更小。2. ISD没有配置SCP支持的参数。3.以前在同一逻辑通道上有另一个安全通道,即卡上通道。

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

要检查第三个步骤,您应该尝试用以下步骤启动Scp02 : 1.发送冷重置(PowerON-Power-OFF) 2。选择ISD 3。发送初始化更新命令。

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

这些参数可以类似于:'C9 04 81 02 XX YY‘(这里是XX支持的SCP和YY-参数'i’值)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29387186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档