Kushindikana kwa tls-auth kwa kawaida huripotiwa kama tatizo la mshikamano, ingawa hakikuwa hivyo kamwe. HMAC hukaguliwa kwenye pakiti ya udhibiti kabla ya usindikaji wowote wa TLS kutokea, kwa hiyo ufunguo au mwelekeo usiolingana huzalisha kushindikana kunakoonekana kama tatizo la cheti na kuamuliwa tabaka mbili mapema. Kuichukulia bahasha kama kitu chake huufanya utambuzi mfupi: soma sehemu, thibitisha kwamba ukaguzi hutokea mapema, kisha linganisha mambo matatu ambayo pande zote mbili zinapaswa kukubaliana.

Soma bahasha kwa mpangilio inaojengwa

Pakiti ya udhibiti hubeba kitambulisho cha kikao, HMAC ya tls-auth ya hiari, taarifa za kurudia na kukiri, na kitambulisho cha ujumbe cha kuaminika, na kisha mzigo wa aina ya ujumbe hufuata. Ujumbe ukiwa ujumbe wa mshikamano, mzigo huwa ni maandishi yaliyosimbwa ya TLS. Uhusiano wote ni huu: nyenzo za TLS husafiri ndani ya ujumbe ambao bahasha tayari inaulinda. Tazama marejeo ya itifaki ya mtandao ya OpenVPN inayoorodhesha sehemu za kituo cha udhibiti kwa mpangilio huo.

Tabaka la kuaminika huchanganywa kwa urahisi na kriptografia. Kukiri, kutuma upya na kitambulisho cha ujumbe vipo ili jumbe za udhibiti zifike mara moja na kwa mpangilio juu ya usafirishaji usioaminika. Si uthibitishaji, na kitambulisho sahihi cha ujumbe hakithibitishi chochote kuhusu nani alituma pakiti.

Weka kundi hili kama dhana. Si mchoro wa mpangilio wa baiti, na hakitoshani kuhesabu lebo, kwa sababu sehemu zinazoingia HMAC hutegemea utekelezaji, toleo na hali.

Onyesha kwamba ukaguzi hutokea kabla ya mshikamano

Mpokeaji aliye na ufunguo wa pamoja anaweza kuthibitisha HMAC na kutupa pakiti ghushi mara moja, bila kutenga hali ya mshikamano au kufanya kazi ya ufunguo wa umma. Ulinzi hufunika pia pakiti za mwanzo za mshikamano, na ndiyo sababu ufunguo mbaya huonekana kama muunganisho ulioshindikana na si kama hitilafu ya uthibitishaji iliyochelewa.

Ongeza ukwasi wa daemon na uangalie kituo cha udhibiti badala ya kifaa cha tun:

openvpn --config /etc/openvpn/server.conf --verb 6

Unachotafuta ni kushindikana kwa uthibitishaji wa HMAC ya kituo cha udhibiti kunakoripotiwa katika ngazi ya pakiti, kabla ya onyo lolote la TLS. Onyo la TLS kwenye kumbukumbu humaanisha bahasha ilikubaliwa na kushindikana kulihamia ndani, jambo ambalo ni uchunguzi mwingine na suluhisho lingine.

Utunzaji wa mwelekeo pia uko hapa. Faili tuli ya ufunguo inapotumika na tls-auth, pande mbili huchukua mielekeo ya ufunguo iliyo kinyume, na itifaki hutumia mgawanyo huo ili pakiti iliyokamatwa isiweze kurudishwa kwa mtumaji wake. Kugeuza mwelekeo huiacha ufunguo sawa na bado kila pakiti hushindikana. Badilisha upande mmoja kwa wakati, kisha anzisha upya daemon zote mbili ili jozi ipakiwe pamoja.

Linganisha ufunguo, mwelekeo na digest katika pande zote mbili

