Stacking Encryptions (Stream over Block)

2

Sto rivedendo il codice per un prodotto sviluppato dal nostro team in cui le informazioni della carta di credito sono archiviate in un database locale in caso di assenza di connessione Internet e si sono imbattuti nei metodi di crittografia. Lo sviluppatore che ha scritto questa parte del nostro codice ha crittografato AES su RABBIT su AES. Ho visto implementazioni con AES su AES (lo stesso concetto suppongo come TrippleDES) ma non ho mai visto o ricercato l'impilamento di blocchi overstream e se i risultati di questo saranno consistenti (senza corruzione di dati) e sicuri che presumerei le crittografie impilabili con chiavi diverse non possono mai essere meno sicure di una crittografia una tantum.

EDIT: per aggiungere le prestazioni di questo non è orribile. occorrono 0,012 secondi per crittografare e decrittografare i dati della carta di credito.

    
posta PC3TJ 31.10.2015 - 09:55
fonte

3 risposte

2

La crittografia utilizzando algoritmi piuttosto diversi probabilmente non è meno sicura della crittografia con un solo algoritmo. C'è un incontro nell'attacco intermedio possibile che può influenzare la sicurezza di essere circa la forza di AES + una singola iterazione di RABBIT però.

AES-256 è (pensato per essere) così sicuro che probabilmente non sarà rotto anche se i computer quantistici diventeranno una possibilità. Quindi in pratica ti stai solo proteggendo da pause significative di AES. In questo senso, questo tipo di schema protegge solo la parte del protocollo che è probabilmente più sicura in primo luogo.

Gli errori di crittografia sono facili da fare. In questo senso, più il protocollo è complicato, più è probabile che sia in errore da qualche parte. Se si verifica un errore, la sicurezza della crittografia a livelli può essere facilmente annullata.

    
risposta data 08.11.2015 - 23:51
fonte
1

Probabilmente non vedrai nessuna ricerca del genere poiché generalmente non utilizzi cifrari di flusso per lo stesso scopo dei cifrari a blocchi.

In generale, non è mai necessario utilizzare un codice di flusso per crittografare più messaggi con la stessa chiave, quindi se si sta crittografando ogni scheda sotto la stessa chiave si sta commettendo un errore. Questo è il motivo per cui i codici di flusso non vengono utilizzati per crittografare le cose memorizzate in un database.

Tuttavia, in questo caso poiché è inserito tra due codici a blocchi AES, probabilmente non è vulnerabile a un attacco a più messaggi. Stai ottenendo sicurezza da AES qui e quindi il codice stream probabilmente aggiunge poco.

Ci sono molti errori che possono essere fatti anche con i cifrari AES, quindi è più importante capire la modalità di cifratura usata, ad es. CBC o ECB e modalità di gestione delle chiavi.

AES 128 e 256 sono considerati sicuri, quindi il loro uso corretto ti darà un sistema sicuro. Mescolare le cose in questo modo rende il tuo sistema più complicato e dà la possibilità di fare più errori, quindi non lo farei.

    
risposta data 09.11.2015 - 00:13
fonte
1

Non ci sono codici di flusso che ora sono considerati sicuri. Non usarli più mai.

La doppia crittografia ha un valore dubbio e può ridurre la sicurezza. Ad esempio, la crittografia DES utilizza una chiave a 48 bit. 3DES utilizza una chiave a 144 bit che in realtà è composta da tre chiavi a 48 bit, applicate come ENC- > DEC- > ENC anziché ENC- > ENC- > ENC. Il mio punto è che il tuo ingegnere non è un crittografo e blocca ricette insieme senza fondamenti o analisi o ragione.

Quindi, elimina la cifra del flusso, è cattiva, si applica solo ai dati in movimento (mai a riposo) e non aggiunge valore qui. Rilascia la seconda crittografia, non la rende più strong. Pensaci. Se qualcuno ruba i dati, il secondo (o terzo) passaggio lo rende davvero più strong? Il ladro cercherà le chiavi da decifrare. Se vuoi memorizzare i dati per il trasporto futuro in un metodo non recuperabile, ci sono modi migliori di quello.

Invece, genera una chiave una tantum, cripta con il più strong AES che puoi usare, quindi crittografa la chiave una tantum con una chiave pubblica RSA. Successivamente, utilizzare un altro programma, processo o, per il paranoico, computer per decrittografare i dati della carta di credito con la chiave privata RSA per recuperare tutte le chiavi AES. Per una versione leggermente meno paranoica, usa un tasto AES per tutte le carte di credito ogni 1-4 ore.

Quest'ultimo metodo sarà molto più sicuro di quello che descrivi.

E, per il bene di tutti, incoraggia le persone a non utilizzare i propri metodi di crittografia fantasiosi.

    
risposta data 09.11.2015 - 04:13
fonte

Leggi altre domande sui tag