0Pricing
Cyber Security Academy · Lezione

Funzioni hash: SHA-256 e oltre

Esplorate le proprietà degli hash crittografici: resistenza alle collisioni, resistenza alle preimmagini e applicazioni.

Funzioni hash: SHA-256 e oltre è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

Che cos'è una funzione di hash crittografica

Una funzione di hash crittografica prende un input di lunghezza arbitraria e produce un output di lunghezza fissa (digest). Deve essere: deterministica, veloce da calcolare, resistente alle preimmagini (non è possibile risalire all'input), resistente alle collisioni (non è possibile trovare due input con lo stesso hash) e sensibile all'effetto valanga (una piccola modifica → un hash completamente diverso).

Famiglia SHA-2

La famiglia SHA-2 (progettata da NSA e standardizzata da NIST) include:

  • SHA-256 — output a 256 bit, ampiamente usato
  • SHA-384 — output a 384 bit
  • SHA-512 — output a 512 bit, più veloce sulle CPU a 64 bit

SHA-256 viene usato in Bitcoin, nei certificati TLS e negli identificativi dei commit Git.

Famiglia SHA-3

SHA-3 usa una progettazione completamente diversa da SHA-2 (la costruzione a spugna Keccak). È stato standardizzato come alternativa nel caso in cui venissero scoperte vulnerabilità in SHA-2. SHA-3 non è ampiamente adottato, ma viene usato in alcuni protocolli e dispositivi hardware crittografici.

MD5 e SHA-1: compromessi

Non usi mai MD5 o SHA-1 per scopi di sicurezza:

  • MD5: collisioni individuabili in pochi secondi con hardware comune
  • SHA-1: la prima collisione pratica è stata dimostrata nel 2017 (SHAttered)

Restano utili per checksum non legati alla sicurezza (deduplicazione dei file), ma non per garantire l'integrità.

Usi dell'hash: integrità dei file

Verifica dei download:

sha256sum ubuntu-24.04.iso
# Compare with the hash published on the official site
# If hashes match, file is unmodified

Usi dell'hash: firme digitali

Quando firmiamo documenti, non cifriamo l'intero documento con la chiave privata (sarebbe troppo lento). Invece:

  1. Calcoliamo l'hash del documento (operazione rapida)
  2. Cifriamo l'hash con la chiave privata (è piccolo e rapido)
  3. Il destinatario decifra con la chiave pubblica e confronta il risultato con l'hash calcolato autonomamente

HMAC: hash con chiave per l'integrità

HMAC (Hash-based Message Authentication Code) combina una funzione di hash con una chiave segreta per produrre un tag di autenticazione. Serve a verificare sia l'integrità sia l'autenticità dei dati. Viene usato nei JWT, nell'autenticazione delle API e in TLS.

import hmac, hashlib
mac = hmac.new(key, message, hashlib.sha256).hexdigest()

Attacchi di estensione della lunghezza dell'hash

SHA-2 (costruzione Merkle-Damgård) è vulnerabile agli attacchi di estensione della lunghezza: se conosce H(secret+message), può calcolare H(secret+message+extension) senza conoscere il segreto. HMAC previene questo attacco. SHA-3 non è vulnerabile.

Tabelle arcobaleno e salting

Una tabella arcobaleno precalcola le corrispondenze hash → input per una ricerca rapida. Il salting previene questo problema: aggiungere un valore casuale univoco per ogni input rende ogni hash univoco, rendendo necessario un attacco completo a forza bruta per ogni voce anziché una ricerca.

Alberi di Merkle

Un albero di Merkle è un albero di hash in cui ogni nodo padre contiene l'hash dei propri figli. Viene usato nella blockchain di Bitcoin, in Git e nei registri di trasparenza dei certificati per verificare in modo efficiente grandi insiemi di dati senza dover scaricare tutto.

Scelta dell'hash corretto

Guida alla scelta:

  • Integrità generale/checksum: SHA-256
  • Archiviazione delle password: Argon2id, bcrypt (NON SHA-256 direttamente)
  • Autenticazione dei messaggi: HMAC-SHA-256
  • Firme digitali: SHA-256 o SHA-384 come hash sottostante
  • Da evitare: MD5 e SHA-1 nelle applicazioni di sicurezza

Verifica rapida: funzioni di hash

Quale costruzione previene gli attacchi di estensione della lunghezza e richiede anche una chiave segreta?

Riepilogo della lezione

Le funzioni di hash producono digest di lunghezza fissa a partire da input arbitrari. SHA-256 e SHA-512 sono gli standard attuali. MD5 e SHA-1 sono compromessi per gli usi di sicurezza. HMAC aggiunge una chiave segreta per garantire l'integrità autenticata. Usi Argon2 o bcrypt per le password. Gli alberi di Merkle estendono il calcolo degli hash per verificare in modo efficiente grandi insiemi di dati.

Domande Frequenti

La lezione «Funzioni hash: SHA-256 e oltre» è gratuita?

Sì — il testo completo di «Funzioni hash: SHA-256 e oltre» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Funzioni hash: SHA-256 e oltre»?

Esplorate le proprietà degli hash crittografici: resistenza alle collisioni, resistenza alle preimmagini e applicazioni. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Funzioni hash: SHA-256 e oltre»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?

Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Crittografia simmetrica: AES e cifrari a flusso
  2. Crittografia asimmetrica: RSA e curve ellittiche
  3. Funzioni hash: SHA-256 e oltre
  4. Firme digitali e certificati
← Torna a Cyber Security Academy