使用 TLS 和 mTLS 支持安全通信(传输中的数据)

Oracle GoldenGate 使用以下功能保护传输中数据或传输中数据:

另请参见 Distribution Path Streaming Protocols 。

使用 TLS 和 mTLS 支持安全通信

传输层安全 (Transport Layer Security,TLS) 协议通过确保安全数据传输,通过网络提供安全通信。服务器(GoldenGate 实例)与客户机(包括 GoldenGate Web 界面、AdminClient 和其他应用程序)之间的数据交换经过验证和加密。它使用加密算法来加密数据,防止未经授权的当事人访问或修改传输的信息。

TLS 会验证服务器的身份,以确保与预期的一方通信,而不是恶意操作者。HTTPS 和 WSS 使用 TLS 协议。HTTPS 请求是通过 REST-API 调用发出的,WSS 用于分发路径对线索文件进行安全路由。

Mutual TLS (mTLS) 是 TLS 协议的扩展,通过在通信会话中验证客户机和服务器来增加额外的安全层。这是对传统 TLS 的增强,提供了双向信任,并且是对假冒攻击的额外防御。在客户机/服务器握手期间, server 将提供其数字证书以向 client 证明其身份,以便客户机验证服务器的身份。client 还会向 server 提供其数字证书,以便服务器验证客户机的身份。

在安全部署中,分发路径进程使用 mTLS 在以下任一情况下使用 WSS 协议发送线索文件:

通过显示 DistClient 数字证书使用分发客户机 (DistClient) 验证,可以使用 mTLS 实现安全网络通信。

建议为 Oracle GoldenGate 进行安全部署。它需要服务器的证书、私钥和来自证书颁发机构(CA 证书)的签名证书。可以随时应用证书颁发机构(Certificate Authority,CA 证书)提供的 DistClient 证书、私钥和签名证书。

但是,NGINX 可以与不安全的部署一起使用,以仍然为分发路径提供 TLS 支持。TLS 将在 NGINX 终止。NGINX 证书将由客户机进行验证。但是,客户端证书是 Oracle GoldenGate 默认 NGINX 配置的可选证书。

有关详细信息,请参见 Target-initiated Path 和 Oracle GoldenGate Reverse Proxy Support 。注:使用反向代理时不支持 mTLS。

传输层安全性在 Oracle 环境中的工作原理:TLS 握手

当通过传输层安全启动网络连接时,客户机和服务器将在验证之前执行 TLS 握手。

握手过程如下:

  1. 客户端和 Oracle GoldenGate 实例建立用于数据传输的密码套件和加密算法。

  2. Oracle GoldenGate 实例将其证书发送到客户端,并且客户端验证 Oracle GoldenGate 实例的证书是否由可信 CA 签名。此步骤将验证 Oracle GoldenGate 实例的身份。

  3. 同样,如果需要客户机验证,则客户机将其证书发送到 Oracle GoldenGate 实例。Oracle GoldenGate 实例验证客户端的证书是否由可信 CA 签名。

  4. 客户端和 Oracle GoldenGate 实例使用公钥加密交换密钥信息。根据这些信息,每个会话将生成一个会话密钥。密钥由至少两方(通常是客户端和 Oracle GoldenGate 实例)共享,在单个通信会话期间用于数据加密。会话密钥通常用于加密网络通信。客户端和 Oracle GoldenGate 实例可以在会话开始时协商会话密钥,并且该密钥用于加密该会话双方之间的所有网络通信。如果客户端和 Oracle GoldenGate 实例在新会话中再次通信,则它们将协商新的会话密钥。客户端与 Oracle GoldenGate 实例之间的所有后续通信都使用此会话密钥和协商的密码套件进行加密和解密。

验证过程如下:1。在客户机上,用户使用 TLS 启动到 Oracle GoldenGate 的网络连接。

  1. TLS 在客户端和 Oracle GoldenGate 之间执行握手。

  2. 如果握手成功,则 GoldenGate 实例将验证用户是否具有访问 Oracle GoldenGate 实例的相应授权。

Oracle GoldenGate 如何使用传输层安全性进行验证

使用 Oracle GoldenGate TLS 功能保护 Oracle GoldenGate 实例与客户端之间的通信,您可以执行以下操作:

建立 TLS 后,Oracle GoldenGate 实例将需要对客户端进行验证,以确保其具有发送线索的正确权限。使用以下验证模式:

TLS 密码套件

密码套件为以下每项任务指定一种算法:

支持 TLS 1.2 和 1.3 的默认密码套件,但弱密码除外。

Oracle 强烈建议您使用 TLS 1.3 来满足安全要求。

支持 TLS 1.2 的默认密码套件,但弱密码除外。

目标启动的路径

通过微服务的目标启动路径,接收器服务可以在目标部署上启动分发服务的路径并提取线索文件。此功能允许接收方服务为非隔离区域路径 (Demilitarized Zone Paths,DMZ) 或云到内部部署等环境创建目标启动的路径。在这种环境中,源 Oracle GoldenGate 部署中的分发服务由于网络安全策略而无法在目标环境中打开与接收方服务的网络连接。

如果分发服务无法启动与接收方服务的连接,但接收方服务可以启动与运行分发服务的主机的连接,则接收方服务将使用 Oracle GoldenGate 通过防火墙或非军事化 (Demilitarized,DMZ) 区域建立指向分发服务的安全或非安全目标启动路径,以提取请求的线索文件。接收方服务端点显示跟踪文件的检索是由接收方服务启动的。

路径(只读)是从目标部署的接收器服务创建的,具有属性 TARGET_INITIATED。此路径也可从分发服务访问。路径信息存储在目标系统上。如果通信丢失,则目标主机上的接收器服务需要路径定义才能重新启动连接。此信息在路径运行时与分发服务共享。路径在源部署上处于临时状态。临时路径有助于合并路径配置并加强目标到源的连接启动。

路径停止或断开连接时,分发服务将删除包括路径定义在内的所有路径信息。但是,会保留检查点文件,因为检查点用于确定是否可以清除旧线索。建议不要清除旧路径,除非有意删除该路径。

相关主题:

Oracle GoldenGate 反向代理支持

反向代理允许在部署中使用单个端口 (443) 访问微服务。这允许在不安全的部署上封装微服务的 URL。注:反向代理是可选的,但 Oracle 建议您确保轻松访问微服务并提供增强的安全性。

您可以在回送地址上的不安全部署中运行微服务,并使用 Nginx 安装的 HTTP 反向代理将其放在前面。

Oracle GoldenGate MA 包含一个名为 ReverseProxySettings 的脚本,该脚本仅为 Nginx 反向代理服务器生成配置文件。

例如,管理服务位于 http://goldengate.example.com:9001,分配服务位于 http://goldengate.example.com:9002。使用反向代理,每个微服务都可以简单地从单个地址访问。例如,http://goldengate.example.com/distsrvr 表示分发服务。URL 对于每个服务是不同的,是按名称而不是按端口。

这些值在连接到服务管理器时使用,在启用验证时是必需的。

有关在 Oracle GoldenGate 中实施 NGINX 反向代理,请参见 Configure Oracle GoldenGate Reverse Proxy with NGINX 。