假设您有一堆文件。假设您可以将元数据存储到这些文件中。比如说,这些元属性之一被称为“加密” 假设每个人都可以查看这些文件,但由于它们是加密的,只有知道如何解密它们的人才能真正读取内容。比如说,对于每个给定的“加密”值,一群人分享如何解密标有该值的文件的知识。假设您希望能够以与操作系统无关的方式以编程方式执行此操作(如果可能)
您将用于“加密”的值是什么?您将如何存储密钥?您将如何组织对密钥的访问?
我目前倾向于以下实施:
- “加密”字段的值包含密钥的名称,可能还表示使用的算法
- 每个用户都可以访问一堆密钥。这可以由用户在类似 LDAP/ActiveDirectory 的结构中的角色定义,或者它们可以只是用户配置文件/主目录中安全目录中的文件。
- 在查看文件时,查看器(我正在尝试构建文档管理系统)检查用户密钥并在找到匹配密钥时解密文件。
你会使用什么加密?对称(AES)?或不对称(什么是好的)?
使用非对称密钥还有一个额外的好处,那就是在读取文件和写入文件之间有所不同:写入文件需要访问私钥,访问公钥(仅半公开,因为只有某些角色可以访问它)将允许读取文件。我在这里完全错了吗?
在中小型企业中解决这些问题的常用系统是什么?
编辑:似乎没有通用的解决方案。因此,我将更清楚地说明我要解决的问题:
想象一个以分布式方式运行的文档管理系统:每个文档都被复制到(公司控制的、私有的)P2P 网络中的各个节点。确保文档冗余的算法用于确保所有文档(包括修订)的备份。该系统在后台作为服务/守护程序工作,并来回铲除文档。
这意味着,用户最终会得到可能不打算在他们的本地工作站(公司控制的 PC 或笔记本电脑或其他东西)上看到的文档 - 设置是这样的,SME IT 人员设置这一切并控制谁是其中的一部分P2P 网络)。
这排除了基于目录访问的方案,因为用户可能能够访问数据。我在这里弄错了吗?本地文件夹是否可以加密,使其只能由域用户访问?那有多安全?
我知道用户共享文件的解密版本——这在技术上很难压制。这不是我要解决的问题。