Zum Inhalt springen
GProxy
Registrierung
Глоссарий 3 Min. Lesezeit 36 Aufrufe

JARM Fingerabdruck

Erkunden Sie JARM-Fingerprinting, eine Technik zur Identifizierung von TLS-Servern und Proxys anhand ihrer einzigartigen TLS-Handshake

Безопасность
JARM Fingerabdruck

Ein JARM-Fingerabdruck ist eine passive, clientseitige TLS-Fingerprinting-Methode, die verwendet wird, um den spezifischen TLS-Stack eines Servers oder Proxys zu identifizieren, indem seine Antwort auf eine Reihe speziell entworfener TLS ClientHello-Probes analysiert wird. Von Salesforce entwickelt, liefert JARM einen einzigartigen Fingerabdruck für die TLS-Implementierung eines Servers, der es Betreibern ermöglicht, spezifische Server-Software zu identifizieren, Proxys zu erkennen und Infrastruktur zu verfolgen.

JARM-Fingerabdrücke verstehen

JARM-Fingerprinting (Just Another Rather Marvelous) funktioniert, indem 10 verschiedene TLS ClientHello-Pakete an einen Zielserver gesendet werden. Jedes ClientHello ist mit spezifischen, geordneten Variationen in seinen Parametern konzipiert, wie z.B. unterstützte TLS-Versionen, Cipher Suites, Erweiterungen und elliptische Kurven. Die Antworten des Servers auf diese Probes, die seine gewählte TLS-Version, Cipher Suite, Erweiterungen und andere Handshake-Parameter umfassen, werden dann konkateniert und gehasht, um einen 62-stelligen Fingerabdruck zu erzeugen.

