2010-08-09 15 views
6

Ci sono state molte domande riguardo alla generazione IV, la crittografia e la condivisione della IV tra il mittente e il destinatario, ma voglio fare un post esplicito sul modo migliore per inviare l'IV dal mittente al destinatario.Invio IV insieme al testo cifrato, sicuro?

Da tutti i post che ho visto finora, non sono sicuro se è possibile inviare l'IV in "testo semplice" anteponendolo al testo cifrato. Quindi la prima domanda è, è sicuro farlo?

In secondo luogo, esiste un modo più sicuro per condividere un IV tra il mittente e il destinatario quando si comunica scambiando messaggi?

Acclamazioni

+0

So che questa è una vecchia domanda, ma se la mia risposta è stata utile, potresti accettarla come risposta? Molte grazie. – mfanto

+0

Sì, lo farò volentieri :) – Mystic

risposta

11

Sì, è possibile inviare l'IV in chiaro. Ecco la 'prova' del perché:

Prendere modalità CBC per esempio:

alt text

Si può vedere che il testo cifrato di un blocco è XORed con il testo in chiaro del blocco successivo. Il motivo per cui abbiamo bisogno di una IV è perché sul primo blocco non c'è un testo cifrato precedente da usare. Se sussisteva un rischio per la sicurezza che l'IV fosse segreto, allora il rischio per la sicurezza sarebbe presente per ogni blocco dopo, dal momento che il testo cifrato ha lo stesso ruolo dell'IV.

Detto questo, è necessario assicurarsi che si MAC. A seconda di come si fanno i codici di autenticazione dei messaggi, qualcuno che manomette l'IV potrebbe manomettere il testo in chiaro sulla decrittografia. La sola crittografia non fornisce l'integrità dei messaggi.

Inoltre, per la generazione IV, dipende dalle vostre esigenze. Ma il più delle volte, il tuo IV deve essere casuale e non prevedibile.

+0

Grazie mattjf. Buona spiegazione Su una nota correlata, qual è la relazione tra la dimensione del testo in chiaro originale e il testo cifrato risultante? Probabilmente avrei bisogno di conoscere le dimensioni se ho intenzione di estrarre le parti rilevanti. – Mystic

+2

Beh, sfortunatamente la risposta è, dipende. A seconda di quale cifra e modalità si utilizza, varierà. CBC è la modalità più popolare, che richiede la versione IV e richiede che il testo in chiaro sia riempito fino alla dimensione del blocco. Quindi, supponiamo di voler criptare 4 byte con AES CBC. Avresti bisogno di 16 byte per IV, e quei 4 byte devono essere riempiti a 16 byte, per un totale di 32 byte. È possibile utilizzare Ciphertext Stealing per impedire l'espansione del blocco, oppure è possibile utilizzare la modalità CTR AES.Come stai MACing i tuoi dati? È necessario assicurarsi che nessuno possa manomettere i dati crittografati. – mfanto

+0

Continua: Se è possibile fornire i primitivi che si sono costretti a utilizzare, possiamo formulare una raccomandazione migliore. Ma, sinceramente, non dovresti progettare cryptosystems. Puoi usare uno standard o un protocollo esistente? Che cosa stai cercando di realizzare esattamente? – mfanto

1

Sì, è sicuro di fare in testo normale con l'avvertenza che non dovrebbero essere ripetuti.

2

Sì, è sicuro. Molti protocolli come WEP e WPA trasmetteranno l'IV in testo normale. Questo di solito è un requisito in quanto è impossibile decifrare il messaggio senza conoscere iv. L'attacco WEP più comune riguarda la cattura di migliaia di IV, ma questo è dovuto al fatto che RC4 è vulnerabile a un Related Key Attack. Se stai usando una crittografia simmetrica sicura, non devi preoccuparti.

Una vulnerabilità nota che conosco relativa a IV è CWE-329, che richiede che l'IV sia casuale, e this is why questo è un problema. Un altro potenziale problema è la crittografia di 2 messaggi con lo stesso IV. Questo è un problema perché un utente malintenzionato è in grado di identificare un altro messaggio di testo cifrato crittografando molti messaggi noti, facendo effettivamente ipotesi su quale testo di cifratura acquisito potrebbe non conoscere la chiave.

Problemi correlati