Re: [Last-Call] Iotdir telechat review of draft-ietf-dnssd-srp-22

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christian, thanks for your iot-dir review of draft-ietf-dnssd-srp. Sorry for taking so long to respond.

On Fri, Aug 4, 2023 at 6:12 PM Christian Amsüss via Datatracker <noreply@xxxxxxxx> wrote:
Reviewer: Christian Amsüss
Review result: Ready with Nits

Summary
=======

Doing DNS-SD without mDNS, with focus on the onboarding issue (going with a
first-come-first-served policy), performance enhancements (vs. existing update
methods) and delegation enhancements (leases). It is a more comprehensive
approach than RFC8766 that went some way in the same direction.

The document is generally well written and seems to be well thought through, to
the extent I can see that with my rather superficial knowledge of established
DNS practices. For the IoTdir reviewer perspective (through which I was asked
to review this), I think this would be quite useful and implementable on
constrained devices if they would otherwise use mDNS and DNSSEC.

General remarks
===============

* From the intruduction (that reads more like this being a pure optimization
  over mDNS) to when SRP is explained at the start of section 3 to have its
  registrar "most likely an authoritative DNS server", I'm missing how this
  would be used on typical home routers. As the "Other discovery mechanisms"
  sentence doesn't sound like there'd be big plans, so is this expected to be
  usable there at all?

This document doesn't try to solve this problem. I'd like to see SRP in home routers, but right now we don't have a spec that says how to do it. This is work that the DNSSD working group has in charter and is in fact working on, e.g. in draft-ietf-dnssd-advertising-proxy.
 
* "and therefore we do not suggest a specific mechanism here": I think it's
  helpful to have some example here. Yes, an example runs the risk of narrowing
  the reader's mindset, but left to their own devices they might start
  imagining something for sake of a coherent picture that is just as narrowing
  but also "wrong". Is there any WIP document that could be informally
  referenced?

We could reference the Thread specification, but adding a reference to that is problematic since I am not sure how durable the link would be. Also, you have to sign a license agreement to download it, which seems like not something we want readers of IETF documents to have to do. I think leaving this up to the specific IoT ecosystem is pretty normal.

* I'm curious as to why the instructions are described in such detail with all
  their validity and combination constraints. Would it not be easier to
  describe the equivalent post-conditions? Are implementations indeed simpler
  or more secure when using just the valid combinations, as compared to
  processing any valid update (composed of the supported RRs)?

Yes, that's why we did that. We wanted to provide a similar level of trustworthiness to mDNS. mDNS isn't extremely trustworthy, but it's difficult to mount an mDNS attack other than from the local network link.
 
Concerning IoT devices
======================

* 3.2.5.5.1 Removing all published services: It says "retransmits its most
  recent update". Especially with UDP based updates (but also with terminating
  TCP connections), a host may not know whether the most recent change it
  performed has been completed or not. Thus, there can be disagreement between
  what the requestor and the registrar perceive as the most recent update. 

  Is there a sufficient criterion for matching that can be described, and is
  that invariant over all allowed operations? If not, how can a requestor
  (especially a constrained one that can not keep a list of possible latest
  server states) be sure to produce an acceptable deletion request?

This is discussed in 3.2.5.5.1. Removing all published services. Such a device would just remove all services. That's what Matter devices to today.
 
Security
========

* 3.1.3 hints that the constrained variant is prone to attacks the full-featurd
  one avoids -- after stating that constrained networks *typically* have a more
  restrictive joining policy.

  If the attacks can not be mitigated differently, I'd expect that there would
  be at least a firm requirement that the constrained version can only be
  enabled on networks with particular described characteristics. The current
  security considerations mention source address filtration, but neither
  mandate it for constrained mode, nor describe alternatives.

This is discussed in 6.4. Security of local service discovery
 
* 6.2 SRP Registrar Authentication could be more explicit in the attacks that
  are thus possible -- MITM attacks, where the SRP registrations are forwarded
  with a changed KEY and correspondingly altered signatures.

We are not trying to provide any more protection against on-link attacks than mDNS does. An MiTM attack as you describe would require controlling the network infrastructure in some way, and we discuss that in 6.4. Security of local service discovery. 

* It appears that there is no means for requestor to roll over its key (there
  is only up to one Add KEY RR, and it must be the one used to sign). Key
  roll-overs would happen either if the host updates its set of supported
  algorithms, or after a suspected compromise (eg. after going to a firmware
  version that closes a vulnerability). It would also help with the privacy
  considerations when not mitigated by hiding the KEY server-side.

The sec-dir review did make the point that the level of security of the key is not sufficient for other uses because of this, and the document now recommends against this sort of key re-use. For the level of security SRP provides, key roll-over will happen organically—the device can remove the old key and register a new key. If the key has actually been compromised, an attack on the ownership of the name can occur at this point; such attacks can also occur at any point when the name has expired. If such an attack occurs, the SRP client will see this as a name conflict, and will choose a new name.

 I don't have any specific document updates based on this review yet, but I'm pretty sure that you aren't the only person who raised these issues, and I'm pretty sure that some text was proposed in a reply to one of the DISCUSS comments that addresses this. I will try to remember to update you with that information when I'm done reviewing all the comments.
-- 
last-call mailing list
last-call@xxxxxxxx
https://www.ietf.org/mailman/listinfo/last-call

[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Mhonarc]     [Fedora Users]

  Powered by Linux