在我的项目中,我想在智能卡上编写生物识别数据(如指纹模板)。经过一番精心研究后,我为我的项目选择了Java卡。但我是这个平台的新手并且对此知之甚少:(
我也阅读过Sun的教程,但无法解决一些混淆:
1。)我只是想从卡上读取和写入生物识别数据,所以是否有必要在Java卡上设计applet?我不能使用智能卡读卡器的简单读/写功能来读/写智能卡内存上的生物识别数据吗?
2.。)如果我为java卡创建一个小程序,那么我将如何给它applet id? Applet id对每个applet都是唯一的。而且,我怎么知道预先创建的applet的applet id?
3.。)什么是应用程序协议数据单元(APDU)?而且,他们如何帮助我读取/写入卡上的数据?
我知道所有这些都是基本问题,但我真的很困惑。所以请帮帮忙!
提前致谢。
答案 0 :(得分:4)
我会尽力回答你的问题:
1)如果卡上没有预装任何支持写入和读取生物识别数据的内容,您应该创建自己的小程序来完成这项工作。
2)关于AID,你应该尝试使其独一无二。 AID的结构如下: 5个字节RID + 0..11个字节PIX
RID是应用程序提供商的唯一标识符。为了确保没有其他人使用您的RID,您应该在国家或国际认证机构注册,具体取决于您的申请范围。虽然,仅注册RID并非强制要求,如果未注册,则应使用“F”作为RID的开头。如果您实施严肃的申请,建议仅使用已注册的AID。
PIX是专有应用程序标识符扩展,提供的应用程序应保持其唯一性。
3)APDU只是描述与applet通信方式的协议。它包含您要与输入和输出数据一起调用的指令。
答案 1 :(得分:3)
APDU是您发送到智能卡的“命令”。
Javacards(以及安装在javacards上的applet)支持特定的APDU,具体取决于安装的applet(以及用于安装applet的特定APDU).javacard文档是开始了解这一点的最佳位置。
一些智能卡附带预安装的applet,其中有为生物识别数据保留的空间;例如,“PIV”卡(和相关的小程序)。
如果您的卡没有预先安装用于存储生物识别数据的小程序,则需要编写并安装一个小程序。
希望这有帮助。
答案 2 :(得分:1)
APDU命令的示例: 00 A4 04 00 0A A0 00 00 00 62 03 01 0C 01 01 CLA INS P1 P2 Lc数据字段Le
第1个字节:CLA,它是一个命令类型。例如,80表示使用全局平台定义的命令。
第二字节:INS,指令代码。
第3个字节:P1,参数1。
第4个字节:P2,参数2。
第5和第6字节:数据长度,不包括大小,CLA,P1,P2和文件的长度。
第七。字节到最后一个字节:数据
最后一个字节:Le通常为00。
有关详细信息,请参阅Global Platform的文档。 http://globalplatform.org/specificationscard.asp