首先,我对整个安全性都很陌生,如果出现任何重大错误,我将参加关于it.So的第一次正式课程。我有一个远程文件存储方案,试图使用我的课程主题:
发布于 2021-01-26 17:09:15
几乎每个问题都问“这安全吗?”将面临另一个问题:“安全防范什么?”这也是我的问题。但我会推断出一般的攻击者。
您的防御必须以这样一种方式构建,即获取加密文件的攻击者不能对其执行任何操作,并且必须使用最少数量的组件来完成此操作。每一个新的层都可能略微增加安全性,但也会增加漏洞,导致攻击者很容易地获取您的数据,或者将您拒之门外。
关键的一步是:
所有帐户的数据由数据库加密密钥(DEK)加密并本地存储,数据库加密密钥(DEK)由KEK加密存储。
从安全的角度来看,任何其他东西都是多余的。在多个服务上对数据进行分区和分发对于可用性和供应商独立性都是很好的,因为如果您的任何供应商脱机(或变暗),您就不会丢失数据。
你所有的图层对方程的影响都很小。
我有几个google帐户(比如2= N),其中有独立的防火墙存储实例(再次是2)。
网络钓鱼可以解决这个问题,攻击者可以访问谷歌账户。
每个已部署的服务(总共N*M)都有自己的一组用户,并实现了身份验证。
这是如何实现的?明文密码?SHA1和盐?氩?密码存放在哪里?当数据库泄漏时,后果是什么?数据库上的映射透明吗?如果数据是加密的,解密的密钥在哪里?如果攻击者有数据库访问权限,他能访问密钥吗?认证对暴力有多好的保护呢?
所有服务都有REST,用于对其文件夹进行读/写。
如何管理对API的访问?是否启用了速率限制?如果客户超过这一比率,就会使用软禁?
在安装时的本地应用程序上,给出主密码并生成一个密钥文件,主密码通过KDF(例如给masterkey)传递,然后KDF(keyfile+masterkey)给出密钥加密密钥(KEK)。
如果用户丢失了这个密钥文件,该如何继续?他会失去一切,还是有办法恢复关键文件?如果有一种方法,是什么阻止攻击者使用这种机制为自己创建密钥文件?
拥有更多的片段只会使您的解决方案更难理解和支持,并且会增加隐藏的问题,这些问题只有在使用服务时才会显现,重构也不容易,甚至不可能。
https://security.stackexchange.com/questions/243870
复制相似问题