(57)【要約】      （修正有）【課題】サブシステムが所与のマザーボードに自律的に一義的に結合され、他のマザーボードに接続された場合は動作不能になるシステムを提供すること。【解決手段】コードを記憶するための制限付き情報スペースを有するサブシステム装置を、システムを識別するための一義的なコードを生成し、それをサブシステム中の情報記憶スペースに送達するための構造を有するシステムに、接続を介して一義的に結合する。この方法は、サブシステムがそのシステムに接続されたとき、サブシステム中の情報記憶スペース中に情報が含まれていない場合、システムがシステムの一義的なコードをサブシステム中の情報記憶スペースに書き込む。情報記憶スペース中に情報がある場合、その情報がシステム中の一義的なコードと比較され、情報記憶スペース中の情報がシステムよって生成された一義的なコードとマッチする場合にのみシステムが動作できるようになる。【選択図】図４
2005182816.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサと、コードを記憶するための制限付き情報記憶スペースとを有するサブシステム装置を、マザーボードを識別するための一義的なコードを生成しそれを前記サブシステム中の前記情報記憶スペースに送達するためのプログラムを有するマザーボードに、接続を介して一義的に結合する方法であって、
前記サブシステムが前記マザーボードに接続されたとき、前記サブシステム中の前記情報記憶スペースに情報があるかどうか判定するステップと、
前記サブシステム中の前記情報記憶スペース中にコードが含まれていない場合、前記マザーボードの前記一義的なコードを、前記サブシステム中の前記情報記憶スペースに書き込むステップと、
前記情報記憶スペース中に情報がある場合、前記記憶スペース中の前記情報を前記一義的なコードと比較するステップと、前記情報記憶スペース中の前記情報が前記マザーボードによって生成される前記一義的なコードとマッチする場合にのみ前記マザーボードの動作を可能にするステップと
を含む方法。
【請求項２】
前記一義的なコードが、前記マザーボード中に含まれハッシュされた情報である、請求項１に記載の方法。
【請求項３】
ハッシュされた前記情報の少なくとも一部が前記マザーボード中のＢＩＯＳに含まれる、請求項２に記載の方法。
【請求項４】
前記情報記憶スペースへの書込みの前記制限が、固有の許可に対応するコードだけを前記情報記憶スペースが含むときにそれに上書きできるようにする前記固有の許可によって提供される、請求項１に記載の方法。
【請求項５】
前記一義的なコードが、ハッシュされたマザーボードのシリアル番号を含む、請求項２に記載の方法。
【請求項６】
前記マザーボードが、前記情報記憶スペース中に前記一義的なコードとは異なる情報があった場合にブートを妨げるプログラムを含む、請求項１に記載の方法。
【請求項７】
マイクロプロセッサと、コードを記憶するための制限付き情報記憶スペースとを有するサブシステム装置を、マザーボードを識別するための一義的なコードを生成しそれを前記サブシステム中の前記情報記憶スペースに送達するためのプログラムを有するマザーボードに、接続を介して一義的に結合する構造であって、
前記サブシステムが前記マザーボードに接続されたとき、前記サブシステム中の前記情報記憶スペースに情報があるかどうか判定し、前記サブシステム中の前記情報記憶スペース中にコードが含まれていない場合は、前記マザーボードの前記一義的なコードを、前記サブシステム中の前記情報記憶スペースに書き込み、前記情報記憶スペース中に情報がある場合は、前記記憶スペース中の前記情報を前記一義的なコードと比較し、前記情報記憶スペース中の前記情報が前記マザーボードによって生成された前記一義的なコードとマッチする場合にのみ前記マザーボードの動作を可能にするプログラムを含む構造。
【請求項８】
前記一義的なコードが、前記マザーボード中に含まれハッシュされた情報である、請求項７に記載の構造。
【請求項９】
ハッシュされた前記情報の少なくとも一部が前記マザーボード中のＢＩＯＳに含まれる、請求項８に記載の構造。
【請求項１０】
前記情報記憶スペースへの書込みの前記制限が、固有の許可に対応するコードだけを前記情報記憶スペースが含むときにそれに上書きできるようにする前記固有の許可によって提供される、請求項７に記載の構造。
【請求項１１】
前記一義的なコードが、ハッシュされたマザーボードのシリアル番号を含む、請求項８に記載の構造。
【請求項１２】
前記マザーボードが、前記情報記憶スペース中に前記一義的なコードとは異なる情報があった場合にブートを妨げるプログラムを含む、請求項７に記載の構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ・システムに関し、より詳細には、マザーボードと、このマザーボードに取外し可能に接続されたいくつかのサブシステムとからなるコンピュータ・システムに関する。さらに詳細には、本発明は、サブシステムが所与のマザーボードに自律的に一義的に結合され、他のマザーボードに接続された場合は動作不能になるシステムに関する。
【背景技術】
【０００２】
今日のコンピュータ・システムは、例えば、ＣＰＵなどのマザーボードおよびハード・ディスク・ドライブやアドオン・カード、光アダプタ、さらにプロセッサ、コプロセッサなどのいくつかのサブシステムなど、多くの様々な構成要素から構成することができる。サブシステムは、ケーブルまたはコネクタでマザーボードに接続されている。かかるサブシステムは無許可で取り外すことができ、盗みまたは機密情報の不法取得あるいはその両方を行うことができる。今日のオープンな環境（landscaping）およびサブシステムに容易に接近できることにより、これはますます大きな問題になりつつある。あるサブシステムを取り外しそれを別のマザーボードに挿入し、それによって機密情報にアクセスし、またはそのサブシステムをマザーボードで再使用しあるいはその両方を行うようにすることが可能である。
【０００３】
現在の解決策には、ユーザがサブシステムにマッチするパスワードをタイプ入力する必要があることがある。この解決策にはいくつかの欠点が含まれている。まず、ユーザは、選択されたパスワードを記憶しタイプ入力する必要がある。また、パスワードを知っているユーザはそのサブシステムを他の任意のマザーボード上で使用しあるいは使用法を他人に知らせることができるので、そのユーザによる盗難を防ぐことができない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、サブシステムが所与のマザーボードに自律的に一義的に結合され、他のマザーボードに接続された場合は動作不能になるシステムを提供することである。
【課題を解決するための手段】
【０００５】
マイクロプロセッサと、コードを記憶するための制限付き情報スペースとを有するサブシステム装置を、マザーボードを識別するための一義的なコードを生成しそれを前記サブシステム中の情報記憶スペースに送達するための構造を有するマザーボードに、接続を介して一義的に結合する方法を提供する。この方法は、以下の諸ステップを含む。
【０００６】
システムのための一義的なコードを作成し、サブシステムがそのシステムに接続されたとき、サブシステム中の情報記憶スペースに情報があるかどうか判定する。次いで、サブシステム中の情報記憶スペース中に情報が含まれていない（すなわち、記憶スペースがヌルにセットされている）場合、マザーボードが、マザーボードの一義的なコードをサブシステム中の情報記憶スペースに書き込む。情報記憶スペース中に情報がある場合、その記憶スペース中の情報が、マザーボード中の一義的なコードと比較され、情報記憶スペース中の情報がマザーボードによって生成された一義的なコードとマッチする場合にのみ、システムまたはサブシステムが動作できるようになる。一実施形態では、ある人が固有の許可を有する場合にのみ、この一義的なコードを変更できるような固有の許可が提供される。さらに、この方法を実施するための構造も提供される。
【発明を実施するための最良の形態】
【０００７】
次に図面、図１をまず参照すると、マザーボードおよび関連する２つのサブシステムを含むシステムの、非常にハイレベルな図面が示されている。マザーボードにはもっと多くのサブシステム、あるいは単に１つのサブシステムも接続できるが、２つを使用しているのは例示のためであることを理解されたい。図１では、コンピュータのメイン・ボードまたはマザーボード１０が示されており、サブシステム１２ａ、１２ｂが、その各システム上のピン１３およびマザーボード１０中のソケット１４を介してマザーボード１０に接続されている。通常、マザーボード１０は、個々のシステムに一義的な情報と、一義的な鍵を記憶するための記憶スペースまたはフィールドとを含むシステムＢＩＯＳ（Basic Input Output System）１５を有する。この一義的な情報は、システムのシリアル番号、そのＭＡＣアドレス、または追加される他の一義的なフィールドあるいはそれらの組合せを含むことができる。
【０００８】
概略図で示した、マイクロプロセッサ１７の一部であるまたはマイクロプロセッサ１７で制御されるハッシュ・プログラム１６が、マザーボード１０の選択された一義的な情報にハッシュ（hash）を行うとともに、ハッシュされた値をＢＩＯＳ１５中のそのために設けられたフィールドに記憶するために提供される。その記憶されたハッシュ値は、書込み保護される。ここで使用するハッシュとは、最大で、マザーボード１０上にあるすべての固有情報のコンテンツ全体にまでなる多量のデータを、個々のマザーボード１０を表す一義的で短い固定長値または鍵に変換することを意味する。各マザーボード１０には、その特定のシステムに固有の情報（例えば、シリアル番号）が含まれているので、ハッシュ値またはハッシュ・キーがシステムごとに異なる。どんなハッシュ・アルゴリズムでもハッシュを実施するのに使用できるが、業界標準であるＭＤアルゴリズムが好ましい。
【０００９】
各サブシステム１２ａ、１２ｂは、ハッシュ・キーまたはハッシュ値を記憶するのに十分な大きさの制限付き記憶スペースを定義するファームウェア２２を有するマイクロプロセッサ２０を含む。ここで使用する用語「制限付き記憶スペース」とは、一度書き込むと変更できない、あるいは固有の許可に関連してのみ消去できる記憶スペースを意味する。一実施形態では、ファームウェア２２の制限された構成がＷＯＲＭ（追記型）構成であり、ある値がファームウェア２２に書き込まれた後は、それを消去または変更することができなくなる。
【００１０】
次に図２を参照すると、マザーボードの最初のセットアップの流れが示されている。図２で示すように、まずプログラムはハッシュ・キーに使用されるマザーボード１０中の情報を読み取る。次いで、一義的なハッシュ・キーを作成し、作成されたハッシュ・キーをＢＩＯＳ１５中のハッシュ・キー用フィールドに記憶する。前述のように、ハッシュ・キーの記憶域は書込み保護されている。図３で示すように、各サブシステム１２ａ、１２ｂ中のファームウェアは、最初はヌル（null）値、すなわちデータがなくサブシステム１２ａ、１２ｂがマザーボード１０からハッシュ・コードを受け取る状態にあることを示す値にセットされる。これにより、マザーボードが、最初のブート時にヌル値を有する任意のサブシステム１２ａ、１２ｂに一義的なハッシュ・キーを書き込むことができるようになる。
【００１１】
サブシステム１２ａ、１２ｂがマザーボード１０に接続されたとき、まずサブシステム１２ａまたは１２ｂを見て、サブシステム１２ａ、１２ｂ内に含まれたファームウェア２２中に何か情報がないかどうか、すなわちヌルにセットされているかどうか調べるプログラムをマザーボード１０が有する。新しいサブシステム１２ａまたは１２ｂが接続されたマザーボード１０の最初のブート時もそうであるが、何も情報がない場合、プログラムは、一義的なハッシュ・キーを書込みが制限されるファームウェア２２に書き込み、それにより、サブシステム１２ａまたは１２ｂがマザーボード１０に一義的に結合される。サブシステム１２ａ、１２ｂは、検査してそれにヌル値があるかどうか調べ、ヌル値がなかった場合は、マザーボード１０にハッシュ・キーを要求することができる。サブシステム１２ａ、１２ｂ内のファームウェア２２への一義的なハッシュ・キーの書込みは、サブシステム１２ａまたは１２ｂがＢＩＯＳ１５から直接読み取ることにより、あるいはマザーボード１０がサブシステム１２ａまたは１２ｂにハッシュ・キーを渡すことにより行われる。ハッシュ・キーを含むＢＩＯＳ１５中のフィールドは書込み保護されているので、この鍵を消去または変更することができない。したがって、サブシステム１２ａまたは１２ｂが、そのシステムの一義的なコードを有するマザーボード１０に一義的に結合される。
【００１２】
続いて行われるシステムのブート時には、マザーボード１０中のプログラムが、各サブシステム１２ａ、１２ｂ中のファームウェア２２を見て、ファームウェア２２が情報をそこに有していると判定する。次いで、サブシステム１２ａまたは１２ｂのファームウェア２２中の情報がマザーボード１０のＢＩＯＳ１５に記憶されているハッシュ・キーと比較される。この比較は、サブシステム１２ａ、１２ｂ中のプログラムにより、サブシステム１２ａ、１２ｂにマザーボード１０から送られたハッシュ・キーとの間で行われ、あるいはＢＩＯＳ１５に記憶されたハッシュ・キーとの比較のために、サブシステム１２ａ、１２ｂのファームウェア２２中の情報を送られたマザーボード１０によって行われる。サブシステム１２ａ、１２ｂのファームウェア２２中の情報がマザーボード１０中の（ＢＩＯＳ１５に記憶されている）ハッシュ・キーにマッチした場合、ブート・シーケンスは先に進むが、マッチしない場合は、プログラムはブート・シーケンスを中断し、システムはブートされず、そのサブシステム１２ａまたは１２ｂが使用不可となる。これはすべて図４の流れ図に示してある。したがって、マザーボード１０の一義的なコードがサブシステム１２ａまたは１２ｂに書き込まれることにより、任意のサブシステム１２ａ、１２ｂがマザーボード１０に結合された後は、サブシステム１２ａまたは１２ｂのファームウェア２２中のコードを変更することができないため、そのサブシステム１２ａ、１２ｂを他のシステムで使用することができなくなる。
【００１３】
本発明の他の実施形態では、記憶スペース２２中の情報を変更できるが、正しい許可を有する人によってのみ変更することができる。したがって、サブシステム１２ａまたは１２ｂを他のシステムに移動したい場合、正しい許可を有する人は、記憶スペース２２中の情報を消去し、サブシステム１２ａまたは１２ｂを他のシステム１０に移動し、他のシステムに結合できるようにし、スペース２２中の情報が適正な許可を有する人によって再度消去されるまで、そのシステムに結合された状態を維持することができる。こうした実施形態の流れを図５で示す。使用する許可方式は、他の方式も使用できるが、公開鍵／秘密鍵暗号化方式であることが好ましい。公開鍵／秘密鍵暗号化は、当技術分野で周知であり、ウェブ・サイトhttp://computer.howstuffworks.com/encryption.htm中で簡単に説明されているが、他の暗号化方式を使用することもできる。本質的には、デバイス・フローの初期化（図３）時に、サブシステムのための秘密鍵と公開鍵の対が作成される。許可された人も一義的な秘密鍵と公開鍵の対を持つ。デバイス・フローの初期化で、許可された人の公開鍵がサブシステム内に記憶される。許可された人はまた、そのサブシステムの公開鍵へのアクセス権も有する。ハッシュ値を変更するためには、その許可された人の秘密鍵とサブシステムの公開鍵を用いてハッシュ変更コマンドを符号化する。サブシステムは、暗号化されたコマンドを受け取ると、ファームウェアに記憶されている許可された人の公開鍵、およびサブシステムの秘密鍵を用いてそのコマンドの復号化を試みる。このコマンドはこの組合せを用いたときだけ正しく復号され、また正しい許可を用いた場合にのみ、サブシステム１２ａ、１２ｂ中のファームウェア２２がヌル値にリセットされ新しいマザーボードで初期化される状態になる。この概念は拡張可能であり、サブシステムがそれぞれ異なる秘密鍵と公開鍵の対を有することもできる。鍵の初期化は、その最初の作成中かサブシステムのライフ・サイクル中の任意の時間に行うことができる。
【００１４】
本発明の例示的な実施形態に関する上記の説明は、例示および説明のために提示したものである。これは網羅的なものではなく、また開示された通りの実施形態に本発明を限定するものでもない。上記の教示に照らせば、多くの修正形態および変形形態が可能である。本発明の範囲は、この詳細な説明によって限定されるのではなく、本明細書に添付の特許請求の範囲によって限定されるものとする。
【図面の簡単な説明】
【００１５】
【図１】本発明による、マザーボード、サブシステム、およびそれらの相互接続を示す図である。
【図２】マザーボード中で、一義的なコードを生成するための作成シーケンスを示す図である。
【図３】サブシステムを最初にセットするための作成シーケンスを示す図である。
【図４】本発明の一実施形態の動作を示す流れ図である。
【図５】本発明の他の実施形態の動作を示す流れ図である。
【図６】一義的なコードを変更するための許可パスワードが生成される作成シーケンスを示す図２に類似した図である。
【符号の説明】
【００１６】
１０  マザーボード、システム
１２ａ  サブシステム
１２ｂ  サブシステム
１５  ＢＩＯＳ
１６  ハッシュ・プログラム
１７  マイクロプロセッサ
２０  マイクロプロセッサ
２２  ファームウェア、情報記憶スペース
【図１】
2005182816.tif 000003
【図２】
2005182816.tif 000004
【図３】
2005182816.tif 000005
【図４】
2005182816.tif 000006
【図５】
2005182816.tif 000007
【図６】
2005182816.tif 000008