Swali linaloamua sehemu kubwa ya hili si jinsi unavyosimba kumbukumbu. Ni kama ufunguo wako wa faragha wa CA unaweza kuondoka kwenye chombo chake kabisa. Ikiwa ufunguo ni faili, unaweza kunakili saraka yote ya CA kwenye blob moja iliyosimbwa na kumaliza kwa dakika. Ikiwa unaishi katika HSM au tokeni inayotaja ufunguo kama usioweza kutolewa, nakala hiyo haipo, na mpango wako unakuwa mpango kuhusu utaratibu wa kufunga na kurejesha wa msambazaji. Modeli zote mbili zinafanya kazi, zinashindwa kwa njia tofauti, na hitilafu unayoweza kustahimili ndiyo inayofaa kubuniwa.

Mahali modeli mbili za nakala rudufu zinapotengana

Modeli A ni nakala ya saraka. CA ya mtindo wa OpenSSL ni saraka ya kazi, si cheti kimoja: ca.key au cakey.pem, ca.crt, hifadhidata ya utoaji, vihesabu vya serial na crlnumber, na openssl.cnf. Tia muhuri saraka hiyo kwa sifa ya usimbaji ya ulinganifu, hamisha matokeo kwenye chombo cha pili, na kurejesha kunamaanisha kufungua, kuthibitisha, kutia sahihi. Kila kitu mtoaji anachohitaji husafiri pamoja, ikiwa ni pamoja na wiki za historia ya kufuta ambazo hakuna anayekumbuka aliandika.

Modeli B ni kuzuia ufunguo. Ufunguo huzalishwa ndani ya moduli ya PKCS#11 na hutajwa kama usioweza kutolewa; moduli inaweza kuufunga kwa nakala rudufu, lakini hakuna mchakato unaosoma baiti ghafi. Nakala yako rudufu basi ni vitu viwili vinavyopaswa kurejeshwa kwa mpangilio sahihi: blob ya ufunguo iliyofungwa ambayo familia hiyo ya moduli pekee inaweza kuifungua, pamoja na nakala ya kawaida ya hifadhidata, usanidi na vyeti.

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

Ulinganisho kamwe hauhusu modeli ipi ina nguvu zaidi kwa njia ya dhahania. Unahusu ipi timu yako inaweza kurejesha saa 2 usiku pamoja na watu walio macho kweli. Kumbukumbu ambayo hakuna anayeweza kuifumbua na blob ya HSM ambayo hakuna aliyejaribu zote hazina maana sawa. Tofauti ni kwamba hitilafu ya kumbukumbu huonekana kwenye kidhibiti cha nenosiri, na hitilafu ya HSM hujificha kwenye mkataba wa msaada.

Kila nakala rudufu ya CA inapaswa kuwa na nini

Modeli zote mbili zinahitaji seti sawa ya kumbukumbu. Katika CA ya OpenSSL faili hizo ni index.txt yenye mstari mmoja kwa kila cheti kilichotolewa unaofunika hali, mwisho, serial na mada, kisha index.txt.attr, serial inayoshikilia serial inayofuata kutolewa, crlnumber inayoshikilia namba inayofuata ya CRL, na openssl.cnf yenye dir, policy na default_days ambazo CA yako inafanya kazi nazo kweli. Mwongozo wa openssl-ca unaeleza kila kihesabu kinadhibiti nini. easy-rsa huhifadhi data sawa chini ya pki/, huku faili ya vars ikiamua sehemu za cheti.

Ufunguo na cheti ni sehemu ambazo huwezi kujenga upya. Hifadhidata ni sehemu ambayo huwezi kuijenga upya kutoka kumbukumbu. Kuruka index.txt bado kunakuacha ukiweza kutia sahihi vyeti vipya, na hiyo ndiyo mtego hasa: unagundua inakosekana mara ya kwanza mteja anapouliza kama cheti kilifutwa. Rekodi alama ya vidole ya CA nje ya nakala rudufu, ili kurejesha kulinganishwe na thamani unayoiamini na si faili uliyoijaribu kurejesha.

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

Majaribio ya kurejesha yasiyogawanya mtoaji

CA mbili zilizo hai zenye mada sawa na ufunguo sawa zinaonekana sawa kwa kila mteja anayeamini asili. CRL mbili zenye namba sawa lakini maudhui tofauti ni njia ambayo wateja hukubali kwa utulivu cheti ulichokifuta. Endesha urejeshaji kwenye mwenyeji asiye na njia kwa wateja wako, au kwenye VM ya matumizi ya mara moja, na kamwe usichapishe CRL ambayo jaribio huzalisha.

