【问题标题】:Smart card answer to reset智能卡应答重置
【发布时间】:2017-09-17 17:20:09
【问题描述】:

智能卡的 ISO7816-3 标准规定,某些卡没有义务支持字符重复(由于奇偶校验错误)。现在假设接口设备 (ID) 在 ATR(复位应答)期间从未知卡接收奇偶校验错误数据。它(ID)向卡发出错误信号,但不知道卡是否支持重复,它如何确定卡中的下一个字符是重复一个(有奇偶校验错误)还是下一个(如果卡不重复)支持重复)。

【问题讨论】:

    标签: smartcard smartcard-reader


    【解决方案1】:

    据我了解的标准,错误检测的工作方式如下:

    • 对于T=0,使用了错误信号和字符重复

    • 对于其他人来说,总是有一个用于错误检测的帧校验和(TCK 复位应答中的字节,LRC/CRC 中的T=1 帧)


    引用 ISO/IEC 7816-3:2006,“重置答案”部分,“字符和编码约定”小节:

    对于提供 T=0 的卡片,错误信号和字符重复根据 7.3 是强制性的;这是可选的 用于接口设备和其他卡。

    引用“Answer-to-Reset”部分下的“Check byte TCK”小节:

    如果仅指示 T=0,可能默认情况下,则 TCK 将不存在。如果存在 T=0 和 T=15 并且在所有 其他情况,TCK 应存在。当 TCK 存在时,异或所有字节 T0 到 TCK 包括在内 应给出“00”。任何其他值均无效。


    上面的意思是通过纯T=0卡的错误信号/字符重复来检查ATR的正确传输。其余部分由 TCK 字节提供。

    在您的场景中,接口设备在奇偶校验错误后确实无法区分重复字符和未重复字符,但如果卡不支持错误信号/字符重复,则生成 TCK 字节(在这种情况下这是强制性的) 应该很有可能是错误的。

    免责声明:这是我对标准的解释,请验证我的想法...

    祝你好运!

    【讨论】:

    • 这对我来说确实有意义,尽管我问自己为什么在某些情况下(奇偶检测)我有机会获得重复字符,而在其他情况下(没有 TCK)我可以学到一些东西不行。但假设这背后应该有一些历史原因。虽然我接受了这个答案,但我几乎无法验证它 - 请参阅 [link]electronics.stackexchange.com/questions/329913/…..
    • @Djole 我希望我有一个经过验证的答案给你(也许其他人给出了一个更好的答案)。 Here 是一个非常简单(忙于等待)的带有错误检测的 PIC 卡端实现。祝你好运!
    • 我将阅读您指出的代码,但是 PIC 对我们正在讨论的问题具有很好的功能 - 它在停止位的一半处宣布错误(他们的应用笔记中的声明 [链接]ww1.microchip.com/downloads/en/AppNotes/01370A.pdf)。目前我决定忽略平价,因为还有很多问题,除了这个平价问题,我必须弄清楚。
    • @Djole 偶然发现another card side implementation for AVR..你可能会感兴趣...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多