选择MF(主文件) - 读取javacard的EEPROM

时间:2014-07-01 11:25:35

标签: smartcard javacard apdu

我有两个不同的javacard,低于ATR:

  1. 3B 68 00 00 00 73 C8 40 12 00 90 00
  2. 3b 7F 94 00 00 80 31 80 65 B0 85 02 02 ED 12 0F FF 82 90 00
  3. 假设我想选择MF。据我所知,并且在ISO 7815-4中提到,我们可以选择包含00 A4 00 0000 A4 00 00 02 3F 00的主文件。

    enter image description here


    但是当我发送第一张卡的选择MF命令时,我收到了6A86 [错误的参数P1-P2 ]。

    Q1:这是否意味着我的卡不符合ISO-7816标准?!如果不是,这个错误的原因是什么? enter image description here

    当我发送 SELECT MASTER FILE 命令然后 GET RESPONSE 时第二张卡 命令(00 CO OO OO 12),我收到以下输出。

    Q2:我可以获得哪些信息? enter image description here

    问题3:如果我不知道我的卡片文件的ID,我可以在P1-P2 = 0000到P1-P2 = FFFF的暴力暴力下获得它们吗?我的意思是这个蛮力可能让我的卡锁定吗?

    问题4:如果我只知道我的卡的身份验证密钥,那么有没有办法读取整个EEPROM?如果是,怎么样?

    谢谢

2 个答案:

答案 0 :(得分:4)

Q1 :这是否意味着我的卡不符合ISO-7816标准?!如果不是,这个错误的原因是什么?

  • A1 :您的卡符合ISO 7816标准且选择方法属于供应商特定,请参见table 39 in ISO 7816-4
    它取决于供应商,您直接询问您的供应商有关支持的选择方法。 或者您可以检查ATR以了解ISO 7816-4
  • 中表86中支持的方法

Q2:我可以通过这种方式获得哪些信息?

  • A2 :这是文件控制参数(FCP),在ISO 7816-4的表-12中定义,请参见enter image description here
    你的情况是85。

Q3 :如果我不知道我的卡片文件的ID,我可以在P1-P2 = 0000到P1-P2 = FFFF上用暴力蛮力获得它们吗?我的意思是这个蛮力可能使我的卡锁定吗?

  • A3 :我不会建议您这样做,您只需向您的供应商询问您的卡中存在的文件结构,使用暴力也会降低卡的耐用性。

Q4 :如果我只知道我的卡的身份验证密钥,那么有没有办法读取整个EEPROM?如果有,怎么样?

  • A4 :没有标准命令一次读取整个EEPROM。

答案 1 :(得分:2)

A1:您的卡部分符合ISO 7816标准(与大多数卡一样)。它将 - 在所有可能的情况下 - 不支持SELECT MF开箱即用。如果需要,您可以使您的Applet"默认选择​​" (在安装INSTALL期间) - 意味着在ATR之后直接选择Applet - 并自己实现行为。

A2:如果P2设置为00,SELECT将返回FCI / FCP(文件控制信息,文件控制参数)信息。再次返回的内容取决于卡。有时,仅支持P2 = 0C表示不返回任何信息更容易。但是,这仅作为ISO CASE 3命令可用,这意味着仅提供命令数据(无Le字节)。所以4字节的SELECT MF无法工作。

A3:是的,你可以。如果正确编程了卡,则读取信息或选择文件不会烧坏EEPROM或闪存。偶尔禁止EF.ATR,在没有安装Applet或本机应用程序的情况下,原始Java卡上应该没有太多文件。仅用于测试目的,在正常读取期间选择所有可能的文件效率不高(出于安全考虑,可能需要一些EEPROM /闪存读/写,尽管OS开发人员应该知道这一点。)

A4:不,你需要完全卡访问才能这样做。此功能通常保留给Java Card操作系统的制造商和创建者。

请注意,INITIALIZE UPDATE / EXTERNAL AUTHENTICATE特定于Global Platform Card Manager或Security Domains。从卡管理器执行SELECT MF是没有意义的。