Pitanje koje odlučuje veći dio ovoga nije kako šifrirate arhivu. Nego može li vaš privatni ključ CA uopće napustiti svoj kontejner. Ako je ključ datoteka, možete kopirati cijeli direktorij CA u jedan šifrirani blob i završiti za nekoliko minuta. Ako živi u HSM-u ili tokenu koji ključ označava kao neizvodiv, ta kopija ne postoji i vaš plan postaje plan o proceduri omotavanja i vraćanja kod dobavljača. Oba modela rade, ne uspijevaju na različite načine, a kvar koji možete preživjeti je onaj oko kojeg vrijedi projektirati.

Gdje se dva modela sigurnosne kopije razilaze

Model A je kopiranje direktorija. CA u stilu OpenSSL-a je radni direktorij, a ne jedan certifikat: ca.key ili cakey.pem, ca.crt, baza izdavanja, brojači serial i crlnumber, i openssl.cnf. Zapečatite taj direktorij simetričnom šifrom, premjestite rezultat na drugi medij, a vraćanje znači raspakirati, provjeriti, potpisati. Sve što izdavaocu treba putuje zajedno, uključujući sedmice historije opoziva koju se niko ne sjeća da je pisao.

Model B je zadržavanje ključa. Ključ se generira unutar PKCS#11 modula i označava kao neizvodiv; modul ga može omotati za sigurnosnu kopiju, ali nijedan proces nikada ne čita sirove bajtove. Vaša sigurnosna kopija je tada dva artefakta koja se moraju vratiti u ispravnom redoslijedu: omotani blob ključa koji samo ta porodica modula može raspakovati, plus obična kopija baze, konfiguracije i certifikata.

AttributeEncrypted archiveHSM key backup
What you storeone encrypted filewrapped blob plus CA records
Who can restore itanyone holding the passphraseholder of the module and the blob, often vendor support
If a copy leaksattacker with the passphrase becomes the CAblob is inert without the matching module
What usually breaks itforgotten passphrase, one damaged copyreplacement module rejects the blob, contract gap

Poređenje nikada nije o tome koji je model jači u apstraktnom smislu. Nego o tome koji vaš tim može vratiti u 2 sata ujutro s ljudima koji su zaista budni. Arhiva koju niko ne može dešifrirati i HSM blob koji niko nije testirao jednako su beskorisni. Razlika je u tome što se kvar arhive pojavljuje u upravitelju lozinki, a kvar HSM-a skriva u ugovoru o podršci.

Šta svaka sigurnosna kopija CA mora sadržavati

Oba modela trebaju isti skup zapisa. U OpenSSL CA-u te datoteke su index.txt s jednim redom po izdatom certifikatu koji pokriva status, istek, serijski broj i subjekt, zatim index.txt.attr, serial koji drži sljedeći serijski broj za izdavanje, crlnumber koji drži sljedeći broj CRL-a, i openssl.cnf s dir, policy i default_days s kojima vaš CA zaista radi. Priručnik openssl-ca objašnjava šta svaki od tih brojača kontrolira. easy-rsa drži iste podatke pod pki/, a datoteka vars odlučuje polja certifikata.

Ključ i certifikat su dijelovi koje ne možete ponovo izgraditi. Baza je dio koji ne možete rekonstruirati po sjećanju. Preskakanje index.txt ostavlja vam mogućnost potpisivanja novih certifikata, i to je upravo zamka: primijetit ćete da nedostaje prvi put kad klijent pita je li certifikat opozvan. Zapišite otisak CA izvan sigurnosne kopije, da se vraćanje poredi s vrijednošću kojoj vjerujete, a ne s datotekom koju ste upravo vratili.

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

Testovi vraćanja koji ne stvaraju drugi izdavalac

Dva živa CA-a s istim subjektom i istim ključem izgledaju identično svakom klijentu koji vjeruje originalu. Dva CRL-a s istim brojem ali različitim sadržajem način su na koji klijenti tiho prihvate certifikat koji ste opozvali. Pokrenite vraćanje na hostu bez rute do vaših klijenata ili u jednokratnoj VM, i nikada ne objavljujte CRL koji test proizvede.

