Pots compartir una clau pública de VPN? Comprova aquestes tres coses
Publicar la meitat pública és com funciona el protocol; publicar la meitat privada és lliurar una identitat. Tres comprovacions decideixen quin valor tens.
Pots donar la teva clau pública de VPN a un parell, a un proveïdor o a un fòrum, i el túnel continua funcionant. La clau privada no la pots lliurar, ni tan sols al personal de suport, sense lliurar la identitat que aquesta clau demostra. La decisió poques vegades queda tan clara, perquè la gent confon quina meitat de la parella està mirant i perquè alguns desplegaments tracten el valor públic com un nom. Tres comprovacions ho resolen: quina meitat tens, a què ho lliga el desplegament i quant costa substituir-ho.
Comprovació primera: quina meitat de la parella hi ha al porta-retalls
Les claus asimètriques van en parelles, i la direcció de la derivació és tota la qüestió. A WireGuard la clau privada són 32 bytes aleatoris i la clau pública es calcula a partir d’ella; no pots anar en la direcció contrària. wg genkey escriu el valor privat, wg pubkey deriva el públic, i només el segon pertany a un missatge adreçat a un parell.
wg genkey | tee private.key | wg pubkey > public.key
chmod 600 private.key
openssl x509 -noout -pubkey -in server.crt
El món dels certificats fa servir la mateixa divisió amb més peces mòbils. Un certificat de servidor porta una clau pública i noms, i el signa una clau privada de la CA que mai no surt de la CA. Un client que verifica aquest servidor necessita el certificat de la CA, que és públic, i no té cap ús per a la clau privada de signatura de la CA.
Si no estàs segur de quin valor tens, busca el marcador en lloc del nom del fitxer. Un bloc PEM que comença amb -----BEGIN PRIVATE KEY-----, o la forma més antiga BEGIN RSA PRIVATE KEY, és la meitat secreta. Un valor que pots enganxar sense aquest marcador és candidat a compartir, subjecte a les dues comprovacions següents.
Comprovació segona: a què lliga el desplegament aquest valor públic
La seguretat criptogràfica i l’anonimat són propietats diferents. La clau pública d’un parell de WireGuard és un identificador estable dins del desplegament: la configuració del servidor la llista, l’establiment de connexió la nomena i un administrador que llegeix registres veu la mateixa cadena cada vegada que aquell parell es connecta. Publica la clau al costat d’una pregunta sobre la teva instal·lació i hauràs lligat aquella cadena amb tota la resta de la publicació.
Els certificats filtren identitat per disseny. Els camps Subject i subject alternative name són llegibles, i per als certificats TLS de confiança pública el certificat mateix es publica als registres Certificate Transparency, que són cercables. Res d’això no exposa una clau privada, i tot això exposa una relació.
Aquí és on els desplegaments difereixen, i això decideix la resposta. Un parell de prova temporal en un servidor de laboratori és un objecte diferent de la clau que identifica un extrem entre seus d’una empresa, encara que els bytes semblin idèntics.
Comprovació tercera: què pots revocar, i amb quina rapidesa
La tercera comprovació separa les dues meitats del tot. Una clau pública que s’ha publicat es pot substituir segons el teu calendari. Una clau privada que s’ha publicat no es pot retirar: esborrar la teva còpia no toca les còpies ja preses, i cada parell que hi confiava ara confia en una cosa que té algú de fora.
La revocació és una acció de configuració, no una acció criptogràfica. WireGuard no inclou cap llista de revocació, així que has de treure el parell:
wg set wg0 peer <peer-public-key> remove
# then delete the [Peer] block from the config so it does not return on restart
OpenVPN els desplegaments basats en certificats revoquen el certificat i publiquen una CRL que el servidor comprova realment mitjançant crl-verify. Sense aquesta directiva, la llista de revocació és decoració. En qualsevol cas la seqüència és la mateixa: emet una substitució, distribueix-la pel canal admès i després retira la identitat antiga.
Els errors que vénen d’ajuntar les tres comprovacions
La majoria de filtracions reals no són una persona que decideix publicar una clau privada. Són un perfil sencer enganxat en un fòrum: un .conf de WireGuard amb una línia PrivateKey, o un paquet .ovpn amb un bloc de clau incrustat, o una captura d’una finestra de client que inclou per casualitat el camp de la clau. El valor públic probablement estava bé; va viatjar amb la part que no ho estava.
Els fluxos de treball de suport són la segona font. Cap pas de verificació legítim no necessita la teva clau privada, perquè l’altra banda deriva del mig públic el que li cal. Quan un formulari o una persona demana el valor privat, la resposta correcta és el públic més l’ordre local que el produeix.
Els registres i les captures de pantalla pertanyen a la mateixa categoria. La sortida de diagnòstic pot portar material de claus, identificadors de sessió i adreces internes, i publicar-ho tot per obtenir resposta a una pregunta canvia una petita comoditat per una exposició més gran.
Després d’una filtració d’un valor privat, retira la identitat
Si un valor privat s’ha escapat, tracta aquella identitat com a retirada. Genera una parella nova, instal·la la meitat pública on els parells l’esperen, treu el parell vell o revoca el certificat vell i revisa els llocs on el vas publicar. No pots esborrar còpies que no controles, així que la retirada va del futur, no del passat.
Després escriu la distribució: quina clau pertany a quin dispositiu, qui té una còpia, com es lliura una substitució i qui treu un parell retirat. Aquestes són les parts que la gent oblida, i decideixen quant temps una filtració continua sent útil.