Hello, PSL community,
In the PSL guidelines. there's talk of how to perform DNS verification for new submissions to the PSL. I'd imagine we're all familiar with the content there, but here's the content as-written:
RFC8553 DNS AuthenticationFor each suffix included in the patch, add a corresponding DNS TXT record called _psl that contains the link to the PR.
For example, if you submit the following patch:
+// Company : http://www.example.com +// Submitted by John Doe <jo...@example.com> +alphaexample.com +foo.betaexample.com +*.gammaexample.comThen we expect to find the following DNS records (assuming the pull request ID is 100):
$ dig TXT _psl.alphaexample.com https://github.com/publicsuffix/list/pull/100 $ dig TXT _psl.foo.betaexample.com https://github.com/publicsuffix/list/pull/100 $ dig TXT _psl.gammaexample.com https://github.com/publicsuffix/list/pull/100
If that DNS query were instead to respond with a CNAME record (which, in turn, responds with a TXT record), would this be appropriate as well? I didn't see anything in RFC8553 that forbids the use of CNAMEs for this purpose, but the Guidelines say "TXT record" specifically.
Internally, this would help distributed organizations (like our own) with assisting our teams in onboarding to the PSL. By permitting CNAMEs in this fashion, our product teams can defer control over the PSL verification process to our team, who do not otherwise have ownership/access over their DNS infrastructure.
Here's an example of how this might look in practice in a DNS verification artifact:
Direct TXT:
$ dig +short -t TXT _psl.example.com "https://github.com/publicsuffix/list/pull/100"
CNAME to TXT:
$ dig +short -t TXT _psl.example.com
cname-target.example2.net.
"https://github.com/publicsuffix/list/pull/100"
Jothan,
Fair enough, a PoC would be appropriate. I've created some example DNS records to demonstrate this. For my PoC, consider that I'd like to include widgets.cool-service.iwillamz.people.amazon.dev on the PSL, in #1954. (We wouldn't, this is for demonstration purposes only.)
For DNS validation, a query would be made for a TXT record at _psl.widgets.cool-service.iwillamz.people.amazon.dev. This currently responds with a CNAME to widgets.cool-service.iwillamz.people.amazon.dev.for.psl.security.aws.dev. A TXT query for this domain will respond with "https://github.com/publicsuffix/list/pull/1954".
These are real domains, and can be queried right now from your choice of public DNS resolver. Testing in a recent-ish version of dig (9.11.4), and via Google DNS, handling of the CNAME always looks to happen transparently to the client.
A few notes:
Hopefully this helps clarify things?