标签: javacard

使用APDU将CAP文件上传到智能卡

我正在尝试将applet(.cap文件)安装到智能卡中.我读过可以使用APDU完成.我使用Netbeans创建了我的applet,它的帮助是// aid/9AE9BE4D27/53.

首先构建apdu,选择installer applet:

0x00 0xA4 0x04 0x00 0X09 0xA0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F;

然后构建apdu,它将创建我的applet(遵循此sctructure):

header: 0x80 0xb8 0x00 0x00

lc aid:

aid:

le: 0x7F;

我开发了一个应用程序,可以使用apdu命令发送到真实卡channel.transmit(new CommandAPDU(apdu).我想如果我发送正确的安装命令,我的.cap文件应该安装在卡中.

有了这些信息,任何人都可以帮我构建正确的apdu,将我的cap文件安装到真实的卡片中吗?

谢谢.

java eclipse netbeans smartcard javacard

2
推荐指数
1
解决办法
3531
查看次数

生成Java卡中两个数字之间的随机数

如何在Java Card中生成两个数字之间的随机数?例如,应在0到50之间生成数字。

random javacard

2
推荐指数
1
解决办法
2634
查看次数

智能卡预个性化和历史字节

我有一张它没有融合的智能卡(我的意思是它没有预先个性化).它有一个ATR = 3B F9 13 00 00 81 31 FE 45 4A 43 4F 50 32 34 32 52 33 A2.

Q1:我的卡的历史字节是什么/在哪里?我怎么分析它们?

Q2:哪里可以找到我卡的型号?我在互联网上搜索了它的ATR,但我一无所获!

当您尝试使用诸如GPJ之类的工具列出真空卡的小程序(我的意思是未融合的卡)时,您会收到以下输出:

>> gpj -list

>> java -jar gpj.jar -list
Found terminals: [PC/SC terminal ACS CCID USB Reader 0]
Found card in terminal: ACS CCID USB Reader 0

ATR: 3B F9 13 00 00 81 31 FE 45 4A 43 4F 50 32 34 32 52 33 A2

DEBUG: Command  APDU: 00 A4 04 00 …
Run Code Online (Sandbox Code Playgroud)

smartcard javacard globalplatform jcop

2
推荐指数
1
解决办法
3225
查看次数

Javacard集合

我一直在浏览JavaCard API和示例,找不到对更高级别数据集合(如List,ArrayList,HashMaps等)的任何引用?

我想念什么吗?

我知道JavaCard环境的资源非常有限,并且JVM必须尽可能小,但是缺少某种形式的易于使用的数据收集对象会使过程变得很手工。

smartcard javacard

2
推荐指数
1
解决办法
595
查看次数

for循环中的Java Card内存泄漏?

我知道Java Card VM没有垃圾收集器,但for循环会发生什么:

for(short x=0;x<10;x++)
{}
Run Code Online (Sandbox Code Playgroud)

循环x后变量是否被利用for,或变成垃圾?

以防我有一个index从2的大小(而不是ifor循环中)调用的瞬态字节数组,我在for循环中使用该数组:

for(index[0]=0;index[0]<10;index[0]++)
{}
Run Code Online (Sandbox Code Playgroud)

但它比第一个版本慢一点.如果我在for循环中使用正常变量作为索引,那么它变得非常慢.

那么,x第一个for循环中的变量会发生什么?使用这样的for循环是否安全?

memory-leaks for-loop javacard

2
推荐指数
1
解决办法
897
查看次数

Javacard applet安装过程返回"0x6A80"状态字

编写以下程序进行AES加密以检查侧通道攻击:

public class DoAES extends Applet {

    //Required Objects
    static Cipher myCipher;
    static AESKey myAESKey;
    //Supported APDU commands INS byte
    final static byte SET_KEY = (byte) 0x12;
    final static byte WRITE_TEXT = (byte) 0x04;
    final static byte READ_TEXT = (byte) 0xC0;

    private DoAES() {
        register();

        try {
            myCipher = Cipher.getInstance(Cipher.ALG_AES_BLOCK_128_ECB_NOPAD, false);
            myAESKey = (AESKey) KeyBuilder.buildKey(KeyBuilder.TYPE_AES,
                    KeyBuilder.LENGTH_AES_128, false);
        } catch (CryptoException e) {
            ISOException.throwIt(((CryptoException) e).getReason());
        }
    }

    public static void install(byte bArray[], short bOffset, byte bLength)
            throws ISOException {
    }

    public …
Run Code Online (Sandbox Code Playgroud)

java javacard

2
推荐指数
1
解决办法
588
查看次数

pro.javacard.gp.GPException:严格警告:检测到未融合的JCOP

尝试使用以下命令列出智能卡的内容时

gp -l
Run Code Online (Sandbox Code Playgroud)

获得以下异常:

pro.javacard.gp.GPException: STRICT WARNING: Unfused JCOP detected
at pro.javacard.gp.GlobalPlatform.printStrictWarning(GlobalPlatform.java:184)
at pro.javacard.gp.GlobalPlatform.select(GlobalPlatform.java:213)
at pro.javacard.gp.GPTool.main(GPTool.java:334)
Run Code Online (Sandbox Code Playgroud)

搜索时,我知道该卡不是预先个性化的.我的问题是什么是智能卡预个性化?这种预先预先定位的人是谁?它是供应商吗?

smartcard javacard globalplatform jcop

2
推荐指数
1
解决办法
513
查看次数

如何与Felica内存/智能卡通信?

我有一张Felica卡.第一个问题是这张卡究竟是什么?它是智能卡还是简单的存储卡?它是一种Java卡,我.cap可以在里面加载文件或它有其专有的固定内容,我不能加载任何小程序?是GlobalPlatform标准投诉吗?

在这里读到:

索尼专有的FeliCa是一种类似于ISO/IEC 14443的智能卡技术.FeliCa具有类似于ISO/IEC 7816-4中定义的文件系统.用于访问文件系统的文件系统和命令在JIS X 6319-4 [28]中标准化.此外,FeliCa系统还具有专有的加密和安全功能.

之后我尝试向它发送一些APDU命令.第一步是与读者进行一些配置更改.因为我的阅读器配置为读取ISO14443 A型和B型卡而不是Felica卡.

由于Felica和ISO/IEC 14443卡都使用13.56 MHz频率作为载波,我认为这些类型之间的差异仅在协议层中.我对吗?如果是这样,Felica卡传输协议的名称是什么?(对于ISO/IEC 14443卡,我们有T = 1和T = CL协议).

配置完阅读器后,我尝试向卡发送命令:

Connect successful.
Send: 00 A4 04 00 00
Recv: 6A 81
Time used: 31.000 ms

Send: 00 C0 00 00 00
Recv: 6A 81
Time used: 28.000 ms

Send: 00 CA 00 00 00
Recv: 6A 81
Time used: 35.000 ms
Run Code Online (Sandbox Code Playgroud)

如上所述,我0x6A81只收到状态字.

我还搜索了很多ACS Reader数据表,一些恩智浦应用笔记以及肯定的JIS X 6319-4标准,以获得此类卡的命令列表.但我发现什么都没有适用.

所以,问题是:

  1. Felica究竟是什么?(聪明?记忆?)
  2. Felica卡和ISO/IEC14443卡有什么区别?它与NFC有关吗?
  3. 如何与此卡通信并传输数据?

更新: …

smartcard nfc javacard contactless-smartcard

2
推荐指数
1
解决办法
1487
查看次数

记录Java Card小程序内的所有APDU

是否可以保存发送到该applet内的Java Card applet的所有APDU命令?

例如:终端发送00 B2 01 0C 00,我想将它保存在我的applet中的某个地方,以便以后能够进行分析.

java apdu javacard

2
推荐指数
1
解决办法
306
查看次数

选择Applet后选择文件会取消选择applet吗?

SO JCRE规范提到,如果有另一个applet的新选择apdu,则调用当前选择的applet"deselect"方法.如何从文件系统中选择文件?选择文件会导致调用取消选择当前所选小程序的方法吗?

smartcard javacard contactless-smartcard

2
推荐指数
1
解决办法
66
查看次数