【问题标题】:ATR is change automatically after two reset两次复位后 ATR 自动变化
【发布时间】:2026-02-22 01:10:01
【问题描述】:

我有一张 JCOP V2.4.2 r3 Java 卡。当我将它插入我的 ACR38 阅读器并使用 OpenSC-Tool 发送两个连续的 ATR 请求时,我收到了两个不同的 ATR!可以吗?

看:

CommandLine> OSC.exe -a
Using reader with a card: ACS CCID USB Reader 0
3b:f0:13:00:00:81:31:fe:45:e8

CommandLine> OSC.exe -a
Using reader with a card: ACS CCID USB Reader 0
3b:f9:13:00:00:81:31:fe:45:4a:43:4f:50:32:34:32:52:33:a2

如果我毫不拖延地重复我的请求,我将一次又一次地收到第二个 ATR:

CommandLine> OSC.exe -a
Using reader with a card: ACS CCID USB Reader 0
3b:f9:13:00:00:81:31:fe:45:4a:43:4f:50:32:34:32:52:33:a2

CommandLine> OSC.exe -a
Using reader with a card: ACS CCID USB Reader 0
3b:f9:13:00:00:81:31:fe:45:4a:43:4f:50:32:34:32:52:33:a2

CommandLine> OSC.exe -a
Using reader with a card: ACS CCID USB Reader 0
3b:f9:13:00:00:81:31:fe:45:4a:43:4f:50:32:34:32:52:33:a2

但是如果我等待大约 1 分钟(并且不要从读卡器中取出卡),然后再次请求 ATR,我会收到第一个短 ATR:

CommandLine> OSC.exe -a
Using reader with a card: ACS CCID USB Reader 0
3b:f9:13:00:00:81:31:fe:45:4a:43:4f:50:32:34:32:52:33:a2

// Waiting about 1 minutes while card is inserted in the reader.
CommandLine> OSC.exe -a
Using reader with a card: ACS CCID USB Reader 0
3b:f0:13:00:00:81:31:fe:45:e8

//Requesting ATR again and without delay.
CommandLine> OSC.exe -a
Using reader with a card: ACS CCID USB Reader 0
3b:f9:13:00:00:81:31:fe:45:4a:43:4f:50:32:34:32:52:33:a2

【问题讨论】:

    标签: smartcard javacard globalplatform


    【解决方案1】:

    如果没有提到的读者,我最好的猜测是,您会体验到 冷重置热重置 之间的区别,请参阅 ISO 7816-3。

    但是由于唯一的区别是,在短版本中没有提供历史字节,而在长版本中,9 个历史字节指示“JCOP242R3”,这肯定是次要的。

    【讨论】:

    • 是的。 JCOP 卡的冷复位和热复位有单独的 EEPROM 位置。如果我没记错的话,有时冷重置用于更保守的设置。通常,两者是相同的。