Я пишу приложение, которое хранит некоторые файлы на Java.
Приложение имеет 4 иерархических уровня доступа (каждый уровень доступа может вид ниже и не может просмотреть верхний уровень).
мне нужно, чтобы защитить эти сохраненные файлы от двух сценариев:ограничение доступа к сохраненным файлам
- Прямого доступа с самого диска все.
- Доступ к файлам без соответствующего уровня доступа.
Я не буду использовать пользователей ОС для ограничения доступа (уровни доступа должны управляться в приложении).
каждый файл может иметь размер более 1 ГБ, поэтому я считаю, что шифрование каждого файла не является хорошей идеей. (?)
Какое решение?
Вам также необходимо защищать файлы от доступа извне вашего приложения, то есть люди имеют доступ к диску? Если это так, вам нужно изучить службы ОС для защиты. – Jochen
@Jochen: Как я уже упоминал в сценарии №1, да; Мне нужно защищать файлы вне приложения. да, они имеют доступ к диску, но во время регистрации в ОС. Я решил физический доступ, зашифровав весь диск с помощью TrueCrypt. – RYN
Если у них есть доступ к файлам через ОС, лучшее, что вы можете достичь, это обеспечить конфиденциальность (шифрование) и защиту от * необнаруженного * изменения (MAC или HMAC). Даже тогда у вас есть проблема с тем, где вы хотите хранить ключи. Если вы не можете безопасно хранить ключи (зашифрованные каким-то маркером или в защищенном коде приложения), лучшее, что вы можете достичь, это обфускация. –