En certifikat na napravo ne pomeni, da je ključ vezan na napravo
Certifikat za vsako napravo je odločitev skrbnika, ne vezava na napravo. O vezavi odloča to, kje živi zasebni ključ, od kopirljive datoteke do TPM.
Za vsak prenosnik izdate ločen certifikat, zato domnevate, da jih VPN lahko loči. Ne more. Odjemalčev certifikat dokazuje, da ima tisti, ki se poveže, ustrezen zasebni ključ, kopiran profil pa ga ima tudi.
Certifikat za vsako napravo je še vedno dobra zamisel. Opravlja le drugačno delo, kot ga pričakuje večina ljudi.
Kaj odjemalčev certifikat dejansko dokazuje
Med vzpostavljanjem povezave odjemalec podpiše z zasebnim ključem, ki ustreza njegovemu certifikatu, strežnik pa ta podpis preveri pri CA, ki ji zaupa. Nič v tej izmenjavi ne opisuje stroja. Vsaka naprava, ki ima certifikat in ključ, ustvari enak podpis, zato je profil, kopiran na drugi prenosnik, videti popolnoma enako kot izvirnik. Certifikat poimenuje identiteto; ne poimenuje strojne opreme.
Edinstvenost na napravo se še vedno izplača, ker naredi preklic natančen. To je upravna lastnost, ne tehnična ključavnica.
Tri ravni shranjevanja ključev
Prva raven je ključna datoteka na disku. Po zasnovi je prenosljiva in tam živi večina profilov OpenVPN.
Druga raven je ključ, ki ga operacijski sistem označi za neizvozljivega. Windows lahko ustvari ključ naprave v svoji shrambi certifikatov in zavrne običajen izvoz, kar ustavi priložnostno kopiranje. Ni podprt s strojno opremo in ob dovolj dostopa do stroja je takšne ključe mogoče obnoviti, zato poveča napor, namesto da bi zgradil zid.
Tretja raven je ključ, ustvarjen znotraj varnostne strojne opreme: TPM, pametna kartica, SIM ali žeton PIV. Ti moduli nimajo vezja za izvoz ključa, ki so ga ustvarili, podpisovanje pa poteka znotraj modula. Ključ nikoli ne postane datoteka, ki bi jo kdo lahko kopiral.
| Where the key lives | Copyable | What it buys you |
|---|---|---|
| Key file inside the profile | Trivially | Revocation granularity, nothing more |
| OS non-exportable key store | Hard, not impossible | Stops casual profile sharing |
| TPM or PIV token | No | Binding the server can rely on |
Ta tabela je celoten argument v treh vrsticah.
Kaj easy-rsa zmore in česa ne
Izdajanje certifikatov za posamezne naprave je preprosto. Ustvarite različno splošno ime za vsako napravo pri isti CA, na primer ./easyrsa build-client-full laptop-a nopass, in to ponovite za vsako napravo. Zabeležite, katero splošno ime pripada kateri osebi in stroju.
Preklic je prav tako neposreden: ./easyrsa revoke laptop-a, znova ustvarite CRL z ./easyrsa gen-crl in poskrbite, da ga strežnik res bere prek crl-verify.
Česar CA ne zmore, je preveriti, kje zasebni ključ pozneje živi. Če ključ ustvarite na gostitelju CA in ga kopirate v napravo, ste ob izdaji ustvarili drugo kopijo. Neizvozljiv ključ je treba ustvariti v napravi ali ga uvoziti v strojno opremo, ki ga ne bo izpustila.
Kontrole, ki preživijo kopiran profil
Predpostavite, da je profil mogoče kopirati, in načrtujte okoli tega. Račun povežite z drugim dejavnikom, da sam certifikat ne zadošča. Vsaki napravi dajte lastno politiko, da doseg ene identitete ostane omejen. In pazite na isto splošno ime, povezano hkrati z dveh naslovov, kar je podoba skupnega profila v dnevniku povezav.
Hiter in dokumentiran preklic je kontrola, ki deluje še po tem, ko je do kopije prišlo. Vse ostalo je preprečevanje.
Trditev, na katero se strežnik res lahko zanese
Edinstvenost prihaja iz CA. Vezava na napravo prihaja iz shranjevanja ključev. Samo strojna oprema, ki svojega ključa ne more izvoziti, spremeni en certifikat na napravo v trditev, ki jo strežnik uveljavlja, namesto v politiko, s katero se vsi strinjajo.