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

Wiresharkでマイナンバーカードとのやり取りを観察する

このセクションではWiresharkでマイナンバーカードとのやり取りを観察します。

正確には、ICカードリーダとPCのやり取りを観察します。

ICカードリーダとPCのやり取りの流れ

マイナンバーカードカードとコンピュータは直接通信することができません。そこで、ICカードはICカードリーダを介して通信することになります。

USBを使ったICカードリーダとコンピュータのやり取りはUSBCCIDという形式で標準化されています。

一方ICカードとプログラムのやり取りはAPDUという形式で標準化されています。プログラムは、USBCCIDにAPDUを載せて通信することでICカードをやり取りします。

WiresharkではICカードリーダとの通信はAPDUの外側のUSBCCIDの通信として観察することができます。

USBとPCのやり取りを観察

備考

ここではWindowsでの方法のみを紹介します。mac等での方法は後日追記します。

USB上に流れているパケットをWiresharkでスキャンするには、USBPcapというツールが必要です。

Wiresharkインストール時に、"Install USBPcap" にチェックを付けた場合は自動的にインストールされています。

Wireshark起動時に、USBPcapという選択肢が表示されていない場合は正しくインストールされていない可能性があります。

公式サイトからダウンロードできるので設定してください。

USBCCIDのパケットを観察

ここからはICカードリーダのUSBとパソコンの間でやり取りされているUSBCCIDのやり取りを観察して行きます。

Wiresharkのインターフェース選択画面でUSBPcapを選択すると、USBを利用しているすべての通信が流れていることがわかります。

この状態だとUSBを使う端末すべての通信が表示され見づらいので、ICカードリーダとのやり取りに絞り込んでいきます。

USB経由のICカードリーダとPCはUSBCCIDというプロトコルで通信しています。

ICカードリーダをパソコンから抜き差しして、フィルタにusbccidと入力するとコンピュータからICカードリーダへの通信だけを抽出することができます。

実際のスキャン結果を見てみると、USBCCIDの中にAPDUのコマンドが格納されていることがわかります。