It appears that Shivan Kaul Sahib  <shivankaulsa...@gmail.com> said:
>-=-=-=-=-=-
>
>Hi folks, we (finally) published a new version of the domain verification
>techniques draft, now as intended-BCP. We've had some feedback from
>providers but would love for folks to review, especially people who would
>actually use it.

While I think it would be good to publish some best practices in this area,
this draft still seems scattered and makes some assertions that seem to me
to be somewhere between unsupported and mistaken.

I think we agree that the goal is there are two parties, call them
owner and verifier, and the verifier gives the owner a random token
that the owner puts in its DNS to show it owns the domain.  There are
a bunch of different aspects that one can look at independently.

One is where the token goes, in the name or contents of the owner's
record. I think we agree that putting the token at the owner's host
name is a bad idea, but either of these can work, with a1b2c3 being
the random token:

_a1b2c3.example.com IN ... "whatever"
_crudco.example.com IN ... "a1b2c3"

If you use a fixed prefix, _crudco in this case, you should register it
in the RFC8552 attrleaf registry.

Another is what record type to use. I find the arguments against CNAME
unpersuasive, basically saying that if you do something dumb, it won't
work, which is true, but it's always true. I realize that RFC1034 says
not to chain CNAMEs, but we all know that people chain CNAMEs and it
works, e.g. www.microsoft.com goes through three CNAMEs and it works
fine. If you use a _name in the attrleaf registry or a _random prefix
I would think the changes of a CNAME colliding with something else are
low, and a verifier presumably controls its own DNS and can keep CNAME
chains short.

So any of these could work:

_a1b2c3.example.com IN TXT "crudco"
_a1b2c3.example.com IN CNAME verify.crudco.wtf.
_crudco.example.com IN TXT "a1b2c3"
_crudco.example.com IN CNAME _a1b2c3.crudco.wtf.

As you sort of note in one of the appendices, you can have different
tokens in the name and the content if for some reason that is useful.

For the length of time the token is valid, there seem to be only two:
five minutes for a one-off verification like for ACME, or forever for
someone who is doing continuing analysis of something in your domain,
typically web analytics. While I can see aesthetic reasons to get rid
of expired one-off tokens, I don't see the point of putting an
expiration time in them, nor any particular harm in leaving them there
if they are at _name and not the main host name. You might also say
something about TTLs, e.g., not to have a 12 hour TTL for a token you
plan to remove in a few minutes.

There are some other minor points. You say to generate 128 random
bits, but then to hash them to 256 which I don't understand. (As RFC
4086 sec 6.2 notes, strong random bits often are already hash output.)
If 128 bits is enough, use 128 bits, if you need 256, generate 256.
Either way I'd do base32 rather than base64 encoding to make the
result more robust against helpful software that does you a favor by
case folding.

Overall, I'd lay out the options, and point out the advantages or
disadvantages of each rather than just saying "do this" without a
strong basis not to do it the other ways that work fine in practice.

R's,
John

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to