云密码学:入门指南和Google云案例研究
加入我一起探索云加密,它的类型以及Google Cloud的部署。
作为IaaS的一个子集,cloud computing已经远远超过了流行语阶段。它是一个强大的力量,个人、企业和政府使用云服务来简化本地技术堆栈的麻烦。
云是方便、经济和可扩展性的典范。
简单来说,云计算是指在互联网上借用计算资源(如存储、RAM、CPU等),而无需物理主机。
日常生活的例子是Google Drive或Yahoo Mail。我们信任这些公司的数据 – 有时是敏感的个人或与业务相关的信息。
通常,普通用户不会关心云计算的隐私或security。但是,任何对监控历史或当前复杂cyber attacks有相当了解的人都必须提高警惕,或者至少了解当前的情况。
什么是云加密?
云加密通过encrypting数据存储在云中,以防止未经授权的访问。
加密是使用密码(算法)将标准信息转换为乱码的技术。在这种情况下,即使暴露出去,攻击者也无法理解细节。
根据用例,有各种类型的加密。因此,对于云数据加密,使用高质量的密码很重要。
例如,你能理解以下文本吗:
Iggmhnctg rtqfwegu jkij-swcnkva vgejpqnqia & hkpcpeg ctvkengu, ocmgu vqqnu, cpf CRKu vq jgnr dwukpguugu cpf rgqrng itqy.
不行!
对人类大脑来说,这可能是一个谜题,但使用任何凯撒解码器,他们将在几秒钟内将其破解:
即使是精通凯撒密码的人也可以看出密文中的所有字母都比明文对应字母前两个字母。
所以关键是使用强大的密码,比如AES-256。
云加密如何工作?
前一节的最后几行可能给人一种印象,即你会选择一个密码来加密数据。
从技术上讲,可以这样工作。但通常情况下,云服务提供商会启用本地加密,或者你可以从第三方获得加密服务。
因此,我们将将其分为两个类别并看看实施情况。
#1. 云平台上的加密
这是最简单的方法,声誉良好的云服务提供商负责加密。
理想情况下,适用于:
静止数据
这是数据在传输到存储容器之前或之后以加密形式存储的情况。
由于云加密是一种新颖的方法,没有预定义的执行方式。有许多研究出版物测试各种方法,但关键的是实际应用。
那么像Google Cloud这样的一流云基础设施公司如何保护静止数据呢?
根据Google’s records,他们将数据分成几个小组,每个小组包含几个千兆字节的数据,分布在不同的机器上的存储容器中。任何特定的容器可能包含同一用户或不同用户的数据。
此外,即使这些数据包坐落在同一个容器中且属于单个用户,每个包也是单独加密的。这意味着如果与一个包相关的加密密钥被破坏,其他文件将仍然保持安全。
此外,每次数据更新时,加密密钥都会更改。
该存储级别的数据使用AES-256进行加密,除了在2015年之前创建的一些使用AES-128位加密的持久磁盘。
因此,这是第一层加密 – 在单个包级别上进行。
接下来,存储这些数据块的硬盘驱动器(HDD)或固态硬盘驱动器(SSD)采用另一层AES-256位加密进行加密,其中一些传统HHD仍然使用AES-128。请注意,设备级加密密钥与存储级加密不同。
现在,所有这些数据加密密钥(DEKs)都使用密钥加密密钥(KEKs)进行进一步加密,然后由Google的密钥管理服务(KMS)进行集中管理。值得注意的是,所有KEKs都使用AES-256/AES-128位加密,每个Google云服务都至少与一个KEK相关联。
这些KEKs每隔90天至少旋转一次,使用Google的通用密码库。
每个KEK都有备份,在每次使用时进行跟踪,并且只能由授权人员访问。
接下来,所有KEKs再次使用AES-256位加密进行加密,生成存储在另一个密钥管理设施(称为Root KMS)中的KMS主密钥,该设施存储了一些这样的密钥。
这个Root KMS在每个Google Cloud数据中心的专用机器上进行管理。
现在,这个Root KMS被AES-256加密,创建了一个存储在点对点基础设施中的单个Root KMS主密钥。
每个Root KMS实例在随机访问内存中保存每个Root KMS主密钥分发器的密钥。
每个新的Root KMS主密钥分发器实例都需要经过已经运行的实例的批准,以避免犯规行为。
此外,为了处理所有分发器实例需要同时启动的情况,Root KMS主密钥还在仅两个物理位置进行备份。
最后,只有不到20名Google员工可以访问这些高度机密的地点。
这就是Google在云上对数据进行加密的方式。
但是,如果您想要掌控自己的数据,也可以自己管理密钥。或者,可以在此之上添加另一层加密并自行管理密钥。然而,需要记住的是,丢失这些密钥也意味着无法进入自己的网络项目。
尽管如此,我们不应该期望从所有其他云供应商那里得到这样的详细信息。由于Google为其服务收取高额费用,您可能会从成本较低但适合您特定威胁模型的其他供应商中受益。
数据在传输中
这是数据在云供应商数据中心内部或跨越其边界传输时的情况,例如当您从自己的计算机上传时。
同样,没有一种确定的方式来保护传输中的数据,因此我们将看到Google云的实施方式。
关于这个问题的白皮书,encryption-in-transit,提到了三个保护非静止数据的措施:认证、加密和完整性检查。
在其data center中,Google通过端点认证和完整性确认以及可选加密来保护传输中的数据。
虽然用户可以选择额外的措施,但Google确认其基础设施具有一流的安全性,只授予少数员工极高的监控访问权限。
在其物理范围之外,Google针对自己的云服务(如Google Drive)和托管在其云上的任何客户应用程序(如运行在其计算引擎上的任何网站)采用了不同的策略。
对于第一种情况,所有流量首先经过称为Google前端(GFE)的检查点,使用传输层安全性(TLS)。随后,流量经过DDoS缓解、服务器负载平衡,并最终指向目标Google Cloud服务。
对于第二种情况,确保传输中数据的安全性主要由基础设施所有者负责,除非他们未使用其他Google服务(如其Cloud VPN)进行数据传输。
一般来说,TLS被采用以确保数据在传输过程中没有被篡改。这与通过HTTPS连接到任何网站时使用的默认协议相同,其在URL栏中用一个挂锁图标表示。
虽然它在所有网页浏览器中通常都被使用,但你也可以将其应用于其他应用程序,如电子邮件、音视频通话、即时通讯等。
然而,对于最终的加密标准来说,存在着虚拟私有网络,它们可以通过高级加密密码(如AES-256)提供多层安全性。
但是,自己实现云加密是困难的,这就带来了以下问题…
#2. 加密即服务
当你的云平台的默认安全协议对于特定用例而言较弱或不存在时,可以采用这种方法。
显然最佳解决方案之一是自己监督一切,并确保企业级数据安全。然而,这比说起来容易做起来难,并且会剥夺掉使用云计算的无忧方式。
因此,我们只能使用加密即服务(EAAS),例如CloudHesive。与使用云计算类似,这一次,你是在“借用”加密而不是CPU、RAM、存储空间等。
根据EAAS提供商的不同,你可以获得数据在静止状态和传输过程中的加密。
云加密的优点和缺点
最显著的优点是安全性。使用云加密可以确保用户的数据远离网络犯罪分子。
尽管云加密不能阻止每一次黑客攻击,但它能让你尽到自己的一份力,并在事情出错时有适当的辩解。
至于缺点,第一个是升级现有安全框架所需的成本和时间。此外,如果你自行管理时丢失了加密密钥,很少有办法可以帮助你。
由于这是一项新兴技术,找到经过时间考验的EAAS并不容易。
总之,最好的选择是使用声誉良好的云服务提供商,并依赖本地的加密机制。
总结
我们希望这能让你对云加密有一些了解。总结一下,它与云相关的数据安全有关,包括数据在离开云时的安全性。
大多数顶级云基础设施公司(如Google Cloud,Amazon Web Services等)对于大多数使用案例都有足够的安全性。然而,在将关键任务应用程序托管给任何人之前,了解技术术语并没有什么坏处。
附注:查看一些有关AWS、Google Cloud、Azure等的cloud cost optimization solutions。