В проекте мы создадим файл конфигурации для каждого клиента (также может быть sqlite для каждого клиента вместо файла конфигурации). Эти файлы будут включать критическую информацию, такую как политики. Поэтому конечный пользователь не может добавлять, удалять, изменять этот файл конфигурации или что-то в файле.
Я рассматриваю использование активного каталога, чтобы пользователи не открывали папку, которая включает мой файл конфигурации.
Есть ли стандартный способ использования защищенных конфигурационных файлов?
EDIT: Конечно, скорость чтения файла важна как безопасность
EDIT2: Я не могу сделать это с сервером БД, потому что мои политики должны быть доступны без подключения к Интернету. Сервер будет обновлять эти файлы или таблицы sqlite в некоторые периоды. И я использую c++.
Безопасность - довольно широкий вопрос. Что произойдет, если ваша система будет скомпрометирована? Кто-то теряет деньги? Кто-то получает дополнительные очки в игре? Кто-нибудь получает доступ к кодам ядерного ракетного запуска? Предоставляются ли какие-либо медицинские данные общественности?
Все это более или менее важные проблемы безопасности, но, как вы можете себе представить, ядерные ракетные пусковые установки предъявляют более высокие требования к полной безопасности, чем к какой-либо игре, где кто-то может увеличить свой балл, а деньги и здоровье явно оказываются где-то посередине этот диапазон, с множеством других вещей, которые мы могли бы добавить в список.
Также важно, какой тип "пользователей" вы пытаетесь защитить. Это эксперты по безопасности на национальном уровне (например, ФБР, ЦРУ, КГБ и т.д.), Хакерские хакеры или просто обычные пользователи компьютеров? Шифрование файла остановит обычного пользователя и, возможно, хобби-хакера, но эксперты в области национальной безопасности, конечно же, не будут этому лишены.
В конечном счете, если машина, хранящая данные, также знает, как читать данные, тогда у вас не может быть полностью защищенной системы. Систему можно обойти, читая ключ в коде и повторно внедряя любой de-/шифрование и т.д., Который является частью вашей "безопасности". И как только данные находятся в открытом тексте, его можно изменить, а затем повторно зашифровать и сохранить обратно.
Разумеется, вы можете сделать это более запутанным, что будет означать, что у кого-то будет более сильный мотив, чтобы пробиться через ваши запутанные методы, но, в конце концов, это сводится к "Если машина знает, как расшифровать что-то, кто-то с доступом к машине может расшифровать содержимое ".
Это зависит от вас (и, очевидно, ваших "клиентов" и/или "партнеров", чьи данные вы ищете), считаете ли вы, что это то, что вы можете рисковать или нет.
Мне жаль раздавить ваши надежды и мечты, но если ваша безопасность основана на этом файле конфигурации на клиенте, вы ввернуты.
Файл конфигурации загружается и дешифруется вашим приложением, и это означает, что значения могут быть изменены с помощью специальных инструментов при запуске приложения.
Если безопасность важна, выполните эти проверки на сервере, а не на клиенте.