Cuando se usa GnuPG para firmar un archivo, generalmente se usa algo como:
gpg2 --detach-sign --armour <file-to-sign>
Ahora, supongamos que, por algún motivo en la empresa X, la firma de lanzamientos solo es posible en una máquina remota. Firmar implica el cálculo de un hash criptográfico del archivo que se firmará y ese hash se cifra con la clave privada. . En la compañía anterior, uno tendría que transferir el archivo de lanzamiento a la máquina remota, firmarlo allí, eliminar el archivo nuevamente y publicar la firma junto con el archivo de lanzamiento.
Con grandes lanzamientos y conexiones lentas, la generación de firmas puede tomar horas y al jefe de la empresa X no le gusta eso, por lo que los empleados deben encontrar una solución más rápida.
La solución rápida es calcular el hash criptográfico del archivo localmente y pasar el hash a la máquina remota para hacer una firma usando este hash. La idea sería usar algo como:
gpg2 --detach-sign --armour --input-is-ALGO-hash <hash-for-signature>
Pero, ¿cómo lo haría de una manera que haga que el archivo .sig resultante no se pueda distinguir de uno generado por GnuPG al calcular el hash y firmarlo? ¿Hay alguna desventaja en esta seguridad?