每个用户存储SHA256密钥对的位置
我在 NodeJS 中有一个数据库和一个 API,我使用 Web 应用程序创建用户,每个用户都可以创建/更新/删除数据。
为了稍微保护一下,我需要加密用户的数据。所以我想要的是每次创建用户时创建一对 SHA256 公钥。
实际上我所做的是将这些密钥存储在数据库中,通过使用全局 SHA256 密钥对加密它们。
因此,简而言之,我有一对全局密钥来加密每个用户的每对特定密钥。
事实是这似乎并不安全,因为最终每个用户都有自己的加密/解密方法存储在数据库中。
例如,我可以有 2 个表:
User table :
id_user | firstname | lastname | encrypted_data
-----------------------------------------------
1 | John | Doe | QMwmuCMmI..
2 | Jane | Doe | QMwmuCMmI..
...
Keys table :
id_user | public | private
------------------------------
1 | MIICIjA.. | MIIJrT..
2 | MIICIjA.. | MIIJrT..
...
所以John Doe他的公钥和私钥的链接很简单。
一个问题是我不能要求用户创建一对私钥/公钥并只向我发送公共密钥,因为所有这些都需要是自动的,用户不必做任何事情。
另一个问题是应用程序应该可以在任何设备上使用,因此私钥不能存储在客户端。