Utilizzo di Encrypt-then-MAC in SSL

2

SSL in genere utilizza la tecnica MAC-then-Encrypt invece di Encrypt-then-MAC (che di solito è considerata ideale per la maggior parte degli scenari). Io stesso non ho una conoscenza approfondita dei meriti e dei demeriti di entrambe le tecniche, ma basandomi su ciò che ho letto e capito finora, penso che usare Encrypt-then-MAC in caso di SSL avrebbe avuto più senso .

Penso anche che questo avrebbe protetto SSL contro molti attacchi in passato. Ad esempio, mentre si parla di prevenire gli attacchi Oracle di Padding su SLL, @Tomas Pornin ha citato in una delle sue risposte :

One must note that if SSL had used encrypt-then-MAC, such problems would have been avoided (the faulty records would have been rejected at the MAC level, before even considering decryption).

E, anche dopo tutti questi attacchi in passato, SSL NON sta ancora utilizzando Encrypt-then-MAC! Quindi, la mia domanda è, perché usiamo ancora MAC-then-Encrypt in SSL? Perché non usare semplicemente Encrypt-then-MAC per risolvere i problemi, invece di applicare piccoli cerotti di patching ogni volta? Cosa ci impedisce di usarlo nel caso di SSL?

    
posta Rahil Arora 21.03.2014 - 18:25
fonte

1 risposta

5

Le varie "patch" che sono state applicate su SSL / TLS hanno la bella caratteristica di non cambiare il protocollo on-the-wire: sono trucchi di implementazione che aggirano i problemi implicati da MAC-then-encrypt. Un modo per dire che è possibile implementare e utilizzare Mac-then-Encrypt in modo sicuro, ma non è facile.

Questa retrocompatibilità con il protocollo esistente ha permesso l'implementazione, la distribuzione e l'utilizzo immediato delle patch, mentre un nuovo protocollo avrebbe richiesto anni per essere ampiamente adottato. Ad esempio, i problemi con la modalità CBC in TLS 1.0 (ciò che fa leva su "BEAST attack") sono stati risolti da una nuova versione di protocollo (TLS 1.1) dal 2006, ma i browser hanno iniziato a supportarlo solo circa 2 anni fa e un grande la proporzione di server Web ancora non la supporta. Un nuovo protocollo che risolve i problemi non serve a niente se non puoi usarlo, perché non è supportato dall'altra parte della connessione ...

Oltre ad aspettare un TLS 1.3 ancora da definire, che potrebbe richiedere un po 'di tempo per essere specificato, per non dire implementato e supportato, potresti avere un po' di fortuna con TLS 1.2, che supporta GCM . GCM è una modalità di crittografia che combina la crittografia simmetrica e un MAC, e lo fa correttamente (cioè MAC-then-encrypt, grosso modo). Naturalmente, non molti browser e server lo supportano ancora, ma almeno la parte specifica / di approvazione viene eseguita per questi pacchetti di crittografia.

    
risposta data 23.03.2014 - 04:09
fonte

Leggi altre domande sui tag