OpenVPN tls-crypt-v2: wat die kliëntsleutel en die toegedraaide blob doen
'n tls-crypt-v2-profiel hou 'n kliëntbeheersleutel en 'n toegedraaide kopie wat net die bediener kan oopmaak. Hou elke objek en elke aftree-stap apart.
Om 'n tls-crypt-v2-profiel in 'n kaartjie te plak lyk onskadelik totdat jy tel wat die lêer bevat. Die kliënt se beheerkanaalsleutel sit langs 'n geënkripteerde kopie van dieselfde sleutel, en 'n derde objek, die toedraaisleutel, verlaat nooit die aanvaardende bediener nie. Dié drie beantwoord verskillende vrae oor bewaring, deel en aftrede. Deur hulle te skei, besleg jy die meeste beleidsargumente voordat dit begin.
Wat die profiel werklik bevat
Die kliënthelfte van tls-crypt-v2 is 'n sleutel plus 'n toegedraaide kopie daarvan. Die kliënt gebruik die gewone sleutel vir beheerkanaalbeskerming en gee die toegedraaide kopie tydens opstelling aan die bediener, sodat die bediener dieselfde sleutel herwin sonder om 'n gewone tekskopie per kliënt te stoor. Die toedraaisleutel maak dié herwinning moontlik en hoort net aan die aanvaardende kant. Alles hieronder volg uit waar daardie drie objekte woon.
| 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 |
Lees die tabel volgens bewaring eerder as volgens naam, en die gevolge val uit. Om die toedraaisleutel te verloor is die duur gebeurtenis, want niks in 'n profiel kan dit herbou nie en die eerlike herstel is om die groep weer uit te reik. 'n Uitgelekte profiel is goedkoper maar baie algemener, want profiele word in kaartjies geplak deur mense wat glo die toegedraaide kopie maak die lêer veilig om te deel. Die twee mislukkings verg verskillende reaksies, en dit is die rede om die objekte apart te hou.
Waarom die toegedraaide kopie nie die hele storie is nie
'n Profiel dra die bruikbare kliëntmateriaal saam met sy toegedraaide eweknie, so die beskerming van die kopie vir die bediener sê niks oor die beskerming van die lêer nie. Die blob is veilig om te stuur en onveilig om te publiseer. Metadata daarin is sigbaar vir elkeen wat die blob ontvang, ook vir enigiemand wat later die kaartjie lees waarin dit geplak is.
Behandel 'n profiel as 'n geloofsbrief eerder as 'n voorbeeld van konfigurasie. 'n Uitgelekte lêer gee sy houer 'n werkende kliëntidentiteit totdat die bediener daardie identiteit ophou aanvaar, en die toedraai doen niks aan daardie venster nie. Reik een profiel per kliënt uit sodat onttrekking 'n besluit oor een lêer bly, en maak 'n rugsteun van die toedraaisleutel apart van die bedienerkonfigurasie wat dit moontlik maak. Nie een van dié gewoontes herstel 'n gekompromitteerde profiel nie, maar albei bepaal hoe vinnig die volgende een ingeperk word.
Waar die verifieerhaak in die handdruk sit
Die verifieerhaak loop voordat die TLS-stapel blootgestel word, en sy taak is om die metadata in die toegedraaide blob na te gaan. Dit ontvang daardie metadata plus 'n klein, gedokumenteerde omgewing, en het minder om mee te werk as 'n egtheidsverifikasiehaak. Om te aanvaar dat dit gebruikersname, sessietoestand of inpropveranderlikes kan sien, is die gewone manier waarop hierdie haak sleg geskryf word. Lees die haak se eie handleidingafdeling eerder as om verwagtinge by 'n ander haak te leen.
Sy uitgangstatus is die besluit: 'n nie-nul uitslag weier die kliënt en 'n nul uitslag laat die handdruk voortgaan. Die beleid moet dus sê wat gebeur wanneer metadata ontbreek, onontleedbaar of onverwags is. Skryf eers die weieringsroete, en besluit dan watter waardes aanvaarbaar is.
tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.shDaardie twee reëls is die beleidsoppervlak op die bediener: een noem die toedraaisleutel, die ander noem die program wat elke kliënt beoordeel. Alles interessant woon in die skrip, wat weergawebeheer verdien en dieselfde hersiening as enige ander toegangsreël.
Rekening, sertifikaat en beheersleutel tree apart af
Vroeë aanvaarding van die beheerkanaal is nie egtheidsverifikasie nie, want dit gebeur voor die TLS-identiteitskontrole en voor enige rekeningmagtiging. Om 'n rekening te deaktiveer, 'n sertifikaat te herroep en 'n kliëntbeheersleutel te weier, is drie aksies met drie meganismes. 'n Ontplooiing wat net een daarvan doen, het 'n gaping eerder as 'n beleid. Versoen die drie doelbewus, en teken aan watter stap watter gesag uitoefen.
Tydsberekening is die tweede onderskeid. 'n Veranderde aanvaardingslys geld vir nuwe handdrukke, terwyl sessies wat reeds gevestig is, aanhou loop totdat iets hulle beëindig. Om inskrywings in die nuwe lys as bewys te tel dat ou sessies geëindig het, is hoe 'n verwyderde kliënt vir ure verbind bly.
Onversoenende gesagte laat twee gate wat maklik in die praktyk te vind is. 'n Rekening kan gedeaktiveer word terwyl sy beheersleutel nog 'n handdruk oopmaak, en 'n sertifikaat kan herroep word terwyl die metadata-beleid dieselfde kliënt nog toelaat. Albei is dieselfde fout op verskillende plekke, want 'n operateur het een lys as die hele gesag behandel. Lê die drie lyste by verwyderingstyd langs mekaar en die fout word sigbaar.
Om 'n profiel uit te reik en te onttrek
Uitreik is die maklike helfte: skep die kliëntsleutel aan die aanvaardende kant, gee die profiel aan presies een eienaar, hou die toedraaimateriaal beperk, en loop dieselfde verifieerprogram op elke aanvaardende bediener. Goedkoop toelating is 'n eienskap van die hele groep, nie van die nuutste gasheer nie. 'n Tweede bediener met 'n ouer of losser skrip word stilweg die swakste pad in die ontplooiing.
Onttrekking vereis die drie stappe in 'n doelbewuste orde. Weier die kliënt in die verifieerhaak sodat nuwe handdrukke misluk, herroep sy sertifikaat as 'n PKI in gebruik is, en deaktiveer die rekening sodat latere magtiging niks het om te magtig nie. Beëindig dan die sessies wat die ou aanvaarding toegelaat het, want hulle sal nie een van die drie opmerk nie. Oefen die volgorde op 'n kliënt wat jy kan bekostig om te breek.
Metadata in 'n profiel is 'n inset vir daardie beleid, nie bewys dat toegangsbeheer reeds bestaan nie. Die OpenVPN 2.6-ontwerpdokument beskryf die objekte en die grens wat hulle trek, terwyl die afdwing daarvan by die operateur bly.