Samopotpisani nasuprot javnog CA za VPN: šta se zapravo mijenja
Samopotpisani i javni certifikati šifriraju VPN tunel na isti način. Prava razlika je ko jamči za server i ko mora vjerovati toj tvrdnji.
Dođete do stranice certifikata u postavci VPN-a, vidite besplatnu samopotpisanu opciju pored plaćenog javnog CA i pitanje zvuči kao sigurnosni izbor. To je zapravo izbor publike. Obje opcije šifriraju tunel istim primitivima i obje postaju bezvrijedne ako privatni ključ procuri. Ono što ih razdvaja je ko daje tvrdnju o identitetu servera i ko je u poziciji da tu tvrdnju provjeri.
Certifikat obavlja dva posla koja se brkaju
Certifikat povezuje javni ključ s imenom, a ključ obavlja posao šifriranja i potpisivanja. Potpis na certifikatu je zasebna izjava: neki autoritet je provjerio da ime pripada ovom vlasniku ključa. Samopotpisani certifikat daje tu izjavu o samom sebi, što uopće nije tvrdnja treće strane.
Javnim web stranicama treba verzija s trećom stranom, jer posjetitelji dolaze bez prethodnog odnosa i oslanjaju se na spremište povjerenja preglednika. VPN klijent nije stranac. Dajete mu CA certifikat ili prikvačite certifikat servera unutar profila koji instalira, pa se provjera vrši točno prema autoritetu koji ste odabrali. Nije potreban komercijalni CA da bi ta provjera išta značila.
Snaga rezultirajuće sesije dolazi od veličine ključa i skupa šifri, a ne od potpisnika. Zato je nazivati samopotpisani certifikat "manje šifriranim" jednostavno pogrešno; on je manje široko jamčen, što je druga osobina.
Gdje javni CA zarađuje svoju naknadu
Najjasniji slučaj je administrativna stranica. Ako kolege, izvođači ili bilo ko drugi bez pripremljenog profila moraju otvoriti web sučelje VPN servera bez upozorenja preglednika, javno pouzdan certifikat uklanja to trenje. Preglednik već vjeruje potpisniku, pa nema što uvesti i nema što objasniti.
Ta pogodnost ima troškove koje vrijedi navesti prije kupnje. Obnova mora biti automatizirana ili se stranica kvari po rasporedu, javni certifikati izlažu ime hosta u zapisnicima transparentnosti certifikata, a ograničenja brzine izdavanja kažnjavaju skriptu koja previše revno ponavlja pokušaj. Ništa od toga nije razlog za izbjegavanje javnog CA, ali to je operativni posao koji privatni CA premješta na drugo mjesto.
Ono što javni certifikat ne radi jest da autentificira vaše korisnike. Identitet klijenta je zasebna odluka, donesena klijentskim certifikatima, lozinkama ili drugim faktorom, a CA koji potpisuje server ne govori ništa o tome kome je dopušteno da se na njega poveže.
Gdje privatni CA odgovara VPN-u
Za privatni VPN s poznatim skupom klijenata vođenje vlastitog CA uobičajen je izbor. Izradite CA jednom, potpišete certifikat servera imenom koje će klijenti koristiti i distribuirate CA certifikat unutar svakog profila. Tada svaki klijent provjerava server prema vašem autoritetu i nijedna vanjska strana ne saznaje ime hosta.
Troškovi su stvarni, ali ograničeni. Preglednici će upozoriti kada netko izravno otvori administrativnu stranicu, jer preglednik nema razloga vjerovati vašem CA. Distribucija profila postaje dio uvođenja, a rotiranje CA znači dirati svakog klijenta. To su prihvatljive cijene za uslugu s deset ili pedeset poznatih korisnika i bolne za javnu točku s tisućama.
Jedan uvjet čini cijeli aranžman valjanim: provjera se mora dogoditi. Klijent konfiguriran da ignorira pogreške certifikata prihvaća bilo koji server koji predstavi bilo kakav certifikat, pa jamstvo identiteta nestaje dok šifriranje ostaje. Ta postavka je stvarna slabost u većini priča "samopotpisano je nesigurno".
Privatni ključ CA odlučuje što možete učiniti kasnije
Iznenađenje obično stiže mjesecima kasnije, kada želite dodati uređaj. Izdavanje klijentskog certifikata zahtijeva privatni ključ CA, a tako i izrada popisa opoziva. Ako ste naslijedili server koji ima datoteke certifikata i ključa, ali ne i CA ključ, ne možete potpisati ništa novo. Vaše su opcije ponovno izgraditi PKI i svakom klijentu dati novi CA certifikat ili prijeći na autentifikaciju lozinkom, što je drugačiji sigurnosni model i ne vraća izgubljeno.
Dvije manje zamke žive na istom području. easy-rsa skripte pretpostavljaju da stojite u direktoriju koji ih sadrži, pa pogreška o nedostajućoj datoteci obično znači pogrešno mjesto, a ne oštećenu instalaciju. I dizajn samo s certifikatima posve je legitiman: možete zahtijevati klijentske certifikate bez unaprijed dijeljenog ključa, pod uvjetom da svaki klijent ima jedan i da server provjerava lanac.
Izdajte jedan certifikat po uređaju umjesto jednog zajedničkog klijentskog certifikata za cijeli tim. Izgubljeni prijenosnik tada vas košta jednog opoziva umjesto ponovnog izdavanja za sve.
Provjerite što ste naslijedili
Prije planiranja ikakve promjene, pročitajte certifikat koji već imate:
$ openssl x509 -in server.crt -noout -subject -issuer -dates
subject=CN = vpn.example.net
issuer=CN = vpn.example.net
notAfter=Nov 3 09:00:00 2027 GMT
$ openssl verify -CAfile ca.crt server.crt
server.crt: OK
Ako je izdavatelj jednak subjektu, certifikat je samopotpisan, što je odluka o dizajnu, a ne nedostatak. Datumi vam govore kada obnova postaje nečiji problem, a uspješna provjera prema CA koji namjeravate isporučiti potvrđuje da lanac radi prije nego što ga ijedan klijent isproba.
Zatim odaberite prema publici i distribuciji: javni CA kada nepoznati preglednici moraju vjerovati administrativnoj stranici, privatni CA kada svaki klijent dobiva profil koji kontrolirate. Nijedan odgovor nije više šifriran od drugoga.