(57)【要約】【課題】新規且つ改善された、情報記憶装置において初期ブート画像を管理する方法及びシステム。【解決手段】ユーザアドレッサブルなＬＢＡ空間を伴って構成された記憶装置は、初期ブート画像をＬＢＡ空間の当該ユーザアドレッサブルなＬＢＡ空間外の一領域に記憶する。初期ブート画像への更新は、スピードが求められる場合は暗号化されていないプロセスとして実行される。柔軟な更新のため、初期ブート画像の第２のコピーは記憶装置によって保持されてもよい。初期ブート画像の２つのコピーが保持される場合、１つがアクティブとして指定され、他方が更新に用いられる。コピーへの更新が完了すると、当該コピーがアクティブとして指定される（ステップ６１８）。【選択図】      図６
2010020753.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されたデータ及び暗号化されていないデータをホストから受信して処理するよう構成された記憶装置において初期ブート画像をインストール方法であって、
初期ブート画像を、暗号化されていないデータとして前記ホストから受信するステップと、
前記初期ブート画像についてデータ書き込み動作を実行するステップと、
を備える、初期ブート画像のインストール方法。
【請求項２】
前記データ書き込み動作は、マルチブロックデータ書き込み動作を備える、請求項１に記載のインストール方法。
【請求項３】
前記データ書き込み動作を実行するステップは、
前記記憶装置の論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域への書き込みを有効化するステップと、
前記初期ブート画像を前記領域に書き込むステップと、
を含む、請求項１に記載のインストール方法。
【請求項４】
前記ホストからユーザ証明を受信するステップと、
前記初期ブート画像への更新を、前記ユーザ証明に基づいて許可するステップと、
を更に備える、請求項１に記載のインストール方法。
【請求項５】
初期ブート画像の第１及び第２のコピーを保持するよう構成され、前記第１及び第２のコピーの一方は前記初期ブート画像のアクティブなコピーであるよう指定される記憶装置において初期ブート画像を更新する方法であって、
前記初期ブート画像への更新を受信するステップと、
受信した更新を用いて、前記初期ブート画像の前記第１及び第２のコピーの一方を更新するステップと、
を備える、初期ブート画像の更新方法。
【請求項６】
前記初期ブート画像のコピーの一方への更新が完了すると、前記コピーの一方をアクティブな初期ブート画像として指定するステップを更に備える、請求項５に記載の更新方法。
【請求項７】
前記第１及び第２のコピーの一方を更新するステップは、
前記記憶装置の論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域への書き込みを有効化するステップと、
前記更新を前記領域に書き込むステップと、
を含む、請求項５に記載の更新方法。
【請求項８】
ユーザアドレッサブルな論理ブロックアドレス空間を伴って構成された記憶装置であって、
論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域に記憶される、初期ブート画像の第１のコピーと、
前記論理ブロックアドレス空間の、前記ユーザアドレッサブルな論理ブロックアドレス空間外である領域に記憶される、前記初期ブート画像の第２のコピーと、
を備える記憶装置。
【請求項９】
前記第１のコピーと前記第２のコピーの一方を、アクティブなコピーとして指定するようプログラムされたコントローラを更に備える、請求項８に記載の記憶装置。
【請求項１０】
前記コントローラは、前記第１のコピーと前記第２のコピーのアクティブでない一方を更新し、更新の後、前記アクティブでない一方をアクティブなコピーとして指定するよう更にプログラムされた、請求項９に記載の記憶装置。
【請求項１１】
前記コントローラは、暗号化されていない形式で受信された前記初期ブート画像について、ＡＴＡ書き込み動作を実行するよう更にプログラムされた、請求項９に記載の記憶装置。
【請求項１２】
前記コントローラは、前記初期ブート画像のアクティブなコピーを、前記ユーザアドレッサブルな論理ブロックアドレス空間内の指定された領域から読み出し、読み出しが完了したら、前記ユーザアドレッサブルな論理ブロックアドレス空間内の前記指定された領域を用いて、オペレーティングシステムファイルをロードするよう更にプログラムされた、請求項９に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の各実施形態は情報記憶装置一般に関し、より具体的には、情報記憶装置において初期ブート画像を管理する方法及びシステムに関する。
【背景技術】
【０００２】
ラップトップやデスクトップコンピュータのハードディスクドライブといった情報記憶装置は、０から何らかの最大値まで番号付けされた論理ブロックとして、自身の物理メディアを接続されたホストシステムに公表する。論理ブロックにアクセスするために用いられるアドレスは、論理ブロックアドレス(logical block address)（ＬＢＡ）として知られている。ホストシステムが読み出し又は書き込み命令を発すると、読み出し又は書き込みされるデータのデータ長とＬＢＡが特定される。
【０００３】
従来のハードディスクドライブでは、データストラクチャ(data structure)はＬＢＡ＝０において格納され、このデータストラクチャは、ハードディスクドライブに記憶されたオペレーションシステムファイル(operation system files)へのポインタとして用いられる。従って、ホストシステムの電源が投入されると、ホストシステムはＬＢＡ＝０においてデータストラクチャを読み出し、このポインタによって特定されるロケーション(location)からホストのシステムのメモリへ、オペレーティングシステムファイルをロードする。
【０００４】
暗号化が可能なハードディスクドライブにおいて、例えばＬＢＡ＝０からＬＢＡ＝１２８ＭＢのＬＢＡ空間の底部(bottom)で正常に利用できるデータが、初期ブート画像(initial boot image)によって置き換えられる。この初期ブート画像は、多数の異なる売り手(vender)によって提供されるバイオメトリック入力装置(biometric input device)やスマートカードリーダ(smart card reader)等の種々の暗号化に関係する装置を操作するために必要とされる。この画像は一般に“シャドーＭＢＲ(shadow-MBR)”（“シャドーマスタブートレコード(shadow-Master Boot Record)”の省略）と称される。シャドーＭＢＲがロードされた後、ハードディスクドライブはユーザの認証を行う。ユーザ認証の後に、ＬＢＡ空間の底部の当初の内容へのアクセスが再構築され、ホストシステムはブートプロセス(boot process)を完了する。
【０００５】
シャドーＭＢＲの更新は、トラステッドセンド／レシーブ(Trusted Send/Receive)として技術的に知られる暗号化された読み出し／書き込みプロトコルを用いて行われる。シャドーＭＢＲを更新しようとするユーザは、書き換えられるシャドーＭＢＲの部分について新しいデータを送信することによって当該プロセスを開始するであろう。そして、シャドーＭＢＲの当該部分を新しいデータで上書きするようハードディスクドライブに命令することによって当該プロセスを終了するであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は、新規且つ改善された、情報記憶装置において初期ブート画像を管理する方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の各実施形態は、シャドーＭＢＲを管理するための改良された方法及びシステムを提供する。一実施形態によれば、更新のスピードを向上させるため、シャドーＭＢＲの更新はスタンダードＡＴＡ読み出し／書き込みコマンド等の暗号化されていないプロセスを用いて行われる。他の実施形態によれば、シャドーＭＢＲの２つのコピーが保持される。コピーの一方はアクティブであるよう指定され、他方は更新に用いられる。１つのコピーへの更新が完了すると、更新されたコピーがアクティブとなるよう指定される。
【０００８】
（１）本発明の一実施形態によれば、暗号化されたデータ及び暗号化されていないデータをホストから受信して処理するよう構成された記憶装置において初期ブート画像をインストール方法は、
初期ブート画像を、暗号化されていないデータとして前記ホストから受信するステップと、
前記初期ブート画像についてデータ書き込み動作を実行するステップと、
を備える。
【０００９】
（２）データ書き込み動作は、マルチブロックデータ書き込み動作を備える（１）に記載のインストール方法。
【００１０】
（３）データ書き込み動作は、ＡＴＡデータ書き込み動作を備える（２）に記載のインストール方法。
【００１１】
（４）データ書き込み動作を実行するステップは、記憶装置の論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域への書き込みを有効化するステップと、
初期ブート画像を前記領域に書き込むステップと、
を含む（１）に記載のインストール方法。
【００１２】
（５）前記領域は、ホストによって指定され、ホストによってランダムに選択される（４）に記載のインストール方法。
【００１３】
（６）ホストからユーザ証明を受信するステップと、
初期ブート画像への更新を、ユーザ証明に基づいて許可するステップと、
を更に備える（１）に記載のインストール方法。
【００１４】
（７）ユーザ証明は、暗号化プロトコルを用いて送信される（６）に記載のインストール方法。
【００１５】
（８）本発明の他の実施形態によれば、初期ブート画像の第１及び第２のコピーを保持するよう構成され、前記第１及び第２のコピーの一方は前記初期ブート画像のアクティブなコピーであるよう指定される記憶装置において初期ブート画像を更新する方法は、
前記初期ブート画像への更新を受信するステップと、
受信した更新を用いて、前記初期ブート画像の前記第１及び第２のコピーの一方を更新するステップと、
を備える。
【００１６】
（９）初期ブート画像のコピーの一方への更新が完了すると、コピーの一方をアクティブな初期ブート画像として指定するステップを更に備える（８）に記載の更新方法。
【００１７】
（１０）前記更新は暗号化されたデータとして受信される（９）に記載の更新方法。
【００１８】
（１１）前記更新はトラステッドセンド／レシーブコマンドの一部として受信される（１０）に記載の更新方法。
【００１９】
（１２）前記更新はネットワーク接続を通じて受信される（１１）に記載の更新方法。
【００２０】
（１３）前記更新は暗号化されていないデータとして受信される（９）に記載の更新方法。
【００２１】
（１４）第１及び第２のコピーの一方を更新するステップは、
記憶装置の論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域への書き込みを有効化するステップと、
前記更新を前記領域に書き込むステップと、
を含む（８）に記載の更新方法。
【００２２】
（１５）本発明の他の一実施形態によれば、ユーザアドレッサブルな論理ブロックアドレス空間を伴って構成された記憶装置は、
論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域に記憶される、初期ブート画像の第１のコピーと、
前記論理ブロックアドレス空間の、前記ユーザアドレッサブルな論理ブロックアドレス空間外である領域に記憶される、前記初期ブート画像の第２のコピーと、
を備える。
【００２３】
（１６）第１のコピーと第２のコピーの一方を、アクティブなコピーとして指定するようプログラムされたコントローラを更に備える（１５）に記載の記憶装置。
【００２４】
（１７）コントローラは、第１のコピーと第２のコピーのアクティブでない一方を更新し、更新の後、アクティブでない一方をアクティブなコピーとして指定するよう更にプログラムされた（１６）に記載の記憶装置。
【００２５】
（１８）コントローラは、暗号化された形式で受信された初期ブート画像への更新を復号するよう更にプログラムされた（１７）に記載の記憶装置。
【００２６】
（１９）コントローラは、暗号化されていない形式で受信された初期ブート画像について、ＡＴＡ書き込み動作を実行するよう更にプログラムされた（１６）に記載の記憶装置。
【００２７】
（２０）コントローラは、初期ブート画像のアクティブなコピーを、ユーザアドレッサブルな論理ブロックアドレス空間内の指定された領域から読み出し、読み出しが完了したら、ユーザアドレッサブルな論理ブロックアドレス空間内の指定された領域を用いて、オペレーティングシステムファイルをロードするよう更にプログラムされた（１６）に記載の記憶装置。
【発明の効果】
【００２８】
本発明によれば、新規且つ改善された、情報記憶装置において初期ブート画像を管理する方法及びシステムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の１以上の実施形態が実施され得る情報記憶装置及びホストプラットフォームの概略的なブロック図。
【図２】図１におけるハードディスクドライブの一実施形態を説明するブロック図。
【図３】図２におけるプリント基板の構成要素を概略的に説明するブロック図。
【図４】図３におけるシステムオンチップの構成要素を概略的に説明するブロック図。
【図５Ａ】従来技術による、ユーザアドレッサブルＬＢＡ空間を説明する図。
【図５Ｂ】本発明の１以上の実施形態による、ユーザアドレッサブルＬＢＡ空間を説明する図。
【図６】本発明の一実施形態による、記憶装置において初期ブート画像をインストールする方法を説明するフロー図。
【図７】本発明の一実施形態による、初期ブート画像の他方のコピーが使用されている間に、記憶装置において初期ブート画像の一方のコピーを更新する方法を説明するフロー図。
【図８】ホスト及び接続された記憶装置の通常のブートプロセスを説明するフロー図。
【発明を実施するための形態】
【００３０】
本発明の各実施形態は、記憶装置に記憶された、シャドーＭＢＲとして知られる初期ブート画像を管理する方法及びシステムを意図するものである。一実施形態によれば、更新のスピードを向上させるため、シャドーＭＢＲの更新はスタンダードＡＴＡ読み出し／書き込みコマンド等の暗号化されていないプロセスを用いて行われる。他の実施形態によれば、シャドーＭＢＲの２つのコピーが保持される。コピーの一方はアクティブであるよう指定され、他方は更新に用いられる。１つのコピーへの更新が完了すると、更新されたコピーがアクティブとなるよう指定される。本発明の各実施形態から恩恵を受け得る情報記憶装置としては、特にラップトップ及びデスクトップコンピュータのハードディスクドライブ（ＨＤＤ）、光学記憶装置、固体記憶装置、及び磁気メディアが含まれる。
【００３１】
図１は、本発明の１以上の実施形態が実施される情報記憶装置、すなわちＨＤＤ２００とホストプラットフォーム１００の概略的なブロック図である。ホストプラットフォーム１００は、ラップトップコンピュータやデスクトップコンピュータであっても、あるいはセットトップボックス、テレヴィジョン、ビデオプレーヤのような装置であってもよく、ＨＤＤ２００の１又は複数のセクタへのアクセスを要求する。あるいは、ホストプラットフォーム１００は、ＬＡＮ又はＷＡＮを通じてＨＤＤ２００にアクセスするリモートコンピューティング装置であってもよい。
【００３２】
一実施形態において、ホストプラットフォーム１００は、中央演算処理装置（ＣＰＵ）１０１、ＲＡＭ１０２、メモリコントローラハブ(memory controller hub)（ＭＣＨ）１０３、入出力（Ｉ／Ｏ）コントローラハブ１０４、複数の入出力（Ｉ／Ｏ）装置１０５〜１０８、及びＨＤＤ２００との通信リンク(communications link)１０９を含む。ホストプラットフォーム１００はまた、ホストプラットフォーム１００を構成するハードウェアの動作を管理及び調整し、ホストプラットフォーム１００へのユーザインタフェースを提供するホストプラットフォーム１００のソフトウェアコンポーネント、オペレーティングシステムを含む。オペレーティングシステムは通常、ホストプラットフォーム１００の動作中はＲＡＭ１０２内に存在する。ホストプラットフォーム１００がネットワークの一部である場合、ホストプラットフォーム１００の起動時に、オペレーティングシステムがネットワークストレージからダウンロードされてもよい。ホストプラットフォーム１００がラップトップやデスクトップ等のスタンドアロン(stand-alone)コンピュータに含まれている場合は、オペレーティングシステムは、ＨＤＤ２００又は当該スタンドアロンコンピュータの一部である他のローカルストレージからＲＡＭ１０２にロードされる。
【００３３】
ＣＰＵ１０１は、ホストプラットフォーム１００上で動作するソフトウェアプログラムを実行するプロセッサである。ＲＡＭ１０２は、ＣＰＵ１０１及びホストプラットフォーム１００の動作についての必要に応じてデータストレージを提供する。メモリコントローラハブ１０３は、ＣＰＵ１０１、ＲＡＭ１０２、Ｉ／Ｏコントローラハブ１０４、及びグラフィックスカード(graphics card)等のホストプラットフォーム１００に含まれ得るグラフィックスハードウェア(graphics hardware)の間の通信の経路を定める。Ｉ／Ｏコントローラハブ１０４は、Ｉ／Ｏ装置に対してホストプラットフォーム１００とのインタフェースを提供し、Ｉ／Ｏ装置へのデータ及びＩ／Ｏ装置からのデータの経路を定めて制御する。図１に示すように、ホストプラットフォーム１００は、ＨＤＤ２００、マウス１０５、キーボード１０６、バイオメトリックセンサ(biometric sensor)１０７、及びスマートカードリーダ(smart card reader)１０８を含む複数のＩ／Ｏ装置を含む。マウス１０５及びキーボード１０６は、ホストプラットフォーム１００に対する通常のコンピュータインタフェースをユーザ１５０に提供し、ユーザ１５０によるユーザＩＤ番号や英数字のパスワード及びアクセスコード等のユーザ証明(user credential)の入力を可能にする。バイオメトリックセンサ１０７は、ユーザのバイオメトリック証明(biometric credential)をホストプラットフォーム１００に入力できるようにする。例えば、バイオメトリックセンサ１０７はユーザの指紋を入力するための指紋スキャナ(fingerprint scanner)であってもよい。バイオメトリクス証明の他の例としては、顔、手、及び虹彩の幾何形状が含まれる。スマートカードリーダ１０８はスマートカード(smart card)を受け入れて読み取るよう構成され、スマートカードはポケットサイズ又はクレジットカードサイズのカードであり、暗号化されたアクセスコードを含む集積回路が組み込まれている。
【００３４】
ホストプラットフォーム１００は、通信リンク１０９を介してＨＤＤ２００に接続される。ホストプラットフォーム１００がスタンドアロンコンピュータに含まれている場合には、通信リンク１０９はＩ／Ｏコントローラハブ１０４を介してＨＤＤ２００をＣＰＵ１０１に接続する内部バスを表す。ホストプラットフォーム１００がネットワークの一部である場合は、通信リンク１０９はホストプラットフォーム１００とＨＤＤ２００の間のネットワーク接続を含む。一実施形態において、ＨＤＤ２００は、ラップトップやデスクトップコンピュータ等のホストプラットフォーム１００を構成するコンピューティング装置内に含まれる。他の実施形態では、ＨＤＤ２００はホストプラットフォーム１００から物理的に分離され、ホストプラットフォーム１００によって設定されたネットワーク接続を介して遠隔アクセスされる。
【００３５】
図２は、図１におけるＨＤＤ２００の一実施形態を説明するブロック図である。ＨＤＤ２００の機械的な構成要素は、スピンドルモータ２０２によって回転される磁気ディスク２０１と、サスペンションアーム２０３の一端に配置された読み出し／書き込みヘッド２０４を含む。アームアクチュエータ２０５はサスペンションアーム２０３に連結され、磁気ディスク２０１上の異なるトラックにアクセスするため要求のとおりにアーム２０３を動かす。ＨＤＤ２００の電子的な構成要素は、プリント基板ＰＣＢ３００及びプリアンプ(pre-amplifier)２０７を含み、後者は読み出し／書き込みヘッド２０４に電気的に接続されている。プリアンプ２０７は、読み出し／書き込みヘッド２０４への信号、及び読み出し／書き込みヘッド２０４からの信号を調節し増幅する。ＰＣＢ３００は、システムオンチップ(system-on-chip)（ＳｏＣ）、ＲＡＭ、及びＨＤＤ２００を動作させるための他の集積回路を含み、以下では図３及び図４に関連して説明される。図示の通り、ＰＣＢ３００は、電気的接続２０６を介してプリアンプ２０７に、電気的接続２０８を介してスピンドルモータ２０２に、電気的接続２０９を介してアームアクチュエータ２０５に電気的に接続される。ＰＣＢ３００は、ホストプラットフォーム１００と通信リンク１０９を介して通信するが、通信リンク１０９はＳＡＴＡ、ＰＡＴＡ、ＳＣＳＩ又は他のインタフェースケーブルであってもよい。
【００３６】
図３は、図２におけるＰＣＢ３００の構成要素を概略的に示すブロック図である。ＰＣＢ３００はＳｏＣ４００、ＤＲＡＭ３０２、フラッシュメモリ３０１、及びコンボチップ３０３を含み、ＤＲＡＭ３０２はＳｏＣ４００の内部にあっても外部にあってもよく、コンボチップ３０３はスピンドルモータ２０２とアームアクチュエータ２０５を駆動する。コンボチップ３０３はまた、ＳｏＣ４００、プリアンプ２０７及びＳｏＣ４００に含まれるモータコントローラ(motor controllers)のための電圧レギュレータを含む。図示のように、フラッシュメモリ３０１とＤＲＡＭ３０２はＳｏＣ４００に連結され、ＳｏＣ４００は通信リンク１０９を介してホストプラットフォーム１００と、電気的接続２０６を介してプリアンプ３０７と、シリアルバス３０４を介してコンボチップ３０３とインタフェースする。実施形態によっては、フラッシュメモリ３０１はＳｏＣ４００内に存在する。ＨＤＤ２００のファームウェアは、フラッシュメモリ３０１内に存在する。別の構成においては、変更不能なファームウェアのごく一部がＳｏＣ４００内のリードオンリーメモリ内に存在し、ファームウェアの大部分は磁気ディスク２０１上に存在して電源投入直後にロードされる。
【００３７】
図４は、図３におけるＳｏＣ４００の構成要素を概略的に示すブロック図である。ＳｏＣ４００は特定用途向け集積回路(application-specific integrated circuit)（ＡＳＩＣ）であり、ＨＤＤ２００が周期的な再認証に基づく安全なユーザアクセスを提供し、ファームウェアを安全にダウンロードし、暗号化されたデータを磁気ディスク２０１に記憶するために必要な制御及び暗号化／復号動作を実行するように構成される。ＳｏＣ４００は特定の機能を実行するよう設計された多数の機能ブロックを含む。プロセッサ４０１はＨＤＤ２００の動作を制御するよう構成されたマイクロコントローラであり、図示のように、ＳｏＣ４００の他の機能ブロックと通信するための入力／出力機能性及びＲＡＭを有する。一実施形態において、プロセッサ４０１は、ＰＣＢ３００上でフラッシュメモリ３０１の近くに配置されるよりもむしろ、フラッシュメモリ３０１を内部に伴って構成されてもよい。ＳＡＴＡブロック４０２はＳｏＣ４００に含まれる入力／出力ブロックであり、通信リンク１０９を介してホストプラットフォーム１００へ信号を送信しホストプラットフォーム１００から信号を受信する。コンボチップＩ／Ｏブロック４０９は、シリアルバス３０４を介したプロセッサ４０１とコンボチップ３０３との間の通信専用のＩ／Ｏブロックである。プロセッサ４０１はまた、ＨＤＤ２００とホストプラットフォーム１００の間のデータトラフィック、特に暗号化キー等のセキュリティ関係のトラフィックを暗号化するよう構成されている。プロセッサ４０１及び／又はブロック４０３は、ＨＤＤ２００を発してホストプラットフォーム１００に送信されるトラフィックを暗号化する。ホストプラットフォーム１００はそれから、暗号化されたデータトラフィックがホストプラットフォーム１００によって使用可能となる前に、適切な暗号化キー(encryption key)を用いてこのようなデータを復号しなくてはならない。トラフィックは同様に、ホストプラットフォーム１００からＨＤＤ２００へ暗号化される。ＨＤＤ２００とホストプラットフォーム１００との間の暗号化された制御トラフィック(control traffic)の動きは、“トラステッドセンド(trusted send)／トラステッドレシーブ(trusted receive)”コマンドを使用する。
【００３８】
暗号化／復号ブロック４０３は、プロセッサ４０１の制御下にあり、ＳＡＴＡブロック４０２とＳｏＣ４００の他の全ての構成要素との間のデータパスに配置され、安全な記憶のため入ってくるデータを暗号化し、ホストプラットフォーム１００による使用のため出ていくデータを復号する。すなわち、暗号化／復号ブロック４０３は、ＳＡＴＡブロック４０２を介したホストプラットフォーム１００からの入力データを受信して暗号化し、ＳＡＴＡブロック４０２を介したホストプラットフォーム１００へ出力データ、すなわちＨＤＤ２００からアクセスされたデータを復号して送信する。暗号化／復号ブロック４０３は、暗号化キーを保持しデータトラフィックの暗号化／復号の間にデータをバッファするメモリに加えて、所望の暗号化アルゴリズムを実施する状態機械(state machine)も含む。動作中、暗号化／復号ブロック４０３は、ホストプラットフォーム１００からのデータを暗号化されていない形式で受信する。適切な暗号化キーが、入ってくるデータと共に用いられるために提供されると、当該データは暗号化／復号ブロック４０３によって暗号化され、ＤＲＡＭ３０２又は磁気ディスク２０１に記憶される。ホストプラットフォーム１００が記憶されたデータを取り出す場合、暗号化されていないデータをホストが受信するよう、暗号化／復号ブロック４０３は、ＳＡＴＡブロック４０２による送信に先立ってデータを復号する。
【００３９】
ＤＲＡＭコントローラ４０４は、ＨＤＤ２００の適切な動作についての必要に応じて、暗号化／復号ブロック４０３、プロセッサ４０１、読み出し／書き込みチャネル４０５及びエラー訂正及び生成ブロック４０６からＤＲＡＭ３０２へアクセスできるようにし、ＤＲＡＭ３０２をリフレッシュしＤＲＡＭ３０２の使用を調整する。ＤＲＡＭ３０２は、磁気ディスク２０１に書き込まれている又は磁気ディスク２０１から読み出されているデータ及び暗号化の後ホストプラットフォーム１００から受信されるデータのＤＲＡＭバッファとして機能する。ＤＲＡＭ３０２は、図示のようにＳｏＣ４００の外部にあってもよいが、あるいはＳｏＣ４００内に含まれる機能ブロックの１つを構成してもよい。磁気ディスク２０１からのエラーの無いデータ取り出しのためには、復号及びホストプラットフォーム１００への送信のためにデータがＤＲＡＭ３０２にバッファされる前に、エラー訂正ブロック４０６は磁気ディスク２０１から読み出されたデータに対してエラー訂正を適用する。加えて、データが磁気ディスク２０１に書き込みされている時は、エラー訂正ブロック４０６は当該データに情報を付加して、磁気ディスク２０１からのデータ読み出しの際にエラー訂正が可能となるようにする。
【００４０】
ホストプラットフォーム１００が磁気ディスク２０１からデータを読み出すためには、読み出し／書き込みヘッド２０４によって磁気ディスク２０１からデータが読み出され、プリアンプ２０７によって調整され、電気的接続２０６Ａによってアナログ・デジタル変換器４０７へアナログ信号として運ばれる。アナログ・デジタル変換器４０７はアナログ信号をデジタル信号４１１に変換し、デジタル信号４１１はスプリッタブロック４０８に送られる。モータ２０５を用いるアームアクチュエータ２０３及びスピンドルモータ２０２の最適な制御のため、スプリッタブロック４０８は、デジタル信号４１１から、適切なサーボ関連のデータをサーボブロック４１０へ送る。スプリッタブロック４０８は、ホストプラットフォーム１００によって要求されたデータを読み出し／書き込みチャネル４０５へ送り、読み出し／書き込みチャネル４０５はエラー訂正ブロック４０６を介して当該データをＤＲＡＭ３０２に送るが、これは当該データが復号されてホストプラットフォーム１００に送信され得るまでバッファするためである。
【００４１】
ホストプラットフォーム１００による磁気ディスク２０１上へのデータの記憶のため、暗号化されたデータは必要に応じてＤＲＡＭ３０２にバッファされ、エラー訂正ブロック４０６を介した後、読み出し／書き込みチャネル４０５へ送られる。読み出し／書き込みチャネル４０５はその後電気的接続２０６Ｂを介してプリアンプ２０７へデジタル信号を送り、プリアンプ２０７は、読み出し／書き込みヘッド２０４が磁気ディスク２０１に暗号化されたデータを書き込めるように、デジタル信号を調節及び増幅する。暗号化されたデータはＨＤＤ２００に含まれる記憶メディア、すなわちＤＲＡＭ３０２や磁気ディスク２０１内に存在することが、当業者には理解されるだろう。
【００４２】
ＨＤＤ２００は、自身の物理メディアを０から何らかの最大値まで番号付けされた論理ブロックとして公表する。各論理ブロックは物理メディア上の対応するブロック（トラック及びセクタ番号で定められる）へとマップされ、ＨＤＤ２００のプロセッサ４０１は、このような論理ブロックから物理ブロックへのマップを保持する。図５Ａに示すように、ユーザによるアドレス指定が可能（ユーザアドレッサブル(user-addressable)）なＬＢＡ空間は、ＬＢＡ＝０から何らかの最大値ＬＢＡ＝ｍａｘまでに及ぶ。従来の全ディスク暗号化(full disk encryption)ハードディスクドライブでは、ＬＢＡ空間の始めのＮ（例えば１２８）ＭＢが、マスタブートレコード(master boot record)のために確保され、ＬＢＡ＝ｍａｘを超えた、ＬＢＡ空間の斜線領域にはアクセスできない。
【００４３】
本実施形態の各実施形態では、図５Ｂに示すＬＢＡ＝ｍａｘを超えたＬＢＡ空間の領域が、特定の条件下で読み出し命令及び書き込み命令についてアクセス可能とされる。この領域内に、シャドーＭＢＲ(shadow-MBR)の２つのコピーＭＢＲ０とＭＢＲ１が記憶される。シャドーＭＢＲのコピーの１つはアクティブとされ、他方のコピーは更新を受信するのに使用される。
【００４４】
図６は、本発明の一実施形態による、記憶装置においてシャドーＭＢＲ、あるいは初期ブート画像（以下では、“ＭＢＲ”と称する）をインストールする方法を説明するフロー図である。ステップ６１０では、ユーザは記憶装置に接続されたホストにログインする。ユーザは、１又は複数のユーザ証明(user credential)を、対応するユーザ識別名又は識別番号と組み合わせてホストに提供することでホストにログインする。この目的のためのユーザ証明は特に、英数字のアクセスコード、指紋スキャン(fingerprint scan)等の１又は複数のバイオメトリック証明(biometric credential)、あるいは適切にエンコードされたスマートカードを含んでもよい。更にセキュリティを向上させるため、ユーザ証明の組み合わせの入力は、各々のログインの成功ごとに要求されてもよい。ユーザログインの成功の後、フローはステップ６１２に進む。
【００４５】
ステップ６１２では、ホストは記憶装置においてユーザを認証するのに用いられるユーザ認証データ(user authentication data)を生成し、当該ユーザ認証データを記憶装置へ送信する。ホストは、記憶装置に対して異なるユーザを設定した際に記憶された情報を用いて、当該ユーザ認証データを生成する。
【００４６】
ステップ６１４は記憶装置によって実行され、記憶装置は、ホストから受信したユーザ認証データを用いて、ＭＢＲを修正できる管理者(administrator)としてユーザが認証されたかを判断する。ユーザ認証は、２００８年３月３１日に提出された「記憶装置及び暗号化方法」と題された米国特許出願１２／０６０，１８２に基づき２００９年２月２３日に出願された特願２００９−０１８５９３号に記載された方法を用いて実行されてもよい。
【００４７】
ユーザがＭＢＲを修正できる管理者として認証されると、ステップ６１６〜６２０が実行される。ユーザがＭＢＲを修正できる管理者として認証されなければ、当該ユーザにはＭＢＲへの読み出し／書き込みアクセスが許可されない（ステップ６２２）。
【００４８】
ステップ６１６では、ata_enable_mbr関数が実行される。ata_enable_mbr関数は、スタンダードＡＴＡ読み出し／書き込みコマンドを用いたＭＢＲへの読み出し／書き込みアクセスを可能とする。この関数は、記憶装置へのネットワークアクセスではなくローカルアクセスを用いる安全なロケーション(secure location)のみに使用されることが推奨される。この設定は、揮発性である。コンテクスト(context)が次に失われると、ＭＢＲはもはやＡＴＡ読み出し／書き込みコマンドを介してアクセスできない。ＭＢＲは、ベースＬＢＡ(base_LBA)値において利用可能とされる。ベースＬＢＡ値はユーザアドレッサブルなＬＢＡ空間の最大のＬＢＡより大きく（すなわちＬＢＡ＝ｍａｘより大きく）、２Ｍ−１から２つのＭＢＲのサイズを引いた値（ここでＡＴＡインタフェースについてはＭ＝４８である）より小さい。一実施形態において、ＭＢＲ０はベースＬＢＡにおいて利用可能であり、ＭＢＲ１はベースＬＢＡに１つのＭＢＲコピーのサイズを加えたところで利用可能である。一実施形態において、ホストはベースＬＢＡをランダムに指定し、ＬＢＡ＝ｍａｘより大きい、ユーザアドレッサブルなＬＢＡ空間内のランダムなロケーションにＭＢＲが記憶される。
【００４９】
ステップ６１８では、ＡＴＡ書き込み動作がホストによって指定されたＬＢＡロケーション(LBA location)において行われる。ＭＢＲの１回目のインストールについては、このロケーションは、ホストによって指定されたベースＬＢＡと等しい。既存のＭＢＲの更新については、ＡＴＡ書き込み動作が実行されて、現在アクティブでないＭＢＲのコピーが上書きされる。更新の後、ユーザが記憶装置に２つのＭＢＲの役割を切り替えるよう命令してもよく、ちょうど更新された一方がアクティブなＭＢＲとなり、他方が続く更新に用いられる。ＡＴＡ書き込み動作は、ホストから受信された暗号化されていないデータに対して実行され、これは非常に速いＭＢＲの書き込みを可能とする。いったんインストールが完了すると、記憶装置はパワーダウンされる(powered down)（ステップ６２０）。
【００５０】
図７は、本発明の一実施形態による、ＭＢＲの他のコピーが使用されている間、記憶装置においてＭＢＲの１つのコピーを更新する方法を説明するフロー図である。ステップ７１０〜７１４は、上述のステップ６１０〜６１４と同様の方法で実行される。
【００５１】
ユーザがＭＢＲを修正できる管理者として認証されると、ステップ７１６〜７２０が実行される。ユーザがＭＢＲを修正できる管理者として認証されなければ、当該ユーザにはＭＢＲへの読み出し／書き込みアクセスが許可されない（ステップ７２４）。
【００５２】
ステップ７１６では、write_mbr関数を用いたＭＢＲへの書き込みが可能とされる。write_mbr関数によっては、ＭＢＲへの書き込みを可能とする。そして、ステップ７１８では、ユーザは使用されていないＭＢＲのコピーを更新する。更新はちょうど更新された部分の部分的な書き込みであっても、ＭＢＲ全体の上書きであってもよい。その後、ステップ７２０では、更新されたＭＢＲのコピーがenable_mbr関数を用いてアクティブなＭＢＲとして指定される。enable_mbr関数は、電源投入時に、２つのＭＢＲのうち１つがユーザアドレッサブルなＬＢＡ空間の初めの１２８ＭＢ部分と置き換わるのを可能とする。０に設定されたフラグがＭＢＲ０を有効化し、１に設定されたフラグはＭＲＢ１を有効化する。ＭＢＲ０又はＭＢＲ１のどちらかが有効化されていれば、記憶装置の次回の電源投入時に、当該有効化されたＭＢＲが再びＬＢＡ空間の初めの１２８ＭＢ部分と置き換わる。
【００５３】
図８は、ホスト及び接続された記憶装置の通常のブートプロセスを説明するフロー図である。ステップ８１０では、記憶装置はＭＢＲ０とＭＢＲ１のどちらかが有効化されているかをチェックする。enable_mbr関数は、電源投入時に２つのＭＢＲの一方をユーザアドレッサブルなＬＢＡ空間の初部と置き換わらせる。ユーザアドレッサブルなＬＢＡ空間の初部と置き換わったＭＢＲは、固定長であり読み出し専用となる。close_mbr関数は、ＭＢＲを無効化する。ＭＢＲが有効であると、当該ＭＢＲが次の電源投入時にＬＢＡ空間と置き換わる。
【００５４】
ＭＢＲ０とＭＢＲ１のどちらかが有効化されていると、ステップ８１２〜８１６が実行される。そうでなければステップ８１８が実行される。ステップ８１８では、オペレーティングシステムがＬＢＡ空間の初部を用いてロードされ、ブートプロセスが完了する。
【００５５】
ステップ８１２では、有効化されたＭＢＲがＬＢＡ空間の初部から読み出され、ユーザを認証するために、プリブートオペレーティングシステム(pre-boot operating system)が有効化されたＭＢＲから実行される。そしてステップ８１４では、ユーザが記憶装置上の“オープンな”ロックされたパーティション(“open” locked partition)にログインされる。その後、アクティブなＭＢＲがステップ８１６でクローズ(close)され、アクティブなＭＢＲはもはや、ユーザアドレッサブルなＬＢＡ空間の初部とは置き換わらない。ステップ８１８が、上述のようにステップ８１６の後に実行される。
【００５６】
ユーザがＭＢＲの非常に小さい部分を変更することを所望すれば、あるいはＭＢＲへの更新命令がネットワークを通じて送信されると、ユーザは図７の方法を用いること、及びトラステッドセンド／レシーブとして技術的に知られる暗号化された書き込み／読み出しプロトコルを用いてＭＢＲへの書き込みを実行することができる。
【００５７】
上記の記載は本発明の各実施形態を対象にしているが、本発明の他の更なる実施形態が本発明の基本的な範囲を逸脱することなく考案されてもよく、本発明の範囲は以下の特許請求の範囲によって決定される。
【符号の説明】
【００５８】
１００…ホストプラットフォーム、１０１…ＣＰＵ、１０２…ＲＡＭ、１０３…ＭＣＨ、１０４…Ｉ／Ｏコントローラハブ、１０５…マウス、１０６…キーボード、１０７…バイオメトリクスセンサ、１０８…スマートカードリーダ、１０９…通信リンク、１５０…ユーザ、２００…ＨＤＤ。
【図１】
2010020753.tif 000003
【図２】
2010020753.tif 000004
【図３】
2010020753.tif 000005
【図４】
2010020753.tif 000006
【図５Ａ】
2010020753.tif 000007
【図５Ｂ】
2010020753.tif 000008
【図６】
2010020753.tif 000009
【図７】
2010020753.tif 000010
【図８】
2010020753.tif 000011