Letsencrypt starts Multi Perspective Validation - Safari will only accept certificates with max lifetime of 13 months - Domainvalidierung von verschiedenen Perspektiven und Reduktion der maximalen Gültigkeit von Zertifikaten
Multi-Perspective Validation Improves Domain Validation Security
letsencrypt.orgAt Let’s Encrypt we’re always looking for ways to improve the security and integrity of the Web PKI. We’re proud to launch multi-perspective domain validation today because we believe it’s an important step forward for the domain validation process. To our knowledge we are the first CA to deploy multi-perspective validation at scale.
Zwei Meldungen, die eigentlich nichts miteinander zu tun haben. Aber doch zusammenhängen.
Letsencrypt bietet kostenlose Zertifikate, die über ein automatisiert nutzbares Protokoll, das "Automatic Certificate Management Environment" (ACME) beantragt, bestätigt und erstellt werden können.
Dazu ist es notwendig, daß der Server, der ein Zertifikat möchte, zunächst automatisiert eine neue Order erstellt. Dabei übermittelt er die Liste der Domainnamen, die im Zertifikat enthalten sein sollen.
Zu jedem Domainnamen gibt es eine Authorization: Der Server muß nachweisen, daß er diesen Domainnamen tatsächlich kontrolliert. Dafür gibt es derzeit drei verschiedene Möglichkeiten:
- Durch die Bereitstellung einer Datei mit einem bestimmten Namen und Inhalt (HTTP-Challenge)
- Durch die Bereitstellung eines DNS-TXT-Eintrags _acme-challenge.Domainname mit einem bestimmten Wert (DNS-Challenge)
- Durch die Bereitstellung eines geeigneten, selbst signierten Zertifikats mit dem Domainnamen (ALPN-Challenge).
Der Server wählt eine Möglichkeit aus und lädt sich ein Token herunter (ein langer, zufälliger Wert), der in der Challenge genutzt werden muß.
Dann stellt der Server den geforderten Inhalt bereit und meldet, welche Challenge geprüft werden soll.
Anschließend prüft Letsencrypt, ob diese Challenge erfüllt wurde. Wurden zu allen gewünschten Domainnamen die Challenges erfüllt, kann der Client einen Zertifikatsrequest hochladen und sich das signierte, 90 Tage gültige Zertifikat herunterladen.
Das Problem: Letsencrypt muß mit Nameservern kommunizieren, eventuell IP-Adressen ermitteln und die IP-Adressen kontaktieren. Auch jeder Browser, der eine Website abfragt, fragt in Wirklichkeit eine zuvor ermittelte IP-Adresse ab und schickt den Domainnamen als Hostheader mit. Bei diesen Anfragen wird das Border Gateway Protocol (BGP) genutzt, mit dem verschiedene Server und Router untereinander kommunizieren, um die Datenpakete richtig weiterzuleiten.
Das BGP ist ein sehr altes Protokoll. Es hat keinerlei Sicherheitsmechanismen. Ergebnis: Es gab bereits Fälle, in denen das Protokoll so manipuliert wurde, daß Anfragen "zum falschen Server" geschickt wurden. Und es gab eine Forschungsarbeit in Princeton, die zeigte, wie man das Protokoll gezielt attackieren kann.
Effekt: Kann sich ein Angreifer per Routing in den Datenverkehr zwischen Letsencrypt und dem Client einklinken, dann kann er die Prüfanfrage auf seine eigene Domain umleiten. Und erhält damit ein Zertifikat für die Domain.
Das Problem existiert auch bei gekauften Zertifikaten. Dort wird entweder auf vergleichbare Techniken gesetzt. Oder es wird eine Mail mit einem langen Bestätigungslink verschickt. Können Routing-Tabellen umgebogen werden, dann kann auch die Mail an einen anderen Empfänger gehen.
Letsencrypt hat deshalb zusammen mit den Princeton-Forschern eine Logik entwickelt, so daß die Überprüfung der Challenge nicht nur vom Letsencrypt-Datencenter, sondern zusätzlich von mehreren anderen Cloud-Servern erfolgt. Aktuell gibt es zusätzlich zum Hauptstandort drei verschiedene Cloud-Standorte. Die Überprüfung vom Hauptstandort und von zweien der Cloud-Standorte muß erfolgreich sein, damit die Challenge erfüllt wurde.
Ergebnis: Für einen erfolgreichen "Hack" müßte ein Angreifer nicht nur die Route zwischen Letsencryt und dem Server umbiegen. Er müßte zusätzlich die Routen von den anderen Cloud-Servern zum Client umbiegen. Etwas, das offenkundig deutlich schwieriger ist.
.
Multi-Perspective Validation Improves Domain Validation Security
https://letsencrypt.org/2020/02/19/multi-perspective-validation.html
.
> This makes the kind of attack described earlier more difficult because an attacker must successfully compromise three different network paths at the same time (the primary path from our data center, and at least two of the three remote paths). It also increases the likelihood that such an attack will be detected by the Internet topology community.
Drei verschiedene Netzwerkpfade gleichzeitig zu manipulieren ist schwieriger als nur einen.
---
Die zweite Meldung hat "eigentlich" damit nichts zu tun. Und hängt doch damit zusammen. Letsencrypt-Zertifikate sind nur 90 Tage gültig. Selbst wenn jemand ein Zertifikat bsp. gestohlen hat, kann er es maximal für diesen Zeitraum nutzen. Das ist eine deutliche Verbesserung gegenüber Zertifikaten, die gekauft, manuell beantragt, manuell bestätigt und manuell installiert werden. Weil dieser Prozess immer so umständlich war bzw. ist, gab es früher käufliche Zertifikate mit einer Laufzeit von 3 - 5 Jahren.
2018 konnte Google im zuständigen CA/Browser-Forum zwar durchsetzen, daß Zertifikate eine maximale Laufzeit von zwei Jahren haben. Im letzten Jahr scheiterte jedoch der Versuch von Google, eine Laufzeit von maximal einem Jahr durchzusetzen. Wesentlicher Grund: Diverse IT-Abteilungen hatten sich dagegen ausgesprochen, weil sie den erhöhten Aufwand fürchteten.
Nun hat Apple - einseitig - mitgeteilt, daß der Safari-Browser ab dem 01.09.2020 nach diesem Datum ausgestellte Zertifikate nur noch akzeptiert, falls diese eine Laufzeit von maximal 13 Monaten haben:
Position on 1-Year Certificates - Three, Two, One, Liftoff on One-Year TLS Certificates
https://www.digicert.com/position-on-1-year-certificates/
> At the CA/Browser (CA/B) Forum in Bratislava, Slovakia, this week, Apple announced that beginning Sept. 1, newly issued publicly trusted TLS certificates are valid for no longer than 398 days.
Also ein Jahr plus 32 bzw. 33 Tage, gut 13 Monate. Bereits installierte Zertifikate mit einer Gültigkeit von zwei Jahren werden weiterhin akzeptiert.
Die Folge ist klar: Spätestens ab dem 01.09.2020 dürfte kaum mehr jemand neue, gekaufte Zertifikate installieren, die zwei Jahre lang gültig sind. Da sonst kein Apple-Nutzer mehr die Domain aufrufen kann. Das "Zertifikat" werden Nutzer womöglich noch weiterhin für zwei Jahre kaufen. Aber dann wird der Zertifikatsanbieter nur ein einjähriges Zertifikat ausstellen und nach dieser Zeit ein zweites kostenlos bereitstellen.
Für Websites, die bereits Letsencrypt-Zertifikate nutzen, ist das völlig unrelevant. Die 90 Tage-Gültigkeit liegt weit unter den 398 Tagen.
Sprich: Wer noch keine Letsencrypt-Zertifikate mit Automatisierung nutzt, der hat nun zwei gewichtige Gründe, umzusteigen:
* Validierung von mehreren Perspektiven
* kein Problem mit Apple-Geräten ab dem 01.09.2020