Il "formato .PEM" in realtà non esiste come standard. Questo è più "qualunque sia OpenSSL".
Il PEM deriva da un vecchio standard fallito per Privacy Enhanced Mail (questo è ciò che l'acronimo significa). In questi giorni, "PEM" significa davvero: un testo che assomiglia a:
-----BEGIN XXX-----
[some Base64 stuff here]
-----END XXX-----
vale a dire. una riga di intestazione che inizia con -----
e contiene la designazione del tipo di dati (ad esempio "RSA PRIVATE KEY"); una linea di rimorchi simile; e tra queste due linee, un oggetto binario codificato in Base64 .
Per le chiavi private RSA, troverai principalmente due tipi di formati codificati PEM. Quando l'intestazione contiene "BEGIN RSA PRIVATE KEY", questa è una chiave privata RSA nel formato descritto da PKCS # 1 . Quando l'intestazione dice "BEGIN PRIVATE KEY" (senza "RSA") utilizza quindi PKCS # 8 , un formato di wrapper che include la designazione del tipo di chiave ("RSA") e la chiave privata stessa.
Nel tuo caso, se vedi qualcosa che sembra PEM e inizia con -----BEGIN RSA PRIVATE KEY-----
allora è PEM; mettilo in un file di testo, salvalo sotto un nome (ad esempio "serverkey.pem") e configura Wireshark per usare quel file come chiave del server. Questo è descritto nella documentazione di Wireshark .
Attenzione ad alcuni dettagli, però:
-
Wireshark probabilmente non sarà in grado di leggere il file se è codificato in UTF-16 (ciò che Windows in qualche modo impropriamente chiama "Unicode"). In UTF-16, ogni carattere è codificato su due byte (o quattro byte per alcuni caratteri come Pahawh Hmong ). Se stai utilizzando il blocco note di Windows, al salvataggio del file, scegli la codifica "ANSI" o "UTF-8".
-
Conoscere la chiave privata del server non è sufficiente per decodificare i dati se il client e il server utilizzano una suite di crittografia "DHE" o "ECDHE". Se il client e il server accettano di utilizzare tale suite di crittografia e si desidera comunque intercettare i dati, è necessario effettuare un attacco attivo (a Man-in-the-Middle ) in cui impersonate il server quando si parla con il client e il client quando si parla al server. Questo è molto più lavoro e Wireshark non ti aiuterà molto.