Experimentele ondersteuning voor X25519Kyber768 toegevoegd aan dns4all.eu

Experimenteren met post-kwantumcryptografie binnen het DNS

Concept voor kwantum-encryptie in de vorm van een neongekleurde gedigitaliseerd hangslot in een futuristische omgeving.

De oorspronkelijke blog is Engelstalig, dit is de Nederlandse vertaling ervan.

SIDN Labs experimenteert met post-kwantumcryptografie (PQC) om het DNS te beschermen tegen toekomstige aanvallen die worden uitgevoerd met kwantumcomputers. Hoewel de huidige kwantumcomputers niet in staat lijken om de bestaande cryptografie te kraken, zullen ergens in de toekomst meer geavanceerde kwantumcomputers dat waarschijnlijk wel kunnen. We besloten daarom dat het verstandig zou zijn om gestandaardiseerde en voorgedragen PQC-algoritmen in verschillende onderdelen van het DNS te evalueren.

Omdat Google ondersteuning voor X25519Kyber768 heeft toegevoegd aan de TLS-implementaties van zijn browsers Chrome en Chromium, voerden we een experiment uit om te zien of het mogelijk is om die techniek te ondersteunen op onze DoH- en DoT-servers (waarbij DoH staat voor DNS-over-HTTPS en DoT voor DNS-over-TLS).

TLS beschermen

Momenteel worden de meeste gegevens die je via internet verstuurt beschermd met behulp van TLS. TLS maakt gebruik van gedeelde geheimen die zijn afgesproken (tussen client en server) via het ECDH-protocol (Elliptic Curve Diffie–Hellman). ECDH beschikt over verschillende functies voor curves, bijvoorbeeld het veelgebruikte X25519. X25519 en andere Diffie-Hellman-functies gebaseerd op het 'discrete logaritme'-probleem zijn kwetsbaar voor toekomstige kwantumaanvallen.

Hoewel zulke kwantumaanvallen voorlopig nog lang niet aan de orde zijn, zijn experts nu al nieuwe cryptografische protocollen aan het ontwikkelen om je gegevens te beschermen wanneer deze aanvallen in de toekomst wel mogelijk worden. Aangezien post-kwantumcryptografische technieken betrekkelijk nieuw zijn, worden ze nog steeds uitgebreid getest en hun beveiligingseigenschappen steeds opnieuw beoordeeld, zoals in de challenges van NIST. De kans bestaat dus dat zo'n algoritme tijdens de beoordelingsfase wordt gekraakt of onveilig wordt verklaard. Dit maakt het gebruik ervan in productiesystemen minder aantrekkelijk.

Als echter gebruik wordt gemaakt van een hybride methode zoals X25519Kyber768, moet een aanvaller zowel Kyber768 als X25519 te slim af zijn om aan de geheime sleutel te komen en verder verkeer af te luisteren. Het idee achter hybride methoden is dat als de (betrekkelijk onbeproefde) Kyber768-techniek voor sleuteluitwisseling in de toekomst wordt gekraakt, het gedeelde geheim nog steeds beschermd wordt door de state-of-the-art X25519-functie. De hybride aanpak zou je gegevens moeten beschermen tegen huidige afluisterpraktijken en toekomstige decryptie-aanvallen zonder dat dit ten koste gaat van de veiligheid.

Een gedetailleerde beschrijving van hoe TLS wordt beschermd door het X25519Kyber768-algoritme is te vinden in 2 uitstekende Cloudflare-blogs.

dns4all.eu versterken met X25519Kyber768

Ons anycasttestbed en de DoH- en DoT-resolvers van dns4all.eu behoren nu tot de eerste resolvers die X25519Kyber768 ondersteunen. DoH en DoT voorkomen al dat afluisteraars je DNS-verkeer kunnen monitoren en X25519Kyber768 voegt daar bescherming tegen 'harvest now, decrypt later'-aanvallen aan toe.

Onze resolvers maken gebruik van de experimentele liboqs-bibliotheek en oqsprovider voor OpenSSL 3.0 (en hoger) om ondersteuning voor X25519Kyber768 aan onze resolvers toe te voegen.

X25519Kyber768 inschakelen in je browser en dns4all.eu gebruiken als resolver

Als je wilt experimenteren met het gebruik van een DNS-resolver die X25519Kyber768 ondersteunt, kun je dat in een Chromium-browser doen door de browser te configureren voor gebruik van onze DNS-resolver. Daarvoor ga je als volgt te werk. Ga in je Chromium-browser naar chrome://flags/ en zorg dat #enable-tls13-kyber is ingeschakeld. Op het moment van schrijven is deze optie beschikbaar in browsers die zijn gebaseerd op Chromium 115, zoals de nieuwste Google Chrome en Brave en Opera. We hebben echter nog geen X25519Kyber768-ondersteuning kunnen vinden in Safari of Microsoft Edge.

dns4all.eu is een experimentele DNS-resolver op ons anycasttestbed en we registreren geen persoonsgegevens. Om in Chromium dns4all.eu te configureren als de DNS-provider, ga je naar Settings -> Privacy and security -> Security -> Use secure DNS en selecteer je Customised. Vervolgens typ je https://doh.dns4all.eu/dns-query in het onderstaande veld. Houd er rekening mee dat deze instelling in andere Chromium-browsers ergens anders kan staan.

Om te controleren of de verbinding beveiligd is, kun je, zoals hieronder wordt weergegeven, naar https://doh.dns4all.eu/ gaan, daar het tabblad Security van de ontwikkelaarstools openen en zoeken naar X25519Kyber768Draft00.

Screenshot van dns4all.eu

Conclusie

Aangezien SIDN Labs doorgaat met het experimenteren met PQC-algoritmen, zullen er meer blogs volgen waarin we vertellen over onze ervaringen met het toepassen van PQC op andere onderdelen van het DNS. Als je meer wilt weten over dit onderwerp of op dit vlak met ons wilt samenwerken, kun je contact met ons opnemen via sidnlabs@sidn.nl.