(57)【特許請求の範囲】
【請求項１】
それぞれのイニシエータがネットワークを介してターゲットデバイスとの通信を開始する、複数のイニシエータを含むコンピュータシステムにおいて、前記ネットワークを介してターゲットデバイスと安全に通信するよう前記コンピュータシステムを構成する方法であって、前記複数のイニシエータ間のセキュリティコンフリクトが回避されるように、前記複数のイニシエータのそれぞれを構成するアブストラクションモジュールによって実行されるステップとして、
前記複数のイニシエータのいずれかを構成するために使用されるコモンインターフェースを公開する動作と、
前記複数のイニシエータから選択されたイニシエータが、選択されたターゲットデバイスと通信するように構成されるべき旨の指示を、前記コモンインターフェースを介して受信する動作と、
前記複数のイニシエータのいずれかに対するセキュリティコンフィギュレーションに関連した情報を含むデータベースから、通信プロトコルに関するセキュリティ情報を取り出す動作と、
前記取り出されたセキュリティ情報を使用して、前記選択されたイニシエータのセキュリティコンフィギュレーションを識別する動作と、
前記識別されたセキュリティコンフィギュレーションが、前記選択されたイニシエータを、前記複数のイニシエータの他のイニシエータのいずれともコンフリクトさせないかを判定する動作と、
コンフリクトが存在する場合、前記コンフリクトが解消されるように前記他のイニシエータを再構成するか、または、別のセキュリティコンフィギュレーションを使用して前記選択されたイニシエータを構成する動作と、
コンフリクトが存在しない場合、前記識別されたセキュリティコンフィギュレーションを使用して、前記選択されたイニシエータを構成する動作と、
を含むことを特徴とする方法。
【請求項２】
前記識別されたセキュリティコンフィギュレーションは、前記取り出されたセキュリティ情報と異なる、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記識別されたセキュリティコンフィギュレーションは、前記取り出されたセキュリティ情報と同じである、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記取り出されたセキュリティ情報は、ＩＰＳｅｃコンフィギュレーション情報を含む、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記取り出されたセキュリティ情報は、ＣＨＡＰコンフィギュレーション情報を含む、ことを特徴とする請求項１に記載の方法。
【請求項６】
前記選択されたイニシエータは、ｉＳＣＳＩを使用して前記ターゲットデバイスとの通信を行わせるように構成される、ことを特徴とする請求項１に記載の方法。
【請求項７】
前記データベースからセキュリティ情報を取り出す動作は、アクティブディレクトリから前記セキュリティ情報を取り出す動作を含む、ことを特徴とする請求項１に記載の方法。
【請求項８】
前記選択されたイニシエータはハードウェアイニシエータである、ことを特徴とする請求項１に記載の方法。
【請求項９】
前記選択されたイニシエータはソフトウェアイニシエータである、ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記セキュリティ情報を取り出す前記動作は、前記アブストラクションモジュールが前記指示を受信する前記動作に応じて行われる、ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記コモンインターフェースを介した前記指示は、前記選択されたターゲットデバイスとの通信を求める要求に応じて受信される、ことを特徴とする請求項１に記載の方法。
【請求項１２】
前記コモンインターフェースを介した前記指示は、前記選択されたターゲットデバイスとの通信を求めるいかなる至急要求よりも前に受信される、ことを特徴とする請求項１に記載の方法。
【請求項１３】
前記コモンインターフェースを介した前記指示は、前記コンピュータシステムの初期化に応じて受信される、ことを特徴とする請求項１２に記載の方法。
【請求項１４】
それぞれのイニシエータがネットワークを介してターゲットデバイスとの通信を開始するための、複数のイニシエータを含むコンピュータシステムで使用するコンピュータプログラムであって、該コンピュータプログラムは、前記ネットワークを介してターゲットデバイスと安全に通信するようにコンピュータシステムを構成する方法を前記コンピュータシステムに実施させ、前記コンピュータシステムの１つまたは複数のプロセッサによって実行された場合、
アブストラクションモジュールをインスタンス化し、該アブストラクションモジュールに対して、
前記複数のイニシエータのいずれかを構成するために使用されるコモンインターフェースを公開する動作と、
前記複数のイニシエータから選択されたイニシエータが、選択されたターゲットデバイスと通信するように構成されるべき旨の指示を、前記コモンインターフェースを介して受信する動作と、
前記複数のイニシエータのいずれかに対するセキュリティコンフィギュレーションに関連した情報を含むデータベースから、通信プロトコルに関するセキュリティ情報を取り出す動作と、
前記取り出されたセキュリティ情報を使用して、前記選択されたイニシエータのセキュリティコンフィギュレーションを識別する動作と、
前記識別されたセキュリティコンフィギュレーションが、前記選択されたイニシエータを、前記複数のイニシエータの他のイニシエータのいずれともコンフリクトさせないかを判定する動作と、
コンフリクトが存在する場合、前記コンフリクトが解消されるように前記他のイニシエータを再構成するか、または、別のセキュリティコンフィギュレーションを使用して前記選択されたイニシエータを構成する動作と、
コンフリクトが存在しない場合、前記識別されたセキュリティコンフィギュレーションを使用して、前記選択されたイニシエータを構成する動作と、
を実行させるコンピュータ実行可能命令を含むことを特徴とするコンピュータプログラム。
【請求項１５】
前記取り出されたセキュリティ情報はＩＰＳｅｃコンフィギュレーション情報を含む、ことを特徴とする請求項１４に記載のコンピュータプログラム。
【請求項１６】
前記取り出されたセキュリティ情報はＣＨＡＰコンフィギュレーション情報を含む、ことを特徴とする請求項１４に記載のコンピュータプログラム。
【請求項１７】
それぞれのイニシエータがネットワークを介してターゲットデバイスとの通信を開始するための、複数のイニシエータを含むコンピュータシステムで使用するコンピュータプログラムであって、該コンピュータプログラムは、前記ネットワークを介してターゲットデバイスと安全に通信するよう前記コンピュータシステムを構成する方法を前記コンピュータシステムに実施させ、前記コンピュータシステムの１つまたは複数のプロセッサによって実行された場合、
それぞれのイニシエータが、複数の前記ターゲットデバイスの少なくとも１つと通信することができる、複数のイニシエータと、
前記複数のイニシエータのいずれかを構成するために使用することができるコモンインターフェースを公開し、前記複数のイニシエータから選択されたイニシエータが、選択されたターゲットデバイスと通信するよう構成されるべき旨の指示を、前記コモンインターフェースを介して受信し、前記複数のイニシエータのいずれかに対するセキュリティコンフィギュレーションに関連した情報を含むデータベースから、通信プロトコルに関するセキュリティ情報を取り出し、前記指示を受信したことに応じて、前記取り出されたセキュリティ情報を使用して、前記選択されたイニシエータのセキュリティコンフィギュレーションを識別し、前記識別されたセキュリティ情報が、前記選択されたイニシエータを前記複数のイニシエータの他のイニシエータのいずれかとコンフリクトさせる場合、コンフリクトが解消されるように前記他のイニシエータを再構成するか、または、別のセキュリティコンフィギュレーションを使用して前記選択されたイニシエータを構成し、前記識別されたセキュリティ情報が、前記選択されたイニシエータを前記複数のイニシエータの他のイニシエータのいずれともコンフリクトさせない場合、前記識別されたセキュリティコンフィギュレーションを使用して、前記選択されたイニシエータを構成するアブストラクションモジュールと、
をインスタンス化させるコンピュータ実行可能命令を含むことを特徴とするコンピュータプログラム。
【請求項１８】
前記コンピュータシステムの１つまたは複数のプロセッサにより実行された場合、前記コンピュータシステムに対して、
前記コモンインターフェースに前記指示を提出するよう構成されたソフトウェアモジュールをインスタンス化させるコンピュータ実行可能命令をさらに有する、ことを特徴とする請求項１７に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信技術に関する。より詳細には、本発明は、セキュリティコンフリクト(security conflict)を回避するために、ネットワーク接続された(networked)ターゲットデバイス(target device)との通信を担当する、イニシエータ(initiator)のためのセキュリティコンフィギュレーション(security configuration)が綿密に調整されたメカニズムに関する。
【背景技術】
【０００２】
コンピューティング技術は、我々の仕事と遊びの方法に変化をもたらした。典型的なコンフィギュレーション(configuration)において、コンピューティングシステムは、最適な動作のためにローカルバスを介して様々なハードウェア装置に結合される。このような装置は、例えば、磁気および／または光ディスクドライブ、プリンタ、ファックス装置、スキャナ、カメラなどを含むことができる。コンピューティングシステムは、ハードウェア装置によって認識される標準通信プロトコルを使用して、接続されたハードウェア装置のそれぞれと通信する。
【０００３】
コンピューティングシステムと、その様々な接続されたハードウェア装置との間で通信するために一般的に使用される１つの通信プロトコルは、「スモール・コンピュータ・システム・インターフェース」（略称「ＳＣＳＩ」）と呼ばれる、パラレルインターフェース標準である。ＳＣＳＩは、コンピューティングシステムとその様々な周辺装置との間で、データの効果的なブロック転送を可能にする。しかし、ＳＣＳＩはある特定の制限を有する。具体的には、ＳＣＳＩを使用したデータ転送は、他のデータ転送機構と比べて比較的遅い。さらに、ＳＣＳＩのケーブルの長さは、発展性のあるネットワークに比べて比較的短い。したがって、ＳＣＳＩがその最も純粋な形態で使用される場合、ハードウェア装置は、通常、コンピューティングシステムの近くにある必要がある。
【０００４】
ＳＣＳＩに対する１つの改良は、「インターネットＳＣＳＩ」（略称「ｉＳＣＳＩ」）と呼ばれる。ｉＳＣＳＩは、標準ＳＣＳＩコマンドと応答を、イーサネット（登録商標）およびインターネットのような任意のＩＰベースのネットワークを介して伝達することを可能にする標準である。コンピューティングシステムは、ｉＳＣＳＩ標準を使用したターゲットデバイスとの通信を開始する「イニシエータ(initiator)」（ハードウェアまたはソフトウェアであってよい）を含む。具体的には、ＳＣＳＩメッセージは、適宜、断片化され、次いでインターネットプロトコル（ＩＰ）ヘッダでカプセル化される。適切に断片化され、カプセル化されたＳＣＳＩメッセージは、ＩＰネットワークを介して送信される。ターゲットデバイスは次いで、ＳＣＳＩコマンドを抽出し、実行し、次いで応答があれば、ｉＳＣＳＩ標準を使用し、ＩＰベースのネットワークを介してその応答を戻す。
【０００５】
ｉＳＣＳＩ標準(standard)は、ＳＣＳＩコマンドを非常に長い距離にわたって配信することを可能にする。したがって、ターゲットデバイス(target device)を、その関連する１つまたは複数のコンピューティングシステムから遠隔に配置することができる。したがって、ターゲットデバイスは、より容易に共有されることができ、関連するコンピューティングシステムによって占有されるローカル空間を乱雑にすることを必要としない。加えて、多くの典型的なＩＰネットワークは、高周波数で動作する。ｉＳＣＳＩは、毎秒ギガビットの範囲で動作するイーサネット（登録商標）さえサポートすることができる。したがって、ｉＳＣＳＩは、ＳＣＳＩを単に使用して、通常、可能となるよりも長距離であっても、より高速なデータ転送を可能にする。
【０００６】
しかし、ｉＳＣＳＩコマンドをＩＰベースのネットワークを介して転送することは、ローカルバス経由で単にＳＣＳＩを使用するよりも大きなセキュリティ上の脅威をもたらす。例えば、ｉＳＣＳＩ通信は、傍受、盗聴、またはハイジャックされる危険性がある。したがって、感度のよいｉＳＣＳＩ通信のために、ＩＰＳｅｃと呼ばれるＩＰに対応したセキュリティ標準は、メッセージの認証および／または暗号化のためにしばしば使用される。
【０００７】
しかし、ＩＰＳｅｃには、複数のセキュリティコンフィギュレーションオプション(security configuration option)がある。例えば、ＩＰＳｅｃは、様々な暗号化アルゴリズムをサポートし、メッセージのどの部分を暗号化すべきか、およびどのタイプの認証を使用すべきかに関するオプションを含む。ターゲットデバイスとの通信を担当するイニシエータは、通信が、ターゲットデバイスの希望通りにセキュリティ保護され、解釈可能となるように、適切なＩＰＳｅｃセキュリティ情報によって正確に構成（コンフィギュレーション）される必要がある。複数のイニシエータを有するコンピューティングシステムでは、イニシエータは、通常、コンピューティングシステムの他のイニシエータのセキュリティコンフィギュレーションにかかわらず構成（コンフィギュレーション）される。したがって、イニシエータのセキュリティコンフィギュレーションの間ではコンフリクト（衝突、矛盾：conflict）が起こることがよくある。これらのコンフリクトは、イニシエータが意図された通りに機能しないように、さらにはまったく機能しないようにする場合がある。このようなコンフリクトのリスクは、イニシエータが様々な販売者によって供給される場合に、特に増大する可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、コンピューティングシステムの複数のイニシエータにとって、あるイニシエータのセキュリティ情報が他のいかなるイニシエータのセキュリティ情報とコンフリクトしない手法に従い、セキュリティ情報により適切に構成される機構が有利である。
【課題を解決するための手段】
【０００９】
従来技術の上記の問題点は、すべてのイニシエータを通してセキュリティ情報(security information)にコンフリクト(conflict)のない手法で、複数のイニシエータ間のセキュリティコンフィギュレーション(security configuration)を容易(facilitate)にするアブストラクションモジュール(abstraction module)を対象とする、本発明の原理により克服される。各イニシエータは、ハードウェアデバイスによって認識(recognize)されるｉＳＣＳＩのような特定の標準(specific standard)を使用することにより、１つまたは複数のターゲット(target)ハードウェアデバイスとの通信を確立(establish)することができる。
【００１０】
アブストラクションモジュール(abstraction module)は、上記イニシエータのいずれかを構成(configure)するために使用することができる、コモンインターフェース(common interface)を公開(expose)する。このアブストラクションモジュールは、複数のイニシエータのうち選択されたイニシエータが、選択されたターゲットデバイス(selected target device)と通信するように構成（コンフィギュレーション）されるべき旨の指示(indication)をこのコモンインターフェースを介して受信する。この指示(indication)は、例えば、アプリケーションまたはユーザからの、選択されたターゲットデバイスとの通信を求める至急要求(express request)に応じて、提供することができる。あるいは、選択されたターゲットデバイスと通信するために、いかなる至急のアプリケーションまたはユーザ要求より前にでも、この指示を提供することができる。例えば、この指示は、コンピュータシステムの初期化(initializaion)の際に受信することができる。ターゲットデバイスは、例えば、磁気および／または光ディスクドライブ、プリンタ、ファックス装置、スキャナ、カメラなどであってよい。
【００１１】
アブストラクションモジュールは次いで、複数のイニシエータのいずれかに対してセキュリティをコンフィギュレーションすることに関する情報を収めたコモンデータベース(common database)から、セキュリティ情報(security information)を取り(retrieve)出す。このデータベースは、例えば、ＭＩＣＲＯＳＯＦＴ（登録商標）ＡＣＴＩＶＥ  ＤＩＲＥＣＴＯＲＹ（登録商標）またはＩＳＮＳデータベースであってよい。このセキュリティ情報は、例えば、ＩＰＳｅｃセキュリティコンフィギュレーション設定(security configuration setting)であってよい。
【００１２】
このアブストラクションモジュールは次いで、取り出されたセキュリティ情報(retrieved security informatio)を使用して、選択されたイニシエータ(selected initiator)に対するセキュリティコンフィギュレーション(security configuration)を識別(identify)する。識別されたセキュリティ情報(identified security information)は、いかなる操作(manipulation)もせずに、取り出されたセキュリティ情報(retrieved security information)と同じであってさえよい。アブストラクションモジュールは、識別されたコンフィギュレーション設定(identified configuration setting)がイニシエータの他のいずれともコンフリクトを生じないと判定(determine)すると、その識別されたセキュリティコンフィギュレーションを使用して、選択されたイニシエータ(selected initiator)を構成(configure)する。したがって、その選択されたイニシエータは、他のイニシエータが通信する機能を低下させずに、ターゲットハードウェアデバイスと通信するようにコンフィギュレーションすることができる。
【００１３】
本発明のさらなる機能および利点は、以下の説明で述べるが、一部はその説明から明らかになり、また本発明を実施することによって学習できよう。本発明の機能および利点は、添付の図面で具体的に指摘した機器および組み合わせにより、理解し、得ることができる。本発明のこれらおよび他の機能は、以下の説明および添付の図面からより全体的に明らかになるか、または以下で述べる本発明の実施により学習することができよう。
【発明を実施するための最良の形態】
【００１４】
本発明の上記および他の利点および機能を得ることのできる方法を説明するために、上記で概説した本発明のさらに具体的な説明を、添付の図面に示される、本発明の具体的な実施形態を参照することにより述べる。これらの図面は本発明の典型的な実施形態のみを示しており、本発明の範囲を限定するものとは見なされないことを踏まえ、本発明を、添付の図面を使用して、さらなる具体性および詳細により示し、説明することにする。
【００１５】
本発明の原理は、すべてのイニシエータを通してセキュリティ情報にコンフリクトがない方法で、複数のイニシエータ間のセキュリティコンフィギュレーションを容易にするアブストラクションモジュールに関する。各イニシエータは、特定の標準を使用して、１つまたは複数のターゲットハードウェアデバイスとの通信を確立する。アブストラクションモジュールは、イニシエータのどれでもコンフィギュレーションするために使用することができる、コモンインターフェースを公開する。
【００１６】
アブストラクションモジュールは、複数のイニシエータのうちの選択されたイニシエータが、選択されたターゲットデバイスと通信するようにコンフィギュレーションされるべき旨の指示を、このコモンインターフェースを介して受信し、複数のイニシエータのいずれかに関してセキュリティをコンフィギュレーションすることに関する情報を含むデータベースであるコモンデータベースからセキュリティ情報を取り出す。アブストラクションモジュールは、取り出されたセキュリティ情報を使用して、選択されたイニシエータに関するセキュリティコンフィギュレーションを識別し、関連するセキュリティ設定がイニシエータの他のいずれともコンフリクトを生じない場合は、その識別されたセキュリティコンフィギュレーションを使用して、選択されたイニシエータをコンフィギュレーションする。したがって、選択されたイニシエータは、他のイニシエータが通信する機能を低下させずに、ターゲットハードウェアデバイスと通信するようにコンフィギュレーションすることができる。
【００１７】
本発明の範囲に含まれる実施形態は、コンピュータ実行可能命令またはデータ構造を搬送または記憶するためのコンピュータ可読媒体を含む。このようなコンピュータ可読媒体は、汎用または専用コンピュータによってアクセス可能な、いかなる使用可能な媒体であってもよい。限定ではなく一例として、このようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、または他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶装置、もしくはコンピュータ実行可能命令またはデータ構造の形態で所望のプログラムコード手段を搬送し、または記憶するために使用されることができ、また汎用または専用コンピュータによってアクセス可能ないかなる他の媒体のような、物理コンピュータ可読媒体を含むことができる。
【００１８】
情報が、コンピュータに対するネットワークまたは他の通信接続（有線、無線、または有線と無線の組み合わせのいずれか）を介して転送または提供される場合、コンピュータは、その接続をコンピュータ可読媒体と適切にみなす。したがって、このような接続のどれでも、コンピュータ可読媒体と適切に称される。上記の組み合わせも、コンピュータ可読媒体の範囲に含めるべきである。コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理ユニットに、特定の機能または一群の機能を実行させる、いかなる命令およびデータをも含む。コンピュータ実行可能命令は、例えば、アセンブリ言語、または場合によってはソースコードのような、バイナリの中間フォーマット命令であってよい。必須ではないが、本発明は、ネットワーク環境のコンピュータによって実行される、プログラムモジュールのようなコンピュータ実行可能命令という一般的状況で説明する。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定のアブストラクションデータタイプを実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。
【００１９】
当業者には、本発明が、パーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含めて、多くのタイプのコンピュータシステムコンフィギュレーションを伴うネットワークコンピューティング環境で実施することができることが理解されよう。本発明は、タスクが通信ネットワークにより（有線リンク、無線リンク、有線または無線リンクの組み合わせのいずれかによって）リンクされたローカルおよび遠隔の処理ユニットによって実行される、分散型コンピューティング環境でも実行することができる。分散型コンピューティング環境では、プログラムモジュールは、ローカルおよび遠隔のメモリストレージデバイスの両方に置くことができる。
【００２０】
図１は、本発明の原理をコンピュータ１２０の形態で利用することができる、適切なコンピューティング環境を示す。コンピュータ１２０は、システムメモリ１２２を含めて様々なシステムコンポーネントを処理ユニット１２１に結合する、処理ユニット１２１、システムメモリ１２２、およびシステムバス１２３を含む。
【００２１】
システムバス１２３は、様々なバス構造のいずれかを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めて、いくつかのタイプのバス構造のどれであってもよい。システムメモリは、読み取り専用メモリ（ＲＯＭ）１２４、およびランダムアクセスメモリ（ＲＡＭ）１２５を含む。基本入出力システム（ＢＩＯＳ）１２６は、起動中などに、コンピュータ１２０の要素間での情報の転送に役立つ基本ルーチンを含み、ＲＯＭ１２４に記憶することができる。
【００２２】
コンピュータ１２０は、磁気ハードディスク１３９から読み取り／に書き込むための磁気ハードディスクドライブ１２７、取り外し可能な磁気ディスク１２９から読み取り／に書き込むための磁気ディスクドライブ１２８、ＣＤ−ＲＯＭまたは他の光媒体のような取り外し可能な光ディスク１３１から読み取り／に書き込むための光ディスクドライブ１３０も含むことができる。磁気ハードディスクドライブ１２７、磁気ディスクドライブ１２８、および光ディスクドライブ１３０は、それぞれハードディスクドライブインターフェース１３２、磁気ディスクドライブインターフェース１３３、および光ドライブインターフェース１３４によってシステムバス１２３に接続される。これらドライブおよびこれらの関連するコンピュータ可読媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージをコンピュータ１２０に提供する。本明細書で説明する環境の例は磁気ハードディスク１３９、取り外し可能な磁気ディスク１２９、および取り外し可能な光ディスク１３１を利用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ＲＡＭ、ＲＯＭなどを含めて、データを記憶するための他のタイプのコンピュータ可読媒体を使用することができる。
【００２３】
１つまたは複数のプログラムモジュールを含むプログラムコード手段は、オペレーティングシステム１３５、１つまたは複数のアプリケーションプログラム１３６、他のプログラムモジュール１３７、およびプログラムデータ１３８を含めて、ハードディスク１３９、磁気ディスク１２９、光ディスク１３１、ＲＯＭ１２４、またはＲＡＭ１２５に記憶することができる。ユーザは、コマンドおよび情報を、キーボード１４０、ポインティングデバイス１４２、またはマイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどのような他の入力装置（図示せず）によってコンピュータ１２０に入力することができる。これらおよび他の入力装置は、システムバス１２３に結合されたシリアルポートインターフェース１４６を介して、処理ユニット１２１に接続されていることがしばしばである。あるいは、入力装置を、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）のような他のインターフェースによって接続することができる。モニタ１４７または他の表示装置は、ビデオアダプタ１４８のようなインターフェースを介して、システムバス１２３にも接続される。モニタに加え、パーソナルコンピュータは、通常、スピーカおよびプリンタのような他の周辺出力装置（図示せず）を含む。
【００２４】
コンピュータ１２０は、リモートコンピュータ１４９ａおよび１４９ｂのような、１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク接続された環境で動作することができる。リモートコンピュータ１４９ａおよび１４９ｂは、それぞれ別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードであってよく、通常、コンピュータ１２０に関連して上記で説明した要素の多くまたはすべてを含むことができる。但し、図１には、メモリストレージデバイス１５０ａおよび１５０ｂ、およびその関連するアプリケーションプログラム１３６ａおよび１３６ｂしか示さない。図１に示す論理接続は、限定ではなく一例として本明細書に示す、ローカルエリアネットワーク（ＬＡＮ）１５１およびワイドエリアネットワーク（ＷＡＮ）１５２を含む。このようなネットワーク接続環境は、オフィス規模または企業規模のコンピュータネットワーク、イントラネット、およびインターネットでは一般的なものである。
【００２５】
ＬＡＮネットワーク接続環境で使用される場合、コンピュータ１２０は、ネットワークインターフェースまたはアダプタ１５３を介してローカルネットワーク１５１に接続される。ＷＡＮネットワーク接続環境で使用される場合、コンピュータ１２０は、モデム１５４、無線リンク、インターネットのようなワイドエリアネットワーク１５２を介して通信を確立するための他の手段を含むことができる。内蔵であっても外付けであってもよいモデム１５４は、シリアルポートインターフェース１４６を介してシステムバス１２３に接続される。ネットワーク接続された環境では、コンピュータ１２０に関連して示したプログラムモジュール、またはその一部は、遠隔メモリストレージデバイスに記憶することができる。図示したネットワーク接続は一例であり、ワイドエリアネットワーク１５２を介して通信を確立する他の手段を使用することができるということが理解されよう。
【００２６】
図１は、本発明に対する適切な動作環境を示しているが、ネットワークサイトにブラウジングすることができるいかなるコンピューティングシステムにおいても、本発明の原理を利用することができる。図１に示すコンピューティングシステムは例示に過ぎず、本発明の原理を実施することができる広範な環境の小さな一部分さえも表していない。説明および請求の範囲では、「コンピューティングシステム」は、１つまたは複数の機能を実行するためにソフトウェアを使用することができる任意の１つまたは複数のハードウェアコンポーネントであると広く定義される。コンピューティングシステムの例には、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、電話機、または処理機能のある他のシステムまたはデバイスが含まれる。
【００２７】
図２は、本発明の原理を利用することができるネットワーク環境２００を示す。ネットワーク環境２００は、ネットワーク２４０を介して複数の異なるターゲットハードウェアデバイス２５０と通信することができる、コンピューティングシステム２０１を含む。コンピューティングシステム２０１は、例えば、上記のコンピュータ１２０または任意の他のコンピューティングシステムであってよい。
【００２８】
ターゲットハードウェアデバイス２５０は、例えば、磁気および／または光ディスクドライブ、プリンタ、ファックス装置、スキャナ、カメラなどのような、いかなるハードウェアデバイスでも含むことができる。例示の実施形態では、コンピューティングシステムは、横並びの楕円２５５で表した潜在的な他のハードウェアデバイスのうち、ターゲットハードウェアデバイス２５１から２５４と通信することができる。しかし、コンピューティングシステムは、ネットワークを介そうが、コンピューティングシステムにローカルに接続されようが、他の複数のターゲットハードウェアデバイスと通信することができてもよい。
【００２９】
ターゲットハードウェアデバイスと通信するために使用することができる１つの標準は、インターネットＳＣＳＩ（略称「ｉＳＣＳＩ」）と呼ばれる。先述のように、ｉＳＣＳＩは、標準ＳＣＳＩコマンドおよび応答がイーサネット（登録商標）およびインターネットのような任意のＩＰベースのネットワークを介して伝達されることを可能にする標準である。ＳＣＳＩは、「スモール・コンピュータ・システム・インターフェース」（略称「ＳＣＳＩ」）と呼ばれる、パラレルインターフェース標準である。ＳＣＳＩは、コンピューティングシステムとその様々な周辺装置の間の効果的なブロック転送を可能にする。コンピューティングシステムの周辺装置に対するデータの効果的なブロック転送のためにＳＣＳＩは使用されるが、ＳＣＳＩを使用したデータ転送は比較的低速である。さらに、ＳＣＳＩケーブルは長さが限られている。したがって、非常にローカルな周辺装置に対しては、通常、ＳＣＳＩが単独で使用される。一方、ｉＳＣＳＩは、遥かに高速であり、ターゲットハードウェアデバイスをネットワーク上のどこにでも配置することを可能にする。しかし、ｉＳＣＳＩ通信は、傍受、およびネットワーク経由の通信特有の他のセキュリティリスクの影響を遥かに受けやすい。
【００３０】
コンピューティングシステム２０１は、横並びの楕円２３４で表した潜在的な他のイニシエータのうち、複数のイニシエータ２３１から２３３を含む。但し、コンピューティングシステム２０１には、イニシエータが３つより少ない場合もある。各イニシエータは、プラグインボードのようなハードウェアコンポーネントであってよく、またはランタイム中にメモリでインスタンス化(instantiated)されるソフトウェアイニシエータ(software initiator)であってよい。それにもかかわらず、イニシエータは、上位層(upper-layer)モジュール２１０に対するのと同じ要求に応じて、ネットワーク２４０経由でターゲットデバイス２５０と通信するように構成(configure)される。イニシエータは、例えば、ｉＳＣＳＩイニシエータであってよいが、これは必須ではない。
【００３１】
上位層モジュール２１０は、例えばアプリケーションプログラム１３６の１つのようなアプリケーションプログラムであるか、または他のプログラムモジュール１３７の１つであってよい。上位層モジュール２１０は、使用されるべきイニシエータにかかわらず、単一の統一されたユーザインターフェースを使用するよう提供することもできる。任意のイニシエータにターゲットデバイスと通信させることもできる、複数の上位層モジュールがある場合もある。イニシエータ２３０はそれぞれ、例えば、プログラムモジュール１３７の１つであってよい。ネットワーク２４０は、複数のコンピューティングシステムにまたがっていても、単一のコンピューティングシステムに内蔵されていても、いかなるネットワークであってもよい。イニシエータがｉＳＣＳＩイニシエータの場合、ネットワークは、例えば、イーサネット（登録商標）、トークンリングネットワーク、インターネットなどを含めて、インターネットプロトコル（ＩＰ）ベースのネットワークであってよい。
【００３２】
上述したように、各イニシエータ２３０は、独自のセキュリティコンフィギュレーション設定(security configuration setting)を有することができる。例えば、イニシエータ２３０がｉＳＣＳＩイニシエータの場合、セキュリティコンフィギュレーション設定は、例えばＩＰＳｅｃコンフィギュレーション設定であってよい。イニシエータアブストラクションモジュール２２０は、任意の上位層モジュール（上位層モジュール２１０など）とイニシエータ２３０の間を取り成し、様々なイニシエータ２３０のいかなるコンフィギュレーション設定の間でもそれらの一貫性を強制する。したがって、イニシエータアブストラクションモジュール２２０がセキュリティ設定のコンフリクトがないことを保証するので、イニシエータ２３０は、それ自体の所望の機能を保持する。
【００３３】
イニシエータアブストラクションモジュール２２０は、イニシエータ２３０のすべての間でセキュリティコンフィギュレーション設定の一貫性を強制する論理を含む、アブストラクションコンポーネント２２２を含む。アブストラクションコンポーネント２２２は、ＡＰＩ２２３を介してイニシエータ２３０（また、その逆）と通信することができる。アブストラクションコンポーネント２２０は、ＡＰＩ２２１を介して上位層モジュール２１０（また、その逆）と通信することができる。任意選択で、アブストラクションコンポーネント２２０は、セキュリティ情報をキャッシュすることもできる。このキャッシングは、不揮発性メモリのないハードウェアカードが、システムの起動時ごとに正確なセキュリティコンフィギュレーションを維持することを可能にする。このキャッシングは、カードを同一カードで置き換えることも可能にし、新しいカードをセキュリティ情報で再プログラムすることは必要としない。
【００３４】
各イニシエータ２３０は、インストールおよび／または起動中、または何らかの他のイベントの発生時に、アブストラクションコンポーネント２２２に登録することができる。登録は、イニシエータの識別と、可能ならば現行セキュリティ設定に関する通知を伴う場合がある。いずれにせよ、アブストラクションコンポーネント２２２は、イニシエータの記録を有しており、イニシエータが更新されたコンフィギュレーション情報を必要とするか否かを判定することができる。図２のアーキテクチャの動作と図２の残りの機能を、図３に関してさらに詳細に説明する。
【００３５】
図３は、ネットワークを介してターゲットデバイスと安全に通信するための、コンピュータシステムをコンフィギュレーションする方法３００の流れ図を示す。この方法３００は、イニシエータのそれぞれに対するセキュリティコンフィギュレーション設定（例えば、ＩＰＳｅｃ設定）を、イニシエータ間のセキュリティコンフリクトが回避される方法で設定する論理を含む、アブストラクションコンポーネント２２２によって実行される。
【００３６】
アブストラクションコンポーネント２２２は、複数のイニシエータのいずれかをコンフィギュレーションするために使用することができる、コモンインターフェースを公開する（動作３０１）。このコモンインターフェースは、図２にアプリケーションプログラムインターフェース（ＡＰＩ）２２１として表される。
【００３７】
ある時点で、アブストラクションコンポーネント２２２は、コモンインターフェースを介して、複数のイニシエータから選択されたイニシエータが、選択されたターゲットデバイスと通信するようにコンフィギュレーションされるべきである旨の指示を受信する（動作３０２）。この指示は、その複数の（場合によってはすべての）イニシエータが、選択されたターゲットデバイスと通信することも表す場合がある。指示自体は、セキュリティコンフィギュレーション（ＩＰＳｅｃ設定）情報を含むことができる。この指示は、アブストラクションコンポーネント２２２によって表される任意の方法で、ターゲットハードウェアデバイスを特定することができる。例えば、イニシエータ２３０がｉＳＣＳＩイニシエータの場合、指示は、ターゲットハードウェアデバイスのポータルまたはＩＰアドレスを使用して、ターゲットハードウェアデバイスを特定することができる。この指示は、例えば、アプリケーションまたはユーザからの、選択されたターゲットデバイスと通信することを求める至急要求に応じて提供することができる。あるいは、選択されたターゲットデバイスと通信することを求める、至急アプリケーションまたはユーザ要求よりも前に、この指示を提供することができる。例えば、指示は、コンピュータシステムの初期化時に受信することができる。
【００３８】
いずれにせよ、方法３００は、選択されたイニシエータのセキュリティコンフィギュレーションが複数のイニシエータの他のイニシエータとコンフリクトしないように、選択されたイニシエータに選択されたターゲットデバイスと通信させる、機能上の結果指向ステップを含む（ステップ３１０）。この機能上の結果指向ステップは、指定した結果を達成するためのいかなる対応する動作でも含むことができる。しかし、例示の実施形態では、ステップ３１０は、対応する動作３１１から３１４を含む。ステップ３１０で指定したように、１つのターゲットデバイスのためのコンフィギュレーション設定を設定するのと同時に、アブストラクションコンポーネント２２２は、イニシエータ２３０間にコンフリクトがないようにすることが必要な場合は特に、他のターゲットデバイスに対するコンフィギュレーション設定も設定することができる。
【００３９】
具体的に述べると、アブストラクションコンポーネント２２２は、共通ディレクトリから、イニシエータ２３０のいずれかに対するセキュリティコンフィギュレーション設定に関する情報を含む、セキュリティ情報を取り出す（動作３１１）。データベースは、例えば、ＭＩＣＲＯＳＯＦＴ（登録商標）ＡＣＴＩＶＥ  ＤＩＲＥＣＴＯＲＹ（登録商標）、インターネットストレージ名サービス（ＩＳＮＳ）データベース、または場合によっては例えばレジストリのようなローカルストアのような、分散型データベースであってよい。データベースに含まれる情報は、ＩＰＳｅｃ情報、ＣＨａｌｌｅｎｇｅ認証プロトコル（ＣＨＡＰ）、または証明書ベースの認証情報を含むことができる。分散型データベースは、イニシエータアブストラクションモジュール２２０のインスタンスを有するコンピュータシステム２１０以外の、コンピュータシステムによって共用することができる。データベースは、コモンデータベースからの情報がイニシエータ２３０の将来のコンフィギュレーションのために予めキャッシングされた、ローカルに永続的なであってもよい。データベースは、分散型データベースおよび永久ストア(persistent store)の組み合わせであってもよい。
【００４０】
イニシエータアブストラクションモジュール２２０は次いで、選択されたターゲットハードウェアデバイスと通信するようにコンフィギュレーションされるべき、選択されたイニシエータに対するセキュリティコンフィギュレーションを識別する。このセキュリティコンフィギュレーションは、場合によっては、アブストラクションコンポーネントによって実行された、なんらかのさらなる処理と共に、データベースから取り出されたセキュリティ情報を含むことができる。場合により、イニシエータは、コモンデータベースからの情報によって事前コンフィギュレーションしておくことができる。
【００４１】
イニシエータアブストラクションモジュール２２０は次いで、識別されたセキュリティコンフィギュレーションが、複数のイニシエータのうちの選択されたイニシエータを他のイニシエータとコンフリクトさせないようにすると判定する（動作３１３）。コンフリクトが存在する場合（動作３１３でＹｅｓ）、アブストラクションコンポーネント２２２は、コンフリクトが解消されるように他のイニシエータを再コンフィギュレーションすることと、選択されたイニシエータに対する別のセキュリティコンフィギュレーションを識別することの１つまたは両方を行う。コンフリクトが存在しない場合（動作３１３でＮｏ）、アブストラクションコンポーネント２２２は、識別されたセキュリティコンフィギュレーションを使用して、選択されたイニシエータをコンフィギュレーションする（動作３１４）。
【００４２】
ＩＰＳｅｃセキュリティに対するコンフィギュレーション設定は、キーを使用するか否か、トンネリングモードが所望か否か、どの暗号化アルゴリズムを使用すべきか、および他の周知のＩＰＳｅｃ設定オプションを含む。アブストラクションコンポーネント２２２は、適切なセキュリティ設定をコンフィギュレーションモジュール２６２に与えることができる。例えば、セキュリティ情報が、ｉＳＣＳＩを使用した通信に関するＩＰＳｅｃ設定の場合、コンフィギュレーションモジュール２６２は、ソフトウェアイニシエータに対するＴＣＰ／ＩＰコンフィギュレーションモジュールであってよい。通信中、ソフトウェアイニシエータは、オペレーティングシステムによって提供されるＴＣＰ／ＩＰプロトコルスタックを使用することができる。イニシエータがハードウェアイニシエータの場合、ハードウェアイニシエータは、それ独自のプロトコルスタック（例えば、それ独自のＴＣＰ／ＩＰスタック）を含むことができ、したがって、イニシエータアブストラクションモジュール２２０からの命令に応答して、それ独自のメモリをコンフィギュレーションすることができる。通信中、ハードウェアイニシエータは、それ独自の内部ＴＣＰ／ＩＰスタックを使用することができる。
【００４３】
以上、イニシエータアブストラクションモジュール２２０が、単一コンピューティングシステム上のすべてのイニシエータ間でのセキュリティ設定で一貫して強制する、機構を説明した。したがって、ネットワーク上にコンフィギュレーションされたターゲットハードウェアデバイスとコンピューティングシステムの間で、安全かつ高速なデータ転送を可能にしながらも、イニシエータ間でコンフリクトは発生しない。
【００４４】
本発明は、その趣旨または本質的な特徴から逸脱せずに、他の特定の形態で実施することができる。説明した実施形態は、すべての点において、限定ではなく例示に過ぎないものとして見なされるべきである。本発明の範囲は、したがって、上記の説明によってではなく、特許請求の範囲によって示される。特許請求の範囲の均等性の意味および範囲に含まれるすべての変更は、特許請求の範囲に包含されるべきである。
【図面の簡単な説明】
【００４５】
【図１】本発明を実施することができる、適切なコンピューティングシステムを示す図である。
【図２】イニシエータのそれぞれのセキュリティ設定間にコンフリクトがない手法で、イニシエータアブストラクションモジュールが、イニシエータごとにセキュリティ設定をコンフィギュレーションするネットワーク環境を示す図である。
【図３】本発明の原理にしたがって、イニシエータアブストラクションモジュールが、イニシエータごとにセキュリティ設定をコンフィギュレーションする方法を示す流れ図である。
【符号の説明】
【００４６】
１２１    処理ユニット
１２２    システムメモリ
１２３    システムバス
１３２    ハードディスクドライブインターフェース
１３３    磁気ディスクドライブインターフェース
１３４    光ドライブインターフェース
１３５    オペレーティングシステム
１３６    アプリケーションプログラム
１３６ａ    アプリケーションプログラム
１３６ｂ    アプリケーションプログラム
１３７    他のプログラムモジュール
１３８    プログラムデータ
１４０    キーボード
１４６    シリアルポートインターフェース
１４７    モニタ
１４８    ビデオアダプタ
１４９ａ    リモートコンピュータ
１４９ｂ    リモートコンピュータ
１５１    ローカルエリアネットワーク
１５２    ワイドエリアネットワーク
１５３    ネットワークインターフェース
１５４    モデム
【図１】
0004612368.tif 000002
【図２】
0004612368.tif 000003
【図３】
0004612368.tif 000004