Handshake inayoishia na hitilafu huhisi kama shambulizi hadi uangalie ujumbe, na mara nyingi ni hesabu: hakuna pendekezo la pamoja, cheti kilichoisha muda, au pakiti ambayo haikufika kamwe. Shambulizi la downgrade ni kitu maalum: adui anasukumiza pande zote mbili kwenye tabia dhaifu kuliko wangalichagua, na huacha ushahidi tofauti. Kuchukua kila kushindwa kama uovu hukufanya utafute mwathirika ambaye huenda hayupo, ilhali kuchukua downgrade halisi kama hitilafu ya usanidi huacha matokeo dhaifu mahali pake. Makosa hayo mawili yana gharama tofauti, na moja tu ndiyo rahisi kurekebishwa.

Shambulizi la downgrade hubadilisha nini kwa kweli

Lengo si kuvunja cipher wala kukisia ufunguo. Ni kuathiri majadiliano ili pande zote mbili zisimame kwenye toleo la zamani au algoriti dhaifu ambayo mshambuliaji anaweza kuimudu, au kufanya upande mmoja uamini kwamba mwingine unasaidia hilo tu.

Kinachobadilika ni makubaliano, si uthibitishaji. Iwapo mshambuliaji anaweza kubadilisha toleo bila kugunduliwa, pande zinaweza bado kukamilisha handshake na bado kuthibitishana, lakini kwa vigezo anavyopendelea mshambuliaji. Ndiyo sababu swali la kuvutia ni kama majadiliano yenyewe yamefunikwa na ulinzi wa uadilifu.

Kwa nini majadiliano yenyewe yanapaswa kuthibitishwa

TLS 1.3 hufanya ulinzi huo kuwa wazi. Mteja aliyetoa toleo jipya anaweza kugundua seva iliyorudi nyuma kimyakimya, kwa sababu thamani ya nasibu ya seva hubeba muundo maalum inapojadili 1.2 au chini, na mteja anapaswa kusitisha anapoona hilo. Nakala kamili pia imefunikwa na ujumbe wa mwisho, kwa hiyo mabadiliko mahali popote kwenye majadiliano hushindwa baadaye badala ya kupita kimyakimya.

Matoleo ya zamani ya itifaki yalikuwa na simulizi dhaifu, na ndiyo sababu kanuni za kurudi nyuma ni muhimu. Kituo cha TLS 1.0 katika usanidi huo huo si shambulizi la downgrade; ni matokeo yanayoruhusiwa uliyochagua kuruhusu. Tofauti ni kama matokeo dhaifu yalitoka kwenye uamuzi uliolindwa au kutoka kwenye njia isiyolindwa ambayo mpatanishi angeweza kuathiri. Ukiiweka hivyo, matukio mengi hubadilika kuwa swali la usanidi.

IKEv2 hujiendesha tofauti lakini inategemea wazo hilo hilo. Pendekezo hubebwa katika mabadilishano ambayo baadaye huthibitisha pande zote mbili, kwa hiyo sanduku la kati linaloandika upya algoriti huvunja uthibitishaji badala ya kuuelekeza. Kituo cha udhibiti cha OpenVPN hulinda majadiliano yake kwa TLS kisha hutumia kituo hicho kukubaliana cipher za kituo cha data, ndiyo sababu mstari wa logi wa kituo cha udhibiti ndio wa kuvutia.

Upatanifu uliosanidiwa si shambulizi

Msimamizi anaweza kwa makusudi kuruhusu chaguo za zamani ili kuunga mkono mteja aliyerekodiwa, na uamuzi huo unaonekana kwenye usanidi. Mshambuliaji hawezi kuunda usanidi huo; anaweza tu kutumia njia inayomruhusu kuathiri toleo.

Ukarabati hatari ni ule unaoondoa ushahidi wa tofauti. Kuwasha kila chaguo la zamani, kuzima uthibitishaji wa cheti au kukubali cipher yoyote ili hitilafu itoweke hupanua kile ambacho kituo cha mwisho kitakubali, na huondoa ukaguzi ambao ungeripoti matokeo dhaifu.

Ikiwa lazima ubaki na chaguo moja la zamani, taja sababu na mteja kwenye maoni ya usanidi, kisha punguza chaguo hilo kwenye profaili inayohitaji. Msamaha wa upatanifu uliowekwa kwa msikilizaji mmoja unaweza kukaguliwa; ule uliotumika kote ni chaguo-msingi dhaifu tu ambalo hakuna anayekumbuka alilichagua.

Soma kushindwa kabla ya kutaja sababu

Hifadhi mfuatano kamili wa hitilafu, matoleo ya mteja na seva na muda kabla ya mabadiliko yoyote. Kisha ainisha: pande hazikukubaliana kuhusu pendekezo, njia ya pakiti ilishindwa, au upande mmoja ulikataa kigezo kilichokubaliwa zamani?

Kutokulingana kwa pendekezo kwa kawaida hutaja matoleo au algoriti zenye kosa na hushindwa katika hatua hiyo hiyo kila wakati. Tatizo la uelekezaji au MTU husimama au huisha kwa muda, na mara nyingi hutofautiana kulingana na mtandao. Cheti kilichoisha muda hutoa hitilafu ya uthibitishaji, si ya majadiliano.

Hakuna hata moja ya hayo ni ushahidi wa mshambuliaji. Kugawa sababu ya uovu kwenye kushindwa kwa kwanza ni kosa, kwa sababu huficha hitilafu thabiti ambayo itashindwa tena kesho.

Thibitisha kilichochaguliwa kwa kweli

Baada ya marekebisho yoyote, soma matokeo yaliyojadiliwa badala ya kuamini kwamba muunganisho ulipanda. Muunganisho unaofaulu kwa sababu uthibitishaji uliondolewa ni matokeo uliyokuwa ukiepuka. Amri mbili zifuatazo zinaonyesha toleo na cipher zilizochaguliwa kwa kituo cha mwisho chenye TLS mbele, pamoja na mstari wa kituo cha udhibiti kutoka logi ya seva OpenVPN.

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 -5

Linganisha matokeo na usanidi uliokusudia, si na kile kinachounganisha sasa. Ikiwa toleo lililochaguliwa ni la zamani kuliko kiwango cha chini kinachoruhusiwa, profaili au orodha ya kurudi nyuma ndiyo mahali pa kuangalia, na jibu ni kurekebisha orodha hiyo, si kutangaza shambulizi na kujenga upya kila kitu kuzunguka.

Makala zinazohusiana