De volgende versie van Firefox ondersteunt een nieuw protocol dat de handshake voor het opzetten van een beveiligde verbinding met websites moet beschermen. Dat heeft Mozilla in een blogposting aangekondigd. Het TLS-protocol wordt gebruikt voor het opzetten van een beveiligde verbinding tussen websites en bezoekers.
Server Name Indication (SNI) is een TLS-extensie waarbij de client aan het begin van het opzetten van de beveiligde verbinding laat weten welke host hij probeert te bezoeken. Dit zorgt ervoor dat een server meerdere https-sites op hetzelfde adres kan hosten, zonder dat al die websites hetzelfde certificaat gebruiken. De client geeft namelijk aan welke website hij wil bezoeken.
Zonder SNI zou de server niet weten welk certificaat hij aan de client moet aanbieden. Een probleem is dat bijvoorbeeld een internetprovider het onversleutelde bericht met daarin de SNI kan onderscheppen en zo kan zien naar welke website de gebruiker wil gaan. Partijen die internetverkeer willen censureren maken hiervan gebruik om bepaalde websites te blokkeren.
Om dit te voorkomen werd Encrypted Server Name Indication (ESNI) bedacht, een uitbreiding van TLS 1.3. ESNI voorkomt dat een provider kan zien welke website de gebruiker wil bezoeken. De server publiceert hiervoor een public key in een dns-record, die voor het opzetten van de verbinding door de client wordt opgehaald. De client vervangt de SNI-extensie met een Encrypted SNI-extensie. Dit is het originele veld, alleen dan versleuteld met een symmetrische sleutel afgeleid van de eerder opgehaalde public key van de server.
De server, die de private key bezit, kan de symmetrische encryptiesleutel afleiden, en zo de Encrypted SNI-extensie ontsleutelen. Aangezien alleen de client en de server waar verbinding mee wordt gemaakt de encryptiesleutel kunnen afleiden, is de Encrypted SNI niet door derde partijen te ontsleutelen of benaderen. Uit nader onderzoek blijkt dat ESNI in bepaalde scenario's geen volledige bescherming biedt en er praktische problemen zijn bij de uitrol ervan.
Om de tekortkomingen van ESNI te verhelpen is besloten om niet alleen de SNI te versleutelen maar de volledige handshake en zo de metadata te beschermen. Daarom is ook de naam veranderd in ECH (Encrypted Client Hello). Net als ESNI maakt ECH gebruik van een public key die via dns wordt verspreid. Waar ESNI hiervoor een TXT-record gebruikt, doet ECH dit via een HTTPSSVC-record.
Daarnaast maakt ECH gebruik van twee Client Hello messages: de ClientHelloOuter, die onversleuteld wordt verstuurd, en de ClientHelloInner, die versleuteld is en als een extensie van de ClientHelloOuter wordt verstuurd. De server zet de handshake op met één van deze ClientHellos. Wanneer de decryptie succesvol is gaat de server verder met de "Inner" Client Hello als basis voor de TLS-verbinding. Dit moet de privacy van gebruikers verder beschermen, aldus Mozilla.
In de volgende versie van Firefox zal Mozilla ESNI vervangen door ECH. Gebruikers krijgen het advies om te wachten totdat ECH standaard in de browser wordt ingeschakeld, maar voor wie niet wil wachten is dit al in de Firefox-opties in te stellen. Daarnaast moet de server waarmee verbinding wordt gemaakt ECH ondersteunen. Volgens Mozilla is ECH een spannende en robuuste evolutie van ESNI en zal Firefox het protocol binnenkort gaan ondersteunen.
Deze posting is gelocked. Reageren is niet meer mogelijk.