Как хранить ключ шифрования .NET

1

Мое приложение.NET содержит некоторое шифрование RSA. И мой вопрос: where to store the keys?

После немного googleing я не вижу никаких реальных предложений. То, что я видел

  1. Разделите их и сохраните в разных папках.
  2. Используйте ProtectedData. Но если я использую защищенные данные, я все равно должен хранить зашифрованный результат ключа. Еще тот же вопрос, где его хранить?

Есть ли лучшие варианты?

  • 2
    Кого вы пытаетесь удержать от чтения зашифрованных данных. Способ решения проблемы зависит от модели угрозы (а для некоторых моделей угроз это не решаемо)
  • 0
    Недостаточно информации, чтобы ответить - как сказал Скотт, требуется модель угрозы.
Теги:
encryption

1 ответ

1

Стандартный метод хранит ключ в ключевом контейнере, net имеет API для этого. См. Практическое руководство. Сохранение асимметричных ключей в контейнере ключей. Вы можете хранить контейнер ключей как закрытый, в этом случае только вы имеете доступ к ключу. Если вы хотите разделить ключ между разными пользователями или программой на своем компьютере, вы должны использовать контейнер ключа уровня машины. Для хранения на уровне машины вам нужно только добавить в параметры контейнера флаг UseMachineKeyStore

CspParameters cp = new CspParameters();
cp.KeyContainerName = ContainerName;
cp.Flags = UseMachineKeyStore 

Помните, что в любое время, когда вы используете хранилище ключей машины, вам нужно установить флаг. Эта конфигурация имеет определенный уровень безопасности, насколько надежна информация. Вы можете ограничить доступ к контейнеру создания, используя правила доступа.

Я надеюсь, что эта информация будет полезна для вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню