¿Cambia la suma de comprobación de un archivo después de que se firma digitalmente?

1

Según tengo entendido, cuando firmas digitalmente un archivo, cambia la suma de comprobación de ese archivo porque están agrupados.

Ejemplo de lo que quiero decir:

  

file1.txt solo contiene la letra 'd' y la suma de comprobación crc32 de este archivo es 98dd4acc . Sin embargo, quiero firmarlo digitalmente con la clave privada de mi certificado. Después de que lo firme digitalmente, ¿cuál es el hash del archivo? ¿Sigue siendo el mismo que 98dd4acc o cambia después de que se incluye con el certificado?

¿Tengo razón o no al asumir que la suma de comprobación del archivo cambiará? Es una firma digital que no está realmente incluida en el archivo en sí, sino que se incluye en las propiedades o algo así.

Gracias.

    
pregunta hemlck 22.10.2018 - 04:32
fuente

2 respuestas

2

Hay muchas posibilidades.

Algunos formatos de archivo, como el PDF descrito por Keith, y Authenticode para los ejecutables de Microsoft Windows, colocan la firma en el archivo pero hacen que no se cubra a sí mismo, y tal vez no también otros datos no críticos.

Algunos formatos de archivo o mensaje, como XMLdsig y opcionalmente S / MIME CMS / PKCS7 y PGP, colocan los datos y la firma en una estructura de archivos más grande para que puedan separarse fácilmente, la firma verificada y los datos ( sin la firma) utilizada. El código de Java utiliza el formato JAR de Java, que es un archivo ZIP ligeramente modificado: cada clase (u otro recurso) es una entrada en el archivo JAR, los resúmenes de todas las clases se enumeran en el manifiesto, que también es una entrada en el archivo JAR. y la firma del manifiesto más los certificados relacionados se almacenan en dos entradas adicionales en el archivo JAR.

Algunas veces las personas simplemente colocan la firma en un archivo separado que está vinculado al archivo de datos; S / MIME CMS / PKCS7 y las firmas 'separadas' de PGP hacen esto. Por ejemplo, un sitio de descarga de software puede tener un archivo llamado superwondergizmo-1.2.3.tar y su firma en un archivo llamado superwondergizmo-1.2.3.tar.sig (o, a veces, ...asc para "blindado", también conocido como ASCII PGP). En Windows moderno con NTFS, podría tener sentido utilizar un flujo complementario para almacenar la firma, pero nunca he visto a nadie hacerlo; de manera similar para MacOS con la bifurcación de recursos; pero esos no suelen funcionar para transfer , lo que a menudo es importante en la actualidad.

    
respondido por el dave_thompson_085 22.10.2018 - 11:06
fuente
0

Normalmente, firmarías el contenido del archivo, pero no la firma.

Recuerde, la firma no es solo el hash, sino el hash que se ha cifrado con la clave privada del firmante. A modo de ejemplo, aquí se describe cómo Adobe describe la firma de documentos PDF :

  

Se calcula el hash de todo el archivo, utilizando los bytes especificados por   el valor real de ByteRange utilizando un algoritmo hash como SHA-256.   Acrobat siempre calcula el hash para una firma de documento sobre el   Archivo PDF completo, comenzando desde el byte 0 y terminando con el último byte en   el archivo físico, pero excluyendo los bytes del valor de la firma

No soy un experto, pero de esto deduzco que la firma está excluida del proceso hash + sign, porque de lo contrario terminas en un bucle recursivo infinito :)

    
respondido por el keithRozario 22.10.2018 - 04:45
fuente

Lea otras preguntas en las etiquetas