Come posso verificare l'integrità dei file scaricati?

14

So che utilizziamo le funzioni hash per verificare l'integrità dei file, ecc ... ma la mia domanda è: come possiamo verificare l'integrità dei file scaricati da qualche server?

    
posta ame 04.10.2013 - 13:44
fonte

2 risposte

13

Integrity è definito solo relativamente a una fonte autorevole che indica quale sia la sequenza "corretta" di byte. Le funzioni di hash non creano l'integrità, esse la trasportano . In sostanza, se hai:

  1. un file;
  2. un valore di hash, presunto corretto;

quindi puoi ricalcolare la funzione di hash sul file e vedere se ottieni lo stesso valore di hash.

Devi ancora iniziare da qualche parte. Alcuni distributori di software forniscono, insieme al software, un file "checksum" (o "md5sum" o "sha1sum"), che contiene i valori hash. Supponendo di avere il file di checksum corretto , questo ti permette di verificare se hai scaricato il file giusto, fino all'ultimo bit; e questo funziona indipendentemente dal modo in cui hai scaricato il file possibilmente grande (anche se si tratta di una rete peer-to-peer ombreggiata o altro, non puoi imbrogliare le funzioni hash).

Ora questo non risolve il problema di integrità; lo riduce al problema di assicurarsi di avere il giusto valore di hash. I valori di hash sono piccoli (32 byte per SHA-256), quindi questo apre molte possibilità. Nel contesto del download di file da sistemi P2P, è possibile ottenere il valore hash da un sito Web HTTPS (HTTPS utilizza SSL che garantisce l'autenticazione del server - si ha la garanzia di parlare con il server che si intende - e l'integrità del trasporto - ciò che ricevi è garantito come ciò che il server ha inviato). Nel contesto dello scambio di chiavi pubbliche PGP con persone, i valori di hash (spesso chiamati "impronte digitali" o "impronte digitali") sono abbastanza brevi da essere trasferiti manualmente (stampati su un biglietto da visita, digitati per telefono ...).

Le firme digitali espandono il concetto, ma anch'esse iniziano con le funzioni hash. Tutti gli algoritmi di firma digitale non firmano il messaggio stesso, ma l'hash del messaggio (che è ugualmente valido finché la funzione hash è sicura, ossia resistente a collisioni e preimmagini).

    
risposta data 04.10.2013 - 14:02
fonte
7

Per molti software, i provider dei file forniscono anche l'hash del file che ti consente di verificarne l'integrità.

Ad esempio, ecco un esempio dei checksum che il Progetto Fedora fornisce per la Fedora 19 x86_64 ISO.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

# The image checksum(s) are generated with sha256sum.
6e7e263e607cfcadc90ea2ef5668aa3945d9eca596485a7a1f8a9f2478cc7084 *Fedora-19-x86_64-DVD.iso
ef9eb28b6343e57de292f2b2147b8e74a2a04050655e0dc959febd69b0d5d030 *Fedora-19-x86_64-netinst.iso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAEBCAAGBQJRzjLNAAoJEAdHfmX7SxjmzQEP/jzXXe4rxRzA9NLrgWtRUp1b
nK+gpMgGXC5+zSWnKTQBUWMx0rx7uys/UQH934hz1rdMOqLkCe1XlVWp+0ya55nC
13OhOeeJhbdECzFvcSAkDh9Aj2Z9AnDeHbDvJXpEjvGiSLLsYWsjifIkMYDoNTRV
QlLWwOTlCCUZtEGEI1x0TWYlr0HUtkL5QAzQ4CSO7xGYE6YH/xwHje/8n7B25NHU
r2sSdlz3KORQyStqYK78cWlR70PT+3o00SO7ReHNVIZwCL8PjsOEm41Q4tjw3BF7
KLp+fcQTOgzLRY1VVk0n0POeJHbVB2TULjIW4F/vCiA3N6Uq595ebNxgSOBg8tRs
t7fkbktVB6+WeBCcGvJI7MWzYq0ukwRBAH+ZBLhpnEIsHOoFF6LRoiE0UncdhGb+
OmZqn8wZKzMf401E/vj7dEy+X3lAST+5mBm0EJQaFz2cbQCzuxfhnSc27w9Zq3ii
3Tgo1ubInXD/fu1WFH/Tu2aOmbNQwDr4YQDYOeuzokA3d/2bETIhEmYxmfGptfMw
fGG/u4QQMdXyPPKvdIkOTAp5d0tWnTucpkbHs1goygsCMz6XWvIZJt4bAbSRwXoa
qYXh8IpJAM0CrU0353RMDCNpDlpSXGeEy5riaFpFCe7SKZBzp2dJ1LsMJl1NJXxn
QavVCbllLFFjaTuYKrDZ
=oBpz
-----END PGP SIGNATURE-----

Anche le istruzioni sono fornite anche se non si utilizza il checksum fornito.

Generalmente, se i file vengono forniti attraverso lo stesso mezzo dei checksum, c'è davvero un reale vantaggio in quanto un utente malintenzionato che riesce a compromettere il download avrà anche la capacità di sostituire il checksum fornito. Tuttavia, questo è molto utile nel caso in cui i file vengano scaricati su una connessione non protetta come torrent o CDN. In tale situazione, il fornitore di software può fornire il piccolo checksum sul suo server mentre serve i file attraverso un mezzo di larghezza di banda più elevato come i torrent o un CDN.

    
risposta data 04.10.2013 - 13:53
fonte

Leggi altre domande sui tag