Crittografia server-server: rotazione chiave over-the-air. Può migliorare la sicurezza?

8

In il mio altro domanda , ho esplorato se scrivere la mia crittografia o utilizzare quella esistente. Mi è stato consigliato di usare TLS o AES o qualcosa che è stato stabilito.

Questa domanda riguarda la rotazione delle chiavi. Sembra che dato abbastanza risorse, un intercettatore potrebbe decrittografare le informazioni, ma quando è arrivato al prodotto decrittografato, sarebbe piuttosto vecchio. Ma poi ha la chiave.

L'ovvia soluzione a questo è cambiare periodicamente le chiavi, ma potrebbe non essere pratico portare fisicamente i dati nella posizione per creare la nuova chiave.

Tuttavia, se i dati dovessero agire costantemente come aggiustamenti alla chiave, o se ci fossero state nuove chiavi periodiche inviate tramite la connessione crittografata, l'autore dell'attacco avrebbe probabilmente dovuto archiviare molti dati prima che avesse terminato la decrittografia, quindi avrebbe dovuto -giocassa questi dati per arrivare a informazioni aggiornate.

Quali sono i tuoi pensieri in merito? Esistono già routine di crittografia che utilizzano i dati che regolano la chiave o la trasmissione automatica della chiave nuova?

    
posta George Bailey 08.08.2011 - 17:54
fonte

3 risposte

14

Con una sessione TLS-with-AES appropriata, il tempo necessario per un utente in grado di "decrittografare le informazioni" sarà compreso tra secoli , almeno se le "risorse sufficienti" sono limitate a, ad esempio, convertire l'intera massa di Giove in energia. In quel momento sono abbastanza sicuro che i computer coinvolti si siano trasformati in una massa compatta di ruggine, quindi il punto è un po 'discutibile. In poche parole, la crittografia simmetrica è non il punto debole di TLS; probabilmente, la crittografia correttamente utilizzata non è stata il punto debole di nulla negli ultimi due decenni (almeno).

Tuttavia, per i veri paranoici che vogliono ottenere una calda e confusa sensazione di sicurezza con gli incantesimi crittografici rituali, puoi semplicemente negoziare una nuova stretta di mano su una sessione esistente, in qualsiasi momento tu voglia. Sia il client che il server possono avviarlo. Consulta lo standard TLS , in particolare le sezioni 7.4.1.1 e 7.4.1.2.

    
risposta data 08.08.2011 - 19:21
fonte
4

Thomas lo ha morto per TLS e / o AES.

Se stai lavorando con un algoritmo meno moderno o sei paranoico extra, entrambi i metodi di aggiornamento chiave che menzioni sono stati provati in vari momenti e hanno entrambi degli svantaggi:

  • dati come seed alla nuova chiave - questa è la base per alcuni algoritmi di flusso - ad esempio, vedi le modalità di Feedback Cipher e Output Feedback comunemente usati con DES. Il trucco è che il ricevitore deve rimanere sincronizzato con il mittente. Se c'è una lacuna nella trasmissione, la trasmissione può trasformarsi rapidamente in parole senza senso se viene applicata la chiave sbagliata ai dati crittografati.

  • inserisci la nuova chiave nella vecchia chiave - questa è usata raramente, poiché se stai assumendo che l'attaccante (dato il tempo) abbia ottenuto la tua chiave, allora devi supporre che lui " Avrai catturato tutto il tuo codice cifrato e non avrà problemi a ottenere la nuova chiave. Per lo più, a quel punto, gli hai salvato il compito di capire la nuova chiave.

Una soluzione tipica a questo problema è usare una chiave secondaria per trasmettere la chiave simmetrica. Questo è esattamente ciò che fa TLS: utilizza una chiave asimmetrica per proteggere la distribuzione della chiave simmetrica. Ciò aggiunge ulteriore onere: per ottenere quella trasmissione, l'attaccante deve capire la chiave privata della coppia asimmetrica utilizzata per la trasmissione della chiave simmetrica. Qui non ci sarà molta esposizione, in quanto l'unica cosa che può essere crittografata sono le nuove coppie di chiavi di sessione (simmetriche).

Un altro - in sistemi che non sono in grado di gestire chiavi asimmetriche, consiste nell'utilizzare una chiave di distribuzione delle chiavi secondaria che viene utilizzata SOLO per la distribuzione delle chiavi. Questo avrà una durata, dal momento che quella chiave avrà anche problemi di esposizione, ma attenuerà il rischio a un certo livello.

La distribuzione delle chiavi è uno dei problemi più gravi della crittografia. Non importa come lo si taglia, devi ottenere almeno la prima chiave là fuori in un modo un po 'doloroso. Poi hai bisogno di un modo per mantenere le chiavi appropriatamente fresche, e hai bisogno di un modo per recuperare se una chiave è mai persa o compromessa. Le tecniche per tutto ciò variano molto a seconda che si parli di crittografia asimmetrica o simmetrica, e alcuni dei migliori sistemi mescolano i due per la massima potenza.

    
risposta data 16.08.2011 - 18:36
fonte
0

Odio le risposte che sto per dare ma in questo caso è vero. Se devi chiedere se utilizzare una libreria crittografica preesistente o provare a crearne una tua, hai sicuramente già la tua risposta. Ancora, creare qualcosa come AES o Skein o qualcosa di simile è meglio lasciarlo come esercizio per l'apprendimento e non per la produzione. Forse ho interpretato male le tue intenzioni, ma non provare a creare la tua crittografia per qualcosa di meno di qualcosa di divertente per te stesso.

Tuttavia, per rispondere alla tua domanda, il punto di forza della crittografia è quello di utilizzare cripto opportunamente strong per garantire la riservatezza dei dati per tutto il tempo che è utile. Se utilizzando la potenza di calcolo di oggi si stanno trasmettendo dati che devono essere mantenuti riservati per 9 anni, ma ci vorranno 100 anni per rompere la crittografia, penso che probabilmente stai bene senza ruotare le chiavi.

Chiedo quale sarebbe una buona ragione per introdurre una maggiore complessità, senza alcun beneficio. Sembra che tu stia chiedendo a tarda notte di risolvere alcuni errori criptici nel tentativo di recuperare alcune informazioni critiche.

    
risposta data 09.08.2011 - 03:49
fonte

Leggi altre domande sui tag