(57)【要約】  コンポーネントや周辺機器などのデバイス、および、対応するコンピュータがバインドされるように適合され、その結果、そのデバイスは、バインドプロセス後にしか、そのコンピュータとともに動作しないようになる。デバイスとコンピュータとの間で暗号化されたメッセージを送信して、それらの関連付けを確認する。デバイスが、以前にバインドされたコンピュータとともに動作していることを確認できない場合、デバイスは、デバイス自身の機能動作を低減させ、そのコンピュータからのアンバインドまたは確認の成功のいずれかが生じるまで、デバイス自身を実質的に使用できない状態にする。動作、バインド、およびアンバインドの方法も開示されている。
2008532106.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに関連付けられたデバイスであって、
前記コンピュータと通信するためのポートと、
認証情報を記憶するためのメモリと、
前記ポートおよび前記メモリに接続され、前記ポートを介して前記コンピュータを認証するようにプログラムされたプロセッサと
を備え、
前記認証が失敗した後では、前記デバイスは、制限された機能モードで動作することを特徴とするデバイス。
【請求項２】
前記コンピュータは、関連するコンピュータのグループのうちの１つであり、前記関連するコンピュータのグループのうちの各々のコンピュータは、前記デバイスによる認証のために適合されていることを特徴とする請求項１に記載のデバイス。
【請求項３】
暗号化アルゴリズムをさらに備え、
前記プロセッサは、前記暗号化アルゴリズムを使用して、前記コンピュータを認証することを特徴とする請求項１に記載のデバイス。
【請求項４】
前記デバイスは、ディスプレイと、ディスプレイコントローラと、回転記憶デバイスと、回転記憶デバイスコントローラと、ソリッドステートメモリと、セキュリティデバイスと、キーボードと、ゲームコントローラと、マウスと、通信インターフェースと、カメラと、プリンタと、電話機とのうちの１つであることを特徴とする請求項１に記載のデバイス。
【請求項５】
乱数ジェネレータとタイマとのうちの一方をさらに備え、
前記プロセッサは、前記コンピュータの認証用の定期的な基準を決定する際に使用するために、前記乱数ジェネレータとタイマとのうちの一方を使用することを特徴とする請求項１に記載のデバイス。
【請求項６】
前記制限された機能モードは、前記認証が失敗したことを示す、ユーザに対する信号を含むことを特徴とする請求項１に記載のデバイス。
【請求項７】
前記デバイスは、トリガに応答して、前記コンピュータにバインドしようと試み、前記トリガは、特定のコマンドと、電力サイクルの回数と、使用限界とのうちの１つであることを特徴とする請求項１に記載のデバイス。
【請求項８】
前記デバイスは、制限された機能モードで動作している場合、前記コンピュータのブートサイクルを介して動作することを特徴とする請求項１に記載のデバイス。
【請求項９】
前記デバイスは、時間期間と電力サイクルの回数と使用限界とのうちの１つに到達した後に前記コンピュータに対するバインドに失敗した場合、前記制限された機能モードに入ることを特徴とする請求項８に記載のデバイス。
【請求項１０】
前記認証は、特定の時間間隔中と、ネットワーク接続が無効になった状態とのうちの一方で行われることを特徴とする請求項１に記載のデバイス。
【請求項１１】
前記デバイスは、前記コンピュータからの暗号化署名されたサービス管理リクエストに応答することを特徴とする請求項１に記載のデバイス。
【請求項１２】
通信接続されたデバイスとともに使用するために準備されたコンピュータであって、
前記デバイスが前記コンピュータにバインドされている場合、前記コンピュータの認証後にのみ、完全な機能動作用に適合される前記デバイスと、
前記コンピュータに関連付けられた識別子を記憶するためのメモリと、
前記デバイスと通信するためのポートと、
前記識別子および前記デバイスに接続されたプロセッサと
を備え、
前記プロセッサは、前記識別子を使用して、前記デバイスからのチャレンジに応答し、前記コンピュータを認証する適切なレスポンスが前記デバイスに返されることを特徴とするコンピュータ。
【請求項１３】
前記デバイスが、レスポンスを受信しない場合か、または不適切なレスポンスを受信した場合に、前記コンピュータは、前記デバイスからの信号に応答して、メッセージを表示することを特徴とする請求項１２に記載のコンピュータ。
【請求項１４】
前記デバイスは、取り外し可能なメモリと、取り外し不可能なメモリと、ディスプレイデバイスと、入力デバイスと、出力デバイスと、ポインティングデバイスと、記憶デバイスと、セキュリティデバイスと、通信デバイスとのうちの１つであることを特徴とする請求項１２に記載のコンピュータ。
【請求項１５】
前記プロセッサは、前記デバイスに対して前記コンピュータを認証するために、前記デバイスと暗号化法についてネゴシエートすることを特徴とする請求項１２に記載のコンピュータ。
【請求項１６】
バインドされたデバイスとともに使用するのに適合したコンピュータを動作させる方法であって、
前記コンピュータを認証するために、前記バインドされたデバイスをトリガすることと、
前記デバイスに署名されたメッセージを提供することと、
前記署名されたメッセージの真偽を判定することと、
前記署名されたメッセージの真偽を前記判定した結果、偽であった場合、前記デバイスの機能を制限することと
を備えることを特徴とする方法。
【請求項１７】
前記署名されたメッセージの真偽を前記判定する前に、前記デバイスの機能を制限すること
をさらに備えることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記デバイスから前記コンピュータにチャレンジを送信することをさらに備え、
前記チャレンジは、擬似乱数と、前記デバイスに関連付けられた識別子とのうちの１つを含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
サービス管理リクエストに応答して、前記デバイスの機能を調整することをさらに備え、
前記サービス管理リクエストは、ボリューム／速度要件および認証要件を満たすことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記コンピュータを認証するために、前記バインドされたデバイスを前記トリガすることは、
電力サイクルと時間期間と使用ボリュームとランダムイベントとのうちの１つに応答して、前記コンピュータを認証するために、前記バインドされたデバイスをトリガすること
をさらに含むことを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
ペイ・アズ・ユー・ゴー（pay-as-you-go）・ビジネスモデルまたはペイ・パー・ユース（pay-per-use）・ビジネスモデルが、携帯電話から営利的なコインランドリに至る多くの商業分野において使用されてきている。ペイ・アズ・ユー・ゴー・ビジネスが発展するにあたって、例えば携帯電話プロバイダといったプロバイダは、加入者がそのプロバイダのネットワークに留まることを条件として、市場コストよりも低いコストで、ハードウェア（携帯電話機）の使用を提供している。この特定の例では、顧客は、所与の期間の間、加入者となる契約にサインすることを条件として、わずかな価格または無料で携帯電話機を受け取る。サービスプロバイダは、契約期間中、消費者による携帯電話機の使用に対して請求することによって、ハードウェアのコストを回収する。
【０００２】
ペイ・アズ・ユー・ゴー・ビジネスモデルは、ハードウェアがサービスプロバイダから接続が断たれた場合、提供された携帯電話機がほとんど、もしくはまったく価値を持たない、あるいは、ほとんど、もしくはまったく使用されないというコンセプトを前提としている。例示するため、上述した加入者が請求を支払わなくなると、サービスプロバイダは、その加入者のアカウントを無効にし、携帯電話機の電源が入っていても、サービスプロバイダが許可しないので、電話をかけることができない。無効化された携帯電話機はどこにあっても動作せず、構成部品群も末端価格ほど有さないため、無効化された携帯電話機は、「回収（salvage）」価値を持たない。アカウントが認められるようになると、サービスプロバイダは、その携帯電話機を使用して電話をかけることを再び許可する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
低価格のハードウェアを提供することによる財務リスクを負うサービスプロバイダまたは他の事業体が、そのハードウェアの使用を厳重に管理し、かつ、そのデバイスがほとんど回収価値を持たない場合には、このモデルはうまく機能する。ハードウェアがサービスプロバイダの管理範囲外で多く使用される場合には、このビジネスモデルはうまく機能しない。パーソナルコンピュータは、元々の意図を越えて多大に使用されることがあり、かつ、例えばディスプレイやディスクドライブといったパーソナルコンピュータのコンポーネント群は、大きな回収価値を持つことがあるので、したがって、典型的なパーソナルコンピュータは、こうした基準を満たさない。
【課題を解決するための手段】
【０００４】
ペイ・アズ・ユー・ゴー・コンピュータまたはその他のハードウェアが低価格で提供される場合、例えばモニタやディスクドライブといった、取り外し可能なコンポーネント、周辺機器、またはその他のデバイスは、引受業者（underwriter）やサービスプロバイダにとってリスクとなる。そのようなデバイスは、システムから取り外すことができ、ユーザが、それらのデバイスを販売し利益を得ることによって、引受業者やサービスプロバイダの損失をもたらす結果となる。デバイスが意図されたコンピュータとともにでしか動作しないように、スマートデバイスおよび対応する基本コンピュータシステム（base computer system）は、デバイスとコンピュータとをバインドすることが可能となる。製造、インストール、およびテストのための「猶予期間（grace period）」が、バインドを要求する前に与えられる。猶予期間後、デバイスがコンピュータにバインドされない場合、そのデバイスは、すべての機能を動作させることができない。デバイスによるコンピュータの定期的な認証によって、デバイスが依然として意図されたコンピュータにインストールされていることを確実にする。署名されたメッセージを使用することにより、アンバインド、すなわち、デバイスとコンピュータとの関連付けを除去することが実現される。そのようにバインドされたデバイスは、コンピュータと通信することができ、一実施形態においては、暗号化機能とセキュアメモリとを有することができる。
【０００５】
コンピュータおよびデバイスは、１つのデバイスと１つのコンピュータとの単純な関連付けを越えた関連付けをもって、バインドすることができる。すなわち、いくつかのコンピュータは、２つ以上のデバイスによる認証のために構成することができ、反対に、いくつかのデバイスは、２つ以上のコンピュータから認証メッセージを受信するように構成することができる。これにより、複数のシステムを購入することがより容易となり、また、これにより、いくつかのコンポーネントを予め定められたコンピュータのセットの間で移動させることができるようにすることによって、そのようなシステムの関連する維持および管理に役立てられる。ペイ・パー・ユース・ビジネスモデルは、企業または他のワークグループにまで及んでいるが、コンピュータへのコンポーネントのバインドは、購入されたユニットに対しても効果を有することができる。コンピュータへのコンポーネントのバインドは、個別に、または、まとめて窃盗することと、一部のシステムを使用できなくすることはできなくとも、正常に機能させなくし得る他の「コンポーネント交換（component swapping）」と、を防止することができる。
【発明を実施するための最良の形態】
【０００６】
以下のテキストは、複数の様々な実施形態の詳細について説明しているが、本説明の法的範囲は、特許請求の範囲の記載によって定義されることを理解されたい。この詳細な説明は、単に例示的なものとして解釈されるべきであり、可能なすべての実施形態について記述しているものではない。なぜならば、可能なすべての実施形態について記述することは、不可能ではないとしても、非現実的であるからである。既存の技術または本願の出願日後に開発された技術を用いることによって、多数の代替実施形態を具現化できるであろう。それらの代替実施形態もまた、特許請求の範囲に属するものである。
【０００７】
ある用語が、“本明細書で使用される用語「＿＿＿＿」は、「．．．．」を意味するものとして、本明細書では定義される”という文、または同様の文を用いて、本願において明示的に定義されない限り、その用語は、明示的なものを意味するものでも暗示的なものを意味するものでもなく、その用語の平明な意味、または通常の意味を越えたものであり、その用語の意味を限定する意図はないことも理解されたい。また、そのような用語は、（特許請求の範囲の言葉以外の、）本明細書の任意のセクションに記載された任意の文に基づいて、範囲が限定されるものと解釈すべきではない。本願では、読者を混乱させないよう簡潔にする目的で記載された単一の意味と矛盾しない限りにおいて、特許請求の範囲に記載されたすべての用語は広がりを有するものである。このような特許請求の範囲に記載された用語は、暗示によっても、そうでなくとも、その単一の意味に限定されるべきものと意図するものではない。最後に、請求項に記載の構成要素が、「意味する」という用語、および全く構造の記載のない機能を記載することによって定義されない限り、請求項におけるいずれの構成要素の範囲も、３５ＵＳＣ第１１２条第６項の適用に基づいて解釈されるべきものと意図するものではない。
【０００８】
本発明の多数の機能および本発明の多数の原理は、ソフトウェアプログラムまたはソフトウェア命令、および、特定用途向け集積回路（ＩＣ）などのＩＣを用いて最良に実装することができる。このようなソフトウェアプログラム、ソフトウェア命令、およびＩＣを作成するのに、多大な努力を要すると思われるかもしれないし、また、例えば利用可能な時間、既存の技術、および経済的懸念を動機として多数の設計選択（design choice）があると思われるかもしれないが、当業者であれば、本明細書で開示するコンセプトおよび原理をガイドとして使用すれば、最小限の実験により上記のソフトウェアプログラム、ソフトウェア命令、およびＩＣを容易に作成することができると予想される。したがって、簡潔にする目的上、かつ、本発明にしたがう原理およびコンセプトを分かりにくくするリスクを最小限に抑えるために、上記のソフトウェアおよびＩＣのさらなる説明があったとしても、そのさらなる説明については、好適な実施形態における原理およびコンセプトに関する本質的要素に限定することにする。
【０００９】
従来技術による高価値なコンピュータ、携帯情報端末、オーガナイザなどの多くは、現行のプリ・ペイ（pre-pay）・ビジネスモデルまたはペイ・フォー・ユース（pay-for-use）・ビジネスモデルにおいて使用するのに適していない。上述したように、そのような機器は、サービスプロバイダを必要とすることは別として、高価値を有することができる。例えば、パーソナルコンピュータは、コンポーネントに分解することができ、コンポーネントとして販売することができる。これは、低価格な機器の引受業者にとっては、非常に深刻な損失となり得る。インターネットサービスプロバイダが、将来の料金を予想して、パーソナルコンピュータのコストの支払いを引き受けた場合、この「束縛のない価値（untethered value）」により、不正な買い取りや窃盗の機会が生じてしまう。ユーザが低価格で高価値なコンピューティングシステム環境を使用するのに先立って支払いを行うプリ・ペイ・ビジネスモデルには、不正行為や窃盗といった同様のリスクを伴う。
【００１０】
図１は、ダイナミックソフトウェアプロビジョニングシステム（dynamic software provisioning system）を実装するのに使用することができるネットワーク１０を示している。ネットワーク１０は、インターネット、仮想プライベートネットワーク（ＶＰＮ）、あるいは、１つまたは複数のコンピュータ、通信デバイス、データベースなどが互いに通信接続することを可能にするその他の任意のネットワークとすることができる。ネットワーク１０は、イーサネット（登録商標）１６とルータ１８と有線通信線２０とを介して、パーソナルコンピュータ１２およびコンピュータターミナル１４に接続することができる。他方、ネットワーク１０は、無線通信局２６と無線リンク２８とを介して、無線により、ラップトップコンピュータ２２および携帯情報端末２４に接続することができる。同様に、サーバ３０は、通信リンク３２を使用してネットワーク１０に接続することができ、メインフレーム３４は、別の通信リンク３６を使用してネットワーク１０に接続することができる。
【００１１】
図２は、ネットワーク１０に接続することができ、かつ、ダイナミックソフトウェアプロビジョニングシステムにおける１つまたは複数のコンポーネントを実装するのに使用することができるコンピュータ１１０の形態をとるコンピューティングデバイスを示している。コンピュータ１１０のコンポーネントには、処理ユニット１２０と、システムメモリ１３０と、システムメモリなどの様々なシステムコンポーネントを処理ユニット１２０に接続するシステムバス１２１とを含めることができるが、これらに限定されるものではない。システムバス１２１は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスなど、いくつかのタイプのバス構造のいずれかとすることができる。例えば、このようなアーキテクチャには、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカルバス、および、メザニンバスとしても知られているＰＣＩ（Peripheral Component Interconnect）バスが含まれるが、これらに限定されるものではない。
【００１２】
コンピュータ１１０には、暗号化サービス１２５も含めることができる。このようなサービスには、対称暗号化アルゴリズムおよび非対称暗号化アルゴリズムの両方と、キー生成と、乱数生成と、セキュアストレージとを含めることができる。暗号化サービスは、例えば、シーメンス（登録商標）やＳＴマイクロエレクトロニクス（登録商標）によって提供されるスマートチップなどの一般に利用可能な集積回路により提供することができる。
【００１３】
コンピュータ１１０は通常、様々なコンピュータ読み取り可能な媒体を備える。コンピュータ読み取り可能な媒体は、コンピュータ１１０がアクセスできる任意の利用可能な媒体とすることができ、コンピュータ読み取り可能な媒体には、揮発性媒体および不揮発性媒体、取り外し可能な媒体および取り外し不可能な媒体の両方が含まれる。例えば、コンピュータ読み取り可能な媒体には、コンピュータ記憶媒体および通信媒体を含めることができるが、これらに限定されるものではない。コンピュータ記憶媒体には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術を用いて実装された、揮発性媒体および不揮発性媒体、取り外し可能な媒体および取り外し不可能な媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：Digital Versatile Disk）、もしくはその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくはその他の磁気記憶デバイスが含まれ、または、所望の情報を記憶するのに使用できコンピュータ１１０がアクセスできるその他の任意の媒体が含まれるが、これらに限定されるものではない。通信媒体は通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他の搬送機構などの被変調データ信号に組み入れるものであり、通信媒体には、任意の情報伝達媒体が含まれる。「被変調データ信号」という用語は、信号内の情報が符号化される形で１つまたは複数の特性が設定または変更される信号を意味する。例えば、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体とが含まれる。これらの任意の組合せも、コンピュータ読み取り可能な媒体の範囲に含まれるべきである。
【００１４】
システムメモリ１３０には、読み取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性メモリおよび／または不揮発性メモリの形態をとるコンピュータ記憶媒体が含まれる。ＲＯＭ１３１には通常、起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（Basic Input/Output System）１３３が記憶されている。ＲＡＭ１３２には通常、処理ユニット１２０がすぐにアクセスすることができ、かつ／または、処理ユニット１２０が現在処理している、データおよび／またはプログラムモジュールが含まれる。例えば、図２には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７が示されているが、これらに限定されるものではない。
【００１５】
コンピュータ１１０は、その他の取り外し可能／取り外し不可能な揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。一例として、図２には、取り外し不可能な不揮発性磁気媒体に対して読み書きするハードディスクドライブ１４１と、取り外し可能な不揮発性磁気ディスク１５２に対して読み書きする磁気ディスクドライブ１５１と、ＣＤ  ＲＯＭやその他の光媒体などの取り外し可能な不揮発性光ディスク１５６に対して読み書きする光ディスクドライブ１５５が示されている。この例示的な動作環境において使用できるその他の取り外し可能／取り外し不可能な揮発性／不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ１４１は通常、インターフェース１４０などの取り外し不可能なメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェース１５０などの取り外し可能なメモリインターフェースを介してシステムバス１２１に接続される。
【００１６】
図２に示して上述したドライブ群、およびそれらに関連するコンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、およびその他のデータの記憶領域をコンピュータ１１０に提供する。例えば図２には、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同一とすることもできるし、または、異なるものとすることもできることに留意されたい。図２では、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が少なくとも異なるコピーであることを示すために、それらには異なる番号を付している。ユーザは、キーボード１６２、および、通常マウス、トラックボール、タッチパッドなどを指すポインティングデバイス１６１などの入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよびその他の入力デバイスは、システムバスに接続されたユーザ入力インターフェース１６０を介して、処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など、その他のインターフェースおよびバス構造を介して接続されてもよい。モニタ１９１または他のタイプのディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介して、システムバス１２１に接続される。コンピュータは、モニタに加えて、スピーカ１９７やプリンタ１９６など、その他の周辺出力デバイスも備えることができ、これらは、出力周辺インターフェース１９５を介して接続することができる。
【００１７】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、図２には、メモリ記憶デバイス１８１しか示されていないが、通常は、コンピュータ１１０に関して上述した要素の多くまたはすべてを備える。図２に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３が含まれるが、その他のネットワークも含めることができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットにおいては一般的である。
【００１８】
ＬＡＮネットワーキング環境において使用される場合、コンピュータ１１０は、ネットワークインターフェースまたはネットワークアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境において使用される場合、コンピュータ１１０は通常、インターネットなどのＷＡＮ１７３を介した通信を確立するためのモデム１７２またはその他の手段を備える。モデム１７２は、内蔵型でも外付け型でもよく、ユーザ入力インターフェース１６０、またはその他の適切な機構を介して、システムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０と関連させて示したプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに記憶することができる。例えば、図２には、リモートアプリケーションプログラム１８５がメモリデバイス１８１に存在するものとして示されているが、これに限定されるものではない。図示したネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立するための他の手段も使用できることを理解されたい。
【００１９】
図３を参照しながら、コンピュータ１１０に関連付けることができるデバイス２００について説明する。デバイス２００は、コンピュータから取り外すことができる任意のデバイスとすることもできるし、または、全体としては、コンピュータとは異なる価値を有する任意のデバイスとすることもできる。例えば、このデバイスは、ディスプレイまたはディスプレイコントローラ、回転記憶デバイス（rotating storage device）、回転記憶デバイスコントローラ、ソリッドステートメモリ、ファイアウォールなどのセキュリティデバイス、キーボード、ゲームコントローラ、マウス、通信インターフェース、カメラ、プリンタ、電話機、または、コンピュータ１１０などのコンピュータ間で通常移動させることができるその他のデバイスとすることができる。
【００２０】
このデバイスは通常、プロセッサ２０２と、メモリ２０４と、内部のデバイスを接続する１つまたは複数のデータバス２０６と、コンピュータ１１０と通信するためのポート２０８と、このデバイスの実際の機能と関連付けられた機能回路２１０（例えば、ディスクコントローラ回路）と、図２のハードディスクドライブにおけるヘッドやプラッタなど（図示せず）とを有することができる。プロセッサ２０２は、シングルチップコントローラとすることができ、この場合、メモリ２０２、ポート２０８、および機能回路２１０は一体型（self-contained）としてもよいし、別個のものとしてもよいし、組み合わせてもよい。メモリ２０４は、揮発性メモリ２１２および不揮発性メモリ２１４の両方を有することができ、これらの両方には、保護されたメモリ２１６、すなわち、セキュアメモリ２１６を含めることができる。すなわち、このメモリ２１６は、先立って暗号化認証が行われない場合、書き込むことができず、場合によっては、読み取ることもできない。一実施形態において、プロセッサ２０２において実行されているコードのみが、メモリ２０４にアクセスすることができる。したがって、メモリ２０４は隔離され、外部からの攻撃がより困難となる。デバイス２００のコンポーネント群は、既知の入手可能なものであり、例えば、プロセッサは、シングルチップコントローラとしてもよいし、小さなコードセットおよび状態変更を実行するマイクロコントローラであってもよい。セキュアメモリは、スマートカード内で用いることができるようなスマートチップを用いて実装することができる。デバイス２００には、任意的に、ハッシング（hashing）、キー生成、および、例えば、ＡＥＳ（Advanced Encryption Standard）とＲＳＡ（登録商標）とをそれぞれとする対称暗号化機能と非対称暗号化機能とのうちの少なくとも一方を実行するための暗号化エンジン２１８を含めることもできる。暗号化エンジンが存在しない場合、必要な暗号化機能は、ソフトウェアにより実装することができ、プロセッサ２０２によって実行することができる。
【００２１】
デバイス２００は、初期化されると、初期インストール（initial installation）とテストとを可能にするために、短時間の間に完全な機能を行うことができる。完全な機能を行う時間を拡大させると、詳細な構成（retail configuration）と、デモンストレーションとが可能となる。しかしながら、何らかの時点にて、デバイス２００は、適切な機能または完全な機能動作を継続するために、コンピュータ１１０などのコンピュータにバインドされるよう要求する場合がある。このバインドプロセスは、デバイス２００が、バインドされることになるコンピュータ１１０と情報を交換することを含む。このバインドプロセスについては、以下で詳述する。
【００２２】
また、デバイスに応じて、デバイスは、コンピュータが起動し、リセットし、そして、ブートすることを可能にするのに、十分に有効である場合がある。次いで、バインドのテストが失敗した場合、デバイスは、それほど有効でない状態に移る。このそれほど有効でない状態は、業務ポリシおよびデバイスに応じて、完全に無効になる場合もあるし、半分ほど有効である（semi-functional）場合もある。完全に無効になる状態のレベルでは、バインドのテストを繰り返し行うことを認めてもよいし、コンピュータ１１０および／またはデバイス２００をバインドのテスト前の初期状態に戻すよう再起動することを要求してもよい。
【００２３】
１対１の関連付けを越えて、バインドの範囲を拡張することが望ましい場合がある。例えば、企業またはワークグループでは、複数のコンピュータのうちのいずれにおいても、ディスプレイを使用できるようにすることが有効な場合がある。これによって、その企業またはワークグループ内のコンピュータシステムを保守する際のオーバヘッドが低減する。場合によっては、単一のバインドおよび、グループによるバインド（group binding）を可能にするために、バインドの関連付けを混成する（mix）ことが意味をなす場合がある。例えば、ディスクドライブは、単一のコンピュータにバインドできるのに対して、ディスプレイおよび外付け型のドライブは、グループにバインドすることができる。
【００２４】
いずれの形態のセキュリティも、弱点またはセキュリティホールを有することが分かる。このセキュリティ手段の設計目標は、他の多数のセキュリティ手段と同様に、保護されるデバイスのコストよりも、攻撃のコストの方がかかるようにすることである（例えば、回路基盤のハードウェア再構築）。これにより、攻撃全体を防止することができ、デバイス２００、および、関連するコンピュータ１１０に対する広範囲に及ぶ攻撃に制限をかける可能性がより高くなる。
【００２５】
図４を参照しながら、コンピュータにバインダされたデバイスを構成して動作させる例示的な方法について説明する。上述したように、デバイス２００など、このように適切に動作するデバイスが多数存在する。ブロック３００で、電力アップ、スタンバイからオンへといった電力状態が変化した後やリセット後などに、デバイス２００が起動する。ブロック３０１において、デバイス２００は、デバイス２００自身がすでにロックされている（locked）か否か、すなわち、制限された機能モードにあるか否かを判定することができる。デバイスがすでにロックされていた場合、この方法は、ｙｅｓ分岐に進み、図５にさらに示されるブロック３０２に進む。デバイスがロックされていない場合、ｎｏ分岐に進み、ブロック３０３において、デバイス２００は、デフォルトモードに入る。デバイス２００は、デフォルトでは、完全な機能を行うことができるが、認証サイクル（authentication cycle）を失敗した後には制限された機能モードに入るか、または、デバイス２００は、デフォルトでは、制限された機能しか行えないが、認証サイクルを通過した後には完全な機能モードに入る。デフォルトの状態は、製造業者または許可された管理者によって設定することができる。ブロック３０４において、デバイス２００は、デバイス２００自身がコンピュータ１１０にすでにバインドされているか否かを判定することができる。バインドされていなかった場合、図５に示されるように、ブロック３１８において、デバイス２００は、デバイス２００自身をコンピュータ１１０にバインドしようと試みる。バインドされていた場合、ブロック３０４からｙｅｓ分岐に進み、ブロック３０８において、テストループがトリガされる。ブロック３０８において、テストループは、使用ボリューム、時間期間（time period）、リセットまたは電力サイクルイベントや、乱数または擬似乱数イベントなどの直近のシステムイベントによってトリガすることができる。後者の２つは、クロックベースであってもよいし、テスト中に適切な期間を生成する乱数ジェネレータを使用してもよい。一実施形態において、ある認証サイクルと次の認証サイクルとの間の期間は、５分以上１０分以下の値とすることができる。制限された機能モードにおいて利用可能な特定の機能は、実際のデバイスに応じて変わり得る。例えば、ディスクドライブは、ディスクドライブ自身の通信速度の何分の１かで動作することしかできないし、グラフィックスコントローラは、低解像度モードで動作することしかできない。トリガ機構３０８を用いて、認証プロセスを開始することができる。テストループ中、ブロック３０９において、デバイスは、保留中のサービス管理リクエスト（pending service administration request）に応答することができる。サービス管理リクエストは、アンバインドするリクエスト、すなわち、コンピュータ１１０から分離するリクエストであってもよいし、例えば、制限された機能状態からのロック解除やバインド基準の再設定といったその他のリクエストを含んでもよい。デバイス２００は、テストループまたはその他の認証トランザクションの終了を要する前に、提供されるサービス管理リクエストの回数に制限をかけることができる。サービス管理リクエストに制限をかけることにより、常にこのポイントにて処理を迂回させることによってテストループの終了を阻止しようと試みる攻撃に対して制限をかけることができる。サービス管理リクエストについては、図６を参照して、さらに説明する。
【００２６】
サービス管理リクエストが保留されていなかった場合、ブロック３０９からｎｏ分岐に進む。ブロック３１０において、デバイス２００は、コンピュータ１１０を認証することができる。認証３１０には、セキュリティ業界では良く知られた、暗号化チャレンジおよび暗号化レスポンス（cryptographic challenge and response）を含めることができる。チャレンジ／レスポンスには、デバイス２００が乱数を提供することと、コンピュータ１１０がその乱数に署名して、その署名された乱数をデバイス２００に戻すこととを含めることができる。レスポンスには、任意的に、コンピュータ識別子を含めることができ、それによって、デバイス２００は、有効な署名とともにコンピュータ１１０を確認することができる。暗号化機構は、バインドする時点で選択することができる。この暗号化機構については、図５を参照して、より詳細に説明する。デバイスは、非常に短い期間内にレスポンスを要求して、コンピュータ１１０が、インターネットまたは、署名するのに適切なホストのためのその他のネットワークを検索することを防止することができる。すなわち、第１のコンピュータにバインドされていたデバイス２００が、第２のコンピュータに移された場合、第２のコンピュータは、認証リクエストを第１のコンピュータに転送できるべきではない。代替として、デバイス２００は、認証３１０の間、外部通信（external communications）を無効にすることを要求することができる。デバイス２００が通信コントローラである場合、これはより容易に実現することができる。特定の時間間隔の間にレスポンスを要求することによって、リクエストリダイレクション（request redirection）の有効性に制限をかけることができるだけでなく、認証プロセスを妨害しようとする試みにおいて、コンピュータが単に認証リクエストに応答しない場合の攻撃を防止するのにも役立つことが可能になる。
【００２７】
認証が成功すると、デバイス２００は、ブロック３１２において、デバイス２００自身を完全な機能動作に設定することができ、この方法は、トリガ段階３０８に戻って、別の認証サイクルを待ち受ける。認証３１０を定期的に繰り返して、初期認証後にデバイスが別のシステムに移される（すなわち、デバイスに電力が提供される）のを防止することができる。
【００２８】
認証３１０が失敗した場合、または、コンピュータ１１０がバインドをサポートしない場合、ブロック３１０からｎｏ分岐に進み、デバイス２００は、ブロック３１１において、制限された機能動作に設定または再設定され、ブロック３１６において、エラーメッセージが表示される。複数回の試行を失敗した後に、デバイス２００が最終的に動作全体を止めるという設計選択もある。ブロック３０４において、デバイスがまだバインドされていない場合は、ｎｏ分岐に進み、デバイス２００は、デバイス２００自身を現在のコンピュータにバインドしようと試みることができる（図５参照）。代替として、例えば、インストールプロセス中に技術者によって特定のコマンドが送信された場合には、その特定のコマンドに応答して、デバイス２００は、デバイス２００自身をコンピュータ１１０にバインドしようと試みることができる。
【００２９】
図５は、コンピュータ１１０にデバイス２００をバインドする方法を示している。ブロック４０１において、コンピュータ１１０は、ブロック３０４からブロック３１８へのｎｏ分岐に続いて、バインド試行を開始することができる。まずブロック４０２において、デバイス２００は、コンピュータ１１０（例えば、コンピュータ１１０において実行されているモニタリングプログラムなど）にメッセージを送信することによって、コンピュータがバインドをサポートするか否かを判定することができる。コンピュータ１１０がバインドをサポートする場合、コンピュータ１１０およびデバイス２００は、その方法、すなわち、より詳細には、後続の認証のために使用される暗号化アルゴリズムについてネゴシエートする（negotiate）ことができる。例えば、コンピュータ１１０およびデバイス２００は、共有秘密キーおよび対称暗号化アルゴリズムを使用することに同意することができる。別の実施形態では、公開キー暗号法を用いて、デバイス２００とコンピュータ１１０との間で、署名された認証されたメッセージを交換することができる。この別の実施形態では、ユーザ認証機関およびルート認証機関を利用して、信頼関係を確立することができる。いくつかの実施形態では、コンピュータ１１０は、何らかの暗号化機能を有するデバイス、および／または、セキュリティの必要性を変更するデバイス（すなわち、ディスクドライブはマウスよりも高機能な方法を使用することができる）に対応するよう、様々なアルゴリズムおよびプロセスをサポートすることができる。
【００３０】
アルゴリズムが確立されると、ブロック４０６において、コンピュータ１１０およびデバイス２００は、後続の認証において使用するためのデータを交換することができる。例えば、コンピュータ１１０およびデバイス２００は、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎキー交換を用いて、ＡＥＳアルゴリズムとともに使用される共有秘密キーを生成することができる。上述したように、認証プロセスにおいて、公開キー技術を利用することもできる。コンピュータ１１０とデバイス２００との間にセキュアチャネルを確立して、さらにバインドプロセスのセキュリティを確保することができる。当業界において、セキュアチャネルおよび信頼関係は周知であるので、本明細書では詳細には説明しない。ブロック４０８において、バインドが成功した場合、このプロセスは、ブロック４１０のリターンに進み、例えば図４のブロック３０２などの、メインルーチンに移ることができる。
【００３１】
ブロック４０２において、コンピュータがバインドをサポートしない場合、ｎｏ分岐を進んでブロック４１２に進み、デバイス２００がコンピュータ１１０において使用するのに適合しないことを示すメッセージが表示される。場合によっては、このメッセージは、例えば、ＬＥＤ（Light Emitting Diode、図示せず）といったデバイス上のライトの形態をとってもよい。この方法は、ブロック４１４に進む。バインドが成功しなかった場合、同様に、このプロセスは、ｎｏ分岐を進んで、ブロック４０８からブロック４１２に進み、エントリポイント（entry point）を示すメッセージを表示することができる。ブロック４１４において、デバイス２００は、デバイス２００の完全な機能動作が許可されるべきか否かを判定するために使用される基準を更新することができる。上述したように、完全な機能を要求する理由は、販売、インストール、およびテストを可能にすることにある。特定のデバイスおよび業務の考慮事項に応じて、基準は、試みた使用の回数、電力がオンの期間、データ量、データ書き込みサイクルの回数などとすることができる。単純な例では、デバイス２００は、バインドするのに１００回試みることができ、基準更新ブロック４１４を通過するたびに、カウントが１ずつ減らされる。ブロック４１６において、バインドしなくとも、完全な機能または通常の機能を行える基準が存在するならば、ブロック４１６のｎｏ分岐からブロック４１０に進み、呼び出し元ルーチンに戻る。いくつかの実施形態では、デバイス２００はまず、ブロック４１０においてリターンする前に、完全な機能または通常の機能用にデバイス２００自身を設定または再設定することができる。別の実施形態では、リターン４１０には、バインド状況、成功したリクエスト、および残りのバインド試行回数に関する情報を含めることができる。
【００３２】
完全な機能または通常の機能に関する基準により、バインドされていなければ、さらなる機能が許可されるべきではないと示された場合、ブロック４１６からｙｅｓ分岐に進み、ブロック４２１において、デバイスがロックされることを示すフラグが設定され、ブロック４２２において、対応するエラーメッセージが表示される。図４のブロック３０２からの動作がブロック４２２に進んだ場合、同様に、適切なエラーメッセージを表示することができ、ブロック４２３において、デバイスはロックされた状態になる。ブロック４２４において、この方法は、デバイスがさらなる機能動作の前にサービスを必要とする状態で終了する。制限された機能動作は、ロックされた状態と同一としてもよいし、異なるものとしてもよいことに留意されたい。すなわち、ロックされた状態では、デバイス２００がサービスを必要とする、完全に無効な状態にすることができるが、制限された機能動作では、デバイス２００が何らかの方法で動作できるようにしてもよい。この選択は、業務条件によって決定されるだけでなく、失敗したバインドまたは失敗した認証に対する拡大したレスポンス（escalating response）の一部としてもよい。ロックされたデバイスの後続する復旧には、サービス管理リクエストの成功受信（success receipt）を必要とする。その結果、この方法は図６に続く。
【００３３】
図６は、コンピュータ１１０からデバイス２００をアンバインドする方法を示すフローチャートである。図４に示した方法において、例えば、ブロック３１４へと続く図４のブロック３０９にて、サービス管理リクエストメッセージが受信され得る。このサービス管理リクエストには、コンピュータ１１０からデバイス２００をアンバインドするリクエスト、無効にされた、または制限された機能モードにあるデバイス２００のロックを解除するリクエスト、バインド試行を調整／再設定するリクエストなどが含まれ得る。ブロック５０１にて開始し、ブロック５０２においてリクエストが受信される。ブロック５０４において、デバイス２００は、おそらくはコンピュータ１１０であるが、場合によっては、サービスプロバイダのウェブサイトといった別のエンティティ（図示せず）であるリクエスト元エンティティにチャレンジを送信することができる。対称暗号法または非対称暗号法のいずれを用いても、チャレンジ（場合によっては、ノンス（nonce）または乱数、一意な識別子、および／または、シーケンス番号）を使用して、リプレイ攻撃を防止することができる。次いで、ブロック５０６において、デバイス２００は、コンピュータ１１０またはその他のエンティティから、署名されたメッセージおよび／または認証されたメッセージを受信することができる。代替実施形態では、ブロック５０２において、リクエストは、信頼できるソースからの署名されたメッセージとすることができ、デバイス２００は、チャレンジ−レスポンスを必要とすることなく、署名されたメッセージを認証するための十分な暗号化機能を有することができる。ブロック５０８において、デバイス２００はメッセージを確認することができる。この確認ステップは、当該技術分野では周知であり、この確認ステップには、例えば次のようにすることによる作者の認証を含めることができる。すなわち、デジタル署名を使用すること；例示的な一実施形態においては、ハッシュおよび署名を使用して、メッセージの整合性をチェックすること；乱数やシーケンス番号といった一意なチャレンジを検証すること；または同様の方法を用いること、である。メッセージが確認されると、ブロック５０８からｙｅｓ分岐に進み、ブロック５１０において、リクエストされたアクションを実行することができる。次いで、ブロック５１２において、デバイス２００は、デバイス２００がアンバインドされた後や基準再設定リクエスト（criteria reset request）の後などの、バインドされていない場合に、デバイス２００自身が完全な機能を有して動作することが許可されるべきか否かを判定する基準を再設定することができる。この方法はブロック５１４に戻り、例えば、図４のブロック３００に進む。
【００３４】
ブロック５０８において、メッセージを確認できなかった場合、ｎｏ分岐に進む。ブロック５１６において、リクエスト元および／またはユーザに、無効なサービス管理リクエストが受信されたことを通知することができる。代替実施形態では、ハッカにさらなる状況情報を提供することを回避するために、レスポンスがなされない。失敗したリクエストは、ボリューム解析および速度解析のために記録が取られ、このルーチンは、ブロック５１４に戻り、上述したように、呼び出し元ポイント、例えば図４のブロック３００に進む。ボリュームすなわちサービス管理リクエストの数、および、レートリクエスト（rate request）が受信される速度を使用して、サービス妨害攻撃や同様の攻撃が進行中であるか否かを判定することができる。ボリューム／速度要件または認証要件を満たさないサービス管理リクエストは無視することができ、デバイスはそのときの状態を維持することができる。
【図面の簡単な説明】
【００３５】
【図１】簡略化したコンピュータネットワークを示すブロック図である。
【図２】図１のコンピュータネットワークに接続することができるコンピュータを示すブロック図である。
【図３】図２のコンピュータに関連付けられたデバイスを示すブロック図である。
【図４】バインドされたデバイスを有するコンピュータを動作させる方法を示すフローチャートである。
【図５】コンピュータにデバイスをバインドする方法を示すフローチャートである。
【図６】コンピュータからデバイスをアンバインドする方法を示すフローチャートである。
【図１】
2008532106.tif 000003
【図２】
2008532106.tif 000004
【図３】
2008532106.tif 000005
【図４】
2008532106.tif 000006
【図５】
2008532106.tif 000007
【図６】
2008532106.tif 000008