Безопасный файл конфигурации в клиентах

2

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

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

Есть ли стандартный способ использования защищенных конфигурационных файлов?

EDIT: Конечно, скорость чтения файла важна как безопасность

EDIT2: Я не могу сделать это с сервером БД, потому что мои политики должны быть доступны без подключения к Интернету. Сервер будет обновлять эти файлы или таблицы sqlite в некоторые периоды. И я использую c++.

Теги:
security
configuration-files

2 ответа

0

Безопасность - довольно широкий вопрос. Что произойдет, если ваша система будет скомпрометирована? Кто-то теряет деньги? Кто-то получает дополнительные очки в игре? Кто-нибудь получает доступ к кодам ядерного ракетного запуска? Предоставляются ли какие-либо медицинские данные общественности?

Все это более или менее важные проблемы безопасности, но, как вы можете себе представить, ядерные ракетные пусковые установки предъявляют более высокие требования к полной безопасности, чем к какой-либо игре, где кто-то может увеличить свой балл, а деньги и здоровье явно оказываются где-то посередине этот диапазон, с множеством других вещей, которые мы могли бы добавить в список.

Также важно, какой тип "пользователей" вы пытаетесь защитить. Это эксперты по безопасности на национальном уровне (например, ФБР, ЦРУ, КГБ и т.д.), Хакерские хакеры или просто обычные пользователи компьютеров? Шифрование файла остановит обычного пользователя и, возможно, хобби-хакера, но эксперты в области национальной безопасности, конечно же, не будут этому лишены.

В конечном счете, если машина, хранящая данные, также знает, как читать данные, тогда у вас не может быть полностью защищенной системы. Систему можно обойти, читая ключ в коде и повторно внедряя любой de-/шифрование и т.д., Который является частью вашей "безопасности". И как только данные находятся в открытом тексте, его можно изменить, а затем повторно зашифровать и сохранить обратно.

Разумеется, вы можете сделать это более запутанным, что будет означать, что у кого-то будет более сильный мотив, чтобы пробиться через ваши запутанные методы, но, в конце концов, это сводится к "Если машина знает, как расшифровать что-то, кто-то с доступом к машине может расшифровать содержимое ".

Это зависит от вас (и, очевидно, ваших "клиентов" и/или "партнеров", чьи данные вы ищете), считаете ли вы, что это то, что вы можете рисковать или нет.

  • 0
    на самом деле я не говорю о специалистах по безопасности. Например, я думаю, что «глубокое замораживание» хранит некоторую информацию о конфигурации где-то там, где конечные пользователи не могут достичь. Потому что, если конечные пользователи могут сделать это, изменение конфигурации, установленной администратором и Deep Freeze, не может быть успешным. Я хочу знать, есть ли стандартный или лучший способ сохранить эту информацию. Конечно, я знаю, кто-то может взломать мою программу в мире.
  • 0
    Конечно, вы можете использовать место, для которого требуются права администратора, а затем использовать только чтение только для чтения конфигурации. Но это далеко не безопасно, если только вы не контролируете, кто имеет доступ администратора к машинам. Конечно, если это ИТ-отдел крупной компании, большинство пользователей, вероятно, не имеют прав администратора, и это было бы так. С другой стороны, если вы распространяете на большое количество разных сайтов, вы никогда не знаете, какие права доступа есть у пользователя. Я работал в компаниях, где права администратора предоставляются всем, а также «права администратора имеют только ИТ-специалисты».
0

Мне жаль раздавить ваши надежды и мечты, но если ваша безопасность основана на этом файле конфигурации на клиенте, вы ввернуты.

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

Если безопасность важна, выполните эти проверки на сервере, а не на клиенте.

  • 1
    .СЕТЬ? Я использую с ++. Я не мог понять.
  • 0
    @Yavuz: Извините, я не обратил внимания, но на самом деле не имеет значения, какую технологию вы используете, все они могут быть скомпрометированы, если ваша безопасность встроена в клиентское ПО, а не на сервер (хотя и управляемая). такие платформы, как .NET и Java делают компромисс еще проще).

Ещё вопросы

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