Izdajete zaseban certifikat za svaki laptop, pa pretpostavljate da ih VPN može razlikovati. Ne može. Klijentski certifikat dokazuje da onaj koji se povezuje ima odgovarajući privatni ključ, a kopirani profil ga također ima.

Certifikat po uređaju je i dalje dobra ideja. Samo obavlja drugačiji posao od onoga koji većina ljudi očekuje.

Šta klijentski certifikat zapravo dokazuje

Tokom rukovanja klijent potpisuje privatnim ključem koji odgovara njegovom certifikatu, a server provjerava taj potpis prema CA-u kojem vjeruje. Ništa u toj razmjeni ne opisuje mašinu. Svaki uređaj koji ima i certifikat i ključ proizvodi identičan potpis, pa profil kopiran na drugi laptop izgleda potpuno kao original. Certifikat imenuje identitet; ne imenuje hardver.

Jedinstvenost po uređaju se i dalje isplati, jer opoziv čini preciznim. To je administrativno svojstvo, a ne tehnička brava.

Tri nivoa čuvanja ključa

Prvi nivo je datoteka ključa na disku. Prenosiva je po dizajnu i tu živi većina OpenVPN profila.

Drugi nivo je ključ koji operativni sistem označava kao neizvoziv. Windows može generisati ključ uređaja u svom spremištu certifikata i odbiti običan izvoz, što zaustavlja slučajno kopiranje. Nije hardverski podržan, a uz dovoljan pristup mašini takvi ključevi se mogu povratiti, pa povećava trud umjesto da gradi zid.

Treći nivo je ključ generisan unutar sigurnosnog hardvera: TPM, pametna kartica, SIM ili PIV token. Ti moduli nemaju sklopove za izvoz ključa koji su generisali, a potpisivanje se odvija unutar modula. Ključ nikada ne postaje datoteka koju bilo ko može kopirati.

Where the key livesCopyableWhat it buys you
Key file inside the profileTriviallyRevocation granularity, nothing more
OS non-exportable key storeHard, not impossibleStops casual profile sharing
TPM or PIV tokenNoBinding the server can rely on

Ta tabela je cijeli argument u tri reda.

Šta easy-rsa može, a šta ne može

Izdavanje certifikata po uređaju je jednostavno. Napravite posebno uobičajeno ime za svaki uređaj prema istom CA-u, na primjer ./easyrsa build-client-full laptop-a nopass, i ponovite za svaki uređaj. Zapišite koje uobičajeno ime pripada kojoj osobi i mašini.

Opoziv je jednako direktan: ./easyrsa revoke laptop-a, ponovo generišite CRL pomoću ./easyrsa gen-crl i uvjerite se da ga server zaista čita kroz crl-verify.

Ono što CA ne može jest provjeriti gdje privatni ključ kasnije živi. Ako generišete ključ na CA hostu i kopirate ga na uređaj, napravili ste drugu kopiju pri izdavanju. Neizvozivi ključ mora biti generisan na uređaju ili uvezen u hardver koji ga neće ispustiti.

Kontrole koje preživljavaju kopirani profil

Pretpostavite da profil može biti kopiran i projektujte s tim u vidu. Vežite račun za drugi faktor da sam certifikat nije dovoljan. Dajte svakom uređaju vlastitu politiku da doseg jednog identiteta ostane ograničen. I pazite na isto uobičajeno ime povezano s dvije adrese istovremeno, jer tako izgleda dijeljeni profil u dnevniku veza.

Brz i dokumentovan opoziv je kontrola koja i dalje radi nakon što se kopija već dogodila. Sve ostalo je prevencija.

Tvrdnja na koju se server zaista može osloniti

Jedinstvenost dolazi od CA-a. Vezivanje za uređaj dolazi od čuvanja ključa. Samo hardver koji ne može izvesti svoj ključ pretvara jedan certifikat po uređaju u tvrdnju koju server provodi, a ne u politiku s kojom se svi slažu da je slijede.

Povezani članci