Domanda sulla sicurezza HTTPS [duplicato]

8

Recentemente ho letto di come funziona HTTPS e ho alcune domande da chiarire. Perdonami se questo sembra sciocco, ma ho solo bisogno di chiarirlo. Correggimi se sbaglio.

Devo sapere che come parte dell'inizio dell'handshake TLS esiste una crittografia asimmetrica in cui viene utilizzata la chiave pubblica del certificato per crittografare la chiave generata dal client prima che venga inviata al server e solo il server può decrittografarla utilizzando il suo chiave privata.

Tuttavia i messaggi successivi (richieste HTTP) utilizzano la crittografia simmetrica con la chiave generata dal client e sia il client che il server utilizzano questa chiave per crittografare e decrittografare i dati dell'applicazione.

C'è una famosa teoria in crittografia che dice "La ripetizione non è buona", dove se un singolo messaggio viene ripetuto in un messaggio crittografato è facile decifrarlo. Se questo è vero, tutti i messaggi crittografati utilizzando la chiave generata dal client avranno HTTP/1.x in esso poiché fa parte sia della richiesta HTTP sia della risposta.

Quindi in teoria un Uomo in mezzo con questa conoscenza può trovare schemi in richieste e risposte HTTP criptate e scoprire HTTP/1.x string in quelli e forza bruta per generare la chiave del client che è stata usata per crittografare questi messaggi.

Sono corretto o è assolutamente privo di senso, qualsiasi risposta o guida sarebbe molto apprezzata.

    
posta shazin 27.02.2015 - 15:59
fonte

2 risposte

7

In primo luogo, un paio di punti.

  1. In qualsiasi sistema crittografico che non fornisce un segreto perfetto in base alla teoria dell'informazione, la chiave può sempre essere forzata bruta. Uno dei componenti chiave per determinare se un cifrario è sicuro è se sia o meno fattibile per le chiavi a forza bruta, e se lo è, il codice non è sicuro. Quindi, forzare la chiave non è un problema.

  2. Le informazioni trapelate sul testo in chiaro non compromettono necessariamente la chiave. Certamente compromette la sicurezza, ma sapere che il testo cifrato di due messaggi non significa che impari qualcosa sulla chiave. Quindi, mentre la forzatura bruta della chiave è sempre possibile, questo non ti dà alcun vantaggio. È ancora difficile determinare la chiave corretta come se non esistessero duplicati di cifrari.

L'esempio canonico di questo difetto si può trovare nell'uso di un codice a blocchi nella modalità ECB (libro elettronico di codici). In questa modalità, ogni blocco di testo in chiaro viene crittografato direttamente utilizzando la chiave, quindi se ci sono più blocchi di testo in chiaro che contengono gli stessi dati, genereranno blocchi identici di testo cifrato. È facile dire che sono duplicati, ed è esattamente ciò di cui ti preoccupi.

Il modo in cui lo aggiustiamo (e il meccanismo implementato anche nelle crittografie a blocchi TLS (HTTPS)) consiste nell'aggiungere un componente aggiuntivo di casualità, chiamato vettore di inizializzazione. Questo è un valore casuale non segreto che viene introdotto nel processo di crittografia ed è diverso per ogni messaggio crittografato. Poiché la chiave e IV sono ora univoci per ciascun messaggio, anche il testo cifrato sarà unico, anche nel caso di due messaggi identici. Finché non si riutilizza mai una IV con la stessa chiave, non ci sarà alcun pattern da rilevare e un utente malintenzionato non sarà mai in grado di determinare che due messaggi sono uguali.

    
risposta data 27.02.2015 - 16:26
fonte
5

La crittografia asimmetrica stabilisce un segreto condiviso, che è chiamato, nella terminologia TLS , il master secret . Il master secret è stato risolto durante la sessione ; una sessione TLS consiste in una o più connessioni (l'apertura di una nuova connessione mentre il riutilizzo del master secret si chiama ripresa della sessione e utilizza l'"handshake abbreviato").

Per ogni connessione, vengono derivate diverse chiavi (attraverso una sorta di funzione di hash chiamata PRF ) dal master secret; queste chiavi includono la crittografia e le chiavi MAC per l'elaborazione di entrambe le direzioni del traffico. La derivazione utilizza come input il master secret e il "client random" e "server random"; questi "randoms" sono valori che il client e il server si inviano reciprocamente all'inizio dell'handshake (nei messaggi ClientHello e ServerHello ). Pertanto, anche se il master secret viene riutilizzato, ogni nuova connessione avrà il proprio set di chiavi di crittografia.

All'interno di ciascuna connessione, i dati vengono inviati come singoli pacchetti chiamati record . Tutti i record in una determinata direzione (da client a server o da server a client) verranno crittografati con la stessa chiave segreta; tuttavia, il meccanismo di crittografia utilizza uno stato per record (un vettore di inizializzazione implicito o esplicito - a seconda della versione del protocollo - nel caso in cui venga utilizzata la crittografia CBC o GCM, uno stato di esecuzione per la crittografia RC4) che assicura che anche se due record successivi contengono esattamente gli stessi dati chiari, le versioni crittografate saranno distinte e gli intercettatori non saranno in grado di rilevare tale ripetizione. Inoltre, il MAC aggiunto in ogni record è calcolato su una combinazione di dati chiari e registrare il numero di sequenza, in modo che qualsiasi tentativo di duplicazione, rilascio o riordino dei record sia rilevato in modo affidabile.

Per quanto riguarda la forza bruta, non è influenzata in modo sensibile da alcuna ripetizione. In effetti, per qualsiasi analisi degli attacchi di forza bruta, supponiamo già che l'autore dell'attacco conosca una quantità considerevole di dati in chiaro e il testo cifrato corrispondente. La dimensione della chiave simmetrica è tale che, anche in queste condizioni, la forza bruta rimane irrealizzabile (ci sono così tante possibili chiavi a 128 bit che le probabilità di trovare quella giusta sono abissalmente basse, indipendentemente da quante coppie di testo in chiaro / cifrato sono disponibili). / p>     

risposta data 27.02.2015 - 19:25
fonte

Leggi altre domande sui tag