<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 25, 2017 at 7:12 AM, Doug Beattie <span dir="ltr"><<a href="mailto:doug.beattie@globalsign.com" target="_blank">doug.beattie@globalsign.com</a>></span> wrote:<br><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_3014067120040749749WordSection1"><span class="gmail-">
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">> For example, the addition of "If a CNAME or DNAME record is found, then the CAA check will start<u></u><u></u></p>
<p class="MsoNormal">> over using the returned value as the new input to the CAA check." is introducing ambiguity, because
<u></u><u></u></p>
<p class="MsoNormal">> it's incompatible with the algorithm described - namely, the CAA check does not start over, because<u></u><u></u></p>
<p class="MsoNormal">> the CAA check would have already accounted for the CNAME/DNAME traversal.<u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
</span><p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">There are a couple of things that are not clear to me:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">1) This is the specified processing logic for handling CNAME and DNAME records says:<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:0.5in"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">If A(X) is not null (i.e, there is a CNAME or DNAME record for X), and R(A(X)) is not empty, then R(X) = R(A(X)), otherwise <continue…><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">If a CA is looking up <a href="http://foo.example.com" target="_blank">foo.example.com</a> and there was a CNAME to <a href="http://bar.domain.com" target="_blank">bar.domain.com</a> what do they check?  As written, the RFC says to check <a href="http://bar.domain.com" target="_blank">bar.domain.com</a> for a CAA
 record and if there is one use it, otherwise continue with processing (look for CAA record for <a href="http://example.com" target="_blank">example.com</a> then alias for <a href="http://example.com" target="_blank">example.com</a>).  I was
<i>assuming</i> that we’d want to dig a little deeper into <a href="http://bar.domain.com" target="_blank">bar.domain.com</a> by checking CAA record for <a href="http://domain.com" target="_blank">domain.com</a> and alias for <a href="http://domain.com" target="_blank">domain.com</a>.</span></p></div></div></blockquote><div><br></div><div><br></div><div>R(X) is defined recursively, so R(A(X)) would recurse into R(P(A(X))) if CAA(A(X)) was empty. So it would examine <a href="http://bar.domain.com">bar.domain.com</a>, <a href="http://domain.com">domain.com</a>, and .com before continuing to examine <a href="http://example.com">example.com</a> and .com.</div><div><br></div><div> </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_3014067120040749749WordSection1">
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">Perhaps my wording of “starting over again” is not accurate, and I should have added step 2.1 that says:<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:0.5in"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">2.1 If A(X) is null, then spawn a new CAA check with CAA(A(X)).  If this check ends with R(X) being empty, then continue processing with
 step 3</span></p></div></div></blockquote><div><br></div><div>That's already specified in the RFC.</div><div><br></div><div><div>If A(X) is not null, and R(A(X)) is not empty, then R(X) = R(A(X)), otherwise</div></div><div> </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_3014067120040749749WordSection1">
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">2) The definition of when to stop CAA checking is not clear.  The RFC says: the processing scenario says to stop when X is a top-level domain<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">The BRs define “Base Domain Name”, which is where we should stop for processing BR compliant TLS certificates.  Do we want to proceed up to the “top-level domain”
 (undefined term) looking for CAA records for TLS certificates, or do we want to stop at Base Domain Name?  I think for our purposes we need to stop searching for CAA records when we hit the Base Domain Name.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)"><br></span></p></div></div></blockquote><div><br></div><div>No, Top Level domain is just that - the top-level domain. So you would search for a CAA record for .com, for example. </div></div><br></div></div>