SHA-1 (abbreviazione di Secure Hash Algorithm 1) è una delle numerose funzioni hash crittografiche.
Si usa spesso per verificare che un file sia rimasto in alterato. Questo viene fatto producendo un checksum prima che il file sia stato trasmesso, e poi di nuovo una volta raggiunto la sua destinazione.
Il file trasmesso può essere considerato autentico solo se entrambi i checksum sono identici.
Cronologia e vulnerabilità della funzione hash SHA
SHA-1 è solo uno dei quattro algoritmi della famiglia Secure Hash Algorithm (SHA). La maggior parte è stata sviluppata dalla National Security Agency (NSA) degli Stati Uniti e pubblicata dal National Institute of Standards and Technology (NIST).
SHA-0 ha una dimensione di digest del messaggio (valore hash) di 160 bit ed è stata la prima versione di questo algoritmo. I suoi valori hash sono lunghi 40 cifre. È stato pubblicato con il nome "SHA" nel 1993 ma non è stato utilizzato in molte applicazioni perché è stato rapidamente sostituito con SHA-1 nel 1995 a causa di un difetto di sicurezza.
SHA-1 è la seconda iterazione di questa funzione hash crittografica. Questo ha anche un digest dei messaggi di 160 bit e ha cercato di aumentare la sicurezza risolvendo un punto debole trovato in SHA-0. Tuttavia, nel 2005, anche SHA-1 è risultato insicuro.
Una volta rilevate debolezze crittografiche in SHA-1, il NIST ha rilasciato una dichiarazione nel 2006 incoraggiando le agenzie federali ad adottare l'uso di SHA-2 entro l'anno 2010. SHA-2 è più forte di SHA-1 e gli attacchi sono stati effettuati contro SHA-2 è improbabile che accada con l'attuale potenza di calcolo.
Non solo le agenzie federali, ma anche aziende come Google, Mozilla e Microsoft hanno iniziato a pianificare di interrompere l'accettazione dei certificati SSL SHA-1 o hanno già bloccato il caricamento di questo tipo di pagine.
Google ha la prova di una collisione SHA-1 che rende questo metodo inaffidabile per la generazione di checksum univoci, che si tratti di una password, di un file o di qualsiasi altro dato. Puoi scaricare due file PDF univoci da SHAttered per vedere come funziona. Usa un calcolatore SHA-1 dalla parte inferiore di questa pagina per generare il checksum per entrambi e scoprirai che il valore è esattamente lo stesso anche se contengono dati diversi.
SHA-2 e SHA-3
SHA-2 è stato pubblicato nel 2001, diversi anni dopo SHA-1. Include sei funzioni hash con dimensioni digest variabili: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 e SHA-512/256.
Sviluppato da designer non NSA e rilasciato dal NIST nel 2015, è un altro membro della famiglia Secure Hash Algorithm, chiamato SHA-3 (ex Keccak).
SHA-3 non è pensato per sostituire SHA-2 come le versioni precedenti erano destinate a sostituire quelle precedenti. Invece, è stato sviluppato proprio come un' altra alternativa a SHA-0, SHA-1 e MD5.
Come si usa SHA-1?
Un esempio nel mondo reale in cui SHA-1 può essere utilizzato è quando stai inserendo la tua password nella pagina di accesso di un sito web. Anche se accade in background a tua insaputa, potrebbe essere il metodo utilizzato da un sito Web per verificare in modo sicuro che la tua password sia autentica.
In questo esempio, immagina di provare ad accedere a un sito web che visiti spesso. Ogni volta che richiedi di accedere, ti viene richiesto di inserire il tuo nome utente e password.
Se il sito Web utilizza la funzione hash crittografica SHA-1, significa che la tua password viene trasformata in un checksum dopo che l'hai immessa. Tale checksum viene quindi confrontato con il checksum memorizzato sul sito Web relativo al tuo attuale password, se non hai cambiato la password da quando ti sei registrato o se l'hai cambiata solo pochi istanti fa. Se i due corrispondono, ti viene concesso l'accesso; in caso contrario, ti viene detto che la password non è corretta.
Un altro esempio in cui questa funzione hash può essere utilizzata è per la verifica dei file. Alcuni siti Web forniranno il checksum SHA-1 del file nella pagina di download in modo che quando scarichi il file, puoi controllare tu stesso il checksum per assicurarti che il file scaricato sia lo stesso di quello che intendevi scaricare.
Potresti chiederti dove sia il reale utilizzo in questo tipo di verifica. Considera uno scenario in cui conosci il checksum SHA-1 di un file dal sito Web dello sviluppatore, ma desideri scaricare la stessa versione da un sito Web diverso. È quindi possibile generare il checksum SHA-1 per il download e confrontarlo con il checksum autentico dalla pagina di download dello sviluppatore.
Se i due sono diversi, non solo significa che il contenuto del file non è identico, ma potrebbe esserci del malware nascosto nel file, i dati potrebbero essere danneggiati e causare danni ai file del tuo computer, il file non lo è qualsiasi cosa relativa al file reale, ecc.
Tuttavia, potrebbe anche significare che un file rappresenta una versione precedente del programma rispetto all' altra, poiché anche una piccola modifica genererà un valore di checksum univoco.
Puoi anche voler controllare che i due file siano identici se stai installando un service pack o qualche altro programma o aggiornamento perché si verificano problemi se alcuni file mancano durante l'installazione.
Calcolatori di checksum SHA-1
Uno speciale tipo di calcolatrice può essere utilizzato per determinare il checksum di un file o di un gruppo di caratteri.
Ad esempio, SHA1 Online e SHA1 Hash Generator sono strumenti online gratuiti in grado di generare il checksum SHA-1 di qualsiasi gruppo di testo, simboli e/o numeri.
Quei siti Web genereranno, ad esempio, questa coppia:
pAssw0rd!
bd17dabf6fdd24dab5ed0e2e6624d312e4ebeaba