Cheti cha VPN kilichojisaini: maana yake na kile kinachoamini
Cheti cha VPN kilichojisaini bado kinasimba mawasiliano. Kinachobadilika ni nani uliyemwambia kikiamini, ghala gani linapokea imani hiyo na ukaguzi upi unabaki.
Hapa imani mbili zinasababisha hasara kubwa zaidi: kwamba cheti cha VPN kilichojisaini kinamaanisha handaki haijasimbwa, na kwamba kufunga chochote mteja wa VPN alichoomba kunaathiri VPN pekee. Hakuna kati yao inayostahimili kukutana na utekelezaji halisi. Cheti kilichojisaini kinaeleza uhusiano wa sahihi, si hukumu ya usalama, na upeo wa imani unayoongeza hutegemea ghala inakotua. Nimeona dawati la usaidizi likiingiza mzizi wa mtoa huduma kwenye mashine ya Windows ili kunyamazisha onyo moja, kisha kutumia mchana mzima kueleza kwa nini kivinjari kiliacha kulalamika kuhusu lango lisilohusiana. Nusu mbili za swali hili zinakwenda pamoja, kwa hivyo zichukulie kama moja.
Cheti si ghala la imani
Faili ambayo seva inawasilisha hubeba ufunguo wa umma, jina la somo, jina la mtoaji, tarehe za uhalali na viendelezi. Kilichojisaini kinamaanisha somo na mtoaji ni huluki moja na sahihi inathibitishwa kwa ufunguo wa cheti chenyewe. Hakuna chochote katika fasili hiyo kinachosema muunganisho ni dhaifu, na hakuna kinachosema mteja atakikubali.
Kukubalika huja kutoka mahali pengine: faili ya CA unayomwelekeza mteja, alama ya kidole unayolinganisha kwa mkono, au mzizi ambao tayari umekaa katika ghala ambalo mteja analisoma. Utekelezaji unaweza kuwa mzima kabisa wakati cheti chake kingeshindwa katika kila jaribio la umma. openssl verify dhidi ya kifurushi cha mfumo itaripoti mtoaji asiyefahamika, na ripoti hiyo ni sahihi, si kasoro.
Chaguo la ca la OpenVPN ni kisa kilicho wazi zaidi cha imani iliyozuiwa kwa programu. Faili hiyo inataja nanga ambazo mteja atakubali, na inaweza kuwa na CA moja ya faragha au, katika utekelezaji mdogo, cheti cha seva chenyewe kilichojisaini. Toleo 2.6 pia linakubali --peer-fingerprint kwa kufunga alama ya kidole ya SHA-256 badala ya kusambaza faili ya CA. WireGuard lipo mbali zaidi: halina vyeti kabisa, lina ufunguo wa umma usiobadilika kwa kila mshirika, kwa hivyo swali la kujisaini haliendani nalo.
Mahali unapoweka imani huamua nani ata irithi
Weka cheti kilekile mahali patatu na utapata radii tatu tofauti za mlipuko. Kifurushi kinachosomwa na mteja wa VPN pekee kinaathiri mteja huyo. Mzizi katika ghala la mfumo wa uendeshaji unaathiri kila programu inayoshauri na ghala hilo. Kivinjari chenye hifadhidata yake ya imani kinaweza kupuuza vyote viwili, na ndiyo sababu onyo linaweza kunusurika uingizaji ulioonekana kufanya kazi.
Kwenye Debian au Ubuntu, kuweka faili katika /usr/local/share/ca-certificates/ na kuendesha update-ca-certificates hubadilisha kifurushi cha mfumo mzima. Kwenye Windows, certutil -addstore -f Root huandika kwenye ghala la mashine na huhitaji kidokezo kilichoinuliwa, wakati kuongeza -user kunalenga ghala la mtumiaji wa sasa badala yake; hizo mbili hazibadilishani. Firefox huweka hifadhidata yake ya NSS, kwa hivyo uingizaji wa kiwango cha OS unaweza usionekane kamwe hapo.
Upeo ni muhimu kwa sababu ya kile mamlaka inaweza kufanya. CA inayotoa inaweza kusaini majina ambayo haina uhusiano nayo, kwa hivyo chochote kinachoamini ghala hilo kitakubali sahihi hizo. Jani moja lililofungwa haliwezi kufanya hivyo; linathibitisha utambulisho mmoja wa mshirika haswa. Ikiwa lengo ni kufanya VPN moja iunganishwe, CA iliyozuiwa kwa programu au jani lililofungwa hufikia, wakati mzizi wa mashine nzima ni maelewano makubwa zaidi kuliko dalili inavyohitaji.
Bado unasimba bila CA ya umma
Kupeana mikono kwa TLS huzalisha funguo za kikao iwe cheti cha mshirika kinaunganishwa na kitu unachoamini tayari au la. Kilichojisaini hakimaanishi maandishi wazi, na hakimaanishi mawasiliano yanasomeka wakati yakiwa angani. Kinamaanisha mteja hana sababu ya awali ya kuamini ufunguo ni wa seva aliyoomba.
Katika pengo hilo ndipo mashambulizi halisi yanaishi. Mteja aliyesanidiwa kukubali cheti chochote, iwe kwa mpangilio wa uthibitishaji uliozimwa au kwa kitufe cha amini-hata-hivyo kilichobonyezwa mara moja na kusahaulika, atasimba kwa furaha kwa yeyote atakayejibu. Uingiliaji hufanyika katika hatua ya uthibitishaji, kabla data ya programu kusogea. Usimbaji bila ukaguzi wa utambulisho humweka nje mwangalizi asiyefanya kitu na hufanya mengi machache zaidi.
Kuamini mtoaji hakuruki ukaguzi wa jina
Uthibitishaji wa mnyororo, ulinganifu wa jina na madhumuni ya cheti ni maamuzi tofauti. Mnyororo unaweza kuwa halali wakati jina si sahihi, na jina linaweza kulingana wakati cheti kilitolewa kwa jukumu lingine. RFC 5280 inafafanua sehemu zinazobeba vikwazo hivyo, na jinsi mteja anavyovitekeleza kwa ukali ni suala la kila programu.
OpenVPN hufanya mgawanyiko uonekane. verify-x509-name hufunga somo linalotarajiwa kupitia ulinganifu wa name, name-prefix au subject. remote-cert-tls server huhitaji cheti cha mshirika kiwe kinatumika kama cheti cha seva, ambacho hukataa cheti cha mteja pekee hata mtoaji anapoaminiwa. Hakuna kati ya mipangilio hiyo mbili inayobadilishwa kwa kutuma faili ya CA.
Kagua cheti kabla ya kuamua chochote:
openssl x509 -in server.crt -noout -subject -issuer -dates -ext subjectAltNamehuonyesha nani alikitolea, kwa majina gani na hadi lini.openssl verify -CAfile ca.crt server.crthukagua kama mnyororo unaokusudia kutuma unathibitisha jani kweli.openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -CAfile ca.crt -verify_return_errorhufanya kazi kwa vituo vya mwisho vya TLS kama lango la wavuti; itifaki ya OpenVPN kwenye 1194 si mtiririko wa kawaida wa TLS, kwa hivyo jaribio hilo halitumiki hapo.
Cheti chenye tarehe iliyoisha, bila subjectAltName kwa jina unalounganisha nalo, au bila matumizi ya serverAuth hushindwa bila kujali jinsi nanga ilivyowekwa kwa uangalifu.
Ukaguzi watano kabla ya kukubali kimoja
Linganisha alama ya kidole kupitia njia ambayo si muunganisho unaojaribu kurekebisha: konsoli, kisakinishi ulicho nacho tayari, faili ya usanidi iliyosainiwa. openssl x509 -in server.crt -noout -fingerprint -sha256 kwenye seva na thamani hiyo hiyo kwenye kumbukumbu ya mteja zinatosha kujua unaangalia kitu kimoja.
Kisha amua unachoweka: jani moja, au mamlaka inayoweza kuchonga zaidi. Kisha amua linakoenda, na taja programu zinazosoma ghala hilo. Andika njia ya kuondoa ukiwa bado unaikumbuka, kwa sababu amini-na-uendelee ndiyo njia ambayo uingizaji wa muda hufanyika wa kudumu.
Mwisho, panga mabadiliko. Cheti au alama ya kidole iliyofungwa lazima isasishwe kupitia njia hiyo hiyo inayoaminika wakati cheti kinazunguka, na CA ya faragha ina mzunguko wake wa maisha wa utoaji na ubatilishaji. Ikiwa ufunguo wa faragha unavuja, kuamini tena nakala ya cheti kilekile hakurekebishi chochote; utambulisho lazima ubadilishwe.
Ikiwa onyo linanusurika ukaguzi wote watano, swali la manufaa si kitufe kipi kinakinyamazisha bali ghala gani mteja anasoma kwa kweli na mzizi huo ulitoka wapi. Jibu hilo, na uingizaji unaokaribia kufanya unakuwa uamuzi badala ya mwitikio.