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ů:
Co znám
– informace známá pouze uživateli (typicky heslo nebo PIN)
Co mám
– technický prostředek, hardwarový (hardwarový klíč, smart
card…) nebo softwarový (certifikát), který mám pod svou
kontrolou
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.
Systém
přečte pole username = identifikace (určení identity uživatele
v systému)
Systém
ověří zadané heslo proti hodnotě uložené v databázi =
autentizace (ověření nárokované identity)
Výsledek
autentizace zaznamená do logu = auditování
Systém
vyhodnotí oprávnění uživatele pro přístup do chráněné
sekce = autorizace (kontrola přístupových práv)
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é.