← Bezpečnostní architektura

Jak funguje šifrování a zabezpečení

Technický popis pro lidi, kteří denně pracují s technologiemi, ale nejsou specialisty na IT bezpečnost.

1. Kdo s kým komunikuje

KomponentaCo uchováváCo dělá
Kartatajný klíč AES (DESFire)klíč nikdy neodhalí, pouze jím „podepisuje“ odpovědi na výzvy
Čtečkažádné tajemstvípouze RF anténa — čte a zapisuje kartu, sama nerozhoduje ani nic neví
Služba ChipLogin (na počítači stanice)vlastní certifikát a privátní klíč (identita mTLS stanice)jediná část stanice, která smí komunikovat po síti; ovládá čtečku
Credential Providernic — bezstavovýtenká spojovací vrstva mezi přihlašovací obrazovkou Windows a službou přes lokální rouru
autentizační server (ve vaší síti, nikoli v našem cloudu)databáze karet, jejich klíčů a hesel účtůskutečně rozhoduje „kdo to je“ a „co smí“
Dvě věci lze snadno zaměnit: ChipLogin Cloud (naše SaaS, která řeší pouze licence, účty a telemetrii — „je stanice aktivní?“) a autentizační server (běží on-premise ve vaší síti a řeší karty, hesla a přihlášení). Šifrování popsané v tomto dokumentu se týká pouze druhého systému — naše cloudové servery se k vašim přihlašovacím údajům vůbec nedostanou.

2. Tok dat při přiložení karty

KARTA tajný klíč AES ČTEČKA pouze anténa SLUŽBA CHIPLOGIN běží na počítači stanice AUTENTIZAČNÍ SERVER ve vaší síti (0) mTLS — obě strany se navzájem ověří běží nepřetržitě na pozadí ještě před vším ostatním (1) RF pole (aktivace) (2) „kdo jsi?“ → UID (3) UID + požadavek na přihlášení (POST /begin) (4) náhodná výzva (5) výzva (čtečka ji pouze beze změny předá) (6) odpověď vypočtená tajným klíčem (7) odpověď karty (POST /step) (8) server ověří výpočet „jen pravá karta dokáže vypočítat TUTO konkrétní hodnotu“ (9) zašifrované heslo (ECIES) zapečetěné pouze pro tento pokus (10) služba → Credential Provider (roura) (11) Windows LSA → zaměstnanec přihlášen
RFID — karta ↔ čtečka síť — stanice ↔ server (mTLS) interní zpracování

Krok za krokem:

  1. (0) Než se s kartou cokoli stane, stanice a server si navzájem ověří certifikát a otevřou mezi sebou šifrovaný kanál (mTLS). Ten běží nepřetržitě na pozadí, nejen po přiložení karty.
  2. (1) Zaměstnanec přiloží kartu ke čtečce.
  3. (2) Čtečka aktivuje kartu RF polem a načte její UID (zatím pouze „která karta“, bez důkazu pravosti).
  4. (3) Služba odešle UID, požadavek na přihlášení a jednorázový klíč (viz vrstva C níže) kanálem mTLS na server.
  5. (4) Server vytvoří náhodnou výzvu a pošle ji zpět stanici.
  6. (5) Stanice předá výzvu přes čtečku kartě — beze změny, pouze ji doručí.
  7. (6) Karta sama vypočítá odpověď pomocí tajného klíče (klíč kartu nikdy neopustí, odejde jen výsledek výpočtu).
  8. (7) Odpověď putuje přes čtečku a stanici zpět na server.
  9. (8) Server provede stejný výpočet se svou kopií klíče a výsledky porovná — pokud se shodují, karta je pravá.
  10. (9) Server odešle heslo Windows zašifrované pouze pro tento konkrétní pokus (ECIES).
  11. (10) Služba heslo dešifruje a odešle jej Credential Provideru přes lokální rouru.
  12. (11) Credential Provider jej předá systému Windows (LSA) — zaměstnanec je přihlášen.

3. Tři vrstvy šifrování současně

Tyto vrstvy chrání různé části výměny: mTLS ověřuje zařízení a šifruje kanál, challenge-response DESFire ověřuje držení nastaveného klíče karty a ECIES zapečeťuje obsah s heslem pro jednorázový klíč stanice. Jde o oddělená opatření, zabezpečení celého systému však stále závisí na správné implementaci, správě klíčů, koncových bodech a provozu serveru.

Vrstva A — kanál (mTLS): obě strany se před komunikací navzájem ověří

Běžné HTTPS (například při otevření banky v prohlížeči) ověřuje pouze jednu stranu — víte, že komunikujete se skutečnou bankou, ale banka o vás zatím nic neví (heslo posíláte až po otevření šifrovaného kanálu).

ChipLogin používá mTLS (vzájemné TLS), takže obě strany se ověřují certifikáty. Stanice si během instalace vytvoří vlastní privátní klíč a je navržena tak, aby jej uchovala lokálně; server má vlastní identitu. Před výměnou aplikačních dat musí každá strana předložit přihlašovací údaje, kterým druhá důvěřuje. Zařízení bez odpovídajícího důvěryhodného certifikátu a privátního klíče toto ověření nedokončí.

Vrstva B — karta (DESFire, „challenge-response“): prokázání znalosti klíče bez jeho odhalení

Toto je nejdůležitější a nejméně intuitivní část, proto si ji projděme na příkladu.

