Puoi dire che dal momento che la crittografia di una volta è infrangibile, è la migliore se usata correttamente?

30

Attualmente sto leggendo la crittografia di una volta e ho una domanda. Dicono che la crittografia OTP sia indistruttibile, e questo può essere dimostrato matematicamente. Questo è previsto che la chiave utilizzata sia veramente casuale e sia usata una sola volta, giusto? Cosa succede se arrivo con un intero sistema (può essere software o hardware o una combinazione di entrambi) per forzare queste due condizioni? Avrò il meglio e amp; soluzione di crittografia ideale?

Per esempio, le due parti disposte a scambiarsi informazioni stanno ottenendo le chiavi connettendosi a un server che è sempre online. Il server assicurerà che le chiavi generate siano casuali e assicurerà che una chiave non venga mai più utilizzata. Gli utenti su ciascun lato dovranno solo disporre di una connessione Internet e un meccanismo per lo scambio di informazioni. Le informazioni viaggiano via Internet crittografate utilizzando il tasto one time pad generato casualmente dal server.

Sto avendo un senso qui? Ho appena iniziato a leggere su una pausa e ho iniziato a chiedermi questo. Ci sono molti siti web che ti diranno che un time pad non è affatto pratico, perché non puoi davvero trovare un numero veramente casuale o qualcosa del genere.

Aggiunta:

Questi ragazzi offrono qualcosa di speciale nella distribuzione delle chiavi? Dicono di aver perfezionato l'implementazione di OTP nel tempo.

link

    
posta Saoud 11.02.2015 - 20:37
fonte

7 risposte

84

Il problema è la distribuzione delle chiavi.

Nel tuo scenario, usi un server per comunicare gli one-time pad agli utenti. Ma come è protetta la comunicazione che ? Non con un pad singolo o non sarebbe necessario. Diciamo che è SSL con AES 128. Quindi, wham, il tuo cryptosystem è sicuro come SSL con AES 128 - abbastanza sicuro, ma non sicuro come un one-time pad.

I mils di cui fai riferimento sembrano offrire dispositivi fisici su cui carichi un singolo flusso di chiavi una tantum (e che puoi utilizzare da). Ancora una volta, la distribuzione delle chiavi è un problema. Potresti comprare due hard disk, caricare terabyte di keystream su di loro e mandarne uno al tuo amico ... come? Ti fidi di USPS? Fedex? Corriere? Sacchetto diplomatico? Tutti questi possono essere compromessi. L'unico modo perfettamente crittografato per inviarli sarebbe crittografarli con una sola volta ... merda, è successo di nuovo.

    
risposta data 11.02.2015 - 20:44
fonte
31

No, perché fraintendi il significato di "migliore" in un contesto di sicurezza. Contrariamente all'opinione popolare, "più sicuro" e "migliore" non sono sinonimi, piuttosto, la sicurezza riguarda esclusivamente l'equilibrio tra usabilità e sicurezza. Riguarda la gestione del rischio.

L'unità più sicura del pianeta sta scrivendo a DevNull (il secchio bit) sul fondo dell'oceano in una scatola chiusa a chiave in una catasta di cemento, in una gabbia di faraday, affondata nella lava senza cavi o fili . Assolutamente nessuno potrà mai ottenere alcun dato da esso, ma gli utenti legittimi non otterranno mai alcun dato da esso.

I time pad hanno il lusso di essere potenzialmente impossibili da rompere se usati correttamente, tuttavia sono scomodi da usare. Se fossero l'opzione "migliore", allora nessuno degli altri sistemi che conosciamo oggi esisterebbe dato che quasi tutti sono nati dopo l'idea del one time pad (che è un concetto veramente antico).

Piuttosto, l'opzione migliore è quella che riduce i rischi a livelli accettabili pur mantenendo un livello accettabile di usabilità. In molti casi, la migliore sicurezza potrebbe non essere la sicurezza. Ad esempio, non mi interessa se conosci le mie ricette di cookie, quindi qualsiasi tentativo di proteggerli ridurrebbe inutilmente l'usabilità. Mi interessa se le mie ricette di cucina si perdono, quindi potrei voler conservare più copie e salvarle da qualche parte, ma non potrei controllarle perché sarebbe uno spreco di tempo.

