@nealmcb mi ha chiesto (grazie!) di questo e questa è davvero una grande domanda che non è trattata nel nostro documento. Sono d'accordo sul fatto che non stiamo dando abbastanza consigli su come gestire la sicurezza di DPAPI. Lo aggiusterò scrivendo un post sul blog ma nel frattempo ecco una panoramica di cosa puoi fare:
Nel complesso DPAPI è un'API blackbox che consente di collegare qualsiasi dato segreto, come il database delle password di Firefox, a una password di account Windows. Per decrittografare qualsiasi segreto DPAPI è necessario un hash della password dell'utente (comunque in SHA1 (16_LE) non NTLM).
Quindi, in un attacco offline, l'attaccante deve prima usare la forza bruta (o indovinare) la password dell'utente per ottenere questo hash, quindi una password "strong" è sicuramente la prima buona linea di difesa. Ma ricorda che abbiamo le tabelle arcobaleno per NTLM, quindi anche la sicurezza DPAPI è influenzata da questo.
La crittografia del disco come bitlocker e TrueCrypt sono una buona prima linea di difesa contro questo perché l'hacker ovviamente ha bisogno di decodificare il disco rigido prima di tentare di recuperare i dati DPAPI.
Non è una buona idea credere che EFS risolverà il problema, perché i certificati necessari per decodificare il file sono crittografati con un sistema simile a "DPAPI". Quindi, una volta che la password utente è nota, tutto ciò che l'utente malintenzionato deve eseguire è decrittografare i file EFS recuperando il certificato e quindi decrittografare i dati DPAPI.
Spero che questo chiarisca la situazione. Per il problema CREDHIST, sto pensando di scrivere uno strumento che lo cancelli (almeno la prima N vecchia password).
Fammi sapere se hai altre domande