← Zpět na blog Tracking

Canvas, AudioContext a WebGL Fingerprinting: Legální bez souhlasu?

browser fingerprinting GDPR consent ePrivacy Directive Canvas API WebGL tracking

Identifikace prohlížeče se stala v odvětví sledování uživatelů nejoblíbenějším řešením, jak obejít nutnost souhlasu s cookies: bez Set-Cookie hlavička, žádný localStorage zápis, žádná detekovatelná událost ukládání — výsledkem je však stabilní, téměř jedinečný identifikátor rekonstruovaný při každém načtení stránky. Právní otázka nezní, zda otiskování může fungovat bez souhlasu, ale zda smí. Podle GDPR a směrnice o soukromí a elektronických komunikacích závisí odpověď na technickém rozdílu, který většina týmů zabývajících se dodržováním předpisů chápe nesprávně.

Jak ve skutečnosti funguje otiskování bez souborů cookie

Největší část práce vykonávají tři API prohlížeče:

Fingerprinting pomocí Canvas

Skript volá HTMLCanvasElement.toDataURL() po vykreslení skrytého řetězce nebo tvaru. Jemné rozdíly v ovladačích GPU, algoritmech vyhlazování, nainstalovaných fontech a vykreslování na úrovni subpixelů vytvářejí hash na úrovni pixelů, který se liší v závislosti na zařízení. Samotné volání JavaScriptu je pro uživatele neviditelné; k exfiltraci hashe není potřeba žádný síťový požadavek — lze jej vložit do jakéhokoli následujícího XHR nebo fetch() volání jako záhlaví nebo parametr dotazu.

Fingerprinting pomocí AudioContext

Pomocí rozhraní Web Audio API skript vytvoří objekt OfflineAudioContext, spustí OscillatorNode prostřednictvím DynamicsCompressorNodea čte výstupní buffer pomocí getChannelData(). Hodnoty s plovoucí desetinnou čárkou se liší v závislosti na zvukovém stacku, operačním systému a architektuře procesoru. Jelikož je kontext offline, nehraje se žádný zvuk a neobjeví se dialogové okno s žádostí o oprávnění. Entropický přínos samotného otisku AudioContext je značný — studie citované projektem Cover Your Tracks organizace EFF dokazují, že dokáže zúžit okruh uživatelů na malou část populace uživatelů prohlížečů.

Otisk prstu WebGL

Volání WEBGL_debug_renderer_info přímo odhalují řetězec výrobce GPU a řetězec rendereru (např. ANGLE (NVIDIA GeForce RTX 4080 Direct3D11 vs_5_0 ps_5_0)). V kombinaci s gl.getParameter() odpověďmi na přesné formáty, maximální velikosti textur a podporovaná rozšíření poskytuje WebGL jak identitu hardwaru, tak entropii na úrovni ovladače. Jedná se o jednu z ploch otisků prstů s nejvyšším signálem, které jsou k dispozici ve standardním kontextu prohlížeče.

Analýza GDPR: Ukládání vs. zpracování

Častým omylem je, že fingerprinting se GDPR zcela vyhýbá, protože neukládá data na zařízení. To směšuje dva samostatné právní rámce.

Směrnice o soukromí a elektronických komunikacích, článek 5(3) — transponovaný do vnitrostátního práva ve všech členských státech EU — upravuje přístup k informacím na koncovém zařízení uživatele nebo jejich ukládání. Pracovní skupina zřízená podle článku 29 (nyní EDPB) potvrdila, že techniky fingerprintingu, které čtou charakteristiky zařízení za účelem odvození identifikátoru, spadají do působnosti článku 5 odst. 3, protože přístup k hardwarovým parametrům představuje získávání informací z koncového zařízení. To znamená, že požadavek na souhlas podle článku 5 odst. 3 platí ještě předtím, než GDPR vůbec vstoupí do hry.

GDPR pak upravuje zpracování výsledného identifikátoru. Vzhledem k tomu, že otisk prohlížeče odkazuje na konkrétní zařízení a tím pádem i na fyzickou osobu, představuje osobní údaje podle čl. 4 odst. 1. Odůvodnění Soudního dvora Evropské unie ve věci C-673/17 (Planet49) – že předem zaškrtnutá políčka pro souhlas s cookies jsou neplatná – platí se stejnou platností i pro souhlas s otisky prstů: podle článků 4 odst. 11 a 7 je vyžadován výslovný, konkrétní, informovaný a svobodně udělený souhlas.

Může oprávněný zájem nahradit souhlas?

Provozovatelé se často odvolávají na čl. 6 odst. 1 písm. f) (oprávněný zájem), aby obešli požadavek na souhlas s otisky prstů používanými k odhalování podvodů nebo k zajištění bezpečnosti. Pokyny EDPB 05/2020 o souhlasu výslovně varují, že oprávněný zájem nemůže nahradit požadavek na souhlas podle článku 5 odst. 3 směrnice o soukromí a elektronických komunikacích – národní právní předpisy o soukromí a elektronických komunikacích upravují přístup k terminálu a zákonné základy článku 6 GDPR se vztahují pouze na následné zpracování, nikoli na samotné čtení parametrů zařízení.

