上云安全话题:数据加密全攻略

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
云安全基线管理CSPM免费试用,1000次1年
云安全中心 防病毒版,最高20核 3个月
简介: 云上数据安全的挑战 数据是企业的生命,对数据提供必备的保护,就是保护企业的生命,因此数据安全是企业上云的刚需。 在原来传统的IT系统中,企业是将应用系统跟数据放在自己的IDC里,认为在这样的环境下其系统和硬件、数据安全是可控的。

云上数据安全的挑战

数据是企业的生命,对数据提供必备的保护,就是保护企业的生命,因此数据安全是企业上云的刚需。

在原来传统的IT系统中,企业是将应用系统跟数据放在自己的IDC里,认为在这样的环境下其系统和硬件、数据安全是可控的。企业会花更多的成本去打造防火墙,保证逻辑上的城墙牢不可破。这就是传统的鸡蛋壳模型——在这种模型下,企业对防火墙内的数据保护是有限度和有选择的。

而如今企业上云,底层的基础设施是共享的,企业不再物理上拥有对计算设施和存储设施的全盘掌控,一切都只能交给云服务提供商。分布式多租户的架构导致鸡蛋壳模型被打破。企业虽然通过在虚拟网络中构建云防火墙来防止一些外部威胁,但是云服务的本质是多租户、大规模分布式系统,企业托管在云上的数据分布于各个云产品的分布式系统中,无论是企业自身还是云服务提供商,均不能建立一个租户级别的“防火墙”把这些数据隔离起来。

所以企业要上云,对数据安全的需求会非常迫切。归根到底是环境的变化而导致了需求的优先级不一样。传统IT设施的数据安全,着重解决内部威胁(insider threat)和外部威胁(outsider threat),云上IT设施则还要解决数据托管在云厂商带来的安全与合规挑战,这并不是传统意义上的内外部威胁 - 从另一个角度看,可以被认为是云服务提供商如何提供一个可信、可控制的计算和存储托管环境。

解决方案:数据加密

那如何解决这个难题?

数据加密。

加密是一个古老的技术,有个叫潜伏的电视剧中,特务们发出的电报,在公共空间传播,谁都可以去把电波截获下来,但是他们有一个密码本,拿不到密码本,即便电波被截获下来也是枉然。

阿里云的大数据计算平台、云原生数据库、云服务器等,都支持云原生的数据加密能力,且阿里云给用户提供了密钥管理服务,通过密钥管理和云产品的数据加密功能,保证用户在云上使用这些产品时,数据都是可加密的。密钥管理服务的设计,正是为了保护好用户的“密码本”,并且安全的授权云服务或者企业自己的用户使用它来达成数据的加密保护。

1. 加密入门:可见的“默认加密”

为了更方便的让用户对低安全级别的数据进行加密保护,阿里云KMS提供了服务密钥,方便用户以最低成本实现可见的数据加密

服务密钥

由云服务(云产品)托管在KMS的,归属于用户的密钥,这类密钥用户可见,但是其生命周期由用户授权的云产品托管。云产品使用服务密钥对数据进行加解密的过程,KMS记录在用户的ActionTrail中,用户可以对其使用进行审计。

打开“默认加密”

在已经支持的云产品中,用户可以选择对应的加密功能,如果用户不进一步指定加密密钥,那么云产品就会为用户创建一个服务密钥(一个云产品为一个用户仅创建一个服务密钥),并使用此服务密钥对用户数据进行加密保护。

举个栗子:用户创建ECS云盘时,可以打开加密功能,随后并不指定具体的加密密钥。此时ECS则会使用服务密钥。

查看服务密钥

用户可以在KMS控制台,或者通过CLI、SDK、OpenAPI Explorer等等等等方式去查看服务密钥。服务密钥特征明显:其别名为acs/${云产品代码}

如下图中的别名为acs/oss的服务密钥,为OSS服务为用户创建的默认加密密钥。其生命周期由OSS服务为用户托管(例如用户不能禁用)
ba8f6e522fb34ed10ffd3eef70999783

2. 加密进阶:可见可控的全托管加密

使用服务密钥,用户实际上是通过牺牲一定的自主性,换取更低的加密成本。

如果需要有更大的可控能力,则需要在云产品服务端加密时,选择由用户自己托管在KMS中的密钥。由于云产品并不是密钥托管者,对密钥的使用需要获得用户的显式授权。RAM服务是云产品和KMS之间的权限鉴别仲裁者,用户通过RAM服务配置权限策略,允许或者拒绝云产品使用特定的主密钥,云产品访问KMS时,KMS向RAM服务验证云产品是否具备使用特定主密钥的权限。

用户可以参考各个云产品的相关文档,获取进一步信息了解如何使用自选密钥加密的功能。官网文档链接:服务端集成KMS加密的云产品

3. 加密高阶:可见可控的半托管加密 - Bring Your Own Key

更高级的安全能力来自于业界普遍认可的一项技术:BYOK。简而言之,BYOK是指,通过安全的方式,将用户线下生成的密钥导入到云上的KMS托管的加密机中,并且保证加密机不能导出此密钥。而用户可以随时删掉云上的密钥,保留下一次导入同一个密钥的能力。

几乎所有的加密机生产商都会提供导入密钥,且设置密钥不可被导出的能力,KMS的BYOK功能提供了用户一项可信度非常高的保证,让用户几乎可以100%控制住云上的加密密钥,用于服务端的原生数据加密。参考官网文档链接:导入密钥材料

中途小结:云产品服务端加密技术框架

不同产品基于业务形态和客户需求,其加密的具体设计略有不同。通常,存储加密中密钥层次结构会至少分为两层,并通过信封加密的机制实现对数据的加密。

第一层为KMS中的用户主密钥(CMK),第二层为数据密钥(DK)。CMK对DK进行加解密操作和保护,DK对业务数据进行加解密操作和保护。在业务数据落盘存储时,云产品会将DK的密文(由KMS使用CMK加密)与业务数据的密文(由云产品使用DK加密)一同写入持久化存储介质中。信封加密中的“信封”是指在概念上DK的密文和业务数据的密文被打包在一个“信封”(Envelope)中。在读取加密数据时,DK的密文也会一同被读取,并先于业务数据进行解密。只有在DK被解密后,密文的业务数据才能够被正常解密读取。
p64857.png
在信封加密机制中,CMK受KMS提供的密钥管理基础设施的保护。云产品必须通过恰当的用户授权,才可以使用对应的主密钥来产生DK,用于业务数据的加密,也只有通过用户授权,才可以使用对应的主密钥来解密DK的密文,用于业务数据的解密。DK的明文仅会在您使用的云产品服务实例所在的宿主机的内存中使用,不会以明文形式存储在永久介质上。

4. 加密更高阶:自己写代码调用KMS

如果用户有更敏感的数据需要保护,或者为了满足GPDR或者其他法律法规要求,必须针对特定的数据实现主动加密保护,也可以直接调用KMS的API。KMS的API使用方式的常见实践有以下两种

当然用户也可以设计更复杂的密钥层次结构和密钥分区方式,完成复杂系统的数据加密。

5. 加密最高阶:自己管理HSM集群和写代码

最有可控力的方式,是使用阿里云加密服务的加密机(也叫HSM)。使用加密服务的HSM,用户可以有独享的HSM实例。相对而言,虽然KMS也支持使用HSM来托管用户的密钥,但是KMS的HSM设施是由多租户共享的。除此之外,加密服务的HSM是由用户自主管理和控制,而KMS的HSM则是由KMS托管。

由于加密服务提供的是HSM实例,用户需要考虑以下运维能力

  • HSM的可用区分布:可用性
  • HSM中密钥持久化的存储系统:可靠性
  • HSM初始化安全参数的持久化:可靠性和安全性
  • HSM集群搭建提供负载均衡的能力:可扩展性

除此之外,由于HSM的特殊性,一些HSM厂商并不提供服务端LB的能力,需要配套的客户端LB模块。当然,可以实现LB之前,用户需要将密钥从一个HSM实例上,同步到另一个HSM实例上,否则即便是基于客户端的LB也无法工作。

如果用户需要一些高级功能,则需要自建一些额外的管理能力,例如网络鉴权规则;资源管理,标签;密钥版本管理,自动轮转等。这实际上就是要自建一套KMI了。当然,换来的是最高的云上数据的安全和隐私。

6. 配合使用加密服务和KMS

如果有必要,用户也可以配合使用加密服务和KMS:用户可以在加密服务中自主管理HSM,并且管理密钥的产生;通过安全导入密钥到KMS的托管密码机中,用户可以获得以下好处

  • 使得加密服务可以间接被用于云产品的服务端加密。
  • 可以通过KMS的密钥别名功能,实现自主加密业务的同时支持人工轮转加密密钥

参考文档

方式1:点一点按钮就加密

服务端集成KMS加密概述

服务端集成KMS加密的云产品

方式2:写代码加密

使用KMS主密钥进行在线加密、解密数据
使用KMS信封加密在本地加密、解密数据

