Pitanje koje odlučuje većinu ovoga nije kako šifrirate arhivu. Nego može li vaš privatni ključ CA uopće napustiti svoj spremnik. Ako je ključ datoteka, možete kopirati cijeli direktorij CA u jedan šifrirani blob i završiti u 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 postupku 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 radni je 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 izdavatelju treba putuje zajedno, uključujući tjedne povijesti opoziva koju se nitko 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 tada je dva artefakta koja se moraju vratiti u ispravnom redoslijedu: omotani blob ključa koji samo ta porodica modula može raspakirati, 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

Usporedba 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 nitko ne može dešifrirati i HSM blob koji nitko 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.

Što svaka sigurnosna kopija CA mora sadržavati

Oba modela trebaju isti skup zapisa. U OpenSSL CA-u te datoteke su index.txt s jednim retkom po izdanom 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 što svaki od tih brojača kontrolira. easy-rsa drži iste podatke pod pki/, a datoteka vars odlučuje polja certifikata.

Ključ i certifikat dijelovi su koje ne možete ponovno 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 usporedi 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 izdavatelj

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 prihvaćaju 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: usporedite otisak vraćenog ca.crt s vrijednošću koju ste zapisali, potvrdite da se serijski broj podudara s onim što implicira vaš posljednji izdani certifikat, izdajte jedan certifikat za jednokratni CN i gledajte kako index.txt dobiva redak, zatim opozovite taj certifikat i ponovno 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. Raspakirajte blob u zamjenski uređaj, potvrdite da se certifikat CA koji modul prijavljuje podudara s vašim zapisanim otiskom, i tek onda mu dopustite potpisivanje. Ako modul ima vlastito spremiš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 neovisne kopije tajne pretvara arhivu u ciglu. Jedna kopija na jednom disku umire s tim diskom, a kontrolni zbroj nikada vam ne kaže radi li dešifriranje još uvijek. Certifikati opozvani nakon datuma sigurnosne kopije ponovno 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 ponovno koristi serijske brojeve i zbunjuje predmemorije i CRL pretrage vezane uz 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 malen, šifrirana arhiva pošten je izbor, potkrijepljen dvama medijima i pisanim postupkom lozinke. Ako je ključ neizvodiv, nemate nikakav izbor i posao se premješta na dokazivanje dobavljačeva puta vraćanja prije dana kada će vam trebati.

Odabir modela i planiranje

Tri uvjeta 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 stajati 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 točaka:

  • Otisak ca.crt zapisan je negdje izvan sigurnosne kopije.
  • index.txt, serial, crlnumber i openssl.cnf svi su unutar arhive ili skupa blobova.
  • Čuvanje lozinke ili omotanog ključa dokumentirano je i drži ga netko 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