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のコマンドが格納されていることがわかります。