目录
相关文章
|
1月前
|
存储 安全 数据安全/隐私保护
解锁Python安全新姿势!AES加密:让你的数据穿上防弹衣,无惧黑客窥探?
【8月更文挑战第1天】在数字化时代,确保数据安全至关重要。AES(高级加密标准)作为一种强大的对称密钥加密算法,能有效保护数据免遭非法获取。AES支持128/192/256位密钥,通过多轮复杂的加密过程提高安全性。在Python中,利用`pycryptodome`库可轻松实现AES加密:生成密钥、定义IV,使用CBC模式进行加密与解密。需要注意的是,要妥善管理密钥并确保每次加密使用不同的IV。掌握AES加密技术,为数据安全提供坚实保障。
100 2
|
5天前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
20 8
|
26天前
|
安全 算法 数据安全/隐私保护
加密与安全:公开密钥加密、加密过程、数字签名等
这篇文章详细解释了非对称加密算法,包括公开密钥加密的原理、加密过程、数字签名的功能,以及它与对称加密的比较和实际应用场景。
加密与安全:公开密钥加密、加密过程、数字签名等
|
6天前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
19 5
|
10天前
|
存储 安全 算法
显微镜下的安全战!Python加密解密技术,透视数字世界的每一个安全细节
【9月更文挑战第7天】在数字世界中,数据安全至关重要。Python加密解密技术如同显微镜下的精密工具,确保信息的私密性和完整性。以大型医疗机构为例,通过AES和RSA算法的结合,既能高效加密大量医疗数据,又能安全传输密钥,防止数据泄露。以下是使用Python的`pycryptodome`库实现AES加密和RSA密钥交换的简化示例。此方案不仅提高了数据安全性,还为数字世界的每个细节提供了坚实保障,引领我们迈向更安全的未来。
18 1
|
26天前
|
安全 算法 Java
java系列之~~网络通信安全 非对称加密算法的介绍说明
这篇文章介绍了非对称加密算法,包括其定义、加密解密过程、数字签名功能,以及与对称加密算法的比较,并解释了非对称加密在网络安全中的应用,特别是在公钥基础设施和信任网络中的重要性。
|
1月前
|
存储 安全 算法
显微镜下的安全战!Python加密解密技术,透视数字世界的每一个安全细节
【8月更文挑战第3天】在数字世界中,数据安全至关重要。以一家处理大量敏感医疗信息的医疗机构为例,采用Python实现的AES和RSA加密技术成为了守护数据安全的强大工具。AES因其高效性和安全性被用于加密大量数据,而RSA则保证了AES密钥的安全传输。通过使用Python的`pycryptodome`库,可以轻松实现这一加密流程。此案例不仅展示了如何有效保护敏感信息,还强调了在数据加密和密钥管理过程中需要注意的关键点,为构建更安全的数字环境提供了参考。
37 10
|
1月前
|
Kubernetes 安全 Cloud Native
解锁安全新纪元:利用服务网格Istio,打造全链路mTLS加密隧道,从入口网关到出口网关,守护数据安全的每一步
【8月更文挑战第2天】随着云原生技术的发展,服务网格(Service Mesh)如Istio已成为微服务架构的核心,通过双向TLS(mTLS)确保通信安全。首先,在Kubernetes部署Istio以管理服务通信。接着,配置入口网关实现所有入向流量的加密处理,防止数据泄露。最后,通过配置Sidecar代理如Envoy,确保服务网格安全访问外部mTLS服务,从而构建起全链路的数据安全防护。
51 11
|
17天前
|
安全 开发者 数据安全/隐私保护
Xamarin 的安全性考虑与最佳实践:从数据加密到网络防护,全面解析构建安全移动应用的六大核心技术要点与实战代码示例
【8月更文挑战第31天】Xamarin 的安全性考虑与最佳实践对于构建安全可靠的跨平台移动应用至关重要。本文探讨了 Xamarin 开发中的关键安全因素,如数据加密、网络通信安全、权限管理等,并提供了 AES 加密算法的代码示例。
29 0
|
1月前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【8月更文挑战第2天】数据安全至关重要,AES加密作为对称加密的标准之一,因其高效性与灵活性被广泛采用。本文通过实战演示Python中AES的应用,使用pycryptodome库进行安装及加密操作。示例代码展示了生成随机密钥与初始化向量(IV)、对数据进行加密及解密的过程。注意事项包括密钥管理和IV的随机性,以及加密模式的选择。掌握AES加密能有效保护敏感数据,确保信息安全无虞。
41 6

相关产品

  • 云安全中心