Жеке CA сақтық көшірмесі: шифрланған мұрағат немесе HSM кілт көшірмесі
Шифрланған мұрағат немесе HSM-мен оралған кілт: әр VPN CA сақтық көшірме моделі қалай қалпына келтіріледі, ол неден тұруы керек және қандай ақаудан шынымен аман қала аласыз.
Мұның көбін шешетін сұрақ мұрағатты қалай шифрлайтыныңыз емес. Ол — CA жеке кілтіңіз өз контейнерінен мүлдем шыға ала ма. Егер кілт файл болса, бүкіл CA каталогын бір шифрланған блокқа көшіріп, бірнеше минутта бітіре аласыз. Егер ол HSM ішінде немесе кілтті алуға болмайтын деп белгілейтін токенде тұрса, ондай көшірме жоқ, және жоспарыңыз жеткізушінің орау және қалпына келтіру рәсімі туралы жоспарға айналады. Екі модель де жұмыс істейді, олар әртүрлі сәтсіздікке ұшырайды, және сіз аман қала алатын ақау — дизайн жасауға тұрарлық сол.
Екі сақтық көшірме моделі қайда бөлінеді
A моделі — каталог көшірмесі. OpenSSL стиліндегі CA — жұмыс каталогы, бір сертификат емес: 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 сақтық көшірмесінде не болуы керек
Екі модельге де бірдей жазбалар жиынтығы қажет. OpenSSL CA-да бұл файлдар: index.txt — әр шығарылған сертификатқа бір жол, күйі, мерзімі, serial және субъектісі қамтылады, содан кейін index.txt.attr, келесі шығарылатын serial-ды ұстайтын serial, келесі CRL нөмірін ұстайтын crlnumber және CA-ыңыз шынымен жұмыс істейтін dir, policy және default_days бар openssl.cnf. 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 есептегішін қалпына келтіру сериялық нөмірлерді қайта пайдаланады және serial-ға байланған кэштер мен CRL іздеулерін шатастырады. Оралған блоктан бас тартатын ауыстыру HSM аппараттық ауыстыруды толық қайта шығаруға айналдырады.
A моделі алғашқы төртеуін нашар, бірақ көрінетін түрде шешеді. B моделі оларды модуль немесе жеткізуші процесі істен шыққанша жақсы шешеді. Егер кілттеріңіз экспортталатын болса және команда шағын болса, шифрланған мұрағат — адал таңдау, екі тасымалдаушымен және жазбаша пароль рәсімімен қолдау көрсетілген. Егер кілт алынбайтын болса, таңдауыңыз мүлде жоқ, және жұмыс оны қажет ететін күнге дейін жеткізушінің қалпына келтіру жолын дәлелдеуге ауысады.
Модельді таңдау және оны жоспарлау
Үш шарт шешімді қабылдайды. Кілтті жеткізуші процесінсіз экспорттауға бола ма? Қалпына келтіру әлі иемденбейтін аппараттық құралға түсуі керек пе? Қолдау қызметімен дауласқанда шығару қанша уақыт тоқтауы мүмкін? Осы үшеуіне жауап беріңіз де, модель шешілді; одан кейінгінің бәрі жоспарлау.
Әр қол қою рәсімінен кейін және кез келген конфигурация өзгерісінің алдында сақтық көшірме алыңыз, өйткені конфигурация — күйдің бөлігі. Екі көшірмені әртүрлі жердегі әртүрлі тасымалдаушыларда ұстаңыз, біреуі желіден тыс болсын, ал шифрды шешу құпиясын көшірмелерге қарағанда басқа сенім доменінде ұстаңыз. Соңғы сәтті қалпына келтіру күнін сақтық көшірме жазбасына жазыңыз. Ешқашан қалпына келтірілмеген сақтық көшірме — гипотеза, бақылау емес.
Билетті жабар алдында осы бес тармақты растаңыз:
- ca.crt саусақ ізі сақтық көшірмеден тыс бір жерде жазылған.
- index.txt, serial, crlnumber және openssl.cnf барлығы мұрағаттың немесе блоктар жиынының ішінде.
- Парольдің немесе оралған кілттің сақталуы құжатталған және мұрағат иесінен басқа біреуде.
- Қалпына келтіру оқшауланған хостта бір шығару және бір күшін жоюмен сыналған.
- Сақтық көшірме аралығынан туындайтын күшін жою алшақтығы жазбаша қабылданған немесе қысқартылған.