<div dir="ltr"><div>Corey,</div><div><br></div><div>I think I agree regarding the limits here. That said, there's an element that I think is useful for Subscriber/Applicants and interoperability here, which may be useful in understanding if there's some minimum amount of redirects that a CA MUST support. Do you think it makes sense to specify this normatively for a floor, with a SHOULD for a ceiling regarding DoS?</div><div><br></div><div>CAs MUST be capable of following AT LEAST _xx_ redirects. CAs SHOULD take steps to mitigate the possibility of redirect loops or excessive redirects that may impair service.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Dec 23, 2019 at 12:41 PM Corey Bonnell via Validation <<a href="mailto:validation@cabforum.org">validation@cabforum.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5479767903643428875WordSection1"><p class="MsoNormal">Hello Validation WG,<u></u><u></u></p><p class="MsoNormal">Thank you Doug for putting this ballot together. This ballot will significantly improve the security properties of HTTP-based domain validation.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I have a concern about the requirement limiting the number of redirects to 10. I could not find any background information on where this requirement came from, and I’m unable to come up with rationale for why this is needed to improve the security properties of the method. If we assume that each redirection is an explicit delegation of authorization, then I don’t see how having 10 such delegations is acceptable but 11 (or more) is not.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">If the purpose is to provide guidance to CAs on how to prevent DoS attacks (by following an infinite number of redirects), then I don’t think we need to explicitly mandate a limit, as there are a whole host of other ways to DoS a CA, so this is an incomplete mitigation. CAs need to have more comprehensive DoS countermeasures in place regardless of the requirement.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Unless I’m missing something, I think we should strike that requirement from the ballot.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Thanks,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><b><span style="font-size:12pt;color:rgb(0,143,197)">Corey Bonnell <br></span></b><span style="font-size:10.5pt;color:rgb(89,89,91)">Software Architect<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:12pt"><u></u> <u></u></span></p><p class="MsoNormal"><b><span style="font-size:12pt;color:rgb(0,143,197)"><img width="197" height="45" style="width: 2.052in; height: 0.4687in;" id="gmail-m_-5479767903643428875Picture_x0020_5" src="cid:16f33e29fc74cff311"></span></b><span style="font-size:12pt;color:rgb(89,89,91)"><br></span><a href="http://www.securetrust.com/" target="_blank"><span style="font-size:10.5pt;font-family:Arial,sans-serif;color:rgb(88,89,91)">www.securetrust.com</span></a><span style="font-size:12pt"><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:12pt"><br></span><a href="https://securetrust.com/resources/library/documents/2019-global-compliance-report/" target="_blank"><i><span style="font-size:9pt;font-family:Arial,sans-serif;color:rgb(0,112,192)">2019 Global Compliance Intelligence Report</span></i></a><span style="font-size:12pt;color:rgb(0,143,197)"><u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><div><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From:</b> Validation <<a href="mailto:validation-bounces@cabforum.org" target="_blank">validation-bounces@cabforum.org</a>> <b>On Behalf Of </b>Doug Beattie via Validation<br><b>Sent:</b> Thursday, December 19, 2019 10:37 AM<br><b>To:</b> CA/Browser Forum Validation WG List <<a href="mailto:validation@cabforum.org" target="_blank">validation@cabforum.org</a>><br><b>Subject:</b> Re: [cabf_validation] Pre-Ballot discussion on SC25: Define New HTTP Domain Validation Methods<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">This is where this ballot currently stands.  Are there any comments or can we proceed with this?<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’ve incorporated comments from Ryan and Jacob and taken a first shot a defining a new method for the ACME HTTP method.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">==========================<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span style="font-size:14pt;font-family:Arial,sans-serif;color:rgb(0,112,192)"><u></u> <u></u></span></p><p class="MsoNormal">Ballot SC25:  Define New HTTP Domain Validation Methods<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Purpose of Ballot: Update to CA/B Forum Baseline Requirements to:<u></u><u></u></p><ul style="margin-top:0in" type="disc"><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpFirst" style="margin-left:0in">Provide additional clarity around how http validation method should be used by creating a new HTTP method and setting a sunset date for method 6<u></u><u></u></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpLast" style="margin-left:0in">Define a method that is specific to the HTTP method defined in section 8.3 of RFC 8555<u></u><u></u></li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">The following motion has been proposed by Doug Beattie of GlobalSign and endorsed  by Jacob Hoffman-Andrews of Lets Encrypt and Bruce Morton of Entrust.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Motivation:<u></u><u></u></p><p class="MsoNormal">Provide additional clarity around the Method 6 validation method and to specify a new HTTP method that describes the ACME HTTP method defined in section 8.3 of RFC 8555<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">---MOTION BEGINS---<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Update Section 1.6.1 to remove definition for “Required Website Content” as that define term is no longer being used.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Add a note to the end of 3.2.2.4.6<u></u><u></u></p><p class="MsoNormal" style="margin-left:0.5in">Note: CAs MUST NOT perform validations using this method after 3 months from IPR review date.  CAs may continue to use domains validated under this method per the applicable certificate data reuse periods.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Add Sections 3.2.2.4.17 and 3.2.2.4.18<u></u><u></u></p><p class="MsoNormal" style="margin-right:0in;margin-bottom:6pt;margin-left:0in"><b><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></b></p><p class="MsoNormal" style="margin-right:0in;margin-bottom:6pt;margin-left:0in"><b><span style="font-family:Arial,sans-serif">3.2.2.4.17 Agreed-Upon Change to Website v2</span><u></u><u></u></b></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif;color:black">Confirming the Applicant's control over the FQDN by verifying that the Request Token or Random Value is contained in the contents of a file. <u></u><u></u></span></p><ol style="margin-top:0in" start="1" type="1"><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpFirst" style="margin-left:0in"><a name="m_-5479767903643428875__Hlk24015359"><span style="font-family:Arial,sans-serif;color:black">The entire Request Token or Random Value MUST NOT appear in the request used to retrieve the file, and</span></a><span><span style="font-family:Arial,sans-serif"><u></u><u></u></span></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpLast" style="margin-left:0in"><span><span style="font-family:Arial,sans-serif">the CA MUST receive a successful HTTP response from the request (meaning a 2xx HTTP return code must be received).<u></u><u></u></span></span></li></ol><span></span><p style="margin:0in 0in 0.0001pt;vertical-align:baseline"><span style="font-family:Arial,sans-serif;color:black"><u></u> <u></u></span></p><p style="margin:0in 0in 0.0001pt;vertical-align:baseline"><span style="font-family:Arial,sans-serif;color:black">The file containing the Request Token or Random Number: </span><span style="font-family:Arial,sans-serif"><u></u><u></u></span></p><ol style="margin-top:0in" start="1" type="1"><li class="MsoNormal" style="vertical-align:baseline"><span style="font-family:Arial,sans-serif;color:black">MUST be located on the Authorization Domain Name, and</span><span style="font-family:Arial,sans-serif"><u></u><u></u></span></li><li class="MsoNormal" style="vertical-align:baseline"><span style="font-family:Arial,sans-serif;color:black">MUST be located under the "/.well-known/pki-validation" directory, and</span><span style="font-family:Arial,sans-serif"><u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpFirst" style="margin-left:0in"><span style="font-family:Arial,sans-serif;color:black">MUST be retrieved via either the "http" or "https" scheme, and</span><span style="font-family:Arial,sans-serif"><u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpLast" style="margin-left:0in"><span style="font-family:Arial,sans-serif;color:black">MUST be accessed over an Authorized Port.</span><span style="font-family:Arial,sans-serif"><u></u><u></u></span></li></ol><p class="MsoNormal"><span style="font-family:Arial,sans-serif">If the CA follows redirects the following apply:<u></u><u></u></span></p><ol style="margin-top:0in" start="1" type="1"><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpFirst" style="margin-left:0in"><span style="font-family:Arial,sans-serif">Redirects MUST be initiated at the HTTP protocol layer (e.g. using a 3xx status code).<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpMiddle" style="margin-left:0in"><span style="font-family:Arial,sans-serif">Redirects MUST be the result of an HTTP status code result within the 3xx Redirection class of status codes, as defined in RFC 7231, Section 6.4.<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpMiddle" style="margin-left:0in"><span style="font-family:Arial,sans-serif">CAs MUST NOT follow more than 10 redirects.<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpMiddle" style="margin-left:0in"><span style="font-family:Arial,sans-serif">Redirects MUST be to resource URLs with either via the "http" or "https" scheme.<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpLast" style="margin-left:0in"><span style="font-family:Arial,sans-serif">Redirects MUST be to resource URLs accessed via Authorized Ports.<u></u><u></u></span></li></ol><p class="MsoNormal"><span style="font-family:Arial,sans-serif;color:black">If a Random Value is used, then:<u></u><u></u></span></p><ol style="margin-top:0in" start="1" type="1"><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpFirst" style="color:black;margin-left:0in"><span style="font-family:Arial,sans-serif">The CA MUST provide a Random Value unique to the certificate request.<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpLast" style="color:black;margin-left:0in"><span style="font-family:Arial,sans-serif">The Random Value MUST remain valid for use in a confirming response for no more than 30 days from its creation. The CPS MAY specify a shorter validity period for Random Values, in which case the CA MUST follow its CPS.<u></u><u></u></span></li></ol><p class="MsoNormal"><span style="font-family:Arial,sans-serif">**Note:** Once the FQDN has been validated using this method, the CA MAY also issue Certificates for other FQDNs that end with all the labels of the validated FQDN.  This method is suitable for validating Wildcard Domain Names.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal" style="margin-right:0in;margin-bottom:6pt;margin-left:0in"><b><span style="font-family:Arial,sans-serif">3.2.2.4.18 Agreed-Upon Change to Website - ACME</span><u></u><u></u></b></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">Confirming the Applicant's control over a FQDN by validating domain control of the FQDN using the ACME HTTP Challenge method defined in section 8.3 of RFC 8555. The following are additive requirements to RFC 8555.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">The CA MUST receive a successful HTTP response from the request (meaning a 2xx HTTP return code must be received).<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif;color:black"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif;color:black">The token (as defined in RFC 855, section 8.3) MUST NOT be used for more than 30 days from its creation. The CPS MAY specify a shorter validity period for Random Values, in which case the CA MUST follow its CPS.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">If the CA follows redirects:<u></u><u></u></span></p><ol style="margin-top:0in" start="1" type="1"><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpFirst" style="margin-left:0in"><span style="font-family:Arial,sans-serif">Redirects MUST be initiated at the HTTP protocol layer (e.g. using a 3xx status code).<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpMiddle" style="margin-left:0in"><span style="font-family:Arial,sans-serif">Redirects MUST be the result of an HTTP status code result within the 3xx Redirection class of status codes, as defined in RFC 7231, Section 6.4.<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpMiddle" style="margin-left:0in"><span style="font-family:Arial,sans-serif">CAs MUST NOT follow more than 10 redirects.<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpMiddle" style="margin-left:0in"><span style="font-family:Arial,sans-serif">Redirects MUST be to resource URLs with either via the "http" or "https" scheme.<u></u><u></u></span></li><li class="gmail-m_-5479767903643428875MsoListParagraphCxSpLast" style="margin-left:0in"><span style="font-family:Arial,sans-serif">Redirects MUST be to resource URLs accessed via Authorized Ports.<u></u><u></u></span></li></ol><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">Note: Once the FQDN has been validated using this method, the CA MAY also issue Certificates for other FQDNs that end with all the labels of the validated FQDN.  This method is suitable for validating Wildcard Domain Names.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">---MOTION ENDS---<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">*** WARNING ***: USE AT YOUR OWN RISK.  THE REDLINE BELOW IS NOT THE OFFICIAL VERSION OF THE CHANGES (CABF Bylaws, Section 2.4(a)):<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">A comparison of the changes can be found at: <u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><a href="https://scanmail.trustwave.com/?c=4062&d=mZn73RJpZxKmoPwx6k-OGTuh-bUq0LoEQ1FYrf7sYA&s=5&u=https%3a%2f%2fgithub%2ecom%2fcabforum%2fdocuments%2f" target="_blank"><span style="font-family:Arial,sans-serif">https://github.com/cabforum/documents/.......</span></a><span style="font-family:Arial,sans-serif"><u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">The procedure for approval of this ballot is as follows:<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">Discussion (7+ days)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">Start Time: November , 2019 9:30am Eastern<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">End Time: Not before November, 2019 9:30am Eastern<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">Vote for approval (7 days)<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">Start Time: TBD<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:Arial,sans-serif">End Time: TBD<u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p></div></div>_______________________________________________<br>
Validation mailing list<br>
<a href="mailto:Validation@cabforum.org" target="_blank">Validation@cabforum.org</a><br>
<a href="https://cabforum.org/mailman/listinfo/validation" rel="noreferrer" target="_blank">https://cabforum.org/mailman/listinfo/validation</a><br>
</blockquote></div></div>