On 11/20/23 6:53 AM, Andy Schroder wrote:

- I would omit suggesting to use DoH from the spec. DoH seems a bit centralized to me and that's up to the client to decide what to do. DNS itself is a hierarchically distributed system, so there is redundancy built into it (which has its flaw at the root nameserver / ICANN level) and it seems to me like DoH is taking much of that distributed design away. It seems like if you are concerned about your ISP snooping your traffic, you should use a tunnel so that your traffic is obfuscated that way, that way things are done at the IP level and not way up at the HTTPS level. Are you resorting to DoH because many ISP block traffic for DNSSEC records traffic through their networks? Either way, how you query DNS seems like that should be left up to the client and not really part of the spec.

It is, but its worth mentioning in large part because almost certainly ~all implementations will use it. While I agree that it'd be very nice to not use it, in order to do so clients would need to (a) actually be able to query TXT records, which isn't in standard operating system libraries, so would probably mean DoH to 127.0.0.53 or so, (b) trust the resolver's DNSSEC validation, which means having some confidence its local, and not a coffee shop/etc.

Given the level of trust you have to have here in the DNS resolution, its almost certainly best to cross-validate with at least multiple DoH services, unless you are validating the DNSSEC chain yourself (which I'd really strongly prefer as the best solution here, but I'm unaware of any open source code to do so).

delv, part of bind9, does recursive DNSSEC validation locally: https://manpages.ubuntu.com/manpages/jammy/en/man1/delv.1.html

Sadly this doesn't really solve the issue. Lightning nodes need to be able to get a DNSSEC tree in a cross-platform way (which "just call delv" is not) ideally without relying on sending UDP directly at all. What this really means is that we'll eventually want to use the RFC 9102 CHAIN serialization format and put that in the node_announcement, but to do that we need some kind of (cross-platform library) client software which can take a serialized CHAIN and validate it. I'm unaware of any such software, though in theory it shouldn't be that hard to write.

Matt
_______________________________________________
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev

Reply via email to