OpenVPN tls-crypt-v2: kazi ya ufunguo wa mteja na blob iliyofungwa
Wasifu wa tls-crypt-v2 una ufunguo wa udhibiti wa mteja na nakala iliyofungwa ambayo seva pekee inaweza kuifungua. Weka kila kitu na kila hatua ya kustaafu kando.
Kubandika wasifu wa tls-crypt-v2 kwenye tiketi kunaonekana bila madhara hadi uhesabu kilicho ndani ya faili. Ufunguo wa kituo cha udhibiti wa mteja uko kando ya nakala iliyosimbwa ya ufunguo huo huo, na kitu cha tatu, ufunguo wa kufunga, hautoki kamwe kwenye seva inayokubali. Hivi vitatu hujibu maswali tofauti kuhusu ulinzi, ugawaji na kustaafu. Kuvitenganisha hutatua migogoro mingi ya sera kabla haijaanza.
Wasifu una vyema nini
Nusu ya mteja ya tls-crypt-v2 ni ufunguo pamoja na nakala yake iliyofungwa. Mteja hutumia ufunguo wazi kwa ulinzi wa kituo cha udhibiti na hukabidhi seva nakala iliyofungwa wakati wa usanidi, kwa hivyo seva hurejesha ufunguo huo bila kuhifadhi nakala ya maandishi wazi kwa kila mteja. Ufunguo wa kufunga hufanya urejeshaji huo uwezekane na unamilikiwa na upande unaokubali pekee. Kila kitu hapa chini kinatokana na mahali ambapo vitu hivyo vitatu vinaishi.
| Object | Where it lives | What can open it | What a leak costs |
|---|---|---|---|
| Server wrapping key | accepting servers only | the unwrap step inside the server | every wrapped copy issued to that group becomes readable |
| Wrapped client key | inside the client profile | the server wrapping key | it names a client and exposes its metadata, but not the key inside |
| Client control key | inside the client profile, usable as-is | the client that owns it | someone can open handshakes as that client until the server refuses the key |
Soma jedwali kwa ulinzi, si kwa jina, na matokeo yanajitokeza yenyewe. Kupoteza ufunguo wa kufunga ni tukio la gharama, kwa sababu hakuna kitu ndani ya wasifu kinachoweza kuujenga upya na urejeshaji wa kweli ni kutoa tena kikundi. Wasifu uliovuja ni wa bei nafuu lakini wa kawaida zaidi, kwa sababu watu hubandika wasifu kwenye tiketi wakiamini nakala iliyofungwa hufanya faili kuwa salama kushirikiwa. Hitilafu hizo mbili zinahitaji majibu tofauti, na ndiyo sababu vitu huwekwa kando.
Kwa nini nakala iliyofungwa si hadithi yote
Wasifu hubeba nyenzo za mteja zinazoweza kutumika pamoja na mwenza wake aliyefungwa, kwa hivyo kulinda nakala kwa seva hakuambii chochote kuhusu kulinda faili. Blob ni salama kusafirishwa na si salama kuchapishwa. Metadata iliyo ndani yake inaonekana kwa yeyote anayepokea blob, ikiwa ni pamoja na yeyote atakayesoma tiketi iliyobandikwa baadaye.
Chukulia wasifu kama kitambulisho cha kuingia, si kama mfano wa usanidi. Faili iliyovuja humpa mmiliki wake utambulisho wa mteja unaofanya kazi hadi seva itakapoacha kukubali utambulisho huo, na ufungaji haufanyi chochote kuhusu dirisha hilo. Toa wasifu mmoja kwa kila mteja ili uondoaji ubaki uamuzi wa faili moja, na hifadhi nakala rudufu ya ufunguo wa kufunga kando na usanidi wa seva unaouwezesha. Hakuna tabia yoyote kati ya hizi inayotengeneza wasifu ulioathirika, lakini zote mbili huamua jinsi ijayo itakavyodhibitiwa haraka.
Kiko wapi ndoano ya uthibitishaji katika kupeana mikono
Ndoano ya uthibitishaji hukimbia kabla ya safu ya TLS kufichuliwa, na kazi yake ni kukagua metadata inayobebwa katika blob iliyofungwa. Hupokea metadata hiyo pamoja na mazingira madogo yaliyoandikwa, na ina mambo machache ya kufanyia kazi kuliko ndoano ya uthibitishaji wa utambulisho. Kudhani inaona majina ya watumiaji, hali ya kipindi au vigeu vya programu-jalizi ndiyo njia ya kawaida ndoano hii kuandikwa vibaya. Soma sehemu ya mwongozo ya ndoano yenyewe badala ya kuazima matarajio kutoka ndoano nyingine.
Hali yake ya kutoka ndiyo uamuzi: matokeo yasiyo sifuri humkataa mteja na matokeo sifuri huacha kupeana mikono kuendelea. Kwa hivyo sera lazima iseme nini kinatokea metadata inapokosekana, haiwezi kuchambuliwa au haitarajiwa. Andika kwanza njia ya kukataa, kisha amua ni thamani gani zinakubalika.
tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.shMistari hiyo miwili ni uso wa sera kwenye seva: mmoja unataja ufunguo wa kufunga, mwingine unataja programu inayohukumu kila mteja. Kila kitu cha kuvutia kinaishi katika hati, ambayo inastahili udhibiti wa matoleo na ukaguzi sawa na kanuni nyingine yoyote ya ufikiaji.
Akaunti, cheti na ufunguo wa udhibiti hustaafu kando
Kukubali kituo cha udhibiti mapema si uthibitishaji, kwa sababu hutokea kabla ya ukaguzi wa utambulisho wa TLS na kabla ya idhini yoyote ya akaunti. Kuzima akaunti, kubatilisha cheti na kukataa ufunguo wa udhibiti wa mteja ni vitendo vitatu vyenye mifumo mitatu. Utekelezaji unaofanya kimoja tu kati ya hivyo una pengo, si sera. Oanisha vyote vitatu kwa makusudi, na rekodi hatua ipi inatumia mamlaka gani.
Muda ni tofauti ya pili. Orodha ya kukubali iliyobadilishwa inatumika kwa kupeana mikono mpya, wakati vipindi vilivyoanzishwa tayari vinaendelea hadi kitu kuvimaliza. Kuhesabu maingizo kwenye orodha mpya kama ushahidi kwamba vipindi vya zamani viliisha ndiyo njia ambayo mteja aliyeondolewa hubaki ameunganishwa kwa masaa.
Mamlaka zisizooanishwa huacha mashimo mawili ambayo ni rahisi kupata kivitendo. Akaunti inaweza kuzimwa wakati ufunguo wake wa udhibiti bado unafungua kupeana mikono, na cheti kinaweza kubatilishwa wakati sera ya metadata bado inakubali mteja huyo huyo. Yote mawili ni kosa lile lile mahali tofauti, kwa sababu mwendeshaji alichukua orodha moja kama mamlaka yote. Weka orodha tatu kando kando wakati wa kuondoa na kosa linaonekana.
Kutoa na kustaafisha wasifu
Kutoa ni nusu rahisi: tengeneza ufunguo wa mteja upande unaokubali, kabidhi wasifu kwa mmiliki mmoja hasa, weka nyenzo za kufunga ziwe na mipaka, na endesha programu hiyo hiyo ya uthibitishaji kwenye kila seva inayokubali. Kuingia kwa bei nafuu ni sifa ya kikundi kizima, si ya mwenyeji mpya zaidi. Seva ya pili yenye hati ya zamani au iliyolegea inakuwa kimya njia dhaifu zaidi katika utekelezaji.
Kustaafisha kunahitaji hatua tatu kwa mpangilio wa makusudi. Mkatae mteja katika ndoano ya uthibitishaji ili kupeana mikono mpya kushindwa, batilisha cheti chake ikiwa PKI inatumika, na zima akaunti ili idhini ya baadaye isiwe na kitu cha kuidhinisha. Kisha maliza vipindi ambavyo kukubali kwa zamani kuliruhusu, kwa sababu havitaona hata kimoja kati ya vitatu. Fanya mazoezi ya mpangilio kwa mteja unayoweza kumudu kumvunja.
Metadata katika wasifu ni ingizo kwa sera hiyo, si ushahidi kwamba udhibiti wa ufikiaji tayari upo. Hati ya usanifu ya OpenVPN 2.6 inaeleza vitu na mpaka unaochorwa, wakati utekelezaji unabaki kwa mwendeshaji.