セキュリティトランスポートレイヤープロトコル(TLS)は、2つの通信アプリケーション間で機密性とデータの整合性を提供します。OceanBaseデータベースは、既存のTCP通信にSSL/TLSプロトコルを拡張サポートし、通信暗号化の問題を解決します。暗号化通信を使用することで、データベース内の機密情報の漏洩リスクを低減できます。暗号化通信は、鍵を用いて情報を暗号化および復号化するプロセスであり、データの安全性を効果的に保護できます。具体的には、データベースの暗号化通信はSSLまたはTLSプロトコルを介して実現できます。
OceanBaseデータベースは、製品アーキテクチャの観点から、以下の3つの基本部分に分けられます。
そのうち、2種類のプロトコルが通信に使用されます:
MySQLプロトコル:ドライバ層 <=> データリンク層、データリンク層 <=> DB層間の通信は、拡張MySQLプロトコルを使用します。通信暗号化を有効にすると、暗号化は即時に反映され、すべての新しいMySQL接続は暗号化方式で通信します。
OB-RPCプロトコル:OBServer間、およびOBServerとliboblog、ob_adminなどとの通信は、OBServer独自のRPCプロトコルを使用します。内部ノード間の接続はすべて長時間接続であるため、暗号化を有効にしても、内部ノード間の通信は引き続き元の非暗号化方式で行われます。OceanBaseクラスタを再起動した後に、内部ノード間の通信暗号化が有効になります。
データリンク層のOBProxy、DB層のOBServer、liboblog、obadminなどのコンポーネントはすべてSSL/TLS暗号化通信をサポートしており、基盤としてOpenSSLまたはサードパーティのSSLライブラリに依存して、業務に安全な暗号化通信サービスを提供します。
OceanBaseデータベースは、各ユーザーに対して異なるSSL/TLS認証メカニズムを選択できるようにしています。これには以下が含まれます:
- SSL一方向認証:クライアントはサーバー側のCA証書を読み込む必要があります。クライアントはサーバー側の証書の有効性を一方向で検証します。
- X509相互認証:サーバー側とクライアント側は、それぞれ相手方のCA証書を読み込む必要があり、双方が証書の有効性を相互に検証します。
- 特殊な相互認証(組み合わせ可能):
- 指定暗号アルゴリズム認証:X509相互認証に基づき、SSL暗号アルゴリズムを制限します。
- 指定発行者認証:X509相互認証に基づき、クライアント側のCA証書の発行者を制限します。
- 指定SSLサブジェクト認証:X509相互認証に基づき、クライアント側のCA証書のサブジェクトを制限します。
- TLS秘密鍵なし認証:クライアントがOBserverの身元を検証する必要がない場合、CA証書を読み込む必要はありません。必要な場合は読み込む必要があります。