Я разрабатываю приложение интрасети (С#), которое использует некоторые данные (локальные для веб-сервера), которые мы хотели бы сохранить конфиденциальными. Эти данные зашифрованы (AES), используя устаревший репозиторий данных. Мы не можем полностью предотвратить физический доступ к машине.
Ясно, что мы никогда не будем иметь совершенной безопасности здесь. Тем не менее, мы хотим сделать все возможное, чтобы кто-либо мог получить несанкционированный доступ к данным.
Вопрос в том, как лучше хранить ключ. Шифрование его на основе определенного идентификатора машины является опцией, но эта информация будет легко доступна для всех, кто использует диагностический инструмент на машине.
Кодирование в приложении - это вариант (это одно приложение). Однако сборки .NET довольно легко декомпилировать. Итак, было бы лучше обфускать его, использовать средство шифрования, скомпилировать его?
Или есть вариант, который мне не хватает?
Просто так мы поняли, я знаю, что это довольно потерянное дело, если кто-то определен, но мы стараемся сделать это как можно труднее в рамках ограничений.