数据安全待升级?光环有云来帮您!


21年上半年,国际知名社交平台Facebook以及职场社交软件LinkedIn先后发生数据泄露事件。无独有偶,国外某语音社交平台的数据库在某黑客论坛上被免费泄露,其中百万个用户信息,都可以从黑客平台获取到。“数据安全”成为云计算时代的新型敏感词


案例解析

音智达是一家专门在大中华以及东南亚从事数据管理解决方案的信息技术咨询公司,也是光环有云合作良好的合作客户之一。

为什么要升级数据安全?

音智达客户近期帮助某车企提供大数据分析,每天需要定时清洗新增数据。在正常情况下,该项目每日新增数据约为5TB数据。这些数据不仅存储量大,数据信息也非常敏感,因为这些数据里包含了最终用户的个人信息,所以在安全的管理,尤其是数据安全上,十分重要。

光环有云提供的支持

了解到客户需求后,L2C首先帮助客户梳理并升级了现有的安全管理体系,良好的安全管理体系是保证信息安全的基础。其次,L2C帮助客户加强了数据加密、备份的流程优化,保证数据在传输、备份环节尽可能提升安全等级。针对梳理和优化中发现的问题,L2C在第一时间与客户讨论并制定整改解决方案,最终实施并完整交付。

光环有云的数据保护设计原则如下:

AWS上的数据加密经验分享

AWS上的数据加密模型:

  • 模型A:客户管理秘钥管理基础设施和加密方法
  • 模型B:AWS和客户共同管理,其中AWS提供秘钥的存储,客户管理加密方法和秘钥管理
  • 模型C:AWS管理加密基础设施和加密方法

模型A:客户控制加密方法和秘钥管理基础设施(Client-Side Encryption)

  • 秘钥管理的基础设施可以是AWS EC2,也可以是AWS之外的设备;
  • 加密和解密都由用户负责;
  • 用户自己负责保密性、完整性和数据的可用性;

适用的AWS服务:

  • Amazon S3
    • 加密后上传,下载后解密
    • 使用S3加密客户端,从客户的KMI获取秘钥,然后在上传/下载的同时加解密数据
    • S3加密客户端与Java/Ruby/.Net集成

    • 第三方解决方案:

  • Amazon EBS

支持大部分标准的文件级、数据块级的加密工具

Linux:

    • Linux下有Loop-AES,Dm-crypt (with/without) LUKS,  TrueCrypt,数据块级别的加密,任何写入磁盘的数据都将加密
    • Linux下开源文件级加密软件:eCryptfs 和 EncFs

      Windows:

    • BitLocker , Encrypted File System(EFS); TrueCrypt

这些解决方案需要客户提供秘钥(手动方式或者从KMI里获取),而且只能加密非EC2的根卷。

第三方解决方案

可以采用数据中心部署、SAAS模式或者EC2上部署方式

  • AWS 存储网关
  • 在数据进入磁盘前做加密,方法与EBS加密类似
  • Amazon RDS

RDS加密相对要麻烦一些,因为无法直接使用磁盘加密工具来加密。只能在数据写入数据库前,将一些特定的字段加密后再传到RDS,这些加密字段就无法直接检索。解密也需要在用户的应用端处理。

若想快速检索加密字段,需要对加密的字段建一个HMAC的策略,给哈希函数一个秘钥,后续的查询就不会暴露数据的明文值。

第三方解决方案

  • Amazon EMR

MapReduce操作包括4不同点的加密和秘钥管理:

  1. 源数据
  2. HDFS
  3. Shuffle phase
  4. 输出数据
    • 源数据

如果源数据未加密,这个步骤可以跳过,直接通过SSL传输数据到EMR集群。如果源数据加了,那么MapReduce的任务需要在抽取数据时解密;如果公祖刘使用Java并且源数据存储在S3,可以使用上文S3部分提到的任意解密客户端;

 

    • HDFS

HDFS挂载点是集群的临时存储。依赖于实例类型,可能需要有多个挂载点。加密这些挂载点需要使用EMR启动脚本,进行如下的工作:

  • 停止Hadoop 服务
  • 在实例上安装文件加密工具
  • 在挂载点上创建加密目录来挂载加密过的文件系统
  • 重启Hadoop服务

可以在每个HDFS挂在点的代码里,使用开源工具eCryptfs包和一个临时的秘钥生成工具。无需担心持久存储加密的秘钥,因为加密的数据并不会在HDFS实例的生命周期之外存储。

    • shuffle phase

shuffle phase是在Reduce前集群节点间传输数据,加密这个数据的传输,可以在创建Hadoop集群时配置启动脚本,使用SSL传输。

    • Output data 加密

MapReduce任务应该加密输出数据,使用从KMI里获取的秘钥。这个数据可以加密后传输到S3存储。

 

模型B:用户控制加密方法,AWS提供KMI存储组件,用户提供KMI管理层

与模型A类似,只是秘钥存储使用AWS CloudHSM 设备,而非用户的秘钥存储系统。

AWS CloudHSM只有用户有权限访问加密部分,AWS的员工也无法访问。而且CloudHSM有物理和逻辑入侵检测,能够触发设备的归零操作。归零后,设备内存中已经解密的秘钥将被清楚,加密存储的对象的秘钥也将被销毁,有效使得HSM的秘钥无法访问且无法恢复。

