GPG masterkey y subclave para cifrado y firma y claves predeterminadas

3

Estoy un poco confundido (como muchos otros) sobre el concepto de subclaves en relación con la clave principal. gpg por defecto (al menos parece en mi sistema --- usando RSA ), cuando gpg --gen-key crea un masterkey y un subkey . El masterkey tiene indicadores SC que podrían usarse para la firma y la certificación. También crea una subclave con el indicador E , utilizado para el cifrado. ¿Son correctas las siguientes afirmaciones?

  • Si entiendo todo el concepto, tanto el masterkey como el subkey son pares de claves, es decir, un par de claves privadas-públicas.
  • el hecho de que uno sea solo para el cifrado se debe a que algunos algoritmos tienen ese requisito (necesitan claves separadas para el cifrado y la firma)
  • El indicador subkey with E : su parte pública se puede usar para cifrar información y su parte privada para descifrar la información que se cifró con la parte pública.
  • El indicador masterkey with SC : su parte privada se usa para firmar / certificar y su parte pública se usa para verificar la validez de la firma.

La parte más confusa es cuando sigo los consejos para crear más subkeys , uno para la firma, uno para el cifrado. Simplemente llamemos el cifrado original subkey ESK0 y el nuevo cifrado subkey ESK1 , y la nueva firma subkey SSK1 y el masterkey MK .

Después de crear ESK1 y SSK1 debería tener en total 4 pares de claves públicas / privadas, ¿correcto? Luego, siguiendo las guías, elimino el MK de un medio sin conexión y lo elimino de mi computadora, por lo que ahora tengo en mi computadora:

  • Un par público / privado ESK0 (cifrado original)
  • Un par público / privado ESK1 (nuevo cifrado)
  • Un par público / privado SSK1 (nueva firma)
  • Una clave pública para MK

Luego cambio la contraseña usando gpg --edit-key $id passwd . De acuerdo con algunas guías, debería cambiar la contraseña a las subclaves, pero no estoy tan seguro de eso, creo que esto solo cambia la contraseña a toda la estructura limitada a MK , es solo que la estructura con privado MK almacenada Sin conexión todavía tiene la contraseña antigua. ¿Cuál es correcto?

Ahora, si firmo algo, ¿cuál es la clave de firma? Creo que tiene que ser SSK1 ya que MK ya no está disponible. Correcto?

Luego subo alguna clave pública a un servidor de claves usando gpg --send-key $id . ¿Qué claves públicas he subido?

Si alguien usará la información del servidor de claves para enviarme información cifrada, ¿qué clave pública se usará para el cifrado - ESK0 o ESK1 ? Me preocupa que sea ESK0 , ya que entonces el punto de tener subclaves sería completamente inútil, ya que para el descifrado todavía estaría usando ESK0 .

Además, ¿por qué es que las guías sugieren la eliminación de MK pero el ESK0 aún debe permanecer en el sistema? ¿Cuál es el propósito de ESK1 entonces?

Gracias por cualquier ayuda.

    
pregunta leosenko 29.05.2018 - 00:30
fuente

1 respuesta

4

Si ya tiene claves SC y E, y desea eliminar su clave C ("maestra") para el almacenamiento fuera de línea, todo lo que necesita es una nueva clave S (SSK1 en su ejemplo). No es necesario que cree una nueva subclave de cifrado, su actual es adecuada para este propósito.

  

Luego cambio la contraseña usando gpg --edit-key $id passwd . De acuerdo con algunas guías, debería cambiar la contraseña a las subclaves, pero no estoy tan seguro de eso, creo que esto solo cambia la contraseña a toda la estructura delimitada a MK, es solo que la estructura con MK privado sin conexión aún tiene la Contraseña anterior. ¿Cuál es correcto?

Cambiará la contraseña en cualquier subclave almacenada localmente, por lo que es una cosa perfectamente válida para hacer. La frase de contraseña de la llave maestra sin conexión no cambiará. La frase de contraseña es lo que GnuPG usa para cifrar simétricamente sus claves privadas antes de almacenarlas en el disco (para asegurarse de que no sean fácilmente robadas a través de malware o copias de seguridad con poca seguridad).

  

Ahora, si firmo algo, ¿cuál es la clave de firma? Creo que tiene que ser SSK1 ya que MK ya no está disponible. Correcto?

De forma predeterminada, GnuPG usará la clave S más reciente, por lo que SSK1 siempre se usará en su caso, que es lo que desea.

  

Luego subo una clave pública a un servidor de claves usando gpg --send-key $ id. ¿Qué claves públicas he subido?

Subes todos los datos de clave pública, incluidas las nuevas subclaves o identidades.

  

Si alguien usará la información del servidor de claves para enviarme información encriptada, ¿qué clave pública se usará para la encriptación - ESK0 o ESK1? Me preocupa que sea ESK0, ya que entonces el punto de tener subclaves sería completamente inútil, ya que para el descifrado todavía estaría usando ESK0.

Tener varias subclaves de cifrado válidas es una receta para que suceda algo así, por lo que te recomiendo que NO crees una nueva subclave de cifrado. Como dije, no necesita una nueva subclave de cifrado si ya tiene una.

  

Además, ¿por qué es que las guías sugieren la eliminación de MK pero la ESK0 aún debe permanecer en el sistema? ¿Cuál es el propósito de ESK1 entonces?

La "clave maestra" es su clave "C" (certificar). Es la clave utilizada para firmar las claves de otras personas y sus propias subclaves e identidades. Si alguna de sus subclaves E o S se pierde o si le preocupa que se hayan expuesto al malware, puede simplemente revocarlas y crear otras nuevas siempre que confíe en la integridad de su tecla C. Por esta razón, se recomienda que su clave C ("clave maestra") esté cuidadosamente guardada y almacenada fuera de línea.

Al final, tu objetivo es tener la siguiente estructura:

  • clave [SC] existente: almacenada sin conexión, eliminada del disco local
  • clave [E] existente: guardada en el disco
  • nueva clave [S]: guardada en el disco

Nota final: de forma predeterminada, GnuPG crea su clave maestra como [SC], pero no tiene que hacerlo. Específicamente, puede decirle a GnuPG que cree una tecla [C] independiente.

    
respondido por el mricon 29.05.2018 - 13:47
fuente

Lea otras preguntas en las etiquetas