Резервна копија приватног CA: шифрирана архива или копија кључа у HSM-у
Шифрирана архива или HSM-ом обавијен кључ: како се враћа сваки модел резервне копије CA VPN, шта мора да садржи и који квар заиста можете да преживите.
Питање које одлучује већину овога није како шифрирате архиву. Већ да ли ваш приватни кључ CA уопште може да напусти свој контејнер. Ако је кључ датотека, можете копирати цео директоријум CA у један шифрирани блок и завршити за неколико минута. Ако живи у HSM-у или токену који кључ означава као неизводљив, та копија не постоји, и ваш план постаје план о поступку обавијања и враћања код добављача. Оба модела раде, не успевају на различите начине, а квар који можете да преживите је онај око ког вреди пројектовати.
Где се два модела резервне копије разилазе
Модел A је копија директоријума. CA у стилу OpenSSL је радни директоријум, а не један сертификат: ca.key или cakey.pem, ca.crt, база издавања, бројачи serial и crlnumber, и openssl.cnf. Запечатите тај директоријум симетричном шифром, преместите резултат на други медијум, а враћање значи распакивање, провера, потписивање. Све што је издаваоцу потребно путује заједно, укључујући недеље историје опозива за коју се нико не сећа да ју је писао.
Модел B је задржавање кључа. Кључ се генерише унутар модула PKCS#11 и означава као неизводљив; модул може да га обавије за резервну копију, али ниједан процес никада не чита сирове бајтове. Ваша резервна копија је тада два артефакта која морају да се врате у исправном редоследу: обавијени блок кључа који само та породица модула може да отвори, плус обична копија базе, конфигурације и сертификата.
| 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 |
Поређење никада није о томе који је модел јачи у апстрактном смислу. Оно је о томе који ваш тим може да врати у 2 сата ујутру са људима који су заиста будни. Архива коју нико не може да дешифрује и HSM блок који нико није тестирао једнако су бескорисни. Разлика је у томе што се квар архиве појављује у менаџеру лозинки, а квар HSM-а крије у уговору о подршци.
Шта свака резервна копија CA мора да садржи
Оба модела захтевају исти скуп записа. У CA OpenSSL те датотеке су index.txt са једним редом по издатом сертификату који покрива статус, истек, serial и субјекат, затим index.txt.attr, serial који држи следећи серијски број за издавање, crlnumber који држи следећи број CRL-а, и openssl.cnf са dir, policy и default_days са којима ваш CA заиста ради. Приручник openssl-ca објашњава шта контролише сваки од тих бројача. easy-rsa држи исте податке под pki/, а датотека vars одређује поља сертификата.
Кључ и сертификат су делови које не можете поново да изградите. База је део који не можете да реконструишете по сећању. Прескакање index.txt вас и даље оставља у могућности да потписујете нове сертификате, и то је управо замка: откријете да недостаје први пут кад клијент пита да ли је сертификат опозван. Запишите отисак CA изван резервне копије, да се враћање пореди са вредношћу којој верујете, а не са датотеком коју сте управо вратили.
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
Тестови враћања који не разгранавају издаваоца
Два жива CA са истим субјектом и истим кључем изгледају идентично сваком клијенту који верује оригиналу. Два CRL-а са истим бројем али различитим садржајем начин су на који клијенти тихо прихватају сертификат који сте опозвали. Покрените враћање на хосту без руте до ваших клијената или у једнократној VM, и никада не објављујте CRL који тест произведе.
Тест који доказује само да се архива отвара не доказује ништа о издавању. Следећи редослед је важан: упоредите отисак враћеног ca.crt са вредношћу коју сте записали, потврдите да serial одговара ономе што имплицира ваш последњи издати сертификат, издајте један сертификат за једнократни CN и гледајте како index.txt добија ред, затим опозовите тај сертификат и поново генеришите CRL.
openssl verify -CAfile ca.crt -CRLfile crl.pem -crl_check client.crt
openssl crl -in crl.pem -noout -lastupdate -nextupdate
Са HSM-ом исти тест иде кроз модул. Распакујте блок у заменски уређај, потврдите да CA сертификат који модул пријављује одговара вашем записаном отиску, и тек онда му дозволите да потписује. Ако модул има сопствено складиште објеката, обавијање мора да покрије објекат кључа и његову ознаку, јер враћање кључа под другом ознаком квари конфигурацију која на њега показује.
Режими квара који одлучују избор
Пет кварова објашњава већину стварних губитака. Заборављена лозинка архиве без независне копије тајне претвара архиву у циглу. Једна копија на једном диску умире са тим диском, а контролна сума вам никада не каже да ли дешифровање још ради. Сертификати опозвани после датума резервне копије поново изгледају важећи после враћања, тако да је ваш интервал резервне копије и ваша слепа тачка опозива. Враћање старијег serial бројача поново користи серијске бројеве и збуњује кешеве и претраге CRL-а везане за serial. Заменски HSM који одбија обавијени блок претвара замену хардвера у потпуно поновно издавање.
Модел A се носи са прва четири лоше али видљиво. Модел B се носи са њима добро док не откажу модул или процес добављача. Ако су ваши кључеви изводљиви и тим је мали, шифрирана архива је поштен избор, поткрепљен двама медијумима и писаном процедуром лозинке. Ако је кључ неизводљив, немате никакав избор, и посао се премешта на доказивање пута враћања код добављача пре дана када ће вам требати.
Избор модела и планирање
Три услова решавају одлуку. Може ли кључ да се извезе без процеса добављача? Мора ли враћање да слети на хардвер који још не поседујете? Колико дуго издавање може да стоји док се расправљате са подршком? Одговорите на та три и модел је решен; све после тога је планирање.
Узмите резервну копију после сваке церемоније потписивања и пре сваке промене конфигурације, јер је конфигурација део стања. Држите две копије на различитим медијумима на различитим местима, једна од њих ван мреже, а тајну дешифровања држите у другом домену поверења од копија. Запишите датум последњег успешног враћања на запис резервне копије. Резервна копија која никада није враћена је хипотеза, а не контрола.
Пре него што затворите тикет, потврдите ових пет тачака:
- Отисак ca.crt је записан негде изван резервне копије.
- index.txt, serial, crlnumber и openssl.cnf су сви унутар архиве или скупа блокова.
- Чување лозинке или обавијеног кључа је документовано и држи га неко други, не власник архиве.
- Враћање је тестирано на изолованом хосту са једним издавањем и једним опозивом.
- Празнина у опозиву коју имплицира ваш интервал резервне копије је писмено прихваћена или скраћена.