当网络中没有密钥管理系统(以下简称KMS)时,各业务系统需要承担起保护密钥安全的责任,这种方式存在两个问题:一方面,保护密钥的机密性、完整性和可用性将耗费业务的大量精力;另一方面,如果业务系统被黑客攻克,密钥就会随之泄露,黑客就能直接还原业务数据了。
而依赖KMS密钥管理服务的数据加、解密过程,由业务系统和KMS共同完成。也就是说,黑客即便攻克了业务系统,也不能还原其中的数据。
那么依赖KMS的数据加、解密的过程到底是怎样的呢?
首先我们一起了解3个相关的概念:
- DEK(Data Encryption Key,数据加密密钥):它是由KMS随机生成,专门负责对数据进行加密的密钥;
- KEK(Key Encryption Key,密钥加密密钥):它被加密存储在KMS系统中,一般情况下,公司里每一个部门都会对应一个KEK,专门负责对DEK进行加密的密钥;
- 根密钥(Root Key):专门负责将KEK加密存储在KMS上的密钥。
了解相关概念后,我们一起看看KMS的数据加、解密过程:
1. KMS的数据加密过程
- 第一步,KMS系统随机生成DEK;
- 第二步,使用DEK对数据进行加密;
- 第三步,使用KEK对DEK进行加密;
- 第四步,将加密后的数据和加密后的DEK一并存入数据库。
2. KMS解密过程
- 第一步,从数据库提取出加密后的数据和加密后的DEK;
- 第二步,使用KEK对加密后的DEK进行解密;
- 第三步,使用解密后的DEK对加密后的密文数据进行解密,得到原始数据。
云产品应用KMS
目前,阿里云和AWS的云产品中均广泛集成了KMS,我们可以轻松使用KMS来加密保护我们敏感的云上数据资产。具体应用请参考阿里云和AWS的KMS产品说明,网址如下:
阿里云
https://www.alibabacloud.com/zh/product/kms
https://help.aliyun.com/document_detail/28935.html
AWS
https://amazonaws-china.com/cn/kms/
https://amazonaws-china.com/cn/kms/faqs/
网友评论