Bene, in primo luogo, so solo di TrueCrypt. La password non è realmente hash, ma piuttosto invia tramite un algoritmo di derivazione della chiave (ok, a mio parere, è solo un diverso algoritmo di hashing, quindi continuerò a chiamarlo hash). Quindi, per rispondere alla tua prima domanda:
Sì, se si conosce l'hash della password, sarebbe possibile decodificare i dati. Credo che sia un grosso rischio potenziale in tutte le implementazioni SED, e mai veramente soddisfacente comunicato dai venditori.
TrueCrypt utilizza un approccio diverso. In TC, prima viene generata la chiave di crittografia per la crittografia simmetrica dei dati (utilizzando dati randomizzati). Quindi, la password "hash" viene utilizzata per crittografare la chiave di crittografia. Il metodo di derivazione della chiave e la chiave di crittografia crittografata sono memorizzati nell'intestazione del volume, ma non nella stessa password con hash. Se si inserisce una password ora per sbloccare l'unità, questa password viene "cancellata" in base al metodo di derivazione della chiave utilizzato per il volume. Con il risultato, TC decodificherà l'intestazione e cercherà un valore specifico, semplificando un "OK". Quindi se decrittografia con la password fornita restituisce il bit "OK", TrueCrypt sa che la password è corretta. Quindi non è necessario memorizzare la password con hash. L'hash verrà semplicemente generato ogni volta che proverai a sbloccare e sfidare un valore conosciuto.
Ora, come detto prima, riguardo ai SED non ne sono così sicuro e spesso dubito che il produttore pensi così lontano. Un whitepaper di Seagate sui loro SED suggerisce almeno che la password con hash viene memorizzata "da qualche parte". Non è chiaro se sia possibile acquisire questo hash con lo smantellamento dell'unità o l'hacking dell'hardware.