标签: javacard

使用byte或short模拟int变量

如您所知int,JavaCard 2.2.x上没有变量.我需要整数变量用于我正在开发的applet.

我想知道如何模拟int变量及其算法使用byteshort变量.

int integer javacard

6
推荐指数
2
解决办法
2039
查看次数

恩智浦有Java卡吗?

为什么在恩智浦网站上没有关于"JCOP"或J2A040和j3d081这样的术语的搜索结果?我想开始Java Card开发并在市场上找到名为的Java Card

  • JCOP21-72
  • 基于J2A040 NXP JAVA的智能卡,40k EEPROM
  • jcop31
  • jcop41
  • ...

但恩智浦网站上的条款是: - SmartMX,MIFARE DESFire等,或 - P5CC021,P5CC040,P5CC073,P5CC080,P5CC144

为什么市场和制造商使用这些不同的术语?


更新:

  1. 如果我购买SmartMX它是否附带操作系统?恩智浦为操作系统或供应商编程?我有能力自己做吗?

  2. 我在哪里可以找到每个JCOP OS的详细规范?

smartcard javacard mifare contactless-smartcard jcop

6
推荐指数
2
解决办法
6292
查看次数

Secure Com SCP02会话:在初始化更新命令的响应中返回的"密钥多样化数据"的作用是什么

在初始化更新命令的响应字段中,密钥分散数据(其包含制造ID和安全域AID的最后两个字节)被返回到Off Card实体.

我想知道这些数据的用途是什么?

我在某地读到,这个密钥多样化数据用于推断Off Card端的基本密钥.我不知道这是对还是错.

如果它是正确的,那么如何使用这种多样化数据在卡片末端导出基本密钥?

请提供你的建议!!

smartcard javacard globalplatform

6
推荐指数
1
解决办法
2856
查看次数

什么是GlobalPlatform和JavaCard的关系?

我开始使用GlobalPlatfrom Card规范,我无法弄清楚GLobalPlatform functinalify如何来到JavaCard.是否有任何小程序应安装到卡中以使此卡与GP兼容?或者在制造期间将GP功能作为JRE扩展提供给卡?或者甚至可以使非GP兼容卡与GP兼容?

java simulator javacard globalplatform

6
推荐指数
1
解决办法
2689
查看次数

使用单个Cipher对象或两个不同的对象进行解密和加密操作?

如您所知,当我们想要使用Java卡进行加密操作时,我们必须使用Cipher对象.我的问题实际上与效率有关.假设我想使用AES密钥执行一些加密解密操作.

以下哪种策略更好?

  1. 定义两个不同的Cipher对象并使用单个键初始化它们,但不同的模式(MODE_ENCRYPTMODE_DECRYPT).然后对于每个操作,我只需要doFinal()在适当的对象上调用方法.
  2. 定义单个Cipher对象,每次调用doFinal()方法之前init(),使用正确的模式对对象执行方法调用.

java cryptography javacard

6
推荐指数
1
解决办法
685
查看次数

将Java Applet CAP文件转换为*.class以进行反编译

这是一个CAP文件,可能包含恶意软件代码,没有源代码,也没有导出文件.

它是旧平台版本的CAP文件,即GP211.

我在Classic JVM和Dalvik中拥有丰富的Java逆向工程经验.但Java Card是较不受欢迎且更接近的平台.大多数工具用于CLASS/JAR或DEX,而不是CAP.

我找到了几个可以反汇编 CAP文件的工具(包括一些模拟JCOP的虚拟机),但是CAP非常大,使用汇编代码对我来说过于复杂和缓慢.

而且我们不能简单地做"CAP文本字节码 - > Notepad ++ - >一些Java字节码编辑器 - > Java字节码".
CAP字节码和Java字节码之间的差异太大.不仅仅是方法表,它还有大量不同的操作码.
只需反编译Java Card Kit 的converter.jar(它是一个转换CLASS - > CAP的工具),看看转换是一个非常复杂的过程.

我需要一些自动转换器.

同时,我开发了一套智能卡解决方案和"CAP反编译器"将是一个很好的部分.
是的,我打算写.
我计划从一侧在Javassist之上构建它,从第二个构建一些CAP反汇编库,从第三个构建一些标准Java反编译器(-s).

但我应该确定没有类似物.

问题在这里:
地球上是否有一些工具可以将Java Card*.cap转换为Java*.class(或直接反编译*.cap)或不?
我不是要求一个库(我发现了一些),我要求一个工具.Runnable接口.

(如果你知道这个字节码转换中的一些陷阱,我将不胜感激,如果你将它描述给我.现在我把它看作只是一个复制一个操作码列表到另一个有巨人if...else if...else if...else if...switch...case...case...case树(和一些misc员工,即转换)访问修饰符,字段等).

