У меня есть распределенное приложение Windows - несколько веб-сайтов IIS и windows служб на разных компьютерах.
Мне нужно зашифровать конфиденциальные данные пользователя (например, учетные данные API сторонних производителей), а затем расшифровать до использовать его в приложениях.
Цель этого шифрования - запретить пользователям с ограниченным доступом к базе данных и файловой системе (например, доступ только для чтения) иметь доступ к конфиденциальным учетным данным только администратора.
Очевидно, что мои приложения должны иметь общий секретный ключ (закрытый ключ), чтобы иметь возможность шифровать в одном приложении и расшифровывать в другом.
Я рассматриваю возможность распространения этого ключа в составе установщиков, но такой подход сам по себе сделает установщиков чувствительными. Так как они распространяются через небезопасные «бизнес-каналы», я хочу этого избежать.
Что-то, что я думаю, что я ищу - это подпись на моих установщиках, которая будет проверена целью Windows машина, и которая даст мне доступ к встроенным механизмам для шифрования-дешифрования данных. Что-то вроде ProtectedData.Protect , но с DataProtectionScope
не ограничивается пользователем или машиной. В идеале это должно быть ограничено компанией.