Come posso mitigare la minaccia che DPAPick pone ai miei dati protetti DPAPI?

12

L'API di protezione dei dati di Windows (DPAPI) è il metodo consigliato per archiviare i segreti su sistemi Windows (come le password di database richieste dalle applicazioni ASP.Net).

DPAPick è stato presentato a BlackHat DC 2010 e WOOT'10, con particolare attenzione al recupero di password passate e certificati di file system crittografati. L'estratto della presentazione rivendica la decrittografia di tutti i dati crittografati DPAPI. Poiché si tratta di un attacco offline, anche i controlli di accesso al registro di Windows sono inefficaci.

Quali sono i limiti sull'efficacia di DPAPick e come possono essere sfruttati i suoi punti di vista e i suoi punti deboli per proteggere meglio i dati che sto memorizzando sulle workstation per le mie applicazioni?

    
posta Bell 22.02.2011 - 14:39
fonte

3 risposte

11

@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

    
risposta data 01.03.2011 - 14:27
fonte
6

Questo è principalmente un reverse engineering dell'algoritmo, dal momento che l'API ha utilizzato la protezione da oscurità e non ha fornito un set completo di primitive.

Quindi sembra che questo prima di tutto amplifichi la necessità di usare una password di login davvero buona, resistente agli attacchi del dizionario.

Inoltre, non utilizzare mai una password debole in quanto espone gli altri a cracking facile.

Stai sempre attento alla possibilità di una backdoor, come descritto nel documento: Elie - Inversione di DPAPI e furto di segreti di Windows offline .

E fai pressioni su Microsoft per accettare l'offerta da parte delle persone di criptaggio più qualificate che hanno fatto questa analisi gratuita per loro. Cioè aggiustare il loro meccanismo CREDHIST rotto. Oppure passa a un altro schema di archiviazione segreto ....

    
risposta data 25.02.2011 - 07:28
fonte
3

Fornisco un'esposizione A, un PC con un sistema operativo Windows installato e un account utente configurato e alcuni dati che sono stati "protetti" con DPAPI per conto dell'utente.

Quindi mostra B, l'utente stesso.

Mettiamo le due entità insieme in una stanza, con un po 'di energia elettrica ma senza una rete esterna. L'utente B alimenta la macchina A, quindi procede a digitare la sua password ed effettua l'accesso. E poi l'utente B accede ai dati protetti.

Pertanto , il contenuto integrale dello stato della macchina (cioè il suo disco rigido) e la conoscenza della password dell'utente sono sufficienti per recuperare i dati. Corollario: se un attaccante può mettere le mani sullo stato della macchina (ad es. ha rubato l'intero laptop), allora può eseguire un attacco dizionario offline sulla password dell'utente, che può rendere arbitrariamente veloce lanciando più hardware.

Il resto è solo il solito circo di sicurezza per oscurità, reverse engineering e una lunga serie di sigle dall'aspetto serio per esorcizzare la minaccia di Evil Hackers ™. La situazione di attacco del dizionario offline può essere mitigata dalle solite parole d'ordine di hashing e fischietti (vedi bcrypt ). Un approccio più completo userebbe un dispositivo antimanomissione, ad es. una smart card esterna o un TPM , che concettualmente priva l'attaccante di una parte cruciale dello stato della macchina; ma questo è più costoso e ha un impatto sul recupero dei dati in caso di guasto dell'hardware.

    
risposta data 03.02.2013 - 15:55
fonte

Leggi altre domande sui tag