2015-01-06 3 views
4

Предполагая, что у меня есть часть данных, которые я хочу сохранить частным для приложения, работающего в контексте безопасности, совместно используемого пользователем, возможно ли каким-либо образом сохранить данные от пользователя?Сохранение данных для приложения

Скажите, что у меня есть, например, открытый ключ для удаленного сервера, который используется приложением и хранится на диске (в файле/базе данных, что угодно), можно ли каким-то образом удержать пользователей, запускающих приложение от изменения открытого ключа (Короткое обозначение hardcoding в приложении)?

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

Можно ли каким-либо образом разрешить приложению хранить часть данных от других пользователей/приложений в одном и том же контексте безопасности, чтобы только приложение могло его изменить?

+0

Я попытался переформулировать вопрос, чтобы быть более конкретным. –

ответ

3

Настольное приложение обычно запускается в контексте безопасности пользователя. Это означает, что приложение имеет доступ к ресурсам (файлам/сокетам/базам данных), доступ к которым пользователю разрешен.

Так что, если есть другие приложения, работающие в одном контексте безопасности, они будут иметь доступ к тем же ресурсам.

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

Таким образом, невозможно сохранить данные из других приложений, работающих в одном и том же контексте безопасности.

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

Смежные вопросы