假设你有一堆文件。 假设您可以将元数据存储到这些文件中。 比如,其中一个元属性被称为“加密” 假设每个人都被允许查看这些文件,但由于它们是加密的,只有知道如何解密它们的人才能真正阅读这些内容。 比如,对于每个给定的“加密”值,一组人分享有关如何解密标记有该值的文件的知识。 假设您希望以操作系统无关的方式(如果可能)以编程方式执行此操作
“加密”会使用哪些值? 你如何存放钥匙? 你会如何组织对密钥的访问?
我目前倾向于实施:
你会使用什么加密?对称(AES)?或不对称(哪些是好的)?
使用非对称密钥还有另外一个好处,即在读取文件和写入文件之间有所区别:访问私钥对于编写文件,访问公共密钥(仅限半公共密钥,仅作为特定角色)是必需的有权访问它)将允许读取文件。我完全错了吗?
解决中小型企业使用的这些问题的常见系统是什么?
编辑:似乎没有通用的解决方案。所以,我将说明我试图更清楚地解决的问题:
想象一下以分布式方式运行的文档管理系统:每个文档都被复制到(公司控制的,私有)P2P网络中的各个节点。用于确保文档冗余的算法用于确保所有文档(包括修订)的备份。该系统在后台作为服务/守护进程使用,并来回扫描文档。
这意味着,用户最终可能无法在他们的本地工作站(公司控制的PC或笔记本电脑或其他东西)上查看可能无法看到的文档 - 这样的设置就是SME IT人员将这一切设置为全部并控制谁是P2P网络的一部分。)
这排除了基于目录访问的方案,因为用户可能能够获取数据。我错了吗?本地文件夹是否可以加密,以便只能由域用户访问?这有多安全?
我知道用户共享文件的解密版本 - 而且这在技术上难以抑制。这不是我想要解决的问题。
答案 0 :(得分:2)
这里加密不是困难的部分。了解业务需求,特别是您要防范的威胁是困难的部分。密钥管理不是一件小事。
我强烈推荐“Applied Cryptography”这本书,以帮助您更好地理解协议级问题。
答案 1 :(得分:1)
这是严重问题。如果这是非常严重的事情,你不应该在互联网上使用业余密码学家的建议。
答案 2 :(得分:1)
那就是说,这是我的想法:
我使用AES使用随机对称密钥加密每个文件。这种加密工作将在一夜之间完成,因此密钥会在一夜之间发生变化。
我用每个有权访问该文件的人的公钥加密每个文件的密钥。
如果有人失去对文件的访问权限,他们将无法在第二天阅读新副本(他们仍然可以在本地复制旧版本)。
我会使用gpg(几乎所有操作系统都可以运行)。
你误解了不对称的加密。公钥给每个人,私钥你自己。如果Alice使用Bob的公钥加密某些内容,则只有Bob可以对其进行解密。如果Bob使用他的私钥加密某些东西 - 每个人都可以解密它,并且每个人都知道它来自Bob,因为只有他拥有他的私钥。
编辑:但是,如果你忽略了我所说的所有内容并且走了一条不同的路线,并且给了每个文件它自己的pub / priv密钥对...那么你将依赖公钥只对你想要阅读的人提供文件,以及您想要r / w的人可用的私钥。但这有点棘手,并且严重依赖于无法分发密钥的人。更改密钥的过夜作业可以缓解这个问题,但是您遇到了向用户分发新密钥的问题。
答案 3 :(得分:1)
如果我理解正确,您可以使用GNU Privacy Guard。它是跨平台和开源的。基本上,每个用户都有一个GPG副本和一个带有“私钥”和“公钥”的本地“钥匙串”。当您想要加密某些内容时,您可以使用该人的公钥,结果只能使用其关联的私钥进行解密。用户可以拥有多个密钥对,因此您可以授予所有管理员访问“管理员角色”私钥的权限,每次保留私钥可以解密使用“管理员角色”公钥加密的文档。
很酷的部分是您可以使用多个公钥加密文件,然后可以使用任何一个相应的私钥对其进行解密。
答案 4 :(得分:0)
此问题的难点在于许多企业默认使用特定于操作系统的解决方案,例如Active Directory。
对于与操作系统无关的操作,您必须重新创建特定操作系统和/或网络供应商已经构建的许多用户管理内容。
但是可以做到。对于加密本身 - 请使用AviewAnew的答案。
答案 5 :(得分:0)
我必须在这里同意马克:
了解业务需求,尤其是您正在努力防范的威胁是困难的部分
例如;您是否担心未经授权的用户可能会访问敏感文件?您几乎可以在任何操作系统上使用文件级访问控制来限制用户或组访问文件/目录。
您是否担心授权用户可能会在本地复制文件然后丢失笔记本电脑?有许多os级加密工具可提供不同程度的保护。我个人推荐TrueCrypt用于拇指驱动器和其他便携式媒体,而Windows Vista现在包括BitLocker,它提供不同级别的保护。
丢失笔记本电脑主题的另一个变体是丢失备份主题,并且许多备份供应商现在都包含用于磁带备份的加密方案。
最后,如果您担心授权用户可能与未经授权的用户共享文件,那么您可能正在尝试解决错误的问题。可以解密这些文件的授权用户可以轻松地共享同一文档的新未加密版本。
答案 6 :(得分:0)
您需要的是使用OpenPGP或X.509证书的公钥加密。在这两种情况下,您都可以分别使用OpenPGP密钥或X.509证书为多个“收件人”加密单个数据块。在X.509中,以这种方式加密数据的标准是PKCS#7和CMS(在某些RFC中定义,我忘记了数字)。您需要使用一些关键的撤销检查,以防止那些之前获得访问但现在没有访问权限的人员访问。