Decifrazione SSL / TLS sniffata: stretta di mano necessaria?

1

Ho letto alcuni argomenti in cui le persone affermano di essere in grado di decifrare le comunicazioni SSL / TLS semplicemente avendo la chiave privata del destinatario.

Ma di recente ho appreso che una chiave pubblica può, ma non dovrebbe mai cifrare qualcosa di più della lunghezza della chiave privata associata. Ad esempio, se il peer ha una chiave privata di 2048 bit, non dovrebbe mai crittografare qualcosa di più lungo di 255 byte + carattere NULL. Se si codifica qualcosa di più lungo, diventerebbe vulnerabile ad attacchi come il taglio di blocchi, l'analisi di ridondanza, ecc. (Non sono esperto in questo dominio, mi dispiace per il vocabolario cattivo).

Detto questo, l'handshake RSA consiste, infatti, in uno scambio di chiavi pubbliche, seguito da uno scambio protetto di una chiave AES, che viene poi utilizzata per crittografare tutte le comunicazioni senza limiti di lunghezza. Quindi lo scambio basato su RSA viene utilizzato solo al momento della stretta di mano.

Quindi, questo tasto AES è in grado di scambiare una parte del protocollo SSL / TLS, o alcuni server non potranno mai comunicare con pacchetti più lunghi della lunghezza della loro chiave privata?

Se TUTTE le comunicazioni SSL / TLS vengono eseguite in questo modo (cosa AES), ciò significa che per poter decodificare i pacchetti, è necessario acquisire l'handshake per decrittografare la chiave AES e, in caso contrario, avere entrambi le chiavi private sono semplicemente inutili, vero?

Ma ciò significherebbe anche che avere una sola chiave privata sarebbe sufficiente per decifrare la chiave AES, e quindi l'intera comunicazione. Quindi, una tale comunicazione dovrebbe coinvolgere 2 chiavi AES, una per ogni pari, giusto? Quindi, proprio come uno scambio RSA, A crittograferebbe i pacchetti con la chiave di B, e viceversa.

Che cosa si applica nella vita reale? Limite di lunghezza dei pacchetti o comunicazioni basate su AES? Uno o due tasti AES?

Grazie per aiutarmi a capire! E scusa, ma l'inglese non è la mia lingua principale.

Cordiali saluti.

    
posta NdFeB 10.06.2017 - 14:08
fonte

1 risposta

1

That said, RSA handshake consists, in fact, in an exchange of public keys, followed by a secured exchange of an AES key, which is then used to encrypt all communications without any length cap. So RSA based exchange is only used at the handshake moment.

Non esiste un handshake RSA ma un handshake TLS. E di solito non esiste uno scambio (bidirezionale) di chiavi pubbliche, ma nella maggior parte dei casi solo il server fornirà un certificato che include una chiave pubblica.

L'handshake TLS include uno scambio di chiavi che di solito è lo scambio di chiavi RSA o lo scambio di chiavi DH. Con lo scambio di chiavi RSA il client creerà un segreto casuale, lo cripterà con la chiave pubblica del server (prelevato dal certificato) e lo invierà al server. Il server può quindi estrarre questo segreto utilizzando la sua chiave privata. La chiave di crittografia per la crittografia simmetrica (che può essere AES ma anche qualcos'altro) viene quindi creata sulla base di questo segreto condiviso. Questo significa che con lo scambio di chiavi RSA è necessaria solo la chiave privata del server per decifrare il traffico sniffato.

Si noti che le implementazioni moderne preferiscono utilizzare lo scambio di chiavi DH. In questo caso conoscere la chiave privata del server non aiuta a decifrare il traffico. È invece necessario il segreto condiviso da questa sessione specifica.

Per una comprensione più approfondita di TLS, consiglio di studiare Come funziona SSL / TLS? .

    
risposta data 10.06.2017 - 14:52
fonte

Leggi altre domande sui tag