Článek
Pred nedávnom nám v práci vypršala platnosť desaťročnej koreňovej certifikačnej autority. Našťastie to nebola až taká nepríjemná situácia, keďže sme všetky expirované serverové certifikáty dokázali včas nahradiť novými.
Tejto časti mojej pracovnej sféry som sa doteraz úspešne vyhýbal. Avšak táto udalosť ma konečne donútila naštudovať si, ako to s tými certifikátmi naozaj je.
Rád by som sa podelil s mojimi poznatkami. V prvom článku sa zameriame na teóriu. Nech sa páči.
Príklad zo života
Certifikáty nás všetkých sprevádzajú celý život. Dokonca aj tých, ktorý prežili veľkú časť svojho života v offlajnovom svete, našich prarodičov. Napríklad taký vodičský preukaz. Ten oprávňuje svojho držiteľa viesť motorové vozidlo. Nie však hocijaké, ale len tie kategórie vozidiel, na ktoré absolvoval kurz a úspešne zložil skúšku. Okrem toho, vodičský preukaz má obmedzenú platnosť a vydáva ho Riaditeľstvo policajného zboru. Žiadna iná inštitúcia tento doklad vydávať nemôže. Hypoteticky by však Ministersvo vnútra, ako nadriadená inštitúcia Riaditeľstva policajného zboru, mohlo poveriť vydávaním tohto dokladu inú podriadenú inštitúciu, napríklad Odbor starostlivosti o životné prostredie. V prípade, že je vodič prichytený za volantom pod vplyvom alkoholu, mu polícia zadrží vodičský preukaz. Dočasne, alebo i na trvalo, podľa závažnosti daných okolností. Ak je náš previnilec bez vodičského preukazu prichytený pri vedení motorového vozidla, tak ho čaká ďalší trest.
Terminus technikus
Príklad zo života je pre každého celkom jasná vec. Nastal čas to celé pretaviť do odborných termínov.
- vodič je užívateľ (user)
- vodičský preukaz v našom príbehu predstavuje uživaťeľský certifikát (user certificate)
- kurz a skúška predstavujú požiadavku na podpis certifikátu (certificate signing request, CSR)
- Riaditeľstvo policajného zboru je podpisovacia certifikačná autorita (Signing CA), podpisuje uživateľské certifikáty
- Ministersvo vnútra je koreňová certifikačná autorita (Root CA), podpisuje podpisovaciu certifikáčnú autoritu
- zadržanie vodičského preukazu predstavuje zrušenie certifikátu a jeho zaradenie do zoznamu zrušených certifikátov (certificate revocation list CRL)
Pre kompletnosť témy je nutné doplniť ďalšie výrazy. Zďaleka sa však nejedná o všetky:
- Public Key Infrastructure (PKI) je odborný názov certifikačnej mašinérie
- X.509 je štandard popisujúci celú túto mašinériu
- Intermediate CA (ImCA) medziľahlá autorita podpisuje ďalšie ImCA alebo Signing CA
- Cross CA krížová autorita slúži ako premostenie dvoch PKI
- Privacy Enhanced Mail (PEM) textový formát certifikátov, zakódovaný v Base64, obsahuje hlavičky a pätičky
- Distinguished Encoding Rules (DER) binárny formát, používa sa na distribúciu certifikátov a CRL cez internet
- PKCS#7 bundle reťazec dvoch a viacerých certifikátov RootCA + ImCA + UserCert vo formáte DER
- PKCS#12 bundle reťazec certifikátu a jeho privátneho kľúča, formát DER
- PEM bundle reťazce ako PKCS, akurát vo formáte PEM
Vlastnosti certifikátov
- existuje hierarchia v podpisovaní certifikátov
- potvrdzujú pravosť, autenticitu entít (vodič, klient, server, ...)
- šifrujú komunikáciu medzi dvoma entitami, komunikácia je dôverná
- zabezpečujú, že dáta prenesené medzi entitami sú autentické
- majú presne definované schopnosti (podpisujú ďalšie CA, podpisujú uživateľské certifikáty, ...)
- môžu autorizovať klienta voči serveru
- majú časovo obmedzenú platnosť
- skladajú sa z dvoch dielov, samotného certifikátu a privátneho kľuča
- CA by mali mať privátny kľúč dodatočne šifrovaný, aby nedošlo k jeho zneužitiu
Proces podpisovania certifikátu
Koreňová certifikačná autorita (Root CA) podpisuje podpisovaciu certifikačnú autoritu (Signing CA). Podpisovacia certifikačná autorita podpisuje uživateľský certifikát.
Každému podpísaniu predchádza vytvorenie požiadavky na podpis certifikátu (CSR). V prípade potreby je možné certifikát zrušiť pred jeho expiračnou dobou. Takýto certifikát je zaradený do zoznamu zrušených certifikátov (CRL).
Na záver
Na oficiálnom úradníckom príklade sme si predstavili ako funguje PKI. Popísal som niekoľko základných termínov a postupov, ktoré stačí ovládať pre všeobecné pochopenie problematiky.
Mimochodom, tých paralelných príkladov je okolo nás obrovské množstvo, napríklad cestovný lístok, permanentka do fitness centra, vstupenka do divadla atď.
V každom jednom z nich vystupuje autorita, ktorá „podpisuje“ doklad a klient, ktorý ho používa. Doklad má svoju platnosť a autorita by mala byť schopná overiť jeho pravosť.
V nasledujúcich dieloch sa budeme venovať serverovým certifikátom. To sú tie certifikáty, ktoré dnes používame pri komunikácii s majoritou webových stránok. Konkrétne sa pozrieme, kde si taký serverový certifikát môžeme zadovážiť.