暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OCI Vault服务简介以及使用Key进行加解密

2187


OCI的Vault Service可以在Tenancy中创建Vaults并将其作为Key和Secrets的容器,Vaults是Vault服务创建并持久化存储Key和Secrets的逻辑实体。


OCI提供不同的Vault类型以实现不同的特性和功能,例如存储加密,消息加密以及文件加密等。


OCI Vaults 服务

如上图所示,根据实际的业务的需要,OCI还提供了Virtual Private Vault,可在硬件安全模块(HSM)中为客户提供专用分区,从而为加密密钥提供一定程度的存储隔离,等效于虚拟独立的HSM。


Key Vault的密钥存储在符合联邦信息处理标准(FIPS)140–2 Level3安全认证的高可用性和持久性硬件安全模块(HSM)上。

Vault服务使用AES作为其加密算法,其密钥是AES对称密钥。

Virtual Private Vault收费而默认Vault则可以免费使用。


OCI Vault Service中的秘钥(Key)其实代表一个或多个密钥版本的逻辑实体,其中包含用于加密和解密数据,保护数据存储位置的加密信息文件。


在OCI中创建第一个主加密密钥(Master Encryption Key)后,即可使用Vault Service 通过API或OCI Consoe生成数据加密密钥(Data Encryption Key)。这样就可以通过API,命令行等方式使用生成的某个密钥加密内容(使密文无法被理解的读取),并解密以前使用同一密钥加密过的内容。这样在加密状态下,就可以自由共享数据,而不必担心泄露原始内容。同时OCI的某些服务也可以使用主加密密钥来生成自己的数据加密密钥,如Storage默认加密。


下图是OCI中Vault详情的页面:

OCI中的Vault Details页面

用户可以在OCI Console中创建用于加密和解密字符串或其他数据的密钥,如下所示:

在Vault中创建Key

接下来我们将研究当把vault Service作为加密算法的一部分进行处理时,如何使用Key在加密过程中如何将明文转换为密文,以及在解密过程中如何将密文转换为明文。

使用Key进行加密

密钥可用于加密REST API,OCI CLI或SDK中的任何内容。

通过Vault Service的加密保护信息

上图红色方框内说明向OCI Buckets存储桶中存储数据默认加密的详细加密过程:

  1. 向对象存储中保存明文数据文件。

  2. 对象存储保存数据前,向Key Vault请求数据加密秘钥

  3. Vaults同时返回数据秘钥和加密后的数据秘钥

  4. 对象存储使用数据秘钥加密明文数据,并将数据保存在Bucke中

 

同理,使用OCI CLI进行明文加密的过程和上面一样,现在我们使用OCI CLI进行加密文件的展示,我们从小说Anna Karanenina的开头一句作为被加密的内容,对被加密信息使用Base64进行编码并使用OCI CLI调用Vault Service的API 进行加密,操作过程如下:


使用OCI CLI加密(base64编码)内容

加密后的密文如下:


这种加密的意义在于我们有了一个可以不安全地传输和存储的内容。因为如果没有OCI Vault中的私钥,没有人可以破译这些内容,因此我们的信息得到了秘钥的保护,并且可以通过不安全的通信渠道进行通信,如HTTP、FTP。

使用Key解密密文

同加密的过程相反,解密的过程是根据加密的秘钥和加密后的密文解密出加密前明文的过程。

通过Vault Service解密

 如上图红色方框内所示,当用户需要读取Bucket中一堆加密后的密文时,因为这些密文是通过Vault Service的秘钥进行加密的。因此,在可以正常调用OCI Vault Service并拥有私钥的前提下,可以使用Vault Service进行解密,解密过程如下:

  1. 读取保存在Bucket中加密后的数据秘钥

  2. 将加密后的数据秘钥发送至Key Vault进行解密

  3. Key Vault返回解密后的数据秘钥

  4. 对象存储根据数据秘钥解密出密文的明文信息


同样的,使用OCI CLI解密信息的过程和上面一样,现在我们使用OCI CLI解密之前那加密后的密文信息:


在密文被解密后,首先得到的是经过Base64编码的纯文本,在对Base64编码的纯文本进行解码时,我们就可以得到明文的信息。

使用Vault Service的密钥解密

结   论

OCI Vault Service使我们能够以非常简单的方式确保数据安全。

从而使我们能够在无法进行安全的传输方式传输或存储数据的时候,保证数据的安全。

当然,如果传输方式和存储数据本身就是安全的情况下,OCI Key Service可以进一步提高数据的安全级别。



作者简介

董培培,甲骨文云平台高级售前顾问,专注于甲骨文Identity Management及Identity Cloud Service相关产品及解决方案。具有10+年的IAM技术,产品,方案和项目实施经验。擅长企业IAM技术架构设计及系统集成整合。您可以通过peipei.dong@oracle.com与他联系。




文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论