Si consiglia di utilizzare la chiave principale, che è più facile da ottenere. Per quanto ne so, la chiave pre-master esiste solo temporaneamente nello stack in OpenSSL. La chiave master è disponibile in ssl_session_st
(definita in ssl.h
nella diramazione 1.0.2 ma spostata in ssl_locl.h
in una versione successiva). La variabile membro SSL
session
è un puntatore al suo ssl_session_st
(alias SSL_SESSION
).
Wireshark può utilizzare la chiave master e la chiave pre-master per decodificare le connessioni. Here are the formats che Wireshark supporta partire da questa scrittura:
RSA xxxx yyyy
Dove xxxx
sono i primi 8 byte del criptato pre-master segreto (hex-codificati) Dove yyyy
è il segreto pre-master in chiaro (HEX codificata) (questo è il formato originale introdotta con bug 4349)
RSA Session-ID:xxxx Master-Key:yyyy
Dove xxxx
è l'ID di sessione SSL (hex-encoded) Dove yyyy
è la c leartext master secret (codifica esadecimale) (aggiunto per supportare l'uscita openssl s_client Master-Key) Questo è un po 'improprio perché non c'è nulla di specifico RSA su questo.
PMS_CLIENT_RANDOM xxxx yyyy
Dove xxxx
è la client_random dal ClientHello (hex-encoded) Dove yyyy
è il testo in chiaro segreto pre-master (hex-codificati) (Questo formato consente connessioni SSL per essere decifrati, se un utente può catturare i PMS, ma non riusciva a recuperare la MS per una sessione specifica con un server SSL.)
CLIENT_RANDOM xxxx yyyy
Dove xxxx
è la client_random dal ClientHello (hex-codificati) Dove 012.326.è il segreto master in chiaro (hex-encoded) (Questo formato consente connessioni SSL non RSA per essere decifrati, cioè ECDHE-RSA.)
Nota che né la chiave pre-comandante e il maestro la chiave è la chiave simmetrica (il titolo della tua domanda implica che tu possa pensare che sia). La chiave simmetrica deriva dalla chiave principale e dai dati casuali client/server.
Vedere anche [Estrarre le chiavi pre-master da un'applicazione OpenSSL] (http://security.stackexchange.com/q/80158/29925) su InfoSec.SE. – jww
Probabilmente è degno di nota ora che OpenSSL 1.1.0 è stato rilasciato: molte strutture sono state rese opache, quindi probabilmente dovrai fare una discreta quantità di hacking. – jww