OpenVPN tls-crypt-v2: mitä asiakasavain ja kääritty blob tekevät
tls-crypt-v2-profiili sisältää asiakkaan ohjausavaimen ja käärittyn kopion, jonka vain palvelin voi avata. Pidä jokainen objekti ja jokainen poistovaihe erillään.
tls-crypt-v2-profiilin liittäminen tikettiin näyttää vaarattomalta, kunnes lasket, mitä tiedosto sisältää. Asiakkaan ohjauskanavan avain seisoo saman avaimen salatun kopion vieressä, eikä kolmas objekti, käärimisavain, koskaan poistu vastaanottavalta palvelimelta. Nämä kolme vastaavat eri kysymyksiin säilytyksestä, jakamisesta ja poistosta. Niiden erottaminen ratkaisee useimmat käytäntökiistat ennen kuin ne alkavat.
Mitä profiili todella sisältää
tls-crypt-v2:n asiakaspuoli on avain sekä sen kääritty kopio. Asiakas käyttää tavallista avainta ohjauskanavan suojaamiseen ja antaa käärittyn kopion palvelimelle asennuksen aikana, joten palvelin palauttaa saman avaimen tallentamatta selkokielistä kopiota asiakasta kohden. Käärimisavain tekee tämän palautuksen mahdolliseksi ja kuuluu vain vastaanottavalle puolelle. Kaikki alla seuraa siitä, missä nämä kolme objektia sijaitsevat.
| 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 |
Lue taulukkoa säilytyksen etkä nimen mukaan, ja seuraukset putoavat itsestään. Käärimisavaimen menettäminen on kallis tapahtuma, koska mikään profiilissa ei voi rakentaa sitä uudelleen ja rehellinen palautus on ryhmän uudelleenmyöntäminen. Vuotanut profiili on halvempi mutta paljon yleisempi, koska profiileja liittävät tiketteihin ihmiset, jotka uskovat käärittyn kopion tekevän tiedostosta turvallisen jakaa. Kaksi epäonnistumista tarvitsevat erilaiset vastaukset, ja siksi objekti pidetään erillään.
Miksi kääritty kopio ei ole koko tarina
Profiili kantaa käyttökelpoisen asiakasmateriaalin yhdessä käärityn vastineensa kanssa, joten palvelimelle tarkoitetun kopion suojaaminen ei kerro mitään tiedoston suojaamisesta. Blob on turvallinen siirtää ja turvaton julkaista. Sen sisällä olevat metatiedot näkyvät jokaiselle bloblin saajalle, myös sille, joka myöhemmin lukee tiketin, johon se liitettiin.
Kohtele profiilia valtuutena, älä kokoonpanon näytteenä. Vuotanut tiedosto antaa haltijalleen toimivan asiakasidentiteetin, kunnes palvelin lakkaa hyväksymästä sitä identiteettiä, eikä kääriminen tee mitään tuolle ikkunalle. Myönnä yksi profiili asiakasta kohden, jotta poisto pysyy yhden tiedoston päätöksenä, ja varmuuskopioi käärimisavain erilleen palvelinkokoonpanosta, jonka se mahdollistaa. Kumpikaan tapa ei korjaa vaarantunutta profiilia, mutta molemmat päättävät, kuinka nopeasti seuraava saadaan hallintaan.
Missä varmennuskoukku sijaitsee kättelyssä
Varmennuskoukku ajetaan ennen kuin TLS-pino altistetaan, ja sen tehtävä on tarkastaa käärityssä blobissa kuljetetut metatiedot. Se saa ne metatiedot sekä pienen, dokumentoidun ympäristön ja sillä on vähemmän työkaluja kuin todennuskoukulla. Oletus, että se näkee käyttäjänimet, istunnon tilan tai liitännäismuuttujat, on tavallinen tapa kirjoittaa tämä koukku huonosti. Lue koukun oma käsikirjaosio sen sijaan, että lainaat odotuksia toisesta koukusta.
Sen poistumistila on päätös: nollasta poikkeava tulos hylkää asiakkaan ja nollatulos antaa kättelyn jatkua. Siksi käytännön on sanottava, mitä tapahtuu, kun metatiedot puuttuvat, eivät jäsenny tai ovat odottamattomia. Kirjoita ensin hylkäyspolku ja päätä sitten, mitkä arvot ovat hyväksyttäviä.
tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.shNe kaksi riviä ovat palvelimen käytäntöpinta: toinen nimeää käärimisavaimen, toinen ohjelman, joka tuomitsee jokaisen asiakkaan. Kaikki kiinnostava elää skriptissä, joka ansaitsee versionhallinnan ja saman tarkastelun kuin mikä tahansa muu pääsysääntö.
Tili, varmenne ja ohjausavain poistetaan erikseen
Ohjauskanavan varhainen hyväksyntä ei ole todennus, koska se tapahtuu ennen TLS-identiteetin tarkistusta ja ennen mitään tilin valtuutusta. Tilin poistaminen käytöstä, varmenteen peruuttaminen ja asiakkaan ohjausavaimen hylkääminen ovat kolme toimea kolmella mekanismilla. Käyttöönotto, joka tekee vain yhden niistä, on aukko eikä käytäntö. Sovita kolme tarkoituksella yhteen ja kirjaa, mikä vaihe käyttää mitä valtuutta.
Ajoitus on toinen ero. Muuttunut hyväksyntäluettelo koskee uusia kättelyjä, kun taas jo muodostetut istunnot jatkuvat, kunnes jokin lopettaa ne. Uuden luettelon merkintöjen laskeminen todisteeksi siitä, että vanhat istunnot päättyivät, on tapa, jolla poistettu asiakas pysyy yhteydessä tunteja.
Sovittamattomat valtuudet jättävät kaksi reikää, jotka on helppo löytää käytännössä. Tili voidaan poistaa käytöstä, vaikka sen ohjausavain avaa yhä kättelyn, ja varmenne voidaan peruuttaa, vaikka metatietokäytäntö hyväksyy yhä saman asiakkaan. Molemmat ovat sama virhe eri paikoissa, koska operaattori kohteli yhtä luetteloa koko valtuutena. Aseta kolme luetteloa vierekkäin poistohetkellä, ja virhe tulee näkyväksi.
Profiilin myöntäminen ja poistaminen
Myöntäminen on helppo puoli: luo asiakasavain vastaanottavalla puolella, anna profiili täsmälleen yhdelle omistajalle, pidä käärimismateriaali rajoitettuna ja aja sama varmennusohjelma jokaisella vastaanottavalla palvelimella. Halpa pääsy on koko ryhmän ominaisuus, ei uusimman isännän. Toinen palvelin vanhemmalla tai löysemmällä skriptillä muuttuu hiljaa käyttöönoton heikoimmaksi poluksi.
Poisto vaatii kolme vaihetta harkitussa järjestyksessä. Hylkää asiakas varmennuskoukussa, jotta uudet kättelyt epäonnistuvat, peruuta sen varmenne jos PKI on käytössä, ja poista tili käytöstä, jotta myöhemmällä valtuutuksella ei ole mitään valtuutettavaa. Lopeta sitten istunnot, jotka vanha hyväksyntä salli, sillä ne eivät huomaa mitään kolmesta. Harjoittele järjestys asiakkaalla, jonka rikkoutumiseen sinulla on varaa.
Profiilin metatiedot ovat tämän käytännön syöte, eivät todiste siitä, että pääsynvalvonta on jo olemassa. OpenVPN 2.6:n suunnitteluasiakirja kuvaa objekti ja rajan, jonka ne piirtävät, kun taas täytäntöönpano jää operaattorille.