El missatge que apareix quan s'inicia un client VPN és fàcil de malinterpretar. No és la contrasenya del compte VPN, no és la contrasenya del túnel, i introduir-la no demostra que la connexió sigui segura. Desbloqueja una representació desada d'una clau privada perquè el client pugui llegir el material de la clau i fer-lo servir per autenticar-se. Tot el que passa després és una altra qüestió.

A la pràctica, la resposta falla a les vores: la gent assumeix que la contrasenya protegeix el túnel en funcionament, o que canviar-la revoca una còpia de la clau que ja s'ha filtrat. Totes dues suposicions fallen, i fallen de manera que deixen una credencial exposada mentre l'operador creu que s'ha resolt.

Un diàleg, diversos secrets diferents

La contrasenya d'una clau privada desxifra un fitxer. La contrasenya del compte us autentica davant d'un servei. La contrasenya d'importació PKCS#12 desxifra un paquet que conté una clau i el seu certificat, i pot no ser la mateixa cadena que la contrasenya pròpia de la clau. Aquests missatges poden semblar gairebé idèntics, i endevinar quin secret va a cada lloc és com les claus acaben enganxades al camp equivocat.

El xifratge propi del túnel és una quarta cosa. El canal de dades utilitza claus de sessió negociades durant l'apretada de mans; la contrasenya de la clau privada no té cap paper en la protecció dels paquets individuals. Si algú pot llegir el fitxer de la clau, pot intentar endevinar la contrasenya fora de línia, però si pot llegir paquets, la contrasenya és irrellevant.

Què cobreix el xifratge al disc

Una clau PEM xifrada té dues formes, i la capçalera us diu quina teniu. La forma moderna PKCS#8 comença amb -----BEGIN ENCRYPTED PRIVATE KEY-----; la forma PEM antiga, encara habitual en configuracions OpenVPN més velles, comença amb -----BEGIN RSA PRIVATE KEY----- i porta Proc-Type: 4,ENCRYPTED i una línia DEK-Info just a sota. El fitxer conté la clau privada xifrada sota una clau derivada de la vostra contrasenya, normalment mitjançant un KDF basat en contrasenya amb un recompte d'iteracions o un factor de treball declarat. La documentació d'OpenSSL pkey cobreix els formats i les opcions de contrasenya que s'apliquen en llegir-ne una.

Se'n deriven dues conseqüències. Una contrasenya feble es pot atacar fora de línia al ritme que permeti el KDF, així que els permisos del fitxer i l'accés a les còpies de seguretat continuen important encara que el fitxer estigui xifrat. I un atacant que només obté el fitxer sense la contrasenya ha d'endevinar; qui obté el fitxer i la contrasenya té la clau, exactament com si mai s'hagués xifrat.

head -3 vpn.key
openssl pkey -in vpn.key -noout -pubout
openssl pkcs12 -in bundle.p12 -info -noout

head -3 mostra la capçalera i, en un fitxer antic, les línies Proc-Type i DEK-Info que demostren el xifratge; una sola línia no és prova en cap sentit. La línia pkey demana la contrasenya i imprimeix només la meitat pública, cosa que demostra que el fitxer i la contrasenya funcionen sense exposar la clau privada. No feu servir -text per a aquesta comprovació: imprimeix els components privats, privateExponent, prime1, prime2 i la resta, i aquesta sortida no s'ha d'enganxar mai enlloc, ni en un tiquet, ni en un xat, ni en un registre. L'ordre PKCS#12 també us diu si el paquet té una contrasenya MAC o de xifratge separada, cosa que val la pena saber abans de passar-lo a un company.

Què deixa de protegir quan la clau s'ha carregat

El desbloqueig és un esdeveniment d'un sol sentit per a aquell procés. El client demana la clau al KDF, desxifra el fitxer i manté la clau privada a la memòria tant com la necessita. Des d'aquell moment, la contrasenya no protegeix res de la sessió en funcionament: ni la memòria del procés, ni un abocament de nucli, ni una sessió de depuració connectada al client, ni una còpia de seguretat de la màquina feta mentre la clau era en ús.

Aquesta és la mateixa frontera que una clau SSH amb contrasenya, o la caixa forta desbloquejada d'un gestor de contrasenyes. Augmenta el cost de robar el fitxer en repòs i no fa res contra programari maliciós que s'executi com el vostre usuari, una aplicació autoritzada que demani al client que signi, o un administrador que pugui llegir la memòria. Tracteu-ho com una capa, no com el control que fa que una clau sigui segura de deixar abandonada.

Per què el missatge torna una i altra vegada

Un client que torna a preguntar a cada reconnexió no està necessàriament avariat. Alguns clients desen la contrasenya a la memòria cau per a la sessió, d'altres la guarden al clauer del sistema operatiu, i d'altres es poden apuntar a un assistent que la subministri, així que el comportament que obteniu depèn del client i de la seva configuració, no del fitxer de la clau.

Si el missatge repetit és la queixa real, reviseu les opcions de memòria cau i autenticació del client abans de treure el xifratge de la clau. Treure la contrasenya converteix un fitxer protegit en una clau de text pla, i la reconnexió es fa silenciosa a costa de l'únic control en repòs que teníeu. Una resposta millor sol ser un magatzem de credencials compatible amb els mateixos permisos de fitxer que faríeu servir igualment.

La pèrdua i l'exposició no són la mateixa reparació

Una contrasenya perduda no es pot recuperar del certificat. El certificat és material públic que lliga un nom a una clau; no conté cap camí de tornada a la clau privada ni cap pista sobre la contrasenya. Les opcions pràctiques són una còpia de seguretat autoritzada de la clau, o una identitat nova emesa pel procés habitual de l'operador. Qui ofereixi 'recuperar' la contrasenya ofereix endevinar-la.

L'exposició necessita una resposta diferent. Re-xifrar la mateixa clau amb una contrasenya nova deixa el material de la clau intacte, així que una còpia que ja s'havia desbloquejat en un altre lloc encara funciona. La reparació és revocar o substituir la credencial: emetre una clau i un certificat nous, distribuir-los i retirar l'antic al peer. Fins que això passi, canviar la contrasenya del fitxer és manteniment, no contenció. Manteniu el fitxer antic fora de les còpies de seguretat només després de confirmar que la identitat nova funciona, i anoteu quin número de sèrie o empremta l'ha substituït.

Articles relacionats