tls-crypt-v2 profiili piletisse kleepimine tundub kahjutu, kuni loendad, mida fail sisaldab. Kliendi juhtkanali võti seisab sama võtme krüpteeritud koopia kõrval ja kolmas objekt, mähkimisvõti, ei lahku kunagi vastuvõtvast serverist. Need kolm vastavad erinevatele küsimustele hoiu, jagamise ja tagasivõtmise kohta. Nende eraldamine lahendab enamiku poliitikavaidlused enne, kui need algavad.

Mida profiil tegelikult sisaldab

tls-crypt-v2 kliendipool on võti pluss selle pakitud koopia. Klient kasutab tavalist võtit juhtkanali kaitseks ja annab pakitud koopia seadistamise ajal serverile, nii et server taastab sama võtme ilma iga kliendi kohta lihtteksti koopiat hoiustamata. Mähkimisvõti teeb selle taastamise võimalikuks ja kuulub ainult vastuvõtvale poolele. Kõik allpool tuleneb sellest, kus need kolm objekti asuvad.

ObjectWhere it livesWhat can open itWhat a leak costs
Server wrapping keyaccepting servers onlythe unwrap step inside the serverevery wrapped copy issued to that group becomes readable
Wrapped client keyinside the client profilethe server wrapping keyit names a client and exposes its metadata, but not the key inside
Client control keyinside the client profile, usable as-isthe client that owns itsomeone can open handshakes as that client until the server refuses the key

Lugege tabelit hoiu, mitte nime järgi, ja tagajärjed tulevad ise. Mähkimisvõtme kaotamine on kallis sündmus, sest miski profiilis ei suuda seda taastada ja aus taastamine on grupi uuesti väljaandmine. Lekkinud profiil on odavam, kuid palju tavalisem, sest profiile kleebivad piletitesse inimesed, kes usuvad, et pakitud koopia muudab faili jagamiseks turvaliseks. Need kaks ebaõnnestumist vajavad erinevaid vastuseid, ja seepärast hoitakse objekte lahus.

Miks pakitud koopia ei ole kogu lugu

Profiil kannab kasutatavat kliendimaterjali koos oma pakitud vastuga, nii et serveri jaoks mõeldud koopia kaitsmine ei ütle faili kaitsmise kohta midagi. Blob on turvaline edastada ja ebaturvaline avaldada. Selle sees olevad metaandmed on nähtavad kõigile, kes blobbi saavad, sealhulgas neile, kes hiljem loevad piletit, kuhu see kleebiti.

Käsitlege profiili volitusena, mitte konfiguratsiooni näidisena. Lekkinud fail annab omanikule töötava kliendi identiteedi, kuni server selle identiteedi vastuvõtmise lõpetab, ja mähkimine ei tee selle akna kohta midagi. Andke välja üks profiil kliendi kohta, et tagasivõtmine jääks ühe faili otsuseks, ja varundage mähkimisvõti eraldi serveri konfiguratsioonist, mille see võimaldab. Kumbki harjumus ei paranda kompromiteeritud profiili, kuid mõlemad otsustavad, kui kiiresti järgmine ohjeldatakse.

Kus kontrollkonks käepigistuses asub

Kontrollkonks töötab enne TLS-i virna avamist ja selle ülesanne on kontrollida pakitud blobbis kantavaid metaandmeid. See saab need metaandmed pluss väikese, dokumenteeritud keskkonna ning sellel on vähem tööriistu kui autentimiskonksul. Eeldus, et see näeb kasutajanimesid, seansi olekut või pistikprogrammi muutujaid, on tavaline viis, kuidas see konks halvasti kirjutatakse. Lugege konksu enda käsiraamatu jaotist, selle asemel et laenata ootusi teiselt konksult.

Selle väljumisolek on otsus: nullist erinev tulemus keeldub kliendist ja nulltulemus laseb käepigistusel jätkuda. Seega peab poliitika ütlema, mis juhtub, kui metaandmed puuduvad, ei ole parsitavad või on ootamatud. Kirjutage kõigepealt keeldumise tee, seejärel otsustage, millised väärtused on vastuvõetavad.

tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.sh

Need kaks rida on serveri poliitika pind: üks nimetab mähkimisvõtme, teine programmi, mis iga klienti hindab. Kõik huvitav elab skriptis, mis väärib versioonihaldust ja sama ülevaatust nagu iga teine juurdepääsureegel.

Konto, sertifikaat ja juhtvõti võetakse tagasi eraldi

Juhtkanali varajane vastuvõtmine ei ole autentimine, sest see toimub enne TLS-i identiteedi kontrolli ja enne mis tahes konto volitamist. Konto keelamine, sertifikaadi tühistamine ja kliendi juhtvõtme keeldumine on kolm toimingut kolme mehhanismiga. Juurutamine, mis teeb neist ainult ühte, omab lünka, mitte poliitikat. Viige need kolm teadlikult kooskõlla ja kirjutage üles, milline samm millist volitust teostab.

Ajastus on teine erinevus. Muudetud vastuvõtunimekiri kehtib uute käepigistuste kohta, samas kui juba loodud seansid jätkuvad, kuni miski need lõpetab. Uue nimekirja kirjete lugemine tõendiks, et vanad seansid lõppesid, on viis, kuidas eemaldatud klient jääb tundideks ühendatuks.

Kooskõlastamata volitused jätavad kaks auku, mida on praktikas lihtne leida. Konto saab keelata, samal ajal kui selle juhtvõti avab veel käepigistust, ja sertifikaadi saab tühistada, samal ajal kui metaandmete poliitika võtab sama kliendi ikka vastu. Mõlemad on sama viga erinevates kohtades, sest operaator käsitles üht nimekirja kogu volitusena. Pange kolm nimekirja eemaldamise hetkel kõrvuti ja viga muutub nähtavaks.

Profiili väljaandmine ja tagasivõtmine

Väljaandmine on lihtne pool: looge kliendivõti vastuvõtval poolel, andke profiil täpselt ühele omanikule, hoidke mähkimismaterjal piiratud ja käivitage sama kontrollprogramm igas vastuvõtvas serveris. Odav vastuvõtt on kogu grupi omadus, mitte uusima hosti oma. Teine server vanema või lõdvema skriptiga muutub vaikselt juurutuse nõrgimaks teeks.

Tagasivõtmine nõuab kolme sammu kaalutletud järjekorras. Keelduge kliendist kontrollkonksus, et uued käepigistused ebaõnnestuksid, tühistage selle sertifikaat, kui PKI on kasutusel, ja keelake konto, et hilisemal volitamisel ei oleks midagi volitada. Seejärel lõpetage seansid, mille vana vastuvõtt lubas, sest need ei märka ühtki neist kolmest. Harjutage järjestust kliendil, mille rikkumist saate endale lubada.

Profiili metaandmed on selle poliitika sisend, mitte tõend, et juurdepääsukontroll juba olemas on. OpenVPN 2.6 projekteerimisdokument kirjeldab objekte ja piiri, mille need tõmbavad, samal ajal kui jõustamine jääb operaatorile.

Seotud artiklid