Het internet is al lang niet meer de veilige haven waar iedereen elkaar kende en waar beveiliging niet zo belangrijk was. Er worden continu aanvallen uitgevoerd, door criminelen én overheden. Bij Antagonist hebben we al vele artikelen geschreven over beveiligingsmaatregelen die we hebben getroffen. We vinden het immers belangrijk om het leven op het internet zo veilig mogelijk te maken. Zodoende kunnen we sinds december 2014 daar ook, met volle trots, DNSSEC aan toevoegen!
Goed nieuws dus dat tevens door SIDN, de beheerder en toezichthouder van het .nl-domein, werd onderstreept toen de twee miljoenste .nl-domeinnaam werd ondertekend. Hieronder de grafiek, waarin je aan het einde (rond december) een piekje ziet. Dat was toen onder andere Antagonist voor een heel groot aantal domeinnamen DNSSEC inschakelde.
Goed, tijd om uit te leggen waarom DNSSEC gaaf is, en waarom wij dit stukje beveiliging in onze structuur hebben geïmplementeerd. Het zal een relatief technisch verhaal worden, want DNS en de beveiliging daarvan is een nou eenmaal een technische aangelegenheid. Voor de niet-technische mensen zal ik het hieronder kort samenvatten.
DNS behoort tot de infrastructuur van het internet en dat blijft groeien. De last op de infrastructuur wordt daardoor groter. Om gevaarlijke situaties te voorkomen, moet het veiliger. Om hieraan bij te dragen, zorgen wij dat jij, als klant van Antagonist, zoveel mogelijk gebruikmaakt van een veilige infrastructuur en dus ook DNSSEC.
Toch merk je als klant hier meestal weinig van. Het is immers onze taak en verantwoording. Echter, er is één groot belang dat we beiden delen, namelijk een veilig internet. Het is daarom goed om af en toe even stil te staan bij deze ontwikkelingen, ook al vinden ze vooral ‘onder de motorkap’ plaats.
Wat is DNS?
Het Domain Name System wordt vaak omschreven als het telefoonboek van het internet. Het zorgt ervoor dat jij www.antagonist.nl gebruikt, in plaats van 195.211.73.208 (IPv4) of 2a03:3c00:a001:7005::1 (IPv6). In tegenstelling tot een papieren telefoonboek, kan DNS zeer snel worden aangepast zonder dat de gebruiker er iets van hoeft te merken. Gelukkig heeft SIDN het goed uitgelegd en er tevens een filmpje van gemaakt.
Het is belangrijk om te weten dat DNS hiërarchisch is. Dit betekent dat er niet één centrale organisatie is die het onderhoudt, maar vele organisaties samen. Zo beheert ICANN de root zone. Daaronder staan de Top-Level Domains (TLD). Vanaf daar zijn er meerdere smaakjes, zoals country code Top-Level Domains (ccTLD). Domeinnamen met .nl (technisch nl.) vallen hier bijvoorbeeld onder. Vervolgens zijn er ook een heleboel generic Top-Level Domains (gTLD). Hiervan is .com het bekendste voorbeeld.
Om het nog iets ingewikkelder te maken, bestaan er ook IDN ccTLD (of ccIDN) en infrastructuur TLD’s, maar dit is minder relevant om te weten. Elke TLD kan door een andere organisatie worden beheerd. Zo zorgt SIDN bijvoorbeeld dat .nl online blijft, terwijl Verisign die rol voor .com vervult. Uiteraard heeft Wikipedia een complete lijst met alle TLD’s, waarop ik .su (Soviet Union) altijd een leuke vind.
Onder de TLD’s staat het Second-Level Domain (SLD). Dit zijn de domeinen die een organisatie als Antagonist afneemt, al dan niet in opdracht van hun klanten. Daarmee is het ook direct duidelijk dat DNS aan de basis staat van al onze producten en hoe belangrijk het is dat het blijft werken.
Waar komt DNSSEC vandaan?
Hoewel we niet in de historie van DNS zijn gedoken, is het goed om te weten dat veiligheid op het internet allemaal achteraf is geïmplementeerd. Bij HTTP (het web) kwam die mogelijk ‘al’ na enkele jaren: HTTPS. Daar hebben we ook eerder over geschreven.
Verder heeft e-mail zo’n 15 jaar nodig gehad, en pas na de onthullingen van Edward Snowden zien we dat het breed wordt toegepast. Omdat zonder DNS het web en e-mail veel minder bruikbaar zijn (of misschien helemaal niet), is het belangrijk om af te vragen hoe ook daar zit het met de veiligheid.
Met DNS is het verhaal vergelijkbaar. Begin jaren 90 werd het duidelijk dat DNS serieuze veiligheidsproblemen bevatte. In 1999 kwam er een voorstel om DNSSEC uit te rollen, maar dat bleek onbruikbaar voor grote netwerken. In 2005 kwam er een vernieuwd voorstel in de vorm van DNSSEC-bis. Dit vormt de basis van de huidige uitrol, hoewel er nog voldoende discussies zijn over details en implementatie.
Met de vernieuwde standaard kon de uitrol beginnen. Omdat DNS hiërarchisch is, werd begonnen bij het begin (logisch). Zodoende is sinds 15 juli 2010 de root zone ondertekend. Daarna was het aan de top level domains en vanaf 15 mei 2012 zorgt SIDN dat .nl beveiligd wordt. Na zorgvuldig testen, bieden we het nu ook bij Antagonist standaard aan. Een proces dat we heel voorzichtig, stap voor stap hebben doorlopen. Een foutje in het grote telefoonboek kan immers leiden tot onvindbaarheid van vele websites.
Leuk dat DNSSEC, maar wat is het?
Dit kan dnssec.nl beter uitleggen, maar de korte samenvatting is dat je met DNS niet weet of een antwoord te vertrouwen is of niet. Het is als of iemand je een briefje in de hand drukt met het telefoonnummer van de bank. DNSSEC heeft als doel om alle antwoorden te ondertekenen, en dat je kunt controleren of die handtekening klopt. Het is dus geen versleuteling zoals bij HTTPS waarbij het verkeer onleesbaar is voor een derde partij.
Doordat het ondertekend is, kun je controleren of het onderweg niet is veranderd door een derde partij (DNS spoofing). Dit is relatief makkelijk op publieke wifi-hotspots en is daarmee een risico voor bijvoorbeeld internetbankieren en online winkelen. Alleen HTTPS is daarom niet voldoende.
Is het met DNSSEC helemaal veilig?
Nee, zo simpel is het niet. Het tekenen van domeinen gaat relatief traag. Op het moment van schrijven zijn 2,25 miljoen van de 5,54 miljoen .nl-domeinen getekend. Daarmee is .nl in absolute aantallen de grootste. Dit is grotendeels te danken aan de vele moeite die SIDN erin heeft gestoken. Hoewel banken terughoudend zijn met het invoeren van DNSSEC, is het goede nieuws dat onze overheid de ‘Pas toe of leg uit’-regeling toepast, evenals andere overheden die soortgelijke regels hebben.
Daarnaast heb ik vooral beschreven hoe we zorgen dat we handtekeningen krijgen, maar die moeten vervolgens gecontroleerd worden en dat verloopt moeizaam. Wereldwijd wordt het op 8% geschat, maar dat varieert sterk. Google DNS valideert bijvoorbeeld wel, maar vrijwel alle providers doen het nog niet. Het is dus een hele operatie.
Het probleem wordt versterkt, doordat gebruikers eigenlijk amper kunnen zien of ze wel of geen DNSSEC gebruiken. Dit komt doordat erin browsers, in tegenstelling tot HTTPS, geen onderscheid wordt gemaakt. Dat kun je verhelpen door een validator plugin te installeren. Echter, moet dit in principe in de basis zitten, want over veiligheid hoor je niet over na te hoeven denken.
Het zal dus nog wel even duren, voordat iedereen kan profiteren van DNSSEC. Dat komt mede door het gebruik van oude besturingssystemen en browsers. Zo kun je op de Chrome development mailing list zien dat we nog een lange weg te gaan hebben.
Maar waarom dan die moeite?
Omdat veiligheid steeds belangrijker wordt! We weten uit de geschiedenis dat een nieuwe standaard invoeren decennia kan duren (denk maar aan IPv6 wat ook al 20 jaar duurt en nog steeds weinig wordt gebruikt), dus uitstellen is geen optie. Persoonlijk vind ik het belangrijk voorop te lopen en mee te helpen aan een beter internet.
Door bij Antagonist DNSSEC te implementeren, dragen wij ons steentje bij. Ook maakt een veilige DNS-infrastructuur veel nieuws mogelijk. Denk bijvoorbeeld aan DANE, wat de beschikbaarheid en veiligheid van HTTPS verbetert, terwijl de kosten omlaag gaan. Het zijn interessante ontwikkelingen waar we hopelijk de komende jaren meer van gaan zien.
Tot slot
Op zoek naar meer kennis over domeinen of nieuwsgierig naar hoe de aanschaf van een domeinnaam precies in z’n werk gaat?
P.S. Wil je op de hoogte blijven van alle artikelen, updates, tips en trucs die verschijnen op ons blog? Dat kan! Rechts bovenin via RSS, e-mail, het liken op Facebook, het +1’en op Google+ of het volgen op Twitter.
Als ik het goed begrijp, werkt DNSSEC (en DKIM) niet als je een andere DNS server kiest, buiten die van Antagonist.
Klopt dat nog steeds, en zijn er plannen om dit aan te passen?
Ik wil namelijk mijn sites via DNS van Cloudflare laten verlopen, vanwege specifieke optimalisaties (bijvoorveeld Amp Real DNS).
Bedankt voor je vraag, Rene! Als je voor een domeinnaam externe nameservers gebruikt, dan ondersteunen we daarvoor inderdaad geen DNSSEC (en dus DKIM en DANE). Vooral ten behoeve van het platformbeheer zijn er momenteel geen plannen om dit aan te passen. We begrijpen echter je wens. Wellicht dat dit verandert in de toekomst.
jammer. een specifieke oplossing voor cloudflare zou wel enorm gewaardeerd worden