Kopje rezervë e një CA private: arkiv i kriptuar apo kopje e çelësit HSM
Arkiv i kriptuar ose çelës i mbështjellë nga HSM: si rikthehet çdo model kopje rezervë i CA VPN, çfarë duhet të përmbajë dhe cilën dështim mund të mbijetoni vërtet.
Pyetja që vendos shumicën e kësaj nuk është si e kriptoni arkivin. Është nëse çelësi juaj privat i CA mund të largohet fare nga kontejneri i tij. Nëse çelësi është skedar, mund të kopjoni të gjithë drejtorinë CA në një blob të kriptuar dhe të përfundoni në minuta. Nëse jeton në një HSM ose në një token që e shënon çelësin si të paaplikueshëm për nxjerrje, ajo kopje nuk ekziston, dhe plani juaj bëhet plan për procedurën e mbështjelljes dhe rikthimit të furnizuesit. Të dy modelet funksionojnë, dështojnë ndryshe, dhe dështimi që mund të mbijetoni është ai rreth të cilit ia vlen të projektohet.
Ku ndahen dy modelet e kopjes rezervë
Modeli A është kopje drejtorie. Një CA në stil OpenSSL është drejtori pune, jo një certifikatë e vetme: ca.key ose cakey.pem, ca.crt, baza e të dhënave të lëshimit, numëruesit serial dhe crlnumber, dhe openssl.cnf. Vuloseni atë drejtori me një shifër simetrike, zhvendoseni rezultatin në një medium të dytë, dhe rikthimi do të thotë shpaketo, verifiko, nënshkruaj. Gjithçka që i duhet lëshuesit udhëton bashkë, përfshirë javë histori anulimi që askush nuk kujtohet ta ketë shkruar.
Modeli B është mbajtja e çelësit. Çelësi gjenerohet brenda një moduli PKCS#11 dhe shënohet si i panxjerrshëm; moduli mund ta mbështjellë për kopje rezervë, por asnjë proces nuk lexon kurrë bajtët e papërpunuar. Kopja juaj rezervë është atëherë dy artefakte që duhet të rikthehen në rendin e duhur: një blob çelësi i mbështjellë që vetëm ajo familje modulesh mund ta hapë, plus një kopje e thjeshtë e bazës së të dhënave, konfigurimit dhe certifikatave.
| 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 |
Krahasimi nuk është kurrë për atë se cili model është më i fortë në mënyrë abstrakte. Është për atë se cilin ekipi juaj mund ta rikthejë në orën 2 të mëngjesit me njerëzit që janë vërtet zgjuar. Një arkiv që askush nuk mund ta dekriptojë dhe një blob HSM që askush nuk e ka testuar janë njësoj të padobishëm. Diferenca është se dështimi i arkivit shfaqet në një menaxher fjalëkalimesh, dhe dështimi i HSM fshihet në një kontratë mbështetjeje.
Çfarë duhet të përmbajë çdo kopje rezervë CA
Të dy modelet kanë nevojë për të njëjtin grup regjistrimesh. Në një CA OpenSSL ata skedarë janë index.txt me një rresht për çdo certifikatë të lëshuar që mbulon statusin, skadimin, serialin dhe subjektin, pastaj index.txt.attr, serial që mban serialin e radhës për t'u lëshuar, crlnumber që mban numrin e radhës të CRL, dhe openssl.cnf me dir, policy dhe default_days me të cilat CA juaj punon vërtet. Manuali i openssl-ca shpjegon çfarë kontrollon secili prej atyre numëruesve. easy-rsa mban të njëjtat të dhëna nën pki/, me një skedar vars që vendos fushat e certifikatës.
Çelësi dhe certifikata janë pjesët që nuk mund t'i rindërtoni. Baza e të dhënave është pjesa që nuk mund ta rindërtoni nga kujtesa. Kapërcimi i index.txt ju lë gjithsesi në gjendje të nënshkruani certifikata të reja, dhe pikërisht kjo është kurthi: e zbuloni se mungon herën e parë që një klient pyet nëse një certifikatë u anulua. Regjistroni gjurmën e gishtit të CA jashtë kopjes rezervë, që një rikthim të krahasohet me një vlerë që ju besoni dhe jo me skedarin që sapo rikthyet.
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
Teste rikthimi që nuk e degëzojnë lëshuesin
Dy CA të gjalla me të njëjtin subjekt dhe të njëjtin çelës duken identike për çdo klient që i beson origjinalit. Dy CRL me të njëjtin numër por përmbajtje të ndryshme është mënyra se si klientët pranojnë në heshtje një certifikatë që ju e anuluat. Ekzekutoni rikthimin në një host pa rrugë drejt klientëve tuaj, ose në një VM të përdorimit të njëhershëm, dhe mos publikoni kurrë CRL-në që prodhon testi.
Një test që provon vetëm se arkivi hapet nuk provon asgjë rreth lëshimit. Sekuenca që ka rëndësi: krahasoni gjurmën e gishtit të ca.crt të rikthyer me vlerën që regjistruat, konfirmoni se seriali përputhet me atë që nënkupton certifikata juaj e fundit e lëshuar, lëshoni një certifikatë për një CN të përdorimit të njëhershëm dhe shikoni index.txt të fitojë një rresht, pastaj anuloni atë certifikatë dhe rigjeneroni CRL-në.
openssl verify -CAfile ca.crt -CRLfile crl.pem -crl_check client.crt
openssl crl -in crl.pem -noout -lastupdate -nextupdate
Me një HSM i njëjti test kalon përmes modulit. Shpaketoni blob-in në pajisjen zëvendësuese, konfirmoni se certifikata CA që raporton moduli përputhet me gjurmën tuaj të regjistruar, dhe vetëm atëherë lëreni të nënshkruajë. Nëse moduli ka depon e vet të objekteve, mbështjellja duhet të mbulojë objektin e çelësit dhe etiketën e tij, sepse rikthimi i çelësit nën një etiketë tjetër thyen konfigurimin që tregon drejt tij.
Mënyrat e dështimit që vendosin zgjedhjen
Pesë dështime shpjegojnë shumicën e humbjeve reale. Një frazëkalim arkivi e harruar pa kopje të pavarur të sekretit e kthen arkivin në tullë. Një kopje e vetme në një disk vdes me atë disk, dhe një kontrollshumë nuk ju thotë kurrë nëse dekriptimi ende funksionon. Certifikatat e anuluara pas datës së kopjes duken përsëri të vlefshme pas një rikthimi, kështu që intervali i kopjes suaj është edhe pika juaj e verbër e anulimit. Rikthimi i një numëruesi serial më të vjetër ripërdor numrat serialë dhe ngatërron cache-t dhe kërkimet CRL të lidhura me serialin. Një HSM zëvendësues që refuzon blob-in e mbështjellë e kthen një zëvendësim harduerik në rilëshim të plotë.
Modeli A i trajton keq por dukshëm katër të parët. Modeli B i trajton mirë derisa moduli ose procesi i furnizuesit dështon. Nëse çelësat tuaj janë të eksportueshëm dhe ekipi është i vogël, arkivi i kriptuar është zgjedhja e ndershme, e mbështetur nga dy media dhe një procedurë e shkruar e frazëkalimit. Nëse çelësi është i panxjerrshëm nuk keni aspak zgjedhje, dhe puna zhvendoset në provimin e rrugës së rikthimit të furnizuesit para ditës që do t'ju duhet.
Zgjedhja e modelit dhe planifikimi
Tre kushte e zgjidhin vendimin. A mund të eksportohet çelësi pa një proces furnizuesi? A duhet një rikthim të ulet në harduer që nuk e zotëroni ende? Sa kohë mund të ndalet lëshimi ndërsa debatoni me mbështetjen? Përgjigjuni atyre treve dhe modeli është vendosur; gjithçka pas kësaj është planifikim.
Merrni një kopje pas çdo ceremonie nënshkrimi dhe para çdo ndryshimi konfigurimi, sepse konfigurimi është pjesë e gjendjes. Mbani dy kopje në media të ndryshme në vende të ndryshme, njëra prej tyre offline, dhe mbajini sekretin e dekriptimit në një domen besimi të ndryshëm nga kopjet. Shkruani datën e rikthimit të fundit të suksesshëm në regjistrimin e kopjes. Një kopje që nuk është rikthyer kurrë është hipotezë, jo kontroll.
Përpara se të mbyllni tiketën, konfirmoni këto pesë pika:
- Gjurma e gishtit e ca.crt është regjistruar diku jashtë kopjes.
- index.txt, serial, crlnumber dhe openssl.cnf janë të gjitha brenda arkivit ose grupit të blob-ve.
- Ruajtja e frazëkalimit ose e çelësit të mbështjellë është dokumentuar dhe e mban dikush tjetër përveç pronarit të arkivit.
- Një rikthim u testua në një host të izoluar me një lëshim dhe një anulim.
- Hendeku i anulimit që nënkupton intervali i kopjes suaj është pranuar me shkrim ose shkurtuar.