(57)【特許請求の範囲】
【請求項１】
ネットワーク上でコンピュータ・システムの安全なウェイク・アップを容易にするサーバのためのコンピュータにより実現される方法であって、
前記ネットワーク上で第１のコンピュータ・システムから登録メッセージを受信することと、ここにおいて、前記第１のコンピュータ・システムは、ネットワーク・インタフェース・コントローラ（ＮＩＣ）を備え、前記登録メッセージは、前記第１のコンピュータ・システムがスリープ・モード中であるときに、前記ＮＩＣから受信され、前記登録メッセージは、前記第１のコンピュータ・システムの識別情報、ノンス、および暗号化アルゴリズムを備える、
前記第１のコンピュータ・システムを登録することと、ここにおいて、前記登録することは、メモリに前記第１のコンピュータ・システムの前記識別情報を記憶することを備える、
前記ネットワーク上で第２のコンピュータ・システムからウェイクアップ・メッセージを受信することと、ここにおいて、前記ウェイクアップ・メッセージは、前記第１のコンピュータ・システムを識別する情報、および、前記第２のコンピュータ・システムが前記サーバから受信した認証情報を備え、前記ウェイクアップ・メッセージにおける前記認証情報は、前記ノンスを備え、前記ノンスは、前記暗号化アルゴリズムに従って暗号化される、
前記ネットワーク上で前記第１のコンピュータ・システムに前記ウェイクアップ・メッセージを送信することと、ここにおいて、前記ウェイクアップ・メッセージは、前記ＮＩＣに対して前記第１のコンピュータ・システムをウェイク・アップすることを示す、
前記ＮＩＣから前記登録メッセージを受信した後、所定の期間の間、前記ＮＩＣとの接続を維持することと、ここにおいて、前記第１のコンピュータ・システムを前記登録することと、前記ウェイクアップ・メッセージを受信することと、前記ウェイクアップ・メッセージを送信することは、前記ＮＩＣとの前記接続が維持されている間に実行される、
コンピュータにより実現される方法。
【請求項２】
前記ＮＩＣから新しい登録メッセージを定期的に受信することと、ここにおいて、前記新しい登録メッセージは、前記ＮＩＣとの前記接続の終了前に受信される、
それぞれの新しい登録メッセージを受信することに基づいて、各それぞれの新しい登録メッセージを受信した後、さらなる所定の期間の間、前記ＮＩＣとの前記接続を維持すること
をさらに備える、請求項１に記載のコンピュータにより実現される方法。
【請求項３】
前記登録メッセージは、前記第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報を備え、
前記第１のコンピュータ・システムの識別情報を前記記憶することは、前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を記憶することを備え、
前記ウェイクアップ・メッセージにおける前記第１のコンピュータ・システムを識別する前記情報は、前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を備える、請求項１に記載のコンピュータにより実現される方法。
【請求項４】
前記認証情報は、事前共有キーを備え、前記事前共有キーは、前記第１のコンピュータ・システムおよび前記第２のコンピュータ・システムに知られている、請求項１に記載のコンピュータにより実現される方法。
【請求項５】
前記ネットワークは、広域ネットワークであり、前記方法は、サーバ・コンピュータ・システムによって実現される、請求項１に記載のコンピュータにより実現される方法。
【請求項６】
前記登録することは、前記メモリに前記ノンスおよび前記暗号化アルゴリズムを記憶することをさらに備え、
前記方法は、
前記第２のコンピュータ・システムからクエリ要求を受信することと、ここにおいて、前記クエリ要求は、前記第１のコンピュータ・システムの前記識別情報を備える、
前記第２のコンピュータ・システムにクエリ応答を送信することと、ここにおいて、前記クエリ応答は、前記第１のコンピュータ・システムの識別情報、前記ノンス、および前記暗号化アルゴリズムを備える、
をさらに備える、請求項１に記載のコンピュータにより実現される方法。
【請求項７】
前記ウェイクアップ・メッセージにおける前記認証情報に基づいて前記ウェイクアップ・メッセージを認証することをさらに備え、
前記第１のコンピュータ・システムに前記ウェイクアップ・メッセージを送信することは、前記ウェイクアップ・メッセージにおける前記認証情報を成功裏に認証することに基づく、請求項１に記載のコンピュータにより実現される方法。
【請求項８】
ネットワーク上で第１のコンピュータ・システムの安全なウェイク・アップを容易にするサーバのプログラム命令を備えるコンピュータ読み取り可能な記憶媒体であって、前記プログラム命令は、
前記ネットワーク上で前記第１のコンピュータ・システムから登録メッセージを受信する、ここにおいて、前記第１のコンピュータ・システムは、ネットワーク・インタフェース・コントローラ（ＮＩＣ）を備え、前記登録メッセージは、前記第１のコンピュータ・システムがスリープ・モード中であるときに、前記ＮＩＣから受信され、前記登録メッセージは、前記第１のコンピュータ・システムの識別情報、ノンス、および暗号化アルゴリズムを備え、
前記第１のコンピュータ・システムを登録する、ここにおいて、前記登録することは、メモリに前記第１のコンピュータ・システムの前記識別情報を記憶することを備える、
前記ネットワーク上で第２のコンピュータ・システムからウェイクアップ・メッセージを受信する、ここにおいて、前記ウェイクアップ・メッセージは、前記第１のコンピュータ・システムを識別する情報、および、前記第２のコンピュータ・システムが前記サーバから受信した認証情報を備え、前記ウェイクアップ・メッセージにおける前記認証情報は、前記ノンスを備え、前記ノンスは、前記暗号化アルゴリズムに従って暗号化される、
前記ネットワーク上で前記第１のコンピュータ・システムに前記ウェイクアップ・メッセージを送信する、ここにおいて、前記ウェイクアップ・メッセージは、前記ＮＩＣに対して前記第１のコンピュータ・システムをウェイク・アップすることを示す、
前記ＮＩＣから前記登録メッセージを受信した後、所定の期間の間、前記ＮＩＣとの接続を維持する、
ことがプロセッサによって実行可能であり、前記プログラム命令は、前記第１のコンピュータ・システムを登録し、前記ウェイクアップ・メッセージを受信し、前記所定の期間内に前記ウェイクアップ・メッセージを送信することが実行可能である、
コンピュータ読み取り可能な記憶媒体。
【請求項９】
前記プログラム命令は、
前記ＮＩＣから新しい登録メッセージを定期的に受信する、ここにおいて、前記新しい登録メッセージは、前記ＮＩＣとの前記接続の終了前に受信される、
それぞれの新しい登録メッセージを受信することに基づいて、各それぞれの新しい登録メッセージを受信した後、さらなる所定の期間の間、前記ＮＩＣとの前記接続を維持することがさらに実行可能である、請求項８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０】
前記登録メッセージは、前記第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報を備え、前記プログラム命令は、
前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を記憶することがさらに実行可能であり、
前記ウェイクアップ・メッセージにおける前記第１のコンピュータ・システムを識別する前記情報は、前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を備える、請求項８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１１】
前記認証情報は、事前共有キーを備え、前記事前共有キーは、前記第１のコンピュータ・システムおよび前記第２のコンピュータ・システムに知られている、請求項８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記ネットワークは、広域ネットワークである、請求項８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３】
前記登録することは、前記メモリに前記ノンスおよび前記暗号化アルゴリズムを記憶することをさらに備え、
前記プログラム命令は、
前記第２のコンピュータ・システムからクエリ要求を受信する、ここにおいて、前記クエリ要求は前記第１のコンピュータ・システムの前記識別情報を備える、
前記第２のコンピュータ・システムにクエリ応答を送信する、ここにおいて、前記クエリ応答は、前記第１のコンピュータ・システムの前記識別情報、前記ノンス、および前記暗号化アルゴリズムを備える、
ことがさらに実行可能である、請求項８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４】
前記プログラム命令は、
前記ウェイクアップ・メッセージにおける前記認証情報に基づいて前記ウェイクアップ・メッセージを認証することがさらに実行可能であり、
前記第１のコンピュータ・システムに前記ウェイクアップ・メッセージを送信することは、前記ウェイクアップ・メッセージにおける前記認証情報を成功裏に認証することに基づく、請求項８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５】
コンピュータ・システムにおいて使用するために構成されたネットワーク・インタフェース・コントローラ（ＮＩＣ）であって、
ネットワーク上で通信するための第１のポートと、
ネットワーク上で前記コンピュータ・システムを安全にウェイクすることが容易にできるように構成されたロジックとを備え、前記ロジックは、前記コンピュータ・システムがスリープ・モード中であるときに、実行するように構成され、前記ロジックは、
前記ネットワークを経由して、サーバに登録メッセージを送り、ここにおいて、前記登録メッセージは、前記コンピュータ・システムの識別情報、ノンス、および暗号化アルゴリズムを備え、
前記ネットワークを経由して、前記サーバからウェイクアップ・メッセージを受信し、ここにおいて、前記ウェイクアップ・メッセージは、認証情報を備え、前記ウェイクアップ・メッセージにおける前記認証情報は、前記ノンスを備え、前記ノンスは、前記暗号化アルゴリズムに従って暗号化され、前記ウェイクアップ・メッセージは、第２のコンピュータ・システムから生じ、
前記認証情報に基づいて前記ウェイクアップ・メッセージを認証し、
前記コンピュータ・システムをウェイクし、
前記登録メッセージを送信した後、所定の期間の間、前記サーバとの接続を維持するようにさらに構成され、前記ロジックは、前記サーバとの前記接続の終了前に前記サーバから前記ウェイクアップ・メッセージを受信するように構成される、ＮＩＣ。
【請求項１６】
前記ロジックは、
前記サーバとの前記接続の終了前に前記サーバに新しい登録メッセージを定期的に送信する、
それぞれの新しい登録メッセージを送信することに基づいて、各それぞれの新しい登録メッセージを送信した後、さらなる所定の期間の間、前記サーバとの前記接続を維持するようにさらに構成される、請求項１５に記載のＮＩＣ。
【請求項１７】
前記登録メッセージは、第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報を備え、
前記ウェイクアップ・メッセージは、前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を備える、請求項１５に記載のＮＩＣ。
【請求項１８】
前記認証情報は、事前共有キーを備え、前記事前共有キーは、第１のコンピュータ・システムおよび前記第２のコンピュータ・システムに知られている、請求項１５に記載のＮＩＣ。
【請求項１９】
前記ネットワークは、広域ネットワークである、請求項１５に記載のＮＩＣ。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]    本願発明は、一般的に、コンピュータ・システムに関し、より具体的には、ネットワーク上でコンピュータ・システムを安全にウェイクするシステムおよび方法に関する。
【背景技術】
【０００２】
[0002]    コンピュータ・システムは、現代社会の至る所に存在する。コンピュータ・システムの共通機能は、電力を節約するために「スリープ」（または「スタンバイ」、あるいは「低電力」）状態に入る能力である。一般的に、そのような状態にあるコンピュータ・システムを「ウェイクすること（waking）」は、人がコンピュータ・システムのすぐ近くにいる場合には簡単である。電源ボタン、「ウェイク・アップ」ボタンを押すこと、または（キーボードまたはマウスのような）別の局所入力装置をトリガリングすることが、コンピュータ・システムを局所的にウェイクする一般的な手段である。
【０００３】
[0003]    しかしながら、コンピュータ・システムの移動性および連結性の増加とともに、コンピュータ・システムへの遠隔アクセスもまた、望ましい性能となっている。例えば、ネットワーク・インタフェース・コントローラを経由した、ネットワーク接続は、コンピュータ・システムがローカルおよび／または広域ネットワーク上で通信することを可能にする。しかしながら、コンピュータがスリープ状態にある場合、コンピュータ・システムは、そのようなネットワークを経由して他のコンピュータ・システムにアクセスできない。
【０００４】
[0004]    ネットワーク上でコンピュータ・システムをウェイクするための解決法は提示されているが、そのような解決法には、一般的に、重大な関連課題がある。例えば、スリープ中のコンピュータ装置がネットワーク・アドレス変換（network address translation）（ＮＡＴ）を受けた（undergo）場合（例えば、コンピュータ装置がルータの背後にある場合）、これは、ウェイク・コマンドの送信を妨げ得る。いくつかのケースにおいて、そのようなスリープ中の装置は、適切な非武装地帯（ＤＭＺ：de-militarized zone）／ポート転送および静的なアドレス解決プロトコル（ＡＲＰ：address resolution protocol）がＮＡＴルータに設定されない限り、ウェイク・コマンドを受信することができない。これは複雑であり、（例えば、安全性のために）望ましくなく、ビジネス状況では、企業方針によっても許可されない。
【０００５】
[0005]    さらに、既存の解決法は、安全性を提供しない。既存の技術を使用すると、ＩＰアドレスまたはＭＡＣアドレスが知られている場合、誰でもスリープ中の計算装置をウェイク・アップすることができうる。その結果、スリープ中のコンピュータは、ウェイク・コマンドに偶然一致するパケットを受信した結果として誤ってウェイクされ得る、または、例えば、ハッカーによって、悪意のある目的ために意図的にウェイクされ得る。
【０００６】
[0006]    よって、本分野の改善が望ましい。
【発明の概要】
【０００７】
[0007]    本開示の実施形態は、ネットワーク上でスリープ中のコンピュータ・システムを安全にウェイクする安全なシステムおよび方法を提供するために示される。本開示のいくつかの実施形態は、ネットワーク（例えば、インターネットのような広域ネットワーク）上でコンピュータ・システムの安全なウェイク・アップを容易にするサーバのための方法、この方法を実現するように構成されたサーバ、およびこの方法を実現するコンピュータ・システム（例えば、サーバ）によって実行可能な記憶媒体に備えられたプログラム命令を対象とする。本開示の実施形態は、また、ネットワーク上でコンピュータ・システムの安全なウェイク・アップを可能にするネットワーク・インタフェース・コントローラ（ＮＩＣ）のための方法と、コンピュータ・システムにおいて使用するために構成され、その方法を実現するように構成されたＮＩＣを対象とする。
【０００８】
[0008]    ここに開示されたシステムおよび方法の１つの利点は、コンピュータ・システムがネットワーク・アドレス変換（ＮＡＴ）の影響下にあるときに、コンピュータ・システムをウェイク・アップする能力である。例えば、一般的にローカル・エリア・ネットワークを提供し、広域ネットワークにそのローカル・エリア・ネットワークの接続性を提供するために使用される多くのルータは、ローカル・エリア・ネットワークの計算装置にＮＡＴを提供する。そのような計算装置は、適切な非武装地帯（ＤＭＺ）／ポート転送および静的なアドレス解決プロトコル（ＡＲＰ）がＮＡＴを提供するルータに設定されない限り、ウェイク・コマンドを受信するのは困難であり得る。これは、複雑な処理であり、いくつかの状況（例えば、ビジネス状況）では、企業のＩＴ方針によって許可されない。
【０００９】
[0009]    いくつかの実施形態に従って、ここに開示されたシステムおよび方法は、ウェイク・アップを容易にするサーバへの登録を開始するスリープ中のクライアントを有利に含み得る。サーバとのコンタクトを開始すること、およびコンタクトを定期的に更新することによって、例えば、新しい登録メッセージを定期的に送信することによって、ライブ接続（live connection）がスリープ中のコンピュータ・システムとサーバとの間で維持され得る。これは、サーバが、ＮＡＴをナビゲートする必要なしに、スリープ中のコンピュータ・システムにウェイクアップ・メッセージを送信することを可能にする。
【００１０】
[0010]    ここに開示されたシステムおよび方法の別の利点は、安全性の提供である。安全性がなければ、基本情報（例えば、ＩＰアドレス）を付与したスリープ中のコンピュータ・システムをウェイク・アップすることが誰にとっても可能となり得る。これは、例えば、ハッカーなどによって、故意に起こり得る、あるいは、スリープ中のクライアントに送信されたパケットが、（ウェイク・オーバ・ラン（ＷＯＬ：Wake Over Lan）パターンのような）特定のウェイク・アップのパターンに誤って一致するため、起こり得る。
【００１１】
[0011]    いくつかの実施形態に従って、ここに開示されたシステムおよび方法は、ウェイクアップ・サーバおよびスリープ中のコンピュータ・システム自体のうちの１つまたは両方によるウェイクアップ・メッセージを認証することを有利に含み得る。さらに、いくつかの実施形態において、システムおよび方法に提供されるウェイクアップ・メッセージと他のメッセージの両方は、安全性のさらなるレイヤー（additional layer of security）のために暗号化され得る。
【００１２】
[0012]    ネットワーク上でコンピュータ・システムの安全なウェイク・アップを容易にするコンピュータ・システムにおいて使用されるために構成されたＮＩＣおよびサーバのための方法の実施形態は、次のように実行され得る。
【００１３】
[0013]    登録メッセージは、ネットワーク上で第１のコンピュータ・システムから受信され得る。第１のコンピュータ・システムは、ネットワーク・インタフェース・コントローラ（ＮＩＣ）を含み、第１のコンピュータ・システムがスリープ・モード中である間にＮＩＣから登録メッセージが受信され得る。登録メッセージは、第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報（user-selected human-readable identification information for the first computer system）を含み得る。第１のコンピュータ・システムは登録されることができ、それは、メモリに第１のコンピュータ・システムの（ユーザにより選択された人間が読み取り可能な識別情報を含み得る）識別情報を記憶することを含み得る。いくつかの実施形態において、登録メッセージは、また、メモリにも記憶され得るノンス（nonce）および暗号化アルゴリズムを含み得る。
【００１４】
[0014]    いくつかの実施形態において、クエリ要求は、ネットワーク上で第２のコンピュータ・システムから受信され得る。クエリ要求は、第１のコンピュータ・システムの識別情報を含み得る。
【００１５】
[0015]    クエリ要求が第２のコンピュータ・システムから受信されるこれら実施形態において、クエリ応答は、ネットワーク上で第２のコンピュータ・システムに送信され得る。クエリ応答は、実施形態に応じて、第１のコンピュータ・システムの識別情報、ノンス、および暗号化アルゴリズム、および／または他の情報を含み得る。
【００１６】
[0016]    ウェイクアップ・メッセージは、ネットワーク上で第２のコンピュータ・システムから受信され得る。ウェイクアップ・メッセージは、第１のコンピュータ・システムを識別する情報を含み得る。いくつかの実施形態において、第１のコンピュータ・システムを識別する情報は、第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報、および／または第１のコンピュータ・システムの登録中にメモリに記憶された他の識別情報を含み得る。ウェイクアップ・メッセージは、また、認証情報を含み得る。いくつかの実施形態において、認証情報は、暗号化アルゴリズムに従って暗号化され得るノンスを含み得る。いくつかの実施形態において、さらに、またあるいは、（例えば、第１のコンピュータ・システムおよび第２のコンピュータ・システムに知られている）パスワードまたは他の事前共有キー（pre-shared key）は、ノンスを暗号化することの一部として、および／または別のタイプの認証情報として、使用され得る。
【００１７】
[0017]    ウェイクアップ・メッセージは、第１のコンピュータ・システムに送信され得る。いくつかの実施形態において、ウェイクアップ・メッセージは、ウェイクアップ・メッセージに含まれる認証情報に基づいてサーバによって認証され得る。そのような実施形態において、第１のコンピュータ・システムにウェイクアップ・メッセージを送信することは、ウェイクアップ・メッセージにおける認証情報を成功裏に認証することに基づき得る。あるいは、サーバは、単に第１のコンピュータ・システムにウェイクアップ・メッセージを送信し、第１のコンピュータ・システムにおけるＮＩＣがウェイクアップ・メッセージを認証することを可能にし得る。
【００１８】
[0018]    ＮＩＣは、ウェイクアップ・メッセージを受信し得る。ウェイクアップ・メッセージは、認証情報に基づいてＮＩＣによって認証され得る。いくつかの実施形態において、ＮＩＣは、サーバがさらに、例えば、特別な安全性（extra security）のために、ウェイクアップ・メッセージの認証を実行するかどうかに関係なく、ウェイクアップ・メッセージを認証するように構成され得ることに注意すべきである。ウェイクアップ・メッセージが成功裏に認証された場合、ＮＩＣは第１のコンピュータ・システムをウェイク・アップし得る。
【００１９】
[0019]    いくつかの実施形態において、サーバに登録メッセージを送信するＮＩＣと、ＮＩＣから登録メッセージを受信するサーバに基づいて、接続は、登録メッセージが受信された後、所定の期間の間ＮＩＣとサーバとの間で維持され得る。上述したように、いくつかの実施形態において、このアクティブに維持される接続は、サーバと第１のコンピュータ・システムとの間のいかなるＮＡＴにも関係なく、サーバがＮＩＣにウェイクアップ・メッセージを送信することを有利に可能にし得る。よって、いくつかの実施形態に従って、第１のコンピュータ・システムを登録することと、クエリ要求を受信し、クエリ応答を送信することと、ウェイクアップ・メッセージを受信および送信することは、ＮＩＣとの接続が維持されている間に実行され得る。すなわち、コンピュータ・システムからのサーバによって受信されたウェイクアップ・メッセージは、第１のコンピュータ・システムとの接続が依然としてアクティブである場合にのみ、第１のコンピュータ・システムに転送され得る。
【００２０】
[0020]    接続が維持される所定の期間は、所定の期間の終了より前に、さらなるメッセージがサーバとＮＩＣとの間で交換されない場合、終了し得る。よって、いくつかの実施形態において、新しい登録メッセージは、（例えば、継続的な接続を維持するため、ＮＩＣとの接続の終了前に、）ＮＩＣから定期的に受信され得る。各新しい登録メッセージを受信することに基づいて、ＮＩＣとサーバとの間の接続は、延長され得る。例えば、実施形態に応じて、新しい所定の期間が確立され得る、またはさらなる所定の期間が残りの所定の期間に加えられ得る。
【図面の簡単な説明】
【００２１】
[0021]    本願のより良い理解は、以下の実施形態の詳細な説明が以下の図面とともに読まれた場合、得ることができる。
【００２２】
[0022]  
【図１】図１は、１つの実施形態に従って、いくつかのネットワーク・コンピュータ・システムを含む例示的なシステムを示している。   [0023]
【図２】図２は、１つの実施形態に従って、コンピュータ・システムの可能な構成要素を示したブロック図である。
【００２３】
[0024]  
【図３】図３は、ネットワーク上でコンピュータ・システムを安全にウェイクする方法の実施形態を示したフローチャート図である。
【００２４】
[0025]  
【図４】図４は、１つの実施形態に従って、様々なネットワーク装置を含む、および装置間での例示的なメッセージ・フローを含む、例示的なシステムを示している。
【００２５】
[0026]  
【図５】図５は、１つの実施形態にしたがって、一般的なメッセージ形式を示した略図である。
【００２６】
[0027]    本願発明は、様々な変更および択一的な形態の影響を受けやすいが、その具体的な実施形態は、図面の例として示され、ここで詳細に説明される。しかしながら、それに対する図面および詳細な説明は、本願発明を開示された特定の形式に意図的に限定することはなく、それどころか、添付されている請求項によって定義されるように本発明の精神および範囲内に含まれる変更、同等のもの、および代替案のすべてを含める意図があることを理解すべきである。
【詳細な説明】
【００２７】
用語
[0028]    以下は、本願において使用される用語集である。
【００２８】
[0029]    記憶媒体−任意の様々な種類の記憶装置（memory devices）または記憶装置（storage devices）である。用語「メモリ（memory）」および「記憶媒体（memory medium）」は、例えば、ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、またはテープ装置のような、インストール媒体と、ＤＲＡＭ、ＤＤＲ ＲＡＭ、ＳＲＡＭ、ＥＤＯ、ＲＡＭ、ラムバスＲＡＭ、等のような、コンピュータ・システムのメモリまたはランダム・アクセス・メモリと、または、フラッシュ・メモリ、ハードウェア・レジスタ、磁気メディア（例えば、ハード・ドライブ）、または光学記憶装置のような、不揮発性メモリを含むように意図される。記憶媒体は、さらに他の種類のメモリ、またはその組み合わせを備え得る。用語「記憶媒体」は、２つ以上の記憶媒体を含み得る。
【００２９】
[0030]    コンピュータ・システム−パーソナル・コンピュータ・システム（ＰＣ）、メインフレーム・コンピュータ・システム、ワークステーション、ネットワーク家電、インターネット家電、携帯電話、スマートフォン、ラップトップ、ノートブック、ネットブック、またはタブレット・コンピュータ・システム、携帯情報端末（ＰＤＡ）、マルチメディア装置、または他の装置あるいは複数の装置の組み合わせを含む任意の様々な種類の可動または固定の計算または処理システムである。一般的に、用語「コンピュータ・システム」は、記憶媒体からの命令を実行する少なくとも1つのプロセッサを有する任意の装置（または複数の装置の組合せ）を包含するように広く定義され得る。
【００３０】
[0031]    インターネットの影響力の拡大と、固定および可動計算装置の両方の数の爆発的な増加により、ある1つのコンピュータ・システムから別のコンピュータ・システムに遠隔にアクセスすることは、当たり前の行為となった。しかしながら、一般的に、コンピュータ・システムを遠隔にアクセスするためには、そのコンピュータ・システムの電源がオンにされる必要がある。よって、旅行であるユーザが（あるいは彼らのオフィスにおいてさえ）、彼らのラップトップ・コンピュータから自宅にある彼らのパーソナル・コンピュータにアクセスしたい場合、パーソナル・コンピュータはユーザが離れている間中つけたままでなくてはならないように思われる。しかしながら、パーソナル・コンピュータをそのような長時間放置しておくことは、エネルギーの浪費となり、パーソナル・コンピュータの消耗を強め得る。他の様々なそのような問題のある状況は、容易に想像できる。
【００３１】
[0032]    コンピュータ・システムのほとんどは、電力を節約するために、「スリープ」（または「スタンバイ」、あるいは「低電力」）」状態に入る機能を含む。そのような状態でコンピュータ・システムを「ウェイクすること」（例えば、コンピュータ・システムを完全なオン状態に戻すこと）は、ユーザがコンピュータ・システムのすぐ近くにいる場合には簡単である。電源ボタン、「ウェイク・アップ」ボタンを押すこと、または（キーボードまたはマウスのような）別の局所入力装置をトリガリングすることが、局所的にコンピュータ・システムをウェイクする一般的な手段である。
【００３２】
[0033]    しかしながら、ユーザがコンピュータに遠隔に（しかし、場合によっては稀に）アクセスしたいという、ますますよく見られる可能性を考慮すると、スリープ中のコンピュータ・システムを遠隔にウェイクすることもまた、可能になるべきである。これは、ユーザにコンピュータ・システムをスリープにさせ、それによって、例えば、インターネット上で、コンピュータ・システムを遠隔に後にアクセスする能力を依然として保持している間、コンピュータ・システムの電力と消耗を節約することを可能にする。
【００３３】
[0034]    しかしながら、同様に上述したインターネットの影響力の拡大のため、安全性なしでネットワーク（例えば、インターネットのような広域ネットワーク）上でコンピュータ・システムをウェイクする手段を提供することは、コンピュータ・システムを、攻撃を受けやすい（open to attack）状態にし得る、または不測にウェイクしやすい状態にし得る。よって、スリープ中のコンピュータ・システムを遠隔にウェイクするシステムおよび方法を設計することにおいて、安全性もまた、主として考慮されるものであるべきである。
【００３４】
図１
[0035]    従って、本開示の実施形態は、ネットワーク上でスリープ中のコンピュータ・システムを安全にウェイクすることに関する。図１は、様々なネットワーク装置を含む例示的なシステム１００を示しており、そのうちの一部またはすべてが、本開示の実施形態を実現するために使用され得る。
【００３５】
[0036]    システム１００は、ネットワーク１０２に結合された様々なデバイスとの間の通信結合（communicative coupling）を提供するネットワーク１０２を含み得る。いくつかの実施形態において、ネットワーク１０２は、インターネットのような広域ネットワークであり得る。従って、ネットワーク１０２は、１つ以上のローカル・エリア・ネットワークのような複数の他のネットワークを含み得る、および／または複数の他のネットワークに通信可能に結合され得る。（任意の「サブネットワーク」を含む）ネットワーク１０２は、当業者によって理解されるように、任意の様々な規格およびバージョンによる有線および／または無線ネットワーク（例えば、イーサネット（登録商標）、電力通信システム、光ファイバ・ネットワーク、IEEE 102.11（WiFi）、IEEE 102.16（WiMAX）、等）を含み得る、および任意の様々な通信媒体を含み得る。
【００３６】
[0037]    様々なコンピュータ・システムは、コンピュータ・システム１０４、１０６、および１０８を含む、ネットワーク１０２に結合され得る。コンピュータ・システム１０４、１０６、および１０８は、例えば、ネットワーク１０２のような、１つ以上の中間ネットワークを経由して、ネットワーク１０２に直接的または間接的に結合されることができ、任意の様々な規格およびバージョンによる有線および／または無線ネットワークをも含み得る。他のコンピュータ・システムおよび／または装置もまた、いくつかの実施形態においてネットワーク１０２に結合され得る。
【００３７】
[0038]    実施形態の１つのセットに従って、コンピュータ・システム１０４は、サーバ・コンピュータ・システム１０８を経由して、エンド・ユーザ・コンピュータ・システム１０６によってネットワーク１０２上で安全にウェイク・アップされるように構成されたスリープ中のクライアント・コンピュータ・システムであり得る。例えば、コンピュータ・システム１０４、１０６、および１０８は、図３について以下に記載された方法の態様を実現するように構成され得る。
【００３８】
[0039]    当業者によって理解されるように、コンピュータ・システム１０４、１０６、および１０８の各々は、様々な手法で実現され得る。図２は、実施形態の１つのセットに従って、コンピュータ・システム１０４、１０６、および１０８のうちの１つ以上を実現するために使用され得る基本構成要素を示している。コンピュータ・システム１０４、１０６、および１０８のための他のシステム構成もまた、可能である。
【００３９】
図２
[0040]    図２は、コンピュータ・システム２００の様々な構成要素を示す簡略化されたブロック図である。様々な実施形態に従って、コンピュータ・システム２００は、図１に示されるコンピュータ・システム１０４、１０６、および／または１０８のうちの１つ以上を実現するために使用され得る。よって、コンピュータ・システム２００の１つ以上の要素は、図３について以下に記載された方法の１つ以上の態様を実現するように構成され得る。
【００４０】
[0041]    コンピュータ・システム２００は、記憶媒体２０４に結合され得るプロセッサ２０２を含み得る。コンピュータ・システム２００は、プロセッサ２０２に結合されたネットワーク・インタフェース・コントローラ（ＮＩＣ）２０６をさらに含み得る。ＮＩＣ２０６は、コンピュータ・システム２００がネットワーク上で通信することを可能にし得る。例えば、示されるように、ＮＩＣ２０６は、ポート２１０、およびプロセッサ２０２とは無関係におよび／またはプロセッサ２０２と共にポート２１０を制御するように構成されたロジック２０８を含み得る。ポート２１０は、有線（例えば、イーサネット、電力線、電話線、同軸ケーブル、または他の有線接続）または無線（例えば、ＩＥＥＥ １０２．１１（ＷｉＦｉ）、ＩＥＥＥ １０２．１６（ＷｉＭＡＸ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または他の無線接続）であり得る。いくつかの実施形態において、ＮＩＣは、複数のポートを含み、および／または複数の通信媒体（例えば、複数の有線および／または無線接続）を経由したサポート・ネットワーク通信をサポートし得る。
【００４１】
[0042]    制御ロジック２０８は、アナログ・ロジック、デジタル・ロジック、（ＣＰＵ、ＤＳＰ、マイクロコントローラ、等のような）プロセッサ、ＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）、または上記の任意の組み合わせのような、任意の様々な種類のロジックを使用して実現され得る。１つの実施形態において、制御ロジック２０８は、ハードウェアベースの状態機械として部分的にまたは全体的に実現され得る。例えば、コンピュータ・システム２００が図１のスリープ中のクライアント・コンピュータ・システム１０４を実現するために使用される実施形態において、ＮＩＣ２０６は、サーバ・コンピュータ・システム１０８に登録メッセージを送信し、サーバ・コンピュータ・システム１０８からウェイクアップ・メッセージを受信するために構成された、およびそれらウェイクアップ・メッセージを認証し、スリープ中のクライアント・コンピュータ・システム１０４をウェイク・アップするために構成された有限状態機械を含み得る。
【００４２】
[0043]    いくつかの実施形態において、プロセッサ２０２は、汎用プロセッサであり得る。例えば、プロセッサ２０２は、記憶媒体２０４に記憶された任意の様々なプログラム命令（例えば、ソフトウェア）を実行するように構成され得る。あるいは、または、さらに、コンピュータ・システム２００は、マイクロコントローラ、デジタル・シグナル・プロセッサ、および／または他の組み込みシステムのような、１つ以上の専用（例えば、特種用途）処理ユニットを含み得る。例えば、コンピュータ・システム２００が図１のサーバ・コンピュータ・システム２０８を実現するために使用されるような実施形態の１つのセットにおいて、記憶媒体２０４は、例えば、図３について以下に記載された方法の実施形態に従って、ネットワーク１０２上でスリープ中のクライアント・コンピュータ・システム１０４の安全なウェイク・アップを容易にするプログラム命令を含み得る。プロセッサ２０２は、所望されるように、（例えば、コンピュータ・システム２００の計算性能を高めるために）単一のプロセッサまたは複数のプロセッサを含み得ることにも注意すべきである。
【００４３】
[0044]    コンピュータ・システム２００は、任意の様々な種類の装置であることができ、様々な実施形態に従って、任意の様々な機能を実現し得る。例えば、コンピュータ・システム２００は、携帯電話、スマートフォン、タブレット、ネットブック、ラップトップ、デスクトップ、サーバ、または他のコンピュータ・システム、ポータブル・メディア・プレイヤ、携帯情報端末、または有線あるいは無線の方法でネットワーク上で通信するために使用され得る一般的な任意の他のタイプの計算装置であり得る。
【００４４】
[0045]    上記に簡単に述べたように、コンピュータ・システム２００は、様々な実施形態に従って、様々な方法で実現され得る。よって、例えば、例示的なコンピュータ・システム２００は、図１に示される任意のコンピュータ・システム１０４、１０６、および１０８を表すものとして上述されている。当業者は、これを、コンピュータ・システム１０４、１０６、および１０８の各々が必ず同一であることを示唆するように理解すべきではないことを認識するだろう。実際には、異なる構成要素および異なる構成を含むことは、可能であり、コンピュータ・システム１０４、１０６、および１０８にとって一般的であり得る。例えば、クライアント・コンピュータ・システム／エンド・ユーザ装置は、一般的にサーバ・コンピュータ・システムとの、性能と機能における著しい差があり得る。
【００４５】
[0046]    さらに、実現に応じて、本開示を考慮すると当業者によって理解されるように、コンピュータ・システム２００は、例えば、他の機能を実現するために、所望されるような任意の他の様々な構成要素（例えば、ディスプレイ、（単数または複数の）ユーザ入力装置、（単数または複数の）スピーカ、さらなる入力／出力機能、等、）をも含み得る。そのような構成要素は、開示の詳細を不明瞭にすることを避けるために示されていない。
【００４６】
図３
[0047]    図３は、ネットワーク上でコンピュータ・システムを安全にウェイクする方法の実施形態を示したフローチャート図である。方法の実施形態は、サーバ・コンピュータ・システム、（ここでは第１のコンピュータ・システムと称される）スリープ中のクライアント・コンピュータ・システム、および／または（ここでは第２のコンピュータ・システムと称される）エンド・ユーザ・コンピュータ・システムによって実現され得る。例えば、図３の方法の態様は、本開示の図１−２の装置によって一般的に実現され得る。
【００４７】
[0048]    従って、第１のコンピュータ・システムは、すべて第１のコンピュータ・システムがスリープ・モード中である間中ずっと、サーバに登録し、サーバ上でウェイクアップ・メッセージを受信し、これらウェイクアップ・メッセージを認証し、第１のコンピュータ・システムをウェイクするように構成されたロジックおよびポートを含むネットワーク・インタフェース・コントローラ（ＮＩＣ）を含み得る。
【００４８】
[0049]    さらに、サーバ・コンピュータ・システムは、プロセッサ、およびネットワーク上で第２のコンピュータ・システムによって第１のコンピュータ・システムをウェイクすることを容易にするプロセッサによって実行可能なプログラム命令を含む記憶媒体を含み得る。
【００４９】
[0050]    図３について以下に記載されたステップは特定の順序で示されるが、様々な実施形態に従って、ステップの１つ以上が、省略され、繰り返され、または示される順序とは異なる順序で実行され得ることに注意すべきである。１つ以上のさらなるステップは、所望されるように追加され、また、あるいは代替的に追加され得る。方法は、以下のように実行され得る。
【００５０】
[0051]    ステップ３０２において、登録メッセージは、サーバによって受信され得る。登録メッセージは、ネットワーク上で第１のコンピュータ・システムのＮＩＣによって送信され得る。ネットワークは、インターネットのような、広域ネットワークであり得る。登録メッセージは、第１のコンピュータ・システムがスリープ中の間に、ＮＩＣによって送信され得る。例えば、コンピュータ・システムが他の場合でスリープ・モード中であっても、登録メッセージを送信する、および、ウェイクアップ・メッセージを受信および認証し、コンピュータ・システムをウェイクする性能を維持することに関する他の機能を実行する、のに必要とされる制限された機能を保つために、ＮＩＣは、少ない電力量を利用し続けることができる。実施形態に応じて、これは、状態機械のような、単純なハードウェア・ロジック・システムのように安全なウェイク・アップ機能を維持することを担うＮＩＣのロジックを実現することで容易になり得るため、システムは、他のシステムよりも低い電力要件を有し得る。しかしながら、「ウェイク・アップ」ロジックが記憶媒体に記憶されたプログラム命令を実行するプロセッサ（例えば、組み込みプロセッサ）として実現されるものを含む、様々な他の実施形態もまた、可能である。
【００５１】
[0052]    登録メッセージは、第１のコンピュータ・システムを識別する情報を含み得る。例えば、いくつかの実施形態において、登録メッセージは、第１のコンピュータのホスト名、および／またはネットバイオス（ｎｅｔｂｉｏｓ）共有フォルダを含み得る。いくつかの実施形態において、第１のコンピュータのＩＰアドレスは、登録メッセージに（例えば、暗に、または明確に）含まれ得る。いくつかの実施形態に従って、ＩＰｖ４およびＩＰｖ６のいずれか、または両方がサポートされ得る。さらに（または、あるいは）、登録メッセージは、第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報を含み得る。例えば、第１のコンピュータ・システムは、「ｈｏｍｅ１２３」または「ｂｏｂｓｗｏｒｋｓｔａｔｉｏｎ」のような、そのユーザによって選択された識別名および／または数を有するように（例えば、スリープ・モードに入る前に）、ユーザによって構成され得る。
【００５２】
[0053]    いくつかの実施形態において、登録メッセージは、また、認証目的のために使用され得る情報を含み得る。例えば、１つの実施形態において、登録メッセージは、ノンス（例えば、ランダム・オクテット（random octet）ような、ランダムな数または疑似乱数）と、ノンス（および／または他の情報）を暗号化するために使用され得る暗号化方法を含み得る。あるいは、またはさらに、パスワードまたは他の認証情報が（例えば、実現に応じて）登録メッセージに含まれ得る。いくつかの実施形態において、認証情報（例えば、ノンスおよび／または暗号化方法）は、第１のコンピュータ・システムによって生成され、および／またはユーザにより選択され得る。
【００５３】
[0054]    ステップ３０４において、第１のコンピュータ・システムは、サーバによって登録され得る。第１のコンピュータ・システムを登録することは、メモリに第１のコンピュータ・システムからの登録メッセージに含まれる情報の一部あるいはすべてを記憶することを含み得る。例えば、ホスト名、ネットバイオス（ｎｅｔｂｉｏｓ）共有フォルダ、ＩＰアドレス、ユーザにより選択された人間が読み取り可能なＩＤ、および／または第１のコンピュータ・システムの認証情報のいずれか、または全てがメモリに記憶され得る。
【００５４】
[0055]    いくつかの実施形態において、第１のコンピュータのＮＩＣおよびサーバは、第１のコンピュータ・システムがサーバに登録メッセージを送信した後、所定の期間の間、アクティブな接続を維持し得る。例えば、サーバは、登録メッセージを受信すると、所定の長さのタイムアウト・タイマ（timeout timer）を起動し得る。（所望されるように、５、１５、３０、または６０秒、あるいは任意の他の時間の長さであり得る）所定の期間の後に、接続は終了し得る。接続がタイムアウトした場合、サーバは、ＮＩＣに（ウェイクアップ・メッセージのような）メッセージを送信することができない。あるいは、サーバは、ＮＩＣにメッセージを送信することができるが、登録情報（例えば、ノンスおよび／または暗号化アルゴリズム）の一部または全てがもはや有効ではなくなる。
【００５５】
[0056]    従って、第１のコンピュータ・システムがスリープ・モードのままである限り、サーバとのアクティブな接続を維持し、それによって、ネットワーク上でウェイクアップ・メッセージを受信する性能を維持するために、サーバに新しい登録メッセージを定期的に送信することが、第１のコンピュータ・システムにとって望ましい。よって、いくつかの実施形態において、サーバは、ＮＩＣから新しい登録メッセージを定期的に受信し得る。各新しい登録メッセージは、元の登録メッセージに含まれていたような、同じような種類の情報を含み得る。いくつかの実施形態において、各新しい登録メッセージは、以前の登録メッセージと同一であり得る。あるいは、いくつかの情報は、一部または全ての新しい登録メッセージにおいて更新または変更され得る。例えば、いくつかの実施形態において、ノンスが安全性のために定期的に更新され得る。各新しい登録メッセージがＮＩＣとの接続の終了前にサーバによって受信されるように、（単数または複数の）新しい登録メッセージは、周期性を備えて送信され得る。各新しい登録メッセージの受信の結果として、第１のコンピュータ・システムがスリープ中である限り、第１のコンピュータ・システムのＮＩＣとサーバとの間の接続が、連続的にアクティブのままであり得るように、サーバは、さらなる所定の期間の間、ＮＩＣとの接続を延長し得る、または単にタイムアウト・タイマを更新し得る。
【００５６】
[0057]    ステップ３０６において、クエリ要求は、サーバによって受信され得る。クエリ要求は、第２のコンピュータ・システムによって送信され得る。いくつかの実施形態において、クエリ要求は、ネットワーク上で第１のコンピュータ・システムをウェイクすることへの第１のステップとして、第２のコンピュータ・システムのユーザ（例えば、第１のコンピュータ・システムおよび第２のコンピュータ・システムの両方のユーザ）によって開始され得る。クエリ要求は、第１のコンピュータ・システムの識別情報を含み得る。例えば、クエリ要求は、ホスト名、ＩＰアドレス、および／または第１のコンピュータのユーザにより選択された人間が読み取り可能なＩＤを含み得る。１つの実施形態において、クエリ要求は、単に第１のコンピュータのユーザにより選択された人間が読み取り可能なＩＤを含み得る。これは、ユーザに、彼ら（または別の人間のユーザ）が選択し得る（推定上より記憶しやすい）ＩＤのみを使用してクエリ要求を行なうことを可能にするため、いくつかの実施形態では好ましい。
【００５７】
[0058]    他の実施形態において、さらなる情報がまた、あるいは代替的にクエリ要求に含まれ得る。例えば、いくつかの実施形態において、クエリ要求は、サーバがクエリ要求に応答する前に認証し得る（パスワード、対称的または非対称的なキー暗号化情報、および／または実現に応じて他の認証情報のような）認証情報を含み得る。
【００５８】
[0059]    ステップ３０８では、クエリ応答は、サーバによって第２のコンピュータ・システムに送信され得る。クエリ応答は、ウェイクアップ・メッセージを生成し、第１のコンピュータ・システムに送信するために、第２のコンピュータ・システムに必要とされる情報を含み得る。例えば、クエリ応答は、登録メッセージにおける第１のコンピュータ・システムからのサーバによって受信された一部またはすべての情報を含み得る。一例として、登録メッセージがノンスおよび暗号化アルゴリズムを含む上記の実施形態において、クエリ応答は、第１のコンピュータのユーザにより選択された人間が読み取り可能なＩＤ、ノンス、および暗号化アルゴリズムを含み得る。いくつかの実施形態において、クエリ応答は、また、あるいは代替的に、第１のコンピュータ・システムのホスト名および／またはネットバイオス（ｎｅｔｂｉｏｕｓ）共有フォルダを含み得る。クエリ応答は、第２のコンピュータ・システムによって受信され得る。
【００５９】
[0060]    ステップ３１０において、ウェイクアップ・メッセージは、サーバによって受信され得る。ウェイクアップ・メッセージは、第２のコンピュータ・システムによって生成および送信され得る。ウェイクアップ・メッセージは、第１のコンピュータ・システムの識別情報および認証情報を含み得る。
【００６０】
[0061]    いくつかの実施形態において、ウェイクアップ・メッセージに含まれる識別情報もまた、第１のコンピュータのユーザにより選択された人間が読み取り可能なＩＤを含み得る。さらに、またあるいは、第１のコンピュータ・システムの識別情報の１つ以上の他の形式が、ウェイクアップ・メッセージに含まれ得る。例えば、いくつかの実施形態において、第１のコンピュータ・システムのホスト名、ネットバイオス（ｎｅｔｂｉｏｕｓ）共有フォルダ、および／またはＩＰアドレスの１つ以上が、ウェイクアップ・メッセージに含まれ得る。
【００６１】
[0062]    いくつかの実施形態において、第２のコンピュータ・システムは、ウェイクアップ・メッセージに含まれるべき認証情報を生成するために、クエリ応答で受信される情報を使用し得る。例えば、クエリ応答が上記ノンスおよび暗号化アルゴリズムを含む場合、第２のコンピュータ・システムは、ノンスを暗号化するために暗号化アルゴリズムを使用し、暗号化されたノンスをウェイクアップ・メッセージに含め得る。あるいは、またはさらに、ウェイクアップ・メッセージは、事前共有キーを含み得る。すなわち、ウェイクアップ・メッセージは、第１のコンピュータ・システムおよび第２のコンピュータ・システム（例えば、のユーザ）に知られている情報を含むことができ、それを、第１のコンピュータ・システムは、ウェイクアップ・メッセージを認証するために使用し得る。いくつかの実施形態において使用され得る例は、例えば、ユーザにより選択された一連の英数字のような、パスワードである。他の実施形態は、他の種類の事前共有キーを含み得る。 
[0063]    いくつかの実施形態では、ステップ３０６および３０８（クエリ要求およびクエリ応答）は、省略され得ることに注意すべきである。例えば、いくつかの実施形態において、第２のコンピュータ・システムのユーザは、既に、ウェイクアップ・メッセージを生成し、第１のコンピュータ・システムに（例えば、サーバを経由して）送信するのに必要な情報のすべてを有し得る。例えば、いくつかの実施形態に従って、第２のコンピュータ・システムのユーザは、第２のコンピュータ・システムがウェイクアップ・メッセージを生成し、サーバに送信し得ることに基づいて、入力として、第１のコンピュータのユーザにより選択された人間が読み取り可能なＩＤおよびユーザにより選択された事前共有パスワードを提供することができ、それによって、クエリ要求およびクエリ応答のステップをバイパスする。
【００６２】
[0064]    ステップ３１２では、ウェイクアップ・メッセージは、サーバによって第１のコンピュータ・システムに送信され得る。いくつかの実施形態において、ウェイクアップ・メッセージは、第２のコンピュータ・システムから受信されるように、サーバによって第１のコンピュータ・システムに送信され得る。あるいは、サーバは、ウェイクアップ・メッセージを第１のコンピュータ・システムに送信する前に、ウェイクアップ・メッセージを変更または認証し得る。
【００６３】
[0065]    第１のコンピュータ・システムは、サーバ・コンピュータからウェイクアップ・メッセージを受信し得る。ウェイクアップ・メッセージは、特に、（例えば、コンピュータ・システムが一般的にスリープ・モード中であり得るので）第１のコンピュータ・システムのＮＩＣによって受信され得る。ＮＩＣは、（例えば、サーバに加えて、またはサーバの代わりに）ウェイクアップ・メッセージを認証することができ、ウェイクアップ・メッセージが成功裏に認証された場合、ＮＩＣは第１のコンピュータ・システムをウェイク・アップし得る。ウェイクした後、第１のコンピュータ・システムは、完全にオン状態となることができ、ネットワーク上で（第２のコンピュータ・システムのような）他のコンピュータ・システムと相互に作用することができる。
【００６４】
[0066]    ＮＩＣがウェイクアップ・メッセージを認証するように構成される方法は、実施形態に応じて変化し得る。例えば、ウェイクアップ・メッセージが暗号化アルゴリズムに従って暗号化されたノンスを含む場合、ウェイクアップ・メッセージを認証することは、ウェイクアップ・メッセージに含まれる暗号化されたノンスを解読することと、それを元のノンスと比較すること、または受信された暗号化されたノンスを、（例えば、暗号化アルゴリズムに基づいて第１のコンピュータによって生成された）事前構成された暗号化ノンスと比較することを含み得る。それらが同じであると比較が示す場合、ウェイクアップ・メッセージは認証されることができ、ＮＩＣは第１のコンピュータ・システムをウェイク・アップし得る。ウェイクアップ・メッセージに含まれたノンスは、第２のコンピュータ・システムによって提供されたキーに従って（例えば、暗号化アルゴリズムを使用して）暗号化され得る。キーは、パスワード、事前共有ｘ．５０９認証からのキー、または他の何らかの種類の事前共有キーであることができる。よって、いくつかの実施形態において、事前共有キーは、ノンスを暗号化するためにそれを使用することで含まれ得る。すなわち、いくつかの実施形態において、事前共有キーは、例えば、安全性のために、標準文字（plain text）で転送されない。しかしながら、他の実施形態では、所望された場合、パスワードは、そのように転送され得る。
【００６５】
[0067]    （例えば、パスワード、事前共有キーのような）認証システムの具体的な例が上に挙げられたが、いくつかの実施形態において、任意の他の様々な認証システムが、また、あるいは代替的に、実現され得ることに注意すべきである。例えば、任意の対称的または非対称的な暗号システムが実現され得る。さらに、ケルベロス、ラディウス、ドメイン認証（Kerberos, RADIUS, Domain Authentication）のような認証サーバ、または別の認証サーバが、所望された場合に使用され得る。
【００６６】
[0068]    さらに、許可されていないユーザが第１のコンピュータ・システムをウェイク・アップすることを可能にする情報へのアクセスを、彼らが取得するのを防ぐために、上記メッセージ（例えば、登録メッセージ、クエリ要求、クエリ応答、ウェイクアップ・メッセージ）の一部あるいは全てが、（例えば、対称的、非対称的、または他の暗号化システムを使用して）暗号化される実施形態もまた、考慮される。
【００６７】
[0069]    方法の実施形態は、スリープ中のコンピュータ・システムを遠隔にウェイクする既存の方法に比べて様々な利点を含み得る。例えば、ほとんどの既存の方法は、ローカル・エリア・ネットワーク上でスリープ中のコンピュータをウェイクする方法に関する。例は、（特定のオフセットおよびマッチング・パターンがウェイク・コマンドを示す）ウェイク・オーバ・ラン（ＷＯＬ）パターン（wake over LAN (WOL) patterns）、（パケットがスリープ中のコンピュータ・システムの１６個の連続ＭＡＣアドレスを含む）マジックＷＯＬ（magic WOL）、および（ネットワーク・ケーブルのような媒体が接続された）リンク変更（link change）を含む。これら方法は、ＮＡＴを通して実行されるように意図されていない。ＮＡＴを通して使用することができるものでさえ、大規模な構成を必要とし、それは、ターゲット・コンピュータ・システムの安全性を低下させる望ましくない副作用を有し得る。さらに、これらの方法のいずれも安全性を含まない。よって、任意の特別な構成なしにＮＡＴを通して実行されることと、安全性／認証機能を含むことの両方ができる図３の方法の実施形態は、既存の解決法に比べて著しい改善を示す。
【００６８】
図４
[0070]    図４は、図３について上述した方法が１つの実施形態に従って実現され得る例示的なシステム４００の図である。本開示の実施形態が実現され得るシステムおよび方法のより具体的な例を提供するために、図４のシステム４００が、ここに示され、説明される。しかしながら、当業者が理解するように、図４のシステムの具体的詳細に対する多数の変化および代替案が可能であり、図４も、それについての説明も、総じて本開示に限定して考慮されるべきではない。
【００６９】
[0071]    示されるように、システム４００は、ネットワーク４０２を含むことができ、それは、インターネットのような、広域ネットワーク（ＷＡＮ）であり得る。サーバ・コンピュータ・システム４０４は、第１の位置でＷＡＮ４０２に結合され得る。エンド・ユーザ・コンピュータ・システム４０６は、第２の位置でＷＡＮ４０２に結合され得る。スリープ中のクライアント・コンピュータ・システム４０８および４１０は、ローカル・エリア・ネットワーク（ＬＡＮ）４１２経由でＷＡＮ４０２に結合され得る。ＬＡＮ４１２は、ルータ４１４によって（例えば、無線で）提供されることができ、それは、ファイアウォール４１６のＬＡＮ４１２側でネットワーク・アドレス変換（ＮＡＴ）を提供し得る。
【００７０】
[0072]    スリープ中のクライアント４０８は、ＬＡＮ４１２およびＷＡＮ４０２経由でサーバ４０４に登録し得る。図４の実施形態において、登録することは、スリープ中のクライアント４０８における（示されていない）ＮＩＣによって実行されることができ、スリープ中のクライアント４０８の符号化ホスト名およびネットバイオス（netbios）共有フォルダと、（例えば、スリープ・モードに入っているスリープ中のクライアント４０８より前に、ユーザにより選択され得る）スリープ中のクライアント４０８の符号化ＩＤと、（スリープ中のクライアント・モード４０８によってランダムに生成されたオクテットであり得る）ノンスと、暗号化アルゴリズムとを含むメッセージを送信することを含み得る。サーバは、この情報のすべてを記憶し得る。
【００７１】
[0073]    スリープ中のクライアント４０８がサーバ４０４に登録された後、エンド・ユーザ４０６は、クエリ要求を生成し、サーバ４０４に送信し得る。クエリ要求は、単にスリープ中のクライアント４０８の符号化ＩＤを含み得る。
【００７２】
[0074]    エンド・ユーザ４０６からクエリ要求を受信することに基づいて、サーバ４０４は、エンド・ユーザ４０６にクエリ応答を送信し得る。クエリ応答は、スリープ中のクライアント４０８の符号化ＩＤ、および登録メッセージからのノンスおよび暗号化アルゴリズムを含み得る。
【００７３】
[0075]    サーバ４０４からクエリ応答を受信すると、エンド・ユーザ４０６は、安全キーによりウェイクアップ・メッセージを生成し得る。ウェイクアップ・メッセージは、スリープ中のクライアント４０８の符号化ＩＤ、およびエンド・ユーザのキー入力に従って暗号化されたノンスを含み得る。すなわち、ノンスは、エンド・ユーザ４０６によるキー入力（例えば、パスワードまたは他の事前共有キー）に従って登録メッセージに含まれる暗号化アルゴリズムを使用して暗号化され得る。  
[0076]    エンド・ユーザ４０６は、サーバ４０４にウェイクアップ・メッセージを送信することができ、それは、ウェイクアップ・メッセージをスリープ中のクライアント４０８に転送し得る。スリープ中のクライアント４０８におけるＮＩＣは、ウェイクアップ・メッセージを受信し、暗号化されたノンスをチェックし得る。それが、正しいキーを使用して符号化された場合、ＮＩＣはスリープ中のクライアント４０８をウェイク・アップし得る。
【００７４】
図５
[0077]    図５は、１つの実施形態に従ってネットワーク上でコンピュータ・システムを安全にウェイクするシステムおよび方法の一部として使用され得る例示的なメッセージ形式を示している。例示されたメッセージ形式は、ユーザ・データグラム・プロトコル（ＵＤＰ）パケットの形をとる。
【００７５】
[0078]    示されるように、メッセージは、メディア・アクセス制御（ＭＡＣ）ヘッダ、インターネット・プロトコル（ＩＰ）ヘッダ、およびＵＤＰヘッダを含み得る。ＵＤＰプロトコルによって当業者に知られているように実現され得るこれらヘッダに続いて、「インターネット上での安全なウェイク」（「ＳＷＯＩ：secure wake over internet」）ヘッダが含まれ得る。ＳＷＯＩヘッダは、１つの実施形態に従って、バージョン情報、コマンド（ＣＭＤ）インジケータ、長さフィールド（length field）、ＸＩＤ、およびエラー・コードを含み得る。バージョン・フィールドは、メッセージ形式のバージョンを示し得る。ＣＭＤフィールドは、登録メッセージ、クエリ要求、クエリ応答、またはウェイクアップ・メッセージのような、ＳＷＯＩメッセージの種類を示し得る。長さフィールドは、従うべきオプション・リストの（例えば、バイト単位の）長さを示し得る。誤り訂正コーディング情報および／または他の情報もまた、いくつかの実施形態に含まれ得る。いくつかの実施形態において、メッセージ形式の一部は、メッセージ形式の将来の変更に対する変更のためにリザーブされ得る。（例えば、バージョンに１バイト、ＣＭＤに１バイト、長さに２バイト、ＸＩＤに４バイト、およびエラー・コードに２バイトのように）バイト単位での特定の長さがＳＷＯＩヘッダフィールドに示されるが、これらは例にすぎず、他の長さもまた考慮される。
【００７６】
[0079]    オプション・リストはメッセージの内容（substance）を含み得る。例えば、可能性のあるオプションは、潜在的にメッセージの種類に応じて、符号化ホスト名、ユーザにより選択されたＩＤ、ノンス、暗号化アルゴリズム、または任意の様々な他のオプションを含むことができる。１つの実施形態に従って、各オプションは、（例えば、オプションの種類を識別する）オプション・タイプ、（例えば、オプション・データ・フィールドの長さを識別する）オプション長、およびそのオプション・データ自体の３つのフィールドを含み得る。１つの実施形態に従って、オプション・タイプ・フィールドは、１バイトの長さになり、オプション長フィールドは、２バイトの長さになり、オプション・データ・フィールドは、オプション長フィールドによって示されるものと同じくらいの長さになり得、他のフィールド長もまた、可能である。いくつかの実施形態において、単一のパケットは、オプション・リストにおいて複数のオプションを含み得る。いくつかの他の実施形態において、各パケットは、単一のオプションのみを含み得る。
【００７７】
[0080]    図５に示されるメッセージ形式は１つの可能性のあるＵＤＰに基づくメッセージ形式であるが、当業者は、他のＵＤＰに基づくメッセージ形式、または（例えば、ＴＣＰのような他のプロトコルを使用して）任意の様々な他の種類パケットが、所望されるように使用され得ることを理解するだろう。よって、図５に示されるメッセージ形式はここに記載されたメッセージを実現する１つの可能性のある手段を表示するが、図５も、それについてのこの説明も、総じて本開示に限定して考慮されるべきではない。
【００７８】
[0081]    上記実施形態は、かなり詳細に説明されているが、一度、上記開示が完全に理解されると、多数の変化および変更が当業者にも明白となるだろう。以下の請求項は、そのようなすべての変化および変更を包含するように解釈されることが意図される。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ネットワーク上でコンピュータ・システムの安全なウェイク・アップを容易にするサーバのためのコンピュータにより実現される方法であって、
前記ネットワーク上で第１のコンピュータ・システムから登録メッセージを受信することと、ここにおいて、前記第１のコンピュータ・システムは、ネットワーク・インタフェース・コントローラ（ＮＩＣ）を備え、前記登録メッセージは、前記第１のコンピュータ・システムがスリープ・モード中であるときに、前記ＮＩＣから受信される、
前記第１のコンピュータ・システムを登録することと、ここにおいて、前記登録することは、メモリに前記第１のコンピュータ・システムの識別情報を記憶することを備える、
前記ネットワーク上で第２のコンピュータ・システムからウェイクアップ・メッセージを受信することと、ここにおいて、前記ウェイクアップ・メッセージは、前記第１のコンピュータ・システムを識別する情報および認証情報を備える、
前記ネットワーク上で前記第１のコンピュータ・システムに前記ウェイクアップ・メッセージを送信することと、ここにおいて、前記ウェイクアップ・メッセージは、前記ＮＩＣに対して前記第１のコンピュータ・システムをウェイク・アップすることを示す、コンピュータにより実現される方法。
［Ｃ２］
前記ＮＩＣから前記登録メッセージを受信することに基づいて前記ＮＩＣから前記登録メッセージを受信した後、所定の期間の間、前記ＮＩＣとの接続を維持することをさらに備え、
前記第１のコンピュータ・システムを前記登録することと、前記ウェイクアップ・メッセージを受信することと、前記ウェイクアップ・メッセージを送信することは、前記ＮＩＣとの前記接続が維持されている間に実行される、Ｃ１に記載のコンピュータにより実現される方法。
［Ｃ３］
前記登録メッセージを受信することに基づいて前記登録メッセージを受信した後、所定の期間の間、前記ＮＩＣとの接続を維持することと、
前記ＮＩＣから新しい登録メッセージを定期的に受信することと、ここにおいて、前記新しい登録メッセージは、前記ＮＩＣとの前記接続の終了前に受信される、
それぞれの新しい登録メッセージを受信することに基づいて、各それぞれの新しい登録メッセージを受信した後、さらなる所定の期間の間、前記ＮＩＣとの前記接続を維持すること
をさらに備える、Ｃ１に記載のコンピュータにより実現される方法。
［Ｃ４］
前記登録メッセージは、前記第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報を備え、ここにおいて、前記第１のコンピュータ・システムの識別情報を前記記憶することは、前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を記憶することを備え、
前記ウェイクアップ・メッセージにおける前記第１のコンピュータ・システムを識別する前記情報は、前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を備える、Ｃ１に記載のコンピュータにより実現される方法。
［Ｃ５］
前記認証情報は、事前共有キーを備え、前記事前共有キーは、前記第１のコンピュータ・システムおよび前記第２のコンピュータ・システムに知られている、Ｃ１に記載のコンピュータにより実現される方法。
［Ｃ６］
前記ネットワークは、広域ネットワークであり、前記方法は、サーバ・コンピュータ・システムによって実現される、Ｃ１に記載のコンピュータにより実現される方法。
［Ｃ７］
前記登録メッセージは、前記第１のコンピュータ・システムの前記識別情報、ノンス、および暗号化アルゴリズムを備え、
前記登録することは、前記メモリに前記ノンスおよび前記暗号化アルゴリズムを記憶することをさらに備え、
前記方法は、
前記第２のコンピュータ・システムからクエリ要求を受信することと、ここにおいて、前記クエリ要求は、前記第１のコンピュータ・システムの前記識別情報を備える、
前記第２のコンピュータ・システムにクエリ応答を送信することと、ここにおいて、前記クエリ応答は、前記第１のコンピュータ・システムの識別情報、前記ノンス、および前記暗号化アルゴリズムを備える、
をさらに備え、
前記ウェイクアップ・メッセージにおける前記認証情報は、前記ノンスを備え、ここにおいて、前記ノンスは、前記暗号化アルゴリズムに従って暗号化される、Ｃ１に記載のコンピュータにより実現される方法。
［Ｃ８］
前記ウェイクアップ・メッセージにおける前記認証情報に基づいて前記ウェイクアップ・メッセージを認証することをさらに備え、
前記第１のコンピュータ・システムに前記ウェイクアップ・メッセージを送信することは、前記ウェイクアップ・メッセージにおける前記認証情報を成功裏に認証することに基づく、Ｃ１に記載のコンピュータにより実現される方法。
［Ｃ９］
ネットワーク上で第１のコンピュータ・システムの安全なウェイク・アップを容易にするサーバのプログラム命令を備えるコンピュータ読み取り可能な記憶媒体であって、前記プログラム命令は、
前記ネットワーク上で前記第１のコンピュータ・システムから登録メッセージを受信する、ここにおいて、前記第１のコンピュータ・システムは、ネットワーク・インタフェース・コントローラ（ＮＩＣ）を備え、前記登録メッセージは、前記第１のコンピュータ・システムがスリープ・モード中であるときに、前記ＮＩＣから受信される、
前記第１のコンピュータ・システムを登録する、ここにおいて、前記登録することは、メモリに前記第１のコンピュータ・システムの識別情報を記憶することを備える、
前記ネットワーク上で第２のコンピュータ・システムからウェイクアップ・メッセージを受信する、ここにおいて、前記ウェイクアップ・メッセージは、前記第１のコンピュータ・システムを識別する情報および認証情報を備える、
前記ネットワーク上で前記第１のコンピュータ・システムに前記ウェイクアップ・メッセージを送信する、ここにおいて、前記ウェイクアップ・メッセージは、前記ＮＩＣに対して前記第１のコンピュータ・システムをウェイク・アップすることを示す、
ことがプロセッサによって実行可能である、コンピュータ読み取り可能な記憶媒体。
［Ｃ１０］
前記プログラム命令は、
前記ＮＩＣから前記登録メッセージを受信することに基づいて前記ＮＩＣから前記登録メッセージを受信した後、所定の期間の間、前記ＮＩＣとの接続を維持することがさらに実行可能であり、
前記プログラム命令は、前記第１のコンピュータ・システムを登録し、前記ウェイクアップ・メッセージを受信し、前記所定の期間内に前記ウェイクアップ・メッセージを送信することが実行可能である、Ｃ９に記載のコンピュータ読み取り可能な記憶媒体。
［Ｃ１１］
前記プログラム命令は、
前記登録メッセージを受信することに基づいて前記登録メッセージを受信した後、所定の期間の間、前記ＮＩＣとの接続を維持する、
前記ＮＩＣから新しい登録メッセージを定期的に受信する、ここにおいて、前記新しい登録メッセージは、前記ＮＩＣとの前記接続の終了前に受信される、
それぞれの新しい登録メッセージを受信することに基づいて、各それぞれの新しい登録メッセージを受信した後、さらなる所定の期間の間、前記ＮＩＣとの前記接続を維持することがさらに実行可能である、Ｃ９に記載のコンピュータ読み取り可能な記憶媒体。
［Ｃ１２］
前記登録メッセージは、前記第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報を備え、前記プログラム命令は、
前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を記憶することがさらに実行可能であり、
前記ウェイクアップ・メッセージにおける前記第１のコンピュータ・システムを識別する前記情報は、前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を備える、Ｃ９に記載のコンピュータ読み取り可能な記憶媒体。
［Ｃ１３］
前記認証情報は、事前共有キーを備え、前記事前共有キーは、前記第１のコンピュータ・システムおよび前記第２のコンピュータ・システムに知られている、Ｃ９に記載のコンピュータ読み取り可能な記憶媒体。
［Ｃ１４］
前記ネットワークは、広域ネットワークである、Ｃ９に記載のコンピュータ読み取り可能な記憶媒体。
［Ｃ１５］
前記登録メッセージは、前記第１のコンピュータ・システムの前記識別情報、ノンス、および暗号化アルゴリズムを備え、
前記登録することは、前記メモリに前記ノンスおよび前記暗号化アルゴリズムを記憶することをさらに備え、
前記プログラム命令は、
前記第２のコンピュータ・システムからクエリ要求を受信する、ここにおいて、前記クエリ要求は前記第１のコンピュータ・システムの前記識別情報を備える、
前記第２のコンピュータ・システムにクエリ応答を送信する、ここにおいて、前記クエリ応答は、前記第１のコンピュータ・システムの前記識別情報、前記ノンス、および前記暗号化アルゴリズムを備える、
ことがさらに実行可能であり、
前記ウェイクアップ・メッセージにおける前記認証情報は、前記ノンスを備え、ここにおいて、前記ノンスは、前記暗号化アルゴリズムに従って暗号化される、Ｃ９に記載のコンピュータ読み取り可能な記憶媒体。
［Ｃ１６］
前記プログラム命令は、
前記ウェイクアップ・メッセージにおける前記認証情報に基づいて前記ウェイクアップ・メッセージを認証することがさらに実行可能であり、
前記第１のコンピュータ・システムに前記ウェイクアップ・メッセージを送信することは、前記ウェイクアップ・メッセージにおける前記認証情報を成功裏に認証することに基づく、Ｃ９に記載のコンピュータ読み取り可能な記憶媒体。
［Ｃ１７］
コンピュータ・システムにおいて使用するために構成されたネットワーク・インタフェース・コントローラ（ＮＩＣ）であって、
ネットワーク上で通信するための第１のポートと、
ネットワーク上で前記コンピュータ・システムを安全にウェイクすることが容易にできるように構成されたロジックとを備え、前記ロジックは、前記コンピュータ・システムがスリープ・モード中であるときに、実行するように構成され、前記ロジックは、
前記ネットワークを経由して、サーバに登録メッセージを送り、
前記ネットワークを経由して、前記サーバからウェイクアップ・メッセージを受信し、ここにおいて、前記ウェイクアップ・メッセージは、認証情報を備え、
前記認証情報に基づいて前記ウェイクアップ・メッセージを認証し、
前記コンピュータ・システムをウェイクするように構成される、ＮＩＣ。
［Ｃ１８］
前記ロジックは、
前記登録メッセージを送信した後、所定の期間の間、前記サーバとの接続を維持するようにさらに構成され、
前記ロジックは、前記サーバとの前記接続の終了前に前記サーバから前記ウェイクアップ・メッセージを受信するように構成される、Ｃ１７に記載のＮＩＣ。
［Ｃ１９］
前記ロジックは、
前記登録メッセージを送信した後、所定の期間の間、前記サーバとの接続を維持する、
前記サーバとの前記接続の終了前に前記サーバに新しい登録メッセージを定期的に送信する、
それぞれの新しい登録メッセージを送信することに基づいて、各それぞれの新しい登録メッセージを送信した後、さらなる所定の期間の間、前記サーバとの前記接続を維持するようにさらに構成される、Ｃ１７に記載のＮＩＣ。
［Ｃ２０］
前記登録メッセージは、第１のコンピュータ・システムのユーザにより選択された人間が読み取り可能な識別情報を備え、
前記ウェイクアップ・メッセージは、前記第１のコンピュータ・システムの前記ユーザにより選択された人間が読み取り可能な識別情報を備える、Ｃ１７に記載のＮＩＣ。
［Ｃ２１］
前記認証情報は、事前共有キーを備え、前記事前共有キーは、前記第１のコンピュータ・システムおよび第２のコンピュータ・システムに知られており、前記ウェイクアップ・メッセージは、前記第２のコンピュータ・システムから生じる、Ｃ１７に記載のＮＩＣ。
［Ｃ２２］
前記ネットワークは、広域ネットワークである、Ｃ１７に記載のＮＩＣ。
【図１】
0005823627.tif 000002
【図２】
0005823627.tif 000003
【図３】
0005823627.tif 000004
【図４】
0005823627.tif 000005
【図５】
0005823627.tif 000006