GnuPG / OpenPGP: ¿Cómo eliminar la redundancia en la clave privada PGP?

2

Examiné algunas claves privadas generadas aleatoriamente generadas por Gnu PG y encontré mucha redundancia.

  1. Está encerrado entre -----BEGIN PGP PRIVATE KEY BLOCK----- y -----END PGP PRIVATE KEY BLOCK-----
  2. Hay una suma de comprobación CRC al final (por ejemplo, =WXYZ )
  3. Todas las claves RSA que generé comienzan con "lQ"

Intenté eliminar la suma de comprobación y los trabajos de importación. Además, la eliminación de los marcadores BEGIN / END y el prefijo común "lQ" parece reversible. Me pregunto cuánto más puedo hacer para que la clave sea menos redundante y más confusa.

Mi principal preocupación de seguridad es:

Si el atacante roba la clave privada cifrada , puede (más) verificar rápida y fácilmente que el desencriptado tuvo éxito (en el caso anterior, al verificar que comienza con "IQ" y que la suma de comprobación es correcto).

Nota : usé gpg -a --export-secret-key , pero parece que la clave codificada que no es ASCII (no -a ) tiene prácticamente la misma redundancia (verifiqué esto usando un editor hexadecimal).

¿Existe una especificación / estándar que especifique qué partes de las claves privadas son "verdaderamente secretas", y cuáles sirven como descriptor, suma de comprobación y se pueden eliminar de forma segura (siempre que confío en que la clave no está modificada)? / p>     

pregunta leden 21.09.2014 - 00:57
fuente

1 respuesta

1

OpenPGP se define en RFC 4880 , que probablemente sea la especificación que está buscando. Los archivos OpenPGP (sin importar si son binarios o armados con ASCII) están compuestos de paquetes individuales, cada uno con un encabezado (que es probablemente lo que has estado observando con respecto al "IQ").

En un paquete de clave secreta OpenPGP, se almacenan muchos metadatos. Como también contiene la clave pública, espere que se incluyan los paquetes de ID de usuario, si son los mismos, habrá más redundancia.

Para elaborar las partes no específicas de las claves RSA de un tamaño determinado, trabaje mejor con archivos binarios en lugar de con armaduras ASCII (está más cerca de los valores dados en las especificaciones). Muy útil para la disección de archivos OpenPGP será gpg --list-packets , que descarga el contenido de cada paquete en una versión más legible para los humanos, pero también le proporciona identificadores de paquetes y datos similares que puede buscar en un editor hexadecimal.

    
respondido por el Jens Erat 21.09.2014 - 10:25
fuente

Lea otras preguntas en las etiquetas