假设您有一堆文件。 假设您可以将元数据存储到这些文件中。 比如说,这些元属性之一称为“加密” 假设每个人都可以查看这些文件,但由于它们是加密的,只有知道如何解密它们的人才能真正读取内容。 比如说,对于每个给定的“加密”值,一群人共享有关如何解密标有该值的文件的知识。 假设您希望能够以与操作系统无关的方式(如果可能)以编程方式执行此操作
您将使用哪些值来“加密”? 您将如何存储 key ? 您将如何组织对 key 的访问?
我目前倾向于以下实现:
- “加密”字段的值包含 key 的名称,也可能表示所使用的算法
- 每个用户都可以访问一组 key 。这可以通过用户在类似 LDAP/ActiveDirectory 的结构中所具有的角色来定义,也可以只是用户配置文件/主目录中安全目录中的文件。
- 在查看文件时,查看器(我正在尝试构建文档管理系统)会检查用户 key ,如果找到匹配的 key 则解密文件。
您会使用什么加密?对称(AES)?或者不对称(什么是好的)?
使用非对称 key 还有一个额外的好处,可以区分读取文件和写入文件:写入文件需要访问私钥,访问公钥(仅半公开,因为只有某些角色)有权访问它)将允许读取该文件。我是不是完全搞错了?
中小型企业使用哪些常见系统来解决这些问题?
编辑:似乎没有通用的解决方案。因此,我将更清楚地说明我试图解决的问题:
想象一个以分布式方式运行的文档管理系统:每个文档都被复制到(公司控制的私有(private))P2P 网络中的各个节点。使用确保文档冗余的算法来确保所有文档(包括修订版)的备份。该系统在后台作为服务/守护进程运行,并来回铲除文档。
这意味着,用户最终会得到可能不适合他们在本地工作站(公司控制的 PC 或笔记本电脑或其他东西)上看到的文档 - 设置是由中小企业 IT 人员设置并控制这一切谁是 P2P 网络的一部分)。
这排除了基于目录访问的方案,因为用户可能能够访问数据。我这里是不是搞错了?是否可以对本地文件夹进行加密,使其只能由域用户访问?这有多安全?
我知道用户共享文件的解密版本 - 这在技术上很难抑制。这不是我想要解决的问题。
最佳答案
这里,加密并不是困难的部分。了解业务需求,尤其是您要防范哪些威胁,是最困难的部分。 key 管理不是一件小事。
强烈推荐《Applied Cryptography》这本书,帮助你更好地理解协议(protocol)层的问题。
关于encryption - 您使用什么系统为一群人加密文件(首选与操作系统无关)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/184265/