我的公司目前正在评估一种带有基于浏览器扩展的密码管理器的产品。密码管理器是他们的核心产品的外围设备,但它是使用密码管理器的唯一方法。我们试图评估他们的安全-我们不会存储超级机密的条目,但我们确实希望确保至少有一个基线的安全水平。
提供密码管理器的公司声称,用于加密/解密密码的主密钥完全存储在客户端,并且只有加密的密码存储在服务器上。但是,我们已经看到了一个演示,并且我们知道,每次解密密码时,您都不需要重新输入主密码(用于生成主密钥),这表明主密钥存储在客户端的某个地方。
我的问题是,浏览器扩展如何能够安全地存储这个主密钥客户端?任何基于cookie或本地存储的解决方案都是完全不安全的,不是吗?我希望得到一个高层次的理解,这样我们就知道在安全方面应该问些什么问题。
发布于 2020-08-31 12:33:08
在应用程序开始时,可能会向用户询问一次主密码,然后,它将只存储在RAM中。
这样,主密码就不需要写在持久内存(硬盘驱动器)上,所以它是相当安全的。
但此模式不允许应用程序具有“忘记密码”功能。
如果应用程序需要有像忘记密码这样的高级功能,它需要永久地存储一些秘密。一种方法是使用操作系统提供的专用接口。
许多操作系统都有一种软件HSM,它专门为应用程序存储计算机的机密(DPAPI,keystore,.)。这些软件HSM旨在实现对物理攻击者的所有保护。因此,即使其中没有一个是牢不可破的,它们也会尽可能地减慢攻击者的速度。
最好的保护是真正的HSM (硬件的H),它是不可损坏的,没有一个巨大的金钱成本齿轮。
https://security.stackexchange.com/questions/237758
复制相似问题