Soy nuevo en el uso de GnuPG y trato de entender la mejor manera de usarlo. ¿He revisado la explicación breve y fácil de entender de GPG / PGP para personas no técnicas? , pero la mayoría de las guías explican PGP con una perspectiva de máquina única.
Quiero usar GnuPG en tres dispositivos informáticos: una PC con Linux, una computadora portátil con Linux y un teléfono con Android.
El caso de uso fundamental es cifrar / descifrar el correo electrónico administrado por un servicio IMAP, por lo que todos los dispositivos necesitan la misma clave privada para el descifrado.
Me imagino que mis opciones son:
Simplemente copie todas mis claves en el llavero de cada dispositivo y confíe principalmente en la contraseña de clave privada para su protección.
Cree una clave maestra (con --gen-key) para representar mi identidad, luego cree una clave desechable separada (nuevamente con --gen-key) para cifrar / descifrar correos electrónicos y firmar con la clave maestra. El primero reside solo en mi PC, el último se distribuye a cada dispositivo. Mientras mis dispositivos móviles no se vean comprometidos, la clave desechable seguirá siendo válida.
Puedo ser demasiado paranoico y hacer que esto sea más complicado de lo que tiene que ser, pero humoréeme, por favor. Creo en no poner todos tus huevos en una canasta.
Se supone que la clave maestra es mi identidad digital. Se dedicará mucho esfuerzo a generar confianza en torno a esa identidad, y prefiero sufrir las molestias de mi paranoia que perder mi llave por descuido y tener que construir confianza en torno a una nueva llave maestra (tal vez esto no sea tan malo como yo) pensar, pero soy nuevo en esto) .
Es más probable que pierda mi computadora portátil o mi teléfono que mi PC. Si pérdida == compromiso, prefiero perder un par de claves desechables (que puedo revocar) que mi par de claves maestras. Siempre puedo otorgar la confianza de mi llave maestra a una nueva llave desechable.
Perdón por la muy larga pregunta. :-)
TL; DR
¿Es una contraseña suficiente protección para almacenar mi clave privada maestra en múltiples dispositivos?
¿Es factible mi plan para la opción # 2? ¿Me equivoqué o puedo mejorarlo?
Si la opción # 2 es una mala idea, ¿cuáles son las mejores prácticas cuando se usa GnuPG para un solo usuario en múltiples dispositivos?
Como alguien a quien tampoco le gustan los puntos únicos de falla (incluidas las claves maestras y especialmente las contraseñas), esta es la forma en que lo haría. Permite que los dispositivos funcionen a través de una red de confianza, al tiempo que permite una identidad descentralizada.
No sé si ya existe un sistema para esto, pero creo que probablemente podría ser scrobbled junto con un trabajo cron y algunas líneas de Bash.
En este sistema, tiene dos clases de pares de claves: pares de claves de dispositivo y pares de claves de marco temporal . Se genera un par de claves de dispositivo para el usuario en cada dispositivo, y permanece en ese dispositivo durante toda su vida útil. Un servidor central genera un par de claves de intervalo de tiempo a intervalos de rutina (mensual, diario, cada hora, depende de lo paranoico que desee ser). La clave pública se anuncia públicamente (el servidor tiene su propio par de claves de dispositivo para firmar), y la clave privada se distribuye encriptada con la clave pública de cada dispositivo que debe tener acceso a esta clave. (Esta distribución debe ser lo más privada posible, por ejemplo, tener dispositivos conectados directamente al servidor).
Para firmar mensajes, usaría la clave del dispositivo desde el dispositivo desde el que envía el mensaje. Si alguien quiere enviarle un mensaje, puede firmarlo con su clave de marco de tiempo público actual. (Deben tener un sistema automatizado para mantenerse al día con los anuncios). Luego puede leer su mensaje desde cualquier dispositivo.
Para leer mensajes cifrados más antiguos, los pares de claves de marcos temporales más antiguos se respaldan en cada dispositivo de acuerdo con una estrategia apropiada (incluido el servidor generador de pares de claves de marcos temporales, si así lo desea, nuevamente, dependiendo de su nivel de paranoia), donde tiene otro conjunto de pares de claves protegidas por contraseña que protegen las claves más antiguas (con la cantidad de contraseñas que tenga con el tiempo, ya que se siente cómodo recordando)
Si un dispositivo es robado o comprometido de alguna otra manera, puede usar otro de sus dispositivos de confianza pública para crear un mensaje firmado públicamente que verifique su identidad (por cualquier medio, por ejemplo, notando que estará en una reunión pública y / o tener un amigo de confianza que lo verifique en persona) y revocar la clave del dispositivo comprometida y cualquier clave de marco temporal a la que haya tenido acceso. Al revocar la clave, también elimina el dispositivo robado de la lista de dispositivos confiables del servidor (con una contraseña y la clave de su dispositivo confiable).
La política para confiar en las claves de dispositivo recién anunciadas debe seguir algo así como las políticas de confianza actuales: creo que una política adecuada es confiar en el servidor generador, un dispositivo móvil y un dispositivo grande y pesado, ya que es difícil robar / infiltrarse el teléfono de un usuario, una PC de escritorio y VPS en un atraco concertado antes de que el usuario se dé cuenta.
Si su servidor se ve comprometido, simplemente lo revoca mediante el mismo procedimiento descrito para cualquier otro dispositivo comprometido (posiblemente con una política más fuerte similar a la de agregar un nuevo dispositivo), y use un servidor seguro o completamente nuevo (con un nuevo dispositivo keypair) en el futuro.
fuente