Come proteggere un contenitore TrueCrypt che consente l'accesso con più chiavi pubbliche SSH?

4

Vorrei creare un contenitore TrueCrypt a cui è possibile accedere da più persone. Il contenitore stesso può essere memorizzato ovunque, ad es. in una cartella condivisa in Dropbox o Google Drive , ...

Vorrei aggiungere la chiave pubblica SSH di ogni persona al meccanismo di crittografia del contenitore, in modo che possano utilizzare la chiave privata SSH e la passphrase per accedere al contenuto del contenitore.

È possibile? Come?

    
posta JJD 04.02.2013 - 15:53
fonte

3 risposte

2

Se le chiavi ssh sono chiavi RSA allora dovrebbe essere possibile costruire un tale sistema. Se qualcuno lo ha già fatto, non lo so. Se le chiavi ssh sono DSA o ECDSA, allora perdi la fortuna.

Quello che faresti è utilizzare le chiavi pubbliche RSA di tutti per crittografare il segreto condiviso che decrittografa il contenitore. openssh utilizza il proprio formato per le chiavi pubbliche, quindi è molto probabile che sia necessario convertire prima la chiave pubblica (certamente la mia versione di openssl non ha potuto leggere una chiave pubblica nel formato ssh). Il formato della chiave privata sembra essere compatibile tra openssl e openssh.

Avresti quindi bisogno di un codice client che si occupasse di decodificare il segreto condiviso e sbloccare il contenitore.

Per convertire la chiave pubblica puoi usare ssh-keygen ma hai bisogno di una versione recente, l'ho fatto in un chroot sid.

ssh-keygen -f id_rsa.pub -e -m PKCS8 > id_rsa.pub.pem

Possiamo quindi utilizzare la chiave pubblica per crittografare le cose e la chiave privata per decrittografarla usando openssl.

plugwash@debian:~$ echo this is a test | openssl rsautl -inkey /chroots/sid/id_rsa.pub.pem -pubin -encrypt > temp.rsa
plugwash@debian:~$ openssl rsautl -inkey ~/.ssh/id_rsa -decrypt < temp.rsa
Enter pass phrase for /home/plugwash/.ssh/id_rsa:
this is a test
plugwash@debian:~$

Tutto ciò che rimane è scrivere un po 'di tubature per prendere il segreto decifrato e alimentarlo in verità. Da alcuni googling per "truecrypt passphrase pipe" sembra che una semplice pipe sia sufficiente. Forse anche del codice per scegliere la copia corretta del segreto da decifrare in base alla chiave utilizzata per ottenere l'accesso.

P.S. apparentemente ci sono alcune preoccupazioni teoriche sulla sicurezza dell'utilizzo della stessa chiave RSA sia per la firma che per la crittografia, sebbene molti protocolli esistenti lo utilizzino come parte della loro progettazione.

    
risposta data 16.12.2015 - 14:49
fonte
1

I dati stessi possono essere crittografati solo con una singola chiave senza dover crittografare le informazioni più volte (il che non consentirebbe la condivisione di informazioni tra gli utenti). Quello che vorresti fare è avere una chiave master che viene poi protetta più volte, una volta per ciascuno degli utenti. Ogni utente può quindi accedere alla chiave per accedere al contenitore utilizzando la propria chiave.

Non ho lavorato con TrueCrypt per conto mio, quindi non sono sicuro che sia possibile farlo in modo automatico o meno. Vale la pena notare che questo probabilmente non fornirebbe una garanzia che ogni utente non si maschera da un altro. Sarebbe molto più complicato tirare fuori qualcosa di simile in quanto penserei che richiederebbe un qualche tipo di sistema di versionamento in cui ogni revisione è stata archiviata, firmata dall'utente e quindi applicata, ma poi le modifiche dovrebbero essere ripetute (o per ottenere lo stato attuale dei dati, o riprodotto al contrario per convalidare la cronologia delle revisioni non è stata manomessa).

    
risposta data 04.02.2013 - 16:03
fonte
1

Le chiavi private SSH (per gli utenti) sono nominalmente destinate ad essere utilizzate solo per firme e questo è piuttosto fondamentale, specialmente per chiavi DSA . In una connessione SSH , lo scambio di tasti effettivo utilizza Diffie-Hellman ma le chiavi DH private non sono mai memorizzate. Quindi non puoi cifrare alcuni dati che il proprietario di una determinata chiave privata SSH potrebbe decrittografare .

Per tali lavori, si desidera utilizzare OpenPGP (in particolare l'istanza Free / OpenSource GnuPG , che contiene già ogni distribuzione Linux decente).

    
risposta data 04.02.2013 - 16:44
fonte

Leggi altre domande sui tag