Cambia il checksum di un file dopo che è stato firmato digitalmente?

1

Da quanto ho capito, quando firmi digitalmente un file, cambia il checksum di quel file perché sono raggruppati insieme.

Esempio di cosa intendo:

file1.txt only contains the letter 'd' and the crc32 checksum of this file is 98dd4acc. However, I want to digitally sign it using my certificates private key. After I digitally sign it, what is the hash of the file? Does it remain the same as 98dd4acc or does it change after its bundled with the certificate?

Ho ragione o torto nell'assumere che il checksum del file cambierà? Una firma digitale non è effettivamente inclusa nel file stesso ma è inclusa nelle proprietà o qualcosa del genere.

Grazie.

    
posta hemlck 22.10.2018 - 04:32
fonte

2 risposte

2

Ci sono molte possibilità.

Alcuni formati di file, come PDF come descritto da Keith, e Authenticode per gli eseguibili di Microsoft Windows, inseriscono la firma nel file, ma si assicurano che non copra se stessa, e forse non altri dati non critici.

Alcuni formati di file o messaggi, come XMLdsig e facoltativamente S / MIME CMS / PKCS7 e PGP, inseriscono sia i dati che la firma in una struttura di file più ampia in modo che possano essere facilmente separati, la firma verificata e i dati ( usato senza la firma). Il codice Java utilizza il formato JAR di Java, che è un file ZIP leggermente modificato: ogni classe (o altra risorsa) è una voce nel file JAR, i digest di tutte le classi sono elencati nel manifest che è anche una voce nel file JAR, e la firma del manifesto più certificati correlati sono memorizzati in due voci aggiuntive nel file JAR.

A volte le persone mettono semplicemente la firma in un file separato che è collegato al file di dati; S / MIME CMS / PKCS7 e PGP "detached" firme fanno questo. Ad esempio, un sito per il download di software potrebbe avere un file denominato superwondergizmo-1.2.3.tar e la sua firma in un file denominato superwondergizmo-1.2.3.tar.sig (o talvolta ...asc per 'ARMored' aka ASCII PGP). Su Windows moderno con NTFS potrebbe avere senso usare uno stream supplementare per memorizzare la firma, ma non ho mai visto nessuno farlo; allo stesso modo per MacOS con il fork delle risorse; ma quelli di solito non funzionano per trasferimento , che è spesso importante al giorno d'oggi.

    
risposta data 22.10.2018 - 11:06
fonte
0

In genere firmeresti i contenuti del file ma non la firma.

Ricorda che la firma non è solo l'hash, ma l'hash che è stato crittografato con la chiave privata del firmatario. Ad esempio, ecco come Adobe descrive la firma dei documenti PDF :

The hash of the entire file is computed, using the bytes specified by the real ByteRange value using a hash algorithm such as SHA-256. Acrobat always computes the hash for a document signature over the entire PDF file, starting from byte 0 and ending with the last byte in the physical file, but excluding the signature value bytes

Non sono esperto, ma deduco da ciò che la firma è esclusa dal processo di hash + - perché altrimenti finisci in un ciclo ricorsivo infinito:)

    
risposta data 22.10.2018 - 04:45
fonte

Leggi altre domande sui tag