【问题标题】:JavaCard get Data on CardJavaCard 获取卡上的数据
【发布时间】:2017-07-21 21:38:41
【问题描述】:

我想在 Linux 机器上生成证书,将其传输到卡上并在那里加密。然后将其存储并稍后取回。我想知道如何在卡上获得类似 4k RSA 数据的东西。它可以与 APDU 一起使用吗?

【问题讨论】:

    标签: java cryptography storage javacard apdu


    【解决方案1】:

    证书一般不需要加密;它通常包含公共信息。您可以使用多个 APDU 命令向卡发送数据。为此,您可以使用命令链接:一个重复多次以发送数据的命令。您也可以使用带有偏移量的 UPDATE BINARY。

    命令链或 UPDATE BINARY 都没有在 Java Card 上实现开箱即用,因此您必须自己实现这些功能。规格在ISO/IEC 7816-4: "Identification cards -- Integrated circuit cards -- Part 4: Organization, security and commands for interchange"

    Java Card 本身支持最大为 2^15 - 1 个字节的字节数组。这大约是 32K,远远超过通用 X509v3 证书。您可以在其中存储明文或密文。

    所以是的,这种功能是可能的“使用 APDU”。由于 APDU 是大多数卡的唯一通用接口,因此应该有很多实现。至少我已经设计/实现的那些。


    Java Card可能还支持扩展长度的 APDU(通过 Applet 实现 ExtendedLength 接口)。但是,对于大多数(如果不是全部)卡来说,最大 APDU 缓冲区远低于 4K。因此,尽管您当然可以为此使用扩展长度的 APDU,但您无法用它解决完整的问题。

    【讨论】:

    • 不应该是 2^15 - 1 个字节吗? (即以有符号短形式给出的长度)
    • @MichaelRoland D'oh!谢谢,已修复。
    猜你喜欢
    • 1970-01-01
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 2017-07-19
    相关资源
    最近更新 更多