Я хотел бы знать, как выглядит правильная настройка шифрования в базовом приложении asp. net.
Общая цель, которую я преследую: Разрешить моему приложению принимать набор конфигураций ( который будет зашифрован при необходимости (например, строки подключения) и использовать их. Я не хочу хранить какие-либо секреты в виде простого текста в системе контроля версий.
Мое шифрование выглядит следующим образом:
- Имейте сертификат с закрытым ключом на машине, затем передайте зашифрованный ключ IV + для AES, например, через переменные среды (зашифрованные с помощью открытого ключа c сертификата).
- С помощью секретного ключа сертификата расшифруйте эти настройки, и мы получим go, соответствующий ключ + IV для настройки AES и готовы расшифровать зашифрованные настройки AES.
- Расшифровать обычные настройки с помощью клавиш fre sh.
Я имею в виду, что это работает, секрет открытого текста на снаружи, но, честно говоря, я никогда не изучал то, что ядро asp. net предлагает по этому поводу, и должна быть опция по умолчанию, потому что я, конечно, не единственный, кто занимается сохранением конфигов в секрете, если это необходимо.
Я тоже читал о Azure Keyvault. Это выглядит очень многообещающе.
Примечание: я в основном использую Asp. Net Core в сочетании с Docker на Linux машинах, если это имеет какое-то значение.
Я немного сбит с толку в отношении вариантов, которые я мог бы использовать "из коробки" в Asp. Net Core. Может кто-нибудь дать мне какой-нибудь совет относительно стандартного способа сделать это?