Come proteggere con password un volume TrueCrypt usando uno scambio di chiavi pubbliche Diffie Hellman?

0

Voglio inviare un volume di TrueCrypt tramite e-mail. Certo, ho bisogno di proteggerlo con password, e il destinatario deve conoscere anche la password. Una soluzione per la chiave pubblica Diffie-Hellman sembrerebbe essere la soluzione. Qual è il modo più semplice e sicuro per farlo? Sarebbero d'aiuto istruzioni specifiche.

    
posta Peter 09.10.2014 - 10:45
fonte

2 risposte

1

Chiamiamo la persona a cui stai inviando il volume a Bob, dal momento che è tradizionale. Quindi:

  1. Scegli un numero molto grande - almeno 300 cifre - numero primo p e un numero piccolo g e invialo a Bob (la persona a cui stai inviando il TrueCrypt volume to).
  2. Scegli un numero segreto di grandi dimensioni (almeno 100 cifre) a .
  3. Bob sceglie un numero segreto di grandi dimensioni (almeno 100 cifre) b .
  4. Calcoli il valore di g ^ a mod p e invialo a Bob. Chiama questo C .
  5. Bob calcola g ^ b mod p e lo invia a te. Chiama questo D .
  6. Calcoli D ^ a mod p . Questo ti dà un numero segreto S .
  7. Bob calcola C ^ b mod p . Questo gli dà anche S .

Ora tu un Bob conosci entrambi S . Eve, che ha ascoltato tutta la conversazione, conosce i valori di p , g , C e D ma non può calcolare il valore di S perché non conosce i valori di a o b - quelli erano segreti e non andavano mai oltre l'insicuro canale di comunicazione.

Nota tuttavia che non è sufficiente per risolvere il tuo problema . Sei ancora vulnerabile a un attacco Man-In-The-Middle. Se Eva può impersonare Bob e ingannarti nel fare ciò che è sopra con lei invece che con lui, allora sceglie b e così può lavorare con S . Quindi devi aggiungere un po 'di autenticazione in modo da essere sicuro che sia davvero Bob con cui stai parlando.

    
risposta data 09.10.2014 - 12:04
fonte
1

Il modo più semplice sarebbe utilizzare una qualche forma di email sicura: S / MIME o PGP. Entrambi hanno vantaggio e svantaggio che sono fuori portata ma entrambi ti permetteranno di proteggere la password (puoi proteggere anche il file TC ma non è necessario).

potresti eseguire uno scambio di contratti di chiave DH via email , attenzione:

Non ti consiglio di seguire questi passaggi: usare un pacchetto standard di sicurezza della posta sarà sia più semplice che più sicuro

Ecco come lo faresti, tuttavia:

  • Invia un primo messaggio in cui sei d'accordo sui valori di P e G (ci sono un sacco di librerie che possono aiutarti a farlo o potresti persino scegliere una combinazione esistente)
  • Scegliete il vostro intero segreto (abbastanza grande) a eb
  • Ogni esecuzione (A = G ^ a mod P) e (B = G ^ b mod P) e scambio A e B
  • Ogni esecuzione (s = b ^ a mod P) e (s = b ^ a mod P) per ottenere un segreto condiviso s
  • usa s come password per il tuo file TC.

Si noti, tuttavia, che è necessario utilizzare valori di dimensioni ragionevoli per la sicurezza (P deve essere almeno di circa 1024 bit, per esempio), quindi sarà necessario utilizzare l'aritmetica numerica per manipolarli e sarà necessario per verificare che non appartengano a una classe speciale di valori deboli (vedere la risposta a questa domanda che descrive il problema).

Per questo motivo, la scelta di P e G può essere complicata e complessa. Ti consiglio di utilizzare OpenSSL per farlo nel modo seguente:

openssl dhparam 1024 -text

Questo genererà un P lungo 1024 utilizzando il generatore predefinito G = 2 e lo visualizzerà in un formato (piuttosto) leggibile.

    
risposta data 09.10.2014 - 12:11
fonte

Leggi altre domande sui tag