madhumuni ya cheti yasiyotumika: kwa nini CA ya kati inashindwa
Wakati OpenVPN inaripoti madhumuni ya cheti yasiyotumika, cheti cha jani kinaweza kuwa hakina hatia. Linganisha madhumuni ya jani na sera ya mnyororo kabla ya kutoa tena kitu chochote.
Madhumuni ya cheti cha seva yanaonekana sawa, ufunguo unalingana, tarehe ni sawa, na muunganisho bado unashindwa na unsupported certificate purpose. Maelezo yanayotatua hili kwa kawaida yako kwenye mstari huo huo wa hitilafu: thamani ya kina na subject vinavyotaja cheti cha juu zaidi kwenye mnyororo. Majaribio mawili tofauti yanaendeshwa, na ni moja tu kati yao yanahusu jani. Kuyalinganisha kunaeleza kwa nini kubadilisha cheti cha seva hakubadilishi chochote.
Cheti kipi kiliyokataliwa na kithibitishaji kwa kweli
Mnyororo si kitu kimoja kilichorudiwa mara tatu. Jani hubeba jina na ufunguo wa seva, vyeti vya kati huliunganisha na mzizi, na kila kimoja kina kipindi chake cha uhalali, vikwazo na matumizi. Hitilafu inapotaja kina, namba hiyo inabainisha nafasi kwenye mnyororo ambao kithibitishaji kiliunda, na inaweza isiwe nafasi unayotarajia ikiwa seva inatuma mnyororo usiotarajiwa.
Soma sehemu za cheti katika kina hicho, si za cheti ulichodhani kuwa na hatia. Omba viendelezi viwili vinavyozuia utoaji badala ya kumwaga kila sehemu, kwa sababu jibu karibu kila mara liko kwenye kimoja chao. Matokeo ya viendelezi ni salama kushirikiwa; funguo za faragha kamwe.
openssl x509 -in issuing-ca.pem -noout -subject -issuer -ext basicConstraints -ext extendedKeyUsage
Ikiwa cheti kilichotajwa ni cha kati na matumizi yake yaliyopanuliwa ya ufunguo yanataja kitu kisichohusiana na uthibitishaji wa seva ya TLS, mabaki ya kushindwa hufuata kimitambo. Mnyororo hauwezi kutumika kwa madhumuni ambayo OpenVPN iliomba.
Madhumuni ya jani na sera ya mnyororo ni majaribio mawili
Jaribio la jani linauliza swali jembamba: cheti hiki cha huluki ya mwisho kinaruhusu uthibitishaji wa seva kwa jina hili? Jaribio la mnyororo linauliza pana zaidi: cheti kila kimoja kwenye njia kinaweza kutumikia madhumuni hayo? Mamlaka ya vyeti inayoruhusiwa kutoa vyeti vya mteja pekee itapita ukaguzi wake wa sahihi na bado itashindwa jaribio la pili, kwa sababu njia inayoidhinisha haijumuishi madhumuni ambayo programu inahitaji. Majaribio yote mawili yanashindwa kwa maneno yale yale na yana marekebisho tofauti kabisa.
Ndiyo sababu jani lililotolewa hivi karibuni, lililo sahihi katika kila sehemu inayoonekana, linaweza kushindwa mara moja. Ndiyo sababu pia marekebisho kwa kawaida yanahusiana na wasifu wa mamlaka inayotoa, si usanidi wa VPN.
EKU isiyopo si EKU yenye vikwazo
RFC 5280 inafanya kiendelezi cha matumizi yaliyopanuliwa ya ufunguo kuwa cha hiari na, kinapokuwepo, chenye vikwazo. Kwa hiyo cheti cha CA kisichokuwa na kiendelezi hicho hakijasema «hapana» kwa uthibitishaji wa seva, ilhali kile kinachoorodhesha madhumuni yasiyohusiana pekee kimesema jambo mahususi sana. Kuchukua hali hizo mbili kama sawa kunazalisha utambuzi usio sahihi na, mbaya zaidi, marekebisho yasiyo sahihi. Tofauti hiyo pia inaeleza kwa nini mamlaka mawili yanayofanana kwenye konsoli yanafanya tofauti kabisa kwenye mnyororo.
Tabia ya maktaba pia si sawa hapa. hati ya OpenSSL kuhusu chaguo za uthibitishaji inaeleza mbinu yake mwenyewe ya ukaguzi wa madhumuni kwenye vyeti vya CA, na mbinu hiyo ni sera ya utekelezaji, si kanuni ambayo kila stack ya TLS inaifuata kwa usawa. Eleza kithibitishaji chako kinafanya nini, kisha thibitisha hilo kwa toleo unalolifanya kwa kweli.
Zalisha tena kushindwa nje ya mtandao kabla ya kutoa tena
Uthibitishaji nje ya mtandao unaondoa programu kwenye mlinganyo. Ikiwa mnyororo unashindwa kwa namna hiyo hiyo chini ya madhumuni yale yale, cheti ni tatizo na hakuna usanidi wa seva utakaolificha. Ikiwa mnyororo unapita nje ya mtandao wakati huduma bado inakataa, programu inaomba madhumuni mengine au inatumia mnyororo tofauti na ule ulioujaribu.
openssl verify -purpose sslserver -show_chain -CAfile root-ca.pem -untrusted issuing-ca.pem vpn-server.pem
-show_chain ni muhimu kwa sababu inachapisha njia ambayo chombo kiliunda, na mara nyingi hiyo si mpangilio wa faili uliotoa. Matokeo hayo ni njia ya haraka zaidi ya kugundua kuwa cheti cha pili cha kati kinavutwa kutoka hifadhi ya uaminifu, kwamba seva inatuma lahaja iliyosainiwa kwa mfumo wa kuvuka ambayo hukuidhinisha, au kwamba bendera ya madhumuni uliyonakili kutoka mafunzo ni ya jukumu tofauti na lile linalohudumiwa.
Rekebisha sera ya utoaji, si mwito wa uthibitishaji
Marekebisho ya kudumu ni cheti cha kati kilichotolewa chini ya sera inayoruhusu madhumuni ambayo lazima kiyatumikie, na kizuizi kimeandikwa na kupitiwa. Kuongeza kila madhumuni kwa kila mamlaka si sera; kunaondoa kizuizi kilichotoa maana kwa kiendelezi, na kwa kawaida huishi muda mrefu kuliko tukio lililoanzisha. Dokezo fupi kwenye wasifu linaloeleza majukumu ambayo mamlaka inaweza kuyathibitisha huzuia utoaji unaofuata kurudia mjadala huo.
Kuzima uthibitishaji ni njia nyingine ya mkato yenye kushawishi, na inabadilisha tatizo la cheti kuwa tatizo la uaminifu. Weka ukaguzi wa madhumuni, rekebisha mnyororo, na endesha tena uthibitishaji huo nje ya mtandao ili kuthibitisha kwamba njia sasa inatumikia jukumu lililokusudiwa kabla ya kuugusa huduma tena.