云环境下的数据(库)安全
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
云环境下的数据(库)安全
作者:安华金和杨海峰
近些年云计算发展风起云涌,政府、企业、金融、公共事业等都在建设或者规划上云;目前,云计算按照部署模式主要分为公有云、私有云(也称作内部云或企业云)、混合云,但CIO们却在不断重演莎翁经典对白:“公有云还是私有云,这是个问题”。引发这一问题的关键点:云环境的安全合规性问题,也就是云环境的法规遵从、云数据的安全如何保障、云环境风险管理;这个问题也越来越成为公有云、混合云发展中被讨论的核心问题。
笔者根据目前国内外数据(库)安全的发展现状和经验,结合亚马逊AWS[1]、阿里云、腾讯云、UCloud、华为云等国内外云服务厂商,和IBM、微软等IT巨头的云服务情况,从云数据(库)安全角度,归纳介绍云环境下数据(库)安全四种技术路线与安全模型架构和云数据(库)安全关键技术。
云数据(库)安全之技术路线
从法规遵从和企业、个人敏感信息防护的角度,相比私有云环境和传统企业IT环境,公有云和混合云环境中的数据面临着前所未有的,来自开放环境和云运维服务环境的安全挑战。笔者认为抓住主要矛盾,围绕核心敏感数据,进行最彻底有效的加密保护,比较典型的敏感数据包括身份证号、姓名、住址、银行卡、信用卡号、社会保险号等等,以及企业的核心资产数据。在此观点下,笔者提出以加密保护为基础的技术路线:
●以敏感数据加密为基础
●以安全可靠、体系完善的密钥管理系统为核心
●以三权分立、敏感数据访问控制为主要手段
●辅助数据库防火墙、数据脱敏、审计等边界系统,规范和监控数据的访问行为
云数据(库)安全之模型和架构
实现以敏感数据加密为基础的技术路线,最关键的是“密钥由谁控制、在哪管理”;同时需要解决数据加密防护和密钥管理引起的对系统运行效率,系统部署和改造的代价,自动化运维的影响等一系列问题。对此,亚马逊AWS的解决方案中采用多种密钥管理模型:
模型A :加密方法,密钥存储,密钥管理全部由用户控制,典型的是整个KMS [2](密钥管理系统)部署在用户的数据中心。
模型B :与模型A 中的加密方法是一样的,区别在于密钥的存储是在云的KMS 而不是在用户端的数据中心。
模型C :本模型提供了完整的服务器端加密,加密方法和密钥的管理对于用户是透明的。
图1 AWS 云数据(库)安全模型
表1 安全模型对比
围绕三种安全模型,可以在多个层上实现数据加密防护—多层数据加密防护架构,具体如下:
1、磁盘加密:采用的是Block-Level 加密技术,需要云存储卷采用Block 存储机制,例如AWS 的EBS [3],阿里云的ECS [4]等。这种加密最大的好处在于,它对操作系统是透明的。
模型A 模型B 用户自己管理
云内部管理
模型C
2、文件加密:通过堆叠在其它文件系统之上(如 Ext2, Ext3, ReiserFS, JFS 等),为应用程序提供透明、动态、高效和安全的加密功能。典型的是用于加密指定的目录。需要关注的是这种加密方式可能会产生较大的性能损失。
3、数据库加密:(1)以亚马逊AWS 的RDS [5]为例,典型的是使用DBMS [6]提供的数据库透明加密,自动的对数据库表空间数据进行加密,密钥管理也是由DBMS 提供的API 或组件实现,应用透明。由于RDS 没有对外开放RDS 用于存储数据的磁盘,因此前面提到的“透明”磁盘、文件加密技术无法在RDS 上使用。(2)对于用户在云上自行部署使用的DBMS ,可以使用第三方专业数据库加密厂商提供的产品,如安华金和的数据库保险箱DBCoffer ,可提供应用透明的按列加密能力,独立的密钥管理、三权分立、静态数据掩码能力。
4、应用层加密:在数据到达数据库和RDS 之前,甚至发送到云端之前,实时保护用户的敏感数据;这里关键需要提供良好的应用透明性,保证绝大多数应用无需改造。云用户(企业)没有必要信任云计算提供商以保护企业的数据安全。数据安全是由企业自己控制的。
5、密钥管理和加解密组件:作为数据加密保护的核心组件,KMS 负责进行密钥生成、管理和销毁,并提供加解密能力;同时根据需要提供密钥的生命期管理、开放的API 接口。
综上,云用户(企业)可以根据自身的安全合规性需求,选择适合的云数据安全模型和相应的数据安全技术(产品),对敏感数据进行加密防护。
图2 多层云数据加密防护架构
表示驻留agent ,负责加解密和权控
KMS
云数据(库)安全之关键技术
上文笔者提出了一套云环境下的“多层数据加密防护架构”。下面针对实现该安全防护架构与相关关键技术进行具体分析。需要说明的是,由于整盘加密和TDE[7]属于云服务商和数据库厂商的范围,不在本文中讨论。
KMS密钥管理和加解密算法
密钥管理包含了密钥的创建、存储、生命期管理、保护。密钥的安全性直接决定了加密数据的安全性。建议密钥独立存储,并采用根密钥保护,根密钥受硬件加密卡保护,或者被KMS服务的密码保护。
图3 密钥安全体系
KMS密钥管理通过用户的口令保护主密钥,口令正确主密钥解密;主密钥对密钥文件进行保护,只有主密钥成功解密后,密钥文件才能使用,最后通过密钥文件生成可用的密钥。
加解密算法方面,除了必要的强加密算法(如AES256)和相关机构认证的硬件加密算法外,这里特别需要提出,为了实现应用的透明性,需要根据应用系统的需求提供专门的加密算法,如FPE[8],Tokenization,SSE[9]等。
FPE加密算法,是一种格式保留的加密算法,主要面向身份证、银行卡号、信用卡号、社会保险号等具有数据特征的信息进行加密,该算法加密后的数据能够保留原有的数据格式,从而对应用的业务逻辑不会产生任何影响,保证了应用的透明性。
Tokenization,是一种数据掩码算法。与FPE[8]类似,通过对数据的“扰乱”,并保留数据的原有格式,达到加密的效果,同时保证应用的透明性。
图4 FPE加密算法的效果(保留格式)
数据库透明加密
数据库透明加密是按列对数据进行加密的,针对指定的列,采用指定的加密算法和密钥、盐值等进行加密处理。加密后的数据以密文的形式存储在DBMS[7]的表空间中。
只有经过授权的用户才能看到明文数据,并且授权也是按列进行的,这种方式具备很好的灵活性和安全性。非授权用户,将无法读取加密列(查询)和更改加密列的数据。
权限管理上,数据库透明加密采用了分权的机制,实现了三权分立,有效制约了数据库管理员(DBA)这样的特权用户对数据的访问。同时这种保护又是透明的,不会对管理员的日常工作造成不便。
最重要的是数据库透明加密应用透明,应用系统和外围维护工具无需改造,涵盖SQL 语句透明、存储程序透明、开发接口透明、数据库对象透明、管理工具透明。