Re: [DNSOP] Domain Verification Techniques using DNS

elliott.brown@num.uk Wed, 24 May 2023 22:52 UTC

Return-Path: <elliott.brown@num.uk>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 88BAAC152561 for <dnsop@ietfa.amsl.com>; Wed, 24 May 2023 15:52:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.587
X-Spam-Level:
X-Spam-Status: No, score=-6.587 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001, URI_NOVOWEL=0.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=num.uk
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WopRoJX3CEo0 for <dnsop@ietfa.amsl.com>; Wed, 24 May 2023 15:52:13 -0700 (PDT)
Received: from mail-40136.proton.ch (mail-40136.proton.ch [185.70.40.136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9C5BC151083 for <dnsop@ietf.org>; Wed, 24 May 2023 15:52:12 -0700 (PDT)
Date: Wed, 24 May 2023 22:52:03 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=num.uk; s=protonmail2; t=1684968729; x=1685227929; bh=yeQpn7X4atRj2PnMntx180qSM13+p/RpE8IxDKF0sXc=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=QiFDijT4E520SQCC0icTQzQHcHyFlm8Gnr2Y1ZPC3s9GYkPn15SzAcoWa9dc4FPFk 5TVG1rAPnmTRVM5nsOe45cJTGHVEfhiwqGRHwvsrel4Pqp/QgtbcD/Tuyz3uNfDGnX V3eMv42qXex/dlpdMVlwJDgv2RvPlw1Tp45fkcEUPaAlgn7EdbE2yMhJlAtegSjKni pA/wJd6tglGLhFpv4lxPiAKz5qy/L3mOPurI3cVhUnhUMSNjBRHi0MMTVtX8vnXc3q vN/jJuQwKxnG8a1vICxbsjNqQjmyYj7XzOfllHtuljrxwUQax8fZ9SmX26pCDgbLdT kXOSfwo53Ckkg==
To: Shivan Kaul Sahib <shivankaulsahib@gmail.com>
From: elliott.brown@num.uk
Cc: Paul Wouters <paul.wouters=40aiven.io@dmarc.ietf.org>, "dnsop@ietf.org" <dnsop@ietf.org>, "draft-ietf-dnsop-domain-verification-techniques.all@ietf.org" <draft-ietf-dnsop-domain-verification-techniques.all@ietf.org>
Message-ID: <MuzwU80dI4DnslaOxy_pLuSw55eASeZboWHk9YJbxCuzA-XOZUox6stfSuqv2_rKoFhq0kKAEF7TXgzm_mG_K-RQU3mR6lCvcHSIfT9JmvY=@num.uk>
In-Reply-To: <CAG3f7MjfVXQGqcWiNopTPUKTxwiMekLLTGYgkMSqFGX0mQrJ1g@mail.gmail.com>
References: <lFAtHx4AM5tH7o5UTTgzfKqfZpLer5Gxu3je9lItz7SQ04nBWpv2dRiQv5Pwg9cuX9s_Hv-Yv7x7j8LYddrWl6Z3cPJLidyyETU2SDndbKc=@num.uk> <CAGL5yWZv+8qBv84_LDU5ShvcQ0+G6aOgZS8zUg91LV4cwaH9KQ@mail.gmail.com> <xVnFqv85V9Sv4aTtJxq7lnqQ1jQau7a5JTkfw0ysnl7dBzshQmFb7cZ5SoSrE60Fcz25XcmcRBZs4v_R5ah4zlGtA7dWqYJCMGwsqpGTORc=@num.uk> <CAG3f7MjfVXQGqcWiNopTPUKTxwiMekLLTGYgkMSqFGX0mQrJ1g@mail.gmail.com>
Feedback-ID: 51893081:user:proton
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="b1_b8EwvroU9PgYr99HvxjWw3yqxoWDW2uDLFX4fcve9og"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/0zmEF3uhZvmuZq_TBQX8WpAGwQk>
Subject: Re: [DNSOP] Domain Verification Techniques using DNS
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 May 2023 22:52:18 -0000

Thank you for your reply Shivan,

Your comment cleared some things up for me:

> The draft surveyed several widely deployed techniques and synthesized best current practices. The technique you're proposing is a new technique, and worth considering in its own separate document by the DNSOP working group.

It's now clear that our technique is not widely deployed and so I understand that it might not be relevant for a Best Current Practice document. I think this could be a lack of understanding on my part about how BCP documents work and so I'll do some reading on that.

Thanks for your help,

Elliott

------- Original Message -------
On Wednesday, May 24th, 2023 at 23:03, Shivan Kaul Sahib <shivankaulsahib@gmail.com> wrote:

> Hi Elliott,
>
> On Wed, 24 May 2023 at 14:52, <elliott.brown@num.uk> wrote:
>
>> ------- Original Message -------
>> On Tuesday, May 23rd, 2023 at 21:22, Paul Wouters <paul.wouters=40aiven.io@dmarc.ietf.org> wrote:
>>
>>> On Mon, May 22, 2023 at 5:49 PM <elliott.brown@num.uk> wrote:
>>>
>>>> Dear DNSOP WG,
>>>>
>>>> My company has developed a domain verification technique using DNS, it fits the abstract of draft-ietf-dnsop-domain-verification-techniques.
>>>>
>>>> I am writing to ask the WG's opinion on whether our technique is within the scope of the current draft and if so, whether it should be considered for inclusion.
>>>
>>> Thanks for reaching out to DNSOP.
>>>
>>>> Our technique is outlined here:
>>>> https://www.domainverification.org
>>>>
>>>> You can see an example DNS TXT record by using the following dig command:
>>>>
>>>> dig 4i7ozur385y5nsqoo0mg0mxv6t9333s2rarxrtvlpag1gsk8pg._dv.dvexample.com TXT
>>>>
>>>> Although our method fits the draft's title and abstract, it is quite different to the method detailed in the best current practice of the draft.
>>>
>>> Indeed. While the current draft's methods could be fully automated, your method specifically calls out for verification via
>>> a phone number or email address which more or less assumes a human operator.
>>
>> The current draft's methods (Service Provider: instructing a domain owner to create a DNS TXT record; Domain Owner: creating the DNS TXT record) are automated on the service provider side, but in my experience it is very rarely automated on the domain owner side.
>>
>> On the domain owner side, there is a human operator following the instructions and creating the DNS TXT record.
>>
>> Our method does involve an extra step of verification (e.g. verifying an email address), but in practice this extra step has often already been completed when the domain owner set up a user account with the service provider.
>>
>>> It therefor works indirectly and all the
>>> "verification" parts are out of scope handled inside the SMS / email / phone call messages that would be required.
>>>
>>> As such, I do not think it belings in the current draft, but should be submitted as a separate draft.
>>
>> I am very open to submitting it as a separate draft and I am interested in the thoughts of the WG around whether the abstract of the current draft (and possibly title) should be narrowed to make it clear the domain verification techniques included in the current draft are for one-time only / service provider specific domain verification.
>
> I agree with Paul that this seems like a separate draft that should be considered on its own by the WG.
>
>>>> It is our ultimate goal for these records to be created by domain registrars upon domain registration (with registrant opt-in) to provide their customers with seamless onboarding when adding their domain to service providers.
>>>
>>> I wonder if that goal is achievable. In a way, the SOA record also contains a contact email for the domain and is basically no longer used by anyone.
>>
>> The zonemaster is not the domain owner in the vast majority of cases. I think there's a variety of reasons this email address is no longer used by anyone, including: it is in plaintext so easily discoverable; there are better ways to contact the administrator of a DNS zone.
>>
>>> Hashing the contact info is only a very wea protection, as we have seen with people bruteforcing NSEC3 hash chains.
>>
>> We hash the email/phone and store it in the DNS label itself so that it cannot be easily harvested by spammers. We don't use hashing for any kind of protection against a threat.
>>
>>> And also, I think
>>> these type of records will also go stale and then not very useful.
>>
>> These records will naturally be removed when a domain expires or changes registrant, so I think the risk of stale records for a domain owner is quite low. Records for third parties can have expiry dates, so I think this should avoid stale records for third parties.
>>
>>> And so another fallback mechanism will be required anyway. So perhaps using that fallback to start with would be better. (I guess you could add some application code to verify email addresses on signup requests, but I doubt this is all going to me that much easier than "take this DNS record and tell your IT to publish it for a few days" that the current draft uses.
>>
>> I would argue that the service providers that verify the most domains already verify email addresses on sign-up. And so, once the Domain Verification Protocol record is in place – whether it's been setup by the domain registrant, registrar or a previous service provider – domain verification becomes "automatic" and significantly easier than "take this DNS record and tell your IT to publish it for a few days".
>>
>> I have provided an explanation of the process below:
>>
>> 1. Bob signs up with DomainRegistrar.com using emailbob@gmail.comand registers the available domain[example.com](http://example.com/)
>>
>> 2. DomainRegistrar.com configures a Domain Verification record by hashingbob@gmail.com(simplified hash: 123ABC) and stores this record at 123ABC._[dv.example.com](http://dv.example.com/)
>>
>> 3. Bob signs up with Service Provider 1 using his emailbob@gmail.comand verifies his email. He attempts to add the domain[example.com](http://example.com/)to the service provider
>>
>> 4. Service Provider 1 runs a Domain Verification check for the domain[example.com](http://example.com/)by hashing Bob’s email (bob@gmail.com-> 123ABC) and using this in a dns query:
>> dig 123ABC._[dv.example.com](http://dv.example.com/)
>>
>> 5. If a valid record is returned then Domain Verification is successful.
>>
>> 6. Bob can claim[example.com](http://example.com/)on multiple service providers using the same steps above, without adding any DNS TXT records.
>>
>> In the example above, the Registrar creates the record but this record could also be created by Bob himself under instruction from the first Service Provider he uses. Subsequent Service Providers could re-use the same record.
>>
>>>> In accordance with BCP79, I am disclosing the following patents which relate to our technology:
>>>>
>>>> Patents related to storing a hash of a verifiable identifier (email, phone, etc) in DNS for the purposes of verification:
>>>>
>>>> - UK granted patent: https://patents.google.com/patent/GB2585353B
>>>
>>> I believe that RFC 7929 - DNS-Based Authentication of Named Entities, of which I am the author, constitutes prior art for this patent.
>>>
>>>> - US pending patent: https://patents.google.com/patent/US20220141172A1
>>>>
>>>> Patents related to storing a hash of a verifiable identifier as a DNS label for the purposes of verification:
>>>>
>>>> - UK pending and unpublished patent: https://patents.google.com/patent/GB202216304D0
>>>
>>> I believe both the aforementioned RFC 7929, as well as RFC 7671: The DNS-Based Authentication of Named Entities,
>>> constitute prior art for this patent.
>>
>> Thanks and noted.
>>
>>>> - US patent to be filed.
>>>>
>>>> As I understand it, this disclosure is a condition of contributing to the discussion. For the avoidance of doubt: I am not asserting any rights over the methods discussed in the current draft at all – only our new method being proposed for inclusion.
>>>>
>>>> We are still working on licensing but creating Domain Verification records will always be free for domain registrants or registrars, service providers will require a license to verify domains using the protocol.
>>>
>>> Note that the IETF strongly leans towards only using patented technology if that technology is licensed using an irrevocable, perpetual, royalty free and non-discriminatory license. Your indication that service providers cannot use this technology without paying royalties would not be compatible with that goal.
>>
>> I am new to this so my apologies if I've misinterpreted something, but In RFC8179 I noted the following, particularly (b):
>>
>> "Since IPR disclosures will be used by IETF working groups during their evaluation of alternative technical solutions, it is helpful if an IPR disclosure includes information about licensing of the IPR in case Implementing Technologies require a license. Specifically, it is helpful to indicate whether, upon approval by the IESG for publication as an RFC of the relevant IETF specification(s), all persons will be able to obtain the right to implement, use, distribute, and exercise other rights with respect to an Implementing Technology a) under a royalty-free and otherwise reasonable and non-discriminatory license, or b) under a license that contains reasonable and non-discriminatory terms and conditions, including a reasonable royalty or other payment, or c) without the need to obtain a license from the IPR holder (e.g., a covenant not to sue with or without defensive suspension, as described in Section 7)."
>>
>> As per (b), our technology will be offered "under a license that contains reasonable and non-discriminatory terms and conditions, including a reasonable royalty or other payment".
>>
>> I understand the IETF might lean towards non-proprietary technology or proprietary technology that is freely-licensed.
>>
>> I suppose my question, and the reason for contacting the IETF boils down to whether or not the draft (with it's current title and abstract) is aiming to be complete in it's consideration of "Domain Verification Techniques using DNS". If so, I would argue our method should be considered for inclusion.
>
> I disagree, the draft has been adopted as a Best Current Practice document (see the intended status in the boilerplate). The abstract currently says:
>
> Many services on the Internet need to verify ownership or control of
> a domain in the Domain Name System (DNS). This verification is often
> done by requesting a specific DNS record to be visible in the domain.
> There are a variety of techniques in use today, with different pros
> and cons. This document proposes some practices to avoid known
> problems.
>
> The draft surveyed several widely deployed techniques and synthesized best current practices. The technique you're proposing is a new technique, and worth considering in its own separate document by the DNSOP working group.
>
>> If instead it is intended to standardise the method widely used over the last 10-15 years then I wonder whether the draft and abstract should be narrowed to make that clear.
>
> I think the Intended Status and Abstract together make this clear.
>
>>>> This is my first time contributing to the IETF, please forgive me for any accidental transgressions – I am here to contribute as productively as possible.
>>>
>>> Welcome and thanks for coming to the IETF to make the internet work better :)
>>
>> Thank for the time and consideration you've given to this.
>>
>>> Paul
>>
>> Best regards,
>>
>> Elliott
>
> Thanks,
> Shivan