質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

2回答

908閲覧

TLSの証明書偽造による中間者攻撃について

urbainleverrier

総合スコア200

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

3クリップ

投稿2019/06/13 02:30

編集2019/06/13 04:56

わからないこと

TLSのハンドシェイク初期に、悪意ある中間者がLet's Encryptなどで署名された独自の証明書を挟めた場合、ユーザーの機密情報漏洩を、サイト管理者はどのように防ぐことができますか。

調べたこと

  • ChromeではLet's Encryptの署名は警告を出さないこと。
  • ユーザー側でドメインを確認してもらうことで防げること。
  • ユーザー側で証明書を確認してもらうことで防げること。

追記 2019/06/13 13:31

mikkameさん、maisumakunさんが回答していただいた後の追記となります。前提覆るかもしれませんが、申し訳ございません。

ここでの証明書を中間者独自のサイトのドメインを使った証明書ということにすると、どうでしょうか。
つまり、中間者のサイト自体は悪意あるかどうかは別として、証明書の検証やドメイン所有のチェックにかかる問題はないことを想定します。
したがってブラウザ上部に表記されるドメインは厳密には別のドメインになっているものと思われます。

TLSのハンドシェイク初期について私の想定する懸念は、以下の通りです。

  1. クライアントがhttps://examplebank.comにアクセスする
  2. examplebank.comで解決されるサーバーがサーバ証明書を送付する

2.evil. ここで中間者がevilexamplebank.com証明書を注入
3. クライアントがevilexamplebank.com証明書の公開鍵を確認し、共通鍵を作成、送付
4. 中間者が共通鍵を復号
->その後、中間者がサイトの内容を偽装する形でクライアントと通信。

調べた内容は、申し訳ありませんが、他にありません。

追記 2019/06/13 13:56

maisumakunさんよりコメントいただきまして、
アクセスするurlと証明書の間でコモンネームを確認することを念頭に置いていませんでした。
解決しました。ご迷惑おかけしました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ockeghem

2019/06/13 02:39

もう少し前提条件や「調べたこと」を具体的に、明確に記述してください
urbainleverrier

2019/06/13 04:36

追記させていただきました。知識不足で申し訳ありませんが、何卒よろしくお願いします。
guest

回答2

0

悪意ある中間者がLet's Encryptなどで署名された独自の証明書を挟めた場合

どうやって署名された独自の証明書を得たのかによる
Let's Encryptの場合、ドメイン認証が必要なのでDNSの不備を突いた場合のみ、中間者に証明書が渡ると考えられる。
その場合は正規の証明書となるため、クライアント側としては区別が不可能

投稿2019/06/13 02:42

mikkame

総合スコア5036

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

urbainleverrier

2019/06/13 04:32

回答ありがとうございます。質問の不備のため、ドメインの件追記させていただきました。申し訳ございません。
guest

0

ベストアンサー

TLSのハンドシェイク初期に、悪意ある中間者がLet's Encryptなどで署名された独自の証明書を挟めた場合

まず、攻撃が成立する前提として、コモンネームが一致する証明書を攻撃者が生成できる必要があります。Let's Encryptにしても、DNS偽装など手の混んだしかけが必要となります(サーバサイドに侵入してHTTP認証を通せるのであれば、その時点ですでに安全性が崩壊しています)。

サイト管理者はどのように防ぐことができますか。

Certificate Transparencyという仕組みがあって、いくつかの手法で意図しない証明書の発行を監視、確認できます(参考)。特に、EV SSLではChromeがCT対応を必須としています。

投稿2019/06/13 02:41

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

urbainleverrier

2019/06/13 04:34

回答ありがとうございます。Certificate Transparencyを初めて知りました。コモンネームの件、私の質問不備のため、追記させていただきました。申し訳ございません。
maisumakun

2019/06/13 04:46

> つまり、中間者のサイト自体は悪意あるかどうかは別として、証明書の検証やドメイン所有のチェックにかかる問題はないことを想定します。 したがってブラウザ上部に表記されるドメインは厳密には別のドメインになっているものと思われます。 こちらですが、リダイレクトなどが可能なのはHTTPSのハンドシェイクが終わった「後」です。ハンドシェイク完了前に、ユーザーがアクセスしたドメインから別ドメインに切り替えさせる方法はないかと思います。
urbainleverrier

2019/06/13 04:54

その通りでした。アクセスしたurlと検証するのでした。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問