Salta al contenuto
PURPLEDUEL

Base64 non è crittografia: la differenza fra codifica, hash e cifratura

Aggiornato il · 2 min di lettura

Un testo come cGFzc3dvcmQxMjM= sembra incomprensibile, e infatti molti lo scambiano per un segreto ben protetto. In realtà è Base64: una semplice codifica che chiunque può invertire in un secondo, senza chiavi né password. Confondere codifica e crittografia è uno degli errori più comuni, e l'origine di molte fughe di dati.

Tre cose diverse che si confondono

CosaA cosa serveSi può invertire?Serve una chiave?
Codifica (Base64, esadecimale)rappresentare dati in un formato diverso, per esempio trasformare byte binari in testosì, da chiunqueno
Hash (SHA-256, bcrypt)ottenere un'impronta di lunghezza fissa, per verificare integrità o passwordno (si può solo confrontare)no
Cifratura (AES, ChaCha20)rendere i dati illeggibili a chi non ha la chiavesì, ma solo con la chiave giustasì

Base64 nasce per un'esigenza pratica: molti sistemi (email, JSON, intestazioni HTTP) gestiscono bene solo testo, e Base64 permette di infilarci dentro qualsiasi dato, anche binario, usando 64 caratteri «sicuri». Non nasconde nulla: cambia solo l'aspetto.

Un esempio concreto

Prova a decodificare la stringa di prima da una shell Linux:

$ echo 'cGFzc3dvcmQxMjM=' | base64 -d
password123

Nessuna chiave, nessuna fatica: il segreto era in chiaro fin dall'inizio. Lo stesso vale per l'esadecimale, per il cifrario di Cesare (che sposta ogni lettera di un numero fisso) e per le catene di codifiche una sull'altra: sembrano più complicate, ma si smontano strato dopo strato senza alcuna chiave.

Non è un caso teorico. L'autenticazione HTTP «Basic» invia nome utente e password codificati in Base64, perciò va usata solo su connessioni cifrate (HTTPS). I Secret di Kubernetes sono per impostazione predefinita solo codificati in Base64, quindi chi li legge ottiene i valori in chiaro se non è attiva anche la cifratura a riposo. E nei file di configurazione si trovano spesso «password offuscate» che sono semplice Base64.

Come ci si difende

Riconoscere una codifica a colpo d'occhio è una competenza utile sia a chi difende sia a chi gareggia nelle CTF: Base64 ha di solito lettere, cifre, + e /, e spesso termina con uno o due = di riempimento.

Continua a leggere