Thamani tatu lazima zikubaliane na moja tu kati yao ni faili. Yaliyomo kwenye ufunguo tuli lazima yafanane katika pande zote mbili, mwelekeo lazima uwe kinyume, na digest inayotumika kwa HMAC lazima ilingane. Kagua usanidi kabla ya kugusa nyenzo za ufunguo, kwa sababu mwelekeo mmoja uliogeuzwa hueleza kushindikana zaidi kuliko faili iliyoharibika:

grep -E 'tls-auth|tls-crypt|key-direction|auth ' /etc/openvpn/server.conf

Zalisha siri ya pamoja kwa chombo na si kwa kihariri, na weka ruhusa kuwa kali:

openvpn --genkey secret /etc/openvpn/ta.key
chmod 600 /etc/openvpn/ta.key

Matoleo ya zamani yalikubali mpangilio wa chaguo uliotofautiana kidogo kwa uundaji wa funguo, na profaili zilizoandikwa kwa matoleo hayo bado zinazunguka. Faili iliyozalishwa ni aina moja ya kitu katika hali zote mbili, kwa hiyo ukaguzi ni kama pande zote mbili zina baiti zinazofanana, si tahajia gani iliyozalisha.

Usichanganye tls-auth na tls-crypt. Zote mbili hulinda kituo cha udhibiti, lakini tls-crypt pia huisimba na huficha mshikamano kutoka kwa waangalizi, na hubadilisha mgawanyo wa mwelekeo na utunzaji wake wa ufunguo. Profaili inayotumia moja haitashirikiana na mwenza aliyesanidiwa kwa nyingine, na hakuna urekebishaji wa digest unaofunga pengo hilo.

Zalisha tena lebo kutoka kwa muundo halisi pekee

Uzalishaji upya wa baiti-kwa-baiti ni kazi tofauti na kuendesha VPN, na hufanya kazi tu na ingizo halisi: utekelezaji na toleo zilizojenga pakiti, digest iliyochaguliwa, mwelekeo, na baiti halisi ikiwa ni pamoja na kitambulisho cha kikao na safu ya kukiri. Uwasilishaji wa maandishi wa orodha ya sehemu si baiti hizo.

Urefu wa lebo hufuata digest, kwa hiyo dhana ya urefu maalum huvunjika pale mtu anapoubadilisha. Hash pakiti kama utekelezaji unavyofanya, si kama jedwali katika chapisho la blogu linavyowasilisha, na linganisha na kukamatwa kulikochukuliwa kutoka kwa mwenza huyo badala ya matarajio uliyoyagua kwa mkono.

Weka zoezi hilo mbali na profaili za uzalishaji. Hakuna chochote katika kuzalisha tena lebo kinachokuambia kama usambazaji unapaswa kuwezesha ulinzi.

Rejesha kutokulingana bila kuondoa ulinzi

Jaribio la kushawishi ni kufuta tls-auth, kuona muunganisho unafanikiwa na kuhitimisha kwamba ufunguo ulikuwa mbaya. Jibu hilo hukugharimu ulinzi na halikufundishi chochote kuhusu thamani ipi kati ya tatu haikulingana. Badala yake, pata usanidi unaolingana ulioidhinishwa kutoka upande wa seva na ulinganishe nao.

Andaa mabadiliko ili yaweze kurejeshwa. Hifadhi usanidi wa seva na faili ya ufunguo ya awali, tumia jozi iliyosahihishwa, thibitisha kwamba mteja anamaliza mshikamano, na kisha tu uondoe nakala rudufu. Iwapo wateja watashindikana baada ya mabadiliko, rejesha faili za awali badala ya kubuni lahaja ya tatu wakati wa hitilafu. Urejeshaji unapaswa kuwa amri moja unayoijua tayari kabla ya kuanza.

Mwisho, kumbuka maana ya ukaguzi uliopita. Unathibitisha kwamba mwenza ana ufunguo wa pamoja, si kwamba cheti au akaunti yake imeidhinishwa, na haukuambii chochote kuhusu simbo ya kituo cha data iliyojadiliwa. Uidhinishaji na ulinzi wa data huanzishwa baadaye, kwa hiyo ukaguzi safi wa bahasha ni sehemu ya kuanzia na si hukumu.

Makala zinazohusiana