データ・グリッド・セキュリティー

データ・グリッド・セキュリティーによって、結合サーバーの資格情報が適切であることが保証されるため、悪意のあるサーバーはデータ・グリッドを結合することができません。データ・グリッド・セキュリティーは共有秘密ストリング・メカニズムを使用します。

カタログ・サーバーを含むすべての WebSphere® eXtreme Scale サーバーが、共有秘密ストリングと一致しています。サーバーがデータ・グリッドに結合する場合、秘密ストリングの表示を求められます。結合サーバーの秘密ストリングがプレジデント・サーバーまたはカタログ・サーバーのいずれかの秘密ストリングと一致する場合は、結合サーバーは受け入れられます。ストリングが一致しない場合、結合要求は拒否されます。

平文の機密事項の送信は保護されません。WebSphere eXtreme Scale セキュリティー・インフラストラクチャーには、 セキュア・トークン・マネージャー・プラグインが用意されており、 サーバーはこの機密事項を送信する前にセキュアにできます。セキュア操作の実装方法を決定する必要があります。WebSphere eXtreme Scale は、 すぐに使用可能な実装を提供し、 これによりセキュア操作が実装され、機密事項が暗号化されて署名が行われます。

秘密ストリングは server.properties ファイルに設定されます。 authenticationSecret プロパティーについての詳細は、サーバー・プロパティー・ファイル を参照してください。

SecureTokenManager プラグイン

セキュア・トークン・マネージャー・プラグインは、com.ibm.websphere.objectgrid.security.plugins.SecureTokenManager インターフェースによって表されます。

SecureTokenManager プラグインについて詳しくは、SecureTokenManager API 資料を参照してください。

generateToken(Object) メソッドはオブジェクトを取得し、 外部に識別されないトークンを生成します。verifyTokens(byte[]) メソッドは逆に、トークンを元のオブジェクトに変換して戻します。

単純な SecureTokenManager 実装は、 排他 OR (XOR) アルゴリズムなどの単純なエンコード・アルゴリズムを使用して、 シリアライズ形式でオブジェクトをエンコードし、対応する デコード・アルゴリズムを使用してトークンをデコードします。この実装は保護されません。

WebSphere eXtreme Scale には、このインターフェースに対してすぐに使用可能な実装が用意されています。

デフォルトの実装では 鍵ペアを使用して、署名し、シグニチャーを検査します。また、秘密鍵を使用して、コンテンツを暗号化します。すべてのサーバーには JCKES タイプの鍵ストアが備えられており、鍵ペア、秘密鍵と公開鍵、および秘密鍵が保管されています。鍵ストアは、秘密鍵を保管する JCKES タイプである必要があります。

これらの鍵は、送信側で秘密ストリングを暗号化し、署名または検証する場合に使用されます。また、トークンは有効期限の時間に関連付けられています。受信側で、データの検証、暗号化解除、および受信側の秘密ストリングとの比較が行われます。 サーバーのペアの間での認証には、Secure Sockets Layer (SSL) 通信プロトコルは必要ありません。これは、秘密鍵と公開鍵の目的が同じであるためです。ただし、サーバー通信が暗号化されていない場合は、通信時に侵入者にデータを盗まれる可能性があります。トークンの有効期限が近いため、リプレイ・アタックの危険性は少なくなっています。 この可能性は、すべてのサーバーをファイアウォールの後ろにデプロイすると、非常に小さくなります。

この方法の欠点は、WebSphere eXtreme Scale 管理者が鍵を生成し、生成した鍵をすべてのサーバーに移送する必要があるため、移送中にセキュリティー・ブリーチが発生する可能性があることです。

セキュア・トークン・マネージャーのデフォルト・プロパティーを作成するためのサンプル・スクリプト

前のセクションで記述したように、署名とシグニチャーの検査を行う鍵ペアおよびコンテンツを暗号化する秘密鍵を含む、鍵ストアを作成することができます。

例えば、以下のように JDK 6 keytool コマンドを使用して鍵を作成できます。

keytool -genkeypair -alias keypair1 -keystore key1.jck -storetype JCEKS -keyalg
rsa -dname "CN=sample.ibm.com, OU=WebSphere eXtreme Scale" -storepass key111 -keypass
keypair1 -validity 10000
keytool -genseckey -alias seckey1 -keystore key1.jck -storetype JCEKS -keyalg
DES  -storepass key111 -keypass seckey1 -validity 1000
上記 2 つのコマンドは、鍵ペア「keypair1」と秘密鍵「seckey1」を作成します。 次に、サーバー・プロパティー・ファイルで以下のように構成することができます。
secureTokenKeyStore=key1.jck
secureTokenKeyStorePassword=key111
secureTokenKeyStoreType=JCEKS
secureTokenKeyPairAlias=keypair1
secureTokenKeyPairPassword=keypair1
secureTokenSecretKeyAlias=seckey1
secureTokenSecretKeyPassword=seckey1
secureTokenCipherAlgorithm=DES
secureTokenSignAlgorithm=RSA

構成

セキュア・トークン・マネージャーの構成に使用するプロパティーについて詳しくは、サーバー・プロパティーを 参照してください。