APDU MIFARE Classic 4K 读取特定扇区/块的值
Posted
技术标签:
【中文标题】APDU MIFARE Classic 4K 读取特定扇区/块的值【英文标题】:APDU MIFARE Classic 4K read value at specific sector/block 【发布时间】: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 块。
【问题讨论】:
【参考方案1】:使用此特定读卡器 (SpringCard Prox'N'Roll PC/SC) 从 MIFARE Classic 卡读取块的最简单方法是读卡器特定的 READ MIFARE CLASSIC(使用指定密钥)命令:
FF F3 00 <BLOCK> 06 <KEY> 00
此命令将首先尝试使用<KEY>
作为密钥 A 进行身份验证(如果失败则作为密钥 B)。认证成功后会读取区块<BLOCK>
。
所以对于你的场景,你会使用
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 个字节。以上是关于APDU MIFARE Classic 4K 读取特定扇区/块的值的主要内容,如果未能解决你的问题,请参考以下文章
ACR122U 的 MIFARE Classic 1K 加载身份验证密钥失败
Nexus 4 读取 Mifare Classic 卡 UID
.NET - 通过 NFC 阅读器读取 Mifare Classic。恩智浦与博通阅读器