第2章 クラスタートランスポートの暗号化
ノードが暗号化されたメッセージと通信できるように、クラスタートランスポートを保護します。また、有効なアイデンティティーを持つノードのみが参加できるように、証明書認証を実行するように Data Grid クラスターを設定することもできます。
2.1. Data Grid クラスターのセキュリティー
クラスタートラフィックのセキュリティーを保護するには、Data Grid ノードを設定し、シークレットキーで JGroups メッセージペイロードを暗号化します。
Data Grid ノードは、以下のいずれかから秘密鍵を取得できます。
- コーディネーターノード (非対称暗号化)
- 共有キーストア (対称暗号化)
コーディネーターノードからの秘密鍵の取得
非対称暗号化は、Data Grid 設定の JGroups スタックに ASYM_ENCRYPT
プロトコルを追加して対称暗号化を設定します。これにより、Data Grid クラスターはシークレットキーを生成して配布できます。
非対称暗号化を使用する場合は、ノードが証明書認証を実行し、シークレットキーを安全に交換できるようにキーストアを提供する必要もあります。これにより、中間者 (MitM) 攻撃からクラスターが保護されます。
非対称暗号化は、以下のようにクラスタートラフィックのセキュリティーを保護します。
- Data Grid クラスターの最初のノードであるコーディネーターノードは、秘密鍵を生成します。
- 参加ノードは、コーディネーターとの証明書認証を実行して、相互に ID を検証します。
- 参加ノードは、コーディネーターノードに秘密鍵を要求します。その要求には、参加ノードの公開鍵が含まれています。
- コーディネーターノードは、秘密鍵を公開鍵で暗号化し、参加ノードに返します。
- 参加ノードは秘密鍵を復号してインストールします。
- ノードはクラスターに参加し、秘密鍵でメッセージを暗号化および復号化します。
共有キーストアからの秘密鍵の取得
対称暗号化は、Data Grid 設定の JGroups スタックに SYM_ENCRYPT
プロトコルを追加して対称暗号化を設定します。これにより、Data Grid クラスターは、指定したキーストアから秘密鍵を取得できます。
- ノードは、起動時に Data Grid クラスパスのキーストアから秘密鍵をインストールします。
- ノードはクラスターに参加し、秘密鍵でメッセージを暗号化および復号化します。
非対称暗号化と対称暗号化の比較
証明書認証を持つ ASYM_ENCRYPT
は、SYM_ENCRYPT
と比較して、暗号化の追加の層を提供します。秘密鍵のコーディネーターノードへのリクエストを暗号化するキーストアを提供します。Data Grid は、そのシークレットキーを自動的に生成し、クラスタートラフィックを処理し、秘密鍵の生成時に指定します。たとえば、ノードが離れる場合に新規のシークレットキーを生成するようにクラスターを設定できます。これにより、ノードが証明書認証を回避して古いキーで参加できなくなります。
一方、SYM_ENCRYPT
は ASYM_ENCRYPT
よりも高速です。ノードがクラスターコーディネーターとキーを交換する必要がないためです。SYM_ENCRYPT
への潜在的な欠点は、クラスターのメンバーシップの変更時に新規シークレットキーを自動的に生成するための設定がないことです。ユーザーは、ノードがクラスタートラフィックを暗号化するのに使用するシークレットキーを生成して配布する必要があります。