VPN жеке кілті қайда тұруы керек: файл, CNG әлде TPM?
VPN сәйкестігі үшін кілт файлы, экспортталмайтын бағдарламалық қойма және TPM арасында таңдап, таңдауды командалармен және қайтару жоспарымен дәлелдеңіз.
Екі сұрақ VPN жеке кілтінің қайда тұруы керектігін шешеді: кілт материалын хосттан көшіруге бола ма және процесс оны клавиатурада ешкім жоқ кезде қолдана ала ма. Қойманың маркетингтік белгісі екеуіне де жауап бермейді. Қайта жүктеуден кейін қайтуы керек туннель демоны бақылаусыз қолдануды қажет етеді, бұл адам енгізетін PIN-ге байланғанның бәрін жоққа шығарады.
Көшіру мен қолдану арасында таңдаңыз
Көшіру мен қолдану әртүрлі сәтсіздікке ұшырайды, сондықтан оларды бір емес, екі талап ретінде қарастырыңыз. Кілт байттарын оқи алатын шабуылдаушы сәйкестікті басқа хостқа алып кетеді, ал бастапқы машина мұны байқамайды. Байттарды оқи алмайтын, бірақ қолтаңба процесіне жете алатын шабуылдаушы бұл қатынас жалғасқанша аутентификациядан өте береді.
Файлдағы кілт тривиалды түрде көшіріледі, сондықтан оны сақтау және қалпына келтіру де ең оңай. Бағдарламалық кілт қоймасы шекараны емес, API-ді өзгертеді: провайдер өзінің экспорт шақыруларынан бас тартады, бірақ кілтті орнатқан сол әкімшілік контекстің материалға баратын басқа жолдары әдетте бар. Бағдарламалық провайдерде экспортталмайтын болу қолдау көрсетілетін операциялар туралы мәлімдеме, аппараттық қабырғаның дәлелі емес. Оны кездейсоқ көшіруге қарсы тежегіш ретінде қарастырыңыз, сессияңызды әлдеқашан ұстаған адамнан қорғау ретінде емес.
TPM немесе смарт-карта қолтаңба операциясын аппараттық ішінде орындайды және тек нәтижені қайтарады. Бұл көшіру жолын жабады, ал қолдану жолын қолтаңба сұрай алатынның бәріне ашық қалдырады.
Қойманы туннель демонына сәйкестендіріңіз
Демон мұны қауіпсіздік саясатынан да көп шектейді. WireGuard файлдан немесе wg set кірісінен base64 жеке кілт алады және сертификат қоймасына жолы жоқ, сондықтан TPM қолдайтын интерфейс кілті сөзге келмейді. OpenSSL 3-ке қарсы құрастырылған OpenVPN кілтті провайдер URI арқылы жүктей алады, ал strongSwan PKCS#11 қолдауының қасында TPM плагинін жеткізеді, бірақ екеуі де пакетіңіздің қалай құрастырылғанына байланысты.
Таңдалған қоймаға жете алмайтын демон аппараттық шекараны безендіруге айналдырады. Біреу кілтті бір рет экспорттайды, файлда қалдырады, ал жобаның қалғаны сол көшірмеде тыныш жұмыс істейді.
Жаңарту сәйкестендірудің екінші жартысы, және көптеген жоба дәл осы жерде күйрейді. Бірінші тіркеуде жұмыс істейтін, бірақ әр қайта шығару үшін консольге кіруді талап ететін қойма, сертификат ыңғайсыз сағатта біткенде бірінші рет айналып өтіледі. Ағымдағы кілттің әлі айлары бар кезде қайта шығару жолын сынаңыз.
Кілтті көшіруден бұрын инвентарлаңыз
Кілттің не екенін, оның қайда тұратынын өзгертуден бұрын жазып алыңыз, өйткені subject alternative names жоғалтатын көшіру туннельді маршруттау қатесі ретінде оқылатындай бұзады. Сертификатты шығарыңыз, жеке кілттің демон күтетін жерде оқылатынын растаңыз және жұптың шынымен сәйкес келетінін тексеріңіз.
openssl x509 -in vpn.crt -noout -subject -ext subjectAltName
openssl pkey -in vpn.key -check -noout
openssl x509 -in vpn.crt -noout -pubkey | openssl sha256
openssl pkey -in vpn.key -pubout | openssl sha256
Соңғы екі қорытынды бірдей болуы керек. Егер олай болмаса, демон орнатуды аяқтайды, содан кейін әр әрекетте нақты себепке жақын емес сертификат немесе қолтаңба қатесімен сәтсіздікке ұшырайды. WireGuard баламасы қысқарақ, өйткені ашық кілт тікелей жекеден шығарылады: wg pubkey < /etc/wireguard/wg0.key серверіңіз әлдеқашан сақтаған серіктес кілтін шығаруы керек.
Рұқсаттар сол инвентарға жатады. stat -c '%a %U:%G' /etc/wireguard/wg0.key 600 root:root қайтаруы керек, ал топқа немесе әлемге оқылатынның бәрі кілттің сіз ешқашан ойламаған процестерге әлдеқашан қолжетімді болғанын білдіреді.
Қойманы және қолдану жолын тексеріңіз
Тексерудің үш бөлігі бар, үшіншісі қалдырылып кетеді. Кілттің таңдалған қоймада бар екенін растаңыз, демонның сол кілтті жүктегенін, қалған көшірмені емес, растаңыз, содан кейін экспорт артефактісі жоқ кезде әлі де іске қосылатынын растаңыз.
certutil -store -user My
certutil -csp "Microsoft Platform Crypto Provider" -key -user
certutil -verifykeys -user My
ipsec listcerts
Windows-та бірінші команда жеке қойманы тізімдеп, әр жазбаның жанына кілт провайдерін басып шығарады, және сол жерде аппараттық қорғалған көрінетін, бірақ бағдарламалық провайдерде отырған сертификат шығады. Екіншісі платформалық криптопровайдер ұстайтын кілттерді тізімдейді, сондықтан сертификаты бар болғанда сол жерде жоқ VPN сәйкестігі жеке жартысының басқа жерде тұратынын білдіреді. Linux шлюзінде ipsec listcerts strongSwan-ның нені жүктегенін, TPM плагинінен келген кілттерді қоса хабарлайды. Жазба санына сенудің орнына саусақ іздерін немесе ашық кілт хэштарын инвентармен салыстырыңыз.
Теріс тест — жобаны дәлелдейтін тест. Экспортталған кілтті демонның конфигурациялық каталогынан шығарыңыз, қызметті қайта іске қосыңыз және журналда қандай сәйкестік ұсынатынын оқыңыз. Бәрібір көтерілетін туннель қойманы пайдаланады; сәтсіз іске қосу жобаның шынымен көшірмеде жұмыс істегенін білдіреді.
Жаңарту мен қайтаруды жазыңыз
Қайтару екі отбасы арасында қатты ерекшеленеді, және бұл айырмашылық жоба жазбасына жатады, инцидент қоңырауына емес. Файлдағы кілтті шифрлап сақтауға және қалпына келтіруге болады, сондықтан сәтсіз көшіру қайтарылады. Экспортталмайтын кілтті мүлдем сақтауға болмайды, бұл құрылғы өлгенде қайта шығару мен қайта тіркеуді жалғыз қалпына келтіру жолына айналдырады.
Мерзімнің бітуін үзіліске айналмас бұрын тексеріңіз: openssl x509 -in vpn.crt -noout -checkend 2592000 сертификат отыз күн ішінде біткенде нөлдік емес кодпен аяқталады, сондықтан ол мониторинг тексерісіне тікелей кіреді. Бұл жолды апта сайын іске қосу ешкім жоспарламаған жаңартуды ұстайды.
Жою серверде орындалады: серіктесті жойыңыз немесе сериялық нөмірді қайтарып алыңыз, содан кейін туннельдің сәтсіздігін растаңыз, өйткені кэштелген сессиясы бар клиент жартылай орындалған қайтарып алуды біраз уақыт жасыра алады. Қайтарып алу тек CA дерекқорына емес, концентратордың CRL немесе OCSP жолына да жетуі керек. Сертификат — ашық құжат, және RFC 5280 профилі оның қалай тексерілетінін қамтиды; бұл тексерудің ешбір бөлігі ротациядан бұрын көшірілген жеке кілтті қорғамайды.
Шешімді бір жерге жазыңыз: қай қойма кілтті ұстайды, қай процесс оны пайдалана алады, кім оны қайта шығара алады және қайтару қандай. Аудиторлар сұрайтын абзац — сол, және кадр ауысуынан аман қалатыны — сол.