Onde viven n, e, d, p e q de RSA nun ficheiro de chave VPN
n, e, d, p e q están dentro dunha soa estrutura, non en nomes de ficheiro. Lea unha chave RSA de VPN con OpenSSL e emparéxea co seu certificado sen imprimir segredos.
As letras dunha explicación de RSA nomean campos dentro dun obxecto, non ficheiros que reparte unha ferramenta PKI. Un ficheiro de chave privada contén unha estrutura cuxos primeiros campos son públicos e cuxos campos posteriores nunca deben saír da máquina que remata o túnel. Entre eses dous feitos están case todas as preguntas prácticas sobre que ficheiro responde a que pregunta. Este manual le primeiro a estrutura e despois os comandos que a inspeccionan sen derramala.
Confirme que a chave é RSA antes de buscar primos
Un certificado demostra que existe algunha chave e que foi asinada; non demostra que a chave sexa RSA. Os sistemas pódense construír sobre curvas elípticas ou Ed25519, e a mesma disposición de directorios serve para todos. Comprobe o algoritmo antes de comezar a buscar factores primos que nunca estiveron aí.
Estes tres comandos de só lectura responden á pregunta e rexistran a versión da ferramenta.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
A versión importa porque os nomes de opción movéronse entre versións principais. Na saída do certificado, atope a liña do algoritmo de chave pública e o tamaño da chave; na saída da chave, unha chave RSA imprime un módulo e un expoñente público. Unha chave de curva elíptica imprime no seu lugar unha curva con nome, e ningunha busca producirá n nin q a partir dela.
Lea a estrutura en lugar do base64
PEM é base64 envolto en liñas de cabeceira, e decodificalo produce DER, que é unha estrutura serializada e non un número enteiro enorme. As chaves privadas RSA viaxan en dous contedores habituais, PKCS#1 e PKCS#8, e ambos se resolven ao mesmo conxunto de números.
No caso de dous primos, a estrutura privada leva nove campos: unha versión, o módulo n, o expoñente público e, o expoñente privado d, os primos p e q, dous expoñentes CRT e un coeficiente CRT. RFC 8017 sección A.1 define eses compoñentes e a disposición ASN.1, e tamén permite máis de dous primos, por iso un analizador xeral pode imprimir entradas de primos adicionais. Fíxese na orde, porque explica un erro frecuente: a metade pública gárdase dentro do ficheiro privado, así que a presenza dun campo público non fai que ese ficheiro sexa seguro para compartir. Todo o que vén despois é o material que debe quedar no host.
A codificación engade unha capa doada de confundir co contido. openssl asn1parse debuxa a estrutura como unha árbore para que a orde dos campos sexa visible, e non descifra nada nin di se a chave é utilizábel.
Emparexe un certificado cunha chave sen imprimir a chave
A pregunta que segue adoita ser se un certificado e unha chave van xuntos. Comparar os módulos responde a iso, pero tamén copia material próximo ao privado nunha transcrición de terminal que pode acabar nun ticket. Comparar as metades públicas responde á mesma pregunta sen nada sensíbel na 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
Ficheiros idénticos significan que o certificado leva a metade pública desa chave, e unha diferenza significa que ten o par equivocado. Esa discrepancia é a causa máis común dun túnel que negocia alegremente e despois rexeita a autenticación. Despois elimine os dous ficheiros temporais; non gardan nada secreto, pero un directorio de traballo limpo é máis doado de razoar a metade dun incidente.
Saiba que non son os ficheiros veciños
Un certificado non é unha chave pública cifrada que o par desbloquea co certificado da CA; é unha vinculación asinada entre unha chave pública e datos de identidade. A chave de sinatura privada da CA mantense separada do seu propio certificado e de cada chave de cliente. Unha solicitude tampouco é un certificado: leva a información solicitada e a chave pública cunha sinatura sobre a solicitude, o que a converte en entrada de rexistro e non en proba de dereito.
| 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 |
Dúas desas entradas confúndense cos parámetros RSA con suficiente frecuencia como para nomealas dúas veces. Un ficheiro de parámetros Diffie-Hellman contén parámetros de grupo para o establecemento de chave e ningún primo RSA, aínda que tamén se imprime como un primo grande. Unha lista de revocación publica o estado dos certificados e non é un lugar onde un expoñente privado puidese esconderse.
Por iso cada liña de inventario debería rexistrar catro cousas: tipo de obxecto, propietario, propósito e se se inclúe material privado. A última columna decide onde se pode copiar o ficheiro, e é a que a xente salta.
Rexistre o emparellamento e logo verifique o handshake
Antes de cambiar nada, garde a saída da verificación coa data e a versión de OpenSSL. Así unha rotación posterior pódese comparar con probas en lugar de con memoria.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Tras a comparación da chave pública, percorra a ruta que consome o par: levante o túnel, confirme que o certificado se presenta e se acepta, e comprobe que identidade rexistrou a pasarela. Se a chave e o certificado coinciden e a autenticación segue fallando, o defecto está na confianza, no mapeado de identidade ou na política de acceso, non no emparellamento.
Para a reversión, garde a chave e o certificado anteriores nun directorio con data e restaure ambos á vez, nunca un dos dous. Unha chave sen o seu certificado e un certificado sen a súa chave fallan igual desde fóra, o que fai que os pares a medio restaurar sexan caros de desenredar ás dúas da mañá.