¿Cómo asegurar un contenedor de truecrypt que permita el acceso con varias claves públicas de SSH?

4

Me gustaría crear un contenedor TrueCrypt al que pueden acceder varias personas. El contenedor en sí puede almacenarse en cualquier lugar, por ejemplo. en una carpeta compartida en Dropbox o Google Drive , ...

Me gustaría agregar la clave pública SSH de cada persona al mecanismo de encriptación del contenedor, para que puedan usar su clave privada y frase de contraseña SSH para acceder al contenido del contenedor.

¿Es esto posible? ¿Cómo?

    
pregunta JJD 04.02.2013 - 15:53
fuente

3 respuestas

2

Si las claves ssh son claves RSA, debería ser posible construir dicho sistema. Si alguien lo ha hecho ya no lo sé. Si las teclas ssh son DSA o ECDSA, entonces está fuera de suerte.

Lo que harías es usar las claves públicas RSA de todos para cifrar el secreto compartido que desencripta el contenedor. openssh usa su propio formato para las claves públicas, por lo que es muy probable que primero deba convertir la clave pública (ciertamente, mi versión de openssl no pudo leer una clave pública en formato ssh). El formato de clave privada parece ser compatible entre openssl y openssh.

A continuación, necesitará algún código de cliente que trate con descifrar el secreto compartido y desbloquear el contenedor.

Para convertir la clave pública, puedes usar ssh-keygen pero necesitas una versión reciente, lo hice en un chroot sid.

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

Luego podemos usar la clave pública para cifrar cosas y la clave privada para descifrarla mediante 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:~$

Todo lo que queda es escribir un poco de plomería para tomar el secreto descifrado y alimentarlo en truecrypt. De algunas búsquedas en Google para "truecrypt passphrase pipe" parece que una simple tubería sería suficiente. Tal vez también algún código para elegir la copia correcta del secreto para descifrar en función de qué clave se está utilizando para obtener acceso.

P.S. Aparentemente hay algunas preocupaciones teóricas sobre la seguridad de usar la misma clave RSA para la firma y el cifrado, aunque muchos protocolos existentes lo usan como parte de su diseño.

    
respondido por el Peter Green 16.12.2015 - 14:49
fuente
1

Los datos en sí solo se pueden cifrar con una sola clave sin tener que cifrar la información varias veces (lo que tampoco permitiría que la información se comparta entre usuarios). Lo que querría hacer es tener una clave maestra que luego se proteja varias veces, una para cada uno de los usuarios. Cada usuario podría acceder a la clave para acceder al contenedor utilizando su propia clave.

No he trabajado con TrueCrypt, por lo que no estoy seguro de si es viable hacerlo de forma automática o no. Vale la pena señalar que esto probablemente tampoco proporcionaría una garantía de que cualquier usuario no se haga pasar por otro. Sería mucho más complicado sacar algo como esto, ya que pensaría que requeriría algún tipo de sistema de control de versiones donde se almacenara cada revisión, firmada por el usuario y luego aplicada, pero luego los cambios deberían repetirse (ya sea para obtener el estado actual de los datos, o reproducirse a la inversa para validar el historial de revisión no ha sido manipulado).

    
respondido por el AJ Henderson 04.02.2013 - 16:03
fuente
1

Las claves privadas SSH (para usuarios) están destinadas a ser utilizadas solo para firmas y esto es bastante fundamental, especialmente para claves DSA . En una conexión SSH, el intercambio de claves real utiliza Diffie-Hellman Pero las claves privadas de DH nunca son tiendas. Por lo tanto, no puede cifrar algunos datos que el propietario de una clave privada SSH determinada podría descifrar .

Para tales trabajos, desea utilizar OpenPGP (en particular, su instancia Free / OpenSource GnuPG , que ya contiene cada distribución de Linux decente).

    
respondido por el Thomas Pornin 04.02.2013 - 16:44
fuente

Lea otras preguntas en las etiquetas