API защиты данных - Data Protection API
DPAPI (интерфейс программирования приложений для защиты данных) это простой криптографический интерфейс прикладного программирования доступен как встроенный компонент в Windows 2000 и более поздние версии Майкрософт Виндоус операционные системы. Теоретически API защиты данных может обеспечить симметричное шифрование любых данных; на практике его основное использование в операционной системе Windows - симметричное шифрование асимметричных закрытых ключей с использованием секрета пользователя или системы в качестве значительного вклада энтропии. Подробный анализ внутренней работы DPAPI был опубликован в 2011 г. Бурштейн и другие.[1]
Почти для всех криптосистемы, одна из самых сложных задач - это «управление ключами» - в частности, как безопасно хранить ключ дешифрования. Если ключ хранится в простой текст, то любой пользователь, имеющий доступ к ключу, сможет получить доступ к зашифрованным данным. Если ключ должен быть зашифрован, нужен другой ключ и так далее. DPAPI позволяет разработчикам шифровать ключи, используя симметричный ключ, полученный из секретов входа пользователя в систему, или, в случае системного шифрования, используя секреты аутентификации домена системы.
Ключи DPAPI, используемые для шифрования ключей RSA пользователя, хранятся в % APPDATA% MicrosoftProtect {SID}
каталог, где {SID} - это Идентификатор безопасности этого пользователя. Ключ DPAPI хранится в том же файле, что и главный ключ, который защищает личные ключи пользователей. Обычно это 64 байта случайных данных.
Свойства безопасности
DPAPI не хранит никаких постоянных данных для себя; вместо этого он просто получает простой текст и возвращается зашифрованный текст (или наоборот).
Безопасность DPAPI зависит от способности операционной системы Windows защищать главный ключ и ЮАР закрытые ключи от компрометации, которая в большинстве сценариев атак наиболее сильно зависит от безопасности учетных данных конечного пользователя. Основной ключ шифрования / дешифрования выводится из пароля пользователя PBKDF2 функция.[2] Конкретные данные бинарные большие объекты может быть зашифрован таким образом, чтобы соль добавляется и / или требуется внешний вводимый пользователем пароль (также известный как «Strong Key Protection»). Использование соли является вариантом реализации, то есть находится под контролем разработчика приложения, и не контролируется конечным пользователем или системным администратором.
Делегированный доступ к ключам может быть предоставлен с помощью COM + объект. Это позволяет IIS веб-серверы использовать DPAPI.
Использование DPAPI программным обеспечением Microsoft
Хотя DPAPI реализован не во всех продуктах Microsoft повсеместно, использование DPAPI в продуктах Microsoft увеличивалось с каждой последующей версией Windows. Однако многие приложения от Microsoft и сторонних разработчиков по-прежнему предпочитают использовать собственный подход к защите или только недавно перешли на использование DPAPI. Например, Internet Explorer версии 4.0-6.0, Outlook Express и MSN Explorer использовал старый API защищенного хранилища (PStore) для хранения сохраненных учетных данных, таких как пароли и т. д. Internet Explorer 7 теперь защищает сохраненные учетные данные пользователя с помощью DPAPI.[3]
- Изображение пароля, PIN-кода и отпечатка пальца в Windows 8
- Шифрованная файловая система в Windows 2000 и новее
- SQL Server Прозрачное шифрование данных (TDE) Шифрование служебного мастер-ключа[4]
- Internet Explorer 7, обе в автономной версии доступны для Windows XP и в интегрированных версиях, доступных в Виндоус виста и Windows Server 2008
- Почта Windows и Почта Windows Live
- Перспективы для S / MIME
- Информационные службы Интернета за SSL / TLS
- Windows Услуги по управлению правами клиент v1.1 и новее
- Windows 2000 а позже для EAP / TLS (VPN аутентификация) и 802.1x (Вай фай аутентификация)
- Windows XP и более поздние версии для сохраненных имен пользователей и паролей[5] (он же Credential Manager)
- .NET Framework 2.0 и выше для System.Security.Cryptography.ProtectedData[6]
- Проверка подлинности Microsoft.Owin (Katana) по умолчанию при самостоятельном размещении (включая проверку подлинности файлов cookie и токены OAuth)[7][8]
Рекомендации
- ^ Бурштейн, Эли; Пикод, Жан Мишель (2010). «Восстановление секретов Windows и сертификатов EFS в автономном режиме». WoOT 2010. Usenix.
- ^ «Восстановление пароля Windows - анализ мастер-ключа DPAPI». Passcape.com. Получено 2013-05-06.
- ^ Михаэль Фелькер (8 декабря 2006 г.). «Проблемы управления паролями в IE и Firefox, часть первая». SecurityFocus.com, Symantec.com. Получено 2010-03-28.
- ^ «Иерархия шифрования». Msdn.microsoft.com. Получено 14 октября 2017.
- ^ «Что нового в системе безопасности для Windows XP Professional и Windows XP Home Edition». Technet.microsoft.com. Получено 14 октября 2017.
- ^ «Класс ProtectedData (System.Security.Cryptography)». Msdn2.microsoft.com. Получено 14 октября 2017.
- ^ «Свойство CookieAuthenticationOptions.TicketDataFormat (Microsoft.Owin.Security.Cookies)». Получено 2015-01-15.
- ^ «Свойство OAuthAuthorizationServerOptions.AccessTokenFormat (Microsoft.Owin.Security.OAuth)». Получено 2018-11-26.
внешняя ссылка
- Технический документ Windows Data Protection API (DPAPI) от NAI Labs
- Шифрование данных с помощью DPAPI
- Используйте DPAPI для шифрования и дешифрования данных
- Как: использовать DPAPI (хранилище пользователей) из ASP.NET 1.1 с корпоративными службами
- System.Security.Cryptography.ProtectedData в .NET Framework 2.0 и более поздних версиях
- Обсуждение использования удаленного протокола MS BackupKey с помощью DPAPI для защиты секретов пользователей
- Магазин Windows PStore