AES, RSA e l'uomo nel mezzo

0

Quindi l'utente A ha un testo enorme che deve essere crittografato e inviato all'utente B. L'utente A crea una chiave simmetrica per AES e crittografa i messaggi con quella chiave AES. Quindi, l'utente A crittografa la chiave AES con la chiave pubblica RSA dell'utente B e invia entrambi all'utente B. L'utente B decrittografa la chiave AES con la chiave privata RSA e quindi decrittografa il testo con la chiave AES decrittografata. Ora, come l'utente A deve firmare il messaggio / tasto AES nell'utente B per verificare che il messaggio sia stato effettivamente inviato dall'utente A. Se l'utente A firma la chiave AES crittografata, sarebbe possibile che l'utente B decodifichi la chiave AES firmata con la chiave RSA pubblica dell'utente A e quindi decifrare la chiave AES con la sua chiave RSA privata?

    
posta Ivaylo Ivanov 02.08.2017 - 21:46
fonte

2 risposte

1

La firma utilizzando RSA viene eseguita applicando prima un hash crittografico e quindi "crittografandolo" con la chiave privata del mittente (ad esempio A). "Decifrare" la firma utilizzando la chiave pubblica del mittente risulta quindi solo nel valore hash, ma non nella chiave AES. Poiché la funzione di hash è a senso unico, l'input originale (ad esempio la chiave AES) non può essere derivato dal valore hash.

La convalida della firma da parte del destinatario viene invece effettuata ricalcolando il valore hash dell'input (che è noto dopo la decrittografia) e confrontandolo con il valore hash restituito "decrittografando" la firma con la chiave pubblica di il mittente. Se corrispondono, la firma è valida.

    
risposta data 02.08.2017 - 22:44
fonte
0

Se l'utente A e l'utente B conoscono la stessa password utilizzata per AES (senza inviarlo tramite la rete), è sufficiente aggiungere un checksum alla fine del messaggio e crittografare [ messaggio + checksum] . L'uomo nel mezzo non può decifrare il messaggio senza conoscere la chiave. Se tenta di inviare i propri dati crittografati con una chiave errata (non conosce la chiave giusta), l'utente B riceverebbe una serie di assurdità dopo aver tentato di decodificarlo con la chiave corretta e il checksum sarà ovviamente errato, il che conferma che il messaggio ha stato forgiato. D'altra parte se la chiave AES viene inviata attraverso una connessione non sicura, rende la crittografia del messaggio insignificante.

Per creare una chiave condivisa senza prima accettarla e senza farla trapelare attraverso una connessione non sicura durante lo scambio, è possibile utilizzare l'handshake Diffie-Hellman . Entrambi gli utenti creano una coppia di chiavi private e pubbliche per l'handshake di Diffie-Hellman. Le chiavi pubbliche sono firmate e inviate attraverso una connessione non protetta. Quindi viene generato un segreto condiviso (guarda l'handshake di Diffie-Hellman in wikipedie per maggiori informazioni). Fondamentalmente, anche se tutto ciò che viene inviato attraverso la connessione è visibile all'uomo nel mezzo, non sarebbe in grado di recuperare il segreto condiviso a meno che non abbia partecipato alla sua creazione. E le firme si assicureranno che non forgia l'iniziale stretta di mano.

Un altro modo per creare una connessione sicura è Firma RSA + . L'utente A crittografa il messaggio con la chiave pubblica dell'utente B e lo firma (prima o dopo la crittografia, non importa: la firma dopo la crittografia consentirebbe all'uomo nel mezzo di verificare che A sia il responsabile che non è un segreto e consentire all'utente B per eliminare il messaggio contraffatto con firma errata senza dover prima decrittografarlo). Quindi [messaggio + firma + somma di controllo] viene inviato all'utente B. Il checksum deve essere aggiunto prima della crittografia. L'utente B verifica la firma, decrittografa il messaggio e verifica il checksum.

Da quello che hai detto, oserei dire che hai un malinteso su come funziona la firma. La firma non cambia il messaggio. Crea un ulteriore blocco di dati (la firma). Quindi invii messaggio + firma all'utente B. L'utente B combina la tua chiave pubblica, il messaggio stesso e la firma da verificare.

    
risposta data 02.08.2017 - 22:48
fonte

Leggi altre domande sui tag