2

アプレット(.capファイル)をスマートカードにインストールしようとしています。私はそれがAPDUを使ってできることを読みました。Netbeansを使用してアプレットを作成しましたが、その補助は// aid / 9AE9BE4D27/53です。

installer appletまず、 :を選択するapduをビルドします。

0x00 0xA4 0x04 0x00 0X09 0xA0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F;

次に、アプレットを作成するapduを作成します(この構造に従って):

header: 0x80 0xb8 0x00 0x00

lc aid:

aid:

le: 0x7F;

を使用して実際のカードにapduコマンドを送信できるアプリケーションを開発しましたchannel.transmit(new CommandAPDU(apdu)。適切なインストールコマンドを送信すると、.capファイルがカードにインストールされるはずです。

この情報を使用して、誰かが私のキャップファイルを実際のカードにインストールするための正しいapduを構築するのを手伝ってくれるでしょうか?

ありがとうございました。

4

3 に答える 3

5

カードがグローバル プラットフォームを使用している場合は、それほど単純ではありません。カード マネージャーに対して認証する必要があります。次に、複数のコマンドを送信して.capファイルをロードします (APDU には 255 バイトのペイロードしか含まれていない可能性があるため、GP は拡張長を使用しません)。INSTALL for INSTALL次に、(インスタンス AID を使用して) アプレットをインスタンス化するコマンドを発行します。

幸いなことに、 の上に構築された利用可能なオープン ソース ライブラリがありますjavax.smartcardio。Global Platform の基本を一読することをお勧めしますが、ドキュメントはオンラインで無料で入手できます。

http://sourceforge.net/projects/gpj/

于 2013-01-25T14:44:33.353 に答える
0

はい、正しいコマンドAPDUを送信している場合はインストールできますが、グローバルプラットフォームカードの場合は、最初にセキュリティで保護されたチャネルを作成してから、InstallForLoadとそれに続くロード/インストールコマンドを送信できます。手順の順序は次のとおりです。

  • カードマネージャーを選択
  • カードでサポートされているSCP01/SCO02でカードを認証します
  • InstallForInstallコマンドを送信します
  • ロードコマンドを送信する
  • InstallForInstallコマンドを送信します

すべてのコマンドは0x9000で終了する必要があります。これは、コマンドが正常に実行されることを意味します。

ただし、初心者なので、GPShellなどのツールを使用して.capファイルをカードにロードし、インストール後に出力されるAPDUを分析してみてください。

于 2013-02-12T11:31:06.510 に答える