Data Protection API (DPAPI) este o interfață de programare a aplicațiilor criptografice din familia de sisteme de operare Windows care oferă protecție ( confidențialitate ) datelor prin criptarea acestora.
Pentru aproape toate criptosistemele, una dintre cele mai dificile sarcini este gestionarea cheilor . În special, stocarea în siguranță a cheilor. Dacă cheia este stocată în text simplu, atunci orice utilizator cu acces la cheie poate accesa și datele criptate. DPAPI permite dezvoltatorilor să cripteze date private sau chei de criptare folosind o cheie simetrică derivată din parola de conectare a proprietarului sau, în cazul criptării sistemului, secretul de autentificare al domeniului .
În 2005, Passcape Software a lansat prima aplicație comercială care emulează complet DPAPI în modul offline, adică. fără ca utilizatorul să se conecteze la cont.
În 2010, la Black Hat DC 2010 , Elie Bursztein și Jean-Michel Picode au prezentat o analiză DPAPI numită Reversing DPAPI and Stealing Windows Secrets Offline . Pe lângă informarea lor, Bursztein și Picode au lansat DPAPIck (link indisponibil) , un utilitar open source care decriptează și datele DPAPI offline.
În Windows 8 , Microsoft a schimbat modul în care funcționează logica DPAPI. Acum pot fi folosite mai multe chei personalizate pentru a decripta cheia principală DPAPI.
În 2012, Passcape Software a publicat pe blogul lor un articol detaliat [1] despre logica internă a DPAPI și a introdus un set de instrumente pentru decriptarea și analiza completă a DPAPI offline. Setul de utilități exploatează erori și vulnerabilități vechi și este pe deplin compatibil cu Windows 8.
Cu Windows 10 , Microsoft a adăugat suport pentru cheile de criptare bazate pe cloud pentru conturile Microsoft.
DPAPI include funcții pentru criptarea și decriptarea datelor (CryptProtectData și CryptUnprotectData), precum și criptarea și decriptarea memoriei. De exemplu, pentru a preveni vizualizarea parolelor stocate în memorie atunci când acestea sunt în fișierul de paginare . Funcțiile DPAPI efectuează un apel RPC local către serverul local de autentificare de securitate , care la rândul său apelează biblioteca CryptoAPI pentru a efectua operația în contextul său de securitate. Pentru a proteja datele, poate fi folosită parola de conectare a utilizatorului sau poate fi solicitată o parolă diferită.
Prima implementare a DPAPI conținea o eroare logică critică care putea decripta toate obiectele DPAPI criptate fără a cunoaște parola proprietarului.
Windows 10 are un defect critic în implementarea DPAPI [2] care permite decriptarea datelor criptate dpapi ale ultimului cont de utilizator activ.
DPAPI a devenit foarte răspândit și este folosit în multe aplicații și subsisteme Windows: în sistemul de criptare a fișierelor, pentru stocarea parolelor rețelei wireless, în managerul de cont, Internet Explorer , Google Chrome , Microsoft Outlook , Skype, Windows Vault, pentru protejarea cheilor RSA , etc. .d.
Windows Data Protection (engleză) (downlink) . Bibliotecă MSDN . Microsoft (octombrie 2001). Consultat la 27 iulie 2012. Arhivat din original la 30 septembrie 2012.