quanto è strong AES senza sale

4

La libreria cryto AES fornita dalla società, non genera un valore crittografato diverso per il testo semplice.

Se il testo è "abcd", genererà lo stesso valore crittografato su più iterazioni.

Quindi, quando dobbiamo interagire con altre applicazioni (reindirizzandole al nostro sito Web e reindirizzandoci al loro sito Web), lo schema che utilizziamo è aggiungere un timestamp con un "#" e quindi crittografare.

Come in questo caso il testo diventa "abcd # 32342534234232" e quindi lo crittografiamo. L'applicazione del chiamante la decrittografa e scarta la parte timestamp.

Voglio sapere i pro ei contro di questo schema considerando che "abcd" è un dato utente ma non un dato critico come la password.

Grazie!

    
posta Novice User 05.01.2013 - 04:42
fonte

2 risposte

5

I Block Cipher non incorporano mai un sale, questo di solito è usato per le funzioni hash. I blocchi di crittografia come AES utilizzeranno un vettore di inizializzazione per garantire che due input di testo in chiaro identici non producano lo stesso output di testo cifrato.

Nota inoltre che la modalità operativa scelta per il codice a blocchi è molto importante. Non tutte le modalità usano un IV, per esempio la modalità ECB non usa un IV. La modalità ECB può non essere sicura per i dati a più blocchi, qui è un'immagine crittografata con la modalità ECB:

Related: Perché utilizzare un IV non casuale con Modalità CBC una vulnerabilità?

    
risposta data 05.01.2013 - 04:55
fonte
1

Posso vedere due problemi principali con la soluzione che hai implementato:

  • Potrebbero esserci più richieste con lo stesso timestamp aggiunto, quindi è facile dedurre una relazione tra di esse. Se due valori crittografati sono identici, significa che sono stati generati nello stesso momento e hanno lo stesso valore.
  • I valori di timestamp sono relativamente facili da indovinare. Questo può aiutare a costruire un attacco. Ad esempio, se l'utente malintenzionato può scegliere il testo da crittografare, cercherà quindi di indovinare la chiave di crittografia inviando valori arbitrari e analizzando il testo crittografato. Saprebbe qual è il valore in testo normale (valore scelto + timestamp).

Inoltre, come ha sottolineato Rook, è molto importante controllare quali Block Cipher si stanno utilizzando (se si sta crittografando più di 128 bit in una volta). Se non si dispone di informazioni su questo, basta crittografare un lungo testo e salvare il valore. Dopodiché, modifica la prima lettera del testo semplice e crittografala di nuovo. Se l'ultima parte del testo crittografato è la stessa, stai utilizzando l'ECB, che non è una buona idea, come è stato descritto sopra.

    
risposta data 05.01.2013 - 11:10
fonte

Leggi altre domande sui tag