当前位置: 首页 > 知识库问答 >
问题:

使用Amazon KMS加密/解密小应用程序数据的缺点

鱼志学
2023-03-14

一对亚马逊lambda会对称地加密和解密一小块应用数据。我想用亚马逊KMS来方便这一点,因为它解决了秘密存储和密钥旋转的问题,然后一些。

Amazon KMS开发人员指南指出:

这些操作是为了加密和解密数据密钥而设计的。他们在加密操作中使用AWS KMS客户主密钥(CMK),并且不能接受超过4 KB(4096字节)的数据。虽然您可以使用它们来加密少量数据(如密码或RSA密钥),但它们并不是为加密应用程序数据而设计的。

它继续推荐使用AWS加密SDK或AmazonS3加密客户端来加密应用程序数据。

虽然AWS Encryption SDK列出的优点是显而易见的,而且非常吸引人,特别是对于不是密码学家的开发人员来说,但为了本问题的目的,让我们假设环境不利于这些替代方案。

我的团队正在实现一个新的身份验证层,将在我们公司的服务和API中使用。我们正在实现一个JWT规范,但是我们打算避开困扰JWE/JWS兼容令牌签名的广泛记录的密码问题,我们正在对称地加密有效负载。因此,我们保留了非加密令牌验证操作的标准库实现的优点(到期和其他操作),而留下了加密的“脚炮”。

共有1个答案

闾丘书
2023-03-14

KMS加密/解密对每个帐户的限制为5500请求/秒,这与一些其他KMS操作共享。

“为什么?”在常见问题解答中也有更深入的讨论。

为什么要使用信封加密?为什么不直接将数据发送到AWS KMS加密呢?

虽然AWS KMS支持发送小于4 KB的数据进行加密,但信封加密可以提供显著的性能优势。当您直接使用KMS加密数据时,它必须通过网络传输。信封加密为您的应用程序或AWS云服务减少了网络负载。只有通过KMS的数据密钥请求和实现必须通过网络。由于数据密钥总是以加密的形式存储,所以将该密钥分发到您需要它去的地方是容易和安全的,而不必担心它会被暴露。加密的数据密钥被发送到AWS KMS并在主密钥下解密,最终允许您解密您的数据。数据密钥可以直接在您的应用程序中使用,而不必将整个数据块发送到AWS KMS和遭受网络延迟。

https://aws.amazon.com/kms/faqs/

 类似资料:
  • 我正在尝试使用KMS和AWS加密SDK加密数据。查看AWS文档中提供的示例,似乎没有地方可以显式设置数据键。 使用由KMS生成的数据密钥使用AWS加密SDK加密数据的推荐方法是什么?

  • 问题内容: 我尝试解密最初使用Java中的Objective-C加密的数据。 还有其他问题要提及,但是它们确实很混乱,许多问题还没有解决,因此我将发表自己的问题。 这是加密数据的代码: 我执行此功能,并使用以下代码将结果数据写入光盘: 在Java中,我使用以下代码来尝试实现相同的行为: 如果现在尝试解密通过Objective-C加密的文件,则会收到错误的填充异常。如果我打开两个带有加密内容的文件,

  • 我正在尝试通过使用本文中描述的步骤来加密/解密一些数据get-a-illegalblock size异常数据必须不超过256字节。我应该怎么做很清楚,但即使我做错了什么。 这是我的课: 我尝试过这个方法,因为我认为问题在于AES使用的填充1,但我错了<运行了一段时间后,我得到了一些结果: [ENCRYPT]之前的数据: 之后的数据: 键之前: 之后的关键: [解密]密钥之前: 之后的关键: 之前的

  • 问题内容: 我正在连接一个旧的Java应用程序(无法更改该应用程序),该应用程序正在使用AES加密数据。这是原始Java代码如何实例化AES密码: 我是C / C ++开发人员,而不是Java,但是从我可以看出来的传统Java代码中,既没有指定模式,也没有指定初始化向量。有人偶然知道默认情况下将使用什么Java,因为未指定它? 我们需要新的C / C ++应用程序来解密Java加密的数据。但是我不

  • 前面小节介绍了如何存储密码,但是有的时候,我们想把一些敏感数据加密后存储起来,在将来的某个时候,随需将它们解密出来,此时我们应该在选用对称加密算法来满足我们的需求。 base64加解密 如果Web应用足够简单,数据的安全性没有那么严格的要求,那么可以采用一种比较简单的加解密方法是base64,这种方式实现起来比较简单,Go语言的base64包已经很好的支持了这个,请看下面的例子: package

  • 本文向大家介绍java使用RSA加密方式实现数据加密解密的代码,包括了java使用RSA加密方式实现数据加密解密的代码的使用技巧和注意事项,需要的朋友参考一下 RSA的应用 RSA是一种非对称加密算法。现在,很多登陆表单的密码的都采用RSA加密,例如京东中的登陆使用公钥对密码进行加密 java使用RSA加密方式实现数据加密解密,需要首先产生私钥和公钥 测试代码 RSA工具类的实现 总结 以上所述是