我想知道下面的系统是否是一种安全的方式来存储经常重复的文件。
要访问/共享文件,需要共享加密文件的地址和源哈希。我在这里的优势是,即使两个人拥有相同的源文件(在我的用例中很可能是这样),它也只能存储一次,从而节省了存储成本。
从存储提供商的角度来看,我的问题是:这个系统安全吗?(假设使用了良好的哈希和密钥派生函数)
编辑:我不关心关键的改变,因为存储将主要是内容寻址(IPFS喜欢),是长期存储,而不是定期更新。
发布于 2021-02-16 07:46:43
不,这通常不安全。您不能与其他用户的文件和隐私进行重复。但这取决于您的确切威胁模型/安全目标。
使用文件的散列对其进行加密称为收敛加密,是一种确定性的加密方法。值得注意的是,没有秘密密钥可以为密文增加安全性。相反,任何安全性都来自纯文本文件中的熵。
显然,该方案不能提供语义安全,攻击者可以有效地从密文中学习到一些信息。特别是,验证您的一个文件是否与公开的文件匹配是非常简单的。此外,PDF文档(如表单字母)看起来可能是高熵的,但实际上只有几个字段不同。这可能是蛮横的。此外,恶意服务提供者还可以预先计算他们感兴趣的文档的加密。
解决方案是停止使用确定性加密方法。例如,在每个块/文件中添加足够数量的随机比特将有所帮助,但也会破坏重复的机会。使用带有秘密密钥的真正对称加密将是另一种解决方案,并且将允许同一密钥持有者之间的重复。
你声称你的明文有很高的熵。这是一个强有力的假设。请注意,如果您的明文是高熵,那么去重复是不可能的,您也可以使用一个安全的加密方法代替。在这个讨论的背景下,熵不能相对于所有零位而相对于其他参与者所知道的内容的分布来理解。如果每个用户都知道1000个文件,其中一个是相同的2GB大电影,那么该文件只有大约10位的安全性,或者实际上为零,因为转换加密的文件的指纹可以由每个人预先计算。由于您的方案不具有机密,因此不可能区分合法用户和恶意攻击者。
https://security.stackexchange.com/questions/244893
复制相似问题