PowerScan
DE

Audio-Fingerprinting ohne Mikrofon

Browser-Fingerprints · 5 Min. Lesezeit · von PowerScan

Foto: Unsplash

„Audio-Fingerprint“ klingt nach etwas, das über ein Mikrofon aufgenommen wird. Das ist es nicht. Es ist eine Zahl, die davon abgeleitet wird, wie Ihr Rechner einen synthetischen Klang verarbeitet, der nie abgespielt, nie aufgenommen wird und den Tab nie verlässt.

Wie er entsteht

Das Skript erstellt einen OfflineAudioContext, der Audio in einen Puffer im Speicher rendert statt auf Lautsprecher. Es verbindet einen Oszillator, meist eine Dreieckswelle mit fester Frequenz, über einen Dynamikkompressor mit dem Ziel und startet das Rendern. Ist der Puffer fertig, liest es einen Ausschnitt der Samples, oft einige hundert Werte, und hasht sie. Das Ergebnis ist eine kurze Zeichenkette wie d4f50eb9.

Der gesamte Vorgang dauert einige Dutzend Millisekunden und braucht keine Berechtigung, weil nichts aufgenommen wird. Der OfflineAudioContext wird geschlossen, wenn das Skript fertig ist.

Warum er sich zwischen Rechnern unterscheidet

Kompressor und Oszillator sind in der Audio-Engine des Browsers in Gleitkommaarithmetik implementiert, und die genaue Ausgabe hängt von der Engine-Version, der Mathematikbibliothek des Betriebssystems, dem Gleitkommaverhalten der CPU und in manchen Konfigurationen der Abtastrate der Audio-Hardware ab. Die Unterschiede sind winzig, ein paar Bits in den letzten Dezimalstellen, aber Hashing verstärkt winzige Unterschiede zu völlig verschiedenen Zeichenketten. Wie der Canvas-Hash ist er auf einem Rechner stabil und variiert zwischen Rechnern.

Seine Vielfalt ist geringer als bei Canvas: Viele Rechner mit demselben Browser-Build und Betriebssystem erzeugen denselben Audio-Hash. Er ist vor allem als Bestätigungssignal nützlich und um Browser zu erkennen, die ihre Ausgabe randomisieren.

Was Browser tun

Brave fügt Audio-Auslesungen Rauschen hinzu, wie es das auch bei Canvas tut. Firefox mit resist-fingerprinting deaktiviert Teile der Web Audio API oder gibt konstante Werte zurück. Chromium verändert die Ausgabe nicht. Ein Browser, der den Hash randomisiert, erzeugt bei jedem Neuladen einen anderen Wert, was eine Diagnose sichtbar macht, indem sie Sie einfach neu laden und vergleichen lässt.

Datenschutz, genau genommen

Es wird kein Ton aufgenommen. Es wird kein Mikrofon geöffnet. Der Puffer existiert für die Dauer der Berechnung im Speicher und wird verworfen. Das Einzige, was den Tab verlassen könnte, ist der Hash, und nur, wenn die Seite ihn senden will. Eine Diagnose, die den Hash lokal berechnet und Ihnen anzeigt, liest genau das, was ein Tracker lesen würde, und tut dann nichts damit.

Den Wert lesen

Zwei Dinge sind prüfenswert. Erstens, dass der Hash überhaupt existiert: „Nicht verfügbar“ bedeutet, dass die API blockiert ist, was manche Websites als eigenes Signal werten. Zweitens, dass er stabil ist: Beim Neuladen sollte sich der Wert nicht ändern. Ein Hash, der sich zwischen Ladevorgängen ändert, zeigt Ihnen, dass der Browser Rauschen einspeist, was zwar vor websiteübergreifendem Tracking schützt, den Browser aber auch als einen kennzeichnet, der das tut.

Alle Artikel · Scan starten