Qual è il modo migliore per migliorare le chiavi deboli per la funzione mysql aes_encrypt ()

0

Ho bisogno di memorizzare i dati nel database mysql usando la funzione aes_encrypt ().

La chiave nel caso della funzione sopra menzionata è riempita con zero quando la sua lunghezza è inferiore a 16 byte.

La mia domanda è: come posso eseguire un allungamento della chiave con qualcosa come PBKDF2 in mysql per migliorare la forza dei tasti deboli.

Inoltre vorrei sapere che se uso un valore esadecimale direttamente da una funzione come SHA2 ('Key', 512) come chiave per la funzione aes_encrypt (), ridurrà la forza della chiave perché ci sarà solo 16 caratteri nel set di caratteri ogni volta che viene generata una chiave.

    
posta A. Sinha 22.08.2016 - 11:16
fonte

1 risposta

1

The key in the case of above mentioned function is padded with zero when its length is less than 16 bytes.

È davvero qualcosa che devi affrontare. Le chiavi AES devono sempre avere dimensioni di 128, 192 o 256 bit e indistinguibili da quelle casuali a quelle di un utente malintenzionato.

My question is: How can I perform a key stretching with something like PBKDF2 in mysql to enhance the strength of weak keys.

Suggerisco vivamente non di eseguire tale funzione all'interno delle query del database stesso. PBKDF2 (o qualsiasi altra funzione) deve essere il più veloce possibile per rendere il possibile vantaggio degli hacker il più piccolo possibile. Altrimenti il fattore di lavoro (il conteggio dell'iterazione per PBKDF2) non può essere abbastanza grande.

Prova a trovare una versione ottimizzata di PBKDF2 e integrala con il tuo software.

Also I would like to know that if I use a hex value directly from a function like SHA2('Key', 512) as my key for the aes_encrypt() function, will it reduce the strength of the key because there will only be 16 characters in the character set every time a key is generated.

L'output delle funzioni SHA-2 consiste in byte , non in esadecimali. Potrebbe essere che la tua implementazione la traduca automaticamente in esadecimali. In tal caso, devi specificare esplicitamente l'output non elaborato o devi decodificare gli esadecimali per utilizzarlo come chiave AES.

Il problema con solo SHA-2 è che non si aspetta un sale né un fattore di lavoro. Ciò significa che gli attacchi dizionario e le tabelle arcobaleno sono validi vettori di attacco. Questo è il motivo per cui è necessaria una funzione di derivazione chiave basata su password come PBKDF2.

PBKDF2 non è necessario solo se l'input "password" ha forza sufficiente. Ma per la crittografia AES, avresti bisogno di qualcosa di simile a 128 bit di casualità, ed è improbabile che venga fornito da qualsiasi password in itsef.

    
risposta data 22.08.2016 - 13:14
fonte

Leggi altre domande sui tag