标签: globalplatform

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

我有一张它没有融合的智能卡(我的意思是它没有预先个性化).它有一个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 中删除未使用的包?

我有一张Gemalto Top DL v2 java 卡。当我list查看内容时,卡中加载了很多包:

GlobalPlatformPro:> gp -visa2 -key 47454D5850524553534F53414D504C45 -list
AID: A000000018434D00 (|.....CM.|)
     ISD OP_READY: Security Domain, Card lock, Card terminate, Default selected, CVM (PIN) management

AID: A0000000620001 (|....b..|)
     ExM LOADED: (none)

AID: A0000000620002 (|....b..|)
     ExM LOADED: (none)

AID: A0000000620003 (|....b..|)
     ExM LOADED: (none)

AID: A0000000620101 (|....b..|)
     ExM LOADED: (none)

AID: A000000062010101 (|....b...|)
     ExM LOADED: (none)

AID: A0000000620102 (|....b..|)
     ExM LOADED: (none)

AID: A0000000620201 (|....b..|)
     ExM LOADED: (none)

AID: A0000000030000 (|.......|)
     ExM LOADED: (none)

AID: …
Run Code Online (Sandbox Code Playgroud)

javacard gemalto globalplatform

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

javacard 的最终安全步骤

我已经编写了我的小程序并安装在我的卡上。我应该怎么做才能防止在我的 java 卡上进一步修改或安装小程序?

我已经读到我应该更改默认密钥集。我试过 GPSShell 但我无法更改密钥!

我试过 jcManager 但它无法识别我的读者(acs 和 REINERSCT)!

我如何完成我的卡以交付用户。任何人都可以告诉我使我的卡安全的最终确定步骤吗?

谢谢

security javacard globalplatform

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

T=0 JavaCard 的传输错误

我有 4 种不同类型的 JavaCard。出于一个奇怪的目的,我编写了以下小程序,以在接收到每个 APDU 命令时返回整个 APDU 缓冲区:

package bufferReturner;

import javacard.framework.APDU;
import javacard.framework.Applet;
import javacard.framework.ISOException;

public class BufferReturner extends Applet {

    private BufferReturner() {
    }

    public static void install(byte bArray[], short bOffset, byte bLength)
            throws ISOException {
        new BufferReturner().register();

    }

    public void process(APDU arg0) throws ISOException {
        arg0.setOutgoingAndSend((short)0, (short)256);
    }

}
Run Code Online (Sandbox Code Playgroud)

当我向我的卡发送 APDU 命令时,我得到以下结果:

NXP JCOP v2.4.2 r3 卡 - 使用 T=1

OpenSCTool:> OSC.exe -s 00A404000B0102030405060708090101 -s 00000000 -s 00000000020101
Using reader with a card: CASTLES EZ100PU 0
Sending: …
Run Code Online (Sandbox Code Playgroud)

apdu smartcard javacard globalplatform

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

全球平台Java卡安全通道示例

我挣扎了很长时间。我需要创建从Desktop App到JavaCard的安全通道。我找到了GlobalPlatform http://www.win.tue.nl/pinpasjc/docs/apis/gp22/,但是我无法使其正常运行。我知道当我有一个安全通道(使用它)但努力创建它时该如何反应。我知道我应该在桌面应用程序上创建Key,然后以某种方式发送InitUpdate APDU,然后创建ExtAuth APDU,然后它应该可以工作吗?我知道我迷路了,因此,如果有人举一些例子或事情,我会很高兴!

apdu javacard globalplatform

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

如何删除智能卡上的卡管理器小程序?

我有一个 javacard,当我重置卡时,卡上的所有小程序都被清除,除了其中一个。它是“卡管理器小程序”,其 AID 为“A0000000030000”。我想知道有没有办法删除这个小程序?!或者它是卡上的强制性的并且没有办法删除它?如果可以删除它,删除它后,我们如何处理卡?(安装另一个小程序等)谢谢。

applet javacard globalplatform

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

OP_READY和SECURED状态有什么区别?

我把我的java卡的ISD状态设置为SECURED状态.我想知道与OP_READY相比,这种新状态卡丢失的能力是什么?

注意:当我尝试时,我可以在卡上上传并安装新的.cap文件并成功删除它们[在这个新的ISD状态]!

如果有人解释不同状态之间的主要差异,我会感恩的吗?我已经阅读了全球平台规范2.2.2,但不幸的是我有点难以理解!

smartcard javacard globalplatform

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

Java Card 对 INS = 0x70 的 APDU 有一个奇怪的响应

下面,您会看到一个简单的小程序,它返回0x6781到带有 INS=0x70或 INS= 的传入 APDU 命令0x71

package testPack;
import javacard.framework.*;

public class TestApp extends Applet
{

    public static void install(byte[] bArray, short bOffset, byte bLength) 
    {
        new TestApp().register(bArray, (short) (bOffset + 1), bArray[bOffset]);
    }

    public void process(APDU apdu)
    {
        if (selectingApplet())
        {
            return;
        }

        byte[] buf = apdu.getBuffer();
        switch (buf[ISO7816.OFFSET_INS])
        {
        case (byte)0x70:
            ISOException.throwIt((short)0x6781);
            break;
        case (byte)0x71:
            ISOException.throwIt((short)0x6781);
            break;
        default:
            ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,我收到0x6C01了带有 INS= 的 APDU 命令0x70

Send: …
Run Code Online (Sandbox Code Playgroud)

javacard pcsc smartcard-reader globalplatform

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

将 GlobalPlatform 从 C 转换为 Delphi - 访问冲突错误

我想在 Delphi 中使用kaoh Karsten Ohme的 GlobalPlatform.dll 。所以我尝试翻译标头,以便我可以在 Delphi 中使用 GlobalPlatform.dll。

我翻译的第一个是Connection.h,我将其上传到pastebin 这里
我翻译的第二个是Security.h,我将其上传到pastebin。

首先,我与该OPGP_establish_context函数建立了一个上下文,这似乎进展顺利,因为结果是 aOPGP_ERROR_STATUS_SUCCESS并且消息还指出“成功”。

但后来我尝试列出具有该OPGP_list_readers函数的读者,该函数也返回成功 - 但是当我尝试读取返回的名称时,我遇到了各种访问冲突(主要是在adress 00000000 and trying to read 00000000,但我的尝试之间存在差异)。

我的代码分配给按钮单击:

procedure TfrmFormatCard.Button1Click(Sender: TObject);
const
  BUFLEN = 1024;
var
  Status,
  Status2 : OPGP_ERROR_STATUS;
  Context : OPGP_CARD_CONTEXT;
  Names   : array [0..BUFLEN +1] of Char;
  Len     : DWord;
begin
  Context.libraryName    := 'gppcscconnectionplugin';
  Context.libraryVersion := '211';
  Status := OPGP_establish_context(Context);
  if Status.errorStatus = OPGP_ERROR_STATUS_SUCCESS then
  begin
    Len := …
Run Code Online (Sandbox Code Playgroud)

c++ delphi dll smartcard globalplatform

0
推荐指数
1
解决办法
118
查看次数