説明

コンピュータへのデバイスのバインド

コンポーネントや周辺機器などのデバイス、および、対応するコンピュータがバインドされるように適合され、その結果、そのデバイスは、バインドプロセス後にしか、そのコンピュータとともに動作しないようになる。デバイスとコンピュータとの間で暗号化されたメッセージを送信して、それらの関連付けを確認する。デバイスが、以前にバインドされたコンピュータとともに動作していることを確認できない場合、デバイスは、デバイス自身の機能動作を低減させ、そのコンピュータからのアンバインドまたは確認の成功のいずれかが生じるまで、デバイス自身を実質的に使用できない状態にする。動作、バインド、およびアンバインドの方法も開示されている。

【発明の詳細な説明】
【背景技術】
【0001】
ペイ・アズ・ユー・ゴー(pay-as-you-go)・ビジネスモデルまたはペイ・パー・ユース(pay-per-use)・ビジネスモデルが、携帯電話から営利的なコインランドリに至る多くの商業分野において使用されてきている。ペイ・アズ・ユー・ゴー・ビジネスが発展するにあたって、例えば携帯電話プロバイダといったプロバイダは、加入者がそのプロバイダのネットワークに留まることを条件として、市場コストよりも低いコストで、ハードウェア(携帯電話機)の使用を提供している。この特定の例では、顧客は、所与の期間の間、加入者となる契約にサインすることを条件として、わずかな価格または無料で携帯電話機を受け取る。サービスプロバイダは、契約期間中、消費者による携帯電話機の使用に対して請求することによって、ハードウェアのコストを回収する。
【0002】
ペイ・アズ・ユー・ゴー・ビジネスモデルは、ハードウェアがサービスプロバイダから接続が断たれた場合、提供された携帯電話機がほとんど、もしくはまったく価値を持たない、あるいは、ほとんど、もしくはまったく使用されないというコンセプトを前提としている。例示するため、上述した加入者が請求を支払わなくなると、サービスプロバイダは、その加入者のアカウントを無効にし、携帯電話機の電源が入っていても、サービスプロバイダが許可しないので、電話をかけることができない。無効化された携帯電話機はどこにあっても動作せず、構成部品群も末端価格ほど有さないため、無効化された携帯電話機は、「回収(salvage)」価値を持たない。アカウントが認められるようになると、サービスプロバイダは、その携帯電話機を使用して電話をかけることを再び許可する。
【発明の開示】
【発明が解決しようとする課題】
【0003】
低価格のハードウェアを提供することによる財務リスクを負うサービスプロバイダまたは他の事業体が、そのハードウェアの使用を厳重に管理し、かつ、そのデバイスがほとんど回収価値を持たない場合には、このモデルはうまく機能する。ハードウェアがサービスプロバイダの管理範囲外で多く使用される場合には、このビジネスモデルはうまく機能しない。パーソナルコンピュータは、元々の意図を越えて多大に使用されることがあり、かつ、例えばディスプレイやディスクドライブといったパーソナルコンピュータのコンポーネント群は、大きな回収価値を持つことがあるので、したがって、典型的なパーソナルコンピュータは、こうした基準を満たさない。
【課題を解決するための手段】
【0004】
ペイ・アズ・ユー・ゴー・コンピュータまたはその他のハードウェアが低価格で提供される場合、例えばモニタやディスクドライブといった、取り外し可能なコンポーネント、周辺機器、またはその他のデバイスは、引受業者(underwriter)やサービスプロバイダにとってリスクとなる。そのようなデバイスは、システムから取り外すことができ、ユーザが、それらのデバイスを販売し利益を得ることによって、引受業者やサービスプロバイダの損失をもたらす結果となる。デバイスが意図されたコンピュータとともにでしか動作しないように、スマートデバイスおよび対応する基本コンピュータシステム(base computer system)は、デバイスとコンピュータとをバインドすることが可能となる。製造、インストール、およびテストのための「猶予期間(grace period)」が、バインドを要求する前に与えられる。猶予期間後、デバイスがコンピュータにバインドされない場合、そのデバイスは、すべての機能を動作させることができない。デバイスによるコンピュータの定期的な認証によって、デバイスが依然として意図されたコンピュータにインストールされていることを確実にする。署名されたメッセージを使用することにより、アンバインド、すなわち、デバイスとコンピュータとの関連付けを除去することが実現される。そのようにバインドされたデバイスは、コンピュータと通信することができ、一実施形態においては、暗号化機能とセキュアメモリとを有することができる。
【0005】
コンピュータおよびデバイスは、1つのデバイスと1つのコンピュータとの単純な関連付けを越えた関連付けをもって、バインドすることができる。すなわち、いくつかのコンピュータは、2つ以上のデバイスによる認証のために構成することができ、反対に、いくつかのデバイスは、2つ以上のコンピュータから認証メッセージを受信するように構成することができる。これにより、複数のシステムを購入することがより容易となり、また、これにより、いくつかのコンポーネントを予め定められたコンピュータのセットの間で移動させることができるようにすることによって、そのようなシステムの関連する維持および管理に役立てられる。ペイ・パー・ユース・ビジネスモデルは、企業または他のワークグループにまで及んでいるが、コンピュータへのコンポーネントのバインドは、購入されたユニットに対しても効果を有することができる。コンピュータへのコンポーネントのバインドは、個別に、または、まとめて窃盗することと、一部のシステムを使用できなくすることはできなくとも、正常に機能させなくし得る他の「コンポーネント交換(component swapping)」と、を防止することができる。
【発明を実施するための最良の形態】
【0006】
以下のテキストは、複数の様々な実施形態の詳細について説明しているが、本説明の法的範囲は、特許請求の範囲の記載によって定義されることを理解されたい。この詳細な説明は、単に例示的なものとして解釈されるべきであり、可能なすべての実施形態について記述しているものではない。なぜならば、可能なすべての実施形態について記述することは、不可能ではないとしても、非現実的であるからである。既存の技術または本願の出願日後に開発された技術を用いることによって、多数の代替実施形態を具現化できるであろう。それらの代替実施形態もまた、特許請求の範囲に属するものである。
【0007】
ある用語が、“本明細書で使用される用語「____」は、「....」を意味するものとして、本明細書では定義される”という文、または同様の文を用いて、本願において明示的に定義されない限り、その用語は、明示的なものを意味するものでも暗示的なものを意味するものでもなく、その用語の平明な意味、または通常の意味を越えたものであり、その用語の意味を限定する意図はないことも理解されたい。また、そのような用語は、(特許請求の範囲の言葉以外の、)本明細書の任意のセクションに記載された任意の文に基づいて、範囲が限定されるものと解釈すべきではない。本願では、読者を混乱させないよう簡潔にする目的で記載された単一の意味と矛盾しない限りにおいて、特許請求の範囲に記載されたすべての用語は広がりを有するものである。このような特許請求の範囲に記載された用語は、暗示によっても、そうでなくとも、その単一の意味に限定されるべきものと意図するものではない。最後に、請求項に記載の構成要素が、「意味する」という用語、および全く構造の記載のない機能を記載することによって定義されない限り、請求項におけるいずれの構成要素の範囲も、35USC第112条第6項の適用に基づいて解釈されるべきものと意図するものではない。
【0008】
本発明の多数の機能および本発明の多数の原理は、ソフトウェアプログラムまたはソフトウェア命令、および、特定用途向け集積回路(IC)などのICを用いて最良に実装することができる。このようなソフトウェアプログラム、ソフトウェア命令、およびICを作成するのに、多大な努力を要すると思われるかもしれないし、また、例えば利用可能な時間、既存の技術、および経済的懸念を動機として多数の設計選択(design choice)があると思われるかもしれないが、当業者であれば、本明細書で開示するコンセプトおよび原理をガイドとして使用すれば、最小限の実験により上記のソフトウェアプログラム、ソフトウェア命令、およびICを容易に作成することができると予想される。したがって、簡潔にする目的上、かつ、本発明にしたがう原理およびコンセプトを分かりにくくするリスクを最小限に抑えるために、上記のソフトウェアおよびICのさらなる説明があったとしても、そのさらなる説明については、好適な実施形態における原理およびコンセプトに関する本質的要素に限定することにする。
【0009】
従来技術による高価値なコンピュータ、携帯情報端末、オーガナイザなどの多くは、現行のプリ・ペイ(pre-pay)・ビジネスモデルまたはペイ・フォー・ユース(pay-for-use)・ビジネスモデルにおいて使用するのに適していない。上述したように、そのような機器は、サービスプロバイダを必要とすることは別として、高価値を有することができる。例えば、パーソナルコンピュータは、コンポーネントに分解することができ、コンポーネントとして販売することができる。これは、低価格な機器の引受業者にとっては、非常に深刻な損失となり得る。インターネットサービスプロバイダが、将来の料金を予想して、パーソナルコンピュータのコストの支払いを引き受けた場合、この「束縛のない価値(untethered value)」により、不正な買い取りや窃盗の機会が生じてしまう。ユーザが低価格で高価値なコンピューティングシステム環境を使用するのに先立って支払いを行うプリ・ペイ・ビジネスモデルには、不正行為や窃盗といった同様のリスクを伴う。
【0010】
図1は、ダイナミックソフトウェアプロビジョニングシステム(dynamic software provisioning system)を実装するのに使用することができるネットワーク10を示している。ネットワーク10は、インターネット、仮想プライベートネットワーク(VPN)、あるいは、1つまたは複数のコンピュータ、通信デバイス、データベースなどが互いに通信接続することを可能にするその他の任意のネットワークとすることができる。ネットワーク10は、イーサネット(登録商標)16とルータ18と有線通信線20とを介して、パーソナルコンピュータ12およびコンピュータターミナル14に接続することができる。他方、ネットワーク10は、無線通信局26と無線リンク28とを介して、無線により、ラップトップコンピュータ22および携帯情報端末24に接続することができる。同様に、サーバ30は、通信リンク32を使用してネットワーク10に接続することができ、メインフレーム34は、別の通信リンク36を使用してネットワーク10に接続することができる。
【0011】
図2は、ネットワーク10に接続することができ、かつ、ダイナミックソフトウェアプロビジョニングシステムにおける1つまたは複数のコンポーネントを実装するのに使用することができるコンピュータ110の形態をとるコンピューティングデバイスを示している。コンピュータ110のコンポーネントには、処理ユニット120と、システムメモリ130と、システムメモリなどの様々なシステムコンポーネントを処理ユニット120に接続するシステムバス121とを含めることができるが、これらに限定されるものではない。システムバス121は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスなど、いくつかのタイプのバス構造のいずれかとすることができる。例えば、このようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、および、メザニンバスとしても知られているPCI(Peripheral Component Interconnect)バスが含まれるが、これらに限定されるものではない。
【0012】
コンピュータ110には、暗号化サービス125も含めることができる。このようなサービスには、対称暗号化アルゴリズムおよび非対称暗号化アルゴリズムの両方と、キー生成と、乱数生成と、セキュアストレージとを含めることができる。暗号化サービスは、例えば、シーメンス(登録商標)やSTマイクロエレクトロニクス(登録商標)によって提供されるスマートチップなどの一般に利用可能な集積回路により提供することができる。
【0013】
コンピュータ110は通常、様々なコンピュータ読み取り可能な媒体を備える。コンピュータ読み取り可能な媒体は、コンピュータ110がアクセスできる任意の利用可能な媒体とすることができ、コンピュータ読み取り可能な媒体には、揮発性媒体および不揮発性媒体、取り外し可能な媒体および取り外し不可能な媒体の両方が含まれる。例えば、コンピュータ読み取り可能な媒体には、コンピュータ記憶媒体および通信媒体を含めることができるが、これらに限定されるものではない。コンピュータ記憶媒体には、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術を用いて実装された、揮発性媒体および不揮発性媒体、取り外し可能な媒体および取り外し不可能な媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリ、もしくはその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD:Digital Versatile Disk)、もしくはその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくはその他の磁気記憶デバイスが含まれ、または、所望の情報を記憶するのに使用できコンピュータ110がアクセスできるその他の任意の媒体が含まれるが、これらに限定されるものではない。通信媒体は通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他の搬送機構などの被変調データ信号に組み入れるものであり、通信媒体には、任意の情報伝達媒体が含まれる。「被変調データ信号」という用語は、信号内の情報が符号化される形で1つまたは複数の特性が設定または変更される信号を意味する。例えば、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、RF、赤外線、およびその他の無線媒体などの無線媒体とが含まれる。これらの任意の組合せも、コンピュータ読み取り可能な媒体の範囲に含まれるべきである。
【0014】
システムメモリ130には、読み取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性メモリおよび/または不揮発性メモリの形態をとるコンピュータ記憶媒体が含まれる。ROM131には通常、起動中などにコンピュータ110内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(Basic Input/Output System)133が記憶されている。RAM132には通常、処理ユニット120がすぐにアクセスすることができ、かつ/または、処理ユニット120が現在処理している、データおよび/またはプログラムモジュールが含まれる。例えば、図2には、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137が示されているが、これらに限定されるものではない。
【0015】
コンピュータ110は、その他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。一例として、図2には、取り外し不可能な不揮発性磁気媒体に対して読み書きするハードディスクドライブ141と、取り外し可能な不揮発性磁気ディスク152に対して読み書きする磁気ディスクドライブ151と、CD ROMやその他の光媒体などの取り外し可能な不揮発性光ディスク156に対して読み書きする光ディスクドライブ155が示されている。この例示的な動作環境において使用できるその他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ141は通常、インターフェース140などの取り外し不可能なメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インターフェース150などの取り外し可能なメモリインターフェースを介してシステムバス121に接続される。
【0016】
図2に示して上述したドライブ群、およびそれらに関連するコンピュータ記憶媒体は、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、およびその他のデータの記憶領域をコンピュータ110に提供する。例えば図2には、ハードディスクドライブ141が、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶しているものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同一とすることもできるし、または、異なるものとすることもできることに留意されたい。図2では、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147が少なくとも異なるコピーであることを示すために、それらには異なる番号を付している。ユーザは、キーボード162、および、通常マウス、トラックボール、タッチパッドなどを指すポインティングデバイス161などの入力デバイスを介して、コンピュータ110にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどを含めることができる。これらおよびその他の入力デバイスは、システムバスに接続されたユーザ入力インターフェース160を介して、処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など、その他のインターフェースおよびバス構造を介して接続されてもよい。モニタ191または他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを介して、システムバス121に接続される。コンピュータは、モニタに加えて、スピーカ197やプリンタ196など、その他の周辺出力デバイスも備えることができ、これらは、出力周辺インターフェース195を介して接続することができる。
【0017】
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク環境において動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、図2には、メモリ記憶デバイス181しか示されていないが、通常は、コンピュータ110に関して上述した要素の多くまたはすべてを備える。図2に示す論理接続には、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173が含まれるが、その他のネットワークも含めることができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットにおいては一般的である。
【0018】
LANネットワーキング環境において使用される場合、コンピュータ110は、ネットワークインターフェースまたはネットワークアダプタ170を介してLAN171に接続される。WANネットワーキング環境において使用される場合、コンピュータ110は通常、インターネットなどのWAN173を介した通信を確立するためのモデム172またはその他の手段を備える。モデム172は、内蔵型でも外付け型でもよく、ユーザ入力インターフェース160、またはその他の適切な機構を介して、システムバス121に接続することができる。ネットワーク環境では、コンピュータ110と関連させて示したプログラムモジュールまたはその一部を、リモートメモリ記憶デバイスに記憶することができる。例えば、図2には、リモートアプリケーションプログラム185がメモリデバイス181に存在するものとして示されているが、これに限定されるものではない。図示したネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立するための他の手段も使用できることを理解されたい。
【0019】
図3を参照しながら、コンピュータ110に関連付けることができるデバイス200について説明する。デバイス200は、コンピュータから取り外すことができる任意のデバイスとすることもできるし、または、全体としては、コンピュータとは異なる価値を有する任意のデバイスとすることもできる。例えば、このデバイスは、ディスプレイまたはディスプレイコントローラ、回転記憶デバイス(rotating storage device)、回転記憶デバイスコントローラ、ソリッドステートメモリ、ファイアウォールなどのセキュリティデバイス、キーボード、ゲームコントローラ、マウス、通信インターフェース、カメラ、プリンタ、電話機、または、コンピュータ110などのコンピュータ間で通常移動させることができるその他のデバイスとすることができる。
【0020】
このデバイスは通常、プロセッサ202と、メモリ204と、内部のデバイスを接続する1つまたは複数のデータバス206と、コンピュータ110と通信するためのポート208と、このデバイスの実際の機能と関連付けられた機能回路210(例えば、ディスクコントローラ回路)と、図2のハードディスクドライブにおけるヘッドやプラッタなど(図示せず)とを有することができる。プロセッサ202は、シングルチップコントローラとすることができ、この場合、メモリ202、ポート208、および機能回路210は一体型(self-contained)としてもよいし、別個のものとしてもよいし、組み合わせてもよい。メモリ204は、揮発性メモリ212および不揮発性メモリ214の両方を有することができ、これらの両方には、保護されたメモリ216、すなわち、セキュアメモリ216を含めることができる。すなわち、このメモリ216は、先立って暗号化認証が行われない場合、書き込むことができず、場合によっては、読み取ることもできない。一実施形態において、プロセッサ202において実行されているコードのみが、メモリ204にアクセスすることができる。したがって、メモリ204は隔離され、外部からの攻撃がより困難となる。デバイス200のコンポーネント群は、既知の入手可能なものであり、例えば、プロセッサは、シングルチップコントローラとしてもよいし、小さなコードセットおよび状態変更を実行するマイクロコントローラであってもよい。セキュアメモリは、スマートカード内で用いることができるようなスマートチップを用いて実装することができる。デバイス200には、任意的に、ハッシング(hashing)、キー生成、および、例えば、AES(Advanced Encryption Standard)とRSA(登録商標)とをそれぞれとする対称暗号化機能と非対称暗号化機能とのうちの少なくとも一方を実行するための暗号化エンジン218を含めることもできる。暗号化エンジンが存在しない場合、必要な暗号化機能は、ソフトウェアにより実装することができ、プロセッサ202によって実行することができる。
【0021】
デバイス200は、初期化されると、初期インストール(initial installation)とテストとを可能にするために、短時間の間に完全な機能を行うことができる。完全な機能を行う時間を拡大させると、詳細な構成(retail configuration)と、デモンストレーションとが可能となる。しかしながら、何らかの時点にて、デバイス200は、適切な機能または完全な機能動作を継続するために、コンピュータ110などのコンピュータにバインドされるよう要求する場合がある。このバインドプロセスは、デバイス200が、バインドされることになるコンピュータ110と情報を交換することを含む。このバインドプロセスについては、以下で詳述する。
【0022】
また、デバイスに応じて、デバイスは、コンピュータが起動し、リセットし、そして、ブートすることを可能にするのに、十分に有効である場合がある。次いで、バインドのテストが失敗した場合、デバイスは、それほど有効でない状態に移る。このそれほど有効でない状態は、業務ポリシおよびデバイスに応じて、完全に無効になる場合もあるし、半分ほど有効である(semi-functional)場合もある。完全に無効になる状態のレベルでは、バインドのテストを繰り返し行うことを認めてもよいし、コンピュータ110および/またはデバイス200をバインドのテスト前の初期状態に戻すよう再起動することを要求してもよい。
【0023】
1対1の関連付けを越えて、バインドの範囲を拡張することが望ましい場合がある。例えば、企業またはワークグループでは、複数のコンピュータのうちのいずれにおいても、ディスプレイを使用できるようにすることが有効な場合がある。これによって、その企業またはワークグループ内のコンピュータシステムを保守する際のオーバヘッドが低減する。場合によっては、単一のバインドおよび、グループによるバインド(group binding)を可能にするために、バインドの関連付けを混成する(mix)ことが意味をなす場合がある。例えば、ディスクドライブは、単一のコンピュータにバインドできるのに対して、ディスプレイおよび外付け型のドライブは、グループにバインドすることができる。
【0024】
いずれの形態のセキュリティも、弱点またはセキュリティホールを有することが分かる。このセキュリティ手段の設計目標は、他の多数のセキュリティ手段と同様に、保護されるデバイスのコストよりも、攻撃のコストの方がかかるようにすることである(例えば、回路基盤のハードウェア再構築)。これにより、攻撃全体を防止することができ、デバイス200、および、関連するコンピュータ110に対する広範囲に及ぶ攻撃に制限をかける可能性がより高くなる。
【0025】
図4を参照しながら、コンピュータにバインダされたデバイスを構成して動作させる例示的な方法について説明する。上述したように、デバイス200など、このように適切に動作するデバイスが多数存在する。ブロック300で、電力アップ、スタンバイからオンへといった電力状態が変化した後やリセット後などに、デバイス200が起動する。ブロック301において、デバイス200は、デバイス200自身がすでにロックされている(locked)か否か、すなわち、制限された機能モードにあるか否かを判定することができる。デバイスがすでにロックされていた場合、この方法は、yes分岐に進み、図5にさらに示されるブロック302に進む。デバイスがロックされていない場合、no分岐に進み、ブロック303において、デバイス200は、デフォルトモードに入る。デバイス200は、デフォルトでは、完全な機能を行うことができるが、認証サイクル(authentication cycle)を失敗した後には制限された機能モードに入るか、または、デバイス200は、デフォルトでは、制限された機能しか行えないが、認証サイクルを通過した後には完全な機能モードに入る。デフォルトの状態は、製造業者または許可された管理者によって設定することができる。ブロック304において、デバイス200は、デバイス200自身がコンピュータ110にすでにバインドされているか否かを判定することができる。バインドされていなかった場合、図5に示されるように、ブロック318において、デバイス200は、デバイス200自身をコンピュータ110にバインドしようと試みる。バインドされていた場合、ブロック304からyes分岐に進み、ブロック308において、テストループがトリガされる。ブロック308において、テストループは、使用ボリューム、時間期間(time period)、リセットまたは電力サイクルイベントや、乱数または擬似乱数イベントなどの直近のシステムイベントによってトリガすることができる。後者の2つは、クロックベースであってもよいし、テスト中に適切な期間を生成する乱数ジェネレータを使用してもよい。一実施形態において、ある認証サイクルと次の認証サイクルとの間の期間は、5分以上10分以下の値とすることができる。制限された機能モードにおいて利用可能な特定の機能は、実際のデバイスに応じて変わり得る。例えば、ディスクドライブは、ディスクドライブ自身の通信速度の何分の1かで動作することしかできないし、グラフィックスコントローラは、低解像度モードで動作することしかできない。トリガ機構308を用いて、認証プロセスを開始することができる。テストループ中、ブロック309において、デバイスは、保留中のサービス管理リクエスト(pending service administration request)に応答することができる。サービス管理リクエストは、アンバインドするリクエスト、すなわち、コンピュータ110から分離するリクエストであってもよいし、例えば、制限された機能状態からのロック解除やバインド基準の再設定といったその他のリクエストを含んでもよい。デバイス200は、テストループまたはその他の認証トランザクションの終了を要する前に、提供されるサービス管理リクエストの回数に制限をかけることができる。サービス管理リクエストに制限をかけることにより、常にこのポイントにて処理を迂回させることによってテストループの終了を阻止しようと試みる攻撃に対して制限をかけることができる。サービス管理リクエストについては、図6を参照して、さらに説明する。
【0026】
サービス管理リクエストが保留されていなかった場合、ブロック309からno分岐に進む。ブロック310において、デバイス200は、コンピュータ110を認証することができる。認証310には、セキュリティ業界では良く知られた、暗号化チャレンジおよび暗号化レスポンス(cryptographic challenge and response)を含めることができる。チャレンジ/レスポンスには、デバイス200が乱数を提供することと、コンピュータ110がその乱数に署名して、その署名された乱数をデバイス200に戻すこととを含めることができる。レスポンスには、任意的に、コンピュータ識別子を含めることができ、それによって、デバイス200は、有効な署名とともにコンピュータ110を確認することができる。暗号化機構は、バインドする時点で選択することができる。この暗号化機構については、図5を参照して、より詳細に説明する。デバイスは、非常に短い期間内にレスポンスを要求して、コンピュータ110が、インターネットまたは、署名するのに適切なホストのためのその他のネットワークを検索することを防止することができる。すなわち、第1のコンピュータにバインドされていたデバイス200が、第2のコンピュータに移された場合、第2のコンピュータは、認証リクエストを第1のコンピュータに転送できるべきではない。代替として、デバイス200は、認証310の間、外部通信(external communications)を無効にすることを要求することができる。デバイス200が通信コントローラである場合、これはより容易に実現することができる。特定の時間間隔の間にレスポンスを要求することによって、リクエストリダイレクション(request redirection)の有効性に制限をかけることができるだけでなく、認証プロセスを妨害しようとする試みにおいて、コンピュータが単に認証リクエストに応答しない場合の攻撃を防止するのにも役立つことが可能になる。
【0027】
認証が成功すると、デバイス200は、ブロック312において、デバイス200自身を完全な機能動作に設定することができ、この方法は、トリガ段階308に戻って、別の認証サイクルを待ち受ける。認証310を定期的に繰り返して、初期認証後にデバイスが別のシステムに移される(すなわち、デバイスに電力が提供される)のを防止することができる。
【0028】
認証310が失敗した場合、または、コンピュータ110がバインドをサポートしない場合、ブロック310からno分岐に進み、デバイス200は、ブロック311において、制限された機能動作に設定または再設定され、ブロック316において、エラーメッセージが表示される。複数回の試行を失敗した後に、デバイス200が最終的に動作全体を止めるという設計選択もある。ブロック304において、デバイスがまだバインドされていない場合は、no分岐に進み、デバイス200は、デバイス200自身を現在のコンピュータにバインドしようと試みることができる(図5参照)。代替として、例えば、インストールプロセス中に技術者によって特定のコマンドが送信された場合には、その特定のコマンドに応答して、デバイス200は、デバイス200自身をコンピュータ110にバインドしようと試みることができる。
【0029】
図5は、コンピュータ110にデバイス200をバインドする方法を示している。ブロック401において、コンピュータ110は、ブロック304からブロック318へのno分岐に続いて、バインド試行を開始することができる。まずブロック402において、デバイス200は、コンピュータ110(例えば、コンピュータ110において実行されているモニタリングプログラムなど)にメッセージを送信することによって、コンピュータがバインドをサポートするか否かを判定することができる。コンピュータ110がバインドをサポートする場合、コンピュータ110およびデバイス200は、その方法、すなわち、より詳細には、後続の認証のために使用される暗号化アルゴリズムについてネゴシエートする(negotiate)ことができる。例えば、コンピュータ110およびデバイス200は、共有秘密キーおよび対称暗号化アルゴリズムを使用することに同意することができる。別の実施形態では、公開キー暗号法を用いて、デバイス200とコンピュータ110との間で、署名された認証されたメッセージを交換することができる。この別の実施形態では、ユーザ認証機関およびルート認証機関を利用して、信頼関係を確立することができる。いくつかの実施形態では、コンピュータ110は、何らかの暗号化機能を有するデバイス、および/または、セキュリティの必要性を変更するデバイス(すなわち、ディスクドライブはマウスよりも高機能な方法を使用することができる)に対応するよう、様々なアルゴリズムおよびプロセスをサポートすることができる。
【0030】
アルゴリズムが確立されると、ブロック406において、コンピュータ110およびデバイス200は、後続の認証において使用するためのデータを交換することができる。例えば、コンピュータ110およびデバイス200は、Diffie−Hellmanキー交換を用いて、AESアルゴリズムとともに使用される共有秘密キーを生成することができる。上述したように、認証プロセスにおいて、公開キー技術を利用することもできる。コンピュータ110とデバイス200との間にセキュアチャネルを確立して、さらにバインドプロセスのセキュリティを確保することができる。当業界において、セキュアチャネルおよび信頼関係は周知であるので、本明細書では詳細には説明しない。ブロック408において、バインドが成功した場合、このプロセスは、ブロック410のリターンに進み、例えば図4のブロック302などの、メインルーチンに移ることができる。
【0031】
ブロック402において、コンピュータがバインドをサポートしない場合、no分岐を進んでブロック412に進み、デバイス200がコンピュータ110において使用するのに適合しないことを示すメッセージが表示される。場合によっては、このメッセージは、例えば、LED(Light Emitting Diode、図示せず)といったデバイス上のライトの形態をとってもよい。この方法は、ブロック414に進む。バインドが成功しなかった場合、同様に、このプロセスは、no分岐を進んで、ブロック408からブロック412に進み、エントリポイント(entry point)を示すメッセージを表示することができる。ブロック414において、デバイス200は、デバイス200の完全な機能動作が許可されるべきか否かを判定するために使用される基準を更新することができる。上述したように、完全な機能を要求する理由は、販売、インストール、およびテストを可能にすることにある。特定のデバイスおよび業務の考慮事項に応じて、基準は、試みた使用の回数、電力がオンの期間、データ量、データ書き込みサイクルの回数などとすることができる。単純な例では、デバイス200は、バインドするのに100回試みることができ、基準更新ブロック414を通過するたびに、カウントが1ずつ減らされる。ブロック416において、バインドしなくとも、完全な機能または通常の機能を行える基準が存在するならば、ブロック416のno分岐からブロック410に進み、呼び出し元ルーチンに戻る。いくつかの実施形態では、デバイス200はまず、ブロック410においてリターンする前に、完全な機能または通常の機能用にデバイス200自身を設定または再設定することができる。別の実施形態では、リターン410には、バインド状況、成功したリクエスト、および残りのバインド試行回数に関する情報を含めることができる。
【0032】
完全な機能または通常の機能に関する基準により、バインドされていなければ、さらなる機能が許可されるべきではないと示された場合、ブロック416からyes分岐に進み、ブロック421において、デバイスがロックされることを示すフラグが設定され、ブロック422において、対応するエラーメッセージが表示される。図4のブロック302からの動作がブロック422に進んだ場合、同様に、適切なエラーメッセージを表示することができ、ブロック423において、デバイスはロックされた状態になる。ブロック424において、この方法は、デバイスがさらなる機能動作の前にサービスを必要とする状態で終了する。制限された機能動作は、ロックされた状態と同一としてもよいし、異なるものとしてもよいことに留意されたい。すなわち、ロックされた状態では、デバイス200がサービスを必要とする、完全に無効な状態にすることができるが、制限された機能動作では、デバイス200が何らかの方法で動作できるようにしてもよい。この選択は、業務条件によって決定されるだけでなく、失敗したバインドまたは失敗した認証に対する拡大したレスポンス(escalating response)の一部としてもよい。ロックされたデバイスの後続する復旧には、サービス管理リクエストの成功受信(success receipt)を必要とする。その結果、この方法は図6に続く。
【0033】
図6は、コンピュータ110からデバイス200をアンバインドする方法を示すフローチャートである。図4に示した方法において、例えば、ブロック314へと続く図4のブロック309にて、サービス管理リクエストメッセージが受信され得る。このサービス管理リクエストには、コンピュータ110からデバイス200をアンバインドするリクエスト、無効にされた、または制限された機能モードにあるデバイス200のロックを解除するリクエスト、バインド試行を調整/再設定するリクエストなどが含まれ得る。ブロック501にて開始し、ブロック502においてリクエストが受信される。ブロック504において、デバイス200は、おそらくはコンピュータ110であるが、場合によっては、サービスプロバイダのウェブサイトといった別のエンティティ(図示せず)であるリクエスト元エンティティにチャレンジを送信することができる。対称暗号法または非対称暗号法のいずれを用いても、チャレンジ(場合によっては、ノンス(nonce)または乱数、一意な識別子、および/または、シーケンス番号)を使用して、リプレイ攻撃を防止することができる。次いで、ブロック506において、デバイス200は、コンピュータ110またはその他のエンティティから、署名されたメッセージおよび/または認証されたメッセージを受信することができる。代替実施形態では、ブロック502において、リクエストは、信頼できるソースからの署名されたメッセージとすることができ、デバイス200は、チャレンジ−レスポンスを必要とすることなく、署名されたメッセージを認証するための十分な暗号化機能を有することができる。ブロック508において、デバイス200はメッセージを確認することができる。この確認ステップは、当該技術分野では周知であり、この確認ステップには、例えば次のようにすることによる作者の認証を含めることができる。すなわち、デジタル署名を使用すること;例示的な一実施形態においては、ハッシュおよび署名を使用して、メッセージの整合性をチェックすること;乱数やシーケンス番号といった一意なチャレンジを検証すること;または同様の方法を用いること、である。メッセージが確認されると、ブロック508からyes分岐に進み、ブロック510において、リクエストされたアクションを実行することができる。次いで、ブロック512において、デバイス200は、デバイス200がアンバインドされた後や基準再設定リクエスト(criteria reset request)の後などの、バインドされていない場合に、デバイス200自身が完全な機能を有して動作することが許可されるべきか否かを判定する基準を再設定することができる。この方法はブロック514に戻り、例えば、図4のブロック300に進む。
【0034】
ブロック508において、メッセージを確認できなかった場合、no分岐に進む。ブロック516において、リクエスト元および/またはユーザに、無効なサービス管理リクエストが受信されたことを通知することができる。代替実施形態では、ハッカにさらなる状況情報を提供することを回避するために、レスポンスがなされない。失敗したリクエストは、ボリューム解析および速度解析のために記録が取られ、このルーチンは、ブロック514に戻り、上述したように、呼び出し元ポイント、例えば図4のブロック300に進む。ボリュームすなわちサービス管理リクエストの数、および、レートリクエスト(rate request)が受信される速度を使用して、サービス妨害攻撃や同様の攻撃が進行中であるか否かを判定することができる。ボリューム/速度要件または認証要件を満たさないサービス管理リクエストは無視することができ、デバイスはそのときの状態を維持することができる。
【図面の簡単な説明】
【0035】
【図1】簡略化したコンピュータネットワークを示すブロック図である。
【図2】図1のコンピュータネットワークに接続することができるコンピュータを示すブロック図である。
【図3】図2のコンピュータに関連付けられたデバイスを示すブロック図である。
【図4】バインドされたデバイスを有するコンピュータを動作させる方法を示すフローチャートである。
【図5】コンピュータにデバイスをバインドする方法を示すフローチャートである。
【図6】コンピュータからデバイスをアンバインドする方法を示すフローチャートである。