Lo stesso processo di pensiero non è meno vero per le situazioni di alta sicurezza che per le mie ricette di cucina. Si tratta di analizzare il rischio come si applicano a me (Oreo potrebbe preoccuparsi di più di proteggere la loro ricetta) e poi decidere quale sia la mia migliore opzione. È diverso per tutti e per ogni situazione e non esiste una risposta universale.

    
risposta data 12.02.2015 - 00:27
fonte
29

No. Mike e Gowenfawr menzionano nelle loro risposte, ma non solo un blocco temporaneo soffre di problemi di distribuzione sicura delle chiavi, ma:

Anche se se disponi di un meccanismo per distribuire in modo sicuro le chiavi, il time pad (da solo) non ha alcun meccanismo per garantire l'integrità. Il testo cifrato è ciò che chiamiamo "malleabile" nel senso che può essere manipolato da un utente malintenzionato per modificare il messaggio in chiaro in modi prevedibili e non rilevabili.

Quindi , anche se il one-time-pad offre informazioni di massima segretezza teorica, non è, di per sé un cifrario sicuro, e nel mondo reale, cifrari autenticati facili da usare con dimensioni ragionevoli tasti come AES-CTR-HMAC o AES-GCM sono chiaramente migliori.

    
risposta data 11.02.2015 - 20:55
fonte
8

Stai tentando di confrontare Cryptographic Primitive e confrontarlo con Cryptographic system . Questo è davvero il confronto tra mele e arance.

I primitivi crittografici vengono creati per creare un sistema crittografico e puoi valutare la sicurezza di un sistema solo dopo aver compreso i casi d'uso e l'ambiente in cui opera il sistema in, inclusi aggressori, utenti, protocolli sul filo, meccanismi di archiviazione, vie di compromesso, requisiti di disponibilità, numero di utenti, nodi, reti tra servizi dipendenti, ecc.

Quindi alla tua domanda:

Quindi, al di fuori del contesto della primitiva One Time Pad, il sistema dovrebbe probabilmente introdurre altre tecniche / primitive per supportare i seguenti requisiti.

  • Integrità del messaggio (checksum, firma)
  • Garantire la sincronizzazione per evitare DOS. (Un attaccante potrebbe introdurre un messaggio falso per de-sincronizzare la comunicazione tra le parti).
  • Arresta l'uomo nel mezzo modificando un singolo bit in transito (potrebbe cambiare il significato di un testo in chiaro parzialmente noto girando un bit, ad esempio "LaunchMissiles = 0" rispetto a "LaunchMissiles = 1"
  • Interrompi gli attacchi di replay ("Attack at Dawn" riprodotto tre giorni dopo)

E altri requisiti facoltativi

  • Verifica mittente (firma)
  • Verifica destinatario (certificati)

Quindi potresti solo tentare di valutare la sicurezza di un Crypto-System una volta che sia ragionevolmente articolato.

    
risposta data 13.02.2015 - 03:29
fonte
5

Il problema con un pad singolo lo sta distribuendo a entrambe le parti. Non puoi semplicemente metterlo su un server perché entrambi possano scaricare, perché se tu avessi un canale sicuro per farlo, le due parti potrebbero semplicemente usare quel canale sicuro per comunicare comunque. Devi praticamente riunire entrambe le parti fisicamente, il che è ovviamente molto limitante.

    
risposta data 11.02.2015 - 20:42
fonte
5

Un problema permanente con tutta la crittografia è attendibile . Devi fidarti che la persona a cui stai inviando un messaggio è dalla tua parte e non consegnerà il messaggio o la chiave a qualcuno che non dovrebbe averlo. Devi avere fiducia che le persone che hanno inventato lo schema di crittografia che stai utilizzando non includevano una backdoor o un difetto in caso di incidente. Con OTP hai il problema della fiducia con il destinatario, ma se non riesci a fornire fisicamente la chiave al destinatario, ora devi fidarti di un'entità di terze parti in grado di fornire la chiave per il destinatario. Questo problema esiste ancora oggi con la crittografia moderna e l'autenticazione.

