IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7556648イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム
<>
  • 特許-イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム 図1
  • 特許-イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム 図2
  • 特許-イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム 図3
  • 特許-イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム 図4
  • 特許-イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム 図5
  • 特許-イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム 図6
  • 特許-イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム 図7
  • 特許-イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】イニシエータとレスポンダ間の通信を安全にするための方法、システム、プログラム
(51)【国際特許分類】
   H04L 9/16 20060101AFI20240918BHJP
   H04L 9/08 20060101ALI20240918BHJP
   H04L 67/01 20220101ALI20240918BHJP
【FI】
H04L9/16
H04L9/08 C
H04L67/01
【請求項の数】 13
(21)【出願番号】P 2022515142
(86)(22)【出願日】2020-09-08
(65)【公表番号】
(43)【公表日】2022-11-16
(86)【国際出願番号】 IB2020058326
(87)【国際公開番号】W WO2021048732
(87)【国際公開日】2021-03-18
【審査請求日】2023-02-24
(31)【優先権主張番号】16/568,174
(32)【優先日】2019-09-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ハソーン、ロジャー
(72)【発明者】
【氏名】ドリーバー、パトリシア
(72)【発明者】
【氏名】コロッナ、クリストファー
(72)【発明者】
【氏名】ジー、ムーヘン
(72)【発明者】
【氏名】スクゼプゼンスキー、リチャード、マーク
(72)【発明者】
【氏名】ウェルシュ、ミケル、ウィリアム
(72)【発明者】
【氏名】フラナガン、ジョン
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2011-199537(JP,A)
【文献】米国特許出願公開第2007/0022476(US,A1)
【文献】特開2006-191537(JP,A)
【文献】特開2016-015697(JP,A)
【文献】特開2006-330973(JP,A)
【文献】特表2018-534852(JP,A)
【文献】米国特許出願公開第2011/0228934(US,A1)
【文献】米国特許出願公開第2011/0010539(US,A1)
【文献】米国特許出願公開第2017/0126645(US,A1)
【文献】三輪 賢一,プロのための[図解]ネットワーク機器入門,第1版,日本,株式会社技術評論社,2012年12月05日,pp.212-213
【文献】浅田 知広,IKEの仕組みを知ろう,NETWORK MAGAZINE,日本,株式会社アスキー,2003年08月01日,第8巻,第8号,pp.46-49
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/16
H04L 9/08
H04L 67/01
(57)【特許請求の範囲】
【請求項1】
ネットワークを介してイニシエータとレスポンダの間で安全に通信するための方法であって、
前記レスポンダによって送信されるデータを暗号化および復号するために使用する第1の鍵を有する前記レスポンダとの第1のセキュリティ・アソシエーションを、前記イニシエータによって維持することと、
前記イニシエータによってセキュリティ・アソシエーション初期化応答受信して、第2のセキュリティ・アソシエーションを、前記第2のセキュリティ・アソシエーションのための第2の鍵を生成するために使用される鍵材料を含めて確立する、鍵再設定動作であって、
前記イニシエータによって認証メッセージを前記レスポンダへ送信することと
前記レスポンダが、前記レスポンダと前記イニシエータの間で認証を確立することと、
前記認証メッセージに続いて認証完了メッセージを受信したことに応答して前記レスポンダとの通信を暗号化および復号するための前記第2の鍵を使用するために、前記第2のセキュリティ・アソシエーションを前記イニシエータによってアクティブにすることとを含む、前記鍵再設定動作と、
前記鍵再設定動作の完了後に入出力(I/O)要求を、前記第2の鍵を使用して送信するために前記イニシエータによってキューに入れることと、
送信に使用するための前記第2のセキュリティ・アソシエーションをアクティブにしたことに応答して、前記イニシエータによって無効化タイマを起動することとを含み、起動後に前記無効化タイマが満了する前に、前記第1の鍵と前記第2の鍵の両方を前記レスポンダが送信に使用することができ、前記方法がさらに、
前記無効化タイマの満了に応答して、前記第1のセキュリティ・アソシエーションを前記イニシエータによって無効にすることを含む、方法。
【請求項2】
前記イニシエータによってセキュリティ・アソシエーション初期化メッセージを前記レスポンダへ送信して、前記レスポンダとの前記第2のセキュリティ・アソシエーションを、前記第2のセキュリティ・アソシエーションのための前記第2の鍵を生成するために使用される鍵材料を含めて確立することをさらに含み、前記セキュリティ・アソシエーション初期化応答が、前記セキュリティ・アソシエーション初期化メッセージを前記レスポンダへ送信した後に、前記レスポンダから受信され、前記方法がさらに、
前記セキュリティ・アソシエーション初期化応答を受信したことに応答して、前記イニシエータによって前記第2のセキュリティ・アソシエーションを前記イニシエータにおいてプログラムすることを含む、請求項に記載の方法。
【請求項3】
前記レスポンダへ送信された前記認証メッセージに応答して、前記レスポンダのアイデンティティを認証する前記レスポンダからの認証応答メッセージを前記イニシエータによって受信することと、
前記認証応答メッセージに応答して、肯定応答を前記イニシエータによって前記レスポンダへ送信すると前記レスポンダが、送信に使用するための前記第2のセキュリティ・アソシエーションをアクティブにし、また、前記第1のセキュリティ・アソシエーションを無効にするために使用される前記レスポンダの無効化タイマをアクティブにすることとをさらに含み、前記イニシエータの前記無効化タイマは、前記レスポンダの前記無効化タイマが起動された後に起動される、請求項1または2のいずれかに記載の方法。
【請求項4】
コンピュータの情報処理により、ネットワークを介してイニシエータとレスポンダの間で安全に通信するための方法であって、前記方法が、
前記レスポンダによって送信されるデータを暗号化および復号するために使用する第1の鍵を有する前記レスポンダとの第1のセキュリティ・アソシエーションを維持することと、
セキュリティ・アソシエーション初期化応答受信して、前記レスポンダとの第2のセキュリティ・アソシエーションを、前記第2のセキュリティ・アソシエーションのための第2の鍵を生成するために使用される鍵材料を含めて確立する、鍵再設定動作であって、
認証メッセージを前記レスポンダへ送信することと
前記レスポンダが、前記レスポンダと前記イニシエータの間で認証を確立することと、
前記認証メッセージに続いて認証完了メッセージを受信したことに応答して前記レスポンダとの通信を暗号化および復号するための前記第2の鍵を使用するために、前記第2のセキュリティ・アソシエーションをアクティブにすることとを含む、前記鍵再設定動作と、
前記鍵再設定動作の完了後に入出力(I/O)要求を、前記第2の鍵を使用して送信するためにキューに入れることと、
送信に使用するための前記第2のセキュリティ・アソシエーションをアクティブにしたことに応答して、無効化タイマを起動することとを含み、起動後に前記無効化タイマが満了する前に、前記第1の鍵と前記第2の鍵の両方を前記レスポンダが送信に使用することができ、前記方法がさらに、
前記無効化タイマの満了に応答して、前記第1のセキュリティ・アソシエーションを無効にすることを含む、方法。
【請求項5】
前記方法が、
セキュリティ・アソシエーション初期化メッセージを前記レスポンダへ送信して、前記レスポンダとの前記第2のセキュリティ・アソシエーションを、前記第2のセキュリティ・アソシエーションのための第2の鍵を生成するために使用される鍵材料を含めて確立することをさらに含み、前記セキュリティ・アソシエーション初期化応答が、前記セキュリティ・アソシエーション初期化メッセージを前記レスポンダへ送信した後に、前記レスポンダから受信され、前記方法がさらに、
前記セキュリティ・アソシエーション初期化応答を受信したことに応答して、前記第2のセキュリティ・アソシエーションを前記イニシエータにおいてプログラムすることを含む、請求項に記載の方法。
【請求項6】
前記方法が、
前記レスポンダへ送信された前記認証メッセージに応答して、前記レスポンダのアイデンティティを認証する前記レスポンダからの認証応答メッセージを受信することと、
前記認証応答メッセージに応答して、肯定応答を前記レスポンダへ送信すると前記レスポンダが、送信に使用するための前記第2のセキュリティ・アソシエーションをアクティブにし、また、前記第1のセキュリティ・アソシエーションを無効にするために使用される前記レスポンダの無効化タイマをアクティブにすることとをさらに含み、前記イニシエータの前記無効化タイマは、前記レスポンダの前記無効化タイマが起動された後に起動される、請求項またはのどちらかに記載の方法。
【請求項7】
前記認証メッセージを前記送信すると前記レスポンダが、前記第2のセキュリティ・アソシエーションを前記レスポンダにおいてプログラムし、前記レスポンダは、前記第2のセキュリティ・アソシエーションをプログラムした後に、前記認証応答メッセージを送信する、請求項に記載の方法。
【請求項8】
ネットワークを介してイニシエータとレスポンダの間で安全に通信するためのシステムであって、
プロセッサと、
前記イニシエータに実装されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体とを備え、前記プログラム・コードは、実行されると、
前記レスポンダによって送信されるデータを暗号化および復号するために使用する第1の鍵を有する前記レスポンダとの第1のセキュリティ・アソシエーションを維持することと、
セキュリティ・アソシエーション初期化応答受信して、前記レスポンダとの第2のセキュリティ・アソシエーションを、前記第2のセキュリティ・アソシエーションのための第2の鍵を生成するために使用される鍵材料を含めて確立する、鍵再設定動作であって、
認証メッセージを前記レスポンダへ送信することと
前記レスポンダが、前記レスポンダと前記イニシエータの間で認証を確立することと、
前記認証メッセージに続いて認証完了メッセージを受信したことに応答して前記レスポンダとの通信を暗号化および復号するための前記第2の鍵を使用するために、前記第2のセキュリティ・アソシエーションをアクティブにすることとを含む、前記鍵再設定動作と、
前記鍵再設定動作の完了後に入出力(I/O)要求を、前記第2の鍵を使用して送信するためにキューに入れることと、
送信に使用するための前記第2のセキュリティ・アソシエーションをアクティブにしたことに応答して、無効化タイマを起動することとを含む動作を行い、起動後に前記無効化タイマが満了する前に、前記第1の鍵と前記第2の鍵の両方を前記レスポンダが送信に使用することができ、前記プログラム・コードは、さらに、
前記無効化タイマの満了に応答して、前記第1のセキュリティ・アソシエーションを無効にすることを含む動作を行う、システム。
【請求項9】
前記動作が、
セキュリティ・アソシエーション初期化メッセージを前記レスポンダへ送信して、前記レスポンダとの前記第2のセキュリティ・アソシエーションを、前記第2のセキュリティ・アソシエーションのための前記第2の鍵を生成するために使用される鍵材料を含めて確立することをさらに含み、前記セキュリティ・アソシエーション初期化応答が、前記セキュリティ・アソシエーション初期化メッセージを前記レスポンダへ送信した後に、前記レスポンダから受信され、前記動作がさらに、
前記セキュリティ・アソシエーション初期化応答を受信したことに応答して、前記第2のセキュリティ・アソシエーションを前記イニシエータにおいてプログラムすることを含む、請求項に記載のシステム。
【請求項10】
前記動作が、
前記レスポンダへ送信された前記認証メッセージに応答して、前記レスポンダのアイデンティティを認証する前記レスポンダからの認証応答メッセージを受信することと、
前記認証応答メッセージに応答して、肯定応答を前記レスポンダへ送信すると前記レスポンダが、送信に使用するための前記第2のセキュリティ・アソシエーションをアクティブにし、また、前記第1のセキュリティ・アソシエーションを無効にするために使用される前記レスポンダの無効化タイマをアクティブにすることとをさらに含み、前記イニシエータの前記無効化タイマは、前記レスポンダの前記無効化タイマが起動された後に起動される、請求項またはのどちらかに記載のシステム。
【請求項11】
前記認証メッセージを前記送信すると前記レスポンダが、前記第2のセキュリティ・アソシエーションを前記レスポンダにおいてプログラムし、前記レスポンダは、前記第2のセキュリティ・アソシエーションをプログラムした後に、前記認証応答メッセージを送信する、請求項10に記載のシステム。
【請求項12】
請求項1ないしのいずれかに記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項13】
請求項12に記載の前記コンピュータ・プログラムを、コンピュータ可読媒体に記憶した、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、イニシエータとレスポンダの間の通信を安全にするためのセキュリティ・アソシエーションおよび認証を確立するためのコンピュータ・プログラム製品、システム、および方法に関する。
【背景技術】
【0002】
ファイバ・チャネル環境では、ファブリック内のノード間の安全で暗号化された通信を実現するために、セキュリティ・アソシエーション(SA)管理トランザクションが、セキュリティ確立プロトコルを使用してSA_InitiatorとSA_Responderとの間で行われる。セキュリティ・アソシエーション管理プロトコルは、ファイバ・チャネル認証プロトコルの認証レスポンダによって開始することができる。イニシエータおよびレスポンダは、ファイバ・チャネル・ネットワーク内のデバイスのホスト・バス・アダプタにポートを備えることができる。別々のセキュリティ・アソシエーションが、1つのポートでのデータ送信およびデータ受信のために確立される。SA確立トランザクションが完了すると、セキュリティ・アソシエーションと、確立されたセキュリティ・アソシエーションの下でイニシエータとターゲットの間のデータ通信を暗号化/復号するために使用される関連鍵材料とのセットが得られる。
【0003】
送受信用のセキュリティ・アソシエーションにおいてデータを安全にするために使用される暗号鍵は、セキュリティ確立プロトコルおよび再認証を繰り返すことを要する鍵再設定動作の一部として周期的にリフレッシュされ得る。セキュリティ・アソシエーション・プロトコルの一例としては、T11 Fibre Channel Security Protocol Standard FC-SP-2のSecurity Association Managementプロトコルがあり、これはInternet Key Exchange version 2(IKEv2)などのインターネットプロトコル規格で規定されているプロトコルと類似している。このプロトコルは、親アソシエーションを確立するための一対のメッセージSA_InitおよびSA_Init Responseと、それに続く、エンタイトルの認証を行い、エンタイトル間で転送されるデータを安全にするセキュリティ・アソシエーションを確立するための一対のメッセージSA_AuthおよびSA_Auth Responseとから構成されている。
【0004】
再認証を使用して鍵再設定動作を行う場合、複数のセキュリティ・アソシエーションが、古いセキュリティ・アソシエーションが削除されるまでイニシエータおよびターゲットにおいて維持される。いくつかの実施態様では、この期間中のトラフィック損失を回避するために、新しいセキュリティ・アソシエーションを使用してデータを送信することが、レスポンダからの削除要求を受信した後のある時点まで遅延される。新しいセキュリティ・アソシエーションを確立するためのメッセージングにエラーが発生すれば、矛盾した状態およびトラフィック損失が生じる可能性がある。
【0005】
したがって、当技術分野では、前述の問題に対処する必要がある。
【0006】
ノード間でデータを伝達するためのセキュリティ・アソシエーションを確立する技術の改善が、当技術分野で必要とされている。
【発明の概要】
【0007】
第1の態様から見ると、本発明はネットワークを介してイニシエータとレスポンダの間で安全に通信するための方法を提供し、この方法は、レスポンダによって送信されるデータを暗号化および復号するために使用する第1の鍵を有するレスポンダとの第1のセキュリティ・アソシエーションをイニシエータよって維持することと、イニシエータによって鍵再設定動作を行って、レスポンダとの第2のセキュリティ・アソシエーションを第2の鍵を使用して確立することと、鍵再設定動作の完了後に入出力(I/O)を、第2の鍵を使用して送信するためにイニシエータによってキューに入れることと、送信に使用するための第2のセキュリティ・アソシエーションをアクティブにしたことに応答して、イニシエータによって無効化タイマを起動することとを含み、起動後に無効化タイマが満了する前に、第1の鍵と第2の鍵の両方をレスポンダが送信に使用することができ、この方法ではさらに、無効化タイマの満了に応答して、第1のセキュリティ・アソシエーションをイニシエータによって無効化する。
【0008】
別の態様から見ると、本発明は、ネットワークを介してイニシエータとレスポンダの間で安全に通信するための方法を提供し、この方法は、レスポンダによって送信されるデータを暗号化および復号するために使用する第1の鍵を有するレスポンダとの第1のセキュリティ・アソシエーションを維持することと、鍵再設定動作を行って、レスポンダとの第2のセキュリティ・アソシエーションを第2の鍵を使用して確立することと、鍵再設定動作の完了後に入出力(I/O)を、第2の鍵を使用して送信するためにキューに入れることと、送信に使用するための第2のセキュリティ・アソシエーションをアクティブにしたことに応答して、無効化タイマを起動することとを含み、起動後に無効化タイマが満了する前に、第1の鍵と第2の鍵の両方をレスポンダが送信に使用することができ、この方法ではさらに、無効化タイマの満了に応答して、第1のセキュリティ・アソシエーションを無効化する。
【0009】
別の態様から見ると、本発明は、ネットワークを介してイニシエータとレスポンダの間で安全に通信するためのシステムを提供し、このシステムは、プロセッサと、イニシエータに実装されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体とを備え、このプログラム・コードは、実行されると、セキュリティ・アソシエーション初期化メッセージをレスポンダへ送信して、レスポンダとのセキュリティ・アソシエーションを、セキュリティ・アソシエーション用の鍵を生成するために使用される鍵材料を含めて確立することと、セキュリティ・アソシエーションを受け付けるためのセキュリティ・アソシエーション初期化応答を受信したことに応答して、認証メッセージをレスポンダへ送信して、レスポンダとイニシエータの間で認証を確立するようにレスポンダをプログラムすることと、認証メッセージに対する認証メッセージ応答を受信したことに応答して、イニシエータにセキュリティ・アソシエーション、およびセキュリティ・アソシエーションのために生成された鍵をプログラムすることと、認証メッセージ応答を受信した後に、レスポンダから認証完了メッセージを受信することと、認証完了メッセージを受信したことに応答して、鍵を使用してレスポンダとイニシエータの間の通信を安全にするために、セキュリティ・アソシエーションをアクティブにすることとを含む動作を行う。
【0010】
別の態様から見ると、本発明は、ネットワークを介してイニシエータとレスポンダの間で安全に通信するためのシステムを提供し、このシステムは、プロセッサと、イニシエータに実装されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体とを備え、このプログラム・コードは、実行されると、レスポンダによって送信されるデータを暗号化および復号するために使用する第1の鍵を有するレスポンダとの第1のセキュリティ・アソシエーションを維持することと、鍵再設定動作を行って、レスポンダとの第2のセキュリティ・アソシエーションを第2の鍵を使用して確立することと、鍵再設定動作の完了後に入出力(I/O)を、第2の鍵を使用して送信するためにキューに入れることと、送信に使用するための第2のセキュリティ・アソシエーションをアクティブにしたことに応答して、無効化タイマを起動することとを含む動作を行い、起動後に無効化タイマが満了する前に、第1の鍵と第2の鍵の両方をレスポンダが送信に使用することができ、このシステムではさらに、無効化タイマの満了に応答して、第1のセキュリティ・アソシエーションを無効化する。
【0011】
別の態様から見ると、本発明は、ネットワークを介してイニシエータとレスポンダの間で安全に通信するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、イニシエータに実装されたコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体を備え、このプログラム・コードは、実行されると、セキュリティ・アソシエーション初期化メッセージをレスポンダへ送信して、レスポンダとのセキュリティ・アソシエーションを、セキュリティ・アソシエーション用の鍵を生成するために使用される鍵材料を含めて確立することと、セキュリティ・アソシエーションを受け付けるためのセキュリティ・アソシエーション初期化応答を受信したことに応答して、認証メッセージをレスポンダへ送信して、レスポンダとイニシエータの間で認証を確立するようにレスポンダをプログラムすることと、認証メッセージに対する認証メッセージ応答を受信したことに応答して、イニシエータにセキュリティ・アソシエーション、およびセキュリティ・アソシエーションのために生成された鍵をプログラムすることと、認証メッセージ応答を受信した後に、レスポンダから認証完了メッセージを受信することと、認証完了メッセージを受信したことに応答して、鍵を使用してレスポンダとイニシエータの間の通信を安全にするために、セキュリティ・アソシエーションをアクティブにすることとを含む動作を行う。
【0012】
別の態様から見ると、本発明は、ネットワークを介してイニシエータとレスポンダの間で安全に通信するためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能である、かつ、本発明のステップを実施するための方法を実施する処理回路によって実行するための命令を記憶する、コンピュータ可読記憶媒体を含む。
【0013】
別の態様から見ると、本発明は、コンピュータ可読媒体に記憶され、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、プログラムがコンピュータ上で実行されたときに本発明のステップを実施するための、ソフトウェア・コード部分を含む。
【0014】
ネットワークを介してイニシエータとレスポンダの間で安全に通信するためのコンピュータ・プログラム製品、システムおよび方法の実施形態が提供される。イニシエータは、セキュリティ・アソシエーション初期化メッセージをレスポンダへ送信して、レスポンダとのセキュリティ・アソシエーションを、セキュリティ・アソシエーション用の鍵を生成するために使用される鍵材料を含めて確立する。セキュリティ・アソシエーションを受け付けるためのセキュリティ・アソシエーション初期化応答を受信したことに応答して、イニシエータは、認証メッセージをレスポンダへ送信して、レスポンダとイニシエータの間で認証を確立するようにレスポンダをプログラムする。認証メッセージに対する認証メッセージ応答を受信したことに応答して、イニシエータには、セキュリティ・アソシエーション、およびセキュリティ・アソシエーションのために生成された鍵がプログラムされる。認証完了メッセージが、認証メッセージ応答を受信した後にレスポンダから受信される。イニシエータは、認証完了メッセージを受信したことに応答して、鍵を使用してレスポンダとイニシエータの間の通信を安全にするためにセキュリティ・アソシエーションをアクティブにする。
【0015】
上記の実施形態では、認証メッセージに対する認証メッセージ応答に続いても、レスポンダが認証を成功裏に完了し、新しいセキュリティ・アソシエーションを直ちに使用するためにアクティブにしたことをイニシエータに確認するために、イニシエータがレスポンダからの認証完了メッセージを待つようにすることによって、ノードのセキュリティ・アソシエーションおよび認証を確立するときのエラーによる矛盾した状態を回避する。これにより、イニシエータは、レスポンダが認証を成功裏に完了し、新しいセキュリティ・アソシエーションメッセージをアクティブにしたことを認証完了メッセージによってイニシエータが保証されるように、イニシエータにセキュリティ・アソシエーションおよび鍵をプログラムした後に認証完了メッセージを受信するのと同時に、送信のための新しいセキュリティ・アソシエーションを使い始めることができる。
【0016】
ネットワークを介してイニシエータとレスポンダの間で安全に通信し、鍵再設定動作を行うためのコンピュータ・プログラム製品、システムおよび方法の実施形態がさらに提供される。イニシエータは、レスポンダによって送信されるデータを暗号化および復号するために使用する第1の鍵を有するレスポンダとの第1のセキュリティ・アソシエーションを維持する。イニシエータは鍵再設定動作を行って、レスポンダとの第2のセキュリティ・アソシエーションを第2の鍵を使用して確立する。入出力(I/O)が、鍵再設定動作の完了後に、第2の鍵を使用して送信するためにキューに入れられる。送信に使用するための第2のセキュリティ・アソシエーションをアクティブにしたことに応答して、イニシエータは無効化タイマを起動する。起動後に無効化タイマが満了する前に、第1の鍵と第2の鍵の両方をレスポンダが送信に使用することができる。イニシエータは、無効化タイマの満了に応答して、第1のセキュリティ・アソシエーションを無効化する。
【0017】
上記の実施形態では、イニシエータは、イニシエータにおいて使用するための第2のセキュリティ・アソシエーションを生成するために、鍵再設定動作を開始することができる。第2のセキュリティ・アソシエーションをアクティブにした後、イニシエータは、第1のセキュリティ・アソシエーションを無効にする前に待つために無効化タイマを起動して、イニシエータからの第1のセキュリティ・アソシエーションを使用して保護されたI/Oをフラッシュするための時間を提供し、それにより第1と第2の両方の鍵を無効化タイマの間中に使用することができる。したがって、無効化タイマが満了した後にイニシエータが第1のセキュリティ・アソシエーションを無効にすると、イニシエータは、第1のセキュリティ・アソシエーションがシステムにおいて送信を何も保留しなくてもよいことが保証される。
【0018】
諸実施形態の主題は、認証完了メッセージに応答してレスポンダにアクセプト・メッセージを送信する任意選択の実施形態を任意選択で含み得る。セキュリティ・アソシエーションおよびセキュリティ・アソシエーションのために生成された鍵は、アクセプト・メッセージを送信したことに応答して、通信に使用するためにアクティブにされる。認証が、アクセプト・メッセージを送信したことに応答して、イニシエータとレスポンダの間に確立される。
【0019】
上記の任意選択の実施形態では、セキュリティ・アソシエーションと認証は、認証完了メッセージに対するアクセプト・メッセージをイニシエータが送信して、イニシエータとレスポンダの両方がセキュリティ・アソシエーションを使用するためにアクティブにしたこと、ならびにセキュリティ・アソシエーションが、さらなる送信のために今では使用できることをレスポンダに信号で伝えることによって、連携がとられる。
【0020】
上記実施形態の主題は、アクセプト・メッセージが第2のアクセプト・メッセージを含むという任意選択の実施形態を任意選択で含み得る。イニシエータが認証メッセージ応答に応答して第1のアクセプト・メッセージをレスポンダへ送信すると、レスポンダは、セキュリティ・アソシエーション用の鍵を使用してイニシエータとレスポンダの間の通信を安全にするために、セキュリティ・アソシエーションをアクティブにする。認証完了メッセージは、第1のアクセプト・メッセージの送信後に受信される。上記の任意の実施形態では、認証が完了した後、イニシエータがレスポンダに第1のアクセプト・メッセージを信号として送ると、レスポンダはセキュリティ・アソシエーションをアクティブにすることができ、次に、レスポンダは、第1のアクセプト・メッセージに続く認証完了メッセージによって、セキュリティ・アソシエーションをアクティブにしたことを信号で知らせる。これにより、イニシエータとレスポンダの間で、両者がいつセキュリティ・アソシエーションをアクティブにしたかに応じて連携が可能になる。
【0021】
上記の実施形態の主題は、イニシエータがホスト・システムを備え、レスポンダが、ホスト・システムに記憶リソースへのアクセスを与える記憶コントローラを備えるという、任意選択の実施形態を任意選択で含み得る。セキュリティ・アソシエーションおよび認証は、ホスト・システムのイニシエータ・ポートおよび記憶コントローラのレスポンダ・ポートに対して確立される。
【0022】
上記の任意選択の実施形態では、ホストは、記憶コントローラのポートとのセキュリティ・アソシエーションを確立するためのイニシエータを実施することができる。ホストが、記憶コントローラとのセキュリティ・アソシエーションを確立する際にイニシエータとして機能すると、イニシエータとして機能するノードをノード間でネゴシエートする必要がなくなる。
【0023】
上記の実施形態の主題は、第2のセキュリティ・アソシエーションを受け付けるためのセキュリティ・アソシエーション初期化応答を受信したことに応答して、イニシエータが認証メッセージをレスポンダへ送信するとレスポンダがレスポンダとイニシエータの間で認証を確立するという、鍵再設定動作のための任意選択の実施形態を任意選択で含み得る。イニシエータは、認証メッセージに続いて認証完了メッセージを受信したことに応答してレスポンダとの通信を暗号化および復号するための第2の鍵を使用するために、第2のセキュリティ・アソシエーションをアクティブにする。イニシエータは、認証完了メッセージに応答して無効化タイマを起動する。
【0024】
上記の任意選択の実施形態では、イニシエータは、認証が完了し、第2の鍵が使用のためにアクティブになっていることを信号で知らせるためにレスポンダが認証完了メッセージを送信する時点で、無効化タイマをいつ起動して第1のセキュリティ・アソシエーションを無効にするかを調整する。
【0025】
次に、単なる例示として、以下の図に示された好ましい実施形態を参照して本発明について説明する。
【図面の簡単な説明】
【0026】
図1】ネットワークコンピューティング環境の一実施形態を示す図である。
図2】ホスト・バス・アダプタの一実施形態を示す図である。
図3】セキュリティ・アソシエーションの一実施形態を示す図である。
図4】イニシエータ・ノードとレスポンダ・ノードの間でセキュリティ・アソシエーションおよび認証を確立するための動作の一実施形態を示す図である。
図5図4の動作のメッセージ・フローを示す図である。
図6】イニシエータ・ノードとレスポンダ・ノードの間で新しいセキュリティ・アソシエーションおよび認証を生成して古いセキュリティ・アソシエーションを削除するための、鍵再設定動作を行う動作の一実施形態を示す図である。
図7図6の動作のメッセージ・フローを示す図である。
図8図1の構成要素を実装することができるコンピューティング環境を示す図である。
【発明を実施するための形態】
【0027】
記載された実施形態では、ネットワーク内のイニシエータとレスポンダとの間でセキュリティ・アソシエーションを確立するためのコンピュータ技術の改善が実現される。記載された実施形態では、レスポンダ・ノードに最終認証完了メッセージをイニシエータへ送信させることによって、ノードのセキュリティ・アソシエーションおよび認証を確立するときのエラーによる矛盾した状態が回避される。レスポンダは、レスポンダが認証を成功裏に完了し、新しいセキュリティ・アソシエーションをすぐに使用するために起動したことをイニシエータに確認するために、認証完了メッセージを送信する。こうすることにより、レスポンダは、古いセキュリティ・アソシエーションを削除するために待つのではなく、セキュリティ・アソシエーション管理トランザクションが完了すると、送信のための新しいセキュリティ・アソシエーションを使い始めることができる。記載された実施形態では、古いセキュリティ・アソシエーションは、データを受信するために、データ用の鍵によってコード化されたメッセージに対して新しいセキュリティ・アソシエーションが確立された後の一定期間、古いセキュリティ・アソシエーション用の鍵によってコード化されたメッセージに対して新しいセキュリティ・アソシエーションが確立された後の一定期間、維持される。この遅延は、古いセキュリティによってコード化されたすべてのメッセージが、古いセキュリティ・アソシエーションを削除する前にシステムからフラッシュされるのに十分な長さである。これにより、古いセキュリティ・アソシエーションによって暗号化された(安全にされた)メッセージは、古いセキュリティ・アソシエーションが除去されると処理(暗号解除)できなくなるので、損失に関するいかなる潜在的な問題もなくなる。
【0028】
図1は、複数のホスト102、102...102がファブリック(ネットワーク)106を介して入出力(I/O)要求を記憶コントローラ104に提出して、記憶装置110内のボリューム108(たとえば、ロジカル・ユニット番号、ロジカル・デバイス、ロジカル・サブシステムなど)のデータにアクセスすることができるネットワークコンピューティング環境100の一実施形態を示す。記憶コントローラ104は、1つまたは複数のプロセッサ112と、ホスト102、102...102と記憶装置の間で転送されるトラックの転送を管理するためのI/Oマネージャ114とを含む。トラックは、トラック、ロジカル・ブロック・アドレス(LBA)、記憶セル、セルのグループ(たとえば、セルの列、行、アレイ)、セクタ、セグメントなどの、記憶装置110内に構成された任意のデータユニットを含むことができ、これらは、ボリューム、論理デバイスなどの、トラックのより大きなグループの一部であってもよい。
【0029】
ホスト102に関して図示されているように、ホストのそれぞれには、スイッチのファブリック106に接続するための複数のポート210H1...210Hnを有する、1つまたは複数のホスト・バス・アダプタ(HBA)200がある。記憶コントローラ140は、スイッチのファブリック106に接続するための複数のポート210SC1...210SCnを有する、1つまたは複数のホスト・バス・アダプタ(HBA)200SCを含む。あるいは、ホスト・ポート210Hiと記憶コントローラ・ポート210SCiは、ケーブルを介して直接接続してもよい。
【0030】
一実施形態では、ファブリック106は、ファイバ・チャネル・トポロジによって実現された記憶領域ネットワーク(SAN)を含み得る。210Hi、210SCiは、ファブリック106のファイバ・チャネル・スイッチに接続するファイバ・チャネル・ノードを含み得る。代替実施形態では、ファブリック106は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネットなどの他のタイプのネットワークを含み得る。あるいは、ホスト102、102...102は、周辺構成要素相互接続(PCI)バス・インターフェースおよび当技術分野で知られているその他のインターフェースなどの、バス・インターフェースを介して記憶コントローラ104に接続することができる。
【0031】
記載された実施形態では、イニシエータ・ポートとレスポンダ・ポートの間のメッセージングがファイバ・チャネル・プロトコルに関して記載されている。代替実施形態では、新しいセキュリティ・アソシエーションおよび認証の確立を開始するイニシエータ・ノードと、一対のポートに対して新しいセキュリティ・アソシエーションおよび認証を確立せよという要求に応答するレスポンダ・ノードとの間でメッセージを送信するために、代替のネットワーク・プロトコルが使用されてもよい。
【0032】
本明細書で使用される用語のイニシエータとは、レスポンダとともにセキュリティ・アソシエーションおよび認証の確立を開始することに関与する任意のデバイスを指し、このレスポンダとは、イニシエータとレスポンダの間で安全な通信を行うためにイニシエータによって開始されたセキュリティ・アソシエーションおよび認証の確立に応答することに関与する任意のデバイスを指す。イニシエータおよびレスポンダとして機能する要素は、イニシエータおよびレスポンダと呼ばれることがあり、また、イニシエータ・ポートおよびレスポンダ・ポート、イニシエータ・ノードおよびレスポンダ・ノード、イニシエータHBAおよびレスポンダHBA、イニシエータのソース・ノードおよびレスポンダのターゲット・ノード、イニシエータのホスト・ポートおよびレスポンダの記憶コントローラ・ポートなどと呼ばれることもある。
【0033】
ファブリック・コントローラ202およびセキュリティ・アソシエーションマネージャ206は、メモリにロードされて1つまたは複数のプロセッサによって実行されるプログラム・コードを含み得る。あるいは、機能の一部またはすべてが、特定用途向け集積回路(ASIC)などの、記憶コントローラ104内のハードウェアデバイスにマイクロコードまたはファームウェアとして実装され得る。
【0034】
記憶装置110には、ソリッド・ステート電子部品で構成されたソリッド・ステート記憶デバイス(SSD)、NAND記憶セル、EEPROM(電気消去可能プログラマブル読み出し専用メモリ)、フラッシュ・メモリ、フラッシュ・ディスク、ランダム・アクセス・メモリ(RAM)ドライブ、ストレージクラス・メモリ(SCM)、相変化メモリ(PCM)、抵抗ランダム・アクセス・メモリ(RRAM)、スピン注入メモリ(STMRAM)、導電性ブリッジRAM(CBRAM)、磁気ハードディスク・ドライブ、光ディスク、テープなどの、当技術分野で知られている1つまたは複数の記憶デバイスが含まれ得る。記憶デバイスはさらに、単純ディスク束(JBOD)、直接アクセス記憶デバイス(DASD)、Redundant Array of Independent Disk(RAID)アレイ、仮想化デバイスなどの、デバイスのアレイの中に配置されてもよい。さらに、記憶デバイスは、異なるベンダまたは同じベンダの異種記憶デバイスを含み得る。
【0035】
図2は、ホストHBA 200および記憶コントローラHBA 200SCなどの、ホスト・バス・アダプタ(HBA)200の一実施形態を示す。HBA 200は、接続を初期化および認証しI/O動作を管理するための、ファイバ・チャネル・プロトコルまたは当技術分野で知られている他のネットワーク・プロトコルなどの、ファブリック・プロトコルを実装するファブリック・コントローラ202と、他のデバイス上の他のHBAポートに対して送信または受信せよというI/O要求をキューに入れるI/Oキュー204と、他のファブリック・ポートからのデータを暗号化および復号するための鍵を提供する、初期化されたセキュリティ・アソシエーションを有するセキュリティ・アソシエーション・インデックス300と、セキュリティ・アソシエーション300をファブリック106内の別のノード・ポートとネゴシエートし確立するためのセキュリティ・アソシエーションマネージャ206とを含み、1つのノードの1つのポートがイニシエータとして機能して、レスポンダとして機能する別のノード上のポートと通信し、さらにHBA 200は、新しいセキュリティ・アソシエーションと、暗号化/復号に使用する新しい鍵とを確立するための鍵再設定動作をした後に以前のセキュリティ・アソシエーションをいつ無効にするかを決定するために使用される、無効化タイマ208を含む。HBA 200は、ファブリック106上で通信するためのイニシエータ・ポートまたはレスポンダ・ポートとして機能することができる、1つまたは複数のポート210....210を含む。
【0036】
セキュリティ・アソシエーション・マネージャ206はまた、イニシエータ・ポートとレスポンダ・ポートの間のセキュリティ・アソシエーション対のためにセキュリティ・アソシエーションを確立することの一部として、イニシエータおよびレスポンダのアイデンティティを互いに認証するための認証プロトコルを実装することもできる。いくつかの実施形態では、セキュリティ・アソシエーション交換が完了した後に、イニシエータ・ポートおよびレスポンダ・ポートを認証するために認証メッセージを交換し、アイデンティティを交換することができる。イニシエータ・ポートとレスポンダ・ポートの間でセキュリティ・アソシエーションおよび認証を確立することについて説明する目的で、ホストHBA 200のイニシエータ・ポート118と、記憶コントローラHBA 200SCのレスポンダ・ポート122とが参照される。別の実施形態では、イニシエータ・ポートおよびレスポンダ・ポートは、ファブリック106を介して通信する他のタイプのデバイスに実装されてもよい。
【0037】
図3は、セキュリティ・アソシエーション・インデックス300としてのセキュリティ・アソシエーション300のインスタンスの一実施形態を示し、セキュリティ・アソシエーション(SA)番号302と、別のノードとのメッセージの暗号化および復号に使用される1つまたは複数の鍵304と、セキュリティ・アソシエーションに関与するローカル・ポート308がイニシエータであるかレスポンダであるかを示すロール306と、ローカル・ポート308によって安全に伝送されるセキュリティ・アソシエーション302に関与する別のデバイスのリモート・ポート310と、メッセージの暗号化/復号に使用される変換タイプ、変換属性、ナンス、および鍵のシードおよび生成に使用される鍵材料などの、セキュリティ・アソシエーション属性312と、セキュリティ・アソシエーション300がメッセージを暗号化および復号するのにアクティブに使用されているかどうかを示すアクティブ・フラグ314とを含む。メッセージは、メッセージを暗号化および復号するのに使用されるセキュリティ・アソシエーションのヘッダにセキュリティ・アソシエーション番号302を示す。
【0038】
図4は、2つのHBA200に実装されたセキュリティ・アソシエーション・マネージャ206によって行われる動作の一実施形態を示し、一方は、イニシエータHBA200のイニシエータ・ポート210からセキュリティ・アソシエーション管理トランザクションを開始する、イニシエータHBA200として機能し、もう一方は、レスポンダHBA 200のレスポンダ・ポート210におけるセキュリティ・アソシエーション管理トランザクションに応答する、レスポンダHBA 200として機能する。1つの実施形態では、ホストHBA 200がイニシエータとして機能し、記憶コントローラHBA 200SCがレスポンダとして機能する。別の実施形態で、デバイスを組み合わせた他のものには、別々のポートに対してイニシエータまたはレスポンダとして動作するHBAがあり得る。セキュリティ・アソシエーション300を確立する動作を開始するために、イニシエータHBA 200は、セキュリティ・アソシエーション初期化メッセージ(SA_Init)をイニシエータ・ポート210からレスポンダ・ポート210へ送信して(ブロック400)、暗号鍵を作成するために使用される鍵材料を含めてレスポンダ・ポート210とのセキュリティ・アソシエーションを確立する。セキュリティ・アソシエーション初期化メッセージを受信すると(ブロック402)、レスポンダHBA 200は、セキュリティ・アソシエーション初期化メッセージが処理のために受け付けられたことをイニシエータ・ポート210へ送信する(ブロック404)。ファイバ・チャネル・プロトコルの実施態様では、受信メッセージの処理を示すアクセプト・メッセージは、リンク・サービスアクセプト・メッセージ(LS_ACC)の形式をとることができる。アクセプトが送信された後、レスポンダHBA 200は、初期化応答メッセージ(SA_Init Resp)をイニシエータ・ポート210へ送信して(ブロック406)、暗号化/復号に使用するための選択された変換方法を含めて、セキュリティ・アソシエーションを受け付ける。セキュリティ・アソシエーション初期化メッセージは、セキュリティ・アソシエーション300が確立されるようにレスポンダHBA 200が使用することを選択できる、複数の異なる暗号化変換方法を含み得る。
【0039】
送信された初期化応答メッセージ(SA_Init Resp)を受信すると、イニシエータHBA 200は、初期化応答メッセージが処理のために受け付けられているというアクセプト(LS_ACC)をレスポンダ・ポート210へ送信し(ブロック408)、次いで、認証メッセージ(SA_Auth)をレスポンダ・ポート210へ送信して(ブロック410)、レスポンダとイニシエータの間で認証をイニシエータ識別情報を含めて確立するようにレスポンダ・ポート210をプログラムする。イニシエータ・アイデンティティ情報は、ホスト102などの、イニシエータ・ポート210を有するエンティティの証明書を含み得る。セキュリティ・アソシエーション認証メッセージ(SA_Auth)を受信すると、レスポンダHBA 210は、認証メッセージが処理のために受け付けられたというアクセプト・メッセージ(LS_ACC)をイニシエータ・ポート210へ送信し(ブロック412)、次に、イニシエータ・ポート210からのメッセージに対する復号および暗号化を行うために必要な鍵304を含めて、セキュリティ・アソシエーション300を生成して(ブロック414)、セキュリティ・アソシエーション300のために生成された鍵およびその他の情報を示すレスポンダ・セキュリティ・アソシエーション・インデックス300にプログラムする。レスポンダ・ポート210に対するセキュリティ・アソシエーション300をレスポンダHBA 200にプログラムした後、レスポンダHBA 200は、認証応答メッセージ(SA_Auth Resp)をイニシエータ・ポート210へ送信して(ブロック416)、記憶コントローラ104などのレスポンダHBA 200を含むエンティティのアイデンティティなどのレスポンダ・アイデンティティ情報を含めて、認証を受け付ける。
【0040】
セキュリティ・アソシエーション認証応答メッセージを受信すると、イニシエータHBA 200は、セキュリティ・アソシエーション300を生成して(ブロック418)、セキュリティ・アソシエーション300のために生成された鍵304およびその他の情報を示すイニシエータセキュリティ・アソシエーションインデックス300にプログラムする。セキュリティ・アソシエーション300をイニシエータインデックス300にプログラムした後、イニシエータHBA 200は、認証メッセージが処理のために受け付けられているというアクセプト(LS_ACC)をレスポンダ・ポート210へ送信する(ブロック420)。アクセプトを受信すると、レスポンダHBA 200は、セキュリティ・アソシエーション300に対して生成された鍵304を使用してイニシエータ・ポート210への送信を開始するために、アクティブ・フラグ314を設定することなどによって作成されたセキュリティ・アソシエーション300をアクティブにする(ブロック422)。セキュリティ・アソシエーションをアクティブにした後、レスポンダHBA 200は、認証完了メッセージ(AUTH Done)をイニシエータ・ポート210へ送信して(ブロック424)、セキュリティ・アソシエーション初期化と認証の両方が完了しており、送信信号が今では、新たに確立されたセキュリティ・アソシエーション300に対する鍵304を使用して暗号化および復号できることを示す。認証完了メッセージを受信すると、イニシエータHBA 200は、セキュリティ・アソシエーション300に対して生成された鍵304を使用してレスポンダ・ポート210へ送信することを開始するために、アクティブ・フラグ314を設定することなどによって作成されたセキュリティ・アソシエーション300をアクティブにする(ブロック426)。セキュリティ・アソシエーションをアクティブにした後、イニシエータHBA 200は、セキュリティ・アソシエーション300がアクティブになっているというアクセプト(LS_ACC)をレスポンダ・ポート220へ送信し(ブロック428)、新しいセキュリティ・アソシエーション鍵304を使用してI/Oをレスポンダ・ポート210へ送信することを開始する(ブロック430)。
【0041】
図5は、図4のメッセージの流れと動作のタイミングとを示すタイミング・チャートを提示しており、送信信号には図4の対応するブロックによって番号が付けられている。
【0042】
図4および図5の実施形態では、レスポンダHBA 200は、認証完了メッセージを送信することによって、セキュリティ・アソシエーションおよび認証を確立するためのすべてのステップが成功裏に完了したことを通知する(ブロック424)。イニシエータHBA 200が、セキュリティ・アソシエーション300がノードでプログラムされた後に生じる認証完了メッセージを受け付けると、次に、イニシエータ・ノードとレスポンダ・ノードの両方が、新しいセキュリティ・アソシエーション300および鍵304によって送信を開始することができる。認証完了メッセージによって、レスポンダは新しい鍵304を用いて送信できることを信号で伝え、イニシエータには、新しいセキュリティ・アソシエーションの新しい鍵304を使用して送信を開始することも信号で伝える。このようにして、記載された実施形態では、セキュリティ・アソシエーション管理プロトコルは、イニシエータおよびレスポンダが新しいセキュリティ・アソシエーションを使用して安全な送信を開始できるように、相互認証と組み合わされる。
【0043】
さらに、記載された実施形態では、ホスト102は、イニシエータとして機能するノードをノード間でネゴシエートしなければならないことを避けるために、記憶コントローラ104とのセキュリティ・アソシエーションを確立する際にはイニシエータとして常に機能することができる。
【0044】
図6は、図4および図5の動作によって初期セキュリティ・アソシエーションが確立された後に、鍵再設定動作を実施して、将来の送信信号に使用する新しい子鍵に対して新しいセキュリティ・アソシエーションを確立するための、イニシエータHBA 200とレスポンダHBA 200の間で行われる動作の一実施形態を示す。新しいセキュリティ・アソシエーション300および鍵304を作成するための鍵再設定動作を開始するために、イニシエータHBA 200は、図4のブロック400、408、410、418、420、426、428の動作を実施して(ブロック600)、セキュリティ・アソシエーションを確立し、新しいセキュリティ・アソシエーションのための認証を行う。レスポンダHBA 200は、図4のブロック402、404、406、412、414、416の動作を実施して(ブロック602)、セキュリティ・アソシエーション300を確立し、鍵再設定動作のための認証を行う。ブロック420でイニシエータHBA 200によって送信された、認証応答メッセージに対するアクセプトを受信すると、レスポンダHBA 200は、認証完了を送信する(ブロック424)前にセキュリティ・アソシエーション300をアクティブにする(ブロック422)ときに無効化タイマ208を起動する(ブロック604)。無効化タイマ208が満了すると(ブロック606)、レスポンダHBA 200は、保留中のいかなるアクティブなセキュリティ・アソシエーション300i-1も無効化する(ブロック608)。前のセキュリティ・アソシエーションを無効にしたならば、レスポンダHBA 200は、鍵再設定動作の一部として作成された新しいセキュリティ・アソシエーション300のみを使用する。さらに、イニシエータHBA 200は、認証完了に対するアクセプトを送信する場合は(ブロック428)、それ自体の無効化タイマ208もまた起動する(ブロック610)。無効化タイマ208が満了すると(ブロック612)、イニシエータHBA 200における前のセキュリティ・アソシエーション300i-1は無効化される(ブロック614)。
【0045】
図7は、図6のメッセージの流れおよび鍵再設定動作のタイミングを示すタイミング・チャートを提示しており、送信信号には図6の対応するブロックによって番号が付けられている。図7に示された図4からの参照番号は、図6に記載された第2または新のセキュリティ・アソシエーションの確立に対して実施される、図4のセキュリティ・アソシエーション初期化動作を指している。
【0046】
図6および図7の動作の実施形態では、鍵再設定動作の完了後、イニシエータ・ポート210とレスポンダ・ポート210の両方が、新しい送信鍵を使用して送信のI/O要求をキューに入れ始めている。さらに、イニシエータとレスポンダの両方が無効化タイマ208を起動し、このタイマは、新しい鍵をアクティブにする前に送信されたI/O要求を処理するために必要な前のセキュリティ・アソシエーション300i-1を無効にする前に、前の鍵およびセキュリティ・アソシエーション300i-1を使用して送信された、キューに入れられたI/O要求が処理されてI/Oキュー204からフラッシュされることを可能にするのに十分な時間を与える。このようにして、前のセキュリティ・アソシエーション300i-1が無効化されるまでに、前のセキュリティ・アソシエーション300i-1を使用して暗号化されたI/Oキュー204には、I/O要求がもう存在しない可能性が高い。さらに、1つの実施形態では、レスポンダHBA 200は、イニシエータHBA 200よりも先に無効化タイマ208を起動することができる。その理由は、レスポンダは、イミテータがその新しいセキュリティ・アソシエーションを後に送信された認証完了メッセージに応答してアクティブにする(ブロック424)前に、アクセプトに応答して新しいセキュリティ・アソシエーションをアクティブにする(ブロック422)からである。
【0047】
本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはその組み合わせであり得る。コンピュータ・プログラム製品には、プロセッサに本発明の諸態様を実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体が含まれ得る。
【0048】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶できる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、それだけには限らないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはこれらの任意の適切な組み合わせでよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録された溝の形の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組み合わせが含まれる。本明細書では、コンピュータ可読記憶媒体は、それ自体で、電波または他の自由伝搬する電磁波、導波管または他の伝送媒体を伝播する電磁波(たとえば、光ファイバ・ケーブルを進む光パルス)、または電線を通して伝送される電気信号などの、一時的な信号であると解釈されるべきではない。
【0049】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング・デバイス/処理デバイスに、またはネットワーク(たとえば、インターネット、ローカル・エリア・ネットワーク、広域ネットワークまたは無線ネットワークあるいはその組み合わせ)を介して外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組み合わせを含み得る。各コンピューティング・デバイス/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング・デバイス/処理デバイスの中のコンピュータ可読記憶媒体に記憶するために転送する。
【0050】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または1つもしくは複数のプログラム言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードとすることができ、このプログラム言語には、Java(R)、Smalltalk、C++などのオブジェクト指向プログラム言語、および「C」プログラム言語または同様のプログラム言語などの従来の手続き型プログラム言語が含まれる。コンピュー可読プログラム命令は、ユーザのコンピュータ上で全部を、ユーザのコンピュータ上で一部を、スタンドアロン・ソフトウェア・パッケージとして、ユーザのコンピュータ上で一部を、かつリモート・コンピュータ上で一部を、またはリモート・コンピュータもしくはサーバ上で全部を実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータと接続することができ、あるいは、この接続を外部のコンピュータと行うことができる(たとえば、インターネット・サービス・プロバイダを用いてインターネット経由で)。いくつかの実施形態では、たとえば、プログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人専用にすることによってコンピュータ可読プログラム命令を実行することができる。
【0051】
本発明の諸態様が、本発明の実施形態による、フローチャートまたは方法のブロック図あるいはその両方、装置(システム)、およびコンピュータ・プログラム製品に関して本明細書で説明される。フローチャートまたはブロック図あるいはその両方の各ブロック、およびフローチャートまたはブロック図あるいはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実施できることを理解されたい。
【0052】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートまたはブロック図あるいはその両方のブロック内で指定された機能/動作を実施する手段を作り出すように、汎用コンピュータ、専用コンピュータまたは他のプログラム可能データ処理装置のプロセッサに供給して1つの機械を生み出すことができる。コンピュータ、プログラム可能データ処理装置、または特定の方法で機能する他のデバイスあるいはその組み合わせに指示できる、これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロック内で指定された機能/動作の態様を実施する命令を含む製品を備えるように、コンピュータ可読記憶媒体に記憶することもできる。
【0053】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロック内で指定された機能/動作を実施するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、一連の動作ステップをコンピュータ、他のプログラム可能装置または他のデバイス上で、コンピュータで実施されるプロセスが生じるように実行させることができる。
【0054】
図のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の実現可能な実施形態のアーキテクチャ、機能および動作を示す。この関連で、フローチャートまたはブロック図の各ブロックは、命令のモジュール、セグメントまたは一部分を表すことができ、指定された論理機能を実施するための1つまたは複数の実行可能な命令を含む。いくつかの代替実施形態では、ブロック内に示された機能は、図に示された順序から外れて行われることがある。たとえば、連続して示された2つのブロックが、実際には、実質的に同時に実行されることがあり、あるいは場合によってブロックが、含まれる機能に依って逆の順序で実行されることがある。ブロック図またはフローチャートあるいはその両方の各ブロック、およびブロック図またはフローチャートあるいはその両方のブロックの組み合わせは、特定の機能または動作を行う、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する、専用ハードウェアによるシステムによって実現できることもまた理解されたい。
【0055】
ホスト102、102...102、記憶コントローラ104、およびホスト・バス・アダプタ200を含む図1および図2の計算構成要素は、図8に示されるコンピュータ・システム802などの、1つまたは複数のコンピュータ・システムとして実施することができる。コンピュータ・システム/サーバ802は、プログラム・モジュールなどの、コンピュータ・システムによって実行されるコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象的なデータ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、論理回路、データ構造などを含み得る。コンピュータ・システム/サーバ802は、通信ネットワークを介してリンクされている遠隔処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境において実践することができる。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含む局所と遠隔の両方のコンピュータ・システム記憶媒体に設置することができる。
【0056】
図8に示されるように、コンピュータ・システム/サーバ802が、汎用コンピューティング・デバイスの形で示されている。コンピュータ・システム/サーバ802の構成要素には、1つまたは複数のプロセッサまたは処理ユニット804と、システム・メモリ806と、システム・メモリ806を含む様々なシステム構成要素をプロセッサ804に結合するバス808とが、これらだけには限らないが含まれ得る。バス808は、メモリ・バスまたはメモリ・コントローラと、周辺バスと、アクセラレイテッド・グラフィックス・ポートと、様々なバス・アーキテクチャのいずれかを使用するプロセッサ・バスまたはローカル・バスとを含む、いくつかのタイプのバス構造のいずれかの1つ以上を表す。限定ではなく例として、このようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダード・アソシエーション(VESA)ローカル・バス、および周辺構成要素相互接続(PCI)バスが含まれる。
【0057】
コンピュータ・システム/サーバ802は通常、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ802によってアクセス可能な、任意の入手可能な媒体とすることができ、これには揮発性媒体と不揮発性媒体、および取り出し可能媒体と固定型可能媒体の両方が含まれる。
【0058】
システム・メモリ806は、ランダム・アクセス・メモリ(RAM)810またはキャッシュ・メモリ812あるいはその両方などの揮発性メモリの形のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ802はさらに、他の取り外し可能/固定型、揮発性/不揮発性のコンピュータ・システム記憶媒体を含み得る。単なる例として、記憶システム813は、固定型不揮発性磁気媒体(図示されず典型的には「ハード・ドライブ」と呼ばれる)との間で読み出しおよび書き込みをするために設けることができる。図示されず、取り外し可能な不揮発性磁気ディスク(たとえば、「フロッピー(R)ディスク」)との間で読み出しおよび書き込みをするための磁気ディスクドライブと、CD-ROM、DVD-ROMまたは他の光学媒体などの、取り外し可能な不揮発性光学ディスクの間で読み出しまたは書き込みをするための光ディスクドライブとを設けることができる。このような場合、それぞれのディスクドライブは、1つまたは複数のデータ媒体インターフェースによってバス808に接続することができる。以下でさらに描写および説明されるように、システム・メモリ806は、本発明の諸実施形態の機能を実行するように構成されているプログラム・モジュールのセット(たとえば、少なくとも1つ)を有する、少なくとも1つのプログラム製品を含み得る。
【0059】
プログラム・モジュール816のセット(少なくとも1つ)を有するプログラム/ユーティリティ814は、例として、それだけではないが、メモリ806に、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、記憶することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの任意の組み合わせのそれぞれは、ネットワーキング環境の一実施態様を含み得る。コンピュータ802の構成要素は、本明細書に記載された本発明の実施形態の機能または手法あるいはその両方を一般に実行するプログラム・モジュール816として実施することができる。図1のシステムは、1つまたは複数のコンピュータ・システム802として実施することができ、システムが複数のコンピュータ・システム802として実施される場合、これらのコンピュータ・システムは、ネットワークを介して通信することができる。
【0060】
コンピュータ・システム/サーバ802はまた、キーボード、ポインティング・デバイス、ディスプレイ820などの1つまたは複数の外部デバイス818、ユーザがコンピュータ・システム/サーバ802と対話できるようにする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ802が1つまたは複数の他のコンピューティング・デバイスと通信できるようにするあらゆるデバイス(たとえば、ネットワーク・カード、モデムなど)と、あるいはこれらの組み合わせと通信することもできる。このような通信は、入出力(I/O)インターフェース822を介して行われ得る。さらに、コンピュータ・システム/サーバ802は、ネットワーク・アダプタ824を介して、ローカル・エリア・ネットワーク(LAN)、一般広域ネットワーク(WAN)、または公衆ネットワーク(たとえばインターネット)あるいはこれらの組み合わせなどの、1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ824は、バス808を介してコンピュータ・システム/サーバ802の他の構成要素と通信する。図示されず、他のハードウェアまたはソフトウェアの、あるいはその両方の構成要素が、コンピュータ・システム/サーバ802と組み合わせて使用できることを理解されたい。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイバル記憶システムなどが、これらだけには限らないが挙げられる。
【0061】
用語の「一実施形態」、「実施形態」、「諸実施形態」、「その実施形態」、「それらの実施形態」、「1つまたは複数の実施形態」、「いくつかの実施形態」、および「1つの実施形態」とは、特に明記してあるものを除いて、「本発明の1つまたは複数の(ただし全部ではない)実施形態」を意味する。
【0062】
用語の「含んでいる」、「備えている」、「有している」およびその変形は、特に明記してあるものを除いて、「含んでいるが、それだけに限らない」を意味する。
【0063】
品目が列挙されたものは、特に明記してあるものを除いて、その品目のいくつか、または全部が互いに排他的であることを示唆するものではない。
【0064】
用語の「1つの(a)」、「1つの(an)」および「その(the)」は、特に明記してあるものを除いて、「1つまたは複数の」を意味する。
【0065】
互いに通信しているデバイスは、特に明記してあるものを除いて、互いに継続して通信している必要はない。加えて、互いに通信しているデバイスは、1つまたは複数の中間物を介して直接または間接に通信することができる。
【0066】
互いに通信しているいくつかの構成要素を有する実施形態についての記述は、そのような構成要素がすべて必要であることを意味するものではない。そうではなく、様々な任意選択の構成要素が、本発明の多種多様な可能な実施形態を説明するために記載されている。
【0067】
単一のデバイス/物品が本明細書に記載されている場合、1つより多いデバイス/物品が(協働しようとしまいと)単一のデバイス/物品の代わりに使用できることは容易に明らかになるであろう。同様に、1つより多いデバイスまたは物品が本明細書に記載されている場合(協働しようとしまいと)、単一のデバイス/物品が1つより多いデバイスまたは物品の代わりに使用できること、あるいは異なる数のデバイス/物品が図示の数のデバイスまたはプログラムの代わりに使用できることは、容易に明らかになるであろう。デバイスの機能または特徴あるいはその両方は、そのような機能/特徴を有するものと明記されていない、1つまたは複数の別のデバイスによっても代替的に具現化することができる。したがって、本発明の他の実施形態は、デバイス自体を含む必要がない。
【0068】
本発明の様々な実施形態の上述の説明は、例示および説明を目的として提示されている。説明は、網羅的なもの、または本発明を開示された厳密な形態に限定するものではない。多くの修正および変形が上記の教示に照らして可能である。本発明の範囲は、この「発明を実施するための形態」によってではなく、むしろ添付の特許請求の範囲によって限定されるものである。上記の明細書、例およびデータは、本発明の組成物の製造および使用についての完全な説明を提供する。本発明の多くの実施形態は、本発明の主旨および範囲から逸脱することなく作成することができるので、本発明は、本明細書に添付された特許請求の範囲にある。
図1
図2
図3
図4
図5
図6
図7
図8