è possibile decrittografare HTTPS con la coppia (privata, pubblica) se usa DHE?

5

Supponendo che tu disponga di un file PCAP con traffico HTTPS e che abbia la coppia di chiavi (privata e pubblica), è possibile decodificare il traffico se utilizza Diffie Hellman Ephemeral? Ad esempio, con lib openSSL.

Per quanto ne so, la risposta è no perché DHE genera una nuova coppia per ogni connessione, quindi non usa la chiave che abbiamo inserito nella nostra configurazione di apache, non è vero?

Il mio compito è, conoscendo le chiavi private e pubbliche, decrittografare il traffico. Naturalmente ci sono molti CipherSuites. Sto studiando i limiti di questo obiettivo.

    
posta Carlos Vega 22.10.2014 - 03:48
fonte

3 risposte

6

Quando inizia l'handshake TLS / SSL, il primo passo è, il server viene autenticato usando una chiave privata associata al certificato del server. In un secondo passaggio, client e server scambiano una chiave di sessione utilizzata per crittografare il payload della connessione. La chiave di sessione viene utilizzata per una sessione significa che quando la sessione è chiusa la stessa chiave non può essere utilizzata per crittografare il traffico di un'altra sessione. Ora il problema è che SSL / TLS usa spesso suite di crittografia RSA in cui la chiave di sessione è derivata dalla chiave privata. Quindi la chiave di sessione può essere calcolata in futuro se il privato sottostante è noto.

DHE e ECDHE fornisce Perfect Forward Secrecy (PFS), significa che le chiavi di sessione non derivano dalla chiave privata. Quindi l'attaccante non può decrittografare il traffico anche quando ha la chiave privata utilizzata nell'handshake della sessione.

In DHE (non DH) le chiavi di sessione sono calcolate usando i numeri casuali.

Conclusione

Non è possibile decodificare il traffico utilizzando la chiave privata quando si utilizza DHE o ECDHE.

    
risposta data 22.10.2014 - 06:55
fonte
4

solo per i record: cloudflare ha pubblicato alcuni buoni grafici su come funzionano gli handshake RSA e DH:

    
risposta data 22.10.2014 - 09:21
fonte
2

Per riassumere: no, non puoi. Questo è il punto esatto di DHE . In termini pomposi, DHE fornisce perfetta segretezza in avanti , il che significa che la conoscenza della chiave privata del server permanente (quella corrispondente al chiave pubblica nel certificato del server) non è sufficiente per decrittografare le sessioni precedenti.

Tecnicamente, quando viene utilizzato DHE, il certificato del server e la chiave privata vengono utilizzati solo per una firma : il server firma la sua chiave pubblica DH transitoria e appena generata; il client verifica quella firma. Quindi viene utilizzata la chiave privata; solo per scopi di crittografia. Avendo una copia della chiave privata del server, potresti falsificare una firma, il che significa che potresti impersonare il server; ma le firme non nascondono i dati, quindi un attacco passivo (come tu stai proponendo di fare) non può imparare nulla in questo modo.

Se il server utilizza DHE e devi vedere i dati, devi montare un attacco attivo , generalmente noto come Attacco man-in-the-middle . Porti come un server falso; si utilizza la conoscenza della chiave privata del server per impersonare il server; quando un client si connette, ti connetti anche come client al vero server e trasmetti i dati in entrambe le direzioni. Il MitM decrittografa i dati ricevuti dal client e li ricodifica nella connessione SSL aperta con il server vero e fa lo stesso nella direzione da server a client. In questo modo, il MitM può vedere tutti i dati, ma deve lavorare attivamente al momento della connessione. Non può farlo dopo il fatto, cioè decifrare una sessione passata che ha registrato passivamente. Quindi PFS.

    
risposta data 22.10.2014 - 14:50
fonte

Leggi altre domande sui tag