Jaribio linalothibitisha tu kwamba kumbukumbu inafunguka halithibitishi chochote kuhusu utoaji. Mfululizo unaohesabiwa: linganisha alama ya vidole ya ca.crt iliyorejeshwa na thamani uliyorekodi, thibitisha serial inalingana na kile cheti chako cha mwisho kilichotolewa kinadokeza, toa cheti kimoja kwa CN ya matumizi ya mara moja na uone index.txt ikipata mstari, kisha futa cheti hicho na uzalishe CRL upya.

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

Na HSM jaribio hilo hilo hupitia moduli. Fungua blob kwenye kifaa cha badala, thibitisha cheti cha CA ambacho moduli inaripoti kinalingana na alama yako ya vidole iliyorekodiwa, na kisha tu iache itie sahihi. Ikiwa moduli ina hifadhi yake ya vitu, ufungaji unapaswa kufunika kitu cha ufunguo na lebo yake, kwa sababu kurejesha ufunguo chini ya lebo tofauti huvunja usanidi unaoelekeza kwake.

Njia za kushindwa zinazoamua chaguo

Hitilafu tano zinaeleza sehemu kubwa ya hasara halisi. Nenosiri la kumbukumbu lililosahaulika bila nakala huru ya siri hugeuza kumbukumbu kuwa tofali. Nakala moja kwenye diski moja hufa pamoja na diski hiyo, na checksum kamwe haikuambii kama ufumbuzi bado unafanya kazi. Vyeti vilivyofutwa baada ya tarehe ya nakala rudufu huonekana halali tena baada ya kurejesha, kwa hivyo muda wa nakala yako rudufu pia ni sehemu yako ya upofu ya kufuta. Kurejesha kihesabu cha serial cha zamani hutumia tena namba za serial na kuchanganya akiba na utafutaji wa CRL unaotegemea serial. HSM ya badala inayokataa blob iliyofungwa hugeuza ubadilishaji wa maunzi kuwa utoaji mpya kamili.

Modeli A inashughulikia nne za kwanza vibaya lakini kwa kuonekana. Modeli B inazishughulikia vizuri hadi moduli au mchakato wa msambazaji ushindwe. Ikiwa funguo zako zinaweza kuhamishwa nje na timu ni ndogo, kumbukumbu iliyosimbwa ni chaguo la uaminifu, likiungwa mkono na vyombo viwili na utaratibu wa nenosiri ulioandikwa. Ikiwa ufunguo hauwezi kutolewa huna chaguo kabisa, na kazi huhamia kuthibitisha njia ya kurejesha ya msambazaji kabla ya siku utakayoihitaji.

Kuchagua modeli na kupanga ratiba

Masharti matatu yanatatua uamuzi. Je, ufunguo unaweza kuhamishwa nje bila mchakato wa msambazaji? Je, kurejesha kunapaswa kutua kwenye maunzi ambayo bado huna? Utoaji unaweza kusimama kwa muda gani unapobishana na msaada? Jibu hayo matatu na modeli imeamuliwa; kila kitu baada ya hapo ni upangaji.

Chukua nakala rudufu baada ya kila sherehe ya kutia sahihi na kabla ya mabadiliko yoyote ya usanidi, kwa sababu usanidi ni sehemu ya hali. Weka nakala mbili kwenye vyombo tofauti katika maeneo tofauti, moja ikiwa nje ya mtandao, na uweke siri ya ufumbuzi katika eneo la uaminifu tofauti na nakala. Andika tarehe ya kurejesha kwa mafanikio ya mwisho kwenye rekodi ya nakala rudufu. Nakala rudufu ambayo haijawahi kurejeshwa ni dhana, si udhibiti.

Kabla ya kufunga tikiti, thibitisha mambo haya matano:

  • Alama ya vidole ya ca.crt imerekodiwa mahali fulani nje ya nakala rudufu.
  • index.txt, serial, crlnumber na openssl.cnf zote ziko ndani ya kumbukumbu au seti ya blob.
  • Utunzaji wa nenosiri au ufunguo uliofungwa umeandikwa na unashikiliwa na mtu asiye mmiliki wa kumbukumbu.
  • Kurejesha kulijaribiwa kwenye mwenyeji aliyetengwa na utoaji mmoja na ufutaji mmoja.
  • Pengo la ufutaji linalodokezwa na muda wa nakala yako rudufu limekubaliwa kwa maandishi au limefupishwa.

Makala zinazohusiana