Niet deze weer, op al die punten is wat aan te merken.
All secure crypto on the Internet assumes that the DNS lookup from names to IP addresses are insecure.
Al die systemen hebben dus nog een aanvulling nodig om daar mee om te gaan. Dat die systemen nu allemaal een gat laten is geen reden om dat gat niet op te lossen.
But domain-validated certificates remain insecure, because SMTP is itself insecure.
De manier om SMTP wel secure te maken is DNSSEC en DANE gebruiken. De auteur van dit artikel ziet dat blijkbaar niet en denkt dat het onoplosbaar is.
Whichever system replaces CAs needs to make TLS more resilient to government attacks.
Iedere regering van de wereld heeft wel een eigen CA waarmee ze certificaten voor ieder TLD in de wereld kunnen afgeven. Via DNSSEC/DANE kunnen ze dat ook, als ze de rootservers weten de manipuleren en dat is niet zo waarschijnlijk, zonder medewerking van de rest van de wereld lukt het je in ieder geval niet. Als je het toch doet dan heeft iedere DNS(SEC)-client het onmiddelijk door.
DNSSEC/DANE ís betere bestand tegen manipulatie dan het huidige CA systeem. Het probleem is niet opgelost maar het wordt kleiner, niet groter.
Sterker nog, zowel in de CA-wereld als in de DANE/DNSSEC wereld staat het je altijd vrij om je eigen CA op te zetten of je eigen DNS-trust-anchor en die te delen met iedereen die het wil.
The original DNSSEC design is two decades old; the first drafts I can find are from 1994. Real-world DNSSEC therefore relies on RSA with PKCS1v15 padding. The deployed system is littered with 1024-bit keys.
Suggestieve onzin van iemand die het niet wil begrip. De cryptografie in DNSSEC is modulair en vervangbaar. De gebruikte techniek wordt aangepast aan het doel en de stand van de techniek. Ooit gebruikte DNSSEC inderdaad een 1024 bit RSA key voor de root maar die is al vervangen. Zo is het systeem ontworpen. Precies hetzelfde argument kun je tegen het CA-systeem gebruiken, daar waren 1024 bits keys tot een jaar geleden ook heel normaal.
Met 1024 bit keys is op zich niks mis. Iedere keylengte is te kraken als je maar genoeg tijd neemt. De kunst is de lengte zo kiezen dat de sleutel niet te kraken is binnen de verwachte levensduur. Sleutels die heel lang veilig moeten zijn moeten daarom een hoge sleutellengte hebben. Sleutels die maar kort gebruikt worden en/of snel vervangen worden kunnen met een kortere sleuttellengte toe. 1024 bits keys zoals ze nu door DNSSEC gebruikt worden zijn typisch maar een paar dagen of weken geldig. Het is nog niemand gelukt om een 1024 bit key te bruteforcen, laat staan in een paar dagen tijd. Als we over een jaar of 10 zo ver zijn dat we dat wel kunnen dan hebben we die sleutels al lang weer vervangen.
Trouble is, software must handle those cases. End-users excoriate browser vendors for making it harder to “click through” certificate warnings, which are common. So frustrating were these warnings that the authors of curl egregiously broke their own API to appease programmers. So there’s no reason to believe that hard failures for DNS lookups will be acceptable to users.
Eindgebruikers vinden beveiliging nooit leuk, dat is waar, daar valt niet veel aan te doen. Ondanks de verzekering van deze auteur dat niemand het zou accepteren zijn browsers tegenwoordig wel degelijk bezig met het steeds moeilijker te maken om ongeldige SSL-certificaten toch te accepteren. Als het voor HTTPS met CA's kan, dan kan het ook voor HTTPS zonder CA's.
DNSSEC is Expensive To Deploy
Dat is waar maar ook dat geldt tot op zekere hoogte voor iedere vorm van beveiliging. Je geeft geld uit om zaken complexer te maken en je hoopt dat je er nooit gebruik van hoeft te maken.
Misschien dat DNSSEC duurder is dan het huidige CA systeem, misschien niet. Technieken als DANE bieden namelijk weer de mogelijkheid om dingen zelf (gratis) te doen waar je voorheen voor moest betalen, zoals het aanvragen van een certificaat. Niet alleen kost zo'n certificaat geld, het kost ook tijd. Mensen en systemen die met elkaar moeten communiceren zijn altijd relatief duur. DANE/DNSSEC geeft de mogelijkheid om alles zelf en lokaal te doen, dat spaart weer overhead. Met DNSSEC/DANE kun je 1000 certificaten per seconde aanmaken, gebruiken en weer afdanken zonder ooit een cent aan een CA te betalen. Technisch gezien kan dat nu al maar bijna niemand (behalve cloudflare) doet het omdat de overhead gigantisch is.
DNSSEC is Incomplete (...). In fact, it does nothing for any of the “last mile” of DNS lookups: the link between software and DNS servers. It’s a server-to-server protocol.
Nog meer misleidende en onwillende informatie. De term "server" betekent niet dat je een 25.000 euro kostend apparaat in je kelder moet zetten. Iedere PC draait tegenwoordig "server" applicaties. SMTP is ook een "server to server" protocol, en toch gebruikt iedereen het dagelijks om z'n mail mee te versturen. Het is waar dat betere integratie tussen resolver en applicatie wenselijk is, maar dat staat helemaal los van het DNSSEC protocol. De bestaande DNS-api's bieden weinige ruimte aan applicaties maar dat is helemaal op te lossen met een nieuwe API. Het is de gewoonste zaak van de wereld dat oude software geen ondersteuning heeft voor nieuwe protocollen. Het is niet meer dan een kwestie van tijd voor applicaties wel gebruik gaan maken van de nieuwe mogelijkheden.
Als je daar niet op wil wachten dan is het nu ook al prima mogelijk om het systeem veilig te draaien. Je moet alleen zorgen dat je veilig met je DNS-resolver kan praten en dat probleem is al jaren geleden opgelost. Het is niet nodig dat DNSSEC daar ook nog iets voor gaat verzinnen.
But DNSSEC is designed for offline signers; it doesn’t encrypt on the fly.
DNSESC is ontworpen om daar compatible mee te zijn maar online signeren is ook mogelijk. Bind en PowerDNS doen het, dat bewijst dat het mogelijk is.
Dat is inderdaad niet compatible met NSEC3 maar als je dat wil dan is dat ook geen probleem. Dat is zoiets als klagen dat gebakken klei niet meer kneedbaar is.
For everyone who accepts the default, every hostname in their DNS zones are public information.
Wederom toont de auteur een enorm kennisgat. Welke systemen hebben dat dan als default?
Kijk ook even naar wat we nu in praktijk gebruiken:
- .com -> nsec3
- .org >- nsec3
- .net -> nsec3
- .nl -> nsec3
- .be -> nsec3
- .uk -> nsec3
Nu geen onzin meer verkopen over onveilige of onwerkbare defaults.
A casual look at the last 20 years of security history backs this up: effective security is almost invariably application-level and receives no real support from the network itself.
Dat klopt maar de auteur heeft oogkleppen op waardoor hij weigert te zien dat DNSSEC ook prima end-to-end werkt. Alle informatie is beschikbaar aan de end-points om te verwerken. Je kan wel zeggen dat DNS getrapt is, maar dat is het huidige CA systeem ook. Daar moet je ook intermediate certificaten controleren om tussenliggende stappen te controleren. (Het is daar iets makkelijker omdat we een mechanisme hebben om die intermediates mee te geven met je certificaat, maar een vergelijkbaar mechanisme kun je ook bij DNSSEC toe passen).
Daarbij moet je die tussenliggende stappen toch nemen om DNS te laten werken, of je ze nu controleert of niet.