OpenVPN tls-crypt-v2: клиент кілті мен оралған blob не істейді
tls-crypt-v2 профилінде клиенттің басқару кілті және оны тек сервер аша алатын оралған көшірмесі болады. Әрбір нысанды және шығарудың әрбір қадамын бөлек ұстаңыз.
tls-crypt-v2 профилін билетке қою, файлда не бар екенін санағанша зиянсыз көрінеді. Клиенттің басқару арнасының кілті сол кілттің шифрланған көшірмесінің қасында тұрады, ал үшінші нысан — орау кілті қабылдайтын серверден ешқашан шықпайды. Бұл үшеуі сақтау, бөлісу және шығару туралы әртүрлі сұрақтарға жауап береді. Оларды бөлу көптеген саясат дауларын басталмай тұрып шешеді.
Профиль шын мәнінде неден тұрады
tls-crypt-v2-нің клиенттік жартысы — кілт және оның оралған көшірмесі. Клиент ашық кілтті басқару арнасын қорғау үшін пайдаланады және орнату кезінде оралған көшірмені серверге береді, сондықтан сервер әр клиент үшін ашық көшірме сақтамай-ақ сол кілтті қалпына келтіреді. Орау кілті сол қалпына келтіруді мүмкін етеді және тек қабылдаушы жаққа тиесілі. Төмендегінің бәрі осы үш нысанның қайда тұратынынан туындайды.
| Object | Where it lives | What can open it | What a leak costs |
|---|---|---|---|
| Server wrapping key | accepting servers only | the unwrap step inside the server | every wrapped copy issued to that group becomes readable |
| Wrapped client key | inside the client profile | the server wrapping key | it names a client and exposes its metadata, but not the key inside |
| Client control key | inside the client profile, usable as-is | the client that owns it | someone can open handshakes as that client until the server refuses the key |
Кестені атауы бойынша емес, сақтау тұрғысынан оқыңыз, сонда салдар өзі айқындалады. Орау кілтін жоғалту — қымбат оқиға, өйткені профильде оны қайта құра алатын ештеңе жоқ және адал қалпына келтіру — топты қайта шығару. Сынып кеткен профиль арзанырақ, бірақ әлдеқайда жиі кездеседі, өйткені адамдар оралған көшірме файлды бөлісуге қауіпсіз етеді деп сеніп, профильді билеттерге қояды. Екі сәтсіздік әртүрлі жауап қажет етеді, сондықтан нысандар бөлек ұсталады.
Неге оралған көшірме бүкіл әңгіме емес
Профиль пайдалы клиенттік материалды оралған жұбымен бірге алып жүреді, сондықтан сервер үшін көшірмені қорғау файлды қорғау туралы ештеңе айтпайды. Blob жіберуге қауіпсіз, ал жариялауға қауіпсіз емес. Оның ішіндегі метадеректер blob-ты алған кез келген адамға көрінеді, соның ішінде ол қойылған билетті кейін оқитын адамға да.
Профильді конфигурация үлгісі емес, тіркелгі деректері ретінде қарастырыңыз. Сынып кеткен файл иесіне сервер бұл сәйкестікті қабылдауды тоқтатқанша жұмыс істейтін клиент сәйкестігін береді, ал орау сол терезеге қатысты ештеңе істемейді. Әр клиентке бір профиль шығарыңыз, сонда кері шақыру бір файлдың шешімі болып қалады, және орау кілтінің сақтық көшірмесін ол қосатын сервер конфигурациясынан бөлек жасаңыз. Екі әдет те бұзылған профильді қалпына келтірмейді, бірақ екеуі де келесісінің қаншалықты тез тежелетінін анықтайды.
Тексеру ілмегі қол алысуда қайда тұрады
Тексеру ілмегі TLS дестесі ашылудан бұрын жұмыс істейді, оның міндеті — оралған blob-та тасымалданатын метадеректерді тексеру. Ол сол метадеректерді және кішкентай, құжатталған ортаны алады, және аутентификация ілмегіне қарағанда оның жұмыс істейтін материалы азырақ. Ол пайдаланушы атын, сессия күйін немесе плагин айнымалыларын көреді деп болжау — бұл ілмектің нашар жазылуының әдеттегі жолы. Басқа ілмектен күтулерді қарызға алмай, ілмектің өз нұсқаулық бөлімін оқыңыз.
Оның шығу мәртебесі — шешім: нөлге тең емес нәтиже клиенттен бас тартады, ал нөлдік нәтиже қол алысуды жалғастыруға мүмкіндік береді. Сондықтан саясат метадеректер жоқ болғанда, талданбағанда немесе күтпегенде не болатынын айтуы керек. Алдымен бас тарту жолын жазыңыз, содан кейін қандай мәндер қолайлы екенін шешіңіз.
tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.shБұл екі жол сервердегі саясат беті: біреуі орау кілтін атайды, екіншісі әр клиентті бағалайтын бағдарламаны атайды. Қызықтың бәрі скриптте өмір сүреді, ол нұсқаларды басқаруға және кез келген басқа қатынау ережесіндей қарауға лайық.
Тіркелгі, сертификат және басқару кілті бөлек шығады
Басқару арнасын ерте қабылдау — аутентификация емес, өйткені ол TLS сәйкестігін тексеруден бұрын және кез келген тіркелгі авторизациясынан бұрын болады. Тіркелгіні өшіру, сертификатты қайтарып алу және клиенттің басқару кілтінен бас тарту — үш механизмі бар үш әрекет. Олардың тек біреуін орындайтын орналастыруда саясат емес, олқылық бар. Үшеуін әдейі үйлестіріңіз және қай қадам қай өкілеттікті жүзеге асыратынын жазып қойыңыз.
Уақыт — екінші айырмашылық. Өзгерген қабылдау тізімі жаңа қол алысуларға қолданылады, ал бұрыннан орнатылған сессиялар бірдеңе оларды тоқтатқанша жалғаса береді. Жаңа тізімдегі жазбаларды ескі сессиялардың аяқталғанының дәлелі ретінде санау — жойылған клиенттің сағаттар бойы қосылып тұруының жолы.
Үйлестірілмеген өкілеттіктер тәжірибеде оңай табылатын екі тесік қалдырады. Тіркелгі өшірілген күйде болуы мүмкін, ал оның басқару кілті әлі қол алысуды ашады, және сертификат қайтарып алынған болуы мүмкін, ал метадеректер саясаты сол клиентті әлі қабылдайды. Екеуі де әртүрлі жерлердегі бірдей қате, өйткені оператор бір тізімді бүкіл өкілеттік деп қарады. Жою кезінде үш тізімді қатар қойыңыз, сонда қате көрінеді.
Профильді шығару және кері шақыру
Шығару — жеңіл жартысы: қабылдаушы жақта клиент кілтін жасаңыз, профильді дәл бір иеге беріңіз, орау материалын шектеулі ұстаңыз және әр қабылдаушы серверде сол тексеру бағдарламасын іске қосыңыз. Арзан қабылдау — бүкіл топтың қасиеті, ең жаңа хосттың емес. Ескірірек немесе босаңырақ скрипті бар екінші сервер орналастырудың ең әлсіз жолына үнсіз айналады.
Кері шақыру үш қадамды әдейі ретпен талап етеді. Жаңа қол алысулар сәтсіз болуы үшін клиенттен тексеру ілмегінде бас тартыңыз, егер PKI пайдаланылса, оның сертификатын қайтарып алыңыз және тіркелгіні өшіріңіз, сонда кейінгі авторизацияда авторизациялайтын ештеңе қалмайды. Содан кейін ескі қабылдау рұқсат еткен сессияларды тоқтатыңыз, өйткені олар үшеуінің ешқайсысын байқамайды. Реттілікті сындыруға болатын клиентте жаттығыңыз.
Профильдегі метадеректер — сол саясаттың кірісі, ал қатынауды бақылау бұрыннан бар екенінің дәлелі емес. OpenVPN 2.6 дизайн құжаты нысандарды және олар тартатын шекараны сипаттайды, ал оларды орындау операторға қалады.