はじめに
googleがDNS通信の暗号化アプリ『Jigsaw Intra』をリリースしました。
早速使っていますが、通信内容がどうなっているのか気になったので、Wiresharkを使ってパケットの中身を見てみたいと思います。
環境準備
自分が試した環境は、下記です。
- Windows 8.1
- Wireshark 2.6.3
- Cain & Abel 4.9.56
- Android 8.0 (Oreo)
- Jigsaw Intra
https://play.google.com/store/apps/details?id=app.intra&hl=ja
キャプチャ準備
WiresharkでAndroidの通信をキャプチャするには、Androidとルーターの間にパケットをキャプチャするPCを割り込ませる必要があります。
Cain & Abelというアプリケーションを使用し、ARPスプーフィングという手法を使用で、パケットをキャプチャ(盗聴)することにします。
※Androidの通信をキャプチャする方法は他にもあると思います。
Cain & Abelの設定をしていきます。
AndoroidはWi-Fiに接続しておきます。
Cain & Abel を起動後、"Strat/Stop Sniffer"をクリック → "Sniffer"タブを選択 → "+"ボタンをクリックします。
"All Tests" にチェックを入れ、"OK"をクリックします。
"ARP"タブを選択、上の枠を選択し、"+"ボタンをクリックします。
左の枠で、AndroidのIPアドレスを選択、右の枠でルーターのIPアドレスを選択し、"OK"をクリックします。
作成された設定を選択し、"Start/Stop ARP"をクリックします。
これで、Androidとルーターの間にパケットをキャプチャするPCを割り込ませる事ができたので、WiresharkでAndroidの通信パケットを見ることが可能になりました。
パケットの中身を見てみる
Jigsaw Intra は仕組みとしては、DNS over HTTPS (DoH)のため、使用している間DNS通信(port53)は発生しないと踏んでます。
なので、Jigsaw Intra ONの場合とOFFの場合で、DNS通信(port53)のあるなしを見たいと思います。
フィルターには → tcp.port == 53 || udp.port == 53
Jigsaw Intra OFFの場合
Androidでブラウザ操作、アプリ起動などを試すとDNS通信がガンガン発生しているのがわかります。
Jigsaw Intra ONの場合
同様にAndroidでブラウザ操作、アプリ起動などを試しているのですが、DNS通信(Port53)が全く発生していません。
もちろん他の通信は発生しています。
通信先からすると、TLS通信になっているところが、Jigsaw Intra の機能でGoogle Public DNSとDNS over HTTPS通信をしている部分だと思います。
〆