2010-07-16 91 views
5

在我的项目中,我想在智能卡上写入生物识别数据(如指纹模板)。经过一番良好的学习后,我选择了Java卡作为我的项目。但是,我是新来这个平台,了解甚少这个:(Java Card中的Applet ID和APDU

我看了来自Sun的教程也,但未能解决一些困惑:

1)我只是想读写生物识别来自卡片的数据,那么是否有必要在java卡上设计applet?我不能使用智能卡读卡器的简单读/写功能来读写智能卡内存上的生物识别数据吗?

2.)如果我创建一个Java卡的小程序,那么我将如何给它的小程序ID? Applet ID对每个小程序都是唯一的。而且,我如何知道预先创建的小程序的小程序ID?

3.)什么是应用协议数据单元(APDU)?而且,他们将如何帮助我读取/写入卡上的数据?

我知道所有这些都是基本问题,但我真的很困惑。所以请帮帮忙!

在此先感谢。

+0

如何定义apdu的任何小程序? – user268758 2010-07-17 16:56:09

回答

3

APDU是您发送给智能卡的“命令”。

根据安装了哪些applet(以及用于安装applet的特定APDU),Javacards(以及安装在javacards上的applet)支持特定的APDU。javacard文档是开始了解此问题的最佳位置。

一些智能卡带有预先安装的小程序,这些小程序为生物识别数据预留了空间;例如“PIV”卡(和相关的小程序)。

如果您的卡未预先安装用于存储生物识别数据的小程序,则需要编写并安装一个小程序。

希望这会有所帮助。

4

我将尽力为您解答:

1)如果有什么,支持写入和读取的生物特征数据,你应该创建自己的小程序做的工作卡上预装。

2)关于艾滋病你是对的,你应该尝试使其独特。 AID的结构如下: 5字节RID + 0..11字节PIX

RID是应用程序提供商的唯一标识符。为了确保没有其他人使用您的RID,您应该将其注册到国内或国际认证机构,具体取决于您的应用范围。尽管注册RID并非强制要求,但如果未注册,则应使用“F”作为RID的开始。如果您执行严重的应用程序,建议只使用注册的AID。

PIX是专有的应用程序标识符应用程序提供的扩展应保持其独特性。

3)APDU仅仅是描述与你的applet进行通信的方式的协议。它将要调用的指令与输入和输出数据一起打包。

1

为APDU命令的示例: 00 A4 04 00 0A A0 00 00 00 62 03 01 0C 01 01 CLA INS P1 P2 LC数据字段勒

第一字节:CLA,它是一个命令类型。例如80意味着使用全球平台定义的命令。

第二个字节:INS,指令代码。

第三字节:P1,参数1

第四字节:P2,参数2

5和第6个字节:大小,CLA,P1,P2和乐的数据不包括长度的长度。

7th。字节到最后一个字节:数据

最后一个字节:乐一般00

是欲了解更多信息,请参阅全球平台的文件。 http://globalplatform.org/specificationscard.asp