一、Hashicorp Vault 简介
HashiCorp Vault是一款企业级私密信息管理工具。Vault的创造者HashiCorp公司是一家专注于DevOps工具链的公司,其旗下明星级产品包括Vagrant、Packer、Terraform、Consul、Nomad等,再加上Vault,这些工具贯穿了持续交付的整个流程。
Hashicorp Vault 是一个基于身份认证的机密数据安全和加密管理系统。机密数据是您想要严格控制访问的任何内容,例如 API 加密密钥、密码或证书。Vault 提供由身份验证和授权方法控制的加密服务。使用 Vault 的 UI、CLI 或 HTTP API,可以安全地存储和管理对机密和其他敏感数据的访问,严格控制数据访问,而且是可审计的。
现在很多系统需要访问大量机密数据:数据库凭证、外部服务的 API 密钥、面向服务的架构通信的凭证等。了解谁在访问哪些机密已经非常困难。如果没有自定义解决方案,几乎不可能添加密钥滚动、安全存储和详细的审计日志。这就是 Vault 介入的地方。
以下是 Vault 的关键特性:
- 静态存储:
任意键/值可以存储在 Vault 中。Vault 在将这些机密数据持久化之前对其进行加密,因此获得对原始存储的访问权不足以访问您的机密数据。Vault 可以写入磁盘、Consul 等。
- ·动态存储:
Vault 可以为某些系统按需生成机密数据,例如 AWS 或 SQL 数据库。例如,当应用程序需要访问 S3 存储桶时,它会向 Vault 索取凭证,而 Vault 将根据需要生成具有有效权限的 AWS 密钥对。创建这些动态机密数据后,Vault 会在租约到期后自动撤销它们。
- 数据加密:
Vault 可以在不存储数据的情况下加密和解密数据。这允许安全团队定义加密参数,开发人员可以将加密数据存储在 SQL 数据库等位置,而无需设计自己的加密方法。
- 租赁和续订:
Vault 中的所有机密数据都有与之相关的租约。在租约结束时,Vault 将自动撤销该机密数据。客户也可以通过内置的更新 API 更新租约。
- 撤销:
Vault 具有对秘密撤销的内置支持。Vault 不仅可以撤销单个机密数据,还可以撤销机密树,例如特定用户读取的所有机密数据,或特定类型的所有机密数据。撤销有助于密钥滚动以及在入侵情况下锁定系统。
Vault 带有各种称为 secrets engines 和 authentication methods 的可插拔组件,允许您与外部系统集成。这些组件的目的是管理和保护动态基础设施中的机密(例如数据库凭证、密码、API 密钥)。
二、引入 Vault 的可行性分析
(一)企业信息化系统中敏感信息安全现状
大多数企业信息化系统或平台中,有很大一部分的敏感数据。在分析某一个企业信息化软件时,在敏感数据方面发现了以下信息,这些信息应是具有一些代表性的:
- 系统使用的敏感配置信息,比如数据库账号信息等;
- 用户的账号及密码,登录 web 使用;
- 主机账号、密码、密钥,使用远程桌面时使用;
- 数据库账号、密码,登录数据库时使用。
这些敏感信息,安全方面主要采取了以下几种方式:
- 系统配置相关敏感信息,无安全措施;
- 用户密码采用了MD5+SHA256方式静态加密;
- 主机密码、密钥,数据库密码,采用的是python自带的加密模块进行静态加密。
这些敏感数据的存储位置也大致分为两个地方:
- 系统的敏感配置信息,明文存储;
- git 上存储着系统使用的加密方式和 salt;
- 数据库里存储着加密后的数据。
(二)当前企业信息化系统加密存储方式风险分析
要解密一份加密后的敏感数据,需要三个方面的信息:加密方式 + salt + 加密后数据,这三个数据的存储本身,也就成了安全风险所在。
目前许多企业的信息化性中,敏感信息任意存放,无序管理,缺乏系统性安全管理手段和系统,因此,这些敏感信息风险非常高。
(三)引入 Vault 可行性分析
Vault 的字面意思是“保险库”。
对于静态加密模型来说,最重要的是加密密钥的存储位置以及对这些密钥的访问控制。密钥如果能够进行严格的保护,能够由指定的用户进行管理,并可供特定的服务使用,那静态加密的安全性就会得到大幅提升。
对于企业的信息化系统来说,目前的安全性保证依赖于产品本身上,如果能借助保险库,将数据存入保险库中,并由用户保管各自钥匙,那系统的安全性就有了很大的保证。
针对 Vault 的特性,以及企业信息化系统的现状,我们可以作如下安全提升方案:
- 系统配置信息:
比如数据库凭证,采用静态存储方案,不再以明文方式存储在配置文件中;
- 用户账号信息、主机凭证信息:
采用静态存储方案,将密码、SSL 密钥以静态方式存储在 Vault 中,信息化系统中不再存储直接的凭证信息;
- 数据库堡垒机凭证信息:
支持静态和动态两种存储方式,可以让用户自行选择,信息化系统中不再存储直接的凭证信息。
安全提升方案落地后,给用户在使用信息化系统时提供安全方案选择,可以选择默认的平台加密方案,也可以选择安全性更高的 Vault 解决方案,提高用户的选择权和灵活性。
这样的安全提升方案,在PaaS/SaaS 平台中,由各租户管理员自行配置独立的安全方案,安全优势将更为明显。
三、引入 Vault 的成本分析
- Hashicorp Vault 提供开源版本,授权采用 MPL V2.0 协议,商业软件可免费使用;
- 接入的人力成本需要考虑,主要包括产品、研发、测试的人力成本。
四、引入 Vault 对产品亮点的提升
近几年,在信息化全面普及的大环境下,各种安全问题层出不穷,国家对信息化的安全也越来越重视,《网络安全法》、《数据安全法》、《个人信息保护法》相继出炉。相关的企业和个人对信息安全的要求也越来越高。
企业信息化系统引入 Vault 来提高敏感数据的安全性,可以令企业在信息安全管理方面合规,并成为企业信息化系统的安全亮点。