hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

Padding oracle: decifrare senza la chiave

28 novembre 2025 · 1 min di lettura · #crypto #padding-oracle #cbc

In CBC con padding PKCS#7, il decifrato deve terminare con un padding valido. Se il server risponde in modo diverso quando il padding è errato, hai un oracolo.

Come funziona

CBC fa XOR del blocco decifrato col precedente. Modificando l'ultimo byte del blocco precedente e osservando quando il padding diventa valido, ricavi il byte intermedio, e quindi il plaintext. Ripeti per ogni byte, ogni blocco. Circa 128 richieste per blocco.

P[i] = D(C) XOR C_prev
# controlli C_prev finché il padding torna valido -> ricavi D(C)

Difesa

Usa cifratura autenticata (AES-GCM, ChaCha20-Poly1305): il tag viene verificato prima di decifrare, e un ciphertext manomesso è rifiutato senza rivelare nulla. Se resti su CBC, applica encrypt-then-MAC e verifica il MAC in tempo costante prima del padding. Nessun errore differenziato.


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #1
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti