Cifratura del traffico USB: RSA è necessario per lo scambio di chiavi della sessione AES quando si usano chiavi segrete preinstallate?

3

Ho bisogno di una soluzione per crittografare le comunicazioni USB tra il dispositivo A e il dispositivo B. Stavo pensando di configurare ciascun dispositivo con una chiave segreta RSA-2048, che verrebbe utilizzata per scambiare una chiave di sessione AES-256.

  1. A e B sono preconfigurati con chiavi asimmetriche RSA-2048 segrete.
  2. A invia un messaggio non crittografato a B che indica che la crittografia deve essere utilizzata.
  3. B utilizza la sua chiave RSA-2048 per crittografare una chiave di sessione simmetrica AES-256 e la invia ad A.
  4. A utilizza la sua chiave RSA-2048 per decodificare il messaggio e ottenere la chiave di sessione AES-256.
  5. La chiave di sessione AES-256 viene utilizzata per la crittografia / decrittografia delle comunicazioni in corso.

Dato che le chiavi RSA-2048 sono entrambe segrete, è possibile utilizzare RSA su AES per crittografare lo scambio di chiavi di sessione? In altre parole, è accettabile che A e B siano preconfigurati con una chiave AES-256 segreta (invece delle chiavi segrete RSA-2048) utilizzata per generare una chiave di sessione AES-256?

    
posta User1234321 20.01.2015 - 17:47
fonte

3 risposte

1

Dipende.

Se A e B sono configurati con chiavi AES segrete, le comunicazioni intercettate in precedenza di A e B possono essere banalmente decrittografate dopo che il tasto AES è venuto alla luce (B viene estratto dal cestino che il SO l'ha lanciato l'anno prossimo).

Se usi le chiavi RSA segrete, è molto simile, anche se ogni intercetta deve contenere i pacchetti contenenti la chiave AES generata crittograficamente in modo casuale per quella "sessione" per decrittografare i dati precedentemente intercettati da quella sessione.

Se si utilizza qualcosa come TLS-DHE- * o TLS-ECDHE- *, il recupero del dispositivo in un secondo momento NON aiuta a decrittografare le comunicazioni precedentemente intercettate; questo è il grosso problema sulla sicurezza in avanti utilizzando le chiavi effimere.

    
risposta data 21.01.2015 - 04:35
fonte
1

Risponderò alla tua domanda alla fine. Per favore, passa prima questo per ottenere un contesto della mia risposta:

RSA è un algoritmo di crittografia asimmetrico. Quindi, genera una coppia di chiavi privata / pubblica. Quando dici che stai condividendo le chiavi di A con B, devi solo condividere la chiave pubblica di A. Allo stesso modo, la chiave pubblica di B deve essere condivisa con A. Ciò può essere fatto inserendo la chiave pubblica in un certificato e inviando il certificato. Oppure, la chiave pubblica può anche essere inviata in un file di testo così com'è. Ma la chiave privata di A rimarrà con la chiave privata di A e B rimarrà con B.

Ora, ciò che A deve fare è generare un numero casuale dire X, criptare X con la chiave pubblica di B e inviarlo a B. B lo decrittografa con la sua chiave privata.

B genererà un numero casuale Y, cripterà Y con la chiave pubblica di A e lo invierà a A. A lo decodificherà con la sua chiave privata.

A questo punto, sia A sia B avranno X ad Y. Ora, possono generare una chiave di sessione AES da X e Y (diciamo semplicemente moltiplicando e formando XY). Questa chiave di sessione può essere utilizzata per crittografare / decrittografare i dati dell'applicazione.

Di solito, questo è il modo in cui viene generata una chiave di sessione AES. RSA fornisce un modo per scambiare i componenti di una chiave e i componenti sono messi insieme per formare la vera chiave. La chiave reale viene utilizzata in AES per crittografia / decrittografia.

Ora venendo alla tua domanda, stai chiedendo "è accettabile che A e B siano preconfigurati con una chiave AES-256 segreta (invece delle chiavi segrete RSA-2048) che viene utilizzata per generare un AES -256 chiave di sessione? "

La risposta è, l'intero punto di utilizzo di RSA è di agire come meccanismo di scambio chiave per derivare una chiave AES. Se entrambi A e B sono già preconfigurati con lo stesso tasto AES, non è necessario utilizzare RSA. Puoi crittografare / decifrare direttamente usando il tasto AES. Ad ogni modo, AES è più veloce di RSA ( link e chiavi di sessione di crittografia simmetrica in SSL / TLS ).

    
risposta data 13.02.2015 - 15:55
fonte
0

Il motivo per cui abbiamo crittografi sistemi ibridi (TLS, PGP, IPSec, ecc.) è che la crittografia asimmetrica è più intensiva della cpu rispetto alla crittografia simmetrica.

È necessario utilizzare la crittografia simmetrica per eseguire la maggior parte della crittografia, ovvero la crittografia dei dati di destinazione.

Utilizza la crittografia asimmetrica per crittografare lo scambio di chiavi.

    
risposta data 13.09.2015 - 12:54
fonte

Leggi altre domande sui tag