平常時にどんなパケットがやりとりされるかを知っておくと、トラブルが起こったときに何がおかしいのかを発見しやすくなる。そこで、Wiresharkの使い方に慣れながら、通常のパソコンでやりとりされるパケットを見ていこう。

 Part4ではインターネットの通信に使うHTTPS通信を取り上げる。

3つの画面領域で情報を表示

 HTTPS通信は、主にWebサーバーとの通信に使う。HTTPSは、HTTP通信をTLSという技術を使って、安全にやりとりするようにしたプロトコル。現在のWeb通信では、従来のHTTPに代わって主流になっている。

 まず、HTTPSは仕様上どのようなやりとりをすることになっているかをおさらいしておく。

 TLSは、使用するバージョンによってやりとりする流れ(シーケンス)に違いがある。現在、一般的に使われているのは、TLS 1.2とTLS 1.3である。

 両者の大きな違いは、ハンドシェークでやりとりする回数だ。ハンドシェークとは、コネクションを確立するまでの一連のやりとりを指す。TLS 1.2はハンドシェークに2往復のやりとりが必要だが、TLS 1.3では1往復半でハンドシェークが終了する(図4-1)。

図4-1●TLS 1.2とTLS 1.3のHTTPS通信の違い
TLS 1.2ではハンドシェークに2往復のやりとりが必要だが、TLS 1.3では1往復半でハンドシェークが終了する。
[画像のクリックで拡大表示]

 どちらのバージョンも、通信開始を示す「Client Hello」というメッセージをパソコン(クライアント)からWebサーバー(サーバー)に送ることで、ハンドシェークを開始する。

 TLS 1.2では、サーバーがClient Helloへの応答を示す「Server Hello」と合わせて、サーバー証明書と通信の暗号化に使うサーバーの鍵を送る。クライアントはこれに対して、クライアントの鍵、暗号化の指示、ハンドシェーク終了のメッセージを送る。これにサーバーが、暗号化のハンドシェーク終了のメッセージを送って、ハンドシェークが終了する。

 一方TLS 1.3では、Client Helloのメッセージを送る際に、暗号鍵の交換(DH鍵交換)に必要なデータを一緒に送る。サーバーは、Server Helloと合わせてDH鍵交換のデータとサーバー証明書、ハンドシェークの終了のメッセージを送る。これに対して、クライアントもハンドシェークを終了するメッセージを送信する。

「http」でフィルタリング

 実際のネットワーク環境でキャプチャーしたデータからTLS 1.2とTLS 1.3の違いを見てみよう。

 まずネットワークにつながったパソコンでWiresharkを起動し、GoogleやOffice 365などのWebサイトにアクセスした後、キャプチャーデータを保存した。次に表示フィルターを使って、表示するパケットを絞り込んだ。

 HTTPS通信を調べるためには、プロトコル名「http」と入力する(図4-2(1))。こうすると、HTTPやHTTPS(TLS)の通信に絞り込まれる。

図4-2●Wiresharkの情報の見方
プロキシーサーバーを介してHTTPS通信する際に使われるHTTPの「CONNECTメソッド」を例に説明した。
[画像のクリックで拡大表示]

この先は有料会員の登録が必要です。「日経NETWORK」定期購読者もログインしてお読みいただけます。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら