我想在Linux机器上生成证书,将其传输到卡并在那里加密。然后存储它并稍后将其取回。我想知道如何获得卡上的4k RSA数据。它是否与APDU一起使用?
答案 0 :(得分:1)
证书通常不需要加密;它通常包含公共信息。您可以使用多个APDU命令将数据发送到卡。为此,您可以使用命令链接:一个多次重复发送数据的命令。您还可以使用UPDATE BINARY和偏移量。
无法在Java Card上实现命令链接或UPDATE BINARY,因此您必须自己实现该功能。规范在ISO/IEC 7816-4: "Identification cards -- Integrated circuit cards -- Part 4: Organization, security and commands for interchange"。
Java Card本身包含对字节数组的支持,最大为2 ^ 15 - 1个字节。这大约是32K,远远超过通用的X509v3证书。您可以在其中存储明文或密文。
所以是的,这种功能是可能的,并且#34;使用APDU"。由于APDU是大多数卡的唯一通用接口,因此应该有很多实现。至少那些我设计/实施过的。
Java Card 可能也支持扩展长度的APDU(通过Applet实现ExtendedLength
接口)。但是,对于大多数(如果不是全部)卡,最大APDU缓冲区低于4K。因此,虽然你当然可以使用扩展长度的APDU,但你无法解决它的完整问题。