【问题标题】:APDU MIFARE Classic 4K read value at specific sector/blockAPDU MIFARE Classic 4K 读取特定扇区/块的值
【发布时间】:2015-02-09 19:11:38
【问题描述】:

我正在尝试从我的 MiFare Classic 4K 智能卡中读取一些数据。我已经知道数据的确切扇区/块位置(因为通过 Android 转储),但我不知道如何在 SpringCard Prox'N'Roll 中显示它。

我知道如何访问我的卡并进行了大量研究,但我无法找到如何获取数据,因为我并不真正了解 APDU 命令消息中所需的值。

可能是这样的?

CLA: FF
INS: B0/B2/CA ?
P1-P2: ???
LC Field: ??
Data field: ??

http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_6_basic_interindustry_commands.aspx#chap6_1

我想读取第 32 扇区,第 140 块。

【问题讨论】:

    标签: nfc smartcard mifare apdu smartcard-reader


    【解决方案1】:

    使用此特定读卡器 (SpringCard Prox'N'Roll PC/SC) 从 MIFARE Classic 卡读取块的最简单方法是读卡器特定的 READ MIFARE CLASSIC(使用指定密钥)命令:

    FF F3 00 <BLOCK> 06 <KEY> 00
    

    此命令将首先尝试使用&lt;KEY&gt; 作为密钥 A 进行身份验证(如果失败则作为密钥 B)。认证成功后会读取区块&lt;BLOCK&gt;。

    所以对于你的场景,你会使用

    FF F3 00 8C 06 uu vv ww xx yy zz 00
    

    其中uu vv ww xx yy zz 是身份验证密钥。

    【讨论】:

    • 哇,非常感谢!这可能是一个愚蠢的问题,但我在哪里可以找到身份验证密钥?
    • 身份验证密钥是一个共享密钥,由发卡者为该扇区定义。所以你应该能够从他们那里得到那个密钥。
    • 但是我认为没有身份验证密钥也可以访问它,因为我可以读取 Springcard MemoryCardTool 中的数据......那么当它是“公共”时为什么我需要一个身份验证密钥?点击按键后的截图:gyazo.com/4d768a889f0ba43a7f0043f71a0cf635
    • MIFARE Classic 中没有“公共”的概念。您总是需要一个身份验证密钥。如果 SpringCard 工具可以读取数据,则很可能使用某些标准密钥(例如传输密钥FF FF FF FF FF FF、NDEF 密钥D3 F7 D3 F7 D3 F7 或 MAD 密钥A0 A1 A2 A3 A4 A5)来读取数据。
    • 正如您之前提到的Android:如果像我的NFC TagInfo app 这样的工具能够读取数据,那么您可以将其用于对该块进行身份验证的密钥作为第一个(密钥A)/扇区尾部块的最后一个(键 B)6 个字节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多