[homenet] Paul Wouters' Discuss on draft-ietf-homenet-front-end-naming-delegation-18: (with DISCUSS and COMMENT)

Paul Wouters via Datatracker <noreply@ietf.org> Thu, 20 October 2022 05:45 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: homenet@ietf.org
Delivered-To: homenet@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 98ECEC14F739; Wed, 19 Oct 2022 22:45:30 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Paul Wouters via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-homenet-front-end-naming-delegation@ietf.org, homenet-chairs@ietf.org, homenet@ietf.org, stephen.farrell@cs.tcd.ie, stephen.farrell@cs.tcd.ie
X-Test-IDTracker: no
X-IETF-IDTracker: 8.18.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Paul Wouters <paul.wouters@aiven.io>
Message-ID: <166624473061.32486.17192141222999584171@ietfa.amsl.com>
Date: Wed, 19 Oct 2022 22:45:30 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/homenet/76IcbKhG4HHfp4QTX2z-X5OFqzA>
Subject: [homenet] Paul Wouters' Discuss on draft-ietf-homenet-front-end-naming-delegation-18: (with DISCUSS and COMMENT)
X-BeenThere: homenet@ietf.org
X-Mailman-Version: 2.1.39
List-Id: IETF Homenet WG mailing list <homenet.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/homenet>, <mailto:homenet-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/homenet/>
List-Post: <mailto:homenet@ietf.org>
List-Help: <mailto:homenet-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/homenet>, <mailto:homenet-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Oct 2022 05:45:30 -0000

Paul Wouters has entered the following ballot position for
draft-ietf-homenet-front-end-naming-delegation-18: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/ 
for more information about how to handle DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-homenet-front-end-naming-delegation/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

I have to agree with Warren here. I do not understand how this protocol is
supposed to work. It renames a bunch of DNS terms (hidden primary, primary,
seconday, AXFR/IXFR, DNS update --> HNA, DM, DOI, Control Channel, Sync
channel) which makes the document very hard to read.

For those parts where protocol glue is needed to use these DNS technologies,
the document presents no solutions. I don't understand if users can create
their own named zones, or whether this is only provider generated zones. The
latter seems less useful to the user, the former seems to need more
specification on how to handle registry/registrar/registrant matters
(especially with respect to DS)

The security seems to mix up transport security with TLS and data integrity
security of the DNS protocol (typically TSIG or SIG0, but the document claims
this cannot be used)

Having provider generated homenet named DNS zones makes scanning for hostnames
in those zones much easier than scanning an entire /64 IPv6 for vulnerable
devices. Eg well known host names like "tv" or "LG" or "washing_machine" or
just any <= 8 character string based hostnames or dictionary attacks.

Like Warren, I've added my notes as comments without splitting them further
into DISCUSSes or COMMENTs


----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

   *  the CPE/HNA router is unaware of the process, and cannot respond
      to queries for these names and communications to these names
      require an Internet connectivity is order to perform the DNS
      resolution.  Such dependence does not meet the requirement for
      internal communications to be resilient to ISP connectivity
      disruptions [RFC7368].

If there is a host within the home network that is the DHCP/DNS server,
then this does not require further support from a CPE/HNA or internet
uplink. For example Linux openwrt with avahi and dnsmasq is a common
deployment of this: https://openwrt.org/docs/guide-user/base-system/dhcp
Arguably, one could say openwrt is the CPE/HNA in such case, provided
that user has their own domain they can send "dynamic DNS" updates for
on the public internet hosting their homenet zone.

   *  the CPE/HNA router cannot control the process.  Any host can do
      this regardless of whether or not the home network administrator
      wants the name published or not.  There is therefore no possible
      audit trail.

To be fair, even with dpeloying all of homenet, those hosts can still keep
doing this - choices made here does not affect this, so I don't see this
as a valid argument one way or the other.

   The DOI is also responsible for ensuring the DS record has been
   updated in the parent zone.

