È possibile fornire un checksum per i seguenti motivi:
- per verificare che il download sia completo;
- per verificare che stai guardando il download corretto (più avanti nel tempo);
- per assicurarti che un servizio di download di terze parti (proxy, torrent, ecc.) fornisca un download valido.
HTTPS ti aiuta con due cose: per assicurarti di connetterti al server giusto in primo luogo e per fornire sicurezza di trasporto.
Il checksum non ti aiuterà se un utente malintenzionato impersona un server, motivo per cui HTTPS può fornire ulteriore sicurezza. Inoltre ti protegge da un utente malintenzionato che modifica i dati in transito.
TCP già checksum. Le probabilità che un pacchetto venga danneggiato durante il trasporto è trascurabile per le connessioni stabili. Direi che né HTTPS né hash sicuro sono necessari per rilevare i pacchetti danneggiati.
Riguardo a 1 : in genere un browser o un client HTTP utilizza già un file temporaneo durante il download. Se viene scaricato direttamente o se il passaggio al nome del file reale viene interrotto prematuramente, un hash può mostrarti che i dati non sono stati copiati completamente.
Riguardo a 2 : i checksum erano molto utili per le connessioni lente. Ora per i programmi più piccoli ho scaricato di nuovo a volte. Dovresti comunque riconoscere che i download costano denaro per chi fornisce il servizio. Se è possibile evitare un download convalidando un checksum, si prega di farlo.
Potrebbe anche proteggerti dai fornitori di servizi che offrono appena setup.exe
come download, anche se è improbabile che organizzazioni come questa (ciao Microsoft!) forniscano alcun tipo di checksum.
Riguardo a 3 : se i checksum sono forniti sul sito originale (di solito sono), è possibile utilizzare i checksum per verificare se il software scaricato da un sito mirror può essere considerato affidabile. Se il mirror non è aggiornato, ha commesso un errore durante la copia dei file o se è stato violato, MD5 ti dirà se il file appena scaricato è corretto o meno.
Funziona anche se l'hash è MD5 poiché gli attacchi a MD5 richiedono un hash precalcolato.
Questo è probabilmente il motivo per cui siti come GitHub non forniscono checksum; se il download non è speculare, c'è meno bisogno di fornire un checksum
Note:
- controllare un hash può essere troppo lavoro per i consumatori, quindi i molti programmi di installazione che eseguono il download e il checksum (probabilmente usando un mirror)
- un hash non è una firma: se il sito originale viene violato, non sei fortunato