Data Protection API

Data Protection API (DPAPI) — криптографический интерфейс программирования приложений в ОС семейства Windows, обеспечивающий защиту (конфиденциальность) данных путём их шифрования.

Почти для всех криптосистем одной из самых сложных задач является управление ключами. В частности, безопасного хранения ключей. Если ключ хранится в виде обычного текста, то любой пользователь, имеющий доступ к ключу, может получить доступ и к зашифрованным данным. DPAPI позволяет разработчикам шифровать приватные данные или ключи шифрования, используя симметричный ключ, полученный на основе пароля на вход владельца или, в случае системного шифрования, на основе секрета аутентификации домена.

История

В 2005 году Passcape Software выпустила первое коммерческое приложение, полностью эмулирующее работу DPAPI в офлайн-режиме, т. е. без входа пользователя в учетную запись.

В 2010 на Black Hat DC 2010 году Elie Bursztein и Jean-Michel Picod представили анализ DPAPI под названием Reversing DPAPI and Stealing Windows Secrets Offline. В дополнение к их брифингу Bursztein и Picod выпустили DPAPIck (недоступная ссылка) - утилиту с открытым исходным кодом, которая также расшифровывает данные DPAPI в офлайн-режиме.

В Windows 8 Microsoft изменила способ работы логики DPAPI. Теперь несколько пользовательских ключей можно использовать для расшифровки мастер-ключа DPAPI.

В 2012 году Passcape Software опубликовала в своем блоге подробную статью[1] о внутренней логике DPAPI и представила набор инструментов для полной автономной расшифровки и анализа DPAPI. Набор утилит эксплуатирует старые ошибки и уязвимости и полностью совместим с Windows 8.

В Windows 10 Microsoft добавила поддержку облачных ключей шифрования для учетных записей Microsoft.

Архитектура

DPAPI включает в себя функции: шифрования и расшифровки данных (CryptProtectData и CryptUnprotectData), а также шифрования и расшифровки памяти. Например, для предотвращения просмотра хранимых в памяти паролей при нахождении их в файле подкачки. Функции DPAPI выполняют локальный RPC-вызов сервера проверки подлинности локальной системы безопасности, который в свою очередь вызывает библиотеку CryptoAPI для выполнения операции в своём контексте безопасности. Для защиты данных может использоваться пароль пользователя для входа в систему или запрашиваться другой пароль.

Уязвимости

Первая реализация DPAPI содержала критическую ошибку в логике, с помощью которой можно было расшифровать все зашифрованные объекты DPAPI без знания пароля владельца.

Windows 10 имеет критический недостаток в реализации DPAPI[2], который позволяет расшифровывать dpapi-зашифрованные данные последней активной учетной записи пользователя.

Применение

DPAPI получил очень широкое распространение и применяется во многих приложениях и подсистемах Windows: в системе шифрования файлов, для хранения беспроводных паролей сети, в диспетчере учетных записей, Internet Explorer, Google Chrome, Microsoft Outlook, Skype, Windows Vault, для защиты RSA ключей и т.д.

Примечания

  1. Секреты DPAPI. Дата обращения: 26 июля 2019. Архивировано 26 апреля 2022 года.
  2. Уязвимость в системе безопасности DPAPI Windows 10.

Ссылки

Windows Data Protection (англ.). MSDN Library. Microsoft (октябрь 2001). Дата обращения: 27 июля 2012. Архивировано из оригинала 30 сентября 2012 года.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.