troushoo

TLS 接続のトラブルシューティング:Schannel のログ・パケットキャプチャー

現象
HTTPS のサイトにアクセスしたところ、以下のようなエラーメッセージが表示され HTTLS 通信ができなかった事例を例にとり、トラブルシューティング方法を紹介します。

このページは表示できません

[詳細設定] で TLS 1.0、TLS 1.1、TLS 1.2 を有効にして、もう一度
https://16mem1  に接続してみてください。引き続きエラーが発生する場合は、サポートされていないプロトコルがサイトで使われている可能性があります。サイトの管理者に問い合わせてください。




トラブルシューティング方法
Schannel のログ
証明書エラーのトラブルシューティングに便利な Schannel のログをクライアントにて有効にします。
Schannel は、SSL 通信時に使用される Windows のモジュールです。

1. レジストリエディター (regedit.exe) を起動します。

2. 以下のキーに移動します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Schannel の詳細なログを表示させるため、以下の値を作成します。
名前 EventLogging
種類 REG_DWORD
データ 0x7


データの値を変更することにより、ログの出力レベルの変更が可能です。より詳細な説明については KB260729 をご参考ください。

4. OS を再起動します。

5. HTTPS を用いた接続ができない現象を再現させます。

6. Schannel のログが出力されている、システムのイベントログを確認します。

7. ソースが Schannel 、イベント ID が 36888 である、以下のようなログが記録されます。

致命的な警告が生成され、リモート エンドポイントに送信されました。これにより接続が終了する可能性があります。TLS プロトコルで定義された致命的な警告コードは 40 です。

   ターゲット名: 16mem1

TLS 警告レジストリは、http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-6 にあります




8. イベントログに記載されている URL を確認すると、イベントログに表示されている警告コード 40 は、ハンドシェークの失敗であることがわかります。


ネットワークキャプチャー
ハンドシェーク時のエラーの詳細を調べるため、パケットキャプチャーを取得してみます。

1. HTTPS を用いた接続ができない現象発生時のパケットキャプチャーを採取します。

2. SSH のハンドシェークを見てみると、サーバーから Server Hello を受け取った後に、クライアントが通信の終了を開始しておりました。


3. そのため Server Hello の「Handshake Protocol」→「Certificates」→「Certificate」→「signedCertificate」を見てみると「md5WitRSAEncryption」になっていました。
ハッシュアルゴリズムに MD5 が使用されていることがわかります。
また、TLS のバージョンは 1.2 でした。


4. 一方、クライアントの Client Hello を見てみると、「Handshake Protocol」→「signature_algorithms」 に MD5 を含むものは含まれていませんでした。


5. 上記のことより、クライアントで許可されていない signature_algorithms を用いた証明書をサーバー側で使用していたから、TSL 1.2 の接続ができなかったということがわかりました。
本問題の対策として、MD5 は安全なハッシュアルゴリズムではないので、他のハッシュアルゴリズムを用いた証明書の利用が推奨されます。

情報元
TLS 1.2 handshake failure (英語)

関連記事
セッションキーをエクスポートし、秘密鍵を共有することなくWireshark でSSL/TLS 通信を複合
  1. 2016/12/04(日) 23:15:32|
  2. Wireshark
  3. | トラックバック:0
  4. | コメント:0
<<ドメインに再参加することなく、セキュアチャネル破損の復旧:Reset-ComputerMachinePassword | ホーム | 追加ソフトのインストールなく Windows Server 2016 で使用可能な DNS サーバーのログの方法 (2012 R2 用の hotfix も有り)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://troushoo.blog.fc2.com/tb.php/319-3564fea3
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (114)
ネットワーク (54)
Wireshark (48)
AD (36)
Linux (45)
WinDbg (46)
SOS・Psscor2/Psscor4 (25)
Visual Studio (56)
Tips (32)
コンテナ (4)
Azure (17)
.NET (24)
Python (9)
Java (5)
SQL (6)
事例 (1)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する