Encadenamiento de múltiples claves PGP

3

Me gustaría conocer las limitaciones prácticas para contactar con el encadenamiento de varias personas con claves pgp para proteger un archivo.

En la criptografía de clave pública normal, se requieren cuatro claves, públicas y privadas de ambas partes. Pero, si la integridad de uno de los participantes se ve comprometida, por ejemplo, a través de la tortura o alguna otra forma de coerción, la información también puede estar en texto simple.

Sin embargo, ¿qué pasaría si esa carga se aligerara al tener una criptografía que requiriera múltiples claves de diferentes individuos para poder cifrarla y se pudiera descifrar, utilizando las claves públicas de esas personas? De esa manera, podría ser similar a tener 2 o más cerrojos en una puerta que un ladrón tendría que mitigar. No estoy hablando aquí de encriptar un archivo que ya ha sido encriptado, sino de usar una combinación de claves para encriptar un archivo que podría ser desencriptado solo por tener las claves públicas de todos los que hicieron el encriptado inicial.

Estoy seguro de que hay algunas redundancias innecesarias u otras cosas que no estoy teniendo en cuenta en este plan. ¿Qué son?

    
pregunta user117619 24.07.2015 - 21:21
fuente

3 respuestas

2

Fuera de la caja con GnuPG / PGP, no hay forma de cifrar un archivo con el método que sugiere. Existe un cifrado de "grupo" o capacidad para cifrar a múltiples destinatarios, pero eso permite que cada destinatario descifre el mensaje individualmente en lugar de confiar en la clave de otra persona.

Lo que puede hacer, y comúnmente se hace, es dividir la clave privada de PGP y requerir que varias personas se unan y formen la clave completa para descifrar el mensaje. Además, en lugar de individuos, puede hacer que la otra parte de la clave esté en un módulo de seguridad de hardware, tarjeta inteligente u otro dispositivo similar.

Es posible que desee echar un vistazo a SplitGpg que parece hacer lo que está pidiendo.

    
respondido por el Herringbone Cat 24.07.2015 - 21:37
fuente
1

OpenPGP realmente define (o al menos indica) una forma de hacerlo, RFC 4880, 5.2.3.21 . Los indicadores clave conocen el indicador de opción 0x10 :

   0x10 - The private component of this key may have been split
          by a secret-sharing mechanism.

Para hacerlo, tendrías que dividir la clave por tu cuenta y volver a unir las cosas. Una forma fácil podría ser separar la propiedad "física" de la clave cifrada simétricamente (es decir, la clave privada cifrada con una frase de contraseña), y el conocimiento de la frase de contraseña en sí. Hay escenarios más complejos para intercambio secreto que podría aplicar en la clave exportada. Parece que SplitGpg (según lo propuesto por @Herringbone_Cat) implementa dicho algoritmo, pero nunca lo he intentado it.

    
respondido por el Jens Erat 25.07.2015 - 01:49
fuente
0

Podrías literalmente encadenar el cifrado cifrando dos veces el archivo:

cat FILE |gpg -er [email protected] |gpg -er [email protected] > FILE.alice+bob.gpg.gpg

Esto requeriría que Bob descifre FILE.alice+bob.gpg.gpg en FILE.alice+bob.gpg , que luego requiere que Alice descifre. Alice no podrá hacer nada con el archivo con doble cifrado y Bob no podrá hacer nada con el archivo con solo cifrado.

El uso del cifrado de grupo permitiría una mayor estabilidad, por lo que podría cifrar a un grupo completo en lugar de solo a Alice, y luego cifrar a otro grupo entero en lugar de solo a Bob (el descifrado requiere solo un miembro de cada grupo). Incluso puedes elegir tener un usuario más privilegiado en ambos grupos (y, por lo tanto, poder descifrar ambas capas).

Una debilidad de este sistema es que solo Bob (o cualquier miembro del grupo más externo) puede verificar la integridad del nivel interno de cifrado. También hay un poco de sobrecarga dados los metadatos duplicados.

A este respecto, la respuesta de Herringbone_Cat de usar SplitGpg puede ser Es preferible, pero no estoy seguro de las ramificaciones de seguridad de la división literal de una sola clave (se supone que cada parte es robusta). Ciertamente, si elige esta ruta, multiplique el tamaño de la clave por (al menos) el número de veces que pretende dividirla para minimizar la posibilidad de que el propietario de una parte clave pueda adivinar la parte (s) restante (s). / p>

También asegúrate de que nunca envíes ninguna parte de clave privada a través de Internet sin cifrado (tal vez cifre cada parte de clave a la clave PGP personal de cada parte).

    
respondido por el Adam Katz 25.07.2015 - 01:52
fuente

Lea otras preguntas en las etiquetas