【问题标题】:Android HCE: are there rules for AID?Android HCE:AID 有规则吗?
【发布时间】:2014-12-17 19:20:19
【问题描述】:

我正在尝试使用 ACR122 NFC 阅读器来选择模拟的应用程序 一台使用 Android Host Card Emulation 的 Nexus 5。然而,小型艾滋病不是 认可。

我的目标是使用三字节长的 AID,就像我在 DESfire 卡中所做的那样。我的第一个目标 只是能够执行 SELECT 命令。

我的测试应用对 AID 使用以下配置:

<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/service_descr"
android:requireDeviceUnlock="false" >

    <aid-group
        android:category="other"
        android:description="@string/aid_descr" >
            <aid-filter android:name="A0A1A2" />
            <aid-filter android:name="B0B1B2B3" />
            <aid-filter android:name="C0C1C2C3C4" />
            <aid-filter android:name="D0D1D2D3D4D5" />
            <aid-filter android:name="E0E1E2E3E4E5E6" />
    </aid-group>

</host-apdu-service>

如果我运行以下 APDU:

00 a4 04 00 03 a0 a1 a2 00
00 a4 04 00 04 b0 b1 b2 b3 00
00 a4 04 00 05 c0 c1 c2 c3 c4 00
00 a4 04 00 06 d0 d1 d2 d3 d4 d5 00
00 a4 04 00 07 e0 e1 e2 e3 e4 e5 e6 00

我总是收到以下回复:

=> 00 a4 04 00 03 a0 a1 a2 00 
<= 6f 00 
=> 00 a4 04 00 04 b0 b1 b2 b3 00 
<= 6a 82 
=> 00 a4 04 00 05 c0 c1 c2 c3 c4 00 
<= 90 00 
=> 00 a4 04 00 06 d0 d1 d2 d3 d4 d5 00 
<= 90 00 
=> 00 a4 04 00 07 e0 e1 e2 e3 e4 e5 e6 00 
<= 90 00 

那么,只有长度大于 5 字节的 AID 才能在 Android 上运行?或者我是 做错了什么?

【问题讨论】:

    标签: android nfc mifare apdu hce


    【解决方案1】:

    智能卡应用标识符 (AID) 的规则在 ISO/IEC 7816-4 中定义。一个 AID 最多可以包含 16 个字节。根据前 4 位,AID 分为不同的组。 ISO/IEC 7816-4 中定义的最相关组是:

    • 'A' 开头的AID:国际注册的AID
    • 'D' 开头的AID:国家注册的AID
    • 'F' 开头的AID:专有AID(无需注册)

    对于(国际)国家注册的 AID,AID 分为两部分,一个 5 字节的强制性 RID(注册的应用程序提供商标识符)和一个可选的最多 11 个字节的 PIX(专有应用程序标识符扩展)。

    对于专有 AID (F...),ISO/IEC 7816-4 没有明确规定任何最小长度要求。

    除此之外,当谈到 HCE 和从 NFC 控制器到安全元件或应用处理器的卡仿真通信路由时,还有 NFC 论坛 NCI 规范。该规范要求 AID(在基于 AID 的路由条目中使用)在 5 到 16 个字节之间。顺便提一句。同样的限制也适用于遵循 Java Card 规范的智能卡。

    对于 Android,有一个硬编码要求,即在 SELECT 命令中接收到的 AID 至少包含 5 个字节:

    【讨论】:

    • 谢谢!很好的解释!最后我不得不使用 DESfire 国际 AID,但之后我可以使用本机或包装命令。这适用于 Android HCE 或 DESfire 卡。
    • 另外,in my other question 对此进行了更多解释。
    【解决方案2】:

    根据 EMV 标准,AID 由至少 5 个字节的注册应用程序提供商标识符 (RID) 和最大长度为 11 个字节的可选应用程序标识符扩展 (PIX) 或专有应用程序标识符组成,它们共同构成了应用程序 ID (AID),因此,应用程序 ID 的长度永远不能小于 5 个字节。如果卡中存在多个应用程序,则 AID 将具有附加到 RID 的可选应用程序标识符,以区分卡中存在的应用程序。请阅读他们网站上的 EMV 标准:EMVCO,尤其是他们的书,书 1 到书 4,以了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      相关资源
      最近更新 更多