KMS信封加密_沉默恶魔的博客-程序员宝宝_kms的信封加密算法

技术标签: KMS  sap  AWS SAP认证  AWS  云计算  

关注公众号:AWS爱好者(iloveaws)
文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
网站:www.iloveaws.cn

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们在前面的课程讨论了AWS KMS服务,以及实操演示了使用KMS生成的CMK客户主密钥进行加密、解密的操作。

今天的课程内容信封加密,是KMS部分比较重要的内容。

我们开始今天的课程内容。

在这里插入图片描述

什么是信封加密?

我们先看下什么是信封加密。信封加密是类似数字信封技术的一种加密手段。

这种技术将加密数据的数据密钥封入信封中存储、传递、和使用,不再使用主密钥直接加解密数据。也就是说,信封加密使用客户主密钥生成数据密钥,然后用离线的数据密钥在本地加密大量数据,而不再使用主密钥直接加解密数据。

我们上节课实操演示了使用KMS的客户主密钥也就是CMK进行加密,将需要加密的明文内容为“www.iloveaws.cn”直接发送到AWS KMS中进行加密。那什么情况下使用信封加密呢?我们来看下:

首先,AWS KMS支持发送最大4KB的数据进行直接加密,如果需要加密的数据比较大的话就需要信封加密。
其次,信封加密可提供巨大的性能优势,当使用 AWS KMS 直接加密数据时,整个数据必须通过网络进行传输。信封加密降低了网络负载,因为通过网络发送的只有请求,同时传输的数据密钥也更小。避免向 AWS KMS 发送整个数据块并遭遇网络延迟。
最后,将需要加密的数据通过网络传输至KMS,虽然是通过安全信道通信,也有可能会在传输过程中存在诸多风险,如窃听、钓鱼,且一些组织的安全政策也不允许用户将数据传输至AWS进行加密。
以上就是信封加密的定义及主要优势,我们之前课程提到的集成了 AWS KMS 的 AWS 服务和客户端工具包,也是使用信封加密的方法来保护数据的。

好的,我们继续。
在这里插入图片描述

信封加密的工作流程

我们来看下信封加密是如何工作的。

1、首先,我们创建一个客户主密钥,也就是CMK。
2、CMK生成后,我们使用CMK生成数据密钥,一旦请求KMS生成数据密钥时,用户能够得到一个明文数据密钥和一个密文的数据密钥,共2个数据密钥。
3、然后使用明文数据密钥加密您服务器上的文件,生成密文文件。
4、将密文文件和密文数据密钥一同存储到持久化存储设备或服务中。

完成加密后,将明文文件,以及明文数据密钥删除。

以上,是加密流程部分。

当您完成上述加密操作后,只保留密文密钥和密文文件,这样即使密文密钥和密文文件被窃取,也无法解密获得用户的明文文件。

在这里插入图片描述
接下来我们看下解密的步骤:

1、需要解密文件时,首先从持久化存储设备或服务中读取密文数据密钥和密文文件
2、然后,调用KMS服务的Decrypt接口,解密数据密钥,取得明文数据密钥
3、最后,使用明文数据密钥解密文件

好的,以上就是信封加密的加密和解密的过程,下面的内容我们快速实操演示下使用CMK生成数据密钥的操作。

在这里插入图片描述

实操演示:CMK生成数据密钥

首先,我们需要使用aws cli命令生成数据密钥,打开aws cli的kms命令参考页面,在此页面的最后【可用命令】部分,打开generate-data-key命令页面。

我们前面讲过了,通过调用generate-data-key命令,KMS会返回明文数据密钥以及密文数据密钥,然后使用明文数据密钥加密您自己服务器上的数据。

我们看下这个命令的摘要,命令需要指定cmk的密钥ID
然后还需要一个命令参数—数据密钥的长度,数据密钥的长度我们测试就使用AES_256,生成256位密钥。

好的,命令我们看完了,我们先到KMS管理控制台复制下CMK的密钥ID,然后切换到终端。
在这里插入图片描述

输入命令:aws kms generate-data-key --key-id 231973f0-4cbe-4ef5-8ac3-0ef3f8164960 --key-spec AES_256

key-id后面指定CMK的密钥ID,我们粘贴下,然后key-spec 我们输入 AES_256 然后运行命令。

好的,可以看到,命令执行后,返回了明文数据密钥以及密文数据密钥,然后您就可以使用明文数据密钥对您的服务器上的文件进行加密,加密后您可以将密文数据密钥和密文文件一同存储到持久化存储设备或服务中。

需要解密文件时,使用KMS的decrypt接口,将密文数据密钥解密为明文数据密钥,在使用明文数据密钥为本地文件解密。

好的,以上就是我们今天的课程内容,我们今天讲了KMS-信封加密的内容以及加解密的流程,并对生成数据密钥进行了实操演示。

信封加密在KMS服务部分是非常重要的内容,在考试中也会有相应的考点,希望本节课程会为同学们理解信封加密带来帮助。
在这里插入图片描述

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问

