Let's Encrypt は安全でない http 経由でどのように ID を検証できるのでしょうか?

Let's Encrypt は安全でない http 経由でどのように ID を検証できるのでしょうか?

私は Let's Encrypt を使い始めたばかりです。http-01-challenge はとても簡単です:

うまく機能します。しかし、安全でない http 接続を使用して、私が本当に example.com の所有者であることをどうやって確認するのでしょうか?

データ センター (または ISP) の管理者が証明書を要求し、Let's Enrypt がサーバーの ID を確認するために送信する http 要求を傍受することはできないでしょうか?

答え1

実際、HTTP-01 チャレンジでは中間者攻撃に対する絶対確実な防御策はありません。Let
's Encrypt 検証ノードとサーバー間のトラフィックを傍受できる人物は、チャレンジをパスして証明書を発行できます。BGP トリックを成功させられる場合、通常の意味で中間者になるとは限りません。
これは HTTP-01 チャレンジに当てはまり、署名されていないドメインの場合は DNS-01 チャレンジにも当てはまります。

この問題は Lets Encrypt に固有のものではなく、従来の CA が DV 証明書に対して行う検証でも一般的に同じ問題が発生することに注意してください。従来の CA では通常、HTTP、DNS、電子メールの検証オプションが提供されますが、これらはすべて MITM 攻撃の影響を受けやすいものです。

暗号化しましょうもっている問題を緩和するために行われたは、異なるデータ センターの複数のテスト ノードから各検証を実行し、証明書を発行するためにすべてのテスト結果が一致していることを要求することです。(これにより、従来のほとんどの CA よりもこの種の不正使用の影響を受けにくくなると思います。)
これにより、少なくとも「中間」に誰がいるかの範囲が狭まります。「中間」の大部分は、異なるテスト ノードから見た場合、異なるものになるためです。

これはすべて、Let's Encrypt (および一般的な CA) による自動ドメイン検証のデフォルトの動作に関するものですが、パブリック CA がレコードをチェックする必要があるという要件により、ドメイン所有者には追加の制御が与えられていますCAA

実際に制御するには、ドメイン所有者は次の手順を実行できます。

  1. ゾーンにDNSSEC署名して、CAAデータが改ざんされないようにします
    (DNS-01の場合はチャレンジ自体も保護します)
  2. CAA証明書の発行を制限するために1 つ以上のレコードを追加します
    (特に、CAA発行が許可されている CA の名前だけでなく、その CA で許可されているアカウントも指定するレコード)

レコードはCAA次のようになります。

example.com. IN CAA 0 issue "letsencrypt.org; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/12346789"

そもそも詐欺師が簡単にチャレンジを開始できないため、問題は大幅に軽減されます。

accounturiデータ内のパラメータに特に注意してくださいCAA。これは、指定された CA を持つドメイン所有者のアカウントに固有のポリシーを作成するものです。CAのみを指定し、アカウントを指定しない
レコードCAAは、有効ではありますが、そのようなポリシーでは、その CA の他のすべての顧客が証明書の発行を要求できるため、あまり役に立ちません。

答え2

http を使用する理由HTTP-01 チャレンジを取得する場合の仕様は次のとおりです。

多くの Web サーバーは、特定の低権限テナント ユーザーに微妙かつ直感的でない方法でデフォルトの HTTPS 仮想ホストを割り当てるため、チャレンジは HTTPS ではなく HTTP 経由で完了する必要があります。

この課題はACMEプロトコルメッセージとは異なります。仕様ではhttpsが義務付けられています。ACMEには誠実さそしてリプレイ署名されたメッセージに対する保護。トラフィックがキャプチャされたとしても、暗号化されていないチャレンジだけでは危険にさらされる可能性は低くなります。もちろん、ある程度のリスクはありますが、より優れたドメイン検証手順の代替手段は何でしょうか?


不正な証明書を監視するためのより完全なアプローチには、証明書の透明性が含まれる場合があります。CT ログで自分の名前を検索またはアラートを設定します。発行 CA、シリアル番号、日付はすべて把握しておく必要があります。

関連情報