ガチャつくブログ

IT系のお勉強のために、やってみたことをアウトプットしていきます。

スマホアプリで遊ぶ - Jigsaw Intra の通信内容を見てみる -

はじめに

googleDNS通信の暗号化アプリ『Jigsaw Intra』をリリースしました。

早速使っていますが、通信内容がどうなっているのか気になったので、Wiresharkを使ってパケットの中身を見てみたいと思います。

jp.techcrunch.com

 

 

環境準備

自分が試した環境は、下記です。

 

キャプチャ準備

WiresharkAndroidの通信をキャプチャするには、Androidルーターの間にパケットをキャプチャするPCを割り込ませる必要があります。

Cain & Abelというアプリケーションを使用し、ARPスプーフィングという手法を使用で、パケットをキャプチャ(盗聴)することにします。

Androidの通信をキャプチャする方法は他にもあると思います。

 

Cain & Abelの設定をしていきます。

AndoroidはWi-Fiに接続しておきます。

Cain & Abel を起動後、"Strat/Stop Sniffer"をクリック →  "Sniffer"タブを選択 → "+"ボタンをクリックします。

f:id:tmt-tty:20181011230057p:plain

 

"All Tests" にチェックを入れ、"OK"をクリックします。

f:id:tmt-tty:20181011230531p:plain

 

"ARP"タブを選択、上の枠を選択し、"+"ボタンをクリックします。

f:id:tmt-tty:20181011230829p:plain

 

左の枠で、AndroidIPアドレスを選択、右の枠でルーターIPアドレスを選択し、"OK"をクリックします。

f:id:tmt-tty:20181011231218p:plain

 

作成された設定を選択し、"Start/Stop ARP"をクリックします。

f:id:tmt-tty:20181011231546p:plain

 

これで、Androidルーターの間にパケットをキャプチャするPCを割り込ませる事ができたので、WiresharkAndroidの通信パケットを見ることが可能になりました。

 

パケットの中身を見てみる

Jigsaw Intra は仕組みとしては、DNS over HTTPS (DoH)のため、使用している間DNS通信(port53)は発生しないと踏んでます。

なので、Jigsaw Intra ONの場合とOFFの場合で、DNS通信(port53)のあるなしを見たいと思います。

 

WireSharkのフィルターでDNS通信のみを出します。

フィルターには → tcp.port == 53 || udp.port == 53

 

Jigsaw Intra OFFの場合

Androidでブラウザ操作、アプリ起動などを試すとDNS通信がガンガン発生しているのがわかります。

f:id:tmt-tty:20181012000759p:plain

 

Jigsaw Intra ONの場合

同様にAndroidでブラウザ操作、アプリ起動などを試しているのですが、DNS通信(Port53)が全く発生していません。

f:id:tmt-tty:20181012001340p:plain

 

もちろん他の通信は発生しています。

通信先からすると、TLS通信になっているところが、Jigsaw Intra の機能でGoogle Public DNSDNS over HTTPS通信をしている部分だと思います。

f:id:tmt-tty:20181012001827p:plain