メインコンテンツまでスキップ

署名用電子証明書の表示

ここからは署名用電子証明書を JPKI 利用者ソフトと Wireshark を使って観察していきます。

結果を JSON ファイルで出力し、Python で解析すると次のようなコマンドが送られていることがわかります。

SELECT FILE:DF名で指定: d3 92 f0 00 26 01 00 00 00 01
SELECT FILE:現在のDF配下にあるEFを指定: 00 06
READ BINARY : 先頭から32バイト読み取り
SELECT FILE:現在のDF配下にあるEFを指定: 00 06
SELECT FILE:DF名で指定: d3 92 f0 00 26 01 00 00 00 01
SELECT FILE:現在のDF配下にあるEFを指定: 00 06
READ BINARY : 先頭から32バイト読み取り
SELECT FILE:現在のDF配下にあるEFを指定: 00 01
SELECT FILE:現在のDF配下にあるEFを指定: 00 01
READ BINARY : 先頭から1バイト読み取り
SELECT FILE:現在のDF配下にあるEFを指定: 00 1b
VERIFY パスワードを送信
SELECT FILE:現在のDF配下にあるEFを指定: 00 01
READ BINARY : 先頭から255バイト読み取り
READ BINARY : 255から255バイト読み取り
READ BINARY : 510から255バイト読み取り
READ BINARY : 765から255バイト読み取り
READ BINARY : 1020から255バイト読み取り
READ BINARY : 1275から255バイト読み取り
READ BINARY : 1530から255バイト読み取り
READ BINARY : 1785から52バイト読み取り
SELECT FILE:現在のDF配下にあるEFを指定: 00 01
READ BINARY : 先頭から255バイト読み取り
SELECT FILE:現在のDF配下にあるEFを指定: 00 01
READ BINARY : 先頭から255バイト読み取り
READ BINARY : 255から255バイト読み取り
READ BINARY : 510から255バイト読み取り
READ BINARY : 765から255バイト読み取り
READ BINARY : 1020から255バイト読み取り
READ BINARY : 1275から255バイト読み取り
READ BINARY : 1530から255バイト読み取り
READ BINARY : 1785から52バイト読み取り

重複している部分が多いので整理すると次のようなコマンドが送られていることがわかります。

  1. SELECT FILE:DF 名で指定: d3 92 f0 00 26 01 00 00 00 01
  2. SELECT FILE:現在の DF 配下にある EF を指定: 00 06
  3. READ BINARY : 先頭から 32 バイト読み取り
  4. SELECT FILE:現在の DF 配下にある EF を指定: 00 1b
  5. VERIFY パスワードを送信
  6. SELECT FILE:現在の DF 配下にある EF を指定: 00 01
  7. READ BINARY : 1837 バイト読み取り

これまで調査してきた内容と合わせると次のような流れで署名用電子証明書が表示されていると予測することができます。

  1. 公的個人認証 AP の指定
  2. 署名用電子証明書が格納されている DF の指定
  3. 署名用電子証明書用のパスワード EF の指定、パスワードの検証
  4. 署名用電子証明書 EF の取得

これらを元に先程の結果を確認してみると次のことがわかります。

  • 公的個人認証 AP の ID は d3 92 f0 00 26 01 00 00 00 01
  • 署名用電子証明書用のパスワードファイルのIDは 00 1b
  • 署名用電子証明書のIDは00 01
  • 署名用電子証明書は1837バイト