【特許請求の範囲】
【請求項1】
コンピュータに関連付けられたデバイスであって、
前記コンピュータと通信するためのポートと、
認証情報を記憶するためのメモリと、
前記ポートおよび前記メモリに接続され、前記ポートを介して前記コンピュータを認証するようにプログラムされたプロセッサと
を備え、
前記認証が失敗した後では、前記デバイスは、制限された機能モードで動作することを特徴とするデバイス。
【請求項2】
前記コンピュータは、関連するコンピュータのグループのうちの1つであり、前記関連するコンピュータのグループのうちの各々のコンピュータは、前記デバイスによる認証のために適合されていることを特徴とする請求項1に記載のデバイス。
【請求項3】
暗号化アルゴリズムをさらに備え、
前記プロセッサは、前記暗号化アルゴリズムを使用して、前記コンピュータを認証することを特徴とする請求項1に記載のデバイス。
【請求項4】
前記デバイスは、ディスプレイと、ディスプレイコントローラと、回転記憶デバイスと、回転記憶デバイスコントローラと、ソリッドステートメモリと、セキュリティデバイスと、キーボードと、ゲームコントローラと、マウスと、通信インターフェースと、カメラと、プリンタと、電話機とのうちの1つであることを特徴とする請求項1に記載のデバイス。
【請求項5】
乱数ジェネレータとタイマとのうちの一方をさらに備え、
前記プロセッサは、前記コンピュータの認証用の定期的な基準を決定する際に使用するために、前記乱数ジェネレータとタイマとのうちの一方を使用することを特徴とする請求項1に記載のデバイス。
【請求項6】
前記制限された機能モードは、前記認証が失敗したことを示す、ユーザに対する信号を含むことを特徴とする請求項1に記載のデバイス。
【請求項7】
前記デバイスは、トリガに応答して、前記コンピュータにバインドしようと試み、前記トリガは、特定のコマンドと、電力サイクルの回数と、使用限界とのうちの1つであることを特徴とする請求項1に記載のデバイス。
【請求項8】
前記デバイスは、制限された機能モードで動作している場合、前記コンピュータのブートサイクルを介して動作することを特徴とする請求項1に記載のデバイス。
【請求項9】
前記デバイスは、時間期間と電力サイクルの回数と使用限界とのうちの1つに到達した後に前記コンピュータに対するバインドに失敗した場合、前記制限された機能モードに入ることを特徴とする請求項8に記載のデバイス。
【請求項10】
前記認証は、特定の時間間隔中と、ネットワーク接続が無効になった状態とのうちの一方で行われることを特徴とする請求項1に記載のデバイス。
【請求項11】
前記デバイスは、前記コンピュータからの暗号化署名されたサービス管理リクエストに応答することを特徴とする請求項1に記載のデバイス。
【請求項12】
通信接続されたデバイスとともに使用するために準備されたコンピュータであって、
前記デバイスが前記コンピュータにバインドされている場合、前記コンピュータの認証後にのみ、完全な機能動作用に適合される前記デバイスと、
前記コンピュータに関連付けられた識別子を記憶するためのメモリと、
前記デバイスと通信するためのポートと、
前記識別子および前記デバイスに接続されたプロセッサと
を備え、
前記プロセッサは、前記識別子を使用して、前記デバイスからのチャレンジに応答し、前記コンピュータを認証する適切なレスポンスが前記デバイスに返されることを特徴とするコンピュータ。
【請求項13】
前記デバイスが、レスポンスを受信しない場合か、または不適切なレスポンスを受信した場合に、前記コンピュータは、前記デバイスからの信号に応答して、メッセージを表示することを特徴とする請求項12に記載のコンピュータ。
【請求項14】
前記デバイスは、取り外し可能なメモリと、取り外し不可能なメモリと、ディスプレイデバイスと、入力デバイスと、出力デバイスと、ポインティングデバイスと、記憶デバイスと、セキュリティデバイスと、通信デバイスとのうちの1つであることを特徴とする請求項12に記載のコンピュータ。
【請求項15】
前記プロセッサは、前記デバイスに対して前記コンピュータを認証するために、前記デバイスと暗号化法についてネゴシエートすることを特徴とする請求項12に記載のコンピュータ。
【請求項16】
バインドされたデバイスとともに使用するのに適合したコンピュータを動作させる方法であって、
前記コンピュータを認証するために、前記バインドされたデバイスをトリガすることと、
前記デバイスに署名されたメッセージを提供することと、
前記署名されたメッセージの真偽を判定することと、
前記署名されたメッセージの真偽を前記判定した結果、偽であった場合、前記デバイスの機能を制限することと
を備えることを特徴とする方法。
【請求項17】
前記署名されたメッセージの真偽を前記判定する前に、前記デバイスの機能を制限すること
をさらに備えることを特徴とする請求項16に記載の方法。
【請求項18】
前記デバイスから前記コンピュータにチャレンジを送信することをさらに備え、
前記チャレンジは、擬似乱数と、前記デバイスに関連付けられた識別子とのうちの1つを含むことを特徴とする請求項16に記載の方法。
【請求項19】
サービス管理リクエストに応答して、前記デバイスの機能を調整することをさらに備え、
前記サービス管理リクエストは、ボリューム/速度要件および認証要件を満たすことを特徴とする請求項16に記載の方法。
【請求項20】
前記コンピュータを認証するために、前記バインドされたデバイスを前記トリガすることは、
電力サイクルと時間期間と使用ボリュームとランダムイベントとのうちの1つに応答して、前記コンピュータを認証するために、前記バインドされたデバイスをトリガすること
をさらに含むことを特徴とする請求項16に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2008−532106(P2008−532106A)
【公表日】平成20年8月14日(2008.8.14)
【国際特許分類】
【出願番号】特願2007−552142(P2007−552142)
【出願日】平成17年12月20日(2005.12.20)
【国際出願番号】PCT/US2005/046539
【国際公開番号】WO2006/078412
【国際公開日】平成18年7月27日(2006.7.27)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】