Test koji dokazuje samo da se arhiva otvara ne dokazuje ništa o izdavanju. Slijed koji se računa: uporedite otisak vraćenog ca.crt s vrijednošću koju ste zapisali, potvrdite da se serijski broj poklapa s onim što implicira vaš posljednji izdati certifikat, izdajte jedan certifikat za jednokratni CN i gledajte kako index.txt dobija red, zatim opozovite taj certifikat i ponovo generirajte CRL.

openssl verify -CAfile ca.crt -CRLfile crl.pem -crl_check client.crt
openssl crl -in crl.pem -noout -lastupdate -nextupdate

S HSM-om isti test ide kroz modul. Raspakujte blob u zamjenski uređaj, potvrdite da se certifikat CA koji modul prijavljuje poklapa s vašim zapisanim otiskom, i tek onda mu dopustite potpisivanje. Ako modul ima vlastito skladište objekata, omotavanje mora pokriti objekt ključa i njegovu oznaku, jer vraćanje ključa pod drugom oznakom kvari konfiguraciju koja pokazuje na njega.

Načini kvara koji odlučuju izbor

Pet kvarova objašnjava većinu stvarnih gubitaka. Zaboravljena lozinka arhive bez nezavisne kopije tajne pretvara arhivu u ciglu. Jedna kopija na jednom disku umire s tim diskom, a kontrolna suma nikada vam ne kaže radi li dešifriranje još uvijek. Certifikati opozvani nakon datuma sigurnosne kopije ponovo izgledaju važeći nakon vraćanja, pa je vaš interval sigurnosne kopije ujedno i vaša slijepa točka opoziva. Vraćanje starijeg brojača serijskih brojeva ponovo koristi serijske brojeve i zbunjuje keševe i CRL pretrage vezane za serijski broj. Zamjenski HSM koji odbija omotani blob pretvara zamjenu hardvera u potpuno ponovno izdavanje.

Model A nosi se s prva četiri loše ali vidljivo. Model B nosi se s njima dobro sve dok modul ili proces dobavljača ne zakaže. Ako su vaši ključevi izvodivi i tim je mali, šifrirana arhiva je pošten izbor, potkrijepljen dvama medijima i pisanom procedurom lozinke. Ako je ključ neizvodiv, nemate nikakav izbor i posao se premješta na dokazivanje dobavljačevog puta vraćanja prije dana kada će vam trebati.

Odabir modela i planiranje

Tri uslova rješavaju odluku. Može li se ključ izvesti bez procesa dobavljača? Mora li vraćanje sletjeti na hardver koji već ne posjedujete? Koliko dugo izdavanje može stati dok se svađate s podrškom? Odgovorite na ta tri i model je odlučen; sve nakon toga je planiranje.

Uzmite sigurnosnu kopiju nakon svake ceremonije potpisivanja i prije svake promjene konfiguracije, jer je konfiguracija dio stanja. Držite dvije kopije na različitim medijima na različitim mjestima, jedna od njih offline, a tajnu dešifriranja držite u drugoj domeni povjerenja od kopija. Zapišite datum posljednjeg uspješnog vraćanja na zapis sigurnosne kopije. Sigurnosna kopija koja nikada nije vraćena jest hipoteza, a ne kontrola.

Prije nego zatvorite tiket, potvrdite ovih pet tačaka:

  • Otisak ca.crt je zapisan negdje izvan sigurnosne kopije.
  • index.txt, serial, crlnumber i openssl.cnf su svi unutar arhive ili skupa blobova.
  • Čuvanje lozinke ili omotanog ključa je dokumentirano i drži ga neko drugi osim vlasnika arhive.
  • Vraćanje je testirano na izoliranom hostu s jednim izdavanjem i jednim opozivom.
  • Praznina u opozivu koju implicira vaš interval sigurnosne kopije prihvaćena je pismeno ili skraćena.

Povezani članci