首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码文件存储方案

密码文件存储方案
EN

Security用户
提问于 2021-01-26 15:34:43
回答 1查看 109关注 0票数 0

首先,我对整个安全性都很陌生,如果出现任何重大错误,我将参加关于it.So的第一次正式课程。我有一个远程文件存储方案,试图使用我的课程主题:

  • 我有几个google帐户(比如2= N),其中有独立的防火墙存储实例(再次是2)。
  • 在每个实例中都有几个文件夹(例如3= M),每个文件夹对应于一个部署服务(heroku,pythonanywhere.),允许.No跨文件夹访问。
  • 每个已部署的服务(总共N*M)都有自己的一组用户,并实现了身份验证。
  • 所有服务都有REST,用于对其文件夹进行读/写。
  • 在安装时的本地应用程序上,给出主密码并生成一个密钥文件,主密码通过KDF(例如给masterkey)传递,然后KDF(keyfile+masterkey)给出密钥加密密钥(Kek)。
  • 为每个存储桶创建一组帐户,每个存储桶随机选择一个服务,并在服务中注册帐户。
  • 所有帐户的数据由数据库加密密钥(Dek)在本地加密和存储,数据库加密密钥(Dek)本身是由kek加密存储的。
  • 在要上传的文件上,它被(N,N)秘密共享方案分解,创建了N个文件,现在没有N个文件的present.Each被映射到这个用户的服务上传到桶中。
  • 在读取文件时,读取和使用所有N个文件。这可能太过分了,但我只是想使用所有的方案作为一个whole.Can,有人告诉我,这个方案中是否存在任何关键漏洞?
EN

回答 1

Security用户

回答已采纳

发布于 2021-01-26 17:09:15

几乎每个问题都问“这安全吗?”将面临另一个问题:“安全防范什么?”这也是我的问题。但我会推断出一般的攻击者。

您的防御必须以这样一种方式构建,即获取加密文件的攻击者不能对其执行任何操作,并且必须使用最少数量的组件来完成此操作。每一个新的层都可能略微增加安全性,但也会增加漏洞,导致攻击者很容易地获取您的数据,或者将您拒之门外。

关键的一步是:

所有帐户的数据由数据库加密密钥(DEK)加密并本地存储,数据库加密密钥(DEK)由KEK加密存储。

从安全的角度来看,任何其他东西都是多余的。在多个服务上对数据进行分区和分发对于可用性和供应商独立性都是很好的,因为如果您的任何供应商脱机(或变暗),您就不会丢失数据。

你所有的图层对方程的影响都很小。

我有几个google帐户(比如2= N),其中有独立的防火墙存储实例(再次是2)。

网络钓鱼可以解决这个问题,攻击者可以访问谷歌账户。

每个已部署的服务(总共N*M)都有自己的一组用户,并实现了身份验证。

这是如何实现的?明文密码?SHA1和盐?氩?密码存放在哪里?当数据库泄漏时,后果是什么?数据库上的映射透明吗?如果数据是加密的,解密的密钥在哪里?如果攻击者有数据库访问权限,他能访问密钥吗?认证对暴力有多好的保护呢?

所有服务都有REST,用于对其文件夹进行读/写。

如何管理对API的访问?是否启用了速率限制?如果客户超过这一比率,就会使用软禁?

在安装时的本地应用程序上,给出主密码并生成一个密钥文件,主密码通过KDF(例如给masterkey)传递,然后KDF(keyfile+masterkey)给出密钥加密密钥(KEK)。

如果用户丢失了这个密钥文件,该如何继续?他会失去一切,还是有办法恢复关键文件?如果有一种方法,是什么阻止攻击者使用这种机制为自己创建密钥文件?

拥有更多的片段只会使您的解决方案更难理解和支持,并且会增加隐藏的问题,这些问题只有在使用服务时才会显现,重构也不容易,甚至不可能。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/243870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档