0x yoki 0s? ipsec.secrets faylidagi PSK formatini tushunish
Bir xil umumiy sir qoʻshtirnoq ichidagi soʻzma-soʻz matn, 0x dan keyingi oʻn oltilik yoki 0s dan keyingi Base64 shaklida yozilishi mumkin. Notoʻgʻri prefiks autentifikatsiyani yiqitadi, muzokarani emas.
Bir mijoz umumiy kalit bilan autentifikatsiyadan oʻtadi, boshqasi esa uni rad etadi, holbuki siz joylashtirgan belgilar ikki tomonda bir xil koʻrinadi. Ehtimol bu bir xil belgilar; farq fayl ularga qaysi dekodlash qoidasini qoʻllashidadir. Qoʻshtirnoq ichidagi satr soʻzma-soʻz olinadi, 0x bilan boshlanadigan token oʻn oltilik sifatida oʻqiladi, 0s bilan boshlanadigan token esa Base64 sifatida oʻqiladi. Bu uchta yozuvdan faqat bittasi siz nazarda tutgan maʼnoni beradi, shuning uchun tuzatish odatda yaxshiroq parol emas, balki oʻzgartirishdir.
Alomat shifrlarga emas, kodlashga ishora qiladi
Ikki uch turli baytlarni saqlaganda, muzokara baribir muvaffaqiyatli boʻladi, dalil esa keyin yiqiladi. Shunda jurnal algoritm nomuvofiqligi oʻrniga yaxlitlik yoki HMAC nosozligini qayd etadi, chunki taklif tanlangan va autentifikatsiya bosqichi mos kelmagan. Bu satr hech qachon sirning shaklini eslatmaydi.
Bosqichning oʻzi ishora. Tanlangan taklifdan keyin kelgan nosozlik ikki tomon kalit materialidan tashqari hamma narsada kelishganini bildiradi, «hech qanday taklif tanlanmadi» esa siyosat yoki shifr toʻplamlariga tegishli. Parol toʻgʻri koʻrinib turganda yiqiladigan yaxlitlik tekshiruvi kodlash nomuvofiqligining koʻrinadigan yuzidir.
Bitta sir, fayl uni oʻqiy oladigan uch usul
Toʻrt baytli qiymat uchun key1 oʻn oltilik va Base64 bir xil baytlarning ikki qayta kodlanishi boʻlib, faqat boshidagi belgilar tahlilchiga qaysi birini ushlab turganini aytadi. swanctl hisob maʼlumotlari ham xuddi shu konvensiyaga amal qiladi, shuning uchun ikki interfeys orasida koʻchirilgan qiymat oʻz maʼnosini faqat prefiksi bilan birga yurganda saqlaydi.
10.20.0.5 %any : PSK "key1"
10.20.0.5 %any : PSK 0x6b657931
10.20.0.5 %any : PSK 0sa2V5MQ==
Oʻsha blokdagi ikki tafsilot eng koʻp vaqt oladi. Oʻn oltilik raqamlar ikkala registrni ham qabul qiladi, shuning uchun 0x6b657931 va 0x6B657931 bir xil qiymat, lekin toq sondagi belgilar rad etilmay jimgina notoʻgʻri oʻqiladi, bu kesimdan keyingi har bir baytni suradi. Base64 toʻldirishi qiymatning bir qismi, shuning uchun oxirgi = belgilarisiz joylashtirilgan satr baland ovozda yiqilish oʻrniga boshqa baytlarga dekodlanadi.
Qiymatni bir marta dekodlagan profil uni allaqachon oʻzgartirgan, shuning uchun qayta dekodlash boshqa baytlar va notoʻgʻri parolga oʻxshab oʻqiladigan autentifikatsiya nosozligini beradi. Har qanday noaniq narsa uchun qoʻshtirnoq xavfsiz yoʻnalishdir, chunki mazmun kodlash belgisi bilan boshlansa ham soʻzma-soʻz boʻlib qoladi.
Base64 matni qayerdan keladi
Profil eksporti va sotuvchi portallari kalitni koʻpincha allaqachon kodlangan holda beradi, odatda qoʻlda terish uchun hech qachon moʻljallanmagan maʼlumot maydonida. Yoki oʻsha qiymatni ochib, dekodlangan matnni qoʻshtirnoq ichida saqlang, yoki belgini oldiga qoʻyib kodlangan holda qoldiring. Ikkalasining yarmini qilish — bu buzadigan narsa. Ikkala yoʻl ham butun qiymat nusxalashdan omon qolganda ishlaydi.
Ikkala yoʻnalish ham bittadan buyruq, va ularni saqlangan qiymatni yaratgan aniq operatsiya sifatida chiptada saqlash arziydi. Ularni shu tartibda ishga tushiring:
printf '%s' 'a2V5MQ==' | base64 -d
printf '%s' 'key1' | base64
Kodlangan matnni oddiy matndek joylashtirish qimmat xatodir. Fayl belgilarni yozilganidek aniq xeshlaydi, hosil qilingan kalit sherik hisoblaganidan taxminan uchdan bir uzun chiqadi, va har bir urinish ogohlantirishsiz bir xil tarzda yiqiladi, chunki tahlilchi oʻziga berilgan qoidaga amal qilgan.
Har bir sherik aslida qaysi baytlarni ishlatishini tasdiqlang
Xato satridan sababni taxmin qilish oʻrniga avval demonning ulanishga qarashi, keyin autentifikatsiya natijasini oʻqing. Saqlangan uzunlikni taqqoslash tez aql-idrok tekshiruvi, chunki kodlangan matn u ifodalaydigan baytlardan uzun. Keyin qaysi shaxs satri mos kelganini tasdiqlang, chunki notoʻgʻri sherik ostida saqlangan toʻgʻri sir notoʻgʻri kabi yiqiladi. Satrlar tartibi buni hal qiladi: birinchi moslik yutadi, shuning uchun yuqoriga yaqin keng %any satri siz hozir tahrir qilgan aniq satrni jimgina almashtiradi.
Fayl toʻgʻri boʻlgach, qayta ishga tushirish oʻrniga qayta yuklang. ipsec rereadsecrets IKE demonining nusxasini yangilaydi, swanctl sozlamasi esa hisob maʼlumotlarini oʻz buyrugʻi bilan yuklaydi. Qayta ishga tushirish har bir oʻrnatilgan assotsiatsiyani tashlab yuboradi va siz qilmoqchi boʻlgan taqqoslashni yoʻq qiladi.
Bu tekshiruvlarning hech biri sirni oshkor qilishni talab qilmaydi. Uzunlik, shaxs tanlagichi va satr pozitsiyasi bunday nosozliklarning koʻpini tushuntiradi, birovga oʻn oltilik dump kerak boʻlishidan oldin.
Natijani yashirmasdan faylni oʻzgartiring
Faylni demon hisobiga cheklang va tirik sirlarni chiptalar, chat va ekran suratlaridan uzoqda saqlang, chunki joylashtirilgan kalit — diagnostika emas, oqib chiqish. U oʻzini yaratgan hodisadan ham uzoq yashaydi.
Konfiguratsiyasini oʻzingiz boshqaradigan mijozdan sinab koʻring, autentifikatsiya muvaffaqiyatli oʻtishini, soʻngra tunnel trafik tashishini tasdiqlang. Qoʻl berishni tuzatib, marshrutlash buzilgan holda qolgan qayta yuklash boshqa muammo, va sir harakati toʻxtagan zahoti u koʻrinadi.