【问题标题】:limiting access to stored files限制对存储文件的访问
【发布时间】:2012-06-02 09:24:16
【问题描述】:

我正在编写一个在 Java 中存储一些文件的应用程序。
该应用程序有 4 个分层访问级别(每个访问级别可以查看较低级别,不能查看较高级别)。
我需要保护这些存储的文件免受两种情况的影响:

  1. 每个人都可以从磁盘本身直接访问。
  2. 在没有适当访问级别的情况下访问文件。

我不会使用操作系统用户来限制访问(访问级别应该在应用程序中管理)。
每个文件可以有超过 1GB 的大小,所以我认为加密每个文件不是一个好主意。 (?)

解决办法是什么?

【问题讨论】:

  • 您是否还需要保护文件免受应用程序外部的访问,即人们是否可以访问磁盘?如果是这样,您必须查看操作系统服务以获得保护。
  • @Jochen:正如我在场景 #1 中提到的,是的;我需要保护文件不受应用程序外部的影响。是的,他们确实可以访问磁盘,但是当他们登录操作系统时。我通过使用 TrueCrypt 加密整个驱动器来解决物理访问问题。
  • 如果他们可以通过操作系统访问文件,那么您能做到的最好的事情就是具有机密性(加密)和防止未检测到更改(MAC 或 HMAC)。即使这样,您也有存储密钥的位置的问题。如果您不能安全地存储密钥(使用某种令牌加密或在受保护的应用程序代码中),那么您可以实现的最佳效果就是混淆。

标签: java security encryption file-storage


【解决方案1】:

如果您想阻止对文件的访问,那么您需要使用操作系统文件权限。

您可以使用加密来防止其他用户读取文件的内容,但这不会阻止他们移动/删除/覆盖它们。

至少您需要为您的应用程序创建一个操作系统帐户,这是唯一可以访问文件的帐户。然后您可以根据需要在应用内管理不同的访问级别。

【讨论】:

  • 谢谢;这似乎是最简单和最直接的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 2014-10-21
  • 2021-09-27
  • 2020-12-08
  • 1970-01-01
  • 2019-03-08
相关资源
最近更新 更多