API защиты данных
Интерфейс программирования приложений для защиты данных ( DPAPI ) — это простой криптографических программный интерфейс приложений , доступный в качестве встроенного компонента в Windows 2000 и более поздних версиях Microsoft Windows операционных систем . Теоретически API защиты данных может обеспечить симметричное шифрование данных любого типа; на практике его основным применением в операционной системе Windows является выполнение симметричного шифрования асимметричных закрытых ключей с использованием секрета пользователя или системы в качестве значительного вклада в энтропию. Подробный анализ внутренней работы DPAPI был опубликован в 2011 году Bursztein et al. [ 1 ]
Почти для всех криптосистем одной из самых сложных задач является « управление ключами », в частности, как безопасно хранить ключ дешифрования. Если ключ хранится в виде обычного текста , то любой пользователь, имеющий доступ к ключу, сможет получить доступ к зашифрованным данным. Если ключ необходимо зашифровать, потребуется другой ключ и так далее. DPAPI позволяет разработчикам шифровать ключи с помощью симметричного ключа, полученного из секретов входа пользователя, или, в случае системного шифрования, с использованием секретов аутентификации домена системы.
пользователя, Ключи DPAPI, используемые для шифрования ключей RSA хранятся в папке %APPDATA%\Microsoft\Protect\{SID}
каталог, где {SID} — идентификатор безопасности этого пользователя. Ключ DPAPI хранится в том же файле, что и главный ключ, который защищает личные ключи пользователей. Обычно это 64 байта случайных данных.
Свойства безопасности
[ редактировать ]DPAPI не хранит для себя никаких постоянных данных; вместо этого он просто получает открытый текст и возвращает зашифрованный текст (или наоборот).
Безопасность DPAPI зависит от способности операционной системы Windows защищать главный ключ и закрытые ключи RSA от компрометации, что в большинстве сценариев атак наиболее сильно зависит от безопасности учетных данных конечного пользователя. Основной ключ шифрования/дешифрования получается из пароля пользователя с помощью функции PBKDF2 . [ 2 ] Отдельные большие объекты двоичных данных могут быть зашифрованы таким образом, что добавляется соль и/или требуется внешний пароль, запрашиваемый пользователем (также известный как «Надежная защита ключа»). Использование соли является опцией для каждой реализации, т. е. находится под контролем разработчика приложения, и не контролируется конечным пользователем или системным администратором.
Делегированный доступ можно предоставить ключам с помощью объекта COM+ . Это позволяет IIS веб-серверам использовать DPAPI.
Резервные ключи Active Directory
[ редактировать ]Когда компьютер является членом домена, DPAPI имеет механизм резервного копирования, позволяющий снять защиту данных в случае потери пароля пользователя, который называется «Роуминг учетных данных». При установке нового домена на контроллере домена генерируется пара открытого и закрытого ключей, связанная с DPAPI. Когда на клиентской рабочей станции создается главный ключ, клиент связывается посредством аутентифицированного вызова RPC с контроллером домена, чтобы получить копию открытого ключа домена. Клиент шифрует главный ключ открытым ключом контроллера домена. Наконец, он сохраняет этот новый резервный главный ключ в своем каталоге AppData, как и традиционное хранилище главных ключей.
Использование DPAPI программным обеспечением Microsoft
[ редактировать ]Хотя DPAPI не реализован повсеместно во всех продуктах Microsoft, использование DPAPI в продуктах Microsoft увеличивается с каждой последующей версией Windows. Однако многие приложения от Microsoft и сторонних разработчиков по-прежнему предпочитают использовать собственный подход к защите или лишь недавно перешли на использование DPAPI. Например, Internet Explorer версий 4.0–6.0, Outlook Express и MSN Explorer использовали старый API Protected Storage (PStore) для хранения сохраненных учетных данных, таких как пароли и т. д. Internet Explorer 7 теперь защищает сохраненные учетные данные пользователя с помощью DPAPI. [ 3 ]
- Графический пароль, PIN-код и отпечаток пальца в Windows 8
- Шифрование файловой системы в Windows 2000 и более поздних версиях
- SQL Server (TDE) прозрачного шифрования данных Шифрование главного ключа службы [ 4 ]
- Internet Explorer 7 , как в автономной версии, доступной для Windows XP , так и в интегрированной версии, доступной в Windows Vista и Windows Server 2008.
- Microsoft Край
- Почта Windows и Почта Windows Live
- Перспективы для S/MIME
- Информационные службы Интернета для SSL/TLS
- Windows Клиент служб управления правами версии 1.1 и более поздних версий
- Windows 2000 и более поздние версии для EAP/TLS ( проверка подлинности VPN ) и 802.1x ( проверка подлинности Wi-Fi )
- Windows XP и более поздние версии для сохраненных имен пользователей и паролей [ 5 ] (он же менеджер учетных данных)
- .NET Framework 2.0 и более поздних версий для System.Security.Cryptography.ProtectedData [ 6 ]
- Аутентификация Microsoft.Owin (Katana) по умолчанию при самостоятельном размещении (включая аутентификацию файлов cookie и токены OAuth ) [ 7 ] [ 8 ]
Ссылки
[ редактировать ]- ^ Бурштейн, Эли; Пикод, Жан Мишель (2010). «Восстановление секретов Windows и сертификатов EFS в автономном режиме» . ВОТ 2010 . Усеникс.
- ^ «Восстановление пароля Windows – анализ главного ключа DPAPI» . Пасскейп.com . Проверено 6 мая 2013 г.
- ^ Михаэль Фелькер (8 декабря 2006 г.). «Проблемы управления паролями в IE и Firefox, часть первая» . SecurityFocus.com , Symantec.com . Проверено 28 марта 2010 г.
- ^ «Иерархия шифрования» . 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)» . Проверено 15 января 2015 г.
- ^ «Свойство OAuthAuthorizationServerOptions.AccessTokenFormat (Microsoft.Owin.Security.OAuth)» . Проверено 26 ноября 2018 г.
Внешние ссылки
[ редактировать ]- Как работает DPAPI от Process Thief (FR)
- Технический документ Windows Data Protection API (DPAPI), подготовленный NAI Labs
- Шифрование данных с помощью DPAPI
- Практическое руководство. Использование DPAPI (хранилище пользователей) из ASP.NET 1.1 с корпоративными службами.
- System.Security.Cryptography.ProtectedData в .NET Framework 2.0 и более поздних версиях
- Обсуждение использования DPAPI удаленного протокола MS BackupKey для защиты пользовательских секретов
- Windows PSStore