找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 184|回复: 0

信封加密与密钥治理理论

[复制链接]

3

主题

0

回帖

19

积分

新手上路

积分
19
发表于 2023-2-12 16:57:42 | 显示全部楼层 |阅读模式
来历:知乎



信封加密道理


信封加密利用对称加密AES+非对称加密RSA两种实现,利用RSA加密AES算法的Key,并将Key与一并存储或传输,密文+加密的AES Key就形象比方为信封。

信封加密用于加密大量数据的场景,由于RSA加密的长度不答应跨越RSA Key长度(凡是RSA Key长度为1024/2048/4096 bit),是以对于大文件加密的场景,如图片/视频/文本等,需要利用对称加密算法。对称加密算法的Key在网路或构造之间传输存在泄露风险,是以利用RSA非对称算法加密对称密钥的Key,可以保证Key的平安传输。

信封加密现实上在SSL协议中就有益用,SSL协议在交换公钥以后,终极会协商一个AES加密的Key,这个Key在双方之间传输时辰是利用RSA算法加密的。

信封加密的加密进程



信封加密与密钥治理理论-1.jpg



  • 天生AES明文密钥
  • 利用AES明文密钥加密数据
  • 利用RSA公钥加密AES明文密钥,获得密文密钥
  • 密文密钥与加密数据一并存储,这两者形象比方为装到信封里

信封加密的解密进程







  • 数据接收者接收到信封,里面包括密文数据与
  • 利用RSA私钥解密AES密文密钥,获得明文密钥
  • 利用AES明文密钥解密密文数据

私有云 KMS 办事


信封加密的关键是加密对称密钥的RSA Key,RSA Key需要主密钥治理、数据加密密钥治理、有拜候控制、拜候审计日志、Key轮换更新的功用。 当前各至私有云厂商都供给密钥治理办事,而且与云办事器对接集成,如工具存储办事可以利用KMS加密数据,RDS可以利用KMS加密硬盘数据。


  • 主密钥治理:建立新的主密钥、从已有密钥导入到KMS、主密钥轮换更新(加密的数据密钥中记录了利用哪个主密钥加密,主密钥轮换更新后之前的密钥还存在)、密钥拜候控制、拜候审计日志。
  • 数据加密密钥治理:建立、加密、解密。
  • 云办事对接:工具存储、云硬盘、数据库等。

利用自界说密钥材料作为根密钥


企业一般会存在已经在利用的AES加密密钥,如线上线下数据交换,存在一方加密数据在另一方解密,要求密钥分歧。是以需要在建立主加密密钥的时辰,导入已有的密钥材料建立。 利用已有密钥材料导入到KMS建立主密钥的流程为:从KMS办事下载RSA公钥(用于加密主密钥材料)、指定RSA添补算法、用RSA公钥+RSA算法加密密钥材料、导入到KMS。

可以参考华为云KMS导入主密钥的帮助文档,下面是参考帮助文档的操纵实例。


  • 从KMS办事下载RSA公钥,并挑选RSA 添补算法

华为云下载加密AES密钥材料所需的内容为三个文件:

drwxr-xr-x 1 user01 1049089    0 4月  28 19:47 ./
drwxr-xr-x 1 user01 1049089    0 4月  28 19:47 ../
-rw-r--r-- 1 user01 1049089 2236 4月  28 19:46 importToken_d4a19541-800d-4a6c-9678-c9c7d7249887_20190428114633
-rw-r--r-- 1 user01 1049089  302 4月  28 19:46 README_d4a19541-800d-4a6c-9678-c9c7d7249887_20190428114633.txt
-rw-r--r-- 1 user01 1049089  294 4月  28 19:46 wrappingKey_d4a19541-800d-4a6c-9678-c9c7d7249887_20190428114633

  • wrappingKey_密钥ID_下载时候:即包装密钥,用于加密密钥材料的包装密钥
  • importToken_密钥ID_下载时候:即导入令牌,KMS导入密钥材料时需要利用
  • README_密钥ID_下载时候:即说明文件,记录包装密钥序列号、密钥包装算法、包装密钥文件称号、令牌文件称号以及包装密钥和令牌的过期时候

