Utilizzo della crittografia AES per generare MAC (e fornire autenticazione / integrità)

0

Ignorando che esistono approcci migliori e più standard per fornire garanzie di autenticazione e integrità, quali (eventuali) punti deboli un sistema come descritto di seguito che si basa sulla crittografia AES (AES / CBC / PKCS7Padding) per produrre un MAC soffre di ?

plaintext = 12345678 | 2018-09-18T00: 43: 27 + 00: 00 (uniqueID + timestamp)

MAC = aes256 (sha256 (testo normale))

Puoi decifrare il MAC in modo affidabile e quindi confrontare l'output con l'hash del testo in chiaro per dimostrare l'integrità / l'autenticazione. Supponendo che il MAC sia stato generato da una fonte attendibile con una chiave segreta condivisa.

Supponi anche che un utente malintenzionato possa accedere a molte coppie di testo semplice e MAC.

Grazie

    
posta joedoe 18.09.2018 - 02:50
fonte

1 risposta

1

Un firma viene creato con una chiave privata segreta e verificato con una chiave pubblica. Quello di cui stai parlando è un MAC , che viene creato e verificato con la stessa chiave .

Se vuoi creare un MAC con AES, allora c'è già un algoritmo standard per questo. Si chiama CBC-MAC , e in pratica implica la crittografia del testo in chiaro utilizzando la modalità CBC e l'utilizzo dell'ultimo blocco come MAC (ma fai attenzione ai problemi ).

Se vuoi creare un MAC usando un hash come SHA-256, stai molto meglio usando HMAC , poiché si tratta di un algoritmo standard con proprietà di sicurezza dimostrabili (presupponendo alcune cose sull'hash, ma anche MD5 è ancora molto sicuro se usato con HMAC).

aes(sha256(plaintext)) potrebbe essere ok, ma non eseguire il rollover ! Se vuoi davvero mostrare qualcosa di sbagliato, puoi provare a sottolineare che non è standard e fa affidamento sulla sicurezza di AES e SHA-256, mentre HMAC-SHA256 è standard e si basa solo sulla sicurezza di SHA-256 .

    
risposta data 18.09.2018 - 03:12
fonte

Leggi altre domande sui tag