关注公众号:AWS爱好者(iloveaws)
文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
网站:www.iloveaws.cn
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iloveaws/article/details/106355779

智能推荐

You have an error in your SQL syntax; check the manual that corresponds to y完美解决_运行sql文件错误_叶涛seo网站优化推广的博客-程序员宝宝

Mysql运行sql文件错误You have an error in your SQL syntax; check the manual that corresponds to y。确实是sql语句里有语法错误,如果列名是mysql的关键字,请用“`”括起来。也有可能是编辑器的问题,我的sql文件用ultraedit编辑的,ultraedit的UTF8编码是UTF8 BOM,可以用notepad++打开,更改为UTF8编码即可,sql文件可正常运行

2016年度 JavaScript 展望(下)_weixin_34342207的博客-程序员宝宝

【编者按】本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是《jQuery UI 实践》 一书的作者。本文系 OneAPM 工程师编译呈现,以下为正文的第二部分。点此阅读第一部分。本地移动 apps在2015年,出现了一种新的基于 JavaScript 的移动应用开发类别:JavaS...

闲来无事,学学python_烟野夜言的博客-程序员宝宝

python数据类型及其基本操作字符串 单双三引号,三引号负责多行字符串; \转义 +拼接 *复制 [start,end,step]切片; format() 格式化,可通过name指定值; len() 字符串长度; strip() / lstrip() / rstrip() 去掉空格; split(seq,num) 字符串转列表;

微信界面的简单实现_c43nxin的博客-程序员宝宝

一、运行界面顶部的cx对应微信的顶部中间的fragment对应微信的各种功能最下面的菜单栏完成各个功能的切换二、实现的大致思路红色框通过4个fragment完成,每个fragment的设计基本一样。下方底部的菜单栏通过linearlayout里面包含四个小LinearLayout,每个LinearLayout里面含有一个ImageView和一个TextView,TextView写入功能,ImageView放入对应的ui图片,ui图片我是在iconfont里面找的,通过点击..

Java中多线程(二):线程的生命周期_土土tu的博客-程序员宝宝

Java中线程创建的两种方式(代码源)1.继承自Thread类的方式package cn.hp.thread1;public class TestThread1 { public static void main(String[] args) { //创建线程对象 MyThread t1 = new MyThread(); //创建自定义对象 MyThread2 mythread = new MyThread2...

extjs中元数据_extJS 中 ext.data 介绍_weixin_40006185的博客-程序员宝宝

ext.data 最主要的功能是获取和组织数据结构,并和特定控件联系起来,于是,Ext.data成了数据的来源,负责显示数据。Ext.data在命名空间中定义了一系列store、reader和proxy。Grid和ComboxBox都是以Ext.data为媒介获取数据的,它包含异步加载、类型转换、分页等功能。Ext.data默认支持Array、JSON、XML等数据格式,可以通过Memory、HT...

随便推点

模拟/数字混合信号的电路板布局布线注意事项_pcb板中的模拟信号线与数字信号线_ltqshs的博客-程序员宝宝

极好的模拟/数字混合信号的电路板布局布线注意事项1.简介要想了解在使用分辨率等于或高于 12 位 ADC 时可能发生的问题,需要确定 ADC 能够处理多小的电压值。电压范围为 2 V 的 8 位 ADC 能够检测最小电压值为 2 V/256 = 0.008 V,即 8 mV 左右。尽管 8 mV 看上去比较小,让我们把这个值和更高分辨率的 ADC 进行比较,表 1 显示了对具有输入范围为±1 V 和分辨率为 8 到 20 位的各 ADC 进行的比较。表 1. ADC 分辨率 当分辨率为 20

IOS-UITextFiled常见的委托代理使用方法_jacky__bj的博客-程序员宝宝_uitextfiled 委托方法

在IOS实际开发中有些UITextField需要限制输入内容长度,如账号、密码等,下面简单介绍其简单的实现方法,如下://定义UITextFiled的代理方法:- (BOOL)textField:(UITextField *)textField    shouldChangeCharactersInRange:(NSRange)rangereplacem

axure 怎么做导航吸附?_东东不邪的博客-程序员宝宝

导航一开始没有在屏幕最上方,鼠标滚动,导航会吸附到屏幕上边缘。不要回复动态面板pin to browser这种简单的答案。

thymeleaf工具类对象表达式(内部方法)集合_记忆储存处的博客-程序员宝宝_thymeleaf 表达式工具类

具体如下:(一般使用形式th:if="${#execInfo.templateName}"、th:value="${#execInfo.templateName}")Execution InfoExecution Info#execInfo:提供有关在Thymeleaf标准表达式内正在处理的模板的信息。/* * ======================================================= * See javadoc API for class org.th

debian上eAccelerator 的安装_guang光撒旦的博客-程序员宝宝

到其官方主页上去下载最新版本。

推荐文章

热门文章

相关标签