証明書発行時CAAのDNSエラー時の挙動について
@jovi0608 わかりやすくて詳細な記事、ありがとうございます。 一点、コメントです。 「CAAレコードが引けなかった場合でも証明書は発行されます。」とありますが、名前解決エラーになった場合(権威サーバーが落ちていたなど)、証明書は発行されないように思います。(続きます)
2020-03-09 16:14:26@jovi0608 (続き)ですので、細かいですが当該部分を「CAAレコードが設定されておらず、存在しなかった場合も証明書は発行されます。」とされる方が、よいのではないかと思いました。
2020-03-09 16:15:42@OrangeMorishita BR3.2.2.8ではDNSSECを使っていなければDNSエラー時でも発行許可できるように規定していると思いますが、これは違いますでしょうか? CAs are permitted to treat a record lookup failure as permission to issue if: 以下の条件です。
2020-03-09 16:33:28@jovi0608 お返事、ありがとうございます。この三つの条件、andで効いているように読めます。 「失敗がCAのインフラの外で起こっていて」(かつ)「一度以上リトライ」かつ「DNSSECの信頼の連鎖がない(= 署名していない)」場合は、発行許可と扱っていい、と。
2020-03-09 17:07:47@jovi0608 CA側がDNSSEC検証していない場合、この条件、満たせないです。三つ目が検証できないので。
2020-03-09 17:09:33@OrangeMorishita 確認ありがとうございます。CAAはDNSSECがRECOMMENDEDなので、現在の普及率では記事のスタンスとしてはDNSSECを使っていない状況を前提としています。後述のCAAで守れない場合でDNSSECの件は軽く触れていますが。
2020-03-09 17:16:10@jovi0608 なので、こちらの通り、CAA検索エラー時のCAの選択肢は二つになると思います。 1) エラーにする(発行しない) 2) DNSSEC検証し、信頼の連鎖がないのを確認 No CAA + DNSSEC - nonexistence proof = issuance failure - Issuance Policy - Let's Encrypt Community Support community.letsencrypt.org/t/no-caa-dnsse…
2020-03-09 17:18:28@jovi0608 DNSSECを使っていない(申請者が署名してなくて、CAが検証してない)とすると、さきほどのツイートの通り、エラーにしないといけないと思います。
2020-03-09 17:19:46@jovi0608 以下引用 "That section gives two options: Implementing DNSSEC, or never treating lookup failure as permission to issue. A CA that treats CAA lookup failure as a fatal error doesn’t have to validate DNSSEC. (続)
2020-03-09 17:22:10@jovi0608 (続)Let’s Encrypt actually does both – they validate DNSSEC and consider CAA failures to be fatal errors."
2020-03-09 17:22:32@OrangeMorishita 最後の条件を間違って捉えてましたか。ちょっとスレッドと実装を確認します。情報ありがとうございます。
2020-03-09 17:23:54@jovi0608 なので、LEは、 ・CAAがDNSエラーで引けなかったら、証明書を発行しない という動作をしていました。 (某社のサービスも、そうなっている気がします)
2020-03-09 17:25:16@jovi0608 あれ、読みづらいと思います。。 二つ目の項目の最後に and って書いてあるので、and で効いていると理解しました。
2020-03-09 17:26:23@tss_ontap CA/Browser Forumの原文にはそこまで書いてないですが、申請者が自分のドメイン名をDNSSEC署名していて、CAがチェック時にDNSSEC検証を有効にしていないと、最後の条件は満たせないですね。 で、その場合にCAAが検索エラーなら、証明書を発行*してもいい*と読めました。
2020-03-09 17:41:30@tss_ontap 仰る通りで、CAAのチェックはドメイン名の管理権限を奪われることには、対応できないです。
2020-03-09 17:45:50@OrangeMorishita boulderのコード確認しました。確かにCAAの再チェック時にDNSエラーでは発行エラーにしています。ドメイン認証時はそもそもCAA前にDNSエラーでだめになるので不要と。そもそも今回の最初のバグレポートがSERVFAILで発覚してました。後で修正します。ありがとうございました。
2020-03-09 17:46:43