Záloha súkromnej CA: šifrovaný archív verzus záloha kľúča v HSM
Šifrovaný archív alebo kľúč zabalený HSM: ako sa obnovuje každý model zálohy CA VPN, čo musí obsahovať a ktorú poruchu naozaj prežijete.
Otázka, ktorá rozhoduje väčšinu tohto, nie je, ako archív šifrujete. Je to, či váš súkromný kľúč CA môže vôbec opustiť svoj kontajner. Ak je kľúč súbor, môžete skopírovať celý adresár CA do jedného šifrovaného blobu a skončiť za pár minút. Ak žije v HSM alebo v tokene, ktorý kľúč označuje ako neexportovateľný, taká kópia neexistuje a váš plán sa zmení na plán o postupe zabalenia a obnovy u dodávateľa. Oba modely fungujú, zlyhávajú rôzne a porucha, ktorú dokážete prežiť, je tá, kvôli ktorej sa oplatí navrhovať.
Kde sa oba modely zálohy rozchádzajú
Model A je kópia adresára. CA v štýle OpenSSL je pracovný adresár, nie jediný certifikát: ca.key alebo cakey.pem, ca.crt, databáza vydávania, čítače serial a crlnumber a openssl.cnf. Zapečaťte tento adresár symetrickou šifrou, presuňte výsledok na druhé médium a obnova znamená rozbaliť, overiť, podpísať. Všetko, čo vydavateľ potrebuje, cestuje spolu, vrátane týždňov histórie odvolania, o ktorej si nikto nepamätá, že ju napísal.
Model B je udržanie kľúča. Kľúč sa generuje vnútri modulu PKCS#11 a označí sa ako neexportovateľný; modul ho môže zabaliť pre zálohu, ale žiadny proces nikdy nečíta surové bajty. Vaša záloha sú potom dva artefakty, ktoré sa musia obnoviť v správnom poradí: zabalený blob kľúča, ktorý dokáže rozbaliť len tá rodina modulov, plus obyčajná kópia databázy, konfigurácie a certifikátov.
| Attribute | Encrypted archive | HSM key backup |
|---|---|---|
| What you store | one encrypted file | wrapped blob plus CA records |
| Who can restore it | anyone holding the passphrase | holder of the module and the blob, often vendor support |
| If a copy leaks | attacker with the passphrase becomes the CA | blob is inert without the matching module |
| What usually breaks it | forgotten passphrase, one damaged copy | replacement module rejects the blob, contract gap |
Porovnanie nikdy nie je o tom, ktorý model je silnejší v abstrakcii. Je o tom, ktorý váš tím dokáže obnoviť o 2 ráno s ľuďmi, ktorí skutočne bdia. Archív, ktorý nikto nevie dešifrovať, a HSM blob, ktorý nikto netestoval, sú rovnako zbytočné. Rozdiel je v tom, že porucha archívu sa objaví v správcovi hesiel a porucha HSM sa skrýva v zmluve o podpore.
Čo musí každá záloha CA obsahovať
Oba modely potrebujú rovnakú sadu záznamov. V CA OpenSSL sú tými súbormi index.txt s jedným riadkom na každý vydaný certifikát pokrývajúcim stav, expiráciu, serial a subjekt, potom index.txt.attr, serial držiaci ďalšie sériové číslo na vydanie, crlnumber držiaci ďalšie číslo CRL a openssl.cnf s dir, policy a default_days, s ktorými vaša CA skutočne beží. Manuál openssl-ca vysvetľuje, čo ktorý z týchto čítačov riadi. easy-rsa drží tie isté dáta pod pki/, pričom súbor vars určuje polia certifikátu.
Kľúč a certifikát sú časti, ktoré nemôžete znova postaviť. Databáza je časť, ktorú nemôžete zrekonštruovať z pamäti. Preskočenie index.txt vás stále nechá podpisovať nové certifikáty, a to je práve pasca: zistíte, že chýba, keď sa klient prvýkrát opýta, či bol certifikát odvolaný. Zaznamenajte odtlačok CA mimo zálohy, aby sa obnova porovnávala s hodnotou, ktorej veríte, a nie so súborom, ktorý ste práve obnovili.
openssl x509 -in ca.crt -noout -fingerprint -sha256
tar czf ca-state.tar.gz ca.crt ca.key index.txt* serial* crlnumber* openssl.cnf
openssl enc -aes-256-cbc -pbkdf2 -iter 200000 -salt -in ca-state.tar.gz -out ca-state.tar.gz.enc
openssl ca -config openssl.cnf -gencrl -out crl.pem
Testy obnovy, ktoré nevytvárajú druhého vydavateľa
Dve živé CA s rovnakým subjektom a rovnakým kľúčom vyzerajú identicky pre každého klienta, ktorý dôveruje originálu. Dva CRL s rovnakým číslom, ale iným obsahom sú spôsob, akým klienti ticho prijmú certifikát, ktorý ste odvolali. Spustite obnovu na hostiteľovi bez trasy ku klientom alebo v jednorazovom VM a nikdy nezverejnite CRL, ktorý test vytvorí.
Test, ktorý dokazuje len to, že sa archív otvorí, nedokazuje nič o vydávaní. Poradie, na ktorom záleží: porovnajte odtlačok obnoveného ca.crt so zaznamenanou hodnotou, potvrďte, že serial zodpovedá tomu, čo implikuje váš posledný vydaný certifikát, vydajte jeden certifikát pre jednorazový CN a sledujte, ako index.txt získa riadok, potom tento certifikát odvolajte a znova vygenerujte CRL.
openssl verify -CAfile ca.crt -CRLfile crl.pem -crl_check client.crt
openssl crl -in crl.pem -noout -lastupdate -nextupdate
S HSM beží ten istý test cez modul. Rozbaľte blob do náhradného zariadenia, potvrďte, že certifikát CA, ktorý modul hlási, zodpovedá vášmu zaznamenanému odtlačku, a až potom mu dovoľte podpisovať. Ak má modul vlastné úložisko objektov, zabalenie musí pokryť objekt kľúča a jeho označenie, pretože obnova kľúča pod iným označením rozbije konfiguráciu, ktorá naň ukazuje.
Režimy porúch, ktoré rozhodujú o voľbe
Päť porúch vysvetľuje väčšinu skutočných strát. Zabudnutá prístupová fráza archívu bez nezávislej kópie tajomstva premení archív na tehlu. Jediná kópia na jednom disku zomrie s tým diskom a kontrolný súčet vám nikdy nepovie, či dešifrovanie ešte funguje. Certifikáty odvolané po dátume zálohy vyzerajú po obnove znova platné, takže interval zálohy je aj vaše slepé miesto odvolávania. Obnova staršieho čítača sériových čísel znova použije sériové čísla a zmätie cache a vyhľadávania CRL kľúčované podľa serial. Náhradný HSM, ktorý odmietne zabalený blob, premení výmenu hardvéru na plné nové vydanie.
Model A zvláda prvé štyri zle, ale viditeľne. Model B ich zvláda dobre až do zlyhania modulu alebo procesu dodávateľa. Ak sú vaše kľúče exportovateľné a tím je malý, šifrovaný archív je čestná voľba, podložená dvoma médiami a písaným postupom hesla. Ak je kľúč neexportovateľný, nemáte žiadnu voľbu a práca sa presúva na preukázanie cesty obnovy u dodávateľa pred dňom, keď ju budete potrebovať.
Voľba modelu a plánovanie
Tri podmienky rozhodujú. Dá sa kľúč exportovať bez procesu dodávateľa? Musí obnova pristáť na hardvéri, ktorý ešte nevlastníte? Ako dlho môže vydávanie stáť, kým sa hádate s podporou? Odpovedzte na tie tri a model je rozhodnutý; všetko potom je plánovanie.
Urobte zálohu po každej podpisovej ceremónii a pred každou zmenou konfigurácie, pretože konfigurácia je súčasťou stavu. Držte dve kópie na rôznych médiách na rôznych miestach, jednu z nich offline, a tajomstvo dešifrovania držte v inej doméne dôvery ako kópie. Napíšte dátum poslednej úspešnej obnovy na záznam zálohy. Záloha, ktorá nebola nikdy obnovená, je hypotéza, nie kontrola.
Pred zatvorením tiketu potvrďte týchto päť bodov:
- Odtlačok ca.crt je zaznamenaný niekde mimo zálohy.
- index.txt, serial, crlnumber a openssl.cnf sú všetky vnútri archívu alebo sady blobov.
- Úschova hesla alebo zabaleného kľúča je zdokumentovaná a drží ju niekto iný ako vlastník archívu.
- Obnova bola testovaná na izolovanom hostiteľovi s jedným vydaním a jedným odvolaním.
- Medzera v odvolávaní, ktorú implikuje váš interval zálohy, je písomne prijatá alebo skrátená.