¿Es una coincidencia que los primeros 4 bytes de un archivo PGP / GPG sean puntos suspensivos, sonrisas, signos femeninos y un corazón?

42

Como dice el título, ¿esos 4 bytes tienen un significado (supongo que hacen lo que aparentemente la sonrisa cambia según el bitness de la clave)?

Los dos archivos siguientes se han cifrado con las diferentes claves, pero dentro de la misma clave, esos 4 bytes son siempre los mismos.

Si estos 4 bytes son siempre iguales, ¿hay alguna forma integrada en PGP / GPG para evitar que un atacante sepa qué archivo puede haber obtenido / interceptado, además de eliminar estos bytes en tránsito y volver a crearlos? en el destino?

    
pregunta ajeh 06.12.2016 - 20:21
fuente

2 respuestas

68

Sí, es una coincidencia que los primeros bytes aparezcan como estos símbolos. Son parte de la especificación de formato de mensaje OpenPGP ( RFC 4880 ) y varían según las propiedades del paquete.

Creemos un archivo que contenga solo esos bytes e intentemos leerlo como un mensaje GPG:

$ echo "\x85\x02\x0c\x03" > foo.gpg && gpg --list-packets foo.gpg
# off=0 ctb=85 tag=1 hlen=3 plen=524
:pubkey enc packet: version 3, algo 255, keyid 0AFFFFFFFFFFFFFF
    unsupported algorithm 255
  • El primer byte ( 0x85 = 0b10000101 ) es el byte de tipo de cifrado (CTB) que describe el tipo de paquete. Podemos dividirlo de la siguiente manera:
    1 : bit indicador CTB
    0 : formato de paquete antiguo (consulte RFC 1991 )
    0001 : paquete de clave pública cifrada
    01 : el campo de longitud del paquete tiene 2 bytes de longitud

  • El segundo y tercer bytes denotan la longitud del paquete ( 0x020c = 524 ).

  • El cuarto byte ( 0x03 ) significa que está en el formato de paquete de la versión 3.

Como puede ver, estos bytes son significativos y no constantes numéricos mágicos que puede eliminar sin perder información. Si los corta, está corrompiendo el paquete GPG y requerirá algunas conjeturas para reconstruirlo.

Los bytes se muestran como emoticones y corazones porque así es como su terminal (probablemente DOS) muestra caracteres de control no imprimibles. En los juegos de caracteres que se originan en página de códigos 437 , los bytes bajos que se encuentran fuera del rango ASCII imprimible se representan tradicionalmente como iconos. Aquí está el CP437 original en una PC de IBM:

(Fuente de la imagen)

    
respondido por el Arminius 06.12.2016 - 21:00
fuente
16

Como principio general, los formatos de archivos binarios bien diseñados tendrán sus primeros bytes en un número mágico identificando el formato. Los primeros cuatro bytes de los ejecutables ELF siempre son 7f 45 4c 46, los primeros ocho bytes de los archivos PNG siempre son 89 50 4e 47 0d 0a 1a 0a, y así sucesivamente. Los formatos de archivo cifrados bien diseñados siempre seguirán ese número mágico con un "encabezado" sin cifrar que revela el algoritmo de cifrado, la longitud de los datos cifrados, cosas así.

Esto normalmente no se considera una vulnerabilidad de seguridad, debido al principio de Kerckhoffs , que dice que un sistema criptográfico necesita para estar seguro incluso si el atacante sabe todo lo que el encabezado del archivo puede decirles (como el algoritmo).

Es posible diseñar un formato de archivo o un protocolo, todos cuyos bytes son indistinguibles de la aleatoriedad a menos que ya conozcas la clave de descifrado, pero es sorprendentemente difícil (sabías que cifrar la longitud esperada de los datos cifrados puede introducir una vulnerabilidad ?) y en realidad no te gana nada. Un archivo que es completamente indistinguible de la salida de cat /dev/random será tan sospechoso para la policía secreta como un archivo obviamente cifrado con GPG. Quizás más sea sospechoso, incluso, ya que hay todo tipo de razones inocuas para cifrar archivos.

Si le preocupa que un atacante se dé cuenta de que está utilizando el cifrado para comunicarse con alguien, necesita esteganografía , que oculta información secreta en archivos ordinarios , sin cifrar. Tenga en cuenta que el estado del arte en esteganografía no es tan sofisticado como el estado del arte en criptografía; La última vez que lo verifiqué, todos los enfoques conocidos eran rompibles por un adversario determinado. (Si la primera impresión de la policía secreta es "oh, esta es una tarjeta de memoria llena de fotos de vacaciones", es posible que no se molesten en profundizar ... a menos que ya tengan un motivo para sospechar de usted).

¹ No tengo una opinión sobre si el formato de archivo GPG está bien diseñado.

    
respondido por el zwol 07.12.2016 - 18:50
fuente

Lea otras preguntas en las etiquetas