DPAPI автоматически делает Dynamic Salt? - PullRequest
0 голосов
/ 15 февраля 2019

Я изучаю использование API защиты данных Windows (DPAPI) для шифрования некоторых данных.У меня есть одно требование - использовать динамическую соль при шифровании значений.

Я заметил, что при тестировании, если я шифрую одну и ту же строку несколько раз, я получаю другой результат.Это при использовании той же строки, нулевого значения энтропии и той же области видимости.

Это заставляет меня чувствовать, как будто уже есть динамическая соль.Я не вижу никакой документации, подтверждающей это.

Вот метод, который я вызываю https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.protecteddata.protect?view=netframework-4.7.2.

Уже обрабатывает ли DPAPI динамическое соление?Если нет, то что заставляет зашифрованные значения каждый раз меняться?

1 Ответ

0 голосов
/ 15 февраля 2019

Однако MasterKey явно не используется для защиты данных.Вместо этого генерируется симметричный сеансовый ключ на основе MasterKey, некоторых случайных данных и любой дополнительной энтропии, если приложение решает предоставить ее.Именно этот ключ сеанса используется для защиты данных.

[...]

Ключ сеанса никогда не сохраняется.Вместо этого DPAPI сохраняет случайные данные, которые он использовал для генерации ключа, в непрозрачных данных BLOB.Когда данные BLOB передаются обратно в DPAPI, случайные данные используются для повторного получения ключа и снятия защиты данных.

https://msdn.microsoft.com/en-us/library/ms995355.aspx

Эти случайные данные включены взашифрованные данные действуют как соль.

Назначение параметра optionalEntropy состоит в том, чтобы позволить отдельным приложениям защитить себя от других приложений, работающих под той же учетной записью пользователя, и не требуется повышать эффективность соленияуже выполнено.

...