問題タブ [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 - GlobalPlatform 用語集の定義
これは、Global Platform 2.2.1 カード仕様の 7 ページの一部です。この用語の違いを認識できるようにお願いしてもよろしいですか?
キャップファイルを参照するのはどれですか? パッケージを参照するものと、パッケージ内のアプレットのコードを参照するものはどれですか?
私が理解する限りでは :
- Load File Data Block = .capファイル
- Executable Load File = .capファイル 内のパッケージ
- Executable Module = パッケージ内のアプレットのコード
右?
もう一方(ファイルのロード)はどうですか?
また、.capファイルに複数のパッケージを含めることはできますか? または、各.capファイルに正確に 1 つのパッケージが含まれていますか? (つまり、複数の実行可能データ ブロックを含むロード ファイル データ ブロックはありますか?) いいえの場合、なぜ GP は 2 つの異なる単語を定義しているのに、両方とも同じでしょうか)?
http - RAM オーバー HTTP クライアント エージェント?
globalplatform amd.B 仕様と ETSI TS 102225 および 102226 で定義されているように、http を使用して無線でアプレットを SIM カードに展開するサーバーを構築する必要があります。
私の質問は、SIM カードの http クライアントについてです。SIM カードには、カードを発行する前に製造元によって http エージェントが組み込まれていますか? それとも、ソリューションの一部として http クライアント アプレットを提供する必要がありますか?
smartcard - 拡張 APDU および T=0/1 通信プロトコル
私は JCOP V2.4.2 R3 Java カードを持っており、そのデータシートに「カードは通信プロトコルT=1
とT=0
通信プロトコルの両方をサポートしています」と記載されています。
T=0 プロトコルと T=1 プロトコルの両方をサポートする ACR38 スマート カード リーダーもあります。(1枚のカードでT=0通信成功、このカードでT=1通信成功。)
以下のプログラムを作成し、カードにアップロードして、拡張 APDU を送受信します。
CAD 側では、Python スクリプトを使用してさまざまな APDU をカードに送信しました。質問は次のとおりです。
1- T=0 プロトコルで通信を開始できないのはなぜですか (カードがこのプロトコルをサポートしていると言われていますが):
Python スクリプト:
出力:
2- T=1 プロトコルの拡張形式の Select APDU コマンドでカードが正常に動作しない理由:
Python スクリプト:
出力:
私はこの概念を誤解していて、拡張 APDUT=1
とT=0
プロトコルを混同したと思います!
互換性のあるすべてT=1
のスマート カードは、拡張 APDU を送受信できますか? T=0
また、プロトコルを介して拡張 APDU を送受信することはできませんか? ExtendedLength
拡張 SELECT APDU コマンドをセキュリティ ドメインに送信する場合、SD はインターフェイスを実装する必要がありますか?
拡張 APDU 送信の要件は何ですか?
- AT=1対応カードリーダー
- AT=1対応のスマートカード
ExtendedLength
インターフェイスを実装したアプレット
そうですか?
T=0/1
拡張互換性とスマート カードの互換性について、私は本当に混乱しています。どんな光でも大歓迎です。
T=1
プロトコルを使用して上記のアプレットに拡張 APDU を正常に送信できることに注意してください。
javacard - 期待したデータではなく「6C0B」を受け取るのはなぜですか?
このリンクに従ってHello Worldプロジェクトがあり、その.capを作成しました
ファイルに成功しました。「DE-ABCM_TB」リーダーと SAM カードも持っています。
私のアプレット AID は01 02 03 04 05 06 07 08 09 00 00
カード上のアプレットを選択できました(「DualCard 経由で SELECT APDU コマンドを送信しました。
Ver 2.8"/pcsc タブ)
8000000000
. しかし、私は 6C0B を受け取ります! なぜこのような回答が得られたのか、
どうすればこれを解決できますか? 検索しましたが、解決策が見つかりませんでした。
filesystems - スマート カードとそのファイル
ご存じのとおり、次のようなツールを使用して、Java Card に常駐するアプレットを一覧表示できGlobalPlaformPro
ます。
質問は次のとおりです。
- これらのアプレットはカードのどこにありますか? (
MF
? またはDF
? 内) - 誰が選ぶ?(アプレットがインストールされるディレクトリ)
- カードのAIDと他の
MF
すべての およびを表示する方法はありますか?EF
DF
- 私の現在のディレクトリは何ですか? 変更できますか?
- そして、どうすれば作成できます
DF
か?
DF
以下に定義されているコマンドに関してを作成しようとしましたISO7816-part9
が、エラーしか表示されません!
目的のファイルを作成できないのはなぜですか?
javacard - PCSC 例外 0x8010002f の取得
JCOPツールを使用しているので、Javaカードにロードします。カードに正常にロードされますが、コマンドを送信すると、APPLETを選択すると9000が返されますが、他のコマンドは返されます。
Gpshell を使用していると、次のようなエラーが発生します。
デバッグ モードでは、すべての結果が良好になります。誰が私がどこで間違いを犯しているのか教えてもらえますか???
smartcard - Java Card および Global Platform との安全な接続を開く
エミュレーターでの Java Card 開発に成功した後、現在は実際の Java Card ( Gemalto IDCore 3010 )を扱っています。私はGlobal Platformで経験してきましたが、カード上のアプレットをリストする最も基本的なサンプル コードでも問題があります。
これは元のコードです:
私はこれを変更しましたが、現在は次のようになっています。
Global Platform ページで、これらがopen_scコマンドのスイッチであることがわかります。
しかし残念なことに、これらのスイッチに関する十分な情報を見つけることができませんでした。
- keyind : 私が見つけた唯一の情報は、それがキー インデックスであるということです。
- keyver : 鍵セットのバージョン。同上。
- key : 鍵派生を使用するカードを持っている場合、-keyDerivation オプションで派生モードを有効にする必要があり、-key でマスター (マザー) キーを指定する必要があることを読みました。そこで、ここで母の鍵 (4F454D5850524553534F53414D504C45) を提供しました。
- mac_key : マスター キーから計算されるため、関係ありません。
- enc_key : マスター キーから計算されるため、関係ありません。
- kek_key : マスター キーから計算されるため、関係ありません。
- security : 私が見つけた情報は次のとおりです: 0: クリア、1: MAC、3: MAC+ENC。カードのデータシートにこのようなものが見つからなかったので、「0」を選択しました。
- scp : セキュア チャネル プロトコル (1 SCP01、2 SCP02、デフォルト未設定)。明示的に記載する必要はありません。私のカードは SCP01 と SCP02 の両方をサポートしています。
- scpimpl : セキュア チャネルの実装 (デフォルトでは未設定)。明示的に記載する必要はありません。
- keyDerivation : 可能な値は、「none」、「visa2」、または「emvcps11」です。また、データシートでこれに関する情報を見つけることができなかったので、「なし」にスタックします。
これは、変更されたコードで表示されるエラー メッセージです。
何が問題なのか、open_scコマンドをパラメータ化して実行する方法を教えてもらえますか? どうもありがとうございました!
解決策:これは作業バージョンでした:
smartcard - カードまたは他のアプレットのライフサイクルを変更するアプレットを作成する
カードのライフサイクルまたは他のアプレットのライフサイクルを変更する機能と権限を持つアプレットを作成することは可能ですか? もしそうなら、どのように?どのクラスとメソッドを使用する必要がありますか?
gsm - SIM カードの使用方法 (アプレットのインストール)
次の ATR を持つスマート カードを持っています。
ATR = 3B 9E 94 80 1F 42 80 31 00 73 BE 21 10 66 54 59 53 04 4C 25 CF
.
atr-parse.appspot.comの出力に基づいて、 MCI (Mobile Communication Company of Iran) SIM カードであることがわかりました。
これらは、Historical Bytes から得た情報です。
(コンパクト TLV データ オブジェクト)
Tag: 3, Len: 1 (カードサービスデータバイト)
カードサービスデータバイト: 0
EF.DIR および EF.ATR アクセス サービス: GET RECORD(s) コマンドによる
MF付カード
タグ: 7、レン: 3 (カード機能)
選択方法:190
レコード番号対応
短い EF 識別子がサポートされています
暗黙の DF 選択
ファイル識別子による DF の選択
パスによる DF 選択
完全な DF 名による DF の選択
データコーディングバイト: 33
書き込み関数の動作: 独自仕様
BER-TLV タグ フィールドの最初のバイトの値「FF」: 有効
カルテットのデータ単位: 1
コマンド チェーン、長さフィールド、および論理チャネル: 16
論理チャネル番号の割り当て: カードによる
論理チャネルの最大数: 1
Tag:6、Len:6(発行前データ)
データ: 54 59 53 04 4C 25 "TYS.L%"
上記のように、カードにはMF
.
問題は、このカードで何もできないことです。最初のステップでは、その内容をリストします。TS 11.11、TS 102.221、TS 131.102、およびTS 151.011の仕様を調べました。
上記のドキュメントから私が理解している限り、カードのシステム ファイルは、Master File
その AID3F00
といくつかの DF-s および EF-s で構成されています。たとえば、TS 151.011仕様の下の表に基づいて、いくつかの DF-s を選択しようとしました。
これらは結果です:
上記のように、私はそれらすべてに失敗し、ISD の AID のみを見つけることができました。
GlobalPlatformProツールでもコンテンツを一覧表示しようとしましたが、カードが Initial Update APDU コマンドをサポートしていないようです:
何が悪いのか知りたいですか?この SIM カードに Java カード アプレットをインストールするにはどうすればよいですか?
私はすでに Java Card でうまく機能していることに注意してください。しかし、私はこれらの種類の SIM カードについて完全に混乱しています。誰でもこの問題に光を当てることができて感謝しています。よろしく。