2008-10-08 18 views
2

假设你有一堆文件。假设您可以将元数据存储到这些文件。 说,其中一个元属性被称为“加密” 说每个人都被允许查看这些文件,但由于他们被加密,只有知道如何解密他们的人可以实际读取内容。 说,对于“加密”的每个给定值,一组人共享关于如何解密标有该值的文件的知识。 假设您希望能够以与操作系统无关的方式以编程方式执行此操作(如果可能的话)您使用什么系统为一群人(OS不可知论者首选)加密文件?

您将用于“加密”的值是什么? 你将如何存储密钥? 你将如何组织访问密钥?

我目前倾向于以下实现:

  • 领域的“加密”的值包含密钥的名称,也可能表示所使用的算法
  • 每个用户可以访问到一堆键。这可以通过用户在LDAP/ActiveDirectory结构中的角色来定义,或者它们可以仅仅是用户配置文件/ home目录中安全目录中的文件。
  • 查看文件时,查看器(我试图构建文档管理系统)检查用户密钥并在找到匹配的密钥时解密文件。

你会使用什么加密?对称(AES)?或不对称(有什么好的)?

使用非对称密钥可以使读取文件和写入文件有所不同:访问私钥对于写入文件,访问公钥是必需的(只有半公开的,因为只有某些角色可以访问它)将允许读取文件。我完全误解了吗?

解决中小企业使用的这些问题的常用系统是什么?

编辑:似乎没有普遍的解决办法。因此,我将阐述我想要更清楚地解决的问题:

想象一下以分布式方式运行的文档管理系统:将每个文档复制到(公司控制的,专用的)P2P网络中的各个节点。使用确保文档冗余的算法来确保备份所有文档(包括修订版)。该系统在后台作为服务/守护进程进行工作,并来回移动文件。

这意味着,用户最终将得到的文件可能不适合他们在本地工作站(公司控制的个人电脑或笔记本电脑或其他设备上)看到的文件 - 这样的设置可以让一位中小企业IT人员设置这一切,控制谁是P2P网络的一部分)。

这排除了基于目录访问的方案,因为用户可能会获得数据。我错了吗?本地文件夹是否可以加密,以便只能由域用户访问?那有多安全?

我知道用户共享解密版本的文件 - 这在技术上很难压制。这不是我想要解决的问题。

回答

2

加密不是硬的部分,在这里。了解业务需求,尤其是您想要防范的威胁是最难的部分。密钥管理不是一件微不足道的事情。

我强烈推荐本书“Applied Cryptography”,以帮助您更好地理解协议级别的问题。

1

这是一个的问题。如果这真的很严重,你不应该使用互联网上业余密码员的建议。

+0

你会在哪里寻找互联网上的专业密码学家? – 2008-10-08 19:02:36

1

这就是说,这里是我的沉思:

我会用加密使用AES随机对称密钥每个文件。这种加密将在一夜之间完成,因此关键在一夜之间发生变化。

我会使用每个有权访问该文件的人的公钥来加密每个文件的密钥。

如果有人失去访问文件的权限,他们将无法在第二天阅读新的副本(他们仍然可以在本地复制旧版本)。

我会使用gpg(几乎可以在所有OS-es上运行)。

您误解了非对称加密。公钥给每个人,私钥保留自己。如果Alice用Bob的公钥加密某些内容,则只有Bob可以对其进行解密。如果Bob用他的私钥加密某个东西 - 每个人都可以解密它,并且每个人都知道它来自Bob,只会让他拥有私钥。

编辑:但是,如果你忽略了我所说的一切,并走了一条不同的路线,并给每个文件它自己的酒吧/私人密钥对......那么你将只能依靠公共密钥提供给你想要阅读的人文件和可用于您想要r/w的私钥。但是这有点棘手,并且严重依赖于人们无法分配密钥。隔夜工作来改变密钥可以缓解这个问题,但是你有分发新密钥给用户的问题。

0

这个问题的难点在于为什么很多企业默认使用特定于操作系统的解决方案,例如Active Directory。

对于操作系统不可知的情况,您必须重新创建特定操作系统和/或网络供应商已经构建的大量用户管理内容。

但它可以做到。对于加密本身 - 使用AviewAnew的答案。

1

如果我理解正确,可以使用GNU Privacy Guard。它是跨平台和开源的。基本上,每个用户都有一份GPG副本和一个带有“私钥”和“公钥”的本地“钥匙串”。当你想加密某些东西时,你使用该人的公钥,并且结果只能用他们相关的私钥解密。用户可以拥有多个密钥对,因此您可以授予所有管理员访问“管理员角色”私钥的权限,并且每个私钥可以解密使用“管理员角色”公钥加密的文件。

很酷的部分是,您可以使用多个公钥对文件进行加密,然后可以使用任何一个对应的私钥对其进行解密。

0

我这里有与马克同意:

理解业务需求,尤其是,你要防范哪些威胁,是最困难的部分

例如;你是否担心未经授权的用户可能访问敏感文件?您几乎可以在任何操作系统上使用文件级访问控制来限制用户或组访问文件/目录。

您是否担心授权用户可能会在本地复制文件,然后丢失笔记本电脑?有许多os级加密设施提供不同程度的保护。我个人推荐用于拇指驱动器和其他便携式媒体的TrueCrypt,而Windows Vista现在包含提供不同级别保护的BitLocker。

迷你笔记本电脑主题的另一个变体是丢失备份主题,正因为这个原因,许多备份供应商现在都包含了用于磁带备份的加密方案。

最后,如果您担心授权用户可能与未经授权的用户共享文件,那么您可能会尝试解决错误的问题。可以解密这些文件的授权用户可以轻松共享同一文档的新未加密版本。

0

您需要的是使用OpenPGP或X.509证书的公钥加密。在这两种情况下,您都可以分别使用OpenPGP密钥或X.509证书为多个“收件人”加密单个数据块。在X.509中,以这种方式加密数据的标准是PKCS#7和CMS(在某些RFC中定义,我忘记了该编号)。您需要使用一些关键的撤销检查功能,以防止那些以前获得访问权但现在没有访问权的人访问。

相关问题