Могут ли пользователи настольных приложений получить ключ из хранилища ключей CNG, расположенного на сервере LAN
Я пытаюсь разобраться в азах КПГ. Моя цель - обеспечить постоянный долгосрочный симметричный ключ, аналогично ситуации в этом вопросе. Если симметричный ключ может быть зашифрован и сохранен в виде зашифрованного текста в приложенииapp.config
и затем быть незашифрованным во время выполнения, его не нужно было бы встраивать в простой запутанной форме в саму программу. Итак, у меня есть пара основных вопросов.
Могут ли пользователи настольного приложения.NET с полным доверием (опубликованного через ClickOnce на сервере локальной сети и настроенного как "доступное только в Интернете")
a) получить асимметричный закрытый ключ из хранилища ключей CNG, находящегося на сервере LAN, на котором было опубликовано приложение, и использовать этот ключ для расшифровки зашифрованной версии симметричного ключа?
или
б) отправить асимметрично зашифрованный симметричный ключ провайдеру шифрования CNG, находящемуся на этом сервере локальной сети, и получить этот симметричный ключ обратно в незашифрованной текстовой форме, чтобы он был готов к использованию?
Или
c) должно ли хранилище ключей всегда храниться на машине, на которой выполняется код, то есть должен ли каждый пользователь иметь копию этого закрытого асимметричного ключа на своем ПК?
Наконец, если можно каким-либо образом предоставить пользователю асимметричный ключ, как вызвать его как ключ, необходимый для расшифровки определенного раздела app.config
?