La crittografia (sicura) su una linea compromessa è impossibile?

13

Mi rendo conto che qualcosa del genere sarebbe il Santo Graal della sicurezza delle comunicazioni e non ho mai sentito nulla che suggerisca che sia stato fatto.

Mi sto solo chiedendo. Molti matematici e informatici passano il tempo a fare prove per situazioni teoriche. Qualcuno ha fatto una prova per escludere la possibilità di fare uno scambio di chiavi (o qualche altra configurazione di crittografia) su una linea aperta o già compromessa?

Per essere chiari intendo: A e B stanno comunicando mentre C ha il potenziale per essere in ascolto (idealmente C non sta ascoltando in tempo reale ed è solo logging A & B per azione successiva). È impossibile che A e B scambino le informazioni sulla linea compromessa per impostare una nuova linea criptata che C non può immediatamente violare?

Ultimo chiarimento: sto realizzando che la chiave pubblica potrebbe tecnicamente soddisfare il problema non trasferendo l'intero metodo di crittografia sulla linea. C'è qualcos'altro che fai, anche se solo teorico? Questo sembra più una scappatoia che una soluzione diretta.

    
posta Vigilant 21.07.2015 - 03:32
fonte

6 risposte

69

Se l'attaccante sta solo ascoltando passivamente la connessione, allora Diffie Hellman Key Exchange può essere fatto per creare una chiave comune nota solo ai peer di comunicazione.

Tuttavia, se l'attaccante non solo può ascoltare la connessione ma anche modificare attivamente i dati trasferiti, quindi l'attaccante potrebbe montare un attacco man-in-the-middle e pretendere di essere il partner di comunicazione previsto per entrambi A e B Questo può essere evitato solo se A può identificare B prima di iniziare la comunicazione crittografata e quindi sa di aver scambiato la chiave con il partner previsto . Per questo ha bisogno di un modo sicuro per verificare l'identità anche se la linea è compromessa. Questo può essere fatto con la crittografia a chiave pubblica. Ma naturalmente ha bisogno di una qualche conoscenza preliminare circa l'identità attesa di B, cioè A conosce già B (fiducia diretta) o conosce qualcuno che conosce B ecc (catena di fiducia).

Troverai un'implementazione per tutto questo con SSL / TLS e l'associata PKI . Questo è usato con https nei browser e le ancore di fiducia necessarie per costruire la catena di fiducia sono le agenzie di certificazione pubbliche che sono conosciute dal sistema operativo o dal browser. Per maggiori informazioni vedi Come funziona SSL / TLS? .

    
risposta data 21.07.2015 - 05:25
fonte
9

C'è davvero una soluzione a questo problema! Si chiama il protocollo Diffie-Hellman Key Exchange .

Puoi leggere una buona descrizione sul link wikipedia, ma l'idea di base è che Alice e Bob abbiano ciascuno il loro private keys e il corrispondente public keys . Dalla magia della matematica Diffie-Hellman,

PublicKey_Alice + PrivateKey_Bob = SharedSecret

e

PublicKey_Bob + PrivateKey_Alice = SharedSecret

entrambe le parti finiscono con lo stesso stesso segreto condiviso. Quindi A) solo le chiavi pubbliche sono state scambiate sulla rete insicura, e B) al fine di decifrare il segreto condiviso, è necessario conoscere o la chiave privata di Alice o la chiave privata di Bob. (Puoi trovare i dettagli della matematica con un rapido Google, quindi non entrerò in essi qui.)

Quindi sì , Diffie-Hellman è considerato un modo sicuro per due parti di stabilire una chiave di crittografia simmetrica condivisa, anche su una rete insicura dove Charlie sta ascoltando tutto ciò che scambiano.

    
risposta data 21.07.2015 - 03:52
fonte
6

È possibile se e solo se, in qualche punto nel passato , è stata stabilita una catena di fiducia che ti ha permesso di autenticare la tua seconda parte. Dovrebbe essere un buon senso che se A mai avesse alcuna idea su come identificare B (o come identificare chiunque altro potesse identificare indirettamente B), then, per definizione , A semplicemente non ha abbastanza informazioni per distinguere tra B e qualche altra entità, C.

