Erste Einblicke: Die TLS-ClientHello-Permutation von Chrome in der Praxis
TLS-Fingerprinting ist eine von vielen Methoden zur Identifizierung von bösartigem Traffic für die Abwehr von Netzwerkangriffen und erfreut sich seit einem knappen Jahrzehnt großer Beliebtheit. Im Laufe der Jahre wurden zahlreiche TLS-Fingerprinting-Algorithmen zur Identifizierung von Clients und Servern entwickelt. Darüber haben wir bereits in einem früheren Blogpost berichtet.
Am 20. Januar hat Chrome ein Update veröffentlicht, mit dem sich das Profil eines der beliebtesten TLS-Client-Fingerprinting-Algorithmen, JA3, geändert hat. In diesem Post gehen wir auf diese Änderung und ihre Auswirkungen auf das Fastly Netzwerk ein.
TLS-Fingerprinting und das Chrome Update
Das Fingerprinting von TLS-Clients dient der Klassifizierung von Traffic und der Identifizierung von Netzwerkangriffen. Fingerprinting-Algorithmen für TLS-Clients beruhen in der Regel auf der Untersuchung von ClientHello-Nachrichten, um bestimmte Attribute wie die TLS-Version, die unterstützten Chiffren, elliptischen Kurven und Kurvenformate sowie die Liste der vom Client gesendeten TLS-Erweiterungen zu ermitteln. JA3 ist ein weit verbreiteter TLS-Fingerprinting-Standard, der von Forschern bei Salesforce entwickelt und von einer Reihe von kommerziellen und Open-Source-Tools übernommen wurde. Ausschlaggebend für diesen Blogpost ist aber, dass der JA3-Algorithmus die Reihenfolge der vom Client gesendeten TLS-Erweiterungen als Merkmal des erzeugten Fingerabdrucks verwendet. undefined
Ein kürzlich implementiertes Feature in Google Chrome ändert die TLS-Erweiterungen, die in der ClientHello-Nachricht gesendet werden, sodass bei jeder neuen Verbindung des Browsers ein anderer JA3-Fingerabdruck entsteht.
Diese Änderung wurde vorgenommen, um zu verhindern, dass Server eine bestimmte feste Reihenfolge von Erweiterungen erwarten. Eine solche feste Reihenfolge könnte Chrome nämlich daran hindern, künftige Änderungen an seiner TLS-Implementierung vorzunehmen, um das TLS-Ökosystem widerstandsfähiger zu machen. Wenn Sie bereits von TLS GREASE gehört haben, kommt Ihnen das vielleicht bekannt vor. Erwähnenswert ist auch, dass im RFC für TLS Version 1.3 festgelegt ist, dass Erweiterungen in beliebiger Reihenfolge gesendet werden können – mit Ausnahme des pre_shared_key, der, falls vorhanden, als letzte der Erweiterungen gesendet werden MUSS.
Da die Anzahl der möglichen Permutationen für TLS-Erweiterungen, die von Chrome gesendet werden, beinahe der Fakultät von 15 (etwa 10 hoch 12) entspricht, können wir davon ausgehen, dass jede Verbindung, die mit der Permutationsfunktion der TLS-ClientHello-Erweiterung hergestellt wird, praktisch einen einzigartigen JA3-Fingerabdruck besitzt.
Dieses Feature sollte ursprünglich in Chrome Version 110 veröffentlicht werden, scheint aber auch schon in den Versionen 108 und 109 vorhanden gewesen zu sein, kurz nachdem die Funktion standardmäßig im Quellcode von Chromium aktiviert wurde.
Unsere Beobachtungen
Der jüngste und häufigste JA3-Fingerprint von Chrome auf den meisten Plattformen vor dieser Änderung war cd08e31494f9531f560d64c695473da9
. Ab dem 20. Januar 2023 war zu beobachten, dass der prozentuale Anteil der Chrome Clients, die sich mit diesem Fingerabdruck mit dem Fastly Netzwerk verbanden (siehe die blaue Linie in der nachfolgenden Grafik), deutlich abnahm. Wir gehen davon aus, dass sich dieser Trend fortsetzen wird, wenn Nutzer ihre Browser aktualisieren, um die Permutationsfunktion der Erweiterung zu nutzen.
Und es geht weiter …
Zum Zeitpunkt des Verfassens dieses Artikels beschränkt sich diese Änderung nur auf Chrome. Allerdings zieht Firefox für die Zukunft eine ähnliche Funktion in Erwägung. Während diese Verbesserungen der Widerstandsfähigkeit von TLS möglicherweise zu einer Veränderung der Zweckmäßigkeit von auf eine bestimmte Reihenfolge angewiesenen TLS-Fingerprinting-Techniken wie JA3 führen könnten, ist damit zu rechnen, dass neue Algorithmen entwickelt werden, die für Erweiterungen in zufälliger Reihenfolge gewappnet sind.
Außerdem arbeiten Unternehmen wie Fastly gemeinsam mit der Internet-Community an der Entwicklung von Technologien wie Private Access Tokens, die offene, datenschutzfreundliche Protokolle ermöglichen. Diese Technologie ist von unmittelbarem Nutzen für die Abwehr von Netzwerkangriffen, könnte aber auch passive Fingerprinting-Techniken zur Identifizierung von Browsern ersetzen.
Wenn Sie mit JA3-Hashes auf der Fastly Plattform arbeiten möchten, können Sie über VCL und Compute Bibliotheken darauf zugreifen.