在特定的场景下需要存储密码明文,( hash 加盐这些不在讨论范围之内),想问问各位大佬如何安全地对密码进行存储?
目前想到的办法有通过操作系统的接口进行存储,如 keyring 、keychain 、Credential Manager ,还有什么安全的方式吗?
目前想到的办法有通过操作系统的接口进行存储,如 keyring 、keychain 、Credential Manager ,还有什么安全的方式吗?
|
QingXuJiaZhiDec 23, 2021
1
安全具体是指什么?
比如这个密码是否需要明文传输到客户端(或在客户端解密),客户端是否受控? 服务器端(保存这个密码的机器)有多少人能物理接触,这些人要不要防? 是自己的密码,还是大量用户的密码?(这点也会影响保密措施) |
|
2
|
|
3dwelcomeDec 23, 2021
3
通过操作系统的接口进行存储,这点没你想的安全。
黑客里 HOOK 系统 API 是基本功,而你这些系统调用,全都是走标准的系统 API 接口。 最好就是自己做个虚拟机,明文加密保存在内部,在 VM 建立一个限制频率的授权访问通道。 这样 1 黑客通常进不去 VM ,改不了程序,2 一旦察觉有非法访问,可以启动自爆程序,销毁全部密码。 |
|
Overfill3641Dec 23, 2021
4
@devliu1 #2 Bitwarden 客户端加密服务器存储,不一样的,拿到服务器数据库也还是得暴力破解。
|
|
FengMubaiDec 23, 2021
5
存到 TPM(如果有的话)
|
|
6
|
|
dingwen07Dec 24, 2021 via iPhone
7
那自然是 HSM
 |
|
iBugOneDec 24, 2021
8
换个思路,首先想清楚这个明文密码是干嘛的。如果没有特别限制的话,这个明文密码**不要让用户提供**,而是由系统随机生成,这样即使泄露了对用户来说也就是重新登录一次的麻烦,而不至于“重要隐私泄露”这样的灾难性后果
|
|
oott123Dec 24, 2021 via Android
9
感觉这个问题比较像 XY 问题,说说你的原始需求如何
|