【问题标题】:Parity bit for MIFARE Classic authenticationMIFARE Classic 身份验证的奇偶校验位
【发布时间】:2018-04-11 07:23:53
【问题描述】:

我了解到 MIFARE Classic 身份验证在奇偶校验位方面存在弱点。但是我想知道阅读器如何将奇偶校验位发送到标签?

例如,这是失败的身份验证尝试的跟踪:

reader:26
tag:   02 00
reader:93 20
tag:   c1 08 41 6a e2
reader:93 70 c1 08 41 6a e2 e4 7c
tag:   18 37 cd
reader:60 00 f5 7b
tag:   ab cd 19 49
reader:59 d5 92 0f 15 b9 d5 53
tag:   a   //error code: 0x5

我知道防碰撞后,标签会发送NT(32-bit)作为challenge给阅读器,阅读器用challenge {NR}(32-bit)和{AR}(32-bit )。但是我不知道上面例子中的 8 位奇偶校验位在哪里。哪些是奇偶校验位?

【问题讨论】:

    标签: security authentication rfid mifare parity


    【解决方案1】:

    您在问题中发布的示例跟踪不包含有关奇偶校验位的信息,或者所有奇偶校验位都有效(根据 ISO/IEC 14443-3)。

    例如当通信轨迹显示阅读器发送60 00 f5 7b时,通过RF接口发送的实际数据将是(P是奇偶校验位):

    b1 ... b8 P b1 ... b8 P b1 ... b8 P b1 ... b8 P S 0000 0110 1 0000 0000 1 1010 1111 1 1101 1110 0 E

    奇偶校验位在每个第 8 个字节之后发送(即每个八位字节之后),并确保所有 9 位包含奇数个二进制 1(奇校验)。因此,它在该字节上形成一个 1 位校验和。在您的跟踪中,仅显示字节(但不显示它们之间的奇偶校验位)。

    MIFARE Classic 中奇偶校验位的漏洞在于奇偶校验位与实际数据一起加密(参见de Koning Gans, Hoepman, and Garcia (2008): A Practical Attack on the MIFARE Classic, in CARDIS 2008, LNCS 5189, pp. 267-282, Springer)。

    因此,当您在不考虑加密的情况下查看通信轨迹时,根据 ISO/IEC 14443-3 奇偶校验计算规则,可能存在奇偶校验错误,因为加密的奇偶校验位可能与原始数据流的奇偶校验位不匹配。 Proxmark III 之类的工具会将观察到的奇偶校验错误指示为通信跟踪中相应字节后的感叹号(“!”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多