Advertisement

AWS KMS 科普: What Why and How?

阅读量:

What: 密钥管理 —— 加密并不难,难的是密钥管理

AWS KMS 简称 Key Management Service(KMS),中文直译为密钥管理服务——这一特点尤其值得关注。它所提供的核心功能就是密钥管理 ,为企业和开发者提供便捷且安全的密钥管理解决方案。为企业和开发者提供便捷且安全的密钥管理解决方案对于初次接触KMS的同学来说,往往容易产生困惑:它到底是什么?

我们已经成功回答了第一个问题 'What'。KMS 系统专注于管理密钥功能,并非一种高级加密技术。

我旨在帮助本文的读者群体认识到一个认识:加密过程相对简单,而真正困难的则是密钥的管理和维护。

Why: KMS 能确保你密钥的安全性

接着来看第二个问题:为什么我不如自己来管理?因为如果我不依赖第三方来保护我的密钥... 实际上你可以自行处理密钥的安全问题 。然而这并非易事... 只有当你具备相应的最佳实践知识并愿意投入时间进行自主维护时才有可能实现这一点服务之所以被称为服务,在于它由专业提供商为你处理一系列繁琐的工作(例如他们负责...),从而让你能够专注于创造更有价值的内容。

那么 AWS KMS 为用户做了哪些麻烦的工作呢?

  1. 完全托管:无需自行部署服务器并无需安排专人负责运维工作。
  2. 简化加密过程:您无需过多关注复杂的加密操作步骤即可通过调用预设的安全接口进行操作。
  3. 安全审计功能 :单纯依靠安全性是远远不够的,它还必须能够向相关人员(包括内部审计部门、管理者或客户)展示具体的使用权限信息,包括密钥持有者的使用时间戳以及创建和删除事件的时间节点等关键信息。这些精细粒度的安全审计功能已由AWS Cloud Trail Service完整集成在整个AWS生态系统中。
  4. 确保你的密钥是安全的 :您无需费力去寻找一个机密存储位置来存放密钥,事实上 AWS KMS 密钥(确切来说是 Master Key)会被存储在内存中,没有任何人(包括AWS自身)能够访问到其原始内容,具体原因将在后续部分详细阐述。
  5. 密钥 rotate 流程:定期自动更新或手动触发更新机制也是维持信息安全的重要最佳实践。

How: It’s complicated but they do it for you

明白了使用AWS KMS的原因之后,在本文中将深入探讨这一核心内容,并详细说明How: AWS KMS的具体实现机制。

请先了解对称加密与非对称加密的概念:简单来说,symmetric encryption是指使用相同的密钥来进行加解密操作;而**public-key cryptography(非对称加解密技术)**则采用了一对公私键——你可以利用公钥来进行加解密操作(例如,在HTTPS协议中应用的就是非对称加解密技术)。

让我们来探讨KMS内部如何存储你的密钥。假设我们采用一个用于加密数据的密钥方案,在该方案下对Data进行加密后会生成Encrypted Data。该加密机制操作简便。

然而,在这个问题上需要注意的是关于Data_key的具体处理方式。我们必须明确一点:如果攻击者获得了Data_key就等同于数据被破解了?对此我们需要采取更加安全的技术手段来保护它。正确的做法是将Data_key同样进行加密处理,并将其命名为Master_key(简称MK)。这样一来我们就能确保即使泄露也不会造成危害随后我们将Encrypted_Data以及对应的Encrypted_MK一起存储起来如图所示

但是问题是这样子的:Master Key 要怎么加密呢?估计你也早就发现了

你没注意吧?实际上就是这么操作的。他们采用分层加密策略,在这里面的专业术语称为KMS密钥层次结构。当到达最后那个Key时(也就是顶级密钥),它确实是一个未经加密的明文密钥——尽管看起来似乎很简单

  1. 它彻底地保留在内存中,在任何存储设备上都不会找到它的痕迹。
  2. 绝对不进行公共网络上的数据传输操作。

以至于连 AWS 员工都没有办法获取到原始内容。

此外,在讨论其他Data Key时,请注意我的数据实际上使用了Data Keys进行加密。如果有人获取了我的Data Keys密钥该怎么办?这一问题至关重要。KMS采用了什么机制来应对这种情况?

KMS 根据需要生成数据密钥,在内存中按需动态创建;该密钥用于对数据进行加密后,在随后的一段时间内会被从内存中立即删除;其对应的 EncryptedDataKey 则得以保存下来

借用 AWS re:Invent 2019 上 AWS Solution Architect Peter M.O’Donnell 的话:

KMS is a highly reputable service, constructed by highly professional individuals targeting highly demanding clients.

总结一下:

  1. 数据是通过DataKey实现加密并获得EncryptedData。
  2. EncryptedData与EncryptedDataKey被保存在一起。
  3. 即使你获得了EncryptedData和EncryptedDataKey也无法解决问题。你需要解密上一层加密的EncryptedDataKey并获得MasterKey确认最终的TopLevelMasterKey。
  4. KMS通过巧妙的设计确保了无人能够获取TopLevelMasterKey。
  5. 因此你们的数据得以保障。

本文阐述了AWS KMS的功能是什么?为什么选择使用KMS?此外还说明了KMS是如何保障密钥进而保障你数据安全的。在下一篇文章中我们将深入探讨如何将AWS K MS具体应用于你的系统中。

相关阅读:

  1. 访问中国区AWS-KMS服务页面的链接。
  2. 利用AWS KMS实现数据保护、访问控制及审计的技术会议介绍。
  3. 学习AWS安全基础课程中的KMS应用。

全部评论 (0)

还没有任何评论哟~