La matematica non è magia. Se non hai mai saputo identificare qualcuno direttamente o indirettamente, la matematica non ti dà magicamente quel pezzo di informazione.

    
risposta data 22.07.2015 - 05:59
fonte
1

Non solo non è dimostrato impossibile, e non solo praticamente possibile con un livello sufficiente di sicurezza. Esiste anche un metodo provabilmente sicuro ("sicuro" nel senso di poter scegliere arbitrariamente la massima probabilità possibile).

Come menzionato in altre risposte, lo scambio di chiavi di Diffie-Helmann con PKI è un modo ragionevolmente sicuro per stabilire una chiave condivisa che non può (non facilmente, comunque) essere orecchiabile. Ovviamente, fino a quando non si controlla completamente la PKI molto privata , una CA dannosa può (e attualmente lo fa) sovvertire questo sistema. Tuttavia, è ragionevolmente sicuro contro la maggior parte degli attaccanti.

Oltre alla PKI, approcci come ad esempio il protocollo di interblocco a latenza forzata o il protocollo da stazione a stazione, o derivati DH-EKE (come descritto in RFC5247), mentre non unbreakable , possono prevenire con successo la maggior parte degli uomini nel mezzo attacca con una probabilità abbastanza buona, anche senza PKI.
Se la probabilità che un utente malintenzionato possa "indovinare" correttamente è sufficientemente bassa, ciò potrebbe benissimo passare come "sicuro" nella pratica.

La distribuzione delle chiavi di Quantum non è ancora pronta per il grande pubblico, ma funziona già per circa un decennio. Non in teoria, ma in pratica.

A differenza degli altri approcci, garantisce che hai una chiave condivisa di cui nessun altro sa (o meglio, puoi impostare una soglia arbitrariamente bassa per la probabilità che qualcuno potrebbe em> conosci la tua chiave, ma vale quanto "garantita").
Mi aspetto che questo potrebbe renderlo mainstream un po 'di tempo dopo che i computer quantistici su larga scala vengono implementati per attaccare DH (o forse no, perché tutto ciò che devi fare per sconfiggere i magici poteri quantistici è il doppio della lunghezza della tua chiave, quindi è non proprio così spaventoso)

    
risposta data 21.07.2015 - 15:41
fonte
1

Ho passato molto tempo a cercare di ragionare su questo. Ho trovato una soluzione reale, ma non una che può essere impacchettata e trasformata in un prodotto. Vedete, un ascoltatore passivo sarà assolutamente sventato da Diffie-Hellman con dimensioni abbastanza grandi della chiave. Ma se il ragazzo è disposto a MITM cade a terra.

Se conosciamo la topologia possiamo sapere per quanto tempo ogni pacchetto dovrebbe prendere il filo, e se siamo disposti a costruire schede ASIC per DH fino al livello di gate in modo che sappiamo che qualsiasi potenziale attaccante del MITM non può fare un DH più veloce e non è in grado di elaborare messaggi in volo senza essere catturato da misure temporali, quindi sappiamo che era sicuro. Ma in generale, non puoi farlo perché Internet non ha una topologia fissa.

Ci sono alcuni fastidi per cose come SSH soggette al problema dell'arresto, come chiedere al lato remoto di eseguire programmi e includere la chiave di sessione nell'ambiente, ma questo ha lo stesso svantaggio. Se ne facessi un prodotto, cadrebbe.

    
risposta data 22.07.2015 - 06:19
fonte
0

Defcon 22 parla di Phil Zimmerman che promuove la sua compagnia telefonica (SilentCircle) come intercettatore wireless link

La sua idea è di sbarazzarsi di Public Key Infrastructure confrontando verbalmente gli hash delle chiavi di sessione, fornisce anche esempi interessanti di errori PKI, il pubblico pone molte domande che sono a mio parere accurate e pertinenti.

Dice che questo metodo è a prova di manomissione, perché nel caso di un uomo nel mezzo dell'attacco, gli hash delle chiavi di sessione sarebbero diversi tra gli utenti che comunicano e loro lo saprebbero subito. Menziona che la chiave viene scambiata sul livello media, invece di affidare a chiunque possieda la linea "facendo la sicurezza".

    
risposta data 23.07.2015 - 12:48
fonte

Leggi altre domande sui tag