問題タブ [globalplatform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
smartcard - Java カードのライフサイクル状態を OP_READY に変更するにはどうすればよいですか?
Oracle ( This lint )で以下のスクリプトを見つけてGPShell
、Java カードで実行gpj -list
しましたが、実行できませんGPJ
!
私の質問:
1- このコードは何のためのものですか? Card Domain Manager ステータスを OP_READY から Secured に変更しますか?
2-スクリプトで使用されている APDU がどこにも見つからないのはなぜですか? 80F0800708A000000003000000
! セクション内の APDU80F0800F08A000000003000000
を検索GP Specification 2.2
しました。しかし、私は何も見つかりませんでした!ISO 7814-4
F0
CLA
3- 以下のスクリプトの操作は、別のスクリプトで元に戻すことができますか?
スクリプト :
そして、これは Console での出力です:
ありがとうございました。
javacard - NXP SmartMX カードのライフサイクル管理
NXP から多数の SmartMX デュアル インターフェイス カードを入手し、JCOP ツールをダウンロードしてセットアップしました。Java カード アプレットを NetBeans から Eclipse に移行するのはかなり簡単でしたが、コンパイル済みのアプレットをカード自体にインストールするのはかなり難しいことがわかりました。これらのサンプル カードでセキュリティ ドメイン アプレットを選択できません。これはカードの状態と関係があると思います。NXP は私にトランスポーテーション キーを提供し、最初になんらかの方法で融合せずにカードを敷地外に持ち出すことを固く禁じています。. 私は ACS カード (つまり、ACOS3) を扱ってきましたが、これらの SmartMX カードは、アプレットのアップロードやパーソナライゼーションを許可しないライフサイクルの状態にあると推測しています。私の問題は、NXP DocStore および Web で JCOP ライフサイクルに関するドキュメントを見つけることができないことです。私が探しているものを説明するのに最も近い唯一の文書は、GlobalPlatform Card Specification 2.2というタイトルの PDFであり、GP 2.2 と互換性のあるカードには少なくとも 5 つの異なる状態があると書かれています: OP_READY
、INITIALIZED
、SECURED
、CARD_LOCKED
およびTERMINATED
。その文書は、トランスポーテーション キーの使用を指定していません。
私の質問は、このトランスポーテーション キーを使用して、カードのステータスを から または に変更するにはどうすれOP_READY
ばよいですINITIALIZED
かSECURED
?
cryptography - INITIALIZE UPDATE と EXTERNAL AUTHENTICATE の正確性を確認するにはどうすればよいですか?
80 50 00 00 08 00 00 00 00 00 00 00 00
[ INITILIZE UPDATE Command] を opensc-tool 経由で Java カードに送信し、カードからの応答として00 00 11 60 01 00 8A 79 0A F9 FF 02 00 11 79 11 36 5D 71 00 A5 A5 EC 63 BB DC 05 CC
[ Init Response ] を受け取りました。
ご覧のとおり:
コマンドでは、ホスト チャレンジ00 00 00 00 00 00 00 00
として送信し、応答では次のように送信します。
00 00 11 60 01 00 8A 79 0A F9
=主な多様化データ
FF 02
=キー情報
00 11 79 11 36 5D 71 00
=カードチャレンジ
A5 A5 EC 63 BB DC 05 CC
=カード暗号
ここで、カードの暗号が正しいかどうかを自分で確認したいと思います。どうすればそれができますか?たとえば00 00 00 00 00 00 00 00
、このサイトでは 3DES 暗号化アルゴリズム [カードのキー = を使用4041...4F
] で暗号化していますが、出力は上で書いたカード暗号化と等しくありません。なんで?
次の質問は、カードにEXTERNAL AUTHENTICATIONコマンドを送信したい場合、そのデータ フィールド (上記の INITILIZE UPDATE の後) は何ですか?
アップデート:
これは GPJ 出力です:
そう :
それでは、Host_Cryptogram を手動で作成しましょう。
そう :
http://tripledes.online-domain-tools.com/を使用し、上記の値の出力は次のとおりです。
と :
そう :
繰り返しますが、私はhttp://tripledes.online-domain-tools.com/を使用しました
と :
そう :
これらの双方向 [手動および GPJ 出力] で 2 つのホスト暗号が得られるのはなぜですか?
smartcard - スマートカードの論理チャネル
下の画像はubuntupcsc_scan
での出力で、ATR analyzeでわかるように、私の javacard は 3 つの論理チャネルをサポートしています。
これは、CLA の下位ニブル ビットについて言及したISO 7816-4の一部であり、論理チャネル番号を示します。
問題は、基本論理チャネル以外の別の論理チャネルを介して INITIAL-UPDATE APDU コマンドを送信したいのに、なぜ失敗するのかということです。
CLA = 80
[ Basic logical channel ]での初期更新
CLA = 81 or 82
[補足論理チャネル]による初期更新
ご覧のとおりSW = 6881
、[= Logical channel not supported] を受け取りました。なぜ?
アップデート :
「javacard に 2 つまたは 3 つの論理チャネルがある場合は、2 つまたは 3 つのアプレットを同時に選択できることを意味します」これは正しいですか? はいの場合、複数のチャネルを持つことの他の利点は何ですか? 「いいえ」の場合、このチャネルは何のためのものですか?
smartcard - APDU と論理チャネルの選択
私の知る限り、論理チャネルを開閉するには、MANAGE CHANNEL
APDU コマンドを使用する必要があります。
- 論理チャネルを開きます :
00 70 00 P1 P2 LE
- 論理チャネルを閉じます :
00 70 80 P1 P2 LE
- P1-P2 =
0000
-0003
- LE=
01
(P1-P2= の場合0000
) または空 (P1-P2!= の場合0000
)
. また、デフォルトで開いている唯一の論理チャネルは Basic チャネルです。
質問:
1-閉じた論理チャネルを介してSELECT APDUを送信すると、自動的に開くのはなぜですか?
2-論理チャネルのオープン/クローズ コマンド (MANAGE CHANNEL) を使用する必要がある/使用する必要があるのはいつですか?
これはOpensc-toolの出力です。ご覧のとおり、論理チャネル 1 と 2 を介して、前に開くことなく、 SELECTおよびGET RESPONSEコマンドと応答を正常に送受信できます。
論理チャネル 1:
論理チャネル 2:
smartcard - アプレットを削除できませんでした
ここにあるコードの.capファイルを作成します。シンプルなワンタイムパスワードジェネレーターです。
最後に、パッケージ ID とアプレット AID として設定010203040506070809
し、カードに0102030405060708090000
アップロードします。
これは、アプレットをリストしたときのGPJの出力です。
ご覧のとおり、私のアプレットは正常にアップロードされました。
アップロード後、いくつかの APDU をアプレットに送信します。
上記のように、アプレットを選択し、検証コマンドを送信します (正しい PIN で 1 回、間違った PIN で 3 回)。そしてロックさせます。
今、私はアプレットを削除したい:
Q1 : カードをブロックしましたか、それともアプレットをブロックしただけですか?
Q2 : なぜ削除できないのですか? どうすればよいですか?