Die Evolution der SNI-Verschlüsselung: Von ESNI zu ECH
Die Sicherheit im Internet hat sich in den letzten Jahren rasant weiterentwickelt, und ein wichtiger Schritt in diese Richtung betrifft die Verschlüsselung des Server Name Indication (SNI) im TLS-Handshake. SNI ist ein entscheidender Teil des TLS-Protokolls, der es Servern ermöglicht, das angeforderte SSL/TLS-Zertifikat basierend auf dem Domainnamen zu identifizieren. Jedoch wurde SNI traditionell unverschlüsselt übertragen, was ein potenzielles Datenschutzrisiko darstellte, da es Angreifern ermöglichte, die Zieldomain einer Verbindung zu erfahren.
Um dieses Problem anzugehen, begann die Internet Engineering Task Force (IETF) im Jahr 2018 mit der Entwicklung von Encrypted SNI (ESNI), einer Technologie, die es ermöglicht, die SNI im Client Hello verschlüsselt zu übertragen. Dies erfolgt durch die Verschlüsselung des SNI mit dem Public Key des Servers, der über DNS bereitgestellt wird (z.B. _esni.example.com). Jedoch können bei der Schlüsselverteilung Probleme auftreten, wenn beispielsweise eine Webseite über mehrere Content Delivery Networks (CDNs) bereitgestellt wird.
Um diese Probleme anzugehen und die Sicherheit weiter zu verbessern, erfolgte in 2020 der Übergang von ESNI zu Encrypted Client Hello (ECH). Im Gegensatz zu ESNI verschlüsselt ECH nicht nur die SNI, sondern das gesamte Client Hello. Auch bei ECH wird der Schlüssel über DNS verteilt, jedoch wird hierfür der Service Binding (SVCB) anstelle des "_esni" Präfix verwendet.
Die Arbeiten an ECH in der IETF laufen noch, aber bereits jetzt unterstützen einige Anbieter und Browser sowohl ESNI als auch ECH. Es ist jedoch zu beachten, dass die effektive Nutzung dieser Technologien von einem verschlüsselten DNS (etwa DoT) abhängt. Ohne verschlüsselten DNS kann die Namensauflösung weiterhin die Zieldomain verraten, was die Sicherheitsvorteile von ESNI und ECH einschränkt.
Insgesamt markiert der Übergang von ESNI zu ECH einen bedeutenden Fortschritt in Bezug auf die Privatsphäre und Sicherheit im Internet. Durch die Verschlüsselung des gesamten TLS-Handshakes wird die Vertraulichkeit der Kommunikation zwischen Client und Server erheblich verbessert und das Risiko von Angriffen und Datenlecks verringert.