Quando si utilizza la crittografia a chiave simmetrica, è necessario firmare?

9

Supponiamo di utilizzare una chiave condivisa tra due parti, che è stata distribuita utilizzando la crittografia a chiave pubblica, è comunque necessario firmare qualsiasi dato crittografato utilizzando la chiave condivisa? O è sufficiente supporre che, poiché la chiave condivisa è stata distribuita utilizzando la chiave pubblica crypto e si spera che sia conosciuta solo dalle due parti coinvolte, non è necessario firmare il messaggio per autenticare il mittente?

Fondamentalmente, la crittografia a chiave simmetrica fornisce autenticità e forse non ripudio?

    
posta Kumalh 04.11.2012 - 05:04
fonte

2 risposte

14

La crittografia con una chiave simmetrica segreta non dimostra l'autenticità a meno che tu usi una modalità di operazione di crittografia autenticata come GCM . Gli algoritmi di crittografia autentificati generano un Message Authentication Code (MAC) oltre a crittografare il messaggio e se la chiave condivisa è appropriatamente protetta e può essere utilizzata per dimostrare l'autenticità e l'integrità del messaggio ma non il non ripudio (questo è un grande "se" - più avanti)

La crittografia a chiave simmetrica regolare con una chiave condivisa non dimostra l'integrità e l'autenticità del messaggio perché nulla impedisce a un utente malintenzionato di generare un messaggio casuale che il destinatario decrittografa e accetta. Sebbene l'attaccante non sappia come apparirà il messaggio decrittografato ci sono molte situazioni in cui il ricevente accetta un messaggio generato a caso può essere vantaggioso per un utente malintenzionato.

Solo un utente con accesso alla chiave simmetrica può generare un MAC di un messaggio, pertanto l'autenticazione tramite crittografia con una chiave simmetrica adeguatamente protetta è sufficiente per autenticare il messaggio. I MAC non forniscono il non disconoscimento perché nella crittografia simmetrica il ricevitore ha anche la stessa chiave segreta, quindi non c'è modo per il ricevente di dimostrare che il mittente e non il destinatario ha firmato il messaggio.

Come sottolineato in precedenza, l'utilizzo di una chiave condivisa per l'autenticazione richiede che la chiave condivisa sia adeguatamente protetta. In particolare, se il ricevitore genera la chiave simmetrica e la invia al mittente crittografata asimmetricamente con la chiave pubblica del ricevente (che è il modo ordinario di inviare chiavi di crittografia usando PKI), questa chiave simmetrica non può essere utilizzata per provare l'autenticità dei messaggi inviati da il mittente poiché nulla nel processo dimostra l'identità del mittente. Chiunque abbia accesso alla chiave pubblica del destinatario (che è pubblico dopo tutto) può generare una chiave simmetrica casuale e crittografarla con la chiave pubblica del destinatario.

È possibile utilizzare una chiave simmetrica per autenticare un messaggio solo se lo schema per la generazione della chiave simmetrica condivisa include un'autenticazione a due vie. Gli schemi che includono l'autenticazione a due vie per generare chiavi condivise per la firma e la crittografia dei messaggi sono comunemente noti come Secure Authenticated Channel o SAC.

    
risposta data 04.11.2012 - 08:57
fonte
11

La crittografia non protegge da alterazioni dannose. Se si codificano alcuni dati con un codice di flusso come RC4 o AES-CTR, un utente malintenzionato può decidere di capovolgere qualsiasi bit che desidera sul testo cifrato e, dopo la decrittografia, questo capovolge il bit corrispondente nel testo in chiaro. Questo consente modifiche chirurgiche. Con i cifrari a blocchi in modalità CBC, le cose sono un po 'meno chirurgiche, ma ancora contenute abbastanza da consentire all'aggressore di fare un sacco di cose belle (con CBC e un codice a blocchi con blocchi da 16 byte, se l'attaccante lancia un bit, quindi questo rimescola il blocco corrispondente e capovolge il bit corrispondente nel blocco successivo).

Quindi hai bisogno di integrità controllata e di crittografia. Alcune modalità di crittografia per cifrari a blocchi, come EAX , combinano la crittografia e un controllo di integrità. In caso contrario, un MAC autonomo può fare il trucco (ma combinando la crittografia e un MAC correttamente non è un compito assolutamente ovvio quindi sei incoraggiato a utilizzare le modalità in cui tutto il duro lavoro di specifica è stato fatto, cioè EAX).

Alcune persone usano il termine "firma" per un MAC; è un uso improprio ma diffuso. Un MAC e a fortiori una semplice crittografia non protetta, non forniscono non ripudio . Il non ripudio consiste nell'avere una prova che può essere usata contro il firmatario; presumibilmente, qualcosa che potrebbe convincere una terza parte come un giudice. Un calcolo che utilizza un segreto condiviso tra mittente e destinatario non può essere una prova convincente, perché, per definizione, sia il mittente sia il destinatario lo sanno (e la controversia è tra il mittente e il destinatario). Il non ripudio è una nozione complessa con implicazioni giuridiche, ma, per lo meno, la parte del computer deve utilizzare vere firme digitali calcolato sui dati che non devono essere ripudiati (e non solo su una chiave condivisa).

Nota a margine: per gli stessi motivi, SSL non fornisce non ripudio, anche quando viene utilizzato un certificato sul lato client. Se un server SSL registra tutto su una connessione SSL da un client e il client è autenticato con un certificato, allora il server può avere una prova che un determinato client è venuto veramente, ma il server non può provare qualsiasi cosa a terzi su ciò che il client ha inviato nel tunnel SSL. Questo è in realtà un problema legalmente impegnativo quando si tratta di servizi bancari online.

    
risposta data 05.11.2012 - 03:13
fonte