This sentence carries a LOT of process/protocol work. Will it use CDS? How is
the authorization boot strapped? Does it work for non-ISP generated zones, eg
"toronto.nohats.ca" ? If so, how does it handle delegation of NS and DS ?

   The information exchanged between the HNA and the DM uses DNS
   messages protected by DNS over TLS (DoT) [RFC7858].  In the future,
   other specifications may consider protecting DNS messages with other
   transport layers, among others, DNS over DTLS [RFC8094], or DNS over
   HTTPs (DoH) [RFC8484] or DNS over QUIC [RFC9250].

what does "protected" here mean? Privacy protection? Because if it is using
DNS Dynamic Updates, the data authenticity protection comes from a TSIG/SIG0
key.

   The main issue is that the Dynamic DNS update would also update the
   parent zone's (NS, DS and associated A or AAAA records) while the
   goal is to update the DM configuration files.  The visible NS records
   SHOULD remain pointing at the cloud provider's server IP address -

But isn't this simply a "forward" statement for the zone to the private IP
of the local DNS authoritative server within the local DNS recursive server?
That way, the recursive dns IP does not need to have a NS record at all, so
there is also no risk of accidentally pushing it out to public servers and
replacing the real NS records?

   *  By default, the HNA uses a single IP address for both the Control
      and Synchronization channel.  However, the HNA MAY use distinct IP
      addresses for the Control Channel and the Synchronization Channel
      - see Section 5 and Section 4.3 for more details.

Why does this matter and need mentioning? TSIG/SIG0 would not care about the
IP address used, and/or whether it is NATed?

   As such the HNA has a prior knowledge of the DM identity (X509
   certificate), the IP address and port number to use and protocol to
   set secure session.

Ah, so this is a preconfigured IP/name/TSIG/SIG0 key, and limits the HNA to
only CPE supported DNS providers? Either this locks in where users can host
their homenet zone based on CPE preconfiguration, or it is just a fancy way of
saying "configure your DNS server with your remote DNS settings" (which would
not need anything of this document to run, and I was hoping this document was
going to provide some automation for this?)

   The HNA SHOULD provide the hash of the KSK (DS RRset), so the DOI
   provides this value to the parent zone.  A common deployment use case
   is that the DOI is the registrar of the Registered Homenet Domain and
   as such, its relationship with the registry of the parent zone
   enables it to update the parent zone.

This now means that the solution is limited to those scenarios that have:
- CPE support for homenet RFCs
- ISP support for CPE for HNA for DOI that supports DNSSEC DS submission via
EPP, or - A Registrar that is also DNS hoster AND supports DNSSEC AND supports
CDS/CDNSKEY AND supports AXFR/IXFR
  AND supports homenet RFCs