Běžná levná karta (například starý docházkový průkaz) funguje jako klíč od auta z 80. let — má vyražené číslo (UID) a systém pouze ověří, zda číslo souhlasí. Problém je, že UID lze načíst a zkopírovat běžnou levnou kopírkou — jako kdyby zámek kontroloval pouze tvar klíče, který si může kdokoli vyrobit.

Karta DESFire funguje jinak. Karta i server znají stejný tajný klíč (nastavený při výrobě nebo personalizaci karty; karta jej nikdy neodhalí, ani majiteli či čtečce). Při přihlášení:
  1. Server vytvoří náhodné číslo (výzvu), pokaždé jiné.
  2. Výzva se odešle kartě. Karta ji zkombinuje se svým tajným klíčem pomocí šifrování AES a vypočítá odpověď.
  3. Server provede stejný výpočet se svou kopií klíče a výsledky porovná.
  4. Pokud odpověď souhlasí, je prokázáno: toto zařízení zná tajný klíč — aniž by jej kdy poslalo po síti.
Proč je to chytré: i kdyby někdo zaznamenal celou výměnu (odposlechem), podruhé je nepoužitelná — příští výzva bude jiná (náhodná) a starou odpověď nelze znovu použít. Klonovaná karta, která zná jen UID, na výzvu vůbec nedokáže odpovědět — server to okamžitě rozpozná a kartu nepustí do další části procesu (typ karty kontroluje hned v prvním kroku).

Vrstva C — samotné heslo (ECIES): zapečetěné pouze pro jeden konkrétní pokus

Ve vrstvě B karta prokázala „jsem správné zařízení“, ale skutečné heslo Windows ještě nezaznělo. Přichází až nyní a je speciálně zabalené pouze pro tuto stanici a tento pokus o přihlášení:

Na začátku (v kroku „begin“) stanice vytvoří jednorázový pár klíčů, který po použití zahodí, a odešle jeho veřejnou část serveru spolu s požadavkem na přihlášení. Jakmile server ověří kartu (vrstva B), zašifruje heslo přímo pro tento konkrétní jednorázový klíč (technikou zvanou ECIES). Dešifrovat jej může pouze stanice, která právě požádala, a pouze v tomto okamžiku — ani server už zprávu po odeslání nedokáže znovu přečíst, protože nemá jednorázovou privátní část.

Výsledek: heslo v otevřeném textu se na síti nikdy nevyskytuje, a v paměti počítače existuje jen zlomek sekundy — přesně mezi dešifrováním službou a předáním systému Windows, po kterém je z paměti vymazáno.

4. Proč je systém navržen právě takto — opakující se principy

PrincipCo znamená v praxi
Klíče nikdy necestují, pouze důkaz jejich znalostiprivátní klíč stanice zůstává na stanici a tajný klíč karty na kartě — po síti putuje jen „prokázal jsem, že jej znám“, nikdy samotný klíč
UID není tajemství, pouze adresai když útočník zná UID karty (lze jej načíst i levnou čtečkou), samo nic neodemkne — říká jen „která karta“, nikoli „důkaz, že je pravá“
Žádné dlouhodobé tajemství se neposílá v otevřeném textuzachycený síťový provoz chrání mTLS a každý obsah s heslem je navíc zapečetěn pro jednorázový klíč vytvořený k danému pokusu o přihlášení
Každá komponenta má vymezenou expozicistanice trvale neukládá hesla Windows; kopie pouhého UID neprojde challenge-response DESFire; tajemství na serveru zůstávají samostatným aktivem, které je nutné chránit opatřeními při nasazení a správě klíčů

5. Co se děje při útoku — konkrétní scénáře

ScénářCo se stane
Někdo zkopíruje UID karty levnou kopírkouServer rozpozná, že karta nedokáže odpovědět na kryptografickou výzvu (nezná tajný klíč) → unknown_card, okamžitě odmítnuto, ke skutečné výměně dat vůbec nedojde
Někdo odposlouchává síť mezi stanicí a serveremUvidí pouze šifrovaný provoz (mTLS). I kdyby jej dešifroval, uvnitř najde jen data zapečetěná pro jedno použití, podruhé nepoužitelná
Někdo ukradne nebo rozebere počítač u strojeNení v něm uložené heslo — hesla jsou na serveru a v paměti stanice existují jen zlomek sekundy během samotného přihlášení
Někdo ukradne celou stanici i s certifikátem (identitou mTLS)Správce stanici na serveru zablokuje či zneplatní stejně jako kartu — od té chvíle server odmítá každý požadavek s jejím certifikátem, i když útočník počítač zapne a pokračuje v pokusech
Někdo napodobí autentizační server (podvržený server v síti)Stanice jej odmítne už na úrovni mTLS — nemá platný certifikát podepsaný či schválený autoritou, kterou stanice rozpoznává jako „skutečný server“
Zaměstnanec ztratí kartuSprávce kartu v systému zablokuje či zneplatní (čistě databázová operace) — na stanicích není třeba nic měnit

6. V čem se liší čtečka u stroje (výroba, nikoli PC)

Stejné tři vrstvy platí i zde, s jedním rozdílem: kvůli výpadkům sítě ve výrobě uchovává čtečka (řídicí jednotka) aktuální podepsanou kopii pravidel a klíčů karet lokálně v zabezpečeném čipu a rozhoduje i bez spojení se serverem. Síť se zde nepoužívá k ověření každého přiložení karty, ale k pravidelné aktualizaci lokální kopie a odeslání záznamů po obnovení spojení. Podrobnosti o této variantě najdete na stránce ChipLogin pro stroje .

← Zpět na bezpečnostní architekturu