web-dev-qa-db-ja.com

クライアント側のSSLエラーを診断するにはどうすればよいですか?

多くの場合、私のホームネットワークで、よく知られた特定のサイトにアクセスすると、ランダムなSSL証明書エラーが発生します。今日、それはGoogle SSLエラーであり、Googleは明らかに自分を* .icloud.comとして識別しようとしました。過去に、Facebook、Barnes and Noble、その他からのエラーを見てきました。また、ネットワーク全体にわたるようです。デスクトップ、電話、妻の電話にも、ネットワークに接続しているときにSSLの問題があります。

私はセキュリティの専門家ではないので、これがなぜ起こり得るのかについて、いくつかの壁を越えた推測があります。

  1. 私たちが使用しているDNSサーバーは信頼できません。私のルーターのDHCP設定はGoogleのDNSサービスを使用しているので、疑問です。
  2. 誰かが中間者攻撃を実際に行おうとしています。特に、AppleやAkamaiなどからのものであると私が思う悪い証明書があるので、それは私にはありそうにないようです。
  3. ISPでルーティングの問題が発生しています。
  4. 私がランダムに問題を抱えているこれらのサイトはすべて実際には正しく構成されておらず、システム管理者が問題を修正するのを待つ必要があります。

これらのエラーの最も一般的な原因は何ですか?これらのエラーの診断をどこから始めますか?

6
Phil

SSLでは、次のようになります。クライアントはDNSでサーバー名を検索します。次に、DNSが作成したIPアドレスに接続します。次に、SSLハンドシェイクが発生し、その間にサーバーが証明書を送信します。その時点では実際のURLはどこにも送信されておらず、サーバー名のみが送信されていることに注意してください。診断用のURLは無視できます。

この問題は、OSとブラウザが異なる複数のマシンに影響を与えるため、ブラウザとOSのバグを除外できます。

グーグル、バーンズ、ノーブル、フェイスブック...は人間の創造物であり、それ自体は不完全であり、時々失敗するかもしれません。しかし、それらすべてが同時に失敗することはほとんどありません。

中間者攻撃 のターゲットである場合、攻撃者は非常に無能です。それもありそうもないことです。


要約すると、問題はおそらくルーターとISPの間のどこかにあります。観察する症状は、ブラウザからのTCP接続(以前はwww.google.comに向けられていた)がAppleの iCloud サーバーで終了するという仮説と一致しています。最初の潜在的なシナリオは次のとおりです。

ルーターはDNSリレーです。 DHCPを介して、実際にホームマシンを構成してルーターをDNSサーバーとして使用し、そのルーターは構成した外部DNSサーバー(GoogleのDNSサーバ)。その場合、ルーターが内部テーブルを混在させると(ソフトウェアのバグまたはRAMの不良が原因)、マシンに誤ったIPアドレスが与えられる可能性があります。

そのシナリオでは、問題はSSLに限定されません。実際、ブラウザが任意のサーバーに接続する場合は、サーバーにnameを要求しますが、ポートやプロトコルは要求しません。したがって、その仮説が正しければ、SSL以外のプレーンなHTTP接続も失敗することがあります。たとえば、www.facebook.comへの接続がwww.google.comのIPアドレスにリダイレクトされた場合、Googleの応答(実際にはGoogleのメインページへのリダイレクト)が返され、Facebookのようなものは何もありません。

SSL接続だけに問題がある場合、これはDNSの問題ではありません。これは、2番目の潜在的なシナリオを示します。

ISPの動的ルーティングに問題があります。トラフィックを最適にルーティングして、複数の宛先間でパケットを移動しようとします。これらのルーティングの決定はポート固有であり、SSLのみで問題が発生する理由を説明します。何らかの理由で(おそらく悪いRAM、いずれかのISPルーターで)、パケットが誤って送信されることがあります。

そのような動作をする古いCiscoルーター(RAMが不良)を知っています。ルーターがIPパケットを処理するとき、ヘッダーをコピーして部分的に変更する(少なくともTTLを変更する)必要があるため、ルーターのバグにより宛先アドレスが破損する可能性があります。

このシナリオには、ルーターの不良なRAM(again ...)があり、独自にトリップするバリアントがあります行うときの足 [〜#〜] nat [〜#〜]


問題をさらに診断するには:

  • 問題が発生した場合は、同じマシンからnslookup www.google.com(Googleに連絡したいが別の場所にリダイレクトされた場合)を実行し、次にopenssl s_client -connect www.google.com:443OpenSSL コマンドラインツールを使用)を実行します。 -LinuxまたはMacOS Xを使用している場合は、すでに使用しています)。これにより、DNSから返されるIPアドレスと、そのアドレスで応答するとされているサーバーから返される証明書がわかります。

  • 問題が断続的である(つまり、ブラウザー接続が失敗したが、すぐに再試行できる)場合は、 Wireshark または Network Monitor のようなネットワークキャプチャツールを実行して、何が起こったかを正確に観察します。問題が発生したとき。マシンから見たIPアドレスが表示されます。

  • ホームルーターを交換してください。たとえば、古いルーターを友人から借りるか、新しいルーターを購入します(40ドルかかります)。問題がISPにある場合、ISPサポートスタッフはおそらく最初にルーターが故障していると主張するため、この手順はとにかく避けられません。ルーターを変更することで問題が解決した場合は、不良なRAMストロークをもう一度行うことがわかります。

9
Tom Leek

最近、多くの人がアカマイとボイス5の証明書エラーを目にしています。これは、クラウドが証明書のリレーを処理しており、DNSが非常に迅速に更新されない限り、名前が一致しないためです。また、Optimumのような多くのISPは、データをローカルサーバーにキャッシュします。ほとんどのWindows DNSサーバーとWindowsワークステーションも逆をキャッシュし、不一致状態を強制します。驚きではなく、セキュリティのためにクラウドを使用することの別の結果。それはあなたではありません。それは彼らがクラウドと呼ぶその悲しいことです!

1
Al Thiel

Philが説明したのとまったく同じ問題があったため、いくつかの追加情報を追加したかったのですが、実際には、(ブラウザーに関係なく)悪意のあるWebページのように見えるものが表示されていました。ウェブページは次のようなことを言った:

(Chrome):「引き続きWebサーフィンを行うには、このソフトウェアをダウンロードしてインストールしてください。MicrosoftSystem Tools 16.3846。このネットワークツールは、外部のお客様専用に設計されています!」

なんて心強い。ちなみに私はMacbook Proを使っています。私が問題を抱えていたサイトのタイプは、gmail、facebook、wikipedia、youtubeでした。

とにかく、それはクロスブラウザーであり、ネットワークに関連しているように見えました(同じコンピューターを使用する他のネットワークでは問題はありませんでした)。キャッシュのクリア、ブラウザーの再インストール、新しいブラウザーのインストール、ウイルススキャンの実行など、何も修正するために機能するようには見えませんでした。ネット上には特定の情報はあまりありません...コンピューターの日付/時刻のチェックに関連する情報の多くは、この場合は問題になりません。

モデムの設定をリセットしたところ、当分の間、SSLエラーは解決しました。私のIPアドレスは同じですが、IPスプーフィングの問題ではないでしょうか?

とにかく、うまくいけばこれは他の人を助ける。

乾杯、

エリック

0
Erik