Interested Article - Data Protection API

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

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

История

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

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

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

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

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

Архитектура

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

Уязвимости

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

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

Применение

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

Примечания

  1. . Дата обращения: 26 июля 2019. 26 апреля 2022 года.
  2. .

Ссылки

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

Источник —

Same as Data Protection API