大家公司的生产级别代码,对于密码等敏感数据的安全储存一般是怎么操作的?

14次阅读

共计 605 个字符,预计需要花费 2 分钟才能阅读完成。

想在开源项目里用比较正规的流程储存密钥等敏感数据,但是实习经验不多,自己做的过程中还是挺多问题的,有没有大佬讲讲一般商业公司是怎么处理的。想学习一个一般商业公司的还可以的安全管理实现,主要是像大公司或者云平台那种管理咱也没那个成本搞,搞了也用不上。

目前我的操作方法就是注入数据库密码等等把密文写到配置文件里,然后在代码里读取并解码,就还原成真实密码。唯一好处可能是密文和代码分离了,方便管理。但是密文和密钥又都写在一块,解码方式也很明确,感觉还是意义不大。如果说真的是为了对抗网络攻击的话,那代码泄露和配置文件泄露的安全损害级别应该是一样的,对方有能力获取你的代码又怎么会没能力获取配置文件,还不是会导致所有原文泄露?

在用户管理方面,比如 nginx 是 A 用户启动的,业务是 B 用户启动的,给密钥文件夹加上 B 的只读权限也许有用。不过说实在的既然只用 nginx 做路由,业务过于单纯,实在是想不到它有什么潜在风险。毕竟全球运行这么多年了,好像也没听说过哪个 0day 漏洞导致 nginx 本身出问题的。

还有一个处理方案可能是配置文件只存密文,在每次服务启动时管理员手动输入密钥,但是现在服务都做的容器化,每次启动输入既麻烦又不好管理,我觉得应该没有人实际上是这么操作的。

最后我还想知道一般安全设计上是否需要防范内存攻击,我的程序把密码原文读取到内存,需要防止有人把内存 dump 出来做分析吗,这是否意味着相关内存需要尽快被销毁?

正文完
 0