まず、いくつかの背景:Let-s Encryptの DNS-01 検証方法では、IDを証明するために、TXTレコードをドメイン名を特別なサブドメインに追加する必要があります。 ACMEv2、これにより、ワイルドカード証明書を取得できるようになるため、心配になります(下記を参照) HTTP-01 検証方法は、.well-known/acme-challenge
ディレクトリにファイルを追加するように要求することにより、身元を証明します。HTTP-01メソッドは、ワイルドカード証明書の発行を許可しません。
ドメインをDDNS(ダイナミックDNS)プロバイダーに登録するとします。サブドメイン(mysite.dnsprovider.example
)を取得し、HTTP-01チャレンジを使用してLet's Encrypt証明書を使用して保護します。私はそれをインストールして、私のサイトが安全であると仮定して私の一日を続けます。しかし、DDNSプロバイダーがDNS-01を使用して*.dnsprovider.example
の証明書を要求し、その証明書を使用して自分のWebサイトであるふりをすることはできませんか?彼らがそうすることを妨げるものは何もないようで、これは私のウェブサイトのセキュリティに決定的に有害であるようです。どちらかと言えば、サーバーのIPアドレスをプロバイダーに伝えたので、プロバイダーが自分のWebサイトをMitMするのが簡単になりました。それを保護するために私が見つけた潜在的な方法はHPKPです。私は [〜#〜] hpkp [〜#〜] を読みましたが、現在は非推奨であり、主要なブラウザがそれを長い間サポートしていることは非常に疑わしいです。私はいつでも別のドメイン名を購入できることを知っていますが、この場合、ドメイン名の購入は実行可能なオプションではないと想定しています。新しいドメイン名またはHPKPを取得する以外に、この種の問題を回避または少なくとも軽減するために他に何かできることはありますか?
注:Let's Encryptの証明書発行プロセスは自動化されていることを理解していますが、新しい証明書が発行されるたびにサーバーで何かを手動で構成することも可能であると想定してください。
この質問は _ acme-challengeサブドメインは保護されていますか? に似ていますが、重要な違いは、この質問は、第3レベルのサブドメインをリクエストするのではなく、第2レベルのドメインオペレーターが潜在的な不正行為者であると想定していることです。
はい、DDNSプロバイダーはワイルドカード証明書を発行できます。プロバイダーはサブドメインのDNSエントリを制御できるため、訪問者を別のIPアドレスに送信することもできます。 (複雑なMitM設定なし)
制約(独自のドメイン名なし)を考えると、訪問者をスパイしないようにDDNSプロバイダーを信頼する必要があります。
ただし、すべての新しい公式証明書は 証明書の透明性ログ(rfc6962) で文書化する必要がありますChromeおよびSafari(Firefox悲しいことに そうではありません)この機能を提供します 今日。これらのログを確認することで、誰か(プロバイダーなど)がドメインの証明書(またはドメインを含むワイルドカード証明書)を発行したかどうかを確認できます。これらのログを確認できます crt.sh で。
要約すると、それを防ぐことはできず、検出するだけです。
編集:@Lukasのコメントに従って質問の一部を誤解しました。トップレベルのドメイン所有者が、自分のサブドメインのセキュリティを損なうことに使用できるワイルドカード証明書を作成できることに同意します。
所有していないドメインの証明書は取得できないと思います。
あなたの例では、概念的には*.mysite.dnsprovider.example
を所有しているため、mysite.dnsprovider.example
に対して1つを取得できますが、*.dnsprovider.example
に対しては取得できません。検証トークンをdnsprovider.example
これは、私が推測しているように、あなたがコントロールするものではありません。