CloudHSM能够用于生成和存户秘钥,能够提供加解密操作,但是不提供任何的秘钥生命周期管理功能(访问控制策略、秘钥循环),这意味着一个兼容的KMI需要和HSM一起部署。KMI可以部署在数据中心或者EC2上,通过SSL安全连接来保虎数据和加密秘钥。 AWS CloudHSM服务使用SafeNet Luna设备,任意的密钥管理服务器支持 SafeNet Luna平台都能够和AWS CloudHSM一起使用。

CloudHSM多可用区部署,或者与本地的SafeNet Luna设备联合使用来提升可用性和秘钥的持久性。

SafeNet Luna解决方案支持跨设备的秘钥安全复制。

 

Model C: AWS控制加密方法和全部的KMI

在这个模型下,AWS提供数据的服务器端加密,透明管理加密方法和秘钥

  • AWS KMS

envelope encryption(信封加密)

1、数据秘钥在请求数据加密时由AWS服务生成

2、数据秘钥用于加密数据

3、数据秘钥然后被秘钥加密秘钥加密

4、加密后的数据秘钥和加密后的数据,由用户存储于AWS 存储服务

用于加密数据秘钥的秘钥加密秘钥 与 数据秘钥 独立管理和存储。 为了防止未授权的AWS员工访问加密秘钥,有非常严格的访问控制。当你需要访问铭文数据时,流程就反过来了。  加密的的数据秘钥通过 秘钥加密秘钥解密,然后用于解密数据。

以下的AWS服务提供多种加密功能供用户选择:

    • Amazon S3

1.服务器端加密

通过API或console设置标识,使得所有数据在写入S3前加密。每一个对象都是使用唯一的数据秘钥加密。作为一个附加的安全防护,这个秘钥是会被S3管理的周期性替换的主秘钥加密。

2.客户提供的服务器端加密

客户使用自己的加密秘钥,AWS通过AES-256加密数据。加密完成后,用户提供的秘钥立即被删除。当需要从S3读取数据时,用户应该在请求中提供相同的秘钥,S3来匹配和解密数据。这个功能不单独收费。

3.使用KMS做服务器端加密

定义AWS KMS 主秘钥,加密用于数据加密的秘钥。上传数据时,请求发送至KMS以创建一个对象秘钥,KMS生成这个对象秘钥并使用主秘钥加密。然后将秘钥明文和密文传输到S3,S3加密数据后删除明文秘钥。

获取数据时,S3将加密的数据秘钥传至KMS,获得秘钥明文,用于解密对象数据。

    • Amazon EBS

创建EBS的时候可以选择使用KMS主秘钥加密卷秘钥,在你选择之后,EC2服务器发送请求给KMS,用于创建一个卷秘钥。KMS生成卷秘钥,并使用主秘钥加密,同时返回明文的卷秘钥和机密的卷秘钥给EC2服务器。明文秘钥存储于内存中,加密传入和传输EBS卷的数据。当加密卷或任意的加密快照需要被重新关联到实例上时,一个请求将被发送至KMS来解密加密的卷秘钥。KMS解密后将秘钥明文返回给EC2。

    • Amazon Glacier

在写入磁盘前,始终使用AES256 自动加密存储到Glacier的数据。

    • 存储网关

AWS存储网关传输和加密存储在S3或Glacier的数据,使用各自的服务器端加密策略

    • EMR

S3DistCp是用于S3存储桶之间、S3和HDFS之间大量数据传输的一个EMR功能,当写入EMR数据到一个S3存储桶时,S3DistCp支持使用服务器端加密,无需支付额外成本。

    • RDS Oracle

可选择使用Oracle高级安全选项来利用透明数据加密(TDE)和本地网络加密(NNE)功能。Oracle 加密模块创建数据可秘钥加密秘钥来加密数据库。用于RDS  Oracle的专用秘钥加密的秘钥会通过一个周期性替换的主秘钥加密。

    • RDS SQL Server

可以提供透明数据加密(TDE),SQL Server加密模块创建数据和秘要几米秘钥来加密数据库。用于RDS SQL Server的加密数据秘钥的秘钥会通过一个周期性替换的朱秘钥加密。

    • Redshift

创建Redshift集群式,可以选择加密所有的用户创建表中的数据。服务器端假面可以有三个选项供选择:

1.第一个选项:数据块(包括备份)通过AES-256加密,这些秘钥本身使用一个AES-256数据库秘钥加密。数据库秘钥又通过AES-256的集群主秘钥加密。集群主秘钥再通过一个周期性替换的RDS服务专用的区域主秘钥加密。

2.第二个选项:AES-256的集群主秘钥是在CloudHSM或本地的SafeNet Luna设备生成。集群主秘钥在HSM中被主秘钥加密后再也不会离开HSM。当Redshift集群启动时,集群主秘钥在HSM中解密然后用于解密数据库秘钥,数据库秘钥将被传输到Redshift集群的内存中,只在集群的生命周期内有效。如果集群重启,集群主秘钥将再次从HSM获取,它永远不会在磁盘中明文存储。

3.第三个选项:AES-254集群主秘钥在AWS KMS中生成。并被AWS KMS的主秘钥加密。其他流程与选项二一样。

如果数据从S3导入Redshift时加密了,那么Redshift会先解密后加密。

这些服务器端加密功能可以通过CLI、API或者Console实现。授权的秘钥使用由AWS自动和安全的管理。由于未授权的访问秘钥会导致数据泄露,AWS建立了系统和流程来控制访问,以最小化未授权的访问,并通过第三方审计来达到安全认证包括SOC1,2,3和PCI-DSS和FedRAMP。

加密策略一览:

 

想了解更多信息吗?想让企业的数据信息也更加安全吗?欢迎联系我们!

通信邮箱:support@light2cloud.com.cn