LW IT Solutions
« Blog Overview /Data Privacy / Czytanie ciągu TC: co stoi w 213...
This post in other languages:

Czytanie ciągu TC: co stoi w 213 bitach nagłówka

Czytanie ciągu TC: co stoi w 213 bitach nagłówka
Spis treści
  1. Jak ciąg jest upakowany
  2. 213 bitów nagłówka
  3. Dlaczego jeden ciąg jest krótki, a następny bez końca
  4. Co TCF 2.2 zamieniło w błąd
  5. Segmenty za segmentem głównym
  6. Co da się dzięki temu wyjaśnić w praktyce

Spory o zgody toczą się zwykle na twierdzeniach: baner jest tak skonfigurowany, lista dostawców jest aktualna, ciąg jest świeży. Wszystkie trzy są zapisane, w pliku cookie o nazwie euconsent-v2, i o żadne z nich nie trzeba się spierać – bo ciąg nie jest zaszyfrowany. Jest upakowany, a jego rozpakowanie nie wymaga klucza.

Poniżej opisana jest budowa tego pakunku. Warto ją znać nie dla niej samej, lecz dlatego, że odczytanie ciągu wyjaśnia w pół minuty to, co inaczej zamienia się w pytanie do dostawcy: czy CMP zapisało to, co obiecywał dialog, kiedy zrobiło to ostatnio i wobec której wersji listy dostawców.

Segment główny ciągu TC jako pasek bitów: wersja, dwa znaczniki czasu, pola CMP, język, wersja listy dostawców i wersja polityki, dalej cechy szczególne, cele, uzasadniony interes oraz sekcja dostawców
Segment główny, bit po bicie: 213 bitów nagłówka, dalej cele i dostawcy.

Jak ciąg jest upakowany

Ciąg TC to sekwencja pól o stałej długości bitowej, zapisanych jedno po drugim, bez separatorów, a następnie zakodowanych w Base64 w wariancie bezpiecznym dla sieci – tym, który używa myślnika i podkreślenia zamiast dwóch znaków wymagających maskowania w adresie. Każdy znak niesie dokładnie sześć bitów.

Dlatego każdy napotkany ciąg TC zaczyna się literą C: pierwszym polem jest wersja o szerokości sześciu bitów, a wersja 2 zapisana na sześciu bitach to 000010, czyli znak na pozycji 2 alfabetu. Ciąg zaczynający się inaczej albo nie jest ciągiem TC, albo nie jest wersją 2 – i jedno, i drugie warto zauważyć, zanim odczyta się cokolwiek innego.

213 bitów nagłówka

Wszystko aż do dostawców leży w stałej kolejności i właśnie to czyni ciąg czytelnym bez biblioteki.

Pole Bity Co rozstrzyga
Wersja 6 W praktyce zawsze 2; wszystko inne nie należy do tego formatu.
Utworzono, ostatnia zmiana po 36 Dziesiąte części sekundy od 1970 – wiek zgody, co do sekundy.
Numer CMP, wersja CMP po 12 Które CMP zapisało ciąg i w jakiej wersji.
Wersja listy dostawców 12 Wersja listy, z której zbudowano dialog.
Wersja polityki TCF 6 Od 4 ciąg podlega regułom TCF 2.2.
Cechy szczególne 12 Dokładna lokalizacja i skanowanie urządzenia, jako dwa z dwunastu możliwych bitów.
Cele, cele z interesem po 24 Jedenaście przypisanych celów, dwukrotnie: zgoda i uzasadniony interes.

Wraz z numerem ekranu zgody, dwuliterowym językiem, znacznikiem specyfiki usługi i krajem wydawcy daje to 213 bitów. Od bitu 214 zaczynają się dostawcy i tam stała długość się kończy.

Dlaczego jeden ciąg jest krótki, a następny bez końca

