目前,我还在为一个至今还没有找到好答案的问题而奋斗。我不想创建一个密码管理器,它将被很多人使用。
已使用的语言: PHP / Javascript (不要认为JS应该用于任何与安全相关的事情)
到目前为止,我的概念是:
但是现在我面临的问题是,一旦有人访问php文件,所有密码都会被压缩。
这就是为什么我考虑了以下几点:
我想用相应用户的用户密码对每个密码进行加密。虽然这意味着每个密码必须创建/存储x次,但这不是问题。
密码只能在用户密码的前一个条目中读出这一事实不是问题,而是需要的。但是,这意味着对密码的访问权限只能由已经“解锁”此条目的管理员分配。但是,由于密码也可以由其他管理员创建,甚至由用户创建,这意味着为了对这些密码进行加密,每个希望访问的用户(在默认情况下,管理员都有访问权限)同时需要创建者(或已经拥有此条目的人)的存在以及他或她自己的存在来解密和重新加密条目。
从理论上讲,我也可以从数据库中获取用户密码的存储哈希,但这会让我回到一个问题,即一旦有人拥有文件级访问权限,所有密码都会被泄露。
有一个好的和可靠的替代方案吗?一方面,它将是一个主密码,必须由创建者知道,这样才能创建一个条目,然后使用该条目进行初始存储。但这将是另一种令人不快的选择。
比如证书之类的。我很感谢你的建议。
提前感谢!
发布于 2019-09-29 03:47:35
如果我正确理解,PHP只会在服务器端执行。如果我在这方面是正确的,那么高价值的用户秘密将被传输到您的服务器,即使在您得到它们之后立即加密它们。
在这一点上,我应该透露,我为一个受欢迎的密码经理工作,但我没有试图阻止竞争。但我建议您看看其他密码管理器是如何工作的。我们中的一些人会记录下我们是如何做事的,以及为什么。我不是告诉你不要尝试构建一个密码管理器,而是要理解它比你想象的要难得多。
我承认我没有仔细研究过您的设计,因为我在PHP上停了下来,但我也看到您提到了CBC模式加密。虽然现在仍然有遗留系统这样做,但是您不应该使用未经身份验证的模式来设计任何东西,特别是CBC。
https://security.stackexchange.com/questions/218832
复制相似问题