【发布时间】:2015-08-18 15:08:01
【问题描述】:
假设 Java Card 小程序中存在错误:临时字节数组存储在 EEPROM 而不是 RAM 中。此外,假设这个字节数组被每个 APDU 覆盖。
这个错误迟早会损坏卡。
我们可以期待什么症状?没有任何明确警告或错误的数组中的值不正确?访问这个数组时抛出了一些异常?小程序无法选择?整张卡完全没有反应?
卡应该“一劳永逸”地损坏,还是这些故障会越来越频繁地发生?
在我的实验 (J2E145) 中,在 5 000 000 个 APDU 之后出现了第一次故障,症状是卡根本没有发送 R-APDU 就死了。然而,下一个 APDU 再次正常,然后大约 10000 个 APDU 失败(频率增加),最后在 5 100 000 个 APDU 之后,卡永远停止通信。
是否有任何标准说明 EEPROM 损坏时应该如何处理? (我一直在寻找它,但我没有找到。)
我知道这个问题很广泛,可能取决于特定的芯片(我对 NXP 芯片特别感兴趣),但我认为您的 cmets、答案和经验可以帮助许多 Java Card 开发人员,他们在他们的代码中发现了一个错误部署后。
【问题讨论】:
标签: smartcard corruption javacard eeprom