2012-06-02 3 views
1

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

  1. Прямого доступа с самого диска все.
  2. Доступ к файлам без соответствующего уровня доступа.

Я не буду использовать пользователей ОС для ограничения доступа (уровни доступа должны управляться в приложении).
каждый файл может иметь размер более 1 ГБ, поэтому я считаю, что шифрование каждого файла не является хорошей идеей. (?)

Какое решение?

+0

Вам также необходимо защищать файлы от доступа извне вашего приложения, то есть люди имеют доступ к диску? Если это так, вам нужно изучить службы ОС для защиты. – Jochen

+0

@Jochen: Как я уже упоминал в сценарии №1, да; Мне нужно защищать файлы вне приложения. да, они имеют доступ к диску, но во время регистрации в ОС. Я решил физический доступ, зашифровав весь диск с помощью TrueCrypt. – RYN

+0

Если у них есть доступ к файлам через ОС, лучшее, что вы можете достичь, это обеспечить конфиденциальность (шифрование) и защиту от * необнаруженного * изменения (MAC или HMAC). Даже тогда у вас есть проблема с тем, где вы хотите хранить ключи. Если вы не можете безопасно хранить ключи (зашифрованные каким-то маркером или в защищенном коде приложения), лучшее, что вы можете достичь, это обфускация. –

ответ

2

Если вы хотите запретить доступ к файлам, вам необходимо использовать разрешения файлов ОС.

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

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

+0

Thanks; Кажется, это самый простой и самый прямой. – RYN

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