使用 OCI VaultOracle Integration 中实施消息级加密

消息级别加密 (Message-Level Encryption,MLE) 是一种安全技术,用于在传输期间保护消息的机密性和完整性。它涉及使用加密算法来争用消息的内容,以便只有目标收件人(具有解密密钥)才能读取消息。

Rest API 按体系结构是无状态的,这意味着服务器未维护会话,并且没有有关客户机的信息。在请求中,客户机需要发送所有信息以允许服务器响应。使用 Rest API 和安全性时,重点关注身份验证、授权和保密性。

对于验证和授权,有一些协议和最佳实践,从 API 密钥、基本验证、JWT 令牌到 oAuth 不同。为了保密,您可以启用传输级别安全 (Transport Level Security,TLS),这是通过加密流量来保护网络通信的过程。这就是为什么大多数 Rest API 强制使用 HTTPS 而不是简单的 HTTP。所有这些都具有自己的优点和缺点,并且由 Oracle Integration 提供现成的支持。

虽然网络级别的安全性大部分时间都满足要求,但有时需要执行消息或有效负载级别加密(例如,当它包含敏感信息时,例如:个人信息 [PII],信用卡号,银行账户详细信息,医疗记录等)。这就是为什么许多支付网关(Visa,MasterCard,政府实体)对包含敏感数据的 Rest API 执行 MLE。

Oracle Integration 提供现成可用的功能,可满足身份验证、授权和 TLS 要求。可以使用 OCI Vault 实现 MLE。

体系结构

此参考架构演示了如何使用 OCI VaultOracle Integration 中实现 MLE。

OCI Vault 是一项加密管理服务,用于存储和管理加密密钥和密钥,以安全地访问资源。它提供 API,允许管理密钥以及使用这些密钥对数据进行签名、加密和解密。

使用加密时,有两种基本类型的系统来保护数据。

  • 对称加密使用相同的(专用)密钥进行加密和解密。发送者和接收者必须具有相同的密钥,这些密钥用于加密和解密数据。这意味着如果有人拦截了密钥,他们可以解密数据。
  • 另一方面,非对称加密使用两个不同的密钥:公钥和私钥。发件人使用收件人的公共密钥对数据进行加密,而收件人使用其私有密钥对其进行解密。私钥是保密的,永远不会共享,这使得它比对称加密更安全。

对称加密具有速度优势,但安全性较低,因为它使用相同的密钥进行加密和解密。非对称加密虽然较慢,但更安全,因为用于解密的私钥永远不会共享,并且只能由收件人访问。

OCI Vault 支持这些密钥配置算法。

密钥配置算法 说明
高级加密标准 (AES) AES 密钥是可用于加密数据的对称密钥。
Rivest-Shamir-Adleman(RSA) RSA 密钥是非对称密钥(也称为密钥对),由公钥和私钥组成,可用于加密传输中的数据、对数据进行签名以及验证已签名数据的完整性。
椭圆曲线加密数字签名算法 (ECDSA) ECDSA 密钥是非对称密钥,可用于对数据进行签名以及验证已签名数据的完整性。

有时,您需要同时使用对称和非对称。例如,客户与您共享其 RSA 公钥;您生成并使用 AES 私钥对数据进行加密;您使用客户在有效负载中发送的 RSA 公钥对私钥进行加密。由于客户尚未共享其 RSA 私钥,因此只有他们才能解密数据,首先解密 AES 密钥,然后使用 AES 密钥解密有效负载。当有效负载大小大于 RSA 密钥可以加密时,将执行此操作。

OCI Vault 支持您导入或创建自己的主加密密钥。使用导入的密钥材料时,您仍对密钥材料负责,同时允许 OCI Vault 使用其副本。有关导入密钥的信息,请参阅“浏览更多”。

OCI Vault 提供了许多可供 Oracle Integration 使用的 API。有关 Vault 密钥管理 API,请参阅“浏览更多”。以下是一些在消息级加密方案中常用的 API。

API 说明
加密 使用请求中提供的加密详细信息对数据进行加密。
解密 使用作为请求的一部分提供的解密详细信息对数据进行解密。
Sign 使用公钥 - 私钥对(也称为非对称密钥)的私钥,为消息或消息摘要创建数字签名。
验证 使用与签名数据相同的非对称密钥的公钥来验证签名操作生成的数字签名。如果您要在服务外部验证数字签名,可以使用非对称密钥的公钥来执行此操作。

Oracle Integration 中工作时,必须在将请求发送到 Rest API 之前对有效负载进行加密,您可以使用 OCI Vault 。如果您使用对称加密,则可以接收 AES 私钥,将其上载到 OCI Vault 上,并使用 OCI Vault API 对数据进行加密并将此加密数据发送到 Rest API。如果您需要非对称加密,可以接收 RSA 公钥,将其上载到 OCI Vault 上,并使用 OCI Vault API 对数据进行加密,并将此加密数据发送到 Rest API。同样,如果要在 Oracle Integration 中强制实施 Rest API 以加密有效负载,则可以创建密钥、与客户端共享并使用 OCI Vault API 解密数据并进行验证。此外,当需要同时使用非对称加密和对称加密时,还可以组合两个密钥。

下图说明了此引用体系结构。



oci-vault-architecture-oracle.zip

该体系结构具有以下组件:

  • Oracle Integration

    Oracle Integration 提供了一整套工具和服务,可帮助企业集成本地和云端的各种应用、服务和数据源。Oracle Integration 提供了一系列功能,包括用于与各种常用应用程序(例如 Oracle Fusion、Salesforce、SAP、Workday 等)集成的预构建连接器,以及用于与其他应用程序和服务集成的定制连接器。它还提供直观的可视化界面来设计、测试和部署集成,让用户无需掌握编码技能即可轻松创建复杂的集成工作流。

  • Oracle Cloud Infrastructure Vault

    OCI Vault 是由 Oracle Cloud Infrastructure (OCI) 提供的安全、可扩展的密钥管理服务。它提供了一个集中位置来管理用于保护 OCI 资源和应用的加密密钥和密钥。OCI Vault 提供一系列功能,包括密钥生成和存储、密钥安全分发、加密和解密。它允许用户管理自己的密钥或使用 OCI 管理的密钥。用户还可以定期轮换密钥以确保最高安全性。

    OCI Vault 还提供丰富的 Rest API 来管理 Vault 和密钥。

注意事项

实现此引用体系结构时,请考虑以下几点。

  • 安全

    使用 Oracle Cloud Infrastructure Identity and Access Management (IAM) 策略控制谁可以访问您的云资源以及可以执行哪些操作。将 IAM 用户和组的最低权限访问权限分配给资源类型。

  • 服务限制

    考虑拓扑中使用的 OCI 服务的限制和限额。请参阅“浏览更多”。

确认

Authors :

  • Harris Qureshi

内容提供者

  • John Sulyok