Я хочу зашифровать некоторые данные сервера с помощью .NET RSACryptoServiceProvider и расшифровать их, когда кто-то вводит ключ / пароль через веб-страницу. Какие у меня есть варианты защиты или, в идеале, даже отказа от хранения закрытого ключа на сервере, избегая при этом того, чтобы пользователь каждый раз предоставлял его все?
- Зашифровать закрытый ключ с помощью симметричной системы и попросить пользователя ввести для этого пароль?
- Хранить большую часть закрытого ключа на сервере, но может ли пользователь ввести его N символов?
- Сохранить его в MachineKeyStore сервера и использовать секретный KeyContainerName в качестве пароля?
- Использовать CspParameters.KeyPassword каким-либо образом, который работает через Интернет?
- Что-то другое?