Dieser Prozess nutzt subtile Unterschiede in der Art und Weise aus, wie verschiedene TLS-Stacks (z.B. OpenSSL, Microsoft SChannel, Go's crypto/tls, BoringSSL, LibreSSL) TLS-Handshakes aushandeln. Selbst geringfügige Konfigurationsunterschiede oder Patch-Level können zu unterschiedlichen JARM-Fingerabdrücken führen.

JARM-Probe-Details

Die 10 ClientHello-Probes variieren in mehreren Dimensionen:
* TLS-Versionen: Probes zielen auf spezifische TLS-Versionen ab (z.B. TLS 1.0, 1.1, 1.2, 1.3).
* Cipher Suites: Jede Probe enthält eine eindeutige Liste und Reihenfolge von Cipher Suites.
* Erweiterungen: Es werden verschiedene Sätze und Reihenfolgen von TLS-Erweiterungen verwendet (z.B. SNI, ALPN, renegotiation_info, supported_groups).
* Elliptische Kurven: Variationen in den unterstützten elliptischen Kurven sind enthalten.

Die ServerHello-Antwort des Servers auf jede dieser 10 Probes wird erfasst. Die aus diesen Antworten extrahierten Schlüsselfelder umfassen:
* Ausgehandelte TLS-Version
* Gewählte Cipher Suite
* Liste der vorhandenen Erweiterungen
* Form der SNI-Erweiterungsantwort (falls vorhanden)

Diese extrahierten Felder werden dann zu einem einzigen String konkateniert. Dieser String wird anschließend MD5-gehasht, und eine Untermenge dieses Hashs bildet zusammen mit einem SHA-256-Hash des vollständigen Antwort-Strings den endgültigen 62-stelligen JARM-Fingerabdruck. Der Fingerabdruck ist so strukturiert, dass er Informationen über die Antworten auf jede der 10 Probes kodiert.

Warum JARM für Proxy-Dienste nützlich ist

JARM-Fingerabdrücke bieten mehrere praktische Anwendungen für Organisationen, die Proxy-Dienste betreiben oder mit ihnen interagieren.

Server- und Software-Identifikation

JARM kann die zugrunde liegende TLS-Bibliothek und Konfiguration eines Servers oder Proxys präzise identifizieren. Dies ermöglicht:
* Software-Klassifizierung: Unterscheidung zwischen gängigen Webservern wie Nginx, Apache HTTP Server, Microsoft IIS, Caddy oder Anwendungsservern wie Tomcat, Jetty.
* Versionserkennung: Oft führen unterschiedliche Versionen oder Patch-Level derselben Software zu unterschiedlichen JARM-Fingerabdrücken aufgrund von Änderungen in ihrer TLS-Stack-Implementierung.
* Fehlkonfigurationserkennung: Unerwartete Fingerabdrücke können auf nicht-standardmäßige Konfigurationen oder potenzielle Sicherheitsprobleme hinweisen.

Proxy-Erkennung und -Charakterisierung

Für einen Proxy-Dienst ist die Identifizierung von Zwischen-Proxys entscheidend, um Netzwerkpfade und die Sicherheitslage zu verstehen.
* Reverse Proxys und CDNs: Wenn ein Client sich mit einem Server hinter einem Reverse Proxy, Load Balancer oder Content Delivery Network (CDN) verbindet, spiegelt der JARM-Fingerabdruck den TLS-Stack des Proxy-/CDN-Edge-Knotens wider, nicht den des Ursprungsservers. Dies ermöglicht die Identifizierung von Diensten wie Cloudflare, Akamai, AWS CloudFront oder Nginx/HAProxy, die als Reverse Proxy fungieren.
* Forward Proxys: Ein Forward Proxy kann seinen eigenen TLS-Stack präsentieren, wenn er TLS-Interception (MITM) durchführt. Wenn die Verbindung eines Clients abgefangen wird, gehört der vom Client erhaltene JARM-Fingerabdruck dem Forward Proxy und nicht dem beabsichtigten Ziel. Nicht-abfangende Forward Proxys leiten das ClientHello typischerweise durch und bewahren den JARM des Ursprungsservers.
* WAFs (Web Application Firewalls): Viele WAFs arbeiten als Reverse Proxys und präsentieren ihren eigenen JARM-Fingerabdruck.

Sicherheit und Bedrohungsanalyse

JARM ist ein wertvolles Werkzeug in Sicherheitsoperationen:
* Malware C2-Identifikation: Bedrohungsakteure verwenden oft spezifische TLS-Stacks für ihre Command and Control (C2)-Infrastruktur wieder. JARM kann diese C2-Server identifizieren und deren Verfolgung über verschiedene IP-Adressen oder Domains hinweg ermöglichen.
* Infrastruktur-Mapping: Sicherheitsforscher nutzen JARM, um Angreifer-Infrastrukturen abzubilden, gemeinsame Komponenten zu identifizieren und scheinbar unterschiedliche Kampagnen zu verknüpfen.
* Phishing-Erkennung: Die Identifizierung unerwarteter JARM-Fingerabdrücke für legitime Domains kann auf einen Phishing-Versuch hindeuten, bei dem ein Angreifer eine andere Infrastruktur verwendet.

Netzwerksichtbarkeit

JARM bietet ein tieferes Verständnis des TLS-Ökosystems, mit dem ein Proxy interagiert:
* Baseline-Etablierung: Das Erstellen einer Baseline erwarteter JARM-Fingerabdrücke für bekannte Dienste und Partner hilft, Anomalien zu erkennen.
* Dienst-Erkennung: Identifizierung der zugrunde liegenden Technologie von Diensten, ohne eine Interaktion auf Anwendungsebene zu erfordern.

Einen JARM-Fingerabdruck generieren

Das Generieren eines JARM-Fingerabdrucks beinhaltet das Senden der spezifischen Probes und die Verarbeitung der Antworten. Für diesen Zweck stehen Tools und Bibliotheken zur Verfügung.

Beispiel: Verwendung der Python-Bibliothek

Aktualisiert: 04.03.2026
Zurück zur Kategorie

Testen Sie unsere Proxys

20.000+ Proxys in über 100 Ländern weltweit

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.