SSLサーバー証明書の検証の流れとSSL通信開始の流れ

SSLサーバー証明書の検証の流れ

1. まずサーバーとのSSL通信を開始するにあたり、サーバーからサーバー証明書がクライアントに送られる。この証明書が認証局によって署名されたものであれば認証局の証明書も一緒に送られる。もし、その認証局がさらに他の認証局から署名を受けている場合はその上位の認証局の証明書も一緒に送られる。

2. クライアントは送られた証明書の中で最上位の認証局の証明書(ルート証明書)が信頼できるものであるか検証する。PCには事前に主要な認証局のルート証明書がインストールされているので、送られてきたルート証明書がインストールされている証明書と一致すればそのルート証明書を信頼できるものと判断する。(もし一致する証明書が無かった場合はブラウザが警告ページを表示する)

3. ルート証明書が信頼できる場合は ルート証明書の中の公開鍵を使って、サーバー証明書の電子署名を検証する。
電子署名とはサーバー証明書のハッシュ値を認証局の秘密鍵によって暗号化したもののこと。

4. クライアントは認証局の公開鍵を使って電子署名を復号しハッシュ値を取り出す。そして実際に送られてきたサーバー証明書のハッシュ値を計算し、電子署名から取り出したハッシュ値と比較する。2つのハッシュ値が一致すれば、証明書の内容は変更・改ざんされていないと判断できる。

5. 4によってサーバー証明書の信頼性が確認できたので、サーバー証明書に含まれている公開鍵を使って、その後のSSL通信の手続きを開始する。


SSL通信開始の流れ

1. クライアントが共通鍵を生成し、サーバーの公開鍵で暗号化して送信する。

2. サーバーは受け取ったデータを自分の秘密鍵で復号して共通鍵を取り出す。

3. クライアントとサーバーに共通鍵が渡ったので、その後の通信はこの共通鍵を使って暗号化・復号化する。

Wiresharkでシーケンス番号やACK番号の実際の値を表示させるには

Wiresharkはデフォルトではシーケンス番号やACK番号を相対値(0 or 1)で表示します。
これらの番号の実際の値を表示させたい場合は以下のようにします。

1. メニューバーの「Edit」から「Preferences」を選択。すると新しいウィンドウが立ち上がります。
2. 左のメニューから「Protocols」のプルダウンを開いて「TCP」を選択。
3. 「Relative sequence numbers」のチェックを外します。

non_rel_seq.png

以上で、シーケンス番号やACK番号が実際の値で表示されるようになります。

non_rel_seq02.png

以上。

SSL ヘッダー

WiresharkでFTPでやりとりされたファイルを抽出するには

1. フィルタ欄に"ftp-data"と入力 (ftpポート以外のポートを使用している場合は、パケットを右クリックして「Decode As」を選択し、プロトコルは"FTP-DATA"を選択)
2. パケットを右クリックし、"Follow TCP Stream" を選択。このとき必ずファイルのデータ部分のみを表示させるようにする。(ftpコマンドを含めないように通信方向でフィルタをかける)
3. "Save As" ボタンをクリックしてファイルの保存が完了。(バイナリファイルの場合はファイル形式を「Raw」として保存)

以上

tcpdumpの「SEW」フラグについて

tcpdumpでパケットを見ていると、ときどき Flags [SEW] のようなフラグを見ます。
これはECN-setupのパケットになります。

■ECNとは
Explicit Congestion Notification (ECN、輻輳通知)。
ECNとは中継ルータが明示的に輻輳の発生を通知する仕組みのこと。通常、輻輳の制御は端末側(パソコン側)で行うが、ECN対応ルータならば、ルータが輻輳の発生を端末側に教えてくれる。

[ECNフラグのタイプ]
00 Non ECN-Capable Transport, Non-ECT
10 ECN Capable Transport, ECT(0)
01 ECN Capable Transport, ECT(1)
11 Congestion Encountered, CE.

おおまかな流れは以下の通り。

[輻輳発生時]
1.中継ルータが輻輳を検知した場合、ECNフラグを11にセットして、受信ホストに輻輳の発生を通知する。
2.ECNフラグ付きのパケットを受け取った受信ホストはECE(ECN-Echo)フラグをセットしてデータの送信量を抑えるよう送信ホストにお願いします。
3.ECEフラグ付きのパケットを受け取った送信ホストは、データの送信量を減らし、その旨をCWR( Congestion Window Reduced )フラグをセットして受信側に知らせます。

以上。

参考URL
http://en.wikipedia.org/wiki/Explicit_Congestion_Notification
http://monkey.org/openbsd/archive/misc/0210/msg01684.html
https://www.nic.ad.jp/ja/materials/iw/1999/proceedings/C03.PDF
http://itpro.nikkeibp.co.jp/article/COLUMN/20070314/264966/
https://technet.microsoft.com/ja-jp/library/bb878122.aspx

| NEXT>>

プロフィール

トニヒコ

Author:トニヒコ
趣味は旅行と読書とマンガ。
将来の夢はコスモポリタン!

リンク・フリーです。

My hobby is traveling and reading(include manga).
My dream is to become cosmopolitan!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
スポンサード リンク
マクロミルへ登録
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR