Blog - Kodrla.eu

AAA aneb Ťuk, ťuk! Kdo tam?

V dnešním článku se podíváme na to, kdo vlastně jsme, jak to víme a co znamená zkratka AAA. Budeme si totiž povídat o autentizaci a autorizaci.

V dnešním článku se podíváme na to, kdo vlastně jsme, jak to víme a co znamená zkratka AAA. Budeme si totiž povídat o autentizaci a autorizaci.

Zkratka AAA v IT znamená Authentication, Authorization, Accounting a do češtiny bychom ji mohli volně přeložit jako ověření (autentizace), oprávnění (autorizace) a auditování (evidence aktivit). Jde o model pro řízení přístupu k systémům, sítím nebo službám.

Poznámka: V praxi se obvykle hovoří jen o autentizaci a autorizaci a i lidé z IT občas používají tyto pojmy nesprávně. To ale není důvod, abychom si to pletli i my.

Než se ale pustíme do samotných áček, musíme si vysvětlit ještě jedno důležité íčko.

Identifikace (kdo tvrdím, že jsem)

Identifikace je prohlášení, kým jsme. Při přihlášení do systému zadáváme naše username. Username je identita, za koho chceme vystupovat. Má identita zde na blogu je Zdenek. Když se přihlašuju do systému, zadám své uživatelské jméno. Systém se podívá do své databáze a řekne si: "Jasně, tohle username znám". Identifikace je tedy sdělení identity, pod kterou chci vystupovat.

Autentizace (důkaz, že jím skutečně jsem)

Že je Zdenek, to může říct kdokoli, i Zdeňka. Proto mému blogu nestačí, když mu řeknete "jsem Zdenek". Chce potvrdit, ověřit, že jste skutečně já. K tomu ověření dojde, když zadáte správné heslo, které mám nastavené. Pokud ho zadám správně, systém ví, že mám oprávnění vystupovat jako Zdenek, protože znám jeho přihlašovací údaje. Autentizace neprokazuje, kdo jsme, ale že máme kontrolu nad prostředkem, kterým se daná identita ověřuje.

V IT se standardně a v drtivé většině používá pojem autentizace. Občas se lze setkat i s výrazy autentifikace nebo autentikace, ale v odborné praxi se používá především první varianta. Pokud si na terminologii teprve zvykáte, doporučuji držet se termínu autentizace.

Jak se ověřuje identita?

K ověření identity se používá jeden ze tří způsobů:

  1. Co znám – informace známá pouze uživateli (typicky heslo nebo PIN)

  2. Co mám – technický prostředek, hardwarový (hardwarový klíč, smart card…) nebo softwarový (certifikát), který mám pod svou kontrolou

  3. Co jsem – unikátní biometrické vlastnosti (otisk prstu, dynamika podpisu, snímek oční sítnice, duhovky…)

V minulosti se používaly i různé kontrolní dotazy (tzv. záchranné otázky), ale jejich bezpečnost je přinejlepším sporná. Odpovědi na takové otázky může znát širší okruh lidí, lze je uhodnout nebo získat z otevřených zdrojů nebo sociálním inženýrstvím. Proto jsou dnes považované za slabý a zastaralý způsob ověření identity a dnes už se doporučuje nepoužívat je.

Poznámka z praxe: Pokud mi nějaká služba tyto záchranné otázky nutí, nelze je vypnout a službu chci, zadávám změť náhodných znaků a v případě zapomenutí hesla si nechám vygenerovat heslo nové.

Mimochodem, ve webových aplikacích se stále častěji objevuje passwordless autentizace. Uživatel nepotřebuje znát heslo ke konkrétní službě, protože svou identitu prokazuje schopností přístupu k registrované e-mailové schránce. Při požadavku na přihlášení server odešle na registrovanou adresu jednorázový kód nebo odkaz, který uživatel použije k autentizaci.

I když tento přístup může na první pohled vzbuzovat pochybnosti, nemusí nutně znamenat nižší úroveň zabezpečení. V mnoha aplikacích totiž reset hesla stejně probíhá prostřednictvím e-mailu. Bezpečnost účtu je tak ve výsledku závislá zejména na zabezpečení samotné e-mailové schránky. Jinými slovy, místo aby si uživatel pamatoval další heslo, deleguje důvěru na svůj e-mailový účet.

Vícefaktorová autentizace

V posledních letech se čím dál častěji používá vícefaktorová autentizace. Označení může být různé, dvoufaktorová autentizace, MFA, 2FA, druhý faktor, atd., ale prinicp zůstává stejný. Protože největší rozmach přišel asi s využíváním SMS pro MFA, ukážeme si princip právě na nich. Uživatel si při registraci účtu (nebo kdykoli později) zaregistruje důvěryhodné telefonní číslo, ke kterému má přístup. Pro přihlášení pak nestačí např. zadat jen heslo, ale uživatel je následně vyzván k zadání kódu, který mu přijde v SMS. Teprve poté je uživatel úspěšně autentizován. Systém tedy postupně ověřuje jednotlivé faktory, například heslo a jednorázový kód. Přístup je povolen pouze v případě, že všechny požadované autentizační faktory úspěšně projdou ověřením. Cílem MFA je ochránit účet i v případě, že dojde ke kompromitaci přihlašovacích údajů; bez přístupu k SMS se útočník dál nedostane.

Dnes se od SMS ustupuje (např. NIST už SMS nedoporučuje jako preferovaný druhý faktor). Mezi důvody jsou jak útoky na SIM karty, potřeba dostupnosti MFA při výpadku služeb mobilního operátora, tak i změna chování uživatelů, kdy část z nich přešla převážně do mobilních zařízení. Jestliže SMS může být doručena do stejného zařízení, ze kterého se uživatel do služby přihlašuje, poněkud to oslabuje koncept nezávislého druhého faktoru. Útočník, který telefon ovládne, pak získá jak přihlašovací údaje, tak kód z autentizační SMS.

Modernější přístup využívá TOTP (Time-based One-Time Password) generátory, typicky ve formě mobilních aplikací (např. Google Authenticator) nebo hardwarových tokenů. Ty generují jednorázové kódy na základě sdíleného tajemství a aktuálního času. Kódy se pravidelně mění (typicky každých 30 sekund) a mají omezenou platnost. A v moderních systémech se stále častěji používají i phishing-resistant metody, například FIDO2/WebAuthn, které místo jednorázových kódů využívají kryptografické ověření zařízení, ale to už je nad rámec dnešního článku.

Autorizace (co smím dělat)

Když chci začít psát článek, musím se přihlásit do systému a zvolit funkcionalitu pro psaní článku. Stačí vybrat příslušnou položku v menu. Vidí ji každý, ale ne každý může psát články. Když se stránka načte, podívá se, jestli jsem ve skupině, která má právo psát články. Pokud ano, prohlásí přístup za autorizovaný, oprávněný, a pustí mě na psaní. Když nejsem ve skupině, přístup mi odepře, protože není autorizovaný. Autorizace tedy není o tom, kdo jste, ale co vám pravidla dovolují

Poznámka: Zajímavostí je, že autorizace není podmíněná předchozí autentizací. Například čtenář tohoto blogu nemusí být přihlášený, přesto má oprávnění číst články. Systém ho považuje za anonymního uživatele a tomu přiděluje příslušná práva.

Auditování (co jsem skutečně dělal)

Auditováním se rozumí zaznamenávání činností, které uživatel v systému dělal. Může zahrnovat logování proběhlých akcí - od přihlášení po odhlášení, zaznamenávat spuštěné příkazy, zdroj a cíl síťové komunikace, objem přenesených dat apod. Cílem auditování je být v případě potřeby schopen rekonstruovat činnost uživatele. (Pokud nám to nenařizuje např. legislativa nebo interní předpisy, nikdy neauditujeme citlivá data, jako např. obsah komunikace.)

Jak to funguje v životě

Pro pochopení rozdílů bude nejlépe ukázat si příklad z běžného života. Představme si, že bude důležitá schůze SVJ, ale my jsme v tom termínu na dovolené. Zvolíme si důvěryhodnou osobu a tu na schůzi vyšleme za sebe. Asi si umíte představit, že když ta osoba přijde na schůzi jen tak, nebude na ni vpuštěna (access denied). Ale ono to bude probíhat takto:

Návštěvník: "Dobrý den, jsem Jan Novák, mám plnou moc k zastupování rodiny Novotných." (Jsem Jan Novák = identifikace.)

Předseda SVJ: "Dobrý den, pane Nováku, můžete mi ukázat občanku?" (Výzva k ověření identity.)

Návštěvník: "Jistě, tady je." (Prostředek k ověření identity.)

Předseda SVJ: "Dobře, jméno, příjmení a fotka souhlasí." (Ověření identity - autentizace - proběhlo úspěšně.)

Návštěvník: "Můžu se teda zúčastnit schůze?" (Žádost o přístup k prostředku.)

Předseda SVJ: "V plné moci se píše, že máte právo zúčastnit se schůze a hlasovat na ní, pojďte tedy dál." (Přístup je autorizován, tj. schválen.)

Předseda SVJ: "Prosím zapisovatele, aby zaznamenal, že byl vpuštěn Jan Novák na základě plné moci." (Auditování.)

Návštěvník: "Koukám, že tu máte chlebíčky, můžu si vzít?" (Žádost o přístup k jinému prostředku.)

Předseda SVJ: "V plné moci se nepíše, že máte právo vzít si chlebíčky, bohužel vám je nemohu vydat." (Odepření neautorizovaného přístupu.)

Předseda SVJ: "Prosím zapisovatele, aby zaznamenal, že Janu Novákovi nebyly vydány chlebíčky, protože plná moc neobsahuje oprávnění k této činnosti." (Auditování.)

Jak to funguje v IT

Uživatel chce přistoupit do chráněné sekce webu. Systém ho přesměruje na přihlašovací obrazovku, kde zadá uživatelské jméno a heslo.

  1. Systém přečte pole username = identifikace (určení identity uživatele v systému)

  2. Systém ověří zadané heslo proti hodnotě uložené v databázi = autentizace (ověření nárokované identity)

  3. Výsledek autentizace zaznamená do logu = auditování

  4. Systém vyhodnotí oprávnění uživatele pro přístup do chráněné sekce = autorizace (kontrola přístupových práv)

  5. Výsledek autorizace (povolen / zamítnut) zaznamená do logu = auditování


Shrnutí

AAA je model pro řízení přístupu k systémům a službám. Popisuje tři klíčové oblasti: ověření identity (autentizaci), řízení oprávnění (autorizaci) a evidenci činností (auditování). AAA je jedním z tradičních modelů bezpečnostního řízení přístupu. V moderních systémech je často rozšířen nebo nahrazen komplexnějšími přístupy, jako je IAM nebo Zero Trust. Přesto jeho základní principy – ověření identity, kontrola oprávnění a auditovatelnost – zůstávají stále stejné.