让我们一同深入探讨云密码学,包括其各种类型以及在谷歌云中的具体应用。
云计算作为基础设施即服务 (IaaS) 的一个分支,早已超越了简单的流行概念阶段,现已成为个人、企业乃至政府机构依赖的主要方式,通过使用云服务来简化其本地技术架构。
云服务以其便捷、经济和可扩展性而著称。
简单来说,云计算指的是通过互联网借用诸如存储空间、内存和CPU等计算资源,而无需实际拥有或维护任何硬件设施。
像Google Drive或Yahoo Mail这样的服务,是我们日常生活中云计算的典型例子。 我们将数据——有时甚至是敏感的个人或商业信息——委托给这些公司。
普通用户可能不太会担心云计算的隐私或安全问题。 然而,任何了解过网络安全历史或目睹过当前复杂的网络攻击的人,都应该保持警惕,至少需要对当前的情况有所了解。
什么是云密码学?
云密码学通过加密存储在云端的数据,防止未经授权的访问,从而有效地解决了这种潜在的不安全感。
加密是一种通过使用密码(算法)将标准信息转换成乱码的技术。 这样一来,即使信息被泄露,攻击者也无法理解其内容。
根据不同的应用场景,加密的方式多种多样。 因此,选择高质量的密码来保护云数据至关重要。
例如,你能理解下面这段文字吗?
Iggmhnctg rtqfwegu jkij-swcnkva vgejpqnqia & hkpcpeg ctvkengu, ocmgu vqqnu, cpf CRKu vq jgnr dwukpguugu cpf rgqrng itqy。
当然不能!
这对人类大脑来说可能有点棘手,但使用任何凯撒解码器,它都可以在几秒钟内将其解密:
即使是稍微了解凯撒密码的人也能看出,密文中的每个字母都比原文中的字母偏移了两个位置。
所以,重点在于使用像AES-256这样强大的加密算法。
云密码学是如何运作的?
上一节的最后几句话可能会让人觉得您可以简单地选择一个密码来加密数据。
从技术角度来看,这确实是一种方法。 但是,在实际操作中,云服务提供商通常会启用内置的加密功能,或者您可以使用第三方提供的加密即服务。
因此,我们将分两类来探讨其具体的实现方式。
#1. 云平台加密
这是指由云服务提供商直接负责数据加密的最直接的方式。
理想情况下,这种方法适用于:
静态数据
指的是当数据在传输到存储容器之前或之后,以加密形式被存储。
云密码学作为一种相对较新的技术,还没有一套标准的实施方法。 尽管有许多研究论文在测试不同的方案,但关键在于如何在实际应用中有效地部署。
那么,像谷歌云这样的一流云基础设施公司是如何保护静态数据的呢?
根据谷歌的官方文档,他们将数据分成数千兆字节的小组,并分散存储在不同机器的容器中。每个容器可能会包含相同或不同用户的数据。
此外,即使这些数据包位于同一个容器中并属于同一用户,它们也会被单独加密。 这意味着,即使某个数据包的加密密钥被泄露,其他文件仍然是安全的。
来源:谷歌云
而且,加密密钥会随着每次数据更新而发生变化。
这种存储级别的数据使用AES-256加密,但2015年之前使用AES-128位加密创建的一些永久性磁盘除外。
这构成了第一个加密层——在单独的数据包级别。
接下来,存储这些数据块的硬盘驱动器(HDD)或固态驱动器(SSD)使用另一层AES-256位加密进行加密,一些较旧的HDD仍使用AES-128。 请注意,设备级的加密密钥与存储级的加密密钥是不同的。
现在,所有这些数据加密密钥(DEK)会使用密钥加密密钥(KEK)进一步加密,然后由谷歌的密钥管理服务(KMS)集中管理。 值得注意的是,所有的KEK都使用AES-256/AES-128位加密,并且每个谷歌云服务至少关联一个KEK。
这些KEK至少每90天会通过谷歌的通用加密库进行轮换。
每个KEK都有备份,并且每次被使用时都会被跟踪,而且只有授权人员才能访问。
接下来,所有KEK会使用AES-256位加密再次加密,生成KMS主密钥,该密钥存储在另一个名为Root KMS的密钥管理设施中,该设施存储少量的此类密钥。
此Root KMS在每个谷歌云数据中心的专用机器上进行管理。
现在,这个Root KMS使用AES-256加密,生成存储在对等基础设施中的单个Root KMS主密钥。
一个Root KMS实例运行在每个Root KMS主密钥分发器上,该分发器将密钥存储在随机存取存储器中。
Root KMS主密钥分发器的每个新实例都由一个已经运行的实例批准,以防止违规行为。
此外,为了应对所有分发服务器实例需要同时启动的情况,Root KMS主密钥也只在两个物理位置进行备份。
最后,只有不到20名谷歌员工可以访问这些高度机密的场所。
这就是谷歌如何对静态数据进行云加密的方式。
但是,如果您想自己动手,也可以选择自己管理密钥。或者,您也可以在此基础上添加另一层加密,并自行管理密钥。 但是,请注意,丢失这些密钥也意味着您将被锁定在您自己的网络项目之外。
尽管如此,我们不应该期望所有的云提供商都会提供如此详细的加密信息。 考虑到谷歌对其服务收取溢价,您也许可以从成本较低但更适合您特定威胁模型的其他供应商那里获得更好的选择。
传输中的数据
指的是数据在云提供商的数据中心内部或外部传输的情形,比如您从自己的设备上传数据时。
同样,没有标准的保护传输中数据的方法,所以让我们看看谷歌云的实现方式。
根据其白皮书,传输中的加密,谷歌采取三种措施来保护非静态数据:身份验证、加密和完整性检查。
在其数据中心内部,谷歌通过端点身份验证和可选择加密的完整性验证来保护传输中的数据。
虽然用户可以选择其他的安全措施,但是谷歌声明其场所的安全性是一流的,并且只授予少数员工经过严格监控的访问权限。
在其物理限制之外,谷歌对其自身的云服务(如Google Drive)以及托管在其云上的任何客户应用程序(如在其计算引擎上运行的任何网站)采取差异化的策略。
在第一种情况下,所有的流量首先使用传输层安全性(TLS)进入一个被称为谷歌前端(GFE)的检查点。随后,流量会进行DDoS缓解、跨服务器的负载均衡,并最终被定向到预期的谷歌云服务。
在第二种情况下,确保数据传输安全的责任主要落在基础设施所有者身上,除非他们使用了其他谷歌服务(如其Cloud VPN)来传输数据。
TLS通常被用来确保数据在传输过程中没有被篡改。 这与您使用HTTPS连接到任何网站时默认使用的协议相同,通常在URL栏中显示为一个挂锁图标。
虽然TLS通常被用于所有网络浏览器,但您也可以将其应用于其他应用程序,例如电子邮件、音频/视频通话、即时消息等等。
但是,对于最终的加密标准,虚拟专用网络再次通过像AES-256这样的高级加密密码提供多层安全性。
然而,自己实施云加密是具有挑战性的,这引出了我们的下一个话题…
#2. 加密即服务
指的是当您的云平台的默认安全协议对于特定使用场景来说过于薄弱或者根本不存在时的一种选择。
显然,最好的解决方案之一是自己监督所有事项,并确保企业级的数据安全。 但这说起来容易做起来难,并且有违人们选择云计算的初衷,即简便。
因此,我们可以考虑使用像CloudHesive这样的加密即服务(EAAS)提供商。 与云计算类似,这一次,您“借用”的是加密技术,而不是CPU、内存、存储等资源。
根据您选择的EAAS提供商,您可以对静态和传输中的数据进行加密。
云密码学的优缺点
最显而易见的优点是安全性。 实施云密码学可以有效地保护您的用户数据免受网络犯罪分子的侵害。
尽管云密码学无法阻止每一次黑客攻击,但它的作用在于尽自己的一份努力,并且在出现问题时能够采取适当的措施。
缺点包括:首先是升级现有安全框架所需的成本和时间。 此外,如果选择自己管理密钥,一旦丢失密钥,几乎没有任何补救措施。
由于云密码学是一项新兴的技术,找到经过实践检验的EAAS服务也并非易事。
总而言之,最好的选择是使用知名的云服务提供商,并依赖其内置的加密机制。
总结
我们希望这篇文章能够帮助您更好地了解云密码学。 总而言之,它是关于与云相关的数据安全,包括数据在外部传输时的保护。
像谷歌云、亚马逊网络服务等大多数顶级云基础设施公司,都为其用户提供了足够的安全保障。尽管如此,在将任何关键任务型应用程序托管在任何地方之前,了解一些相关的技术术语并没有什么坏处。
PS:不妨了解一下针对AWS、谷歌云、Azure等云服务的成本优化解决方案。