I would argue these requirements are far more restrictive than:
- CPE with support for stock Dynamic DNS updates for itself only (eg client
registrations,
  but could also be autoatic conversion of MDNS/.local to its local homenet
  zone.
- CPE that can run recursive with an authoritative zone
- Any DNS hoster that supports AXFR/IXFR, DNSSEC and CDS/CDNSKEY
- Any Register that supports DNSSEC

with the only difference that the latter one needs a one step registration of
the initial DS record.

   Though the HNA may also later directly update the values of the DS
   via the Control Channel, it is RECOMMENDED to use other mechanisms
   such as CDS and CDNSKEY [RFC7344] for transparent updates during key
   roll overs.

If this is going to be a fully automated enduser CPE solution, this RECOMMENDED
is too weak. It should be a MUST because otherwise DNSSEC rollover is just
impossible.

Section 4

this all seems to imply "registered domains". Can these be subdomains? Eg can I
own nohats.ca and configure one CPE for toronto.nohats.ca. and the other for
amsterdam.nohats.ca. ? This involves talking to NS for nohats.ca for sub
delegation, but I don't see that mentioned anywhere ?

Section 4.5.1

How would the bootstrap work. I pick "paulhomenet.com" as my zone, but then my
CPE doens't have nameservers for it, so it does AXFR via the Control Channel ?
And get a set of NS records back that my CPE adds to paulhomenet.com ? And then
it becomes authoritative? How is the ownership of paulhomenet.com tested? if it
is registered, who will be the registrar, registrant? Is ".io" supported? Or
other TLDs? Or will this all be under "nameyoupick.homenet.cpevender.com" ?

AXFR is normally based on authentication of domain name plus shared key. How
does that work when creating a _new_ domain name by the enduser? How can this
be authenticated without knowing the zone name ?

Section 4.5.3

   The default IP address used by the HNA for the Synchronization
   Channel is the IP address of the Control Channel.  To provide a
   different IP address, the HNA MAY send a DNS UPDATE message.

What does this DNS UPDATE message contain? It says NS records but what
name? And as this is the authoritative server sending an DMS UPDATE
message, it would need to send the RRSIG too, which means it needs to
set the entire NS RRset? Which means it needs to know the remote NS
records, but how can it do that without first already using the proper
IP address to talk to the systems?

Section 4.5.4:

If a deletion is processed, what happens with the domain name? Will all
its NS records be deleted and it is now a lame delegation? How is the enduser
supposed to get their domain under their own control again? Is it ever truly
theirs?

4.6 Securing the control channel

Isn't this channel DNS dynamic updates? Are these not secured by TSIG/SIG0 ?
Did you mean TLS only for privacy considerations and not security
considerations?

Apparently this is not the case?

   A pure DNS solution using TSIG and/or SIG(0) to authenticate message
   was also considered.

   A way to translate this OAUTH2 token from HTTPS web space to DNS SIG(0)
   space seems overly problematic,

Why not use TSIG? That is literally the keyed hash of a blob, and the blob can
be an OAUTH2 token ?

ection 4.7

   Interface Binding:  the Hidden Primary Server will almost certainly
      listen on the WAN Interface, whereas a regular Homenet
      Authoritative Servers would listen on the internal home network
      interface.

Does that matter if either one provides a routable public IPv6 address?

   Limited exchanges:  the purpose of the Hidden Primary Server is to
      synchronize with the DM, not to serve any zones to end users, or
      the public Internet.

I thought it was serving endusers so that local things would keep working
with a broken internet link? Or at least "serve" its "resolver" part. And
also serve as auth server to take in DNS Dynamic Updates?

Section 5:

   Uploading and dynamically updating the zone file on the DM can be
   seen as zone provisioning between the HNA (Hidden Primary) and the DM
   (Secondary Server).  This can be handled via AXFR + DNS UPDATE.

I don't see how the start of this works, when the end user tells their CPE
the name of their local homenet zone ?

(also I think you mean AXFR/IXFR ? The DNS UPDATE would be the local machine
 talking to the local CPE ? Not between HNA and DM?)

   Note that there is no standard way to distribute a DNS primary
   between multiple devices.  As a result, if multiple devices are
   candidate for hosting the Hidden Primary, some specific mechanisms
   should be designed so the home network only selects a single HNA for
   the Hidden Primary.  Selection mechanisms based on HNCP [RFC7788] are
   good candidates.

This seems rather under specified. If there is only one, how is it found and
used? I was expecting that the domainname configured on the CPE would be
queried for DNS UPDATES by clients. But looking at RFC2136 Section 4:

   From a requestor's point of view, any authoritative server for
   the zone can appear to be able to process update requests, even
   though only the primary master server is actually able to modify the
   zone's master file.  Requestors are expected to know the name of the
   zone they intend to update and to know or be able to determine the
   name servers for that zone.

   If the requestor has reasonable cause to believe that all of a
   zone's servers will be equally reachable, then it should arrange to
   try the primary master server (as given by the SOA MNAME field if
   matched by some NS NSDNAME

This would be only one possible target based on the domainname given to
a device via DHCP. What "some specific mechanism should be designed" will
be deployed for the clients (eg my phones, laptop and TV ?) I think the
only real chance they have of doing this (without waiting 10 years for
all our electronics to cycle/get updated) is standard the SOA MNAME's IP
address, eg RFC 2136 DNS Dynamic Updates. My devices already support this.

So that redefines the above problem to "Who becomes the Hidden Primary",
which I assumed was the CPE supporting this framework ? And if there
are more than one CPE that can do this, it should be configured by
the user to be done only by one CPE - similar to have a user should
ensure there is only one DHCP server running in the network ?

Section 5:

        First the HNA (primary) notifies the DM (secondary)

The entire document would have been so much more readable if HNA and DM
had not been introduced and primary/secondary was used througout.

   The HNA SHOULD apply an ACL on inbound AXFR requests to ensure they
   only arrive from the DM Synchronization Channel.

Unless the CPE is preconfiguted with service providers, these ACLs cannot
come by default? Also, if this channel uses TSIG (which also needs
preconfiguration) then it can already ACL this based on the known shared
secret. No IP based ACLs needed (which are risky to put into CPE firmware as
networks change)

Section 7:

Why can't the HNA be the local authoritative server for clients? Why should
this functionality be split in two? It just means another recursive resolver
needs to query the HNA (and have it configured as forwarder) for the local
homenet zone (in case uplink goes down). For example, this could be a single
instance of the Bind DNS server dong both authoritative and recursive DNS.

Dropping received queries for DNS servers is always a bad idea, as it just
causes the client to retransmit. Always returning an error is the common
DNS reply strategy. This section goes against common best practise for DNS
servers.

Section 9:

  [RFC7368] in Section 3.7.3 recommends DNSSEC to be deployed on both
   the authoritative server and the resolver.  The resolver side is out
   of scope of this document, and only the authoritative part of the
   server is considered.

But if things must work without an internet connection working, then the
resolver needs to be configured for the homenet domain to ask the HNA
and not go the regular upstream path. So it should be in scope I believe.

   Typically, the DS RRset can be updated
   manually in the parent zone with nsupdate for example.

I don't think this applies to "typical DS". The DS RRset lives on the "wrong"
side of the zone cut. A dns update client is would not have permissions to
update its parent zone with dns updates, only its own child zone. So this
would be better done by pushing a CDS record and let the parent pull the CDS
and recreate its own DS record. This method is not widely supported by TLDs,
and I dont know how this solution would work for second or third level domains,
eg if I use provider X to host nohats.ca, and provider Y for my home internet
and I want toronto.nohats.ca to be my home network name using CPE vendor Z.

Section 10:

   The ISP SHOULD ensure that the DNS cache has expired before re-
   assigning the prefix to a new home network.

How does it do that? It can't send queries to get the data for TTL anymore,
since the network already got renumbered and returned and the NS servers
removed. The records now only live in worldwide caches. You don't know the TTL.
Unless you grabbed the data just before getting it returned. But that is also
unlikely, eg imagine a user taking down their CPE because they moved house.
>From the ISP point of view the network just vanished including all its
nameservers for it (the public ones will work for a while but will the ISP act
within that time?)

And what of the CPE/HNA set TTLs on data of 1 year ?

The TTL math in section 10 makes no sense to me as the CPE/HNA could set it to
whatever it wants. The ISPs secondary servers cannot change the TTL (it is
protected by DNSSEC from being modified)

Section 11:

The Privacy Considerations section is a bit hard to read. But in the end it
comes down to "dont make your homenet DNS publicly reachable if you want
privacy". Indeed, I find publishing my entire home network into public DNS a
serious risk. DNS scanners will end up scanning for well known names of popular
brands of TVs, washing machines, saunas, lightbulbs, etc. Or they will start
scanning zones based on well known ISP based secondary services. It is almost
as if the better solution would be to only provide a publicly reachable homenet
VPN server, that provides both DNS and the only working routes from my (remote)
devices on my to my home network based devices.

The privacy and security of the DNS names is a small thing if homenet puts all
my devices on the public IPv6 network. Scanning IPv6 is still fairly hard to
do, even of endusers /64. And putting those IPv6 addresses in DNS makes it much
much easier to find all these devices and use their exposed services to
compromise the device and/or network that they are in. These considerations are
completely missing from the Security Considerations Section 12.

Appendix A:

   This document does not deal with how the HNA is provisioned with a
   trusted relationship to the Distribution Manager for the forward
   zone.

But that is core to the protocol ?

   Similarly, if the HNA is provided by a registrar, the HNA may be
   handed pre-configured to end user.

How can that be if the user decides on the homenet network name it wants to use?

Appendix C:

The example zone used is n8d234f.r.example.net. I thought the idea was for the
user to have a memorable zone it can use, eg sharing with friends. Was I wrong?

with the "dm_acl"    : "2001:db8:1234:111:222::/64", set, what happens to the
zone "n8d234f.r.example.net." when the user got unplugged and replugged and
lives on a different ip range now ?