Dostawcy zapisywani są na jeden z dwóch sposobów, a ciąg wybiera to osobno dla każdej sekcji. Albo jako pole bitowe, jeden bit na dostawcę aż do najwyższego numeru – co kosztuje 1200 bitów, jeśli lista tak daleko sięga, niezależnie od tego, ilu faktycznie udzielono zgody. Albo jako zakresy: liczba, a potem dla każdego zakresu początek i koniec po szesnaście bitów.

Kto zgadza się na wszystko, tworzy ciąg zwarty, bo cała lista zapada się w garść zakresów. Kto wybiera pięćdziesięciu dostawców z ośmiuset, tworzy ten długi, bo każdy pojedynczy wybór staje się własnym zakresem. Długość pliku cookie mówi więc coś o kształcie decyzji, a nic o tym, jak hojna ona była.

Co TCF 2.2 zamieniło w błąd

Trzy rzeczy warto sprawdzić w każdym ciągu, a wszystkie trzy wraz z wersją polityki 4 przeszły z kwestii wykładni w twarde reguły.

Uzasadniony interes nie jest już dopuszczalny dla celów 1, 3, 4, 5 i 6. Ciąg niosący te bity pochodzi albo sprzed tej zmiany, albo od CMP, które jej nie uwzględniło – a bit nie jest niewinny, bo dostawcy czytają go jako podstawę przetwarzania.

Cele od 12 do 24 istnieją w formacie, ale nie w specyfikacji. Ustawione tam bity oznaczają, że CMP zapisuje do pól, których nikt nie definiuje – to najwyraźniejszy znak wdrożenia zrobionego na własną rękę.

I wiek: znacznik zmiany stoi w ciągu, zgodę starszą niż trzynaście miesięcy da się więc rozpoznać po samym pliku cookie. Razem z wersją listy dostawców odpowiada to na pytanie, czy dialog prowadzi dostawców, o których odwiedzającego nigdy nie zapytano – bo lista rośnie, a ciąg zapisany wobec starszej wersji po prostu nie ma nic do powiedzenia o nowo dodanych.

Segmenty za segmentem głównym

Ciąg może nieść więcej niż jeden segment, rozdzielony kropkami, a każdy kolejny zaczyna się trzema bitami nazywającymi jego rodzaj. Rodzaj 1 wymienia dostawców ujawnionych na urządzeniu, rodzaj 3 niesie własne cele wydawcy – te, które witryna może dodać dla siebie. Rodzaj 2 był segmentem dostawców dozwolonych i w 2.2 odpadł.

Wszystko za pierwszą kropką jest zatem dobrowolne, a jego brak nie jest usterką. Usterką jest drugi segment, którego nie da się zdekodować, bo pośrednicząca usługa obcięła plik cookie na granicy długości – to zwykłe wyjaśnienie ciągu, który czyta się czysto do pewnego miejsca, a potem się urywa.

Co da się dzięki temu wyjaśnić w praktyce

Trzy pytania pojawiają się niemal w każdej kontroli, a ciąg odpowiada na wszystkie trzy bez niczyjego udziału. Czy CMP zapisało to, co obiecywał dialog – przez porównanie bitów celów z podjętymi decyzjami. Czy układ jest aktualny – po wersji polityki i wersji listy dostawców. I czy odwiedzający prowadzony jest na decyzji z innej epoki – po znaczniku zmiany.

Nic z tego nie zastępuje spojrzenia w sam dialog, a ciąg nic nie mówi o tym, czy dostawca się do niego stosuje. Zamienia jednak trzy twierdzenia w trzy odczyty, a to zwykle wystarcza, aby zakończyć tę część dyskusji, w której nigdy nie chodziło o fakty.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

ALL ARTICLES & CATEGORIES

CCTV

Śledź tę kategorię przez RSS

Data Privacy

Śledź tę kategorię przez RSS

Digital Analytics

Śledź tę kategorię przez RSS

Digital Marketing

Śledź tę kategorię przez RSS

IT & Networks

Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

Smart Home

Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Śledź tę kategorię przez RSS

Wordpress Hacks

Śledź tę kategorię przez RSS