In Italia, diverse campagne di smishing hanno preso di mira gli utenti di home banking con SMS che imitano Poste Italiane, corrieri o le principali banche, spingendo a scaricare finte "app di sicurezza" o "app di tracciamento pacco" sotto forma di APK distribuiti fuori dal Play Store — spesso il vettore di trojan bancari Android. Confrontare il checksum pubblicato dalla fonte ufficiale con quello del file scaricato è un modo semplice per individuare questa sostituzione prima di installare.
Come un checksum rileva la corruzione o la manomissione
A causa dell'effetto valanga delle funzioni hash, sia che si tratti di un danno accidentale durante il trasferimento sia di una modifica intenzionale, anche un solo byte alterato cambia completamente l'hash calcolato del file. Quindi qualsiasi discrepanza tra il checksum atteso e quello calcolato significa inequivocabilmente che il file differisce dall'originale, byte per byte.
Cosa non garantisce un checksum
Hash corrispondenti confermano solo che il file è identico a quello da cui è stato calcolato l'hash pubblicato, non che quell'originale sia sicuro. Se è lo stesso sito falso a pubblicare l'APK malevolo insieme a un checksum "corrispondente" creato ad hoc, la verifica non rileverà nulla — per questo l'hash di riferimento va preso dal sito ufficiale della banca o dell'ente, non dalla stessa fonte non ufficiale da cui è stato scaricato il file sospetto.
Checksum contro firma digitale
A differenza di un checksum, una firma digitale viene creata con una chiave privata e può essere verificata solo con la chiave pubblica corrispondente. Il Play Store verifica questa firma automaticamente all'installazione; installando un APK manualmente (sideloading) questa protezione scompare, e il confronto manuale del checksum resta l'unico controllo disponibile.
A cosa serve
- Confermare che un APK bancario o di un corriere scaricato fuori dallo store ufficiale non sia stato alterato.
- Confrontare rapidamente due file grandi senza confrontarli byte per byte.
- Verificare che una copia di backup di un file sia identica all'originale.
Perché a volte si usa CRC32 invece di SHA-256
CRC32 è molto più veloce delle funzioni hash crittografiche, ma è facile falsificarlo intenzionalmente — non è un problema per rilevare un danneggiamento accidentale durante la trasmissione, ma è una protezione inadeguata contro un attaccante che vuole sostituire un file in modo impercettibile. Per questo CRC32 si trova ancora negli archiviatori e nei protocolli di rete per il controllo degli errori, non dove serve proprio la sicurezza.