Uğursuz VPN əl sıxması həqiqətən aşağı səviyyəyə endirmə hücumudur?
Aşağı səviyyəyə endirmə hücumları mövcuddur, lakin uğursuz əl sıxmalarının çoxu təklif uyğunsuzluğu, səhv marşrut və ya vaxtı keçmiş profildir. Əvvəlcə nəyin razılaşdırıldığına baxın.
Xəta ilə bitən əl sıxma, mesaja baxana qədər hücum kimi görünür və çox vaxt məsələ hesabla bağlıdır: ortaq təklif yoxdur, sertifikatın vaxtı keçib və ya paket heç vaxt çatmayıb. Aşağı səviyyəyə endirmə hücumu konkret bir şeydir: rəqib hər iki tərəfi seçəcəklərindən daha zəif davranışa doğru itələyir və fərqli sübutlar buraxır. Hər uğursuzluğu qəsd kimi qəbul etmək sizi bəlkə də mövcud olmayan qurban axtarmağa göndərir, həqiqi endirməni isə konfiqurasiya xətası kimi qəbul etmək zəif nəticəni yerində saxlayır. Bu iki səhv fərqli qiymətə başa gəlir və yalnız biri düzəltmək üçün ucuzdur.
Aşağı səviyyəyə endirmə hücumu əslində nəyi dəyişir
Məqsəd şifri qırmaq və açarı təxmin etmək deyil. Məqsəd danışıqlara təsir edib hər iki tərəfin rəqibin öhdəsindən gələ biləcəyi daha köhnə versiya və ya daha zəif alqoritm üzərində dayanmasına, ya da bir tərəfin digərinin yalnız bunu dəstəklədiyinə inanmasına nail olmaqdır.
Dəyişən razılaşmadır, autentifikasiya deyil. Əgər rəqib təklifi aşkar edilmədən dəyişə bilirsə, tərəflər hələ də əl sıxmanı tamamlaya və bir-birini autentifikasiya edə bilər, sadəcə rəqibin üstünlük verdiyi parametrlərlə. Buna görə maraqlı sual danışıqların özünün bütövlük qorunması ilə əhatə olunub-olunmamasıdır.
Niyə danışıqların özü autentifikasiya olunmalıdır
TLS 1.3 bu qorunmanı açıq edir. Daha yeni versiyanı təklif edən müştəri səssizcə geri çəkilən serveri aşkar edə bilər, çünki serverin təsadüfi dəyəri 1.2 və ya daha aşağı versiya ilə danışıq apararkən sabit naxış daşıyır və müştəri bunu görəndə dayanmalıdır. Tam transkript də tamamlanma mesajları ilə əhatə olunur, buna görə danışıqların hər hansı yerindəki düzəliş sonradan uğursuz olur, səssizcə keçmir.
Köhnə protokol versiyalarının hekayələri daha zəif idi və geri çəkilmə qaydaları məhz buna görə vacibdir. Eyni konfiqurasiyadakı TLS 1.0 son nöqtəsi aşağı səviyyəyə endirmə hücumu deyil; bu, icazə verməyi seçdiyiniz icazəli nəticədir. Fərq ondadır ki, zəif nəticə qorunan qərardan, yoxsa vasitəçinin təsir edə biləcəyi qorunmayan yoldan gəlib. Bunu belə ifadə etdikdən sonra hadisələrin çoxu konfiqurasiya sualına çevrilir.
IKEv2 fərqli davranır, amma eyni fikrə söykənir. Təklif sonradan hər iki tərəfi autentifikasiya edən mübadilə içində daşınır, buna görə alqoritmləri yenidən yazan ara qutu autentifikasiyanı istiqamətləndirmir, pozur. OpenVPN-in idarə kanalı danışıqlarını TLS ilə qoruyur və sonra həmin kanaldan verilənlər kanalının şifrlərini razılaşdırmaq üçün istifadə edir; buna görə maraqlı olan idarə kanalının jurnal sətridir.
Konfiqurasiya edilmiş uyğunluq hücum deyil
Administrator sənədləşdirilmiş müştərini dəstəkləmək üçün qəsdən köhnə seçimlərə icazə verə bilər və bu qərar konfiqurasiyada görünür. Rəqib belə konfiqurasiya yarada bilməz; yalnız təklifə təsir etməyə imkan verən yoldan istifadə edə bilər.
Təhlükəli təmir fərqin sübutunu silən təmindir. Hər köhnə seçimi aktivləşdirmək, sertifikat yoxlamasını söndürmək və ya xətanı yox etmək üçün istənilən şifri qəbul etmək son nöqtənin razılaşacağı şeyi genişləndirir və zəif nəticəni bildirəcək yoxlamaları silir.
Bir köhnə seçimi saxlamalı olsanız, səbəbi və müştərini konfiqurasiya şərhində göstərin, sonra seçimi ona ehtiyacı olan profillə məhdudlaşdırın. Bir dinləyiciyə aid edilmiş uyğunluq istisnası yoxlanıla biləndir; qlobal tətbiq edilən isə sadəcə heç kimin seçdiyini xatırlamadığı daha zəif standartdır.
Səbəb adlandırmadan əvvəl uğursuzluğu oxuyun
Hər hansı dəyişiklikdən əvvəl dəqiq xəta sətrini, müştəri və server versiyalarını və vaxtı saxlayın. Sonra təsnif edin: tərəflər təklif barədə razılaşmadımı, paket yolu uğursuz oldumu, yoxsa bir tərəf bir vaxtlar qəbul etdiyi parametri rədd etdi?
Təklif uyğunsuzluğu adətən pozucu versiyaları və ya alqoritmləri göstərir və hər dəfə eyni nöqtədə uğursuz olur. Marşrut və ya MTU problemi dayanır və ya vaxt aşımına uğrayır və çox vaxt şəbəkəyə görə dəyişir. Vaxtı keçmiş sertifikat danışıq deyil, yoxlama xətası yaradır.
Bunların heç biri rəqibin sübutu deyil. İlk uğursuzluqda qəsdən səbəb təyin etmək səhvdir, çünki sabah yenidən uğursuz olacaq deterministik xətanı gizlədir.
Həqiqətən nə seçildiyini təsdiqləyin
Hər hansı düzəlişdən sonra əlaqənin qalxmasına güvənmək əvəzinə razılaşdırılmış nəticəni oxuyun. Yoxlama silindiyi üçün uğur qazanan əlaqə sizin qaçmaq istədiyiniz nəticədir. Aşağıdakı iki əmr TLS ilə üzləşən son nöqtə üçün seçilmiş versiyanı və şifri, həmçinin bir OpenVPN server jurnalından idarə kanalı sətrini göstərir.
openssl s_client -connect 198.51.100.30:443 -servername vpn.example.net -brief </dev/null
grep -iE 'Control Channel|Data Channel' /var/log/openvpn.log | tail -5Nəticəni indi qoşulan hər şeylə deyil, nəzərdə tutduğunuz konfiqurasiya ilə müqayisə edin. Əgər seçilmiş versiya icazə verilən minimumdan köhnədirsə, axtarılacaq yer profil və ya geri çəkilmə siyahısıdır və cavab hücum elan edib ətrafındakı hər şeyi yenidən qurmaq deyil, həmin siyahını düzəltməkdir.