UUID je stejně unikátní, jako například otisk prstu. Jedná se o 128bitový řetězec určený k identifikaci napříč všemi platformami, aplikacemi, zařízeními a vesmíry. Přiřazením parametru UUID lze velmi rychle a snadno identifikovat chování uživatelů.
V moderní webové a datové analytice vyvstává zásadní otázka, a to otázka sledování uživatelského chování na základě unikátního ID. Tato problematika se dotýká nejen tolik probíraného soukromí uživatelů a samotného parametru “user_id”, ale současně generování “anonymous id”, případně “cookie id”. V takovém případě, než generovat tři různá ID, nastupuje jako pomocník tzv. UUID nebo-li Universal unique identifier.
Co je vlastně UUID?
UUID je univerzální identifikátor, který lze použít jako zástupný parametr pro výše zmíněné situace. Jedná se o řetězec, který je přiřazený konkrétnímu datovému prvku, a to především pro účely identifikace.
Hlavním rozdílem mezi UUID a běžnými identifikátory je ten, že UUID je univerzálně jedinečný. Není tedy pravděpodobné, že se setkáme se situací dvou stejných hodnot v rámci UUID. Tato unikátnost nám posléze zajistí snazší identifikaci konkrétních datových prvků napříč platformami, aplikacemi, systémy a databázemi bez ztráty konzistence při analýze dat.
UUID vs Cookie
Druhou možností proti UUID je použití cookies třetích stran ke shromažďování dat z prohlížečů. Cookie je část datového řetězce, který je uložen ve webovém prohlížeči uživatele. V případě, že se cookie data uloží přímo do interního úložiště zařízení uživatele, lze jej pak sledovat a měřit napříč webovými stránkami po celou dobu procházení.
Hlavní problémem v případě cookies je ale ochrana soukromí uživatelů. Mnoha uživatelům, jež si tato rizika uvědomují, je poměrně nepříjemné sdílení svých dat s třetí stranou. Zde vzniká dodatečný problém, a to je užití oněch uživatelský dat po jejich poskytnutí. I z tohoto důvodu stále více webových prohlížečů blokuje cookies třetích stran, aby byla data uživatelů chráněna.
V tuto chvíli právě přichází metoda UUID, nebo-li identifikátor neobsahující žádné osobní identifikační údaje uživatelů (PII – Personal identifiable information). Veškeré údaje o procházení jsou anonymní, čímž chrání soukromí uživatelů. UUID je generován na základě čísla zařízení a časové hodnoty, proto jsou tak jedinečná a proto nelze identifikovat identitu uživatele pouze na základě UUID.
Technická stránka UUID
UUID je zkratka pro univerzální unikátní identifikátor, což je 128bitové číslo, které je vytvořeno tak, aby bylo jedinečné pro každou instanci. UUID se skládá z 32 hexadecimálních číslic, které jsou rozděleny do pěti skupin oddělených pomlčkami. Například: 123e4567-e89b-12d3-a456-426614174000.
Pravidla pro tvorbu a používání UUID jsou obsažena v dokumentu s názvem RFC 4122. Existuje několik verzí a variant UUID, které používají různé metody generování, jako je náhodné číslo, čas a MAC adresa. Cílem UUID je zajistit univerzální jednoznačnost identifikátorů bez potřeby centrální autority.
Verze UUID
UUID má několik verzí, níže jsme představili 5 verzí, které existují:
Verze 1 – Časová – Tato verze kombinuje aktuální čas, sekvenci hodin a hodnotu konkrétního zařízení, nejčastěji MAC adresu.
Verze 2 – Zabezpečená DCE – Jedná se o jakýsi upgrade 1. Verze za použití Distributed Computing Environment (DCE)
Verze 3 – MD5 – Tato verze používá MD5 hashování “namespace” a “name”. Následně generování UUID se stejnými parametry vytvoří identický výstup. Metoda MD5 tedy poskytuje reprodukovatelné výsledky.
Verze 4 – Náhodné – Jak název naznačuje, jedná se o zcela náhodně generované číslo hostitele. Tato metoda je v současnosti hojně využívána, protože je jednoduchá a zároveň pravděpodobnost dvou identických hodnot je prakticky nulová
Verze 5 – SHA-1 – Obdoba 3. Verze, jen s tím rozdílem, že se používá algoritmus SHA-1, místo MD5.
Pro generování UUID lze použít tento nástroj: Online UUID Generator Tool
Příklad verze 1:
847da290-165b-11ee-be56-0242ac120002
847da52e-165b-11ee-be56-0242ac120002
847da8c6-165b-11ee-be56-0242ac120002
847daa10-165b-11ee-be56-0242ac120002
847dab46-165b-11ee-be56-0242ac120002
847dac72-165b-11ee-be56-0242ac120002
847dad8a-165b-11ee-be56-0242ac120002
847daea2-165b-11ee-be56-0242ac120002
847dafba-165b-11ee-be56-0242ac120002
847db33e-165b-11ee-be56-0242ac120002
Příklad verze 4:
880eb804-a10e-40b9-ad47-f672317983ab
c094796e-1954-48c4-bfaa-f07e62b52302
76f6bb72-5f16-415d-af7f-7d9e4ff63bf5
bbeec6fe-4bc1-43a9-b3b9-3c8fc3f7dd77
eb5738e6-460e-42cd-8c50-8c9b6b358a1e
63bd4d45-8f79-4229-9d36-fff4e442db3c
eb84409c-2d20-472b-af58-69e1638d5035
0922baa6-3991-409a-8336-3dbc2fc1abd6
e5953fd1-f13d-4a8d-a8fe-c09da8875cdf
28b98e86-10a2-4521-b456-00a5ba6ee0f8
Příklad implementace
V následujícím příkladu lze vidět implementaci UUID verze 4, tedy zcela náhodně generovaného čísla na základě hostitele.
Základní funkce
crypto.randomUUID()
Implementace
<html>
<head>
</head>
<body>
<script>
console.log("Random UUID -> " +crypto.randomUUID());
console.log("Random UUID -> " +crypto.randomUUID());
console.log("Random UUID -> " +crypto.randomUUID());
console.log("Random UUID -> " +crypto.randomUUID());
</script>
</body>
</html>
Zdroje: