0x әлде 0s? ipsec.secrets файлындағы PSK форматын түсіну
Сол ортақ құпияны тырнақшадағы әріптік мәтін, 0x-тен кейінгі он алтылық немесе 0s-тен кейінгі Base64 түрінде жазуға болады. Қате префикс аутентификацияны істен шығарады, келіссөзді емес.
Бір клиент ортақ кілтпен аутентификациядан өтеді, екіншісі оны қабылдамайды, ал қойған таңбалар екі жақта да бірдей көрінеді. Бұл бірдей таңбалар болуы ықтимал; айырмашылық файл оларға қай декодтау ережесін қолданатынында. Тырнақшадағы жол сөзбе-сөз алынады, 0x таңбасынан басталатын токен он алтылық ретінде оқылады, ал 0s таңбасынан басталатын токен Base64 ретінде оқылады. Осы үш жазылудың тек біреуі ғана сіз көздеген мағынаны береді, сондықтан түзету әдетте жақсырақ құпиясөз емес, түрлендіру болып табылады.
Симптом шифрларға емес, кодтауға нұсқайды
Екі шет түрлі байттарды ұстағанда, келіссөз сәтті аяқталады, ал дәлелдеу одан кейін сәтсіз болады. Сонда журнал алгоритм сәйкессіздігінің орнына тұтастық немесе HMAC ақауын хабарлайды, себебі ұсыныс таңдалды да, аутентификация қадамы сәйкес келмеді. Ол жол құпияның пішінін ешқашан атамайды.
Кезең — бұл белгі. Таңдалған ұсыныстан кейін келген ақау екі жақтың кілт материалынан басқаның бәріне келіскенін білдіреді, ал «ұсыныс таңдалмады» саясатқа немесе шифр жиынтықтарына жатады. Құпиясөз дұрыс көрінгенде сәтсіз болатын тұтастық тексерісі кодтау сәйкессіздігінің көрінетін беті.
Бір құпия, файл оны оқи алатын үш тәсіл
Төрт байттық key1 мәні үшін он алтылық пен Base64 — бір байттардың екі қайта кодтауы, және тек бастапқы таңбалар талдаушыға қайсысын ұстап тұрғанын айтады. swanctl тіркелгі деректері сол конвенцияны ұстанады, сондықтан екі интерфейс арасында жылжытылған мән мағынасын тек префиксімен бірге жүргенде ғана сақтайды.
10.20.0.5 %any : PSK "key1"
10.20.0.5 %any : PSK 0x6b657931
10.20.0.5 %any : PSK 0sa2V5MQ==
Сол блоктағы екі бөлшек ең көп уақыт алады. Он алтылық сандар екі регистрді де қабылдайды, сондықтан 0x6b657931 мен 0x6B657931 бір мән, бірақ тақ таңба саны қабылданбай, үнсіз қате оқылады, бұл кесіндіден кейінгі әр байтты жылжытады. Base64 толықтыруы мәннің бөлігі, сондықтан соңғы = таңбаларынсыз қойылған жол қатты сәтсіз болудың орнына басқа байттарға декодталады.
Мәнді бір рет декодтаған профиль оны әлдеқашан түрлендірген, сондықтан қайта декодтау басқа байттар мен қате құпиясөзге ұқсайтын аутентификация ақауын береді. Тырнақша — кез келген анық емес нәрсе үшін қауіпсіз бағыт, өйткені мазмұн кодтау белгісінен басталса да әріптік күйінде қалады.
Base64 мәтіні қайдан келеді
Профиль экспорты мен өндіруші порталдары кілтті жиі әлдеқашан кодталған күйде береді, әдетте қолмен теруге ешқашан арналмаған деректер өрісінде. Не сол мәнді ашып, декодталған мәтінді тырнақшада сақтаңыз, не белгіні алдына қойып, кодталған күйінде қалдырыңыз. Екеуінің жартысын жасау — бұзатын нәрсе. Екі жол да толық мән көшіруден аман қалса ғана жұмыс істейді.
Екі бағыт та бір-бір команда, және оларды сақталған мәнді жасаған нақты операция ретінде билетте ұстаған жөн. Оларды осы ретпен орындаңыз:
printf '%s' 'a2V5MQ==' | base64 -d
printf '%s' 'key1' | base64
Кодталған мәтінді қарапайым мәтіндей қою — қымбат қате. Файл таңбаларды жазылған күйінде дәл хэштейді, туынды кілт серіктес есептегеннен шамамен үштен бір ұзын шығады, және әр әрекет ескертусіз бірдей сәтсіз болады, себебі талдаушы өзіне берілген ережені ұстанды.
Әр серіктес шын мәнінде қай байттарды қолданатынын растаңыз
Қате жолынан себепті болжаудың орнына алдымен демонның байланысқа көзқарасын, содан кейін аутентификация нәтижесін оқыңыз. Сақталған ұзындықты салыстыру — жылдам парасат тексерісі, өйткені кодталған мәтін ол білдіретін байттардан ұзын. Содан кейін қай сәйкестік жолы сәйкес келгенін растаңыз, өйткені қате серіктестің астына салынған дұрыс құпия қате сияқты сәтсіз болады. Жолдардың реті мұны шешеді: бірінші сәйкестік жеңеді, сондықтан жоғарыға жақын кең %any жолы жаңа ғана өңдеген нақты жолды үнсіз алмастырады.
Файл дұрыс болған соң қайта іске қосудың орнына қайта жүктеңіз. ipsec rereadsecrets IKE демонының көшірмесін жаңартады, ал swanctl конфигурациясы тіркелгі деректерін өз командасымен жүктейді. Қайта іске қосу орнатылған әр байланысты тастайды және сіз жасамақ болған салыстыруды жояды.
Бұл тексерістердің ешқайсысы құпияны ашуды талап етпейді. Ұзындық, сәйкестік таңдаушысы және жол орны осы тектес ақаулардың көбін түсіндіреді, біреуге он алтылық дамп қажет болмай тұрып.
Нәтижені жасырмай файлды өзгертіңіз
Файлды демонның тіркелгісімен шектеп, тірі құпияларды билеттерден, чаттан және экран суреттерінен тыс ұстаңыз, өйткені қойылған кілт — диагностика емес, ағып кету. Ол оны жасаған оқиғадан да ұзақ өмір сүреді.
Конфигурациясын өзіңіз басқаратын клиенттен сынаңыз, аутентификацияның сәтті өткенін, содан кейін туннельдің трафик тасымалдайтынын растаңыз. Қол алысуды түзеп, маршруттау бұзылып қалған қайта жүктеу — басқа мәселе, және құпия қозғалысы тоқтаған сәтте ол көрінеді.