AES-CBC quindi SHA vs AES-GCM per la crittografia e l'autenticazione di un token Web

-1

Sto cercando di avere qualcosa di simile a JWT ma piuttosto ad hoc e crittografato. Il token stesso è semplicemente un JSON con stringhe che contiene l'id utente e il timestamp unix. Ora, ho provato ad usare AES-128-GCM, tuttavia ho apportato alcune semplici modifiche nel testo cifrato prima di decrittografare, ho aggiunto alcuni byte al testo cifrato e ho scoperto che decodifica con successo, significa che quei byte sono stati contati come padding e che AES GCM è autenticato e quindi crittografa l'algoritmo? perché sento che crittografare quindi autenticare mi sembra più sicuro. Inoltre, l'autenticazione AES GCM è abbastanza sicura da essere paragonata a SHA256 per esempio o è CRC per un'integrità rapida e non può essere utilizzata per l'autenticazione sicura come HMAC?

In altre parole : è AES-128-CBC quindi SHA-256 più sicuro di AES-128-GCM?

    
posta pls no 10.05.2018 - 06:10
fonte

1 risposta

3

is AES-128-CBC then SHA-256 more secure than AES-128-GCM?

Non sono affatto comparabili. SHA-256 è non un MAC! Un MAC richiede un segreto. AES-128-CBC con un HMAC-SHA-256 sul testo cifrato sarebbe più simile a AES-128-GCM, ma GCM sarebbe comunque preferito semplicemente perché ti dà meno opportunità di rovinarlo.

I tried to use AES-128-GCM, however I did some simple modification in the ciphertext before decrypting, just appended some bytes to the ciphertext, and found that it decrypts successfully

Sembra che tu stia utilizzando la libreria in modo errato o che la libreria abbia un bug. Qual è la libreria e hai un esempio che riproduce il problema?

AES GCM is authenticate then encrypt algorithm?

Non proprio. Non sono completamente sicuro della terminologia qui, ma non penso che sia realmente considerato MAC-then-encrypt o encrypt-then-MAC, è in una classe separata di modalità AEAD che include un MAC nell'algoritmo di crittografia invece di prima o dopo. Direi che è più simile a encrypt-then-MAC, come puoi vedere nel diagramma su Wikipedia è il testo cifrato che viene inserito nella funzione GHASH, non nel testo in chiaro.

encrypt then authenticate feels more secure to me

Vedi questa domanda su encrypt-then-MAC vs MAC-then-encrypt. Encrypt-then-MAC è generalmente raccomandato, in quanto impedisce cose come l'attacco padding oracle (se fatto correttamente), tuttavia tu Devo anche essere consapevole di cose come non dimenticare di includere l'IV nel MAC. Non dovresti farlo da solo, dovresti usare una libreria che gestisca tutte le "cose crittografiche" per te.

AES GCM authentication even secure enough to be compared to SHA256 for example or is it CRC tier for quick integrity

Come affermato in precedenza, SHA-256 non è un MAC, ma il miglior confronto che ho trovato di HMAC-SHA-256 e GHASH è qui . HMAC-SHA-256 troncato a 16 byte sembra essere sicuro per i 128 bit completi, mentre la sicurezza di GHASH dipende dalla dimensione del testo cifrato. Se un utente malintenzionato tenta di creare un testo cifrato a 1 blocco, ha una probabilità 1/2 128 di riuscire, tuttavia se prova un messaggio di blocco 2 32 - 1 (la dimensione massima per GCM) la loro probabilità aumenta a circa 1/2 96 . È improbabile che ciò sia importante nella pratica, poiché 2 96 è ancora proibitivamente grande, specialmente dato che richiede l'uso di un testo cifrato di molti gigabyte.

L'altra cosa da ricordare su GCM è che la sua autenticità dipende da nonce uniche. Se un nonce viene mai riutilizzato non puoi più fidarti dell'autenticità dei messaggi, che è una preoccupazione se non sei estremamente sicuro che i nonces non saranno mai riutilizzati. Il compromesso è che GCM è generalmente molto più veloce di CBC + HMAC, motivo per cui è solitamente preferito da TLS dove le chiavi sono di breve durata (rendendo il riutilizzo nonce ancora meno probabile). Come spiegato qui , finché usi un contatore da 12 byte che sei molto sicuro non arriverà mai indietro (ad es. a causa di un guasto hardware) o un IV casuale a 16 byte dovresti stare bene.

    
risposta data 10.05.2018 - 15:43
fonte

Leggi altre domande sui tag