reverse-engineering smartcard javacard jcop

6
推荐指数
1
解决办法
905
查看次数

如何使用java在智能卡上安装小程序

有什么办法可以加载. 将java卡中的cap(转换小程序)设计成java,然后将小程序从该.cap(转换小程序)文件安装到智能卡中?
我有一个转换成小程序文件的 .cap 文件,我想在该 .cap 文件中安装小程序。
首先告诉我如何在java中加载.cap文件。
在 java 中,我使用javax.smartcardio包与智能卡和 apdu 命令进行交互,以与安装在智能卡中的小程序进行交互。
我在用:

  1. 智能卡类型 = 联系人卡
  2. 使用JavaCard2.2.2JCOP使用APDU

java applet apdu smartcard javacard

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

定义 ECDSA 签名数据的规范

我想知道ECDSA签名和公钥的数据格式是什么规范(或标准)定义的?

我正在 java 卡上测试 ECDSA 签名。我发现签名和公钥值中有一个TLV格式。

* Public key (TV format)
[Tag=04] [public key value 1] [public key value 2]
04 038A3F59E813995DAB730588CFCBB985F5A1ED90C0D62960AE0B274D 2E6B12672318E0B113DECC0406B62887B6BCB9B1583B1A50779EAB5A

* Signature (TLV format)
[Tag=30] [Length=3C~3E] [Tag=02] [Length=1C~1D] [signature value 1] [Tag=02] [Length=1C~1D] [signature value 2]

303C 021C 7EEB0B2596F74344B3D7B046EA0BD17C4461FC277658CE93509F1674      021C 4F5DBFB30D994664DA80528847A767F0194876B068E5958161797991
303E 021D 0080F20B82D407AE663F010F4990F12073631D653EA1D65DC75EBD4293    021D 00880DB667EF51AEA8E7C9BB012496C7C9ECE3BC5829B82B692B9211C3
303D 021D 00F77447EF326A4A49597D0B839F68F524891F3655DA4561F1AA10EF70    021C 152F7FF18644C5E5C9118736E1F7528F0B10C5FF641C7B7CDF012129
303D 021D 00A2EBCC5C5981341D0726F2E846CC3879C74EFD64D8698589A8CEAB60    021C 6E04FF884A451D7C0737A182BC2DE7F7D3008EE182B46A009BFFC9E8
Run Code Online (Sandbox Code Playgroud)

我认为数据格式是在某些规范或标准中定义的。我只想知道文档名称。

format specifications javacard ecdsa

5
推荐指数
1
解决办法
6972
查看次数

java卡的实际使用

java卡目前的用途是什么?文档要么非常旧,要么非常稀疏。经过一段时间的谷歌搜索,这是我的想法:

  • eID:用私钥签署文档哈希,由中央机构(政府)颁发 - 签署法律文件

  • 唯一 ID - 通过 ID 进行(人员)识别,受 PIN 保护并受 TLS 保护

  • java 连接版 Web 应用程序 - 除了 IDE 中的模板应用程序之外,我找不到任何有关此功能的使用文档。当这一层可用时,为什么仍然使用 APDU?难道这个申请不存在吗?

尽管有所有新功能,但我发现它们仅用作中央存储库/提供者的标识?TLS 用于保护卡和后端服务器之间的通信?

谢谢。

javacard

5
推荐指数
1
解决办法
1403
查看次数

删除数据字段中带有 SSD AID 的 APDU 命令,返回 6985

我有一个包含 SSD(补充安全域)的 Javacard,我想删除它。通常,当我想从我的卡中删除小程序或包时,我会在成功的相互验证过程后发送以下DELETE APDU命令(不需要 MAC 或数据字段加密,对于DELETE APDU命令就足够了):Security Level == 0

--> 80 E4 00 00 LC 4F <AID Len> <AID>
<-- 90 00
Run Code Online (Sandbox Code Playgroud)

上面的命令适用于普通小程序。但是当我将我的SSD的AID放入其中时,该卡以69 85个状态字响应,这意味着“不满足使用条件”。.

由于在我的卡中启用了委托管理功能,并且 ISD 中加载了公共令牌密钥和收据密钥,我认为上述错误可能是由于未在DELETE APDU命令中使用删除令牌。所以我计算了删除令牌如下:

全球平台卡规范 2.2.0.7:图 C-8:删除令牌计算 在此处输入图片说明

DeleteToken = RSA_Sign("00 00 LC 4F <SSD AID Len> <SSD AID>", TokenPrivateKey)
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下命令删除 SSD:

--> 80 E4 00 00 <LC+Len(DeleteToken)> 4F <SSD AID Len> <SSD …
Run Code Online (Sandbox Code Playgroud)

javacard globalplatform

5
推荐指数
1
解决办法
158
查看次数