Quando usi GnuPG per firmare un file, solitamente si usa qualcosa sulla falsariga di:
gpg2 --detach-sign --armour <file-to-sign>
Ora, supponiamo che per alcuni motivi in azienda X la firma di rilasci sia possibile solo su una macchina remota. La firma implica il calcolo di un hash crittografico del file da firmare e l'hash viene quindi crittografato con la chiave privata . Nella società di cui sopra, si dovrebbe trasferire il file di rilascio alla macchina remota, firmarlo lì, eliminare di nuovo il file e pubblicare la firma accanto al file di rilascio.
Con versioni di grandi dimensioni e connessioni lente, la generazione delle firme può richiedere ore e il capo della società X non gli piace, quindi i dipendenti devono trovare una soluzione più rapida.
La soluzione rapida consiste nel calcolare l'hash crittografico del file localmente e passare l'hash alla macchina remota per creare una firma usando questo hash. L'idea sarebbe di usare qualcosa come:
gpg2 --detach-sign --armour --input-is-ALGO-hash <hash-for-signature>
Ma come lo faresti in un modo che rende il file .sig risultante indistinguibile da quello generato da GnuPG calcolando l'hash e firmandolo? Ci sono degli svantaggi in questo senso di sicurezza?