随着云计算、大数据、AI等技术的不断发展,企业中各类系统中存储了大量的核心数据,已成为企业重要的生产资源和生存命脉,数据安全也因此成为了企业最核心且最突出的问题。

在国家《数据安全法》正式实施的背景下,爱奇艺安全团队基于《GBT22239-2019信息安全技术网络安全等级保护基本要求》以及《中华人民共和国密码法》的相关标准与要求,推出了Cloud KMS 密钥管理平台,重点解决数据存储加密以及密钥管理的相关问题。

由于会员敏感数据量级、使用场景基本一致,单系统逐一接入会造成开发人力成本过高,并且不利于系统维护,所以会员部门针对现有Cloud KMS进行二次封装,将数据加密和密钥管理与业务运行相结合,有效提升了会员数据的安全性

我们先来了解下经典的Cloud KMS平台。

01 Cloud KMS介绍

Cloud KMS(Cloud Key Management System,简称 Cloud KMS)密钥管理平台是基于HSM硬件、虚拟化等技术,实现对密钥的安全存储、管理和更新的一站式密钥管理和数据加密服务平台,其核心在于安全保存业务密钥,并且支持使用专用的存储设备来保障密钥的存储安全使用安全的散列算法生成用户密钥,使用身份认证机制来控制对密钥的访问

主要功能

密钥生命周期管理

Cloud KMS提供对密钥的集中化托管与控制,托管在 KMS上的密钥叫做业务主密钥CustomerMaster Key,简称 CMK),业务可以自行创建用户主密钥 (CMK),并通过认证机制轻松管理密钥的访问。

KMS支持从外部导入密钥,目前支持128位、256的对称密钥的导入,方便业务更便捷的接入到 KMS

数据加解决密

同时,KMS采用两地三中心的部署方式来保障服务的高可用性,并提供了简单高效的API来支持创建数据密钥、对数据加密和解密等操作。

接口鉴权

KMS借助身份认证机制(AccessKey)来鉴别请求的合法性,并支持业务自行创建和管理AK/SK密钥对。

Cloud KMS架构

使用场景

信封加密:使用KMS创建一个主密钥,使用主密钥生成一个数据密钥,再使用。

数据密钥在本地加解密数据。这种场景适用于数据对象较大(如文件、视频等)的加解密。

加密内容较大,且多为文件、视频类非结构型,则使用信封加密场景合适。

加密流程

解密流程

在线加密:使用KMS创建一个主密钥,使用主密钥直接对数据进行加解密。这种场景适用于数据对象较小的加解密。

• 加密内容较小,如证书,使用在线加密场景合适。

02 业务实践

会员业务实践

背景

爱奇艺会员业务敏感数据主要集中在会员密钥、激活码等场景,主要体现为单体数据量不大、数据量级大、调用频次高。且对数据异常场景敏感,由此在二次封装的基础上优先使用的是在线加密的方式。

实践过程中,在Cloud KMS底层基础功能之上增加业务适配功能,包括缓存、重试策略、定时更新密文等,并且将与底层服务交互的细节进行隐藏,减少业务使用方的接入以及学习成本,提供适配SpringBoot、MyBatis、配置中心等组件的Starter,做到低侵入式的引入。

框架结构

目前会员内部部分系统已经接入KMS,所有对外&内部存储的数据均为加密数据,加解密都是基于国密局批准的硬件芯片相关的算法完成,整体架构如下:

适配功能拓展

1. 支持短时间内业务方在内存中存储密文数据,可根据实际情况配置不同的存储时间和存储方式。

2. 定制化缓存密钥淘汰策略,根据实际情况配置淘汰策略,目前支持全部更新、FIFO更新,后续会支持更多算法。

3. 插拔式重试策略,内置默认重试策略,业务方可根据外露接口,定制化重试策略。

处理流程

主要处理流程分为:权限验签、配置解析、自定义逻辑处理、重试策略、缓存更新等,会服务平台根据业务方分配主密钥,业务方把主密钥配置到配置中心非敏感信息放到本地文件,引入KMS工具包后通过配置即可实现加解密功能。

权限验签:通过使用方配置的AK/SK校验接入方身份

配置解析:解析配置文件以及配置中心数据

自定义逻辑处理:用户实现扩展接口,实现自定义处理逻辑

重试策略:Cloud KMS调用出现异常情况,重试配置

缓存变更:会在业务方系统缓存一定时间的密文数据,避免对下游造成较大压力

业务价值

接入KMS加解密之后,使用方不再需要把重心放在数据的加解密转换,甚至于对数据的形态不需要关注,很大程度上减少了使用方的开发成本,与此同时上下游的交互以及数据的流转不再需要冗余的代码进行适配,使得业务逻辑更加的简洁明了。其更多的价值体现在以下数据层面和系统层面:

数据层面

1. 确保每一条敏感数据的加解密都是通过KMS完成、确保每一条数据都符合安全等级保护基本要求

2. 提升密文数据在多系统内的通用性,减少系统耦合,重复开发减少大约80%,减少除开业务之外的因素影响、使得业务逻辑更加的清晰

3. 敏感数据管理更加统一和规范,减少数据运维工作量50%

系统层面

1. 减少对接频率,降低系统复杂度熔断限流等操作更加统一,减少运维成本30%(仅和加解密相关)

2. 避免重复造轮子,复用性强,便于升级迭代

后续规划

目前,二次封装的Cloud KMS还是属于较小范围内的推广,虽然适配了绝大多数场景,但是仍存在许多需要调整的地方,后续此工具的定位是一个基础组件,具备一定的分流、容灾、数据备份的功能。

● 扩大对业务方的自主权,可以对加密过程进行定制化

● 增加不同算法的支持,具备更多的选择

● 整合现有的DDD模版,做到零侵入

声明:本文来自爱奇艺技术产品团队,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。