Как использовать Rfc2898DeriveBytes с SHA256Cng - PullRequest
0 голосов
/ 04 октября 2019

Нам необходим алгоритм хэширования паролей, совместимый с FIPS 140-2 и FIPS 140-3. (FIPS 140-3 вступил в силу 22.09.2009. Тестирование начнется 22.09.2020. Тестирование FIPS 140-2 продолжится как минимум до 22.09.2021, а может и позже. Поэтому мы хотим соблюдатьFIPS 140-2 и FIPS 140-3.)

Мы выбрали Rfc2898DeriveBytes, он же PBKDF2. Однако, если мы предоставим HashAlgorithmName.SHA256 конструктору Rfc2898DeriveBytes, то под классом HMACSHA256 будет использоваться SHA256CryptoServiceProvider. (См. Справочный источник .) Этого достаточно для достижения соответствия FIPS 140-2.

Однако мы хотим использовать класс SHA256Cng, поскольку этоSHA-2 следующего поколения на основе BCrypt, который, как я предполагаю, позволил бы нам достичь соответствия FIPS 140-3.

(я знаю, что я делаю много предположений здесь, и я определенно неэксперт по безопасности.)

Кто-нибудь знает, возможно ли использовать Rfc2898DeriveBytes с SHA256Cng? Если нет, то каков наилучший способ хеширования паролей PBKDF2 с помощью фундаментальных алгоритмов, совместимых с FIPS 140-3?

...