Arribeu a la pàgina de certificats d'una configuració de VPN, veieu una opció autosignada gratuïta al costat d'una CA pública de pagament, i la pregunta sembla una decisió de seguretat. En realitat és una decisió d'audiència. Les dues opcions xifren el túnel amb les mateixes primitives, i totes dues es tornen inútils si la clau privada es filtra. El que les separa és qui fa l'afirmació sobre la identitat del servidor i qui està en posició de comprovar aquesta afirmació.

Un certificat fa dues feines que es confonen

Un certificat lliga una clau pública a un nom, i la clau fa la feina de xifratge i signatura. La signatura del certificat és una declaració separada: alguna autoritat ha comprovat que el nom pertany a aquest titular de la clau. Un certificat autosignat fa aquesta declaració sobre si mateix, cosa que no és cap afirmació de tercers.

Els llocs web públics necessiten la versió amb tercers, perquè els visitants arriben sense cap relació prèvia i depenen del magatzem de confiança del navegador. Un client VPN no és un desconegut. Li doneu el certificat de la CA, o fixeu el certificat del servidor, dins del perfil que instal·la, de manera que la verificació es fa contra exactament l'autoritat que heu triat. Cap CA comercial no hi ha de participar perquè aquesta comprovació signifiqui res.

La força de la sessió resultant prové de la mida de la clau i del conjunt de xifratges, no del signant. Per això dir que un certificat autosignat "xifra menys" és simplement incorrecte; està menys avalat, que és una propietat diferent.

On una CA pública guanya la seva quota

El cas més clar és la pàgina d'administració. Si els col·legues, els contractistes o qualsevol altra persona sense un perfil preparat han d'obrir la interfície web del servidor VPN sense cap advertència del navegador, un certificat de confiança pública elimina aquesta fricció. El navegador ja confia en el signant, així que no hi ha res a importar ni res a explicar.

Aquesta comoditat té costos que val la pena esmentar abans de comprar. La renovació ha d'estar automatitzada o el lloc es trenca segons un calendari, els certificats públics exposen el nom d'amfitrió als registres de transparència de certificats, i els límits de taxa d'emissió castiguen un script que reintenta amb massa entusiasme. Cap d'aquests no és motiu per evitar una CA pública, però és feina operativa que una CA privada trasllada a un altre lloc.

El que un certificat públic no fa és autenticar els vostres usuaris. La identitat del client és una decisió separada, presa amb certificats de client, contrasenyes o un segon factor, i la CA que signa el servidor no diu res sobre qui pot connectar-s'hi.

On una CA privada encaixa en una VPN

Per a una VPN privada amb un conjunt conegut de clients, executar la vostra pròpia CA és l'opció convencional. Creeu la CA una vegada, signeu el certificat del servidor amb un nom que els clients faran servir i distribuïu el certificat de la CA dins de cada perfil. Aleshores cada client verifica el servidor contra la vostra autoritat, i cap part externa no aprèn el nom d'amfitrió.

Els costos són reals però limitats. Els navegadors avisaran quan algú obri la pàgina d'administració directament, perquè el navegador no té cap motiu per confiar en la vostra CA. La distribució de perfils passa a formar part de l'acollida, i rotar la CA significa tocar cada client. Són preus acceptables per a un servei amb deu o cinquanta usuaris coneguts i dolorosos per a un punt final públic amb milers.

Una condició fa vàlid tot l'arranjament: la verificació ha de passar. Un client configurat per ignorar els errors de certificat accepta qualsevol servidor que presenti qualsevol certificat, així que la garantia d'identitat desapareix mentre el xifratge es manté. Aquest paràmetre és la debilitat real en la majoria d'històries de "autosignat és insegur".

La clau privada de la CA decideix què podeu fer després

La sorpresa sol arribar mesos després, quan voleu afegir un dispositiu. Emetre un certificat de client requereix la clau privada de la CA, i produir una llista de revocació també. Si heu heretat un servidor que té els fitxers de certificat i clau però no la clau de la CA, no podeu signar res nou. Les vostres opcions són reconstruir la PKI i lliurar a cada client un certificat de CA nou, o passar a l'autenticació per contrasenya, que és un model de seguretat diferent i no restaura el que es va perdre.

Dues trampes més petites viuen al mateix territori. Els scripts easy-rsa assumeixen que esteu al directori que els conté, així que un error de fitxer no trobat normalment significa la ubicació equivocada i no una instal·lació malmesa. I un disseny només amb certificats és perfectament legítim: podeu exigir certificats de client sense cap clau prèviament compartida, sempre que cada client en tingui un i el servidor verifiqui la cadena.

Emeteu un certificat per dispositiu en lloc d'un certificat de client compartit per a tot l'equip. Aleshores un portàtil perdut us costa una sola revocació en lloc d'una reemissió per a tothom.

Comproveu què heu heretat

Abans de planificar cap canvi, llegiu el certificat que ja teniu:

$ 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

Si l'emissor és igual al subjecte, el certificat és autosignat, cosa que és una elecció de disseny i no un defecte. Les dates us diuen quan la renovació es converteix en el problema d'algú, i una verificació correcta contra la CA que penseu desplegar confirma que la cadena funciona abans que cap client ho provi.

Després trieu per audiència i distribució: CA pública quan navegadors desconeguts han de confiar en la pàgina d'administració, CA privada quan cada client rep un perfil que controleu. Cap de les dues respostes no xifra més que l'altra.

Articles relacionats