摘自《大型网站技术架构》( 李智慧)

信息的安全是靠密钥保障的。但在实际中经常看到,有的工程师把密钥直接写在源代码中,稍好一点的写在配置文件中,线上和开发环境配置不同的密钥。总之密钥本身是以明文的方式保存,并且很多人可以接触到,至少在公司内部,密钥不是秘密。

实践中,改善密钥安全性的手段有两种

方案一

把密钥和算法放在一个独立的服务器上,甚至做成一个专用的硬件设施,对外提供加密和解密服务,应用系统通过调用这个服务,实现数据的加密解密。由于密钥和算法独立部署,由专人维护,每次加密、解密都需要进行一次远程服务调用,系统性能开销也较大。

方案二

将加密算法放在应用中,密钥则房子独立服务器中,为了提高密钥的安全性,实际存储时,密钥被切分成数片,加密后分别保存在不同存储媒介中,监护密钥安全性的同时,有改善了性能,如图所示:
在这里插入图片描述
应用程序调用密钥安全管理系统提供的加密解密服务接口对信息进行加密解密,该接口实现了常用的加密解密算法并可根据需求任意扩展。加解密服务接口通过密钥服务器的密钥服务取得加解密密钥,并缓存在本地(定时更新)。而密钥服务器中的密钥则来自多个密钥存储服务器,一个密钥分片存储在多个存储服务器中,每个服务器都有专人负责管理。密钥申请这、密钥管理者、安全审核人员通过密钥管理控制台管理更新密钥,每个人各司其职,没有人能查看完整的密钥信息。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