El "formato .PEM" no existe realmente como estándar. Esto es más "lo que sea que haga OpenSSL".
PEM proviene de un antiguo estándar fallido para Correo con privacidad mejorada (eso es lo que significa el acrónimo). En estos días, "PEM" realmente significa: un texto que se parece a:
-----BEGIN XXX-----
[some Base64 stuff here]
-----END XXX-----
I.e. una línea de encabezado que comienza con -----
y contiene la designación del tipo de datos (por ejemplo, "CLAVE PRIVADA RSA"); una línea de remolque similar; y entre estas dos líneas, un objeto binario codificado en Base64 .
Para las claves privadas RSA, encontrará principalmente dos tipos de formatos codificados PEM. Cuando el encabezado contiene "BEGIN RSA PRIVATE KEY", se trata de una clave privada RSA en el formato descrito por PKCS # 1 . Cuando el encabezado dice "COMIENZA LA CLAVE PRIVADA" (sin el "RSA"), utiliza PKCS # 8 , un formato de envoltorio eso incluye la designación del tipo de clave ("RSA") y la propia clave privada.
En su caso, si ve algo que se parece a PEM y comienza con -----BEGIN RSA PRIVATE KEY-----
, entonces es PEM; solo colóquelo en un archivo de texto, guárdelo con algún nombre (por ejemplo, "serverkey.pem") y configure Wireshark para usar ese archivo como clave de servidor. Esto se describe en la documentación de Wireshark .
Sin embargo, cuida algunos detalles:
-
Es probable que Wireshark no pueda leer el archivo si está codificado en UTF-16 (lo que Windows, de alguna manera, denomina "Unicode"). En UTF-16, cada carácter está codificado sobre dos bytes (o cuatro bytes para algunos caracteres como Pahawh Hmong ). Si está utilizando el bloc de notas de Windows, al guardar el archivo, elija la codificación "ANSI" o "UTF-8".
-
Conocer la clave privada del servidor no es suficiente para descifrar los datos si el cliente y el servidor utilizan un conjunto de cifrado "DHE" o "ECDHE". Si el cliente y el servidor aceptan usar dicho conjunto de cifrado y aún desea interceptar los datos, debe realizar un ataque activo (un Man-in-the-Middle ) en el que se hace pasar por el servidor cuando habla con el cliente, y el cliente cuando habla con el servidor. Esto es mucho más trabajo y Wireshark no te ayudará mucho allí.