0x yoxsa 0s? ipsec.secrets faylında PSK formatını deşifrə edin
Eyni ortaq sirr dırnaq içində hərfi mətn, 0x-dən sonra onaltılıq və ya 0s-dən sonra Base64 kimi yazıla bilər. Səhv prefiks autentifikasiyanı uğursuz edir, razılaşmanı yox.
Bir müştəri ortaq açarla autentifikasiya olunur, digəri isə onu rədd edir, halbuki yapışdırdığınız simvollar hər iki tərəfdə eyni görünür. Çox güman ki, bunlar eyni simvollardır; fərq faylın onlara hansı deşifrə qaydasını tətbiq etməsidir. Dırnaq içindəki sətir hərfi olaraq götürülür, 0x ilə başlayan token onaltılıq kimi oxunur, 0s ilə başlayan token isə Base64 kimi oxunur. Bu üç yazılışdan yalnız biri nəzərdə tutduğunuz mənanı verir, ona görə düzəliş adətən daha yaxşı parol deyil, çevirmədir.
Simptom şifrələrə deyil, kodlaşdırmaya işarə edir
İki tərəf fərqli baytlar saxladıqda, razılaşma yenə də uğurlu olur, sübut isə sonra uğursuzluğa düşür. Sonra jurnal alqoritm uyğunsuzluğu deyil, bütövlük və ya HMAC xətası qeyd edir, çünki təklif seçilib və autentifikasiya mərhələsi uyğun gəlməyib. Həmin sətir heç vaxt sirrin formasını qeyd etmir.
Mərhələ ipucudur. Seçilmiş təklifdən sonra gələn uğursuzluq tərəflərin açar materialından başqa hər şeydə razılaşdığını bildirir, halbuki «təklif seçilmədi» siyasətə və ya şifrə dəstlərinə aiddir. Parol düzgün görünərkən uğursuz olan bütövlük yoxlaması kodlaşdırma uyğunsuzluğunun görünən üzüdür.
Bir sirr, faylın onu oxuya biləcəyi üç yol
Dörd baytlıq key1 dəyəri üçün onaltılıq və Base64 eyni baytların iki yenidən kodlaşdırmasıdır və yalnız ilk simvollar analizatora hansını saxladığını deyir. swanctl etimadnamələri də eyni konvensiyaya əməl edir, ona görə iki interfeys arasında köçürülən dəyər mənasını yalnız prefiksi onunla birlikdə köçdükdə saxlayır.
10.20.0.5 %any : PSK "key1"
10.20.0.5 %any : PSK 0x6b657931
10.20.0.5 %any : PSK 0sa2V5MQ==
Həmin blokdakı iki detal ən çox vaxt aparır. Onaltılıq rəqəmlər hər iki registri qəbul edir, yəni 0x6b657931 və 0x6B657931 eyni dəyərdir, lakin tək sayda simvol rədd edilmək əvəzinə səssizcə səhv oxunur və kəsimdən sonrakı hər baytı sürüşdürür. Base64 doldurması dəyərin bir hissəsidir, ona görə sondakı = işarələri olmadan yapışdırılan sətir uca səslə uğursuz olmaq əvəzinə fərqli baytlara deşifrə olunur.
Dəyəri bir dəfə deşifrə etmiş profil onu artıq çevirib, ona görə yenidən deşifrə etmək fərqli baytlar və səhv parol kimi görünən autentifikasiya uğursuzluğu yaradır. Dırnaqlama qeyri-müəyyən hər şey üçün təhlükəsiz istiqamətdir, çünki məzmun kodlaşdırma markeri ilə başlasa da hərfidir.
Base64 mətni haradan gəlir
Profil ixracı və təchizatçı portalları çox vaxt açarı artıq kodlaşdırılmış şəkildə verir, adətən əl ilə yazılması heç vaxt nəzərdə tutulmamış məlumat sahəsində. Ya o dəyəri açıb deşifrə olunmuş mətni dırnaq içində saxlayın, ya da marker öndə olmaqla kodlaşdırılmış halda buraxın. Hər ikisinin yarısını etmək işi pozan şeydir. Hər iki yol yalnız bütün dəyər kopyadan sağ çıxsa işləyir.
Hər iki istiqamət bir komandadır və saxlanmış dəyəri yaradan dəqiq əməliyyat kimi biletin içində saxlanmağa dəyər. Onları bu ardıcıllıqla işə salın:
printf '%s' 'a2V5MQ==' | base64 -d
printf '%s' 'key1' | base64
Kodlaşdırılmış mətni adi mətn kimi yapışdırmaq bahalı səhvdır. Fayl simvolları yazıldığı kimi heşləyir, törəmə açar həmkarın hesabladığından təxminən üçdə bir uzun çıxır və hər cəhd heç bir xəbərdarlıq olmadan eyni şəkildə uğursuz olur, çünki analizator ona verilən qaydaya əməl edib.
Hər həmkarın həqiqətən hansı baytları istifadə etdiyini təsdiqləyin
Xəta sətrindən səbəb təxmin etmək əvəzinə əvvəl demonun bağlantıya baxışını, sonra autentifikasiya nəticəsini oxuyun. Saxlanmış uzunluğu müqayisə etmək sürətli bir ağıl yoxlamasıdır, çünki kodlaşdırılmış mətn təmsil etdiyi baytlardan uzundur. Sonra hansı şəxsiyyət sətrinin uyğun gəldiyini təsdiqləyin, çünki səhv həmkarın altında saxlanan düzgün sirr səhv biri kimi uğursuz olur. Sətir sırası bunu həll edir: ilk uyğunluq qazanır, ona görə yuxarıdakı geniş %any sətri yalnız redaktə etdiyiniz konkret sətri səssizcə əvəz edir.
Fayl düzgün olduqdan sonra yenidən başlatmaq əvəzinə yenidən yükləyin. ipsec rereadsecrets IKE demonunun nüsxəsini yeniləyir və swanctl quraşdırması etimadnamələri öz komandası ilə yükləyir. Yenidən başlatma bütün qurulmuş assosiasiyaları atır və etmək istədiyiniz müqayisəni məhv edir.
Bu yoxlamaların heç biri sirrin açılmasını tələb etmir. Uzunluq, şəxsiyyət seçicisi və sətir mövqeyi bu cür uğursuzluqların çoxunu hər hansı onaltılıq çıxarışa ehtiyac olmadan izah edir.
Nəticəni gizlətmədən faylı dəyişdirin
Faylı demonun hesabı ilə məhdudlaşdırın və canlı sirrləri biletlərdən, söhbətlərdən və ekran görüntülərindən kənarda saxlayın, çünki yapışdırılmış açar diaqnostika deyil, sızıntıdır. O, həm də onu yaradan hadisədən daha uzun yaşayır.
Konfiqurasiyasına nəzarət etdiyiniz müştəridən sınaqdan keçirin, autentifikasiyanın uğurlu olduğunu, sonra tunelin trafik daşıdığını təsdiqləyin. Handshake-i düzəldib marşrutlaşdırmanı pozulmuş qalan yenidən yükləmə başqa bir problemdir və sirr hərəkəti dayandığı anda görünür.