Skip to main content
  1. Comandi/

sha256sum - SHA-256 checksum

·4 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Calcola l'hash SHA-256 di un file o di un flusso di dati. L'hash e' una stringa esadecimale di 64 caratteri che cambia completamente anche se viene modificato un solo bit del file originale. Permette di verificare che un file non sia stato alterato durante il trasferimento o nel tempo.

Sintassi
#

sha256sum [opzioni] file

Comandi essenziali
#

ComandoFlagSignificato flagCosa fa
sha256sum file.isoCalcola l'hash del file
sha256sum file1 file2Calcola hash di piu' file
sha256sum -b file.iso-bbinaryModalita' binaria — consigliata per ISO e immagini
sha256sum -c checksum.txt-ccheckVerifica i file elencati nel file di checksum
sha256sum -c --ignore-missing checksum.txt--ignore-missingVerifica solo i file presenti, ignora quelli mancanti
sha256sum * > checksum.txtCalcola hash di tutti i file e salva in checksum.txt

Come funziona — l'hash come impronta digitale
#

File originale (1GB ISO)
    SHA-256 algorithm
    hash: a1b2c3d4e5f6...  (64 caratteri esadecimali)

Se anche un solo byte del file cambia, l'hash cambia completamente. Due file identici producono sempre lo stesso hash. Due file diversi (con probabilita' astronomicamente alta) producono hash diversi.

sha256sum ubuntu.iso
# a1b2c3d4...  ubuntu.iso

# Modifica un byte qualsiasi
sha256sum ubuntu-modificata.iso
# f9e8d7c6...  ubuntu-modificata.iso
# completamente diverso

Verifica di un download
#

# Scenario: scarichi un'ISO e vuoi verificare che non sia corrotta

# 1. Calcola l'hash dell'ISO scaricata
sha256sum -b linuxmint-22-cinnamon-64bit.iso

# 2. Confronta con l'hash pubblicato sul sito ufficiale
# Output:
# 3d3a99c9...  linuxmint-22-cinnamon-64bit.iso

# Se corrisponde → download integro
# Se diverso → file corrotto o modificato, riscarica

Verifica con file di checksum
#

# Molti progetti forniscono un file sha256sum.txt con gli hash di tutti i file

# Struttura del file sha256sum.txt:
# a1b2c3...  file1.iso
# d4e5f6...  file2.iso
# 789abc...  file3.tar.gz

# Verifica tutti i file presenti
sha256sum -c sha256sum.txt

# Output:
# file1.iso: OK
# file2.iso: FAILED
# file3.tar.gz: OK
# sha256sum: WARNING: 1 computed checksum did NOT match

# Verifica solo i file che hai scaricato (ignora quelli mancanti)
sha256sum -c --ignore-missing sha256sum.txt

Uso in forensics — catena di custodia
#

# Acquisizione forense con dd + verifica hash
sudo dd if=/dev/sdb of=/evidence/disk.img bs=4M status=progress

# Calcola hash del disco originale
sudo sha256sum /dev/sdb > /evidence/hash_originale.txt

# Calcola hash della copia
sha256sum /evidence/disk.img > /evidence/hash_copia.txt

# Confronta
diff /evidence/hash_originale.txt /evidence/hash_copia.txt
# Nessun output = hash identici = copia forense verificata

L'hash identico prova in tribunale che la copia non e' stata alterata.

Baseline dei file di sistema
#

# Crea una baseline di hash per file critici
sha256sum /etc/passwd /etc/shadow /etc/sudoers > /root/baseline.txt

# Verifica in un secondo momento se qualcosa e' cambiato
sha256sum -c /root/baseline.txt
# /etc/passwd: OK
# /etc/shadow: FAILED  ← qualcuno ha modificato shadow
# /etc/sudoers: OK

sha256sum vs md5sum
#

md5sum      → hash da 32 caratteri, INSICURO — collisioni note
sha1sum     → hash da 40 caratteri, DEPRECATO — vulnerabile
sha256sum   → hash da 64 caratteri, SICURO — standard attuale
sha512sum   → hash da 128 caratteri, piu' sicuro ma piu' lento

Per verifica di integrità usa sempre sha256sum o superiore. md5sum e' utile solo per compatibilita' con sistemi legacy.

Combinazioni utili
#

# Hash di un singolo file e salvalo
sha256sum file.tar.gz | tee file.tar.gz.sha256

# Verifica rapida di due file identici
sha256sum file1 file2
# Se le due righe iniziano con lo stesso hash → file identici

# Hash di tutto il contenuto di una directory
find /etc -type f -exec sha256sum {} \; > /root/etc_baseline.txt

Scenario Reale
#

Un analista deve verificare che i file di configurazione critici non siano stati modificati dopo un incidente. Aveva creato una baseline con sha256sum prima dell'incidente. Esegue sha256sum -c baseline.txt e trova che /etc/cron.d/backup ha un hash diverso — l'attaccante ha aggiunto un cron job malevolo.

Dove l'ho usato
#

  • Verifica integrita' copie forensi con dd

Note personali
#

Important

Scarica sempre il file di checksum dal sito ufficiale su una connessione separata dal file stesso. Se scarichi sia il file che il checksum dallo stesso server compromesso, l'attaccante puo' aver modificato entrambi.

Collegato a
#

  • system — categoria
  • incidents — categoria
  • crypto — categoria
  • dd — sha256sum verifica le copie create con dd
  • cryptography — concetto di hash crittografico

Related