README 内容

$ cat README_d4a19541-800d-4a6c-9678-c9c7d7249887_20190428114633.txt
Wrapping Key Spec: RSA_2048
Wrapping Algorithm: RSAES_OAEP_SHA_1
Wrapping Key File: wrappingKey_d4a19541-800d-4a6c-9678-c9c7d7249887_20190428114633
Import Token File: importToken_d4a19541-800d-4a6c-9678-c9c7d7249887_20190428114633
Wrapping Key and Import Token Expiration: 2019-04-29 11:46:33 UTC

  • 天生256位的AES密钥材料

AES 密钥长度为256 bits,利用openssl天生密钥材料

openssl rand -out plain-text-key-material.bin 32

  • 利用RSA公钥并挑选添补算法加密AES密钥材料

openssl pkeyutl -in plain-text-key-material.bin -inkey wrappingKey_d4a19541-800d-4a6c-9678-c9c7d7249887_20190428114633 -out encrypted-key-material.bin -keyform der -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha1

  • 将AES密钥材料导入到KMS

在私有云界面上操纵导入。

利用导入的主密钥建立数据加密密钥并加解密数据


参考样例代码。

需要留意的是,在华为云上今朝建立的数据密钥长度只能是512位,512位密钥长度只能用于AES-XTS算法,此算法今朝首要用于磁盘加密。

假如在利用里集成KMS的话,利用法式AES加密算法常用的为AES-CBC,密钥最长是256位,是以基于现状只能将512位的密钥截断,可是截断以后会带来一些列题目,若何保证各个团队之间截断法则分歧?信封加密场景,是将截断后的密钥与密文数据一并存储还是截断前的?截断后密钥与KMS里保存的密钥纷歧致会不会致使未知题目?

今朝阿里云可以支持建立数据加密密钥时辰,指定密钥长度为128位或256位。

关于RSA添补


RSA 添补算法能保证语义平安,同一个明文每次加密出来的密文都是分歧,添补算法是在明文中添补一些随机数到达这个结果。由于RSA加密要求密文长度不能大于Key长度,是以利用P添补算法以后,对原始密文长度限制也有所变化。

当前首要有3种添补算法:RSA_PKCS1_PADDING/RSA_PKCS1_OAEP_PADDING/RSA_NO_PADDING

RSA_PKCS1_PADDING 最常用的形式


输入:必须 比 RSA 钥模长(modulus) 短最少11个字节, 也就是 RSA_size(rsa) – 11,假如输入的明文太长,必须切割, 然后添补 输出:和modulus一样长

按照这个要求,对于512bit的密钥, block length = 512/8 – 11 = 53 字节

RSA_PKCS1_OAEP_PADDING


输入:RSA_size(rsa) – 41 输出:和modulus一样长

RSA_NO_PADDING 不添补


输入:可以和RSA钥模长一样长,假如输入的明文太长,必须切割,然后添补 输出:和modulus一样长

Reference


PKCS#1 V2

RAS算法道理一

RAS算法道理二

RSA加密演算法

Padding&Text-book-rsa

Java AES and using my own Key

Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download

Java 常用加密算法利用与整理 更多云最好理论 https://best.practices.cloud




原文地址:https://zhuanlan.zhihu.com/p/380478938
免责声明:
1、文章部分图片源于收集,均为表示图;
2、一切文章、图片、音频视频文件等材料版权归版权一切人一切;
3、因非原创文章及图片等内容没法和版权者联系,如原作者或编辑以为作品不宜上网供阅读,或不应无偿利用,请实时告诉我们,以敏捷采纳适当办法,避免给双方形成不需要的经济损失;
4、本页面内容由爬虫法式自动收集于互联网,如无意中加害了媒体或小我的常识产权,请电邮【E-Mail:cb@yoyodoc.com】告之,我们将于24小时内删除。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|小悠文档创作分享社区 ( 粤ICP备11072215号 )|网站地图

GMT+8, 2025-1-19 02:30 , Processed in 0.214148 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表