SSL Contenuto del messaggio completato

2

Ciao a tutti sono un po 'confuso riguardo al contenuto del messaggio finito usato durante il protocollo Handshake. In particolare questo messaggio (client / lato) contiene l'id-connessione originariamente inviato dal server e contiene anche un valore hash derivato da tutti messaggio precedente di handshake e master secret. Quindi questo messaggio è crittografato con la chiave derivata dal master secret o solo il connection-id è crittografato e il messaggio finale viene ancora trasmesso in chiaro? Un'altra domanda riguarda il rilevamento di replay attack server / side. Il server riceve il messaggio finito dal client; in che modo il server può rilevare correttamente un attacco di riproduzione dal messaggio terminato e perché utilizziamo id di connessione e l'hash solo uno non è sufficiente?

Grazie in anticipo.

    
posta Spartacus 03.06.2014 - 19:23
fonte

2 risposte

7

Non esiste "id-connessione" nei messaggi Finished . Del resto, non sembra esserci alcun concetto di "connection-id" nel standard SSL / TLS completo . Il concetto più vicino è quello di un ID di sessione , che viene scambiato attraverso i messaggi ClientHello e ServerHello , non i messaggi Finished . Per definizione, l'ID di sessione non è specifico per una singola connessione.

Il contenuto del messaggio Finished è un hash calcolato su tutti i messaggi di handshake scambiati in precedenza, in entrambe le direzioni. Il messaggio Finished che viene inviato dopo ChangeCipherSpec , è protetto con gli algoritmi e le chiavi crittografiche appena negoziati, ovvero crittografato e MACed.

La protezione contro l'attacco di riproduzione si basa sul modo in cui viene calcolato il contenuto del messaggio Finished : poiché l'hash viene eseguito su tutti i messaggi di handshake, include, in particolare, gli elementi client_random e server_random inviati da entrambi i client e server. Un utente malintenzionato che sta tentando di eseguire una riproduzione non può riutilizzare entrambi i membri del gruppo, perché, per definizione, l'utente malintenzionato sta riproducendo il client mentre parla al server originale o riproduce il server mentre parla al client originale.

Come procedura dettagliata SSL, raccomando questa risposta .

    
risposta data 04.06.2014 - 13:03
fonte
0

La tua domanda non è chiara, ma risponderò a ciò che posso capire. Ma in primo luogo, il riferimento definitivo per i protocolli TLS sono gli RFC di base 2246, 4346 e 5246, estesi da altri RFC quando vengono utilizzate alcune funzioni opzionali (come alcune estensioni); dovresti leggere quelli per domande così dettagliate.

Il messaggio Finished contiene il PRF di il segreto principale, un indicatore di direzione e un hash dei messaggi di handshake (escluso HelloReq se usato). Non esiste un 'id-connessione' in SSL / TLS, ma esiste un 'id-sessione' che è solitamente (non sempre) inviato dal server in ServerHello ; l'intero ServerHello insieme a tutti gli altri messaggi di handshake, è incluso nell'hash di handshake.

I messaggi

Finished vengono inviati in ogni direzione (da client a server e da server a client); la sequenza dipende dal fatto che si esegua una stretta di mano completa o una abbreviata (ripresa). I messaggi Finished , come tutti i messaggi che seguono ChangeCipherSpec , sono crittografati e HMACed (o crittografati con AEAD che non necessitano di un HMAC) utilizzando chiavi derivate dal segreto principale più sia client che server nonces. La decifratura corretta e l'autenticazione di Finished dimostrano essenzialmente un accordo sul master secret, e poiché deve essere il PRIMO messaggio crittografato di questo tipo, garantisce il rilevamento di una mancata corrispondenza prima che i dati dell'utente siano eventualmente esposti.

La riproduzione di un messaggio nella stessa connessione può essere ignorata o violata dal protocollo e quindi inutile. Immagino che il tuo attacco previsto riproduca un Finished precedentemente valido come parte di un nuovo tentativo di connessione falsa di qualche tipo. Se usi lo stesso Finished per un diverso handshake, non corrisponde e fallisce. Funzionava solo se si poteva fare di nuovo la stessa stretta di mano, ma non si può perché almeno il nonce, e in molti casi anche qualche input premaster, viene nuovamente selezionato dall'altro (legittimo) partito e diverso.

    
risposta data 04.06.2014 - 12:19
fonte

Leggi altre domande sui tag