One quick question though - After taking a quick skim of it the list seems to be extremely 'Western-Centric' (reference link https://www.internic.net/domain/named.root)
[0] Original DNS RFC1035 https://datatracker.ietf.org/doc/html/rfc1035 (1987) [1] Somewhat cheekily as the inventor of DNS has a Greek surname. https://en.wikipedia.org/wiki/Paul_Mockapetris [2] 2000+ years ago and mature enough to have QoS+max-TTL/hop: http://libgen.rs/scimag/10.1163%2F9789004292123 (pp17-48) + where I write this. [3] Evidenced to 9th century BC https://www.ucl.ac.uk/sargon/essentials/governors/thekingsro... [4] Start by fixing https://en.wikipedia.org/wiki/Timeline_of_postal_history
And yet, none of these other regions and cultures actually did invent it, and thus it remains a Western invention.
It's like "technology" being used to describe a bash script, or "invention" used to describe a standard algorithm.
Alternatively, you can maintain the NSes for all the TLDs you are particularly interested in, and alert yourself if they change to something you don't recognize.
Finally, keep in mind that whatever you do, you need to have multiple vantage points to the internet. There's not a lot stopping your ISP from not delivering you to the right host when you try to talk to it. E.g. your ISP can fake the DNS responses.
I‘m curious to see your evidence on that or which future state you would see as a more fortunate one.
A lot of people are running recursive resolvers at home (like pi-hole stuff, or most people running some custom openwrt router/modem). I'm running one on my laptop (my resolver is localhost) and it works great.
> After taking a quick skim of it the list seems to be extremely 'Western-Centric'
It is, but that's what the internet is. But by running your own recursive resolver you can control your cache and a lot of the data doesn't change often. If you're extra paranoid you can cache the record data (or even archive the history) for ccTLD (or even all TLDs). For stuff (domains) you're interested in you can also hard-code or otherwise program "non-standard" ways to resolve the ips (by somehow populating a local database that overrides recursive resolution), like pi-hole/safebrowsing blocklists, stuff from institutions or CDNs you trust.
Otherwise, you could spin up your recursive resolver on your cloud, VPS, or other hosting provider of choice, and then use that.
But at least it is detectable thanks to NSEC and NSEC3 records.
They can easily manipulate TCP as well. Unless you establish an authenticated session like TLS, TCP can be mitm-ed easily.
But someone can see it, but you can rotate upstream resolvers to split requests if you have to.
Source: I'm running Unbound on my notebook, I'm actually queried the stats for some heated discussion on reddit.
For example my current stats_noreset:
histogram.000000.000512.to.000000.001024=17
histogram.000000.001024.to.000000.002048=33
histogram.000000.002048.to.000000.004096=251
histogram.000000.004096.to.000000.008192=509
histogram.000000.008192.to.000000.016384=1161
histogram.000000.016384.to.000000.032768=1891
histogram.000000.032768.to.000000.065536=2611
histogram.000000.065536.to.000000.131072=3197
histogram.000000.131072.to.000000.262144=2502
histogram.000000.262144.to.000000.524288=1547
histogram.000000.524288.to.000001.000000=857
histogram.000001.000000.to.000002.000000=121
histogram.000002.000000.to.000004.000000=70
histogram.000004.000000.to.000008.000000=22
histogram.000008.000000.to.000016.000000=441
histogram.000016.000000.to.000032.000000=80
As you can see most of queries are completed in a way below 500ms. Adding another 20-40ms on top that doesn't change anything, because caching is a thing and with Unbound you can even ask to actually refresh the expiring records, so you would be served a fresh one from the cache every time, though I never bothered with it, it works fine even without it.