
L’hashing è diventato insostituibile nella sicurezza informatica. Il testo semplice, come le password e i dati personali, può essere convertito in un codice utilizzando una funzione di hashing. A differenza del metodo di crittografia, il codice non può essere riconvertito nei dati originali. In questo modo, tutti i dati degli utenti sono al sicuro dagli attacchi degli hacker.
Questo articolo ti dice tutto quello che devi sapere sull’hashing. Ti spiegheremo esattamente cos’è l’hashing, come funziona e di cosa devi essere consapevole. Imparerai anche a conoscere importanti aree di applicazione.
Sommario
- Le funzioni di hash sono utilizzate per convertire i dati in codici.
- Poiché l’hashing è un “processo a senso unico”, questi codici non possono essere riconvertiti nei dati originali. Questo significa che i dati non possono essere visualizzati e sono protetti dagli attacchi.
- Gli hash possono essere ulteriormente protetti con Sale e Pepe.
Informazioni di base: Cosa dovresti sapere sull’hashing
Di seguito risponderemo alle domande più importanti sull’hashing. Imparerai cos’è l’hashing, come funziona e in quali aree viene utilizzato. Spiegheremo anche quali metodi proteggono ulteriormente gli hashish.
Cos’è l’hashing?
La quantità in ingresso può essere di diverse lunghezze, la quantità di destinazione ha sempre la stessa lunghezza. Solo diverse funzioni hash generano insiemi di destinazione di lunghezze diverse.
Oltre alle funzioni hash convenzionali, esistono anche funzioni hash crittografiche. Le funzioni hash crittografiche costituiscono il nucleo delle criptovalute, come i Bitcoin. Entrambi i tipi di funzioni hanno in comune il fatto che producono sempre lo stesso output con lo stesso input.
Gli algoritmi utilizzati nell’hashing assicurano che sia molto difficile indovinare quale sia la quantità di input in base alla quantità di destinazione. D’altra parte, è molto facile ottenere l’insieme target dall’insieme di input. Gli algoritmi di hash hanno quindi una funzione unidirezionale. Questo li distingue dalla crittografia convenzionale(1). Si possono rompere più facilmente(2).
Ora c’è ancora la questione di cosa sia effettivamente necessario per l’hashing. È utilizzato nella sicurezza informatica, per esempio. Qui viene utilizzato per memorizzare le password in modo sicuro. Memorizzare le password come testo semplice o solo leggermente criptato sarebbe troppo insicuro, perché potrebbero essere facilmente decifrate e gli account associati violati(2).
Come funziona una funzione hash?
Vogliamo mostrarti questo con un esempio pratico. Inseriamo i termini “finance”, “finance” e “financial” una volta nell’algoritmo SHA-256 e una volta nell’algoritmo SHA-1 e confrontiamo i risultati(3). SHA sta per Secure Hash Algorithm.
Set di ingresso nell’algoritmo SHA-256 | set di destinazione |
---|---|
Finance | b696d75511dc16f2b52563e3113a498311a79866f4672862197aa9a8c5c0da12 |
finance | eab762a03fd979a04cc4706e6536d382bc89d2d1356afcd054a16b2235ecd471 |
financial | fed0e4820af42571c936e28300ccb88026f72e075232358cd1fae4e802fe902b |
Come puoi vedere, semplicemente cambiando da una lettera maiuscola ad una minuscola nell’insieme di input cambia l’intero insieme di destinazione. Puoi anche vedere chiaramente che un set di input può variare in lunghezza. Tuttavia, la dimensione del set di obiettivi rimane sempre la stessa. L’algoritmo SHA-256 genera set di destinazione con 256 bit (64 caratteri).
Set di ingresso nell’algoritmo SHA-1 | set di destinazione |
---|---|
Finance | 1b48d3f014245f7c149ce9b77cd815abb0f1994b |
finance | a1cf62af599e2c2403cd6542a3bbe8f828511be8 |
financial | 43d4991437f61db19aa26b581bd2d4f06d46b104 |
Ancora una volta, guarda attentamente i set di input e target nella tabella. Puoi vedere di nuovo che il cambiamento da un grande F ad un piccolo f nell’insieme di input è sufficiente per cambiare l’insieme di destinazione. Puoi anche vedere di nuovo che la lunghezza dell’insieme di input è diversa, ma quella dell’insieme di destinazione rimane la stessa.
Se confronti i diversi target set delle tabelle, puoi vedere che l’algoritmo SHA-1 ha un target set più piccolo dell’algoritmo SHA-256. Il suo output è di 160 bit (40 caratteri).
Altre funzioni hash che sono attualmente considerate sicure e possono quindi essere utilizzate per memorizzare le password sono: Argon2, Bcrypt, Scrypt, PBKDF2(2). Argon2 ha attualmente l’algoritmo più sicuro(4).
Funzioni hash crittografiche
- Sicurezza in caso di collisione
- Funzione a senso unico
- Secondo modello di resistenza
Cosa significano queste proprietà in dettaglio è spiegato nelle sezioni seguenti.
Sicurezza di collisione
E’ teoricamente possibile che diverse quantità in ingresso portino allo stesso valore di hash in uscita. Se esiste un caso del genere, si chiama collisione. Una funzione hash è considerata una funzione hash crittografica se si può escludere che si verifichi una collisione nel caso di due diverse quantità di input.
La sicurezza della collisione è data se si può escludere che due insiemi di input diversi abbiano lo stesso output.
Gli algoritmi SHA SHA-2 e SHA-3 sono attualmente considerati a prova di collisione. Tuttavia, sono state trovate delle collisioni con le funzioni SHA-0 e SHA-1. Pertanto non sono più considerati sicuri.
Funzione unidirezionale
Con le funzioni hash crittografiche, non deve essere possibile determinare l’insieme di ingresso se l’insieme di destinazione è noto. Questa proprietà è anche chiamata resistenza alla preimpressione o resistenza alla preimpressione.
La resistenza del modello è molto importante nella sicurezza informatica, poiché permette, per esempio, di memorizzare le password senza notazione in chiaro. L’hash prova la correttezza del contenuto senza rivelare il contenuto. In questo modo, i dati possono essere memorizzati in modo protetto.
Seconda resistenza di preimmagine
Un secondo attacco di resistenza di preimmagine significa cercare un altro set di input che produce lo stesso set di destinazione di un set di input già conosciuto.
Invece di cercare due insiemi di input casuali che producono lo stesso set di destinazione, uno è già noto e si cerca un secondo con lo stesso output. Il secondo resistore di preimmagine impedisce quindi di trovare una collisione con un ingresso già noto.
Quali sono le possibili applicazioni?
- Checksum
- Firma digitale
- Memorizzazione delle password
- Hashing dei dati
Nel seguito, entreremo più in dettaglio sulle varie applicazioni possibili. Le possibilità di applicazione delle funzioni hash sono molto ampie. La nostra lista dovrebbe darti un’idea delle possibilità di applicazione.
Checksum
Le funzioni di hash possono essere utilizzate per rilevare manipolazioni durante i download. Per esempio, se vuoi scaricare un programma, vuoi essere sicuro che sia l’originale e che non ci siano state manipolazioni durante il processo di download.
Per evitare questo, puoi calcolare un valore di hash del programma prima di scaricarlo. Questo serve poi come impronta digitale. Dopo il download, calcola nuovamente il valore di hash con la stessa funzione. Se entrambi i valori sono uguali, è l’originale.
Firma digitale
Una firma digitale ha lo scopo di confermare l’integrità di un messaggio. Il mittente di un messaggio digitale può convertirlo in un valore di hash utilizzando una funzione di hash. Poi cripta questo valore con una chiave privata. Poi invia sia il messaggio che il valore criptato al destinatario.
Il destinatario può ora fare quanto segue per assicurarsi che il messaggio che sta leggendo non sia stato manomesso quando è stato inviato. Può decifrare il valore criptato con una chiave ufficiale, ottenendo così il valore di hash precedentemente calcolato del messaggio. Poi può calcolare il messaggio stesso con la stessa funzione hash che ha usato il mittente.
Ora il destinatario può confrontare entrambi i valori. Se il valore che ottiene dal suo calcolo corrisponde al valore che ottiene dalla decrittazione del valore inviato con il messaggio, è il messaggio originale.
Memorizzare le password
Il fatto che le funzioni hash siano utilizzate per memorizzare le password è già stato menzionato in vari luoghi. Se le password fossero memorizzate come testo semplice, potrebbero essere lette in caso di un attacco. Questo non può accadere se le password sono convertite in un valore hash utilizzando una funzione hash e solo questo valore viene memorizzato.
Se un utente vuole accedere al sistema, inserisce la sua password. Un valore di hash viene creato dalla password inserita utilizzando la stessa funzione di prima. L’utente è autenticato se questo valore appena determinato e il valore memorizzato corrispondono.
Data hashing
Il data hashing può essere utilizzato nei negozi online, per esempio. Tutti i dati personali, come il nome o l’indirizzo e-mail dell’utente, sono in hashish. Invece del testo in chiaro, viene memorizzato solo l’hash.
In questo modo, l’utente del negozio online può rimanere anonimo, mentre i suoi dati, come le preferenze, possono essere utilizzati. Queste informazioni possono essere utilizzate per un targeting ancora più specifico, mentre la protezione dei dati è ancora garantita(7).
Cosa c’entrano il sale e il pepe con l’hashing?
Una di queste misure di sicurezza è l’uso dei sali. I sali sono numeri generati casualmente, uno dei quali viene assegnato ad ogni utente o password. Ogni sale è unico.
La password viene combinata con il sale e poi trasformata in un hash dalla funzione hash. Questo evita le collisioni e due password non possono mai generare lo stesso hash. Rende anche più difficile per gli hacker craccare le password degli utenti(8).
Ci sono alcune cose da tenere a mente con i sali in modo che possano proteggere in modo sicuro da un attacco di hacking. Ogni sale deve essere unico. Se un utente viene aggiunto o se un utente cambia la sua password, deve essere assegnato un nuovo sale.
Ogni sale deve essere generato casualmente. I sali devono avere almeno la stessa lunghezza dell’insieme di destinazione della funzione hash utilizzata. Per i sali dovrebbe essere utilizzato un metodo di allungamento della chiave. Questo rende gli hash più intensivi dal punto di vista computazionale e i software di cracking impiegano più tempo per calcolare gli hash(8).
Oltre ai sali, le password possono essere protette anche da Pepper. Pepper è una stringa generata casualmente di 32 caratteri. A differenza del sale, il pepe è lo stesso per tutte le password. L’obiettivo del Pepper è quello di prevenire il caso in cui un hacker riesca a craccare il database. Senza il Pepper, gli hash delle password non possono ancora essere decifrati.
Funzioni di hash e mining
Questi blocchi sono ancora memorizzati nelle blockchain. Anche qui viene utilizzato l’hashing. In un blocco, i dati sono memorizzati in una sequenza che non può essere cambiata di nuovo. Infine, un blocco viene memorizzato come hash e questo hash viene messo davanti ad un nuovo blocco.
Finché anche questo è memorizzato come un hash e così via. In questo modo, viene creata una blockchain e una quantità infinita di dati può essere memorizzata(9).
Conclusione
Hashing è un processo in cui un insieme di dati, un insieme in entrata, viene convertito da una funzione in un codice, l’insieme di destinazione. Non importa quanto sia grande l’insieme di input, l’insieme di destinazione è sempre della stessa dimensione.
Solo l’uso di una funzione diversa cambia la dimensione dell’insieme di destinazione. In questo modo, una grande quantità di dati può essere memorizzata in modo da risparmiare spazio. Inoltre, non viene memorizzato nessun testo in chiaro, ma un codice che protegge tutti i dati.
L’hashing è usato principalmente nella sicurezza informatica, per esempio per memorizzare in modo sicuro le password degli utenti. Dato che le funzioni hash hanno sempre delle vulnerabilità di sicurezza, ci sono vari modi per rendere gli hash ancora più sicuri. Questi includono, per esempio, i metodi Sale e Pepe.
Fonte dell’immagine: Taylor Vick/ Unsplash.com
Riferimenti (9)
1.
Secure Insider. Was ist ein Hash? Abgerufen am 29.03.2021.
Fonte
2.
Computerwoche. Was ist Hashing? Abgerufen am 29.03.2021.
Fonte
3.
Online Tools. Abgerufen am 30.03.2021.
Fonte
4.
Golem. Hashfunktion Argon2 gewinnt Wettbewerb. Abgerufen am 29.03.2021.
Fonte
5.
Binance Academy. Cryptography. Abgerufen am 30.03.2021.
Fonte
6.
Dr. Datenschutz. Hashwerte und Hasfunktionen einfach erklärt. Abgerufen am 29.03.2021.
Fonte
7.
Adzine. What the hack is...Data -Hashing? Abgerufen am 30.03.2021.
Fonte
8.
Code Bude. Grundlagen: Sicheres Passwort Hashing mit Salts. Abgerufen am 30.03.2021.
Fonte
9.
Adesso. Wie funktioniert eine Blockchain. Abgerufen am 30.03.2021.
Fonte