智能卡及其文件

时间:2015-03-11 07:46:08

标签: filesystems smartcard javacard apdu globalplatform

据我们所知,我们可以使用GlobalPlaformPro等工具列出驻留在Java卡中的小程序,如下所示:

GP: gp -list
AID: A000000003000000 (|........|)
     ISD OP_READY: Security Domain, Card lock, Card terminate, Default selected
 CVM (PIN) management

AID: 010203040506 (|......|)
     App SELECTABLE: (none)

AID: 0102030405 (|.....|)
     Exe LOADED: (none)

GP:

问题是:

  1. 卡片中的这些小程序在哪里? (在MF?或DF?)
  2. 谁选择了? (applet安装到的目录)
  3. 有没有办法查看MF以及所有其他EFDF卡的AID?
  4. 我目前的目录是什么?我可以改变吗?
  5. 我如何创建DF
  6. 我尝试根据DF中定义的命令创建ISO7816-part9,如下所示,但我只收到错误!

    enter image description here

    GP: gp -s 00e00000 -d -v
    # Detected readers from SunPCSC
    [*] ACS CCID USB Reader 0
    SCardConnect("ACS CCID USB Reader 0", T=*) -> T=0, 3Bxxxxxxxxxxxxxxxxxxxxxx
    SCardBeginTransaction("ACS CCID USB Reader 0")
    Reader: ACS CCID USB Reader 0
    ATR: 3Bxxxxxxxxxxxxxxxxxxxxxx
    More information about your card:
        http://smartcard-atr.appspot.com/parse?ATR=3Bxxxxxxxxxxxxxxxxxxxxxx
    
    A>> T=0 (4+0000) 00A40400 00
    A<< (0018+2) (60ms) 6F108408A000000003000000A5049F6501FF 9000
    Auto-detected ISD AID: A000000003000000
    A>> T=0 (4+0008) 80500000 08 78FF1563FF46D23B
    A<< (0028+2) (166ms) 0000116001008A790AF9FF020138983B77E636B6C12237B087216130 90
    00
    Host challenge: 78FF1563FF46D23B
    Card challenge: 0138983B77E636B6
    Card reports SCP02 with version 255 keys
    Master keys:
    Version 0
    ENC: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
    MAC: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
    KEK: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
    Sequnce counter: 0138
    Derived session keys:
    Version 0
    ENC: Ver:0 ID:0 Type:DES3 Len:16 Value:4544C6282153F89C2144A2C49784FCC3
    MAC: Ver:0 ID:0 Type:DES3 Len:16 Value:017010873EFEC7A838D54C06A9AC2B40
    KEK: Ver:0 ID:0 Type:DES3 Len:16 Value:A719298F33D1FECCD89334BA93FC3E70
    Verified card cryptogram: C12237B087216130
    Calculated host cryptogram: C1CF507F2B48CAEA
    A>> T=0 (4+0016) 84820100 10 C1CF507F2B48CAEA7FFA4D851F5C0B1D
    A<< (0000+2) (86ms) 9000
    A>> T=0 (4+0008) 04E00000 08 08C1F21746AB8A16
    A<< (0000+2) (24ms) 6E00
    SCardEndTransaction()
    SCardDisconnect("ACS CCID USB Reader 0", false)
    
    GP: gp -s 00e000000a003400010101ffff0080 -d -v
    # Detected readers from SunPCSC
    [*] ACS CCID USB Reader 0
    SCardConnect("ACS CCID USB Reader 0", T=*) -> T=0, 3Bxxxxxxxxxxxxxxxxxxxxxx
    SCardBeginTransaction("ACS CCID USB Reader 0")
    Reader: ACS CCID USB Reader 0
    ATR: 3Bxxxxxxxxxxxxxxxxxxxxxx
    More information about your card:
        http://smartcard-atr.appspot.com/parse?ATR=3Bxxxxxxxxxxxxxxxxxxxxxx
    
    A>> T=0 (4+0000) 00A40400 00
    A<< (0018+2) (55ms) 6F108408A000000003000000A5049F6501FF 9000
    Auto-detected ISD AID: A000000003000000
    A>> T=0 (4+0008) 80500000 08 1B81F8C4D44CC86A
    A<< (0028+2) (166ms) 0000116001008A790AF9FF0201391213E503ADE77D8CC6A546AE3537 90
    00
    Host challenge: 1B81F8C4D44CC86A
    Card challenge: 01391213E503ADE7
    Card reports SCP02 with version 255 keys
    Master keys:
    Version 0
    ENC: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
    MAC: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
    KEK: Ver:0 ID:0 Type:DES3 Len:16 Value:404142434445464748494A4B4C4D4E4F
    Sequnce counter: 0139
    Derived session keys:
    Version 0
    ENC: Ver:0 ID:0 Type:DES3 Len:16 Value:F02DB909386D90DA638ACA4AB92501E1
    MAC: Ver:0 ID:0 Type:DES3 Len:16 Value:FD6A2A492566BDE1940C54127C022126
    KEK: Ver:0 ID:0 Type:DES3 Len:16 Value:98FAA5CF01E133557688FD90E1571FAC
    Verified card cryptogram: 7D8CC6A546AE3537
    Calculated host cryptogram: 14C22B8CE836A4D4
    A>> T=0 (4+0016) 84820100 10 14C22B8CE836A4D4C2F1C20A8CD56F8C
    A<< (0000+2) (85ms) 9000
    A>> T=0 (4+0018) 04E00000 12 003400010101FFFF0080B9174FA320EEC470
    A<< (0000+2) (24ms) 6E00
    SCardEndTransaction()
    SCardDisconnect("ACS CCID USB Reader 0", false)
    
    GP:
    

    为什么我无法创建所需的文件?

1 个答案:

答案 0 :(得分:4)

卡片中的这些小程序在哪里? (在MF或DF中?)

将每个Java Card应用程序视为MF下方的DF。但是,请注意Java卡仅使用ISO 7816-4文件系统概念的一部分,并且默认情况下MF本身不一定是可选的。

谁选择它? (小程序安装在那里的目录)

Java Card规范部分地定义了这一点(通过如何定义SELECT(通过AID)命令的方式;除了Java卡之外没有使用文件系统概念)。

有没有办法看到MF的AID和卡的所有其他EF和DF?

从API的角度来看,只有DF名称可以是AID。将AID视为符合特定格式的DF名称。 MF和EF有文件ID。但是,由于Java卡上没有文件系统概念,默认情况下没有可寻址的MF,EF(您可以通过applet代码模拟此功能)。 因此,Java Card上唯一可列出的组件是applet和applet包(您已经发现可以通过您的卡的Global Platform卡管理列出它们。)

我目前的目录是什么?我可以更改吗?

见上文。没有文件系统概念 - &gt;没有&#34;当前目录&#34;的概念。如果您在应用程序(选定的小程序)中,则小程序可以模拟文件系统。在那种情况下,像&#34;当前&#34;目录&#34;取决于applet实现。

我如何创建DF?

安装(并可选择)小程序。