tls-auth қатесі әдетте қол алысу мәселесі ретінде хабарланады, бірақ ол ешқашан ондай болған емес. HMAC кез келген TLS өңдеуі басталмай тұрып басқару пакетінде тексеріледі, сондықтан сәйкес емес кілт немесе бағыт сертификат мәселесіне ұқсайтын және екі қабат ертерек шешілетін қате тудырады. Конвертті жеке объект ретінде қарастыру диагностиканы қысқартады: өрістерді оқыңыз, тексерудің ерте іске қосылатынына көз жеткізіңіз, содан кейін екі жақ келісуі керек үш нәрсені салыстырыңыз.

Конвертті құрастырылу ретімен оқыңыз

Басқару пакеті сессия идентификаторын, қосымша tls-auth HMAC-ын, қайталау мен растау ақпаратын және сенімді хабарлама идентификаторын тасымалдайды, одан кейін хабарлама түрінің жүктемесі келеді. Хабарлама қол алысу хабарламасы болса, жүктеме TLS шифрленген мәтіні болады. Бүкіл байланыс осындай: TLS материалы конверт қорғап тұрған хабарламаның ішінде жүреді. Қараңыз OpenVPN желілік хаттама анықтамалығы басқару арнасының өрістерін осы ретпен тізіп береді.

Сенімділік қабатын криптографиямен шатастыру оңай. Растаулар, қайта жіберу және хабарлама идентификаторы басқару хабарламалары сенімсіз тасымалдау арқылы бір рет және ретімен жетуі үшін бар. Олар аутентификация емес және дұрыс хабарлама идентификаторы пакетті кім жібергені туралы ештеңені дәлелдемейді.

Бұл топтастыруды тұжырымдамалық деңгейде ұстаңыз. Бұл байт ретінің диаграммасы емес және тегті есептеу үшін жеткіліксіз, себебі HMAC-қа кіретін өрістер іске асыруға, нұсқаға және режимге байланысты.

Тексерудің қол алысудан бұрын іске қосылатынын көрсетіңіз

Ортақ кілті бар қабылдағыш HMAC-ты тексеріп, жалған пакетті бірден тастай алады, қол алысу күйін бөлмей және ашық кілт жұмысын жасамай. Қорғаныс бастапқы қол алысу пакеттерін де қамтиды, сондықтан дұрыс емес кілт кеш аутентификация қатесі ретінде емес, сәтсіз қосылым ретінде көрінеді.

Демонның егжей-тегжейін арттырып, tun құрылғысының орнына басқару арнасын бақылаңыз:

openvpn --config /etc/openvpn/server.conf --verb 6

Сіз іздеп отырған нәрсе — басқару арнасының HMAC тексеру қатесі, ол пакет деңгейінде, кез келген TLS ескертуінен бұрын хабарланады. Журналда TLS ескертуі конверт қабылданғанын және қатенің ішке қарай жылжығанын білдіреді, бұл басқа шешімі бар басқа тергеу.

Бағытты өңдеу де осында. Статикалық кілт файлы tls-auth-пен қолданылғанда, екі жақ қарама-қарсы кілт бағыттарын алады және хаттама бұл бөліністі ұсталған пакетті жіберушіге кері шағылыстыруға болмайтындай пайдаланады. Бағытты кері айналдыру кілтті бірдей қалдырады және бәрібір әр пакет сәтсіз болады. Бір уақытта бір жақты өзгертіңіз, содан кейін жұп бірге жүктелуі үшін екі демонды да қайта іске қосыңыз.

Екі жақта кілтті, бағытты және digest-ті сәйкестендіріңіз

Үш мән сәйкесуі керек және олардың тек біреуі ғана файл. Статикалық кілттің мазмұны екі жақта бірдей болуы керек, бағыт қарама-қарсы болуы керек, ал HMAC үшін қолданылатын digest сәйкесуі керек. Кілт материалына тиер алдында конфигурацияны тексеріңіз, себебі бір кері бағыт бүлінген файлдан гөрі көбірек қатені түсіндіреді:

grep -E 'tls-auth|tls-crypt|key-direction|auth ' /etc/openvpn/server.conf

Ортақ құпияны редактормен емес, құралмен жасаңыз және рұқсаттарды қатаң ұстаңыз:

openvpn --genkey secret /etc/openvpn/ta.key
chmod 600 /etc/openvpn/ta.key

Ескі нұсқалар кілт жасау үшін сәл басқа параметрлер ретін қабылдаған және сол нұсқаларға жазылған профильдер әлі де айналымда. Жасалған файл екі жағдайда да бір типтегі объект, сондықтан тексеру — екі жақта бірдей байттар бар ма, оларды қай жазу жасағаны емес.

tls-auth-ты tls-crypt-пен шатастырмаңыз. Екеуі де басқару арнасын қорғайды, бірақ tls-crypt оны қосымша шифрлайды және қол алысуды бақылаушылардан жасырады, және бағыт бөлінісін өзінің кілт өңдеуімен алмастырады. Біреуін қолданатын профиль екіншісіне конфигурацияланған серіктеспен жұмыс істемейді және digest-ті реттеу бұл алшақтықты жаппайды.

Тегті тек нақты форматтан қайта жасаңыз

Байтқа дейін дәл қайта жасау — VPN жүргізуден бөлек міндет және ол тек нақты кірістермен жұмыс істейді: пакетті құрастырған іске асыру мен нұсқа, таңдалған digest, бағыт және сессия идентификаторы мен растаулар массивін қоса алғандағы нақты байттар. Өрістер тізімінің мәтіндік бейнесі — ол байттар емес.

Тег ұзындығы digest-тен шығады, сондықтан тіркелген ұзындық болжамы оны біреу өзгерткен сәтте бұзылады. Пакетті іске асыру жасайтындай хэштеңіз, блог жазбасындағы кесте ұсынатындай емес, және қолмен шығарған күтумен емес, сол серіктестен алынған жазбамен салыстырыңыз.

Бұл жаттығуды өндірістік профильдерден аулақ ұстаңыз. Тегті қайта жасауда орналастыру қорғанысты қосуы керек пе, жоқ па — оны ештеңе айтпайды.

Қорғанысты алып тастамай сәйкессіздікті кері қайтарыңыз

Сынақ қызықтыратын нәрсе — tls-auth-ты жойып, қосылымның сәтті болғанын көріп, кілт қате болды деп қорытынды жасау. Бұл жауап қорғанысқа тұрады және үш мәннің қайсысы сәйкеспеді дегенді үйретпейді. Оның орнына сервер жағынан бекітілген сәйкес конфигурацияны алып, сонымен салыстырыңыз.

Өзгерістерді қайтарылатындай етіп дайындаңыз. Алдыңғы сервер конфигурациясы мен кілт файлын сақтаңыз, түзетілген жұпты қолданыңыз, клиенттің қол алысуды аяқтайтынын тексеріңіз, содан кейін ғана сақтық көшірмені жойыңыз. Егер өзгерістен кейін клиенттер сәтсіз болса, үзіліс кезінде үшінші нұсқаны ойлап таппай, алдыңғы файлдарды қалпына келтіріңіз. Қалпына келтіру — бастамас бұрын өзіңіз білетін бір команда болуы керек.

Соңында, өткен тексерудің нені білдіретінін есте сақтаңыз. Ол серіктестің ортақ кілті бар екенін дәлелдейді, оның сертификаты немесе тіркелгісі рұқсат етілгенін емес, және ол келісілген деректер арнасының шифры туралы ештеңе айтпайды. Авторизация мен деректерді қорғау кейінірек орнатылады, сондықтан конверттің таза тексеруі — бастапқы нүкте, үкім емес.

Қатысты мақалалар