Pre každý notebook vydáte samostatný certifikát, a tak predpokladáte, že VPN ich dokáže rozlíšiť. Nedokáže. Klientský certifikát dokazuje, že ten, kto sa pripája, má zodpovedajúci súkromný kľúč, a skopírovaný profil ho má tiež.

Certifikát pre každé zariadenie je stále dobrý nápad. Len robí inú prácu, než väčšina ľudí očakáva.

Čo klientský certifikát skutočne dokazuje

Počas nadviazania spojenia klient podpisuje súkromným kľúčom, ktorý patrí k jeho certifikátu, a server overuje tento podpis voči CA, ktorej dôveruje. Nič v tejto výmene neopisuje stroj. Každé zariadenie, ktoré má certifikát aj kľúč, vytvorí rovnaký podpis, takže profil skopírovaný na druhý notebook vyzerá presne ako originál. Certifikát pomenúva identitu; nepomenúva hardvér.

Jedinečnosť na zariadenie si stále zaslúži svoje miesto, pretože robí odvolanie presným. Je to administratívna vlastnosť, nie technický zámok.

Tri úrovne ukladania kľúčov

Prvá úroveň je súbor s kľúčom na disku. Je prenosný už zo svojho návrhu a práve tam žije väčšina profilov OpenVPN.

Druhá úroveň je kľúč, ktorý operačný systém označí za neexportovateľný. Windows dokáže vytvoriť kľúč zariadenia vo svojom úložisku certifikátov a odmietnuť bežný export, čo zastaví náhodné kopírovanie. Nie je podporený hardvérom a pri dostatočnom prístupe k stroju sa takéto kľúče dajú obnoviť, takže zvyšuje námahu namiesto toho, aby staval stenu.

Tretia úroveň je kľúč vytvorený vnútri bezpečnostného hardvéru: TPM, čipová karta, SIM alebo PIV token. Tieto moduly nemajú obvody na export kľúča, ktorý vytvorili, a podpisovanie sa deje vnútri modulu. Kľúč sa nikdy nestane súborom, ktorý by niekto mohol skopírovať.

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

Tá tabuľka je celý argument v troch riadkoch.

Čo easy-rsa dokáže a čo nie

Vydávanie certifikátov pre jednotlivé zariadenia je priamočiare. Vytvorte odlišné bežné meno pre každé zariadenie voči tej istej CA, napríklad ./easyrsa build-client-full laptop-a nopass, a zopakujte to pre každé zariadenie. Zaznamenajte, ktoré bežné meno patrí ktorému človeku a stroju.

Odvolanie je rovnako priame: ./easyrsa revoke laptop-a, znova vygenerujte CRL pomocou ./easyrsa gen-crl a uistite sa, že server ho skutočne číta cez crl-verify.

Čo CA nedokáže, je overiť, kde potom žije súkromný kľúč. Ak kľúč vytvoríte na hostiteľovi CA a skopírujete ho do zariadenia, pri vydaní ste vytvorili druhú kópiu. Neexportovateľný kľúč sa musí vytvoriť v zariadení, alebo sa musí importovať do hardvéru, ktorý ho nevydá.

Ovládacie prvky, ktoré prežijú skopírovaný profil

Predpokladajte, že profil sa dá skopírovať, a navrhnite to okolo toho. Priraďte účet k druhému faktoru, aby samotný certifikát nestačil. Dajte každému zariadeniu vlastnú politiku, aby dosah jednej identity zostal obmedzený. A sledujte rovnaké bežné meno pripojené naraz z dvoch adries, čo je podoba zdieľaného profilu v zázname pripojení.

Rýchle a zdokumentované odvolanie je kontrola, ktorá stále funguje po tom, čo ku kopii došlo. Všetko ostatné je prevencia.

Tvrdenie, na ktoré sa server skutočne môže spoľahnúť

Jedinečnosť pochádza z CA. Viazanie na zariadenie pochádza z ukladania kľúčov. Iba hardvér, ktorý nedokáže exportovať svoj kľúč, premení jeden certifikát na zariadenie na tvrdenie, ktoré server vynucuje, a nie na politiku, na ktorej sa všetci dohodnú.

Súvisiace články