On viuen n, e, d, p i q de RSA en un fitxer de clau VPN
n, e, d, p i q són dins d’una sola estructura, no als noms de fitxer. Llegeix una clau RSA de VPN amb OpenSSL i emparella-la amb el seu certificat sense imprimir secrets.
Les lletres d’una explicació de RSA anomenen camps dins d’un sol objecte, no fitxers que una eina de PKI reparteixi. Un fitxer de clau privada conté una estructura els primers camps de la qual són públics i els darrers dels quals no han de sortir mai de la màquina que tanca el túnel. Entre aquests dos fets hi ha la majoria de les preguntes pràctiques sobre quin fitxer respon a quina pregunta. Aquest manual llegeix primer l’estructura i després les ordres que la inspeccionen sense abocar-la.
Confirma que la clau és RSA abans de buscar nombres primers
Un certificat demostra que una clau existeix i ha estat signada; no demostra que la clau sigui RSA. Els sistemes es poden construir sobre corbes el·líptiques o Ed25519, i la mateixa disposició de directoris serveix per a tots. Comprova l’algorisme abans de començar a buscar factors primers que mai no hi eren.
Aquestes tres ordres només de lectura responen la pregunta i registren la versió de l’eina.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
La versió importa perquè els noms d’opció s’han mogut entre versions principals. A la sortida del certificat, troba la línia de l’algorisme de clau pública i la mida de la clau; a la sortida de la clau, una clau RSA imprimeix un mòdul i un exponent públic. Una clau de corba el·líptica imprimeix en canvi una corba amb nom, i cap quantitat de cerca no en traurà n ni q.
Llegeix l’estructura en lloc del base64
PEM és base64 embolcallat en línies de capçalera, i descodificar-lo dona DER, que és una estructura serialitzada i no un enter enorme. Les claus privades RSA viatgen en dos contenidors habituals, PKCS#1 i PKCS#8, i tots dos es resolen al mateix conjunt de números.
En el cas de dos primers, l’estructura privada porta nou camps: una versió, el mòdul n, l’exponent públic e, l’exponent privat d, els primers p i q, dos exponents CRT i un coeficient CRT. RFC 8017 secció A.1 defineix aquests components i la disposició ASN.1, i també permet més de dos primers, per això un analitzador general pot imprimir entrades de primers addicionals. Fixa’t en l’ordre, perquè explica un error freqüent: la meitat pública s’emmagatzema dins del fitxer privat, així que la presència d’un camp públic no fa que aquell fitxer sigui segur de compartir. Tot el que ve després és el material que ha de quedar a l’amfitrió.
La codificació afegeix una capa fàcil de confondre amb el contingut. openssl asn1parse dibuixa l’estructura com un arbre perquè l’ordre dels camps esdevingui visible, i no desxifra res ni diu si la clau és utilitzable.
Emparella un certificat amb una clau sense imprimir la clau
La pregunta que segueix sol ser si un certificat i una clau van junts. Comparar els mòduls ho respon, però també copia material proper al privat en una transcripció de terminal que pot acabar en un tiquet. Comparar les meitats públiques respon la mateixa pregunta sense res sensible a la pantalla.
openssl pkey -in vpn-client.key -pubout -out /tmp/key.pub
openssl x509 -in vpn-client.crt -pubkey -noout > /tmp/cert.pub
cmp /tmp/key.pub /tmp/cert.pub && echo MATCH
Fitxers idèntics volen dir que el certificat porta la meitat pública d’aquella clau, i una diferència vol dir que teniu la parella equivocada. Aquesta discrepància és la causa més comuna d’un túnel que negocia alegrement i després refusa l’autenticació. Després elimina els dos fitxers temporals; no guarden res secret, però un directori de treball net és més fàcil de raonar a mig incident.
Sàpigues què no són els fitxers del costat
Un certificat no és una clau pública xifrada que el parell desbloqueja amb el certificat de la CA; és una vinculació signada entre una clau pública i dades d’identitat. La clau de signatura privada de la CA es manté separada del seu propi certificat i de cada clau de client. Una sol·licitud tampoc no és un certificat: porta la informació sol·licitada i la clau pública amb una signatura sobre la sol·licitud, cosa que la converteix en entrada d’enregistrament i no en prova de dret.
| File | Answers | Does not prove |
|---|---|---|
| vpn-client.key | Possession of the private key | That the identity is enrolled |
| vpn-client.crt | A signed binding of public key to identity | That the client holds the matching key |
| vpn-client.csr | The requested binding and public key | That access was granted |
| dh2048.pem | Group parameters for key exchange | Any RSA component |
| crl.pem | Revocation status for certificates | Anything about a private key |
Dues d’aquestes entrades es confonen amb els paràmetres RSA prou sovint per anomenar-les dues vegades. Un fitxer de paràmetres Diffie-Hellman conté paràmetres de grup per a l’establiment de clau i cap primer RSA, tot i que també s’imprimeix com un primer gran. Una llista de revocació publica l’estat dels certificats i no és un lloc on un exponent privat pogués amagar-se.
Per tant, cada línia d’inventari ha de registrar quatre coses: tipus d’objecte, propietari, propòsit i si s’hi inclou material privat. L’última columna decideix on es pot copiar el fitxer, i és la que la gent s’estalvia.
Registra l’emparellament i després verifica l’handshake
Abans de canviar res, desa la sortida de verificació amb la data i la versió d’OpenSSL. Així una rotació posterior es pot comparar amb proves en lloc de amb memòria.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Després de comparar la clau pública, recorre el camí que consumeix la parella: aixeca el túnel, confirma que el certificat es presenta i s’accepta, i comprova quina identitat ha registrat la passarel·la. Si la clau i el certificat coincideixen i l’autenticació encara falla, el defecte és a la confiança, el mapatge d’identitat o la política d’accés, no a la parella.
Per a la reversió, guarda la clau i el certificat anteriors en un directori datat i restaura tots dos alhora, mai un de sol. Una clau sense el seu certificat i un certificat sense la seva clau fallen igual des de fora, cosa que fa cares d’espigar les parelles mig restaurades a les dues de la matinada.