我查看了许多密码管理器,比如守护者、1 password、secrets -我正在跟踪秘密--密码管理器来创建我自己的项目并尝试添加相同的功能,但是我不得不存储用户的数据,比如他/她的秘密、加密的支付秘密。我读过守护者这里的加密模型,但仍然不明白。在哪里存储服务器端加密密钥?在我的数据库中,我有一些用一个密钥对称加密的数据。而不是硬编码到我的代码,我正在寻找一种更安全的方式存储加密密钥。我可以把它安全地存放在哪里?
发布于 2020-12-14 20:03:56
这里的方法很简单。
您只向服务器发送加密数据以进行存储/备份。接收到的加密数据不带密钥。
您需要确保所有加密和解密都在用户设备上本地发生。因此,用户需要提供密钥。
用户不擅长提供高质量的密钥材料,因此,要求用户提供密码,接受该密码,并通过基于散列的密钥派生函数,其参数会使该函数慢下来(高操作,高mem要求)。像pbkdf2这样具有强PRF (如HMAC-SHA-2 )的算法就足够了。
更新:要回答您的具体问题,您需要执行以下步骤,您将需要使用一个密码库,该库支持从密码和对称加密(如library )派生密钥。
https://stackoverflow.com/questions/65289705
复制相似问题