Existuje však úzká výjimka: pokud je fingerprinting nezbytně nutný pro prevenci podvodů v kontextu transakce, kterou uživatel výslovně inicioval, některé orgány pro ochranu osobních údajů uznaly oprávněný zájem jako základ pro fázi zpracování. Přístup k parametrům zařízení stále vyžaduje buď souhlas, nebo – v případě transpozice směrnice o soukromí a elektronických komunikacích v některých členských státech – výjimku z důvodu nezbytnosti. Nejedná se o paušální výjimku pro odhalování podvodů; vyžaduje to zdokumentované a přiměřené posouzení oprávněného zájmu (LIA) pokrývající obě úrovně.

Co v praxi způsobuje, že nasazení není v souladu s předpisy

  • Fingerprinting se spustí před zaznamenáním souhlasu. Pokud jsou během počátečního načítání stránky volána rozhraní Canvas nebo WebGL – před vyřešením platformy pro správu souhlasu (CMP) – je přístup nezákonný bez ohledu na to, co si uživatel později zvolí. Sledujte to pomocí karty Výkon v DevTools prohlížeče nebo proxy jako mitmproxy, abyste zachytili přesnou posloupnost volání.
  • Žádná zmínka v oznámení o ochraně osobních údajů. Článek 13(1)(e) vyžaduje zveřejnění příjemců a účelů. Hash otisku prstu přenášený třetím stranám zabývajícím se analytikou nebo reklamními technologiemi musí být pojmenován, spolu s mechanismem přenosu, pokud se nachází mimo EHP.
  • SDK pro fingerprinting jako službu jsou tiše přibaleny. Mnoho správců tagů načítá skripty třetích stran, které obsahují fingerprinting jako nezveřejněnou funkci. Správce zůstává odpovědný podle článku 28; samotná dohoda s úřadem pro ochranu osobních údajů (DPA) nezbavuje odpovědnosti za nezákonný sběr dat na vstupní úrovni.
  • Žádné omezení uchovávání hashů otisků prstů. Článek 5(1)(e) (omezení uchovávání) vyžaduje, aby odvozené identifikátory byly vymazány, jakmile je stanovený účel splněn. Neomezené uchovávání protokolů otisků prstů porušuje tento princip, i když byl původní sběr zákonný.

Technická opatření snižující právní riziko

  1. Omezte přístup k API na základě stavu souhlasu. Použijte IAB TCF __tcfapi('getTCData', ...) nebo nativní API vašeho CMP k potvrzení souhlasu před inicializací jakéhokoli skriptu pro otisky prstů. Odložení načítání skriptu pomocí async/defer není dostatečné — skripty se nesmí spustit, dokud není výslovně udělen souhlas.
  2. Implementujte Content Security Policy, která blokuje neautorizované skripty. Přísná script-src směrnice v hlavičce Content-Security-Policy hlavičce HTTP odpovědi zabrání SDK třetích stran vkládat kód pro identifikaci otisků prstů mimo váš proces získávání souhlasu.
  3. Používejte hashové hodnoty Subresource Integrity (SRI) u všech skriptů třetích stran: <script src="..." integrity="sha384-..." crossorigin="anonymous">. Tím zajistíte, že skripty dodané dodavatelem se nemohou tiše aktualizovat a přidávat funkce pro identifikaci otisků prstů bez vašeho vědomí.
  4. Zaznamenávejte události souhlasu s časovými značkami korelovanými s událostmi sběru otisků prstů na straně serveru. Tím se vytvoří auditovatelný řetězec prokazující, že přístup nepředcházel platnému souhlasu – což je zásadní důkaz při vyšetřováních dozorových orgánů.
  5. Zdokumentujte svou LIA, pokud se spoléháte na nutnost detekce podvodů. LIA musí identifikovat konkrétní model hrozby, vysvětlit, proč je fingerprinting přiměřený ve srovnání s méně invazivními alternativami (např. behaviorální analýza, API pro ověřování zařízení jako WebAuthn), a zaznamenat test vyváženosti vůči zájmům uživatelů.

Závěr pro týmy zajišťující dodržování předpisů

Fingerprinting v prohlížeči není oblastí bez nutnosti souhlasu. Technická neviditelnost volání API Canvas, AudioContext a WebGL neznamená právní neviditelnost. Pravidlo o přístupu k terminálu ve směrnici o soukromí v elektronických komunikacích se vztahuje na samotný akt shromažďování; požadavky GDPR na právní základ upravují vše, co následuje. Jakékoli nasazení fingerprintingu, které se spustí před výslovným souhlasem, opomíjí informování nebo se opírá o nedokumentované posouzení oprávněného zájmu, je pravděpodobně v rozporu s předpisy – a absence cookie není obhajobou.


Tento článek byl vytvořen s pomocí umělé inteligence a redakčně zkontrolován. Právní otázky by vždy měly být konzultovány s kvalifikovaným odborníkem na ochranu dat.