Se fossi un potenziale utente, non mi fiderei mai di terze parti che genererebbero una chiave e la trasmetterò su una connessione di rete. Non è inoltre possibile per un utente assicurarsi che si stiano generando veramente chiavi casuali o se si è stati compromessi. Non è sicuramente l'uso corretto di OTP, in quanto la crittografia è strong quanto la sua peggiore debolezza. Se invii la chiave su Internet, hai perso tutti i vantaggi che l'OTP reale può fornire e potresti anche utilizzare AES-256.

Penso che sia sicuro dire che OTP è tecnicamente la migliore crittografia di trasporto, la parola "migliore" che si riferisce alla sicurezza. Ciò non significa che sia "il migliore" per la maggior parte dei casi d'uso e l'OTP ha alcuni negativi seri. La chiave deve essere memorizzata da qualche parte, e questo significa che la chiave può cadere nelle mani sbagliate. I codici a blocchi moderni di solito hanno chiavi più brevi che un essere umano può memorizzare, rendendo così molto più difficile per una terza parte estrarla. È anche molto difficile implementare male qualcosa come AES dato il software giusto.

Ciò su cui puoi contare più della sicurezza di OTP è la pigrizia degli esseri umani; siamo naturalmente spinti a fare ciò che è più facile, e questo ha storicamente portato le persone a prendere decisioni davvero pazze che costano loro la sicurezza del loro canale di comunicazione. A volte gli umani pigri decidono di riutilizzare le chiavi una volta esaurita la chiave o il codice e non hanno i mezzi per generare & trasportarne uno nuovo. Il risultato di ciò può essere molto peggio che cessare completamente la comunicazione.

Definisci i migliori, e la risposta potrebbe essere sì o no.

    
risposta data 13.02.2015 - 00:34
fonte
0

Il problema principale è lo scambio di chiavi sicure! Se riesci a connetterti in qualche modo a un server sempre online e puoi comunicare con questo server al 100% sicuro - perché non trasmetti semplicemente il tuo messaggio su quel server?

Uno scenario perfettamente valido è il seguente: incontri qualcuno in Persona e scambi OTP con lui. Dopodiché puoi comunicare in sicurezza con lui fino a quando durano le OTP. Per garantire l'integrità dei messaggi, aggiungerete N byte casuali al vostro testo in chiaro e poi cancellate tutto prima di crittografare con l'OTP (di solito comprimere anche il testo in chiaro prima della crittografia per garantire dimensioni più piccole e una maggiore densità di informazioni). Ciò garantirà l'autenticazione e la crittografia contemporaneamente. Perché l'autenticazione è in sostanza la semplice verifica dell'altra parte conosce un segreto, che solo lui può conoscere. Ma con le chiavi segrete simmetriche la chiave è già un segreto che solo voi due conoscete, quindi se un messaggio decrittografa con successo con la chiave segreta condivisa ed è ancora intatto (decompressione + controllo hash), l'integrità e l'autenticazione sono state verificate.

Ma se vuoi usare l'OTP contro gli approcci brute Force, puoi anche usare una crittografia simmetrica abbastanza grande (come AES) che è anche piuttosto impossibile da rompere. La parte interessante di Crypto è lo scambio di chiavi. Come posso eseguire l'intera crittografia / autenticazione senza incontrare tutti di persona con cui desidero comunicare in modo sicuro? Ecco perché esiste la crittografia asimmetrica.

Quindi OTP risolve un problema piuttosto buono che è già stato risolto abbastanza bene (crittografia simmetrica) ma non risolve affatto i problemi reali, che sono la ragione per la crittografia asimmetrica!

    
risposta data 12.02.2015 - 11:27
fonte

Leggi altre domande sui tag