8

人気の「Hello World」javacard コードの .cap ファイルを Eclipse で作成しました

そして今、GPShell と ACR38 スマート カード リーダーを介して実際の javacard にロードしたいと考えています。

質問: カードに .cap ファイルをロードするために何かキーが必要ですか? つまり、アプレットをカードにアップロードする前に認証する必要がありますか、それとも必要ありませんか? 認証は必須だと思います。認証なしで .cap をアップロードするのは不合理です。しかし、認証方法がわかりません。質問: これのどこが間違っていますか?

C:\Users\ghasemi>java -jar e:\gpj\gpj.jar -load e:\helloWorld.cap -install
Found terminals: [PC/SC terminal ACS CCID USB Reader 0]
javax.smartcardio.CardException: connect() failed
        at sun.security.smartcardio.TerminalImpl.connect(Unknown Source)
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.main(Unknown S
ource)
Caused by: sun.security.smartcardio.PCSCException: SCARD_E_SHARING_VIOLATION
        at sun.security.smartcardio.PCSC.SCardConnect(Native Method)
        at sun.security.smartcardio.CardImpl.<init>(Unknown Source)
        ... 2 more
Found card in terminal: ACS CCID USB Reader 0
java.lang.NullPointerException
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.main(Unknown S
ource)

C:\Users\ghasemi>java -jar e:\gpj\gpj.jar -load e:\helloWorld.cap -install

Found terminals: [PC/SC terminal ACS CCID USB Reader 0]

Found card in terminal: ACS CCID USB Reader 0

ATR: 3B 7F 94 00 00 80 31 80 65 B0 85 02 02 ED 12 0F FF 82 90 00

DEBUG: Command  APDU: 00 A4 04 00 07 A0 00 00 01 51 00 00

DEBUG: Response APDU: 6A 82

Failed to select Security Domain GP211 A0 00 00 01 51 00 00 , SW: 6A 82
DEBUG: Command  APDU: 00 A4 04 00 08 A0 00 00 00 18 43 4D 00

DEBUG: Response APDU: 6F 65 84 08 A0 00 00 00 18 43 4D 00 A5 59 73 4A 06 07 2A 8
6 48 86 FC 6B 01 60 0C 06 0A 2A 86 48 86 FC 6B 02 02 01 01 63 09 06 07 2A 86 48
86 FC 6B 03 64 0B 06 09 2A 86 48 86 FC 6B 04 01 05 65 0B 06 09 2B 85 10 86 48 64
 02 01 03 66 0C 06 0A 2B 06 01 04 01 2A 02 6E 01 02 9F 6E 06 12 91 20 11 02 02 9
F 65 01 FF 90 00

Successfully selected Security Domain GemaltoXpressPro A0 00 00 00 18 43 4D 00
DEBUG: Command  APDU: 80 50 00 00 08 17 2A 53 4F AC DF 8D 16

DEBUG: Response APDU: 69 82

javax.smartcardio.CardException: Wrong initialize update, SW: 69 82
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.openSecureChan
nel(Unknown Source)
        at net.sourceforge.gpj.cardservices.GlobalPlatformService.main(Unknown S
ource)

tnx

4

3 に答える 3

3

応答コード6A 82は に使用されSecurity_Status_Not_Satisfiedます。

を選択するとSecurity Domain、次の 2 つの理由のいずれかが原因で、このステータス ワードが表示される場合があります。

  • どちらかの Card Life Cycle State (CLCS)of Card がLOCKEDまたはTERMINATEDであるため、セキュリティ ドメインの選択は許可されません。なぜなら、CLCS がCard Lock 特権を持つLOCKEDセキュリティ ドメインおよび/またはアプリケーションのみを選択できるためです。TERMINATED最終アプリケーション権限 GET DATA コマンドのみが処理され、他のすべてのコマンドは無効になり、エラーが返されます。CLCS がLOCKEDそのセキュリティ ドメインおよび/またはカード ロック権限を持つアプリケーションを選択し、カードの移動を試みます。ライフ サイクル状態 (CLCS) をSECURED使用してSETSTATUSコマンドを使用しますSCP session。それ以外の場合、CLCS がTERMINATEDSECURED の場合、この状態は元に戻せないため、CLCS は SECURED に戻すことができません。

  • または、Security Domain選択しようとしている はそれ自体がLOCKED状態にあります。この場合、セキュリティ ドメインは OPEN によってそれ以上選択できず、エラー ステータス ワードが返されます。

@CLCS - カードのライフサイクル状態。

お力になれて、嬉しいです。

于 2014-12-03T18:48:53.587 に答える
2

カードのグローバル プラットフォームの状態について要求する必要があります。6982は「セキュリティ ステータスが満たされていない」を意味する一般的なステータス ワードであるため、カードが間違った状態にある可能性があります (たとえば、グローバル プラットフォームがロックされている、または終了している状態など)。

無効なグローバル プラットフォーム キー セットを使用しているか、キーが利用できない可能性もあります。

カードの状態と使用するキーについては、スマート カードの供給元にお問い合わせください。

于 2014-05-09T12:54:19.513 に答える
1

Card Manager AID は、それが Gemalto XPresso カードであることを示しています。このカードのデフォルトのカードは 47454d5850524553534f53414d504c45 です。これらのキーを設定してみてください。カードが CM キーを変更したか、カードがロックされている可能性があります。間違ったキーで頻繁に認証しようとすると、カードがロックされる可能性があることに注意してください。

于 2014-05-13T09:26:29.143 に答える