从上传目录encryption文件

我有一个文件传输站点,允许用户上传数据到传入的目录。 上传将被encryption,然后移出传入目录并进入不能直接从服务器应用程序访问的存档目录。

另外四个用户需要使用encryption文件。 他们将从存档目录中下载encryption文件并在其工作站上解密。

我认为:

如果使用密码(对称),并且四个人中的一个人离开组织,他们仍可能知道encryption数据的密码。 即使他们可能没有物理访问文件,攻击vector仍然存在。 为了缓解,所有当前的档案文件都可以被解密,并用新的密码重新encryption,但是这只有在文件大小和数量接近有害的处理时间之前才起作用。

如果使用共享密钥(不对称),所有文件需要encryption四次(每个pub-key一个文件)。 这增加了工作stream程的混乱,显然现在消耗的存储容量是现在的4倍。

encryption文件与多人共享的最佳方法是什么?

你关于非对称encryption的假设是错误的。

非对称encryption几乎不用于直接encryption用户数据,因为它太慢而且不切实际。

相反,大多数产品实现了混合scheme,其中数据用随机select的对称密钥encryption,然后使用非对称algorithm对随机密钥进行encryption。

使用这样的系统,如果您有多个收件人,则随机对称密钥只需为每个收件人encryption一次。

对于RSA和ECC,开销对应于公钥的大小,例如对于2048bit RSA,大约为256字节。 埃尔加马尔有这个的两倍。 如果你的文件很大,还是非常不相关的。

关于重新encryption问题,请考虑您的安全模式:您是否可以防止用户对数据进行未经授权的复制? 你可能不能。 那么重新encryption旧数据可能是一个有争议的问题。 将它们从收件人列表中删除以备将来的文件可能就足够了。

为此,我会考虑使用像Hashicorp的Vault 。 它既可以pipe理密钥,也可以提供encryption和解密服务。 这意味着您的任何用户(或文件服务器)都无权访问密钥 – 他们使用自己的凭据向Vault发出呼叫,Vault代表他们执行crypt操作。

所有行动当然都是为了审计目的而logging的。