(57)【要約】クラスタに参加しようとしているノードと、有効にクラスタの部分である任意の単一のノードとの間の認証を使用して、クラスタの任意の有効なノード間の安全なマルチキャスト通信を容易にするシステムおよび方法が開示される。実施形態によれば、クラスタ内通信に関してセキュリティを提供するために、クラスタ鍵が利用される。実施形態のクラスタ鍵は、既にクラスタの部分であるノードによって、そのクラスタに参加しようとしているノードと、これら２つのノードがお互いに相互認証した後にのみ、共有される。実施形態の相互認証ハンドシェイクは、セッション鍵が両方のノードによって計算されるプロトコルを実施し、それにより、クラスタ鍵が共有され得る安全な手段を提供する。クラスタ鍵を有しているので、クラスタの各ノードは、実施形態に従って、個々に（例えば、ユニキャスト通信）またはひとまとめに（例えば、マルチキャスト通信）かに関わらず、クラスタの任意の他のノードと安全に通信することが可能になる。2014529238.tif 000003
2014529238.tif 000002
【特許請求の範囲】
【請求項１】
以下を含む、安全なマルチキャスト通信機能をクラスタの複数のノードに提供するための方法：
前記クラスタに参加しようとしているノードと、有効に前記クラスタの部分である任意の単一のノードとの間で相互認証セッションを実行すること、および
前記相互認証が成功である場合に、前記相互認証セッションに固有の安全な通信チャネルを使用して、前記クラスタに参加しようとしている前記ノードにクラスタ秘密を伝達することであって、前記クラスタ秘密が、前記クラスタに参加しようとしている前記ノードをクラスタノードにし、かつ前記クラスタノードの、有効に前記クラスタの部分である他の全てのノードとの安全な通信を可能にする、クラスタ秘密を伝達すること。
【請求項２】
前記クラスタに参加しようとしている前記ノードが、前記相互認証セッションを、有効に前記クラスタの部分である前記単一のノードのみと実行した後に、クラスタノードになる、請求項１に記載の方法。
【請求項３】
有効に前記クラスタの部分である前記単一のノードが、前記クラスタに参加しようとしている前記ノードのピアノードである、請求項１に記載の方法。
【請求項４】
相互認証セッションを実行することが、
前記クラスタに参加しようとしている前記ノードおよび前記単一のノードによって別々にセッション鍵を計算することであって、前記セッション鍵が前記相互認証セッションに固有である、別々にセッション鍵を計算すること
を含む、請求項１に記載の方法。
【請求項５】
クラスタ秘密を伝達することが、
前記セッション鍵を使用して、前記クラスタに参加しようとしている前記ノードと前記単一のノードとの間でクラスタ鍵を伝達すること
を含む、請求項４に記載の方法。
【請求項６】
相互認証セッションを実行することが、
前記クラスタに参加しようとしている前記ノードと、前記相互認証セッションを実行している前記クラスタの前記ノードを含む有効に前記クラスタの部分である全てのノードとによって保有されるクラスタ認証情報を使用して、前記相互認証セッションに対して別々にベリファイアを計算すること
を含む、請求項１に記載の方法。
【請求項７】
クラスタ認証情報を使用してベリファイアを計算することが、前記クラスタに参加しようとしている前記ノードを一意に識別する情報をさらに使用する、請求項６に記載の方法。
【請求項８】
前記クラスタ認証情報が、前記クラスタに参加しようとしている前記ノードおよび前記相互認証セッションを実行している前記クラスタの前記ノードの各々に別々に投入されたクラスタパスワードを含む、請求項６に記載の方法。
【請求項９】
相互認証セッションを実行することが、
前記クラスタに参加しようとしている前記ノードが前記クラスタ内で許可されたノードの登録簿に含まれていると判断すること
を含む、請求項１に記載の方法。
【請求項１０】
前記クラスタ秘密が、対称暗号鍵を含む、請求項１に記載の方法。
【請求項１１】
前記クラスタ秘密を再生成すること、および
有効に前記クラスタの部分である前記ノードの全てに、前記再生成されたクラスタ秘密を取得するために、かかるノードの各々と前記クラスタの別のノードとの間で相互認証セッションを再度実行することを要求すること
をさらに含む、請求項１に記載の方法。
【請求項１２】
前記クラスタ秘密を再生成することが定期的に実行される、請求項１１に記載の方法。
【請求項１３】
前記クラスタ秘密を再生成することが、ノードが前記クラスタから離れると実行される、請求項１１に記載の方法。
【請求項１４】
クラスタの第１のノードと前記クラスタの第２のノードとの間で相互認証ハンドシェイクを実行すること、
前記第１のノードと前記第２のノードとの間の前記相互認証ハンドシェイクによって確立された安全な通信チャネルを使用して、前記第１のノードと前記第２のノードとの間でクラスタ鍵を伝達すること、
前記クラスタの第３のノードと、前記第１のノードおよび第２のノードのうちの一方との間で相互認証ハンドシェイクを実行すること、
前記第３のノードと前記第１のノードおよび前記第２のノードのうちの前記一方との間の前記相互認証ハンドシェイクによって確立された安全な通信チャネルを使用して、前記第３のノードと前記第１のノードおよび第２のノードのうちの前記一方との間でクラスタ鍵を伝達すること、ならびに
前記クラスタ鍵を使用して、前記第１のノード、前記第２のノード、および前記第３のノードの間で安全なクラスタ通信を実行すること
を含む方法。
【請求項１５】
前記第１のノードと前記第２のノードとの間で前記相互認証ハンドシェイクを実行することが、前記第１のノードおよび前記第２のノードによって別々に第１のセッション鍵を計算することを含み、前記第１のノードと前記第２のノードとの間の前記相互認証ハンドシェイクによって確立された前記安全な通信チャネルが、前記第１のセッション鍵を使用して保護され、かつ、前記第３のノードと、前記第１のノードおよび前記第２のノードのうちの前記一方との間で前記相互認証ハンドシェイクを実行することが、前記第３のノードならびに、前記第１のノードおよび前記第２のノードのうちの前記一方によって別々に第２のセッション鍵を計算することを含み、前記第３のノードと、前記第１のノードおよび前記第２のノードのうちの前記一方との間の前記相互認証ハンドシェイクによって確立された前記安全な通信チャネルが、前記第２のセッション鍵を使用して保護される、請求項１４に記載の方法。
【請求項１６】
前記安全なクラスタ通信が、ユニキャスト通信およびマルチキャスト通信を含む、請求項１４に記載の方法。
【請求項１７】
前記第１のノードと前記第２のノードとの間で相互認証セッションを実行することが、
前記第１のノードおよび前記第２のノードによって保有されるクラスタパスワードを使用して第１のベリファイアを計算することであって、前記クラスタパスワードが前記第１のノードおよび前記第２のノードの各々に別々に投入される、第１のベリファイアを計算すること
を含み、かつ、前記第３のノードと、前記第１のノードおよび第２のノードのうちの一方との間で相互認証セッションを実行することが、
前記第３のノードならびに、前記第１のノードおよび第２のノードのうちの前記一方によって保有される前記クラスタパスワードを使用して第２のベリファイアを計算することであって、前記クラスタパスワードが前記第３のノードならびに前記第１のノードおよび第２のノードのうちの前記一方の各々に別々に投入される、第２のベリファイアを計算すること
を含む、請求項１４に記載の方法。
【請求項１８】
第１のプロセッサベースのネットワーク接続された装置の動作を制御するコードに従って、複数のノードのクラスタの１つのノードとして動作するように適合された、第１のプロセッサベースのネットワーク接続された装置であって、前記第１のプロセッサベースのネットワーク接続された装置の前記コードが、前記クラスタのノードとして動作する１つまたは複数の他のプロセッサベースのネットワーク接続された装置に対する、前記クラスタの秘密の安全な供給源および前記クラスタの前記秘密の安全な受信者の両方としての前記第１のプロセッサベースのネットワーク接続された装置の動作を提供し、かつ、前記クラスタの前記秘密が前記クラスタの全てのノード間での安全な通信を可能にするように適合されている、第１のプロセッサベースのネットワーク接続された装置
を備えるシステム。
【請求項１９】
前記クラスタの前記秘密が暗号クラスタ鍵を含む、請求項１８に記載のシステム。
【請求項２０】
前記第１のプロセッサベースのネットワーク接続された装置の、前記クラスタの前記秘密の供給源としての前記動作が、１つまたは複数の他のプロセッサベースのネットワーク接続された装置が、前記第１のプロセッサベースのネットワーク接続された装置のみとの認証を通じて、前記クラスタにノードとして参加するのを容易にし、かつ、前記第１のプロセッサベースのネットワーク接続された装置の、前記クラスタの前記秘密の受信者としての前記動作が、前記クラスタに参加しようとしている前記第１のプロセッサベースのネットワーク接続された装置を、前記１つまたは複数の他のプロセッサベースのネットワーク接続された装置のうちの１つの他のプロセッサベースのネットワーク接続された装置のみとの認証を通じて容易にする、請求項１８に記載のシステム。
【請求項２１】
前記第１のプロセッサベースのネットワーク接続された装置の前記コードが、前記他のプロセッサベースのネットワーク接続された装置のうちの１つのプロセッサベースのネットワーク接続された装置との相互認証セッションを実行するように適合されていて、相互認証セッションが、前記クラスタ秘密の安全な伝達に対して適合された前記相互認証セッションに固有の安全な通信チャネルを提供する、請求項１８に記載のシステム。
【請求項２２】
前記第１のプロセッサベースのネットワーク接続された装置が前記クラスタに参加しようとしている場合に、前記相互認証セッションが、前記第１のプロセッサベースのネットワーク接続された装置を有効に前記クラスタの部分であるノードとして認証し、前記安全な通信チャネルによって伝達された前記クラスタ秘密を受信するように動作可能であり、かつ、前記第１のプロセッサベースのネットワーク接続された装置が、前記１つまたは複数の他のプロセッサベースのネットワーク接続された装置のうちの前記１つのプロセッサベースのネットワーク接続された装置による前記クラスタの参加を交渉している場合に、前記相互認証セッションが、前記１つまたは複数の他のプロセッサベースのネットワーク接続された装置のうちの前記１つのプロセッサベースのネットワーク接続された装置を認証し、前記１つまたは複数の他のノードのうちの前記１つのプロセッサベースのネットワーク接続された装置が成功裏に認証された場合に前記安全な通信チャネルによって前記クラスタ秘密を伝達するように動作可能である、請求項２１に記載のシステム。
【請求項２３】
前記第１のプロセッサベースのネットワーク接続された装置が、複数のノードの前記クラスタの部分として、自身の前記動作を制御するコードに従って動作するように適合された複数のプロセッサベースのネットワーク接続された装置のうちの１つであり、前記複数のうちの各プロセッサベースのネットワーク接続された装置の前記コードが、前記クラスタの秘密の安全な供給源および前記クラスタの前記秘密の安全な受信者の両方としての前記それぞれのプロセッサベースのネットワーク接続された装置の動作を提供し、かつ、前記複数のうちの各プロセッサベースのネットワーク接続された装置が、前記複数のうちの単一の他のプロセッサベースのネットワーク接続された装置と認証する自身のコードの動作によって前記クラスタに参加し、前記複数のうちの他の全てのプロセッサベースのネットワーク接続された装置と安全に通信するように適合されている、請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、クラスタ内通信に関し、より詳細には、安全なマルチキャストクラスタ内通信を提供することに関する。
【背景技術】
【０００２】
発明の背景
１つのクラスタの異なるノードが互いに通信する、様々なシステム構成が存在し、ノードは、所望の機能、サービス、もしくは動作、またはその一部を提供するように動作可能である、動作ユニット（例えば、プロセッサベースシステム）であり、他のノードと協働してクラスタを形成し得る。例えば、データ記憶システムは、しばしば、そのデータ記憶システムの異なるノードに存在する複数の記憶装置を含む。かかるデータ記憶システムは、ネットワークアタッチトストレージ（ＮＡＳ）環境、ストレージエリアネットワーク（ＳＡＮ）、ダイレクトアタッチトストレージ環境、およびそれらの組合せなどの、様々なストレージアーキテクチャを使用して実施され得る。データ記憶システムのノードは、ファイルサーバーシステム、コンピュータアプライアンス、コンピュータワークステーションなどの、プロセッサベースシステムを含み得る。異なるノードの記憶装置は、ディスクドライブ、フラッシュメモリ、光メモリなどを含み得る。記憶装置のうちの選択されたものが、ストレージアーキテクチャに従い、ストレージアレイとして編成され得る。従って、ストレージアレイの記憶装置をホスティングするノードならびに他のネットワーク接続された装置は、データ記憶システムを提供するために協働して動作可能なノードのクラスタを構成し得る。
【０００３】
クラスタとして動作するために、クラスタのノードは、互いに通信する。かかる通信は、様々なポイントツーポイント通信（例えば、単一ノードから単一ノードまたはユニキャスト通信）およびマルチキャスト通信（例えば、単一ノードから複数ノード）を含み得る。したがって、効果的に協働して所望の動作を提供するために、クラスタの各ノードは、クラスタの任意のおよび全ての他のノードと通信する機能を有する必要があり得る。しかし、かかる通信は、公衆または他のネットワーク回線（例えば、インターネット、公衆交換電話網（ＰＳＴＮ）、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）など）などの、安全対策が施されていない回線を通過し得る。かかる安全対策が施されていない回線を通して遂行される通信は、傍受、盗聴、改ざん、監視、スニフィング（ｓｎｉｆｆｉｎｇ）、中間者攻撃、中継端末攻撃（ｒｅｌａｙ  ａｔｔａｃｋ）、反射攻撃などを受けやすい可能性がある。
【０００４】
したがって、クラスタのノード間の通信（すなわち、クラスタ内通信）を容易にするために、様々なセキュリティプロトコルが過去において実施されている。例えば、セキュアソケットレイヤ（ＳＳＬ）およびトランスポート層セキュリティ（ＴＬＳ）セキュリティプロトコルが、クラスタ内通信を安全にするためにクラスタのノードによって実施されている。ＳＳＬおよびＴＬＳは、プライバシのための非対称暗号化およびメッセージの信頼性のための鍵付きメッセージ認証コードを使用して、通信セキュリティを提供する、暗号化プロトコルである。しかし、これらのセキュリティプロトコルは、ポイントツーポイントセキュリティプロトコルである。すなわち、固有の鍵セットが、各ノード対に対して利用される。したがって、安全なマルチキャスト通信は、ＳＳＬおよびＴＬＳセキュリティプロトコルの使用を通しては提供されない。
【０００５】
安全なマルチキャスト通信を提供するプロトコルが開発されているが、かかるプロトコルは、これまで、マルチキャスト通信に関して十分なセキュリティを提供しておらず、ノードの、クラスタとの動的な関連付けに十分対応していない。通信用のセキュリティを提供するために使用されてきた１つのかかるプロトコルがＪＧＲＯＵＰＳである。ＪＧＲＯＵＰＳは、「グループ化（ｇｒｏｕｐｉｎｇ）」層がトランスポートプロトコルを通して追加されるマルチキャストプロトコルを提供する。マルチキャスト通信に関してセキュリティを提供するために、ＪＧＲＯＵＰＳは、そのＡＵＴＨおよびＥＮＣＲＹＰＴプロトコルを実施する。しかしながら、ＡＵＴＨプロトコルは、単一のトークンベース認証（例えば、安全対策が施されていない回線を通じて伝達されるパスワードまたは他の認証証明書）を使用して、片方向認証（すなわち、一方のノードだけが他方を認証する）を提供するだけであり、従って、盗聴者は、偽の認証を確立するために、通信を監視して、セキュリティハンドシェイクを模倣できる（例えば、反射攻撃）。ＥＮＣＲＹＰＴプロトコルは、全てのマルチキャスト通信を暗号化するために、クラスタ鍵を使用する。しかし、ＥＮＣＲＹＰＴプロトコルのクラスタ鍵は、自身の公開鍵を提供してクラスタ鍵を要求する、任意のノードに対して提供される。したがって、ＪＧＲＯＵＰＳによって実施されるＡＵＴＨおよびＥＮＣＲＹＰＴプロトコルを使用しても、中間者は容易にクラスタに参加し得、それ故、マルチキャスト通信に関して提供されるセキュリティは幾分、錯覚に近いものである。
【発明の概要】
【０００６】
本発明は、クラスタに参加しようとしているノードと、有効にクラスタの部分である任意の単一のノードとの間の認証を使用して、クラスタの任意の有効なノード間の安全なマルチキャスト通信を容易にするシステムおよび方法に関する。本発明の実施形態に従って、クラスタ内通信に関してセキュリティを提供するために、クラスタ鍵（例えば、対称暗号鍵）が利用される。実施形態のクラスタ鍵は、既にクラスタの部分であるノードによって、そのクラスタに参加しようとしているノードと、これら２つのノードがお互いに相互認証した後にのみ、共有される。実施形態の相互認証ハンドシェイクは、セッション鍵が両方のノードによって計算されるプロトコルを実施するか、またはそのプロトコルに他の方法で関連し、それにより、ネットワークまたは他の回線を通じて伝達されたセッション鍵なしで、ノード間の安全な回線を容易にする。クラスタに参加しようとしているノードと、既にそのクラスタの部分であるノードによって、これら２つのノードが本発明の実施形態に従ってお互いに相互認証した後にクラスタ鍵が安全に共有されるために、セッション鍵が使用される。クラスタ鍵を有しているので、クラスタの各ノードは、個々に（例えば、ユニキャスト通信）またはひとまとめに（例えば、マルチキャスト通信）かに関わらず、クラスタの任意の他のノードと安全に通信することが可能になる。
【０００７】
前述から、本発明の実施形態は、クラスタ内の任意のノードに対して認証することにより、ノードがクラスタに参加するのを容易にすることが理解できる。本発明の実施形態は、ノードの認証を提供する際に、公開鍵インフラストラクチャ（ＰＫＩ）または証明書に依存しない。したがって、ＰＫＩまたは証明書の管理に関わる構成およびメンテナンスが回避される。しかし、本明細書の実施形態は、マルチキャスト通信用にクラスタ環境内での使用のために調整されたか、または他の方法で適合された新しい方法においてではあるが、利用可能な認証プロトコル、鍵共有プロトコル（ｋｅｙ  ａｇｒｅｅｍｅｎｔ  ｐｒｏｔｏｃｏｌ）、および／もしくは暗号化アルゴリズムまたはそれらの一部を利用し得、それにより、十分に試験されて完全に文書化されている基礎技術を活用し得る。
【０００８】
一旦認証されると、参加したノードに関する信頼がクラスタ全体のノードで確立される。すなわち、クラスタに参加しようとしているノードは、基本的に、参加するために、クラスタに対して論理ユニットとして認証する。従って、クラスタに参加しようとしているノードは、本明細書の実施形態によると、ポイントツーポイント方式のプロトコルを実施するアプローチであれば要求され得るように、クラスタ内の全てのノードに対して、または複数のノードに対してさえ、認証する必要がない。一旦参加すると、クラスタのノードは、ユニキャストおよびマルチキャストメッセージングを含む様々なメッセージング技術を使用して、クラスタの他のノードと通信することが可能になる。本発明の実施形態の動作とは対照的に、マルチキャスト通信技術は、ポイントツーポイント方式のプロトコルでは容易に実施されない。
【０００９】
前述は、以下に続く本発明の詳述がより良く理解され得るために、本発明の特徴および技術的な利点を多少大まかに概説している。本発明の特許請求の範囲の主題を形成する本発明の追加の特徴および利点が、以下で述べられる。当業者には、開示される概念および特定の実施形態は、本発明の同じ目的を実行するため、修正または他の構造の設計のための基礎として容易に利用され得ることが理解されるべきである。当業者には、かかる等価な構造は、添付の特許請求の範囲に記載の本発明の精神および範囲から逸脱しないことも理解されるべきである。本発明の構成および動作方法の両方に関して、本発明の特性であると考えられる新規の特徴は、さらなる目的および利点とともに、添付の図に関連して考慮されると、以下の記述からより良く理解されるであろう。しかし、図の各々は、例証および説明の目的のためにのみ提供されており、本発明の限定の定義としては意図していないことが明確に理解されるべきである。
【００１０】
本発明をより完全に理解するために、ここで、以下の記述が、添付の図と併せて参照される。
【図面の簡単な説明】
【００１１】
【図１Ａ】本発明の実施形態に従って、クラスタの各ノードが、クラスタの任意の他のノードと安全に通信することを可能にするように適合されたシステムのブロック図を示す。
【図１Ｂ】本発明の実施形態に従って、クラスタの各ノードが、クラスタの任意の他のノードと安全に通信することを可能にするように適合されたシステムのブロック図を示す。
【図２】本発明の実施形態に従って、クラスタの各ノードが、クラスタの任意の他のノードと安全に通信することを可能にする高レベルのプロセスフローのラダー図を示す。
【図３】本発明の実施形態に従って、クラスタの各ノードが、クラスタの任意の他のノードと安全に通信することを可能にするより詳細なプロセスフローのラダー図を示す。
【発明を実施するための形態】
【００１２】
発明の詳細な説明
本明細書で使用される特定の用語の意味の簡潔な説明が、以下の説明に記載の本発明の概念を読者がより良く理解するのを助けるために、以下に提供される。以下は、特定の用語に関する一般的な意味を提供するが、本明細書では、ある用語に関する追加の意味が、以下に述べる特定の実施形態の文脈において提供され得ることが理解されるべきである。
【００１３】
本明細書では、クラスタとは、所望の機能、サービス、または動作を提供するために共に動作可能な、接続されているか、または他の方法で関連付けられているノードのグループであり、それにより、多くの点において、単一の論理要素を形成する。ノードとは、所望の機能、サービス、もしくは動作、またはそれらの一部を提供するために動作可能な、例えばプロセッサベースのシステム（例えば、コンピュータ、ネットワークアプライアンスなど）および関連した命令セット（例えば、ソフトウェア、ファームウェア、アプリケーションなど）などの、ネットワーク接続された装置の動作ユニットであり、これは、クラスタを形成するために他のノードと協働し得る。クラスタ内通信は、ユニキャスト通信およびマルチキャスト通信などの、クラスタの中の２つ以上のノードの間の通信である。ユニキャスト通信は、１つまたは複数のメッセージまたは情報を単一のネットワーク宛先（例えば、ノード）に送信することである。マルチキャスト通信は、１つまたは複数のメッセージまたは情報を、単一の伝送により、複数のネットワーク宛先（例えば、ノード）に送信することである。
【００１４】
本明細書では、認証とは、一方の当事者（例えば、ノード）が別の当事者（例えば、別のノード）のアイデンティティを確認するプロセスであるのに対して、相互認証とは、２当事者（例えば、ノード）が互いのアイデンティティを確認するプロセスである。認証ハンドシェイクは、一方もしくは他方（認証）または両方（相互認証）を認証しようと試みる２当事者（例えば、ノード）間のメッセージの対話である。鍵共有プロトコルは、２以上の当事者（例えば、ノード）が、両者が結果に影響を及ぼし、それによって当事者間で固有の鍵（例えば、セッション鍵）を伝達する必要なく固有の鍵を別々に計算することが容易になり、従って、盗聴および改ざんを回避するような方法で、鍵（例えば、データの暗号化および／または復号で使用される暗号鍵）について共有できるプロトコルである。盗聴は、第三者（例えば、クラスタの部分でないノード）が、通信に関与する当事者（例えば、クラスタのノード）の同意および／または知ることなしに、通信を監視する場合である。改ざんは、第三者（例えば、クラスタの部分ではない、ネットワーク接続された装置）が、通信に関与する当事者（例えば、クラスタのノード）が知ることなく、データを、通信している当事者の間でデータが伝送中に、変更または他の方法で改ざんする場合である。暗号化とは、（暗号化前はプレーンテキストと呼ばれる）情報を、通常は鍵（例えば、暗号鍵）と呼ばれる特別な情報を保有している人以外は判読できないようにする（暗号と呼ばれる）アルゴリズムを使用して、変換するプロセスであり、他方、復号とは、暗号化された情報をプレーンテキストに変換して戻すプロセスである。
【００１５】
図１Ａを参照すると、ネットワーク１０１を経由して結合した、ネットワーク接続された装置１１０〜１３０として示される複数のネットワーク接続された装置を含むシステム１００が示されている。ネットワーク接続された装置１１０〜１３０は、ファイルサーバーシステム、コンピュータアプライアンス、コンピュータワークステーションなどの、プロセッサベースシステムを含み得る。したがって、実施形態のネットワーク接続された装置１１０〜１３０は、プロセッサ（例えば、中央処理装置（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルゲートアレイ（ＰＧＡ）など）、メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、ディスクメモリ、光メモリ、フラッシュメモリなど）、および適切な入力／出力回路（例えば、ネットワークインタフェースカード（ＮＩＣ）、無線ネットワークインタフェース、ディスプレイ、キーボード、データバスなど）を含む。前述のプロセッサベースシステムは、本明細書に記載されるような動作を提供する命令セット（例えば、ソフトウェア、ファームウェア、アプレット、コードなど）の制御下で動作し得る。ネットワーク１０１は、インターネット、ＰＳＴＮ、ＬＡＮ、ＭＡＮ、ＷＡＮ、無線ネットワーク（例えば、セルラー式通信ネットワーク、無線ＬＡＮなど）、および／または同様のものなどの、様々な形態の通信インフラストラクチャを含み得る。
【００１６】
ノードによる１つまたは複数のクラスタが、ネットワーク接続された装置１１０および１２０から形成され、それによりクラスタ環境を提供する、システム１００の様々な構成が提供され得るが、その環境内では、クラスタの協調した動作が、クラスタのノード間の通信を通して容易になる。例えば、データ記憶システムは、ネットワーク接続された装置１１０〜１３０から形成され得、ネットワーク接続された装置１１０および１２０（例えば、ディスクドライブ、フラッシュメモリ、光メモリなど）に存在する１つまたは複数の記憶装置（例えば、記憶装置１１４および１２４）が、ネットワーク接続された装置１３０に対してアクセス可能なボリュームを提供するために協働する。ストレージアレイの記憶装置をホスティングするネットワーク接続された装置１１０および１２０ならびにクライアントのネットワーク接続された装置１３０は、このように、データ記憶システムを提供するために協調して動作可能なノードのクラスタを構成し得る。
【００１７】
図１Ｂは、クラスタの各ノードが、そのクラスタの任意の他のノードと安全に通信することを可能にするように適合されたシステム１００の実施形態に関する追加の詳細を示すブロック図を提供する。前述のように、システム１００は、システム１００のストレージを構成する（記憶装置１１４および１２４として示される）記憶装置のセット上に格納されたデータへのアクセスを提供するように構成されたネットワーク接続された装置１１０および１２０などの、相互接続された２つ以上の装置を含み得る。システム１００の分散ストレージシステムアーキテクチャを提供するために協働する様々な機能コンポーネントを実装するかかるノードによって、ストレージサービスが提供され得る。
【００１８】
例示として、ノード（例えば、ネットワーク接続された装置１１０および１２０）は、１つもしくは複数のネットワーク要素（Ｎモジュール１１２および１２２）および／または記憶要素（Ｄモジュール１１３および１２３）および管理要素（Ｍホスト１１１および１２１）として編成され得る。Ｎモジュールは、ノードがコンピュータネットワーク１０１を経由して、１つまたは複数のクライアント（例えば、ネットワーク接続された装置１３０）と接続することを可能にする機能を含み得、他方、Ｄモジュールは、（例えば、ストレージアレイを実装し得るように）記憶装置に接続し得る。Ｍホストは、情報共有動作を生成するため、およびシステム１００に対して分散ファイルシステムイメージを提示するために、ノード間のクラスタ通信サービスを提供し得る。クラスタの各ノードがクラスタの任意の他のノードと安全に通信することを可能にするための機能が、本発明の実施形態に従って適合されたＭホストによって提供され得る。
【００１９】
ネットワーク１０１は、ネットワークインフラストラクチャの様々な形態、および別個の部分さえ、含み得ることが理解されるべきである。例えば、ネットワーク接続された装置１１０および１２０は、クラスタスイッチング構造１０２によって相互接続され得、同時に、ネットワーク接続された装置１１０および１２０は、より一般的なデータネットワーク（例えば、インターネット、ＬＡＮなど）によって、ネットワーク接続された装置１３０に相互接続され得る。
【００２０】
ノードの図示した実施形態を構成する同数のＮおよびＤモジュールが示されているが、本発明の様々な実施形態に従って、ノードを具体化する、異なる個数および／またはタイプの機能コンポーネントがあり得ることにも留意されるべきである。例えば、ネットワーク接続された装置１１０および１２０のモジュール間で１対１の対応を示さない、システム１００内で相互接続された、複数のＮモジュールおよび／またはＤモジュールがあり得る。したがって、１つのＮモジュールおよび１つのＤモジュールを含むネットワーク接続された装置１１０および１２０の記述は、例示としてのみ解釈されるべきであり、新規の技術は、本明細書で説明する例示的な実施形態に限定されないことが理解されるであろう。
【００２１】
ネットワーク接続された装置１３０は、情報配信のクライアント／サーバーモデルに従って、ネットワーク接続された装置１１０および１２０とやりとりするように構成された汎用コンピュータであり得る。そのために、ネットワーク接続された装置１３０は、ネットワーク接続された装置を含むクラスタノードに対して読取りまたは書込み要求をサブミットすることにより、ネットワーク接続された装置１１０および１２０のサービスを要求し得る。要求に応答して、前記ノードは、ネットワーク１０１を経由して情報パケットを交換することにより、要求されたサービスの結果を返し得る。ネットワーク接続された装置１３０は、例えば、共通インターネットファイルシステム（ＣＩＦＳ）プロトコル、ネットワークファイルシステム（ＮＦＳ）プロトコル、ＴＣＰを介してカプセル化された小規模コンピュータシステムインタフェース（ＳＣＳＩ）プロトコル（ｉＳＣＳＩ）、およびファイバーチャンネルを介してカプセル化されたＳＣＳＩ（ＦＣＰ）などの、オブジェクトベースのアクセスプロトコルを使用してパケットを発行することによりアクセス要求をサブミットし得る。好ましくは、ネットワーク接続された装置１１０および１２０は、ネットワーク接続された装置１３０と通信するために、ファイルベースおよびブロックベースのプロトコルの組合せを実施し得る。
【００２２】
システム１００は、クラスタ全体に対して管理サービスを提供するための管理コンソール（本明細書では、管理コンソール１５０として示す）をさらに含む。例えば、管理コンソール１５０は、ネットワーク接続された装置から構成されるクラスタノードで動作が実行されることを要求するため、およびノードからの情報（例えば、ノード構成、動作測定基準）を要求するか、または情報をノードに提供するために、ネットワーク１０１を経由して、ネットワーク接続された装置１１０および１２０と通信し得る。加えて、管理コンソール１５０は、システム１００のユーザー（例えば、ストレージ管理者）からの入力を受信し、システム１００のユーザーに出力を提供するように構成され得、それにより、管理者とシステム１００との間の集中管理インタフェースとして動作する。例示的な実施形態では、管理コンソール１５０は、ネットワーク接続された装置１１０〜１３０にネットワーク接続され得るが、本発明の他の実施形態は、管理コンソール１５０を、システム１００に接続するかまたはシステム１００を構成するノードまたは任意の他の処理システムの機能コンポーネントとして実装し得る。
【００２３】
分散アーキテクチャでは、ネットワーク接続された装置１３０は、リモートノードに格納されたデータに対するアクセス要求をノードにサブミットし得る。一例として、ネットワーク接続された装置１３０からのアクセス要求は、ストレージ１１４内のネットワーク接続された装置１１０上のストレージオブジェクト（例えば、ボリューム）を対象にし得るネットワーク接続された装置１２０に送信され得る。アクセス要求の処理を加速して、クラスタ性能を最適化するために、ネットワーク接続された装置１２０は、要求されたボリュームをローカルメモリ内またはストレージ１２４内にキャッシュし得る。例えば、ネットワーク接続された装置１２０のクラスタノードとしての初期化中に、ネットワーク接続された装置１２０は、ネットワーク接続された装置１１０からのボリュームの全部または一部を、かかるデータに対するネットワーク接続された装置１３０による実際の要求の前に、ネットワーク接続された装置１２０での格納のために要求し得る。
【００２４】
前述から理解できるように、クラスタ（例えば、前述のデータ記憶システム）として動作するために、ネットワーク接続された装置１１０〜１３０は、互いに通信し得る。かかる通信は、様々な形態の通信（例えば、ポイントツーポイントまたはユニキャスト通信、マルチキャスト通信など）を含み得る。したがって、効果的に協働して論理要素として所望の動作を提供するために、クラスタの各ノードは、本発明の実施形態に従って、クラスタの任意のまたは全部のノードと通信する機能を提供される。しかし、ネットワーク１０１は、安全対策が施されていない回線を提供し得、従って、かかる通信は、傍受、盗聴、改ざん、監視、スニフィング、中間者攻撃、中継端末攻撃、反射攻撃などを受けやすい可能性があるので、本発明の実施形態は、クラスタに参加しようとしているノードと、有効にクラスタの部分である任意の単一のノードとの間の認証を使用して、クラスタの任意の有効なノード間に安全な通信（例えば、ユニキャストおよびマルチキャスト）を提供する。
【００２５】
クラスタに参加しようとしているノードが、参加するためにクラスタに対して論理ユニットとして認証し、従って、参加しようとしているノードとクラスタの任意の他の有効なノードとの間に安全な通信が提供され得る、安全な通信を容易にすることにおいては、本発明の実施形態に従った動作により、クラスタに参加しようとしているノードと有効にクラスタの部分である任意の単一のノードとの間で相互認証セッションが実行される。相互認証が成功である場合、実施形態に従った動作は、相互認証セッションに固有の安全な通信チャネルを使用して（例えば、相互認証に関連して計算されたセッション鍵を使用して）、クラスタ秘密（例えば、クラスタ鍵）をクラスタに参加しようとしているノードに伝達する。本発明の実施形態によれば、クラスタ秘密およびクラスタ認証情報の保有は、クラスタに参加しようとしているノードをクラスタノードにし、クラスタ秘密は、クラスタノードの、有効にクラスタの部分である他の全てのノードとの安全な通信を可能にする。
【００２６】
図２は、本明細書の実施形態に従い、クラスタに参加しようとしているノードが、クラスタ内の全てのノードに対して、または複数のノードに対してさえ、認証することなく、個々に（例えば、ユニキャスト通信）またはひとまとめに（例えば、マルチキャスト通信）かに関わらず、クラスタの各ノードがクラスタの任意の他のノードと安全に通信することが可能になるプロセスフローを示す。特に、図２のラダー図は、新しいノード（例えば、ネットワーク接続された装置１２０）が、別のノード（例えば、ネットワーク接続された装置１１０）が第１のメンバであるクラスタに参加する場合に、実施形態に従って起こる、認証ハンドシェイク、セッション鍵共有（ｓｅｓｓｉｏｎ  ｋｅｙ  ａｇｒｅｅｍｅｎｔ）、およびクラスタ鍵交換を提供する。図２に示すプロセスフローの機能は、本発明の実施形態の要素が本質的に、必要なタスクを実行するためにプロセッサベースまたはコンピュータシステム（例えば、ネットワーク接続された装置１１０、１２０、および／または１３０）上で動作可能なコードセグメントであるソフトウェアにおいて実施され得ることが理解されるべきである。プログラムまたはコードセグメントは、コンピュータ可読媒体（例えば、ネットワーク接続された装置１１０〜１３０のそれぞれ１つの前述のメモリ）に格納できる。
【００２７】
図示した実施形態によれば、有効にクラスタの部分になる各ノードは、クラスタ認証情報（例えば、クラスタパスワード）を保有すると考えられる。したがって、図示した実施形態のプロセス２０１で、クラスタ認証情報が投入されて、ネットワーク接続された装置１１０がクラスタに有効に含まれる予定のノードであることを立証する。様々な技術がクラスタ認証情報の投入のために実施され得ることが理解されるべきである。例えば、ネットワーク接続された装置１１０のユーザーが、起動中に、ネットワーク接続された装置のコンソール上でクラスタパスワードをタイプ入力してもよく、クラスタパスワードが、様々な手段によって保護されたファイル（例えば、そのネットワーク接続された装置に一時的に取り付けられたユニバーサルシリアルバス（ＵＳＢ）メモリ装置のメモリ内に格納されたファイル）から読み取られてもよく、クラスタパスワードが、他の、おそらくは秘密の、データから導出されてもよい、など。クラスタ認証情報をノードに投入するために使用される特定の技術にかかわらず、適切な認証情報を有すると、ネットワーク接続された装置１１０は有効にクラスタに加わり得る。
【００２８】
プロセス２０２で、ネットワーク接続された装置１１０は、自身がクラスタ内の第１のメンバであると判断する。ネットワーク接続された装置１１０が、クラスタの他のノードが存在するか否かを判断するための、様々な技術が実施され得る。例えば、ネットワーク接続された装置１１０は、別のクラスタノードからの応答を問い合わせるために、ネットワーク１０１を経由して、１つまたは複数のメッセージを伝送し得、かつ／またはネットワーク接続された装置１１０は、メンバノードのデータベースを保持する管理ノードまたは他のクラスタリソース（例えば、管理コンソール、Ｍホストなど）と通信し得る。追加的にまたは代替として、ネットワーク接続された装置１１０は、ネットワーク１０１上の通信を監視して、クラスタ通信トラフィックの存在を識別し得る。図示した実施形態のネットワーク接続された装置１１０が、どのように、自身がクラスタの第１のメンバであると判断するかに関わらず、このようにして、プロセス２０２で、クラスタ通信を保護する際に使用される新規のクラスタ秘密（例えば、クラスタ鍵）を生成する。
【００２９】
本明細書の実施形態に従って利用されるようなクラスタ鍵は、様々な技術を使用して生成され得る。例えば、クラスタ鍵は、安全かつ／またはランダムなデータを使用して生成され得る。システムは、しばしば、ＣＰＵ温度、ファン速度、マウスの動き、ネットワークトラフィックなどに基づくデータを使用してシードされ得るような、擬似ランダムデータの生成方法を提供する。かかる擬似ランダムデータは、本明細書でクラスタ鍵として使用される暗号鍵の計算に利用され得る。本発明の実施形態に従って生成されたクラスタ鍵は、対称鍵を含む（すなわち、同じ暗号鍵が暗号化と復号の両方を提供する対称暗号化を提供する）。したがって、ＰＫＩまたは証明書の管理に関わる構成およびメンテナンスは、かかるクラスタ鍵を使用するクラスタ通信については回避される。
【００３０】
クラスタ秘密およびクラスタ認証情報を保有しているので、ネットワーク接続された装置１１０はクラスタのメンバ（現在、唯一のメンバであるが）である。ネットワーク接続された装置１１０は、例えば、１つまたは複数のメッセージをブロードキャストすること、メンバノードのデータベースを保持する管理ノードまたは他のクラスタリソース（例えば、管理コンソール、Ｍホストなど）と通信することなどにより、自身がクラスタのメンバであることを通知するように動作し得る。
【００３１】
図２に示す実施形態では、ネットワーク接続された装置１２０は、ネットワーク接続された装置１１０が現在唯一のメンバであるクラスタに、参加することを望む。したがって、図示した実施形態のプロセス２０３で、クラスタ認証情報が投入されて、ネットワーク接続された装置１２０がクラスタに有効に含まれる予定のノードであることを立証する。ネットワーク接続された装置１１０に関して前述したように、様々な技術がクラスタ認証情報の投入のために実施され得る。クラスタ認証情報をネットワーク接続された装置に投入するために使用される特定の技術にかかわらず、適切な認証情報を有すると、ネットワーク接続された装置１２０は有効にクラスタに参加し得る。
【００３２】
プロセス２０４で、ネットワーク接続された装置１２０は、少なくとも１つのメンバが既にクラスタ内にあると判断する。ネットワーク接続された装置１１０に関して前述したように、ネットワーク接続された装置１２０が、クラスタの他のノードが存在するか否かを判断するための、様々な技術が実施され得る。図示した実施形態のネットワーク接続された装置１２０が、どのように、少なくとも１つのメンバが既にクラスタのメンバであると判断するかに関わらず、このようにして、プロセス２０４で、ネットワーク１０１を経由して、（クラスタに参加しようとしている）ネットワーク接続された装置１２０と既存のクラスタメンバ（この場合、ネットワーク接続された装置１１０）との間で相互認証ハンドシェイクを実行する。本明細書の相互認証を実行するため、参加しようとしているノードによって選択される特定のクラスタノードは、いくつかの基準（例えば、クラスタの最も古いメンバであるクラスタノード、参加しようとしているノードの最も近くに物理的に配置されているクラスタノード、最も少ないホップを有する回線が使用され得るクラスタノード、最も利用の少ないクラスタノードなど）のいずれかに基づいて選択され得る。本明細書の相互認証の提供における使用のために選択されたクラスタメンバは、クラスタに参加しようとしているノードのピアノードであり得ることが理解されるべきである。すなわち、管理ノードまたは他の集中型クラスタリソースは利用される必要がなく、むしろ、有効にクラスタの部分であるピアノード（例えば、クラスタ秘密を開始したノードでなければ、相互認証されており、また、クラスタ秘密を保有している）が各々、本明細書の実施形態に従って、認証およびクラスタ参加処理を提供し得る。
【００３３】
本発明の実施形態に従って実施されるような認証ハンドシェイクは、ネットワーク接続された装置１２０およびネットワーク接続された装置１１０の両方の相互認証をもたらす。かかる相互認証ハンドシェイクの使用は、クラスタの有効なメンバに提供されるようなクラスタ秘密、および／または認証情報もしくは他のセキュリティ情報が、認可されていないネットワーク接続された装置またはクラスタの有効な部分でない他のノード（例えば、中間者）に提供されないことを保証する。様々な相互認証プロトコルが、プロセス２０４の認証ハンドシェイクを提供する際に利用され得る。１つのかかる相互認証プロトコルに関する詳細が、図３に示す実施形態に関連して以下で提供される。実施される特定の相互認証プロトコルに関わらず、ネットワーク接続された装置１１０および１２０の各々が、図示した実施形態の相互認証ハンドシェイクの動作によって、ネットワーク接続された装置１２０および１１０の他方に対して認証される。いかなる時でも、ネットワーク接続された装置１１０またはネットワーク接続された装置１２０が認証失敗を検出する場合は、参加プロセスは好ましくは中止される。
【００３４】
本発明の実施形態に従った動作では、ネットワーク接続された装置１１０およびネットワーク接続された装置１２０の両方が、相互認証ハンドシェイクの一部として、または相互認証ハンドシェイクに関連して、セッション秘密（例えば、セッション鍵）を導出する。本明細書の実施形態に従って利用されるようなセッション秘密は、様々な技術を使用して生成され得る。例えば、セッション鍵は、認証ハンドシェイク中に収集されたデータから生成され得る。セッション鍵生成のための１つのかかる技術に関する詳細が、図３に示す実施形態に関連して以下で提供される。本発明の実施形態に従った動作では、クラスタ認証情報、ユーザー導出情報、クラスタ内の全てのノードに共通の情報、および、検出可能なパターンを提示し得るか、または別々に計算されたセッション秘密のセキュリティを他の方法で弱め得る他の情報は、セッション秘密自体の導出には使用されない。セッション秘密の生成に使用される特定の技術に関わらず、実施形態は、相互認証ハンドシェイクに参加するノードの各々によってセッション秘密を別々に生成するように動作し、そのため、セッション秘密（例えば、セッション鍵）はノードを結合する回線（例えば、ネットワーク１０１）を通じて渡されない。したがって、図示した実施形態では、プロセス２０５は、セッション秘密を計算するためにネットワーク接続された装置１２０によって実施されるプロセス２０６とは別に、セッション秘密を計算するためにネットワーク接続された装置１１０によって実施される。
【００３５】
相互認証が成功である場合は、クラスタ秘密をネットワーク接続された装置１１０からネットワーク接続された装置１２０にネットワーク１０１を経由して安全に伝達するために、前述のセッション秘密が本発明の実施形態に従って利用される。したがって、図示した実施形態のプロセス２０７で、ネットワーク接続された装置１１０は、セッション秘密（例えば、セッション鍵）を使用してクラスタ秘密（例えば、クラスタ鍵）を暗号化し、その暗号化されたクラスタ秘密をネットワーク接続された装置１２０に伝送する。例えば、実施形態のプロセス２０７で、セッション鍵を使用したクラスタ鍵の暗号化は、ＡＥＳ−１２８対称鍵暗号化を使用してもよい。しかし、他の暗号鍵アルゴリズム（例えば、ＩＤＥＡ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ）およびＣＡＳＴ−１２８暗号化アルゴリズムなどの他の対称暗号鍵アルゴリズム）を本発明の実施形態に従って使用してもよい。本発明の実施形態に従って利用されるセッション鍵は、ノードの認証を提供する際にＰＫＩまたは証明書の使用に依存せず、したがって、ＰＫＩまたは証明書の管理に関わる構成およびメンテナンスを回避する。
【００３６】
クラスタ秘密をネットワーク接続された装置１２０に伝送した後、ネットワーク接続された装置１１０と１２０との間のクラスタ参加セッションが、本発明の実施形態に従ってネットワーク接続された装置１１０に関して完了し、従って、ネットワーク接続された装置１１０は次いで、セッション鍵を破棄し得る。ネットワーク接続された装置１１０は、実施形態に従って、例えば後のクラスタ動作で使用するために、新しく加わったネットワーク接続された装置１２０を含めるために、有効にクラスタの部分であるノードのリストを更新するように動作し得る。ネットワーク接続された装置１１０は、有効にクラスタの部分であるノードの前述のリストなどの追加の情報を、（セッション秘密を破棄する前に）ネットワーク接続された装置１２０に伝達し得ることが理解されるべきである。実施形態のネットワーク接続された装置１２０は、ネットワーク接続された装置１１０から受信した暗号化されたクラスタ秘密を、セッション秘密を使用して復号し、クラスタ秘密を取得する。ネットワーク接続された装置１１０から受信したクラスタ秘密を復号した後、ネットワーク接続された装置１１０と１２０との間のクラスタ参加セッションが、本発明の実施形態に従ってネットワーク接続された装置１２０に関して完了し、従って、ネットワーク接続された装置１２０は次いで、セッション鍵を破棄し得る。ネットワーク接続された装置１１０および／またはネットワーク接続された装置１２０は、ネットワーク接続された装置１２０をクラスタノードとして識別する情報を、クラスタの他のノードに（例えば、クラスタ秘密を使用して）伝達し得る。
【００３７】
クラスタ秘密およびクラスタ認証情報を保持しているので、ネットワーク接続された装置１２０は、クラスタのメンバ（現在、２つのメンバのうちの１つ）である。したがって、実施形態に従った動作では、ネットワーク接続された装置１２０は、クラスタ内の他の全てのメンバを信頼し、クラスタ内の他の全てのメンバは、ネットワーク接続された装置１２０を信頼する。一旦参加すると、クラスタのノードは、クラスタ秘密の使用（例えば、クラスタ鍵を使用したメッセージの暗号化）を介したユニキャストおよびマルチキャストメッセージングを含む様々なメッセージング技術を使用して、クラスタの他のノードと通信することが可能になる。すなわち、ネットワーク接続された装置１２０は、クラスタの全ての他のノードが共有するクラスタ秘密を安全に取得することができ、それ故、ネットワーク接続された装置１２０は、そのクラスタ秘密を使用して、それらのノードと個々に（例えば、ユニキャスト通信）またはひとまとめに（例えば、マルチキャスト通信）のいずれかで通信し得る。このようにして、クラスタ内の任意のメンバへの／メンバからの将来の通信が、図示した実施形態のプロセス２０８によって表されるように、クラスタ秘密（例えば、クラスタ鍵での暗号化）を使用して保護される。
【００３８】
実施形態のプロセス２０８でのクラスタ鍵を使用したメッセージの暗号化は、例えば、ＡＥＳ−１２８対称鍵暗号化を使用してもよい。しかし、他の暗号鍵アルゴリズム（例えば、ＩＤＥＡ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ）およびＣＡＳＴ−１２８暗号化アルゴリズムなどの他の対称暗号鍵アルゴリズム）を本発明の実施形態に従って使用してもよい。本発明の実施形態に従って利用されるクラスタ鍵は、ノードの認証を提供する際にＰＫＩまたは証明書の使用に依存せず、したがって、ＰＫＩまたは証明書の管理に関わる構成およびメンテナンスを回避する。
【００３９】
前述のように、一旦、クラスタのいずれかのノードにより認証されると、参加したノードに関する信頼が、クラスタ全体のノードで確立されることが理解されるべきである。従って、クラスタに参加しようとしているノードは、本明細書の実施形態に従い、クラスタ内の全てのノードに対して、または複数のノードに対してさえ、認証する必要がない。すなわち、本明細書の実施形態に従って実施されるような相互認証技術は、各ノードが、そのノード自身がクラスタに参加するのを容易にするクラスタ秘密の受信者、および、他のノードがクラスタに参加するのを容易にするクラスタ秘密の供給源、の両方であるように構成される構成を提供する。したがって、第３のノード（例えば、図１Ａのネットワーク接続された装置１１０および１２０に類似しているネットワーク接続された装置）が、図２においてネットワーク接続された装置１１０および１２０を含むように形成されたクラスタに参加しようとする場合、かかる参加しようとしているノードは、既にクラスタの部分である任意の単一のノード（例えば、ネットワーク接続された装置１１０またはネットワーク接続された装置１２０のいずれか）と相互認証およびクラスタ秘密共有プロセスを実行（例えば、図２のプロセス２０３〜２０７を実行）して、信頼を確立し、かつクラスタのあらゆるノード（例えば、ネットワーク接続された装置１１０およびネットワーク接続された装置１２０の両方）と安全に通信する機能を確立し得る。すなわち、クラスタに成功裏に参加したノードはクラスタ秘密（例えば、クラスタ鍵）を有しているので、いずれのノードもクラスタ内の任意の他のノードと通信できる。これは、クラスタ内通信用に使用されるユニキャストおよびマルチキャストメッセージを可能にする。前述から理解できるように、ノードは、クラスタ内の全てのノードに対して認証するのとは対照的に、クラスタ内の単一のノードを認証するのみでマルチキャスト通信機能を提供される。このアプローチは、任意のサイズのクラスタに対して拡張できる。
【００４０】
図３は、クラスタの各ノードがクラスタの任意の他のノードと安全に通信することを可能にする動作を提供する図２のプロセスフローの実施形態に関する詳細を示す。具体的には、図３のラダー図は、本発明の実施形態に従って利用され得るような、相互認証プロトコルおよびセッション鍵生成のための技術に関する詳細を提供する。したがって、図３のプロセス３０１〜３２０は、図２のプロセス２０４〜２０７に従って相互認証を提供するように動作可能なプロセスフローに関する詳細を提供し、プロセス３１５および３１９は、図２のプロセス２０５および２０６に従って別々のセッション秘密計算を提供するように動作可能なプロセスフローに関する詳細を提供する。図３のプロセス２０１〜２０３および２０８は、図２のプロセス２０１〜２０３および２０８に対応し、図３のプロセス３１６、３１７、３２０は、図２のプロセス２０７に対応する。図２のプロセスフローと同様に、図３に示すプロセスフローの機能は、本発明の実施形態の要素が本質的に、必要なタスクを実行するためにプロセッサベースまたはコンピュータシステム（例えば、ネットワーク接続された装置１１０、１２０および／または１３０）上で動作可能なコードセグメントであるソフトウェアにおいて実施され得る。プログラムまたはコードセグメントは、コンピュータ可読媒体（例えば、ネットワーク接続された装置１１０〜１３０のそれぞれ１つの前述のメモリ）に格納できる。
【００４１】
図３に示す実施形態は、相互認証および別個のセッション秘密計算の提供において、セキュアリモートパスワードプロトコルバージョン６ａ（ＳＲＰ−６ａ）の修正された構成を利用する。しかし、関与する両当事者の相互認証とハンドシェイクに関与する２当事者のみに知られる共有秘密とを提供する、他の認証および鍵共有プロトコルを、本発明の実施形態に従って利用してもよい。使用される認証プロトコル、鍵共有プロトコル、および暗号化アルゴリズムは、事前にあらゆるノードに知られていると推定されるが、本明細書の概念に従って提供される実施形態は、（例えば、ハンドシェイクが起こる前に、プロトコルおよびアルゴリズムの共通のセットについて合意する、ノードが交換するメッセージを通して）本明細書の動作を提供する特定のプロトコルおよび／またはアルゴリズムを動的に選択するように動作し得る。
【００４２】
図３に示すプロセスフローの実施形態に従った動作では、相互認証プロトコルのｎおよびｇ値が予め全てのノードに知られている。例えば、実施形態で使用されるｎおよびｇの値が、問題の２当事者によって合意されてもよい。それらは、前もって設定されることができるか、またはホストがそれらをクライアントに供給できる。後者の場合、ホストは、第１のメッセージでパラメータをソルト（ｓａｌｔ）と共に送信するべきである。最大限のセキュリティのために、ｎは安全素数（例えば、ｎ＝２ｑ＋１の形式の数、式中ｑも素数である）であるべきである。また、ｇは、ｎを法とする生成元であるべきであり、これは、０＜ｘ＜ｎである任意のｘに対して、ｇ＾ｘ％ｎ＝＝ｘである値ｘが存在することを意味する。しかし、代替の実施形態は、（例えば、プロセス３０４で）ｎおよびｇ値を返すように動作する。
【００４３】
図３の実施形態に示す相互認証プロトコルのＫ値はセッション鍵として使用され、擬似ランダム関数（ＰＲＦ）（例えば、ＲＦＣ  ２２４６セクション５に定義された、ＴＬＳｖ１プロトコル、その開示は参照により本明細書に組み込まれる）で計算される。しかし、１つの秘密（Ｓ）を別の秘密（Ｋ）に拡張可能ないくつものアルゴリズムが、本発明の実施形態に従ったセッション鍵の計算で利用され得る。
【００４４】
ＳＲＰ−６ａプロトコルはクライアントとサーバーとの間で使用されるために設計されたが、他方、図３に示すプロセスフローの相互認証は、クラスタのノードに対して実行されることが理解されるべきである。クライアント／サーバー環境では、サーバーは通常、ユーザーのパスワードから導出されたベリファイヤ（ｖ）を格納し、そのため、サーバーはユーザーのパスワードを格納しないが、それでも、ユーザーのパスワードを使用してクライアントを検証するように動作し得る。図示した実施形態のクラスタの実施態様では、各ノードはクラスタパスワード（例えば、それは、前述のような様々な手段によって投入され得る）を知っており、従って、ベリファイヤ（ｖ）を、ＳＲＰ−６ａプロトコルでユーザーのパスワードの曖昧化されたバージョンを格納するために使用する必要がない。それ故、図３に示す相互認証プロトコルは、各認証試行（例えば、プロセス３０２および３０３）で、ソルト（ｓ）が生成されてベリファイヤ（ｖ）が計算される（例えば、クラスタに参加しようとしているノードを一意にまたは実質的に一意に識別する、クラスタノード名、アドレス、または他の情報が、計算においてユーザー名として利用され得る）ように修正されている。各認証試行においてベリファイヤ（ｖ）の計算を必要とし、従って、サーバー環境の大きな需要に対して十分には適さない負荷を処理能力に掛けるが、前述の修正は、クライアント／サーバーモデルでのその単一点（サーバー）の使用ではなく、クラスタの任意のノードによる相互認証プロトコルの使用を容易にする。
【００４５】
図２および図３に関連して前述した実施形態によって提供されるような、クラスタの各ノードがクラスタの任意の他のノードと安全に通信することが可能になる動作は、任意のサイズのクラスタに対して拡張可能であるだけでなく、ノード減少（ｎｏｄｅ  ａｔｔｒｉｔｉｏｎ）の管理および／または強化されたセキュリティプロトコルを提供するように容易に適合され得ることが理解されるべきである。例えば、前述のプロセスフローによって実施される技術は、定期的なクラスタ鍵のローテーションを提供するために拡張できる。定期的なクラスタ鍵ローテーションの実施形態に従った動作では、ある期間が経過した後、新しいクラスタ鍵がノードによって生成され、他の全てのノードが新しいクラスタ鍵を取得するために再認証させられる。ハッカーまたは他の認可されていないノードが現在のクラスタ鍵を有している場合、そのハッカーまたは他の認可されていないノードは新しいクラスタ鍵を簡単に復号して取得し得るので、新しいクラスタ鍵は、現在のクラスタ鍵を使用して他のノードに配信されないことに留意されたい。かかる定期的なクラスタ鍵ローテーションは、ハッカーまたは他の認可されていないノードがクラスタ鍵を取得または保持した場合に復号できるメッセージの数をできるだけ減らし、それにより強化されたセキュリティを提供する。
【００４６】
前述の定期的なクラスタ鍵ローテーションの概念は、クラスタを離れるノードに関して利用され得、それにより、ノード減少の管理を提供する。クラスタを離れるノードは、クラスタを離れたノードが依然としてクラスタメッセージを復号できる可能性を残す。したがって、クラスタ鍵再生成の実施形態に従った動作では、ノードがクラスタを離れた後、新しいクラスタ鍵がノードによって生成され、他の全てのノードが、その新しいクラスタ鍵を取得するために再認証させられる。クラスタを離れたノードが、クラスタ鍵再生成の実施態様において相互認証ハンドシェイクを盗聴すること、従って、再生成されたクラスタ鍵を引き出すことを防ぐために、新しいクラスタ秘密（例えば、クラスタパスワード）は、クラスタを離れたノードにそれを提供することなく、残りのノードに投入され得る。
【００４７】
強化されたセキュリティを提供するための技術が、クラスタに参加するのを許可されたノードにさらなる制限を加え得る。例えば、許可されたノードの登録簿が維持され得る。クラスタに参加しようと試みる任意のノードは、クラスタに参加するためには、この登録簿内に存在することと、相互認証ハンドシェイクを完了することの両方が必要であり得る。
【００４８】
特定のネットワーク接続された装置が、ある期間（例えば、１時間）内にある回数（例えば、５回）、認証に失敗すると、本明細書の強化されたセキュリティ技術は、相互認証の再試行が許可されるまで、そのネットワーク接続された装置を、ある期間、相互認証プロセスからロックアウトするように動作し得る。クラスタの各ノードは、クラスタに参加しようとしているノードを相互に認証する機能を有しているので、認証失敗のロックアウトの情報は、好ましくは、（例えば、特定のノードが何回認証を試みているかのクラスタ状態を使用して、クラスタ鍵の使用を通して容易になったマルチキャスト通信を使用して、など）クラスタのノード間で共有される。かかる認証失敗ロックアウト技術は、活発な辞書攻撃を防ぐ。
【００４９】
図２および図３に関連して前述した実施形態によって提供されるような、クラスタの各ノードがクラスタの任意の他のノードと安全に通信することを可能にする動作は、ノード減少の管理および／または強化されたセキュリティプロトコルを提供するように容易に適合されるだけでなく、いくつかの異なる環境および／またはシナリオにおける動作を容易にするように簡単に適合され得ることが理解されるべきである。例えば、ノードがクラスタに参加した後、クラスタ鍵でのメッセージの暗号化は、（例えば、制限された処理能力を有するノードが使用される環境において）性能を改善するために選択的に行われ得る。１つのかかる実施形態では、より良い性能で改ざんを防ぐためのいくつかの方法（例えば、デジタル署名アルゴリズムおよび／または他のセキュリティ技術）が次いで採用され得るが、メッセージが極秘資料を含んでいないと見なされる場合、それは暗号化される必要がない。ネットワークが他の手段（例えば、ＩＰＳｅｃ、または安全に分離されたネットワーク（ｓｅｃｕｒｅ  ｓｅｇｒｅｇａｔｅｄ  ｎｅｔｗｏｒｋ））によって保護されている環境では、クラスタ鍵を使用した暗号化は完全にオフにされ得る。
【００５０】
本発明およびその利点が詳細に記述されてきたが、添付の特許請求の範囲で定義されるように、本発明の精神および範囲から逸脱することなく、本明細書で、様々な変更、置換、および代替が行われ得ることが理解されるべきである。さらに、本願の範囲は、本明細書に記述されるプロセス、機械、製造、組成物、手段、方法およびステップの特定の実施形態に限定されることを意図していない。当業者であれば、本発明に従って利用され得る本明細書に記載の対応する実施形態と実質的に同じ機能を実行するか、または実質的に同じ結果を達成する、現在存在するか、または後に開発される、プロセス、機械、製造、組成物、手段、方法、もしくはステップを、本発明の開示から容易に理解するであろう。したがって、添付の特許請求の範囲は、かかるプロセス、機械、製造、組成物、手段、方法、またはステップをそれらの範囲に含めることを意図する。
【図１Ａ】
2014529238.tif 000004
【図１Ｂ】
2014529238.tif 000005
【図２】
2014529238.tif 000006
【図３】
2014529238.tif 000007
【国際調査報告】
2014529238.tif 000008