Проверка соответствия FIPS во время компиляции - PullRequest
1 голос
/ 12 марта 2020

У меня большой C#. NET проект, который я должен превратить в FIPS-совместимый , поэтому мне нужно найти и изменить каждый фрагмент кода, который вызывает любой несовместимый API.

Если я включаю FipsAlgorithmPolicy в реестре, я получаю исключения времени выполнения, такие как "This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.", что нормально, но проверка всей базы кода путем тестирования занимает много времени и ненадежна.

Есть ли способ заставить Visual Studio 2017/2019 выдавать ошибку или предупреждение во время компиляции для каждого вызова API без жалоб?

1 Ответ

1 голос
/ 12 марта 2020

Анализаторы сканирования кода безопасности Roslyn имеют правила для всех слабых криптографических и случайных классов. Это должно помочь вам на вашем пути :). Пакет Microsoft Code Analysis также поддерживает эти типы проверок.

Вы можете отредактировать файлы своего набора правил, чтобы эти правила приводили к ошибке, если хотите.

enter image description here

Или вы можете добавить их как ссылки на пакеты NuGet, чтобы они запускались даже на серверах сборки.

  <ItemGroup>
    <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8"/>
    <PackageReference Include="SecurityCodeScan" Version="3.5.0"/>
  </ItemGroup>

Просто помните, что если Алгоритм sh используется по-разному (например, коммит ha sh в git), он может быть не совместим с FIPS для хранения, шифрования и проверки данных, но все еще является действительным кодом.

...