web-dev-qa-db-ja.com

CAA発行者IDはどこから取得する必要があり、どのように検証する必要がありますか?

認証局認証(CAA)DNSレコードタイプには、ドメインの証明書の発行を許可された認証局の識別子を指定するissueパラメーター(またはissuewild)が含まれます。大丈夫ですが、少しあいまいです。

独自のCAAレコードに値を設定する場合、CAの正確な値をどのように確認する必要がありますか? letsencryptの場合、発行IDが_letsencrypt.org_であり、 Certification Practice Statement セクション4.2にも記載されているドキュメント here を提供します。 .1。証明書を調べると、さまざまなフィールドが表示されますが、containが含まれているものもありますが、この文字列に正確に一致するものはありません。これは、CAがCAAレコードの内容と一致することを保証する厳密または信頼できる方法のようには思えません。たとえば、_letsencrypt.org.evilcorp.com_との一致を停止しているのは何ですか。

これはすべて人間の観点からは実行可能ですが、機械で読み取り可能ではなく、このCAに固有のものです。

Comodoからの証明書もあり、CAAの問題IDが_comodoca.com_であると言っている(および他の人が_comodo.com_であると言っている)さまざまな権限のないソースを見つけましたが、公式のドキュメントは見つかりませんでしたLetsencryptがそのために持っているように。 _comodoca.com_文字列は、証明書の一部のフィールドに表示されますが、確実に検出されると期待されるコンテキストでは表示されません。たとえば、発行者名はCOMODO ECC Domain Validation Secure Server CA (COMODO CA Limited from GB)、CRLは_http://crl.comodoca.com/COMODOECCDomainValidationSecureServerCA.crl_およびOCSP URIは_http://ocsp.comodoca.com_です。

SSLMateには CAAレコードジェネレーター があり、CAとその発行者IDのリストが含まれています-しかし、その情報はどこから取得されましたか?

ここで、検証のケースを考えてみましょう。証明書と1つ以上のCAA発行者IDが与えられた場合、証明書のどの要素がCAA発行者と正確に一致すると予想する必要がありますか?それとも、その情報はCTログなどの他のサービスから取得されたものですか?

つまり、CAA発行者IDはどこから取得する必要があり、どのように確実に検証する必要があるのでしょうか。

6
Synchro

関連する RFC 6844 は発行者に標準を義務付けておらず、実際にはその逆であり、ほぼ完全な自由を与えています。

発行者パラメータのセマンティクスは、発行者のみによって決定されます。

しかし、一歩後退するために:CAAレコードは、私が知る限り、提示されるTLS証明書が正しい証明書発行者によって発行されているかどうかを検証するためにエンドユーザーが使用することを意図していませんでした。

これは、(信頼できる)証明書発行者が、そのホスト/ドメインに対して(新しい)証明書を発行できることを検証するためにのみ使用することを目的としていました。

CAAレコードが存在する場合、CAAレコードに期待/必要なものが存在するかどうかを確認する必要があるのは、証明書発行者だけです。

証明書発行者、つまりCAは、CAA発行レコードで認識しているドメインを伝達する必要があります。また、存在する場合は、どのドメインも伝達する必要があります。彼らが必要とする他のパラメータ。

例:オンラインブランドにcomodo.comを使用するComodoは、CAAレコード内の完全に異なるドメインcomodoca.comを完全に自由に認識できます。実際、CAは単一のドメインのみを認識するように制限されていません-たとえばComodoは認識します 4つの異なるドメインcomodo.comcomodoca.comusertrust.com、およびtrust-provider.com

注:CAAレコードは、証明書を発行するときにのみ使用されます。すでに発行されている有効な証明書からCAAレコードをリバースエンジニアリングしても、当面の目的はありません。

CAA発行者IDはどこから取得する必要がありますか?

私の知る限り、それに関して簡単に自動化できるものはありませんが、手動のアプローチの場合:CA /ブラウザフォーラム 必須 その情報を公開するための統一された場所:

"2017年9月8日より有効、CAの証明書ポリシーおよび/または証明書運用明細書[〜#〜] should [〜#〜]完全修飾ドメイン名のCAAレコードの処理に関するCAのポリシーまたは慣行を記述します。そのポリシーは、これらの要件と一致している必要があります。 CAがCAA "issue"または "issuewildで認識する発行者ドメイン名のセットを明確に指定する必要があります 「発行を許可するものとして記録します。」

7
HBruijn