加密,防止网站证书私钥泄露
_U2_ · · 2080 次点击 · · 开始浏览本文首发于作者的微信公众号:网络安全生命周期
原文链接: 加密,防止网站证书私钥泄露
【风险与背景】
如果网站使用的数字证书私钥文件泄露,会造成什么后果呢?
黑客就可以构建假冒的钓鱼网站,借助DNS劫持,将用户引导到假网站上面去,可窃取用户的口令等敏感信息;或者黑客执行中间人攻击。
微软2015年12月就曾出现*.xboxlive.com证书私钥泄露事件,所幸及时发现,吊销了证书,事件未造成进一步损失。
【现状】
当前,各大主流Web服务器在配置证书的时候,均使用文件形式的证书及私钥文件,在配置文件中设置2个证书文件的路径。
以Nginx为例:
server {
listen 443 ssl;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
...
}
可以看出,私钥文件直接明文存储在文件系统。
如果黑客进入到了这台主机,就可以拿到证书的私钥了。
【改进思路】
将证书明文保存在文件系统中,不是一个好的实践,那么可以怎么改进呢?
笔者在设计Janusec Application Gateway时,采取的方法是将证书文件和私钥文件都存储在数据库中,并且在写入数据库之前,先对私钥文件的内容进行加密。
【实践】
在基于Golang打造WAF网关一文中,提到了Janusec Application Gateway采用基于Web的统一的证书管理器来统一管理各业务的证书,并对证书私钥采取了AES256的加密措施,加密后写入数据库,而不再使用文件形式存储。
使用psql登录进Janusec所使用的PostgreSQL数据库,查询私钥的结果看上去是这样的(二进制密文):
由于私钥使用了加密技术存放于数据库(不同的部署实例使用不同的加密密钥),大大降低了私钥泄露的风险。
这是一款基于Golang打造的应用安全网关,具备WAF(Web应用防火墙)功能、CC攻击防御、组合策略配置,天然支持HTTPS,无需Agent,私钥加密存储在数据库,提供负载均衡和统一的Web化管理入口。
这款产品已经开源,如果有兴趣,可到Github查看:
https://github.com/Janusec/janusec
( --完--)
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
本文首发于作者的微信公众号:网络安全生命周期
原文链接: 加密,防止网站证书私钥泄露
【风险与背景】
如果网站使用的数字证书私钥文件泄露,会造成什么后果呢?
黑客就可以构建假冒的钓鱼网站,借助DNS劫持,将用户引导到假网站上面去,可窃取用户的口令等敏感信息;或者黑客执行中间人攻击。
微软2015年12月就曾出现*.xboxlive.com证书私钥泄露事件,所幸及时发现,吊销了证书,事件未造成进一步损失。
【现状】
当前,各大主流Web服务器在配置证书的时候,均使用文件形式的证书及私钥文件,在配置文件中设置2个证书文件的路径。
以Nginx为例:
server {
listen 443 ssl;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
...
}
可以看出,私钥文件直接明文存储在文件系统。
如果黑客进入到了这台主机,就可以拿到证书的私钥了。
【改进思路】
将证书明文保存在文件系统中,不是一个好的实践,那么可以怎么改进呢?
笔者在设计Janusec Application Gateway时,采取的方法是将证书文件和私钥文件都存储在数据库中,并且在写入数据库之前,先对私钥文件的内容进行加密。
【实践】
在基于Golang打造WAF网关一文中,提到了Janusec Application Gateway采用基于Web的统一的证书管理器来统一管理各业务的证书,并对证书私钥采取了AES256的加密措施,加密后写入数据库,而不再使用文件形式存储。
使用psql登录进Janusec所使用的PostgreSQL数据库,查询私钥的结果看上去是这样的(二进制密文):
由于私钥使用了加密技术存放于数据库(不同的部署实例使用不同的加密密钥),大大降低了私钥泄露的风险。
这是一款基于Golang打造的应用安全网关,具备WAF(Web应用防火墙)功能、CC攻击防御、组合策略配置,天然支持HTTPS,无需Agent,私钥加密存储在数据库,提供负载均衡和统一的Web化管理入口。
这款产品已经开源,如果有兴趣,可到Github查看:
https://github.com/Janusec/janusec
( --完--)