@
raw0xff 值不值得你花费大量时间去设计复杂的密码保护措施,取决于密钥的重要程度。
假设你的云主机有防火墙,Linux 系统也及时升级了安全补丁,你认为你的系统固若金汤,几乎不可能被 hacker 攻破获取到 root 权限,那你就把密钥明文存放在 Linux 的某个文件中,将文件权限设为 root 只读,这样也不是不可以。
假设你的云主机没有防火墙,Linux 系统也没有靠谱的管理员去维护升级安全补丁,甚至这台云主机还允许开发和测试随意登陆,那你的密钥保护措施就必须设计得很复杂很严密。
前置条件不同,你的密钥保护措施也截然不同,安全不是由单个因素决定的,是多个因素共同决定,没有什么银弹方案能确保绝对的万无一失。安全性取决于你的需求以及愿意付出的成本(时间成本,管理成本,人力成本,设备成本等等),安全是有成本的,抛开成本去谈安全就是耍流氓。
所以,你这个场景是要求 root 权限即使被 hacker 获取了也无法得知密钥,本身对密钥管理方式提出了很高的要求,毕竟在 Linux 系统下 root 是最高权限,而 root 权限是系统的安全底线,root 权限都被突破了还要保证密钥安全,势必要求付出更多的成本(比如我上面提到的 TPM 芯片 + 可信计算),你不能既要安全性又不肯付出 money ,世界上可没有两全其美的事。