Privataus CA atsarginė kopija: šifruotas archyvas arba HSM rakto atsarginė kopija
Šifruotas archyvas arba HSM apvyniotas raktas: kaip atkuriamas kiekvienas VPN CA atsarginės kopijos modelis, ką jis turi turėti ir kokį gedimą iš tikrųjų galite išgyventi.
Klausimas, lemiantis didžiąją dalį to, nėra kaip šifruojate archyvą. Tai, ar jūsų CA privatusis raktas apskritai gali palikti savo konteinerį. Jei raktas yra failas, galite nukopijuoti visą CA katalogą į vieną šifruotą blobą ir baigti per minutes. Jei jis gyvena HSM arba žetone, kuris raktą žymi kaip neištraukiamą, tokios kopijos nėra, ir jūsų planas tampa planu apie tiekėjo įvyniojimo ir atkūrimo procedūrą. Abu modeliai veikia, jie sugenda skirtingai, o gedimas, kurį galite išgyventi, yra tas, aplink kurį verta projektuoti.
Kur išsiskiria du atsarginių kopijų modeliai
Modelis A yra katalogo kopija. OpenSSL stiliaus CA yra darbinis katalogas, o ne vienas sertifikatas: ca.key arba cakey.pem, ca.crt, išdavimo duomenų bazė, serial ir crlnumber skaitikliai bei openssl.cnf. Užantspauduokite tą katalogą simetriniu šifru, perkelkite rezultatą į antrą laikmeną, o atkūrimas reiškia išpakuoti, patikrinti, pasirašyti. Viskas, ko reikia išdavėjui, keliauja kartu, įskaitant savaites atšaukimo istorijos, kurios niekas neprisimena rašęs.
Modelis B yra rakto izoliavimas. Raktas generuojamas PKCS#11 modulio viduje ir žymimas neištraukiamu; modulis gali jį apvynioti atsarginei kopijai, bet joks procesas niekada neskaito neapdorotų baitų. Jūsų atsarginė kopija tada yra du artefaktai, kuriuos reikia atkurti teisinga tvarka: apvyniotas rakto blobas, kurį gali atidaryti tik ta modulių šeima, plius paprasta duomenų bazės, konfigūracijos ir sertifikatų kopija.
| 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 |
Palyginimas niekada nėra apie tai, kuris modelis stipresnis abstrakčiai. Jis apie tai, kurį jūsų komanda gali atkurti 2 valandą nakties su žmonėmis, kurie iš tikrųjų nemiega. Archyvas, kurio niekas negali iššifruoti, ir HSM blobas, kurio niekas netikrino, yra vienodai nenaudingi. Skirtumas tas, kad archyvo gedimas pasirodo slaptažodžių tvarkyklėje, o HSM gedimas slepiasi palaikymo sutartyje.
Ką turi turėti kiekviena CA atsarginė kopija
Abiem modeliams reikia to paties įrašų rinkinio. OpenSSL CA atveju tie failai yra index.txt su viena eilute kiekvienam išduotam sertifikatui, apimanti būseną, galiojimą, serial ir subjektą, tada index.txt.attr, serial, kuriame laikomas kitas išduodamas serijos numeris, crlnumber, kuriame laikomas kitas CRL numeris, ir openssl.cnf su dir, policy ir default_days, su kuriais jūsų CA iš tikrųjų veikia. openssl-ca vadovas paaiškina, ką valdo kiekvienas iš tų skaitiklių. easy-rsa laiko tuos pačius duomenis pki/ kataloge, o vars failas nustato sertifikato laukus.
Raktas ir sertifikatas yra dalys, kurių negalite atstatyti iš naujo. Duomenų bazė yra dalis, kurios negalite rekonstruoti iš atminties. Praleidus index.txt vis tiek galite pasirašyti naujus sertifikatus, ir tai yra būtent ta spąstai: sužinosite, kad jo trūksta, pirmą kartą klientui paklausus, ar sertifikatas buvo atšauktas. Užrašykite CA piršto atspaudą už atsarginės kopijos ribų, kad atkūrimas būtų lyginamas su pasitikimu verta reikšme, o ne su failu, kurį ką tik atkūrėte.
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
Atkūrimo testai, kurie nešakoja išdavėjo
Du veikiantys CA su tuo pačiu subjektu ir tuo pačiu raktu atrodo identiškai kiekvienam klientui, kuris pasitiki originalu. Du CRL su tuo pačiu numeriu, bet skirtingu turiniu yra būdas, kuriuo klientai tyliai priima jūsų atšauktą sertifikatą. Vykdykite atkūrimą pagrindiniame kompiuteryje be maršruto į jūsų klientus arba vienkartinėje VM, ir niekada neskelbkite CRL, kurį sukuria testas.
Testas, kuris įrodo tik tai, kad archyvas atsidaro, nieko neįrodo apie išdavimą. Seka, kuri svarbi: palyginkite atkurto ca.crt piršto atspaudą su užrašyta reikšme, patvirtinkite, kad serial atitinka tai, ką implikuoja paskutinis išduotas sertifikatas, išduokite vieną sertifikatą vienkartiniam CN ir stebėkite, kaip index.txt gauna eilutę, tada atšaukite tą sertifikatą ir iš naujo sugeneruokite CRL.
openssl verify -CAfile ca.crt -CRLfile crl.pem -crl_check client.crt
openssl crl -in crl.pem -noout -lastupdate -nextupdate
Su HSM tas pats testas eina per modulį. Išpakuokite blobą į pakaitinį įrenginį, patvirtinkite, kad modulio praneštas CA sertifikatas atitinka jūsų užrašytą piršto atspaudą, ir tik tada leiskite jam pasirašyti. Jei modulis turi savo objektų saugyklą, įvyniojimas turi apimti rakto objektą ir jo etiketę, nes rakto atkūrimas po kita etikete sugriauna į jį nukreiptą konfigūraciją.
Gedimų režimai, lemiantys pasirinkimą
Penki gedimai paaiškina daugiausiai tikrų nuostolių. Pamirštas archyvo slaptažodis be nepriklausomos paslapties kopijos paverčia archyvą plyta. Viena kopija viename diske miršta kartu su tuo disku, o kontrolinė suma niekada nepasako, ar iššifravimas dar veikia. Sertifikatai, atšaukti po atsarginės kopijos datos, po atkūrimo vėl atrodo galiojantys, todėl jūsų atsarginės kopijos intervalas yra ir jūsų atšaukimo akląją zona. Senesnio serial skaitiklio atkūrimas pakartotinai naudoja serijos numerius ir supainioja podėlius bei CRL paieškas, susietas su serial. Pakaitinis HSM, kuris atmeta apvyniotą blobą, techninės įrangos keitimą paverčia visišku pakartotiniu išdavimu.
Modelis A su pirmuoju ketvertu susidoroja blogai, bet matomai. Modelis B su jais susidoroja gerai iki tol, kol sugenda modulis arba tiekėjo procesas. Jei jūsų raktai yra eksportuojami ir komanda maža, šifruotas archyvas yra sąžiningas pasirinkimas, pagrįstas dviem laikmenomis ir rašytine slaptažodžio procedūra. Jei raktas neištraukiamas, pasirinkimo apskritai neturite, o darbas persikelia į tiekėjo atkūrimo kelio įrodymą prieš dieną, kai jo prireiks.
Modelio pasirinkimas ir planavimas
Trys sąlygos išsprendžia sprendimą. Ar raktą galima eksportuoti be tiekėjo proceso? Ar atkūrimas turi nusileisti ant techninės įrangos, kurios dar neturite? Kiek ilgai išdavimas gali sustoti, kol ginčijatės su palaikymu? Atsakykite į tuos tris ir modelis nuspręstas; visa kita po to yra planavimas.
Darykite atsarginę kopiją po kiekvienos pasirašymo ceremonijos ir prieš bet kokį konfigūracijos pakeitimą, nes konfigūracija yra būsenos dalis. Laikykite dvi kopijas skirtingose laikmenose skirtingose vietose, viena jų neprisijungusi, o iššifravimo paslaptį laikykite kitoje pasitikėjimo srityje nei kopijos. Užrašykite paskutinio sėkmingo atkūrimo datą atsarginės kopijos įraše. Atsarginė kopija, kuri niekada nebuvo atkurta, yra hipotezė, o ne kontrolė.
Prieš uždarydami bilietą, patvirtinkite šiuos penkis punktus:
- ca.crt piršto atspaudas užrašytas kažkur už atsarginės kopijos ribų.
- index.txt, serial, crlnumber ir openssl.cnf yra archyvo arba blobų rinkinio viduje.
- Slaptažodžio ar apvynioto rakto saugojimas dokumentuotas ir jį laiko kas nors kitas nei archyvo savininkas.
- Atkūrimas išbandytas izoliuotame pagrindiniame kompiuteryje su vienu išdavimu ir vienu atšaukimu.
- Atsaukimo spraga, kurią implikuoja jūsų atsarginės kopijos intervalas, priimta raštu arba sutrumpinta.