説明

初期ブート画像のインストール方法、初期ブート画像の更新方法、及び記憶装置

【課題】新規且つ改善された、情報記憶装置において初期ブート画像を管理する方法及びシステム。
【解決手段】ユーザアドレッサブルなLBA空間を伴って構成された記憶装置は、初期ブート画像をLBA空間の当該ユーザアドレッサブルなLBA空間外の一領域に記憶する。初期ブート画像への更新は、スピードが求められる場合は暗号化されていないプロセスとして実行される。柔軟な更新のため、初期ブート画像の第2のコピーは記憶装置によって保持されてもよい。初期ブート画像の2つのコピーが保持される場合、1つがアクティブとして指定され、他方が更新に用いられる。コピーへの更新が完了すると、当該コピーがアクティブとして指定される(ステップ618)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の各実施形態は情報記憶装置一般に関し、より具体的には、情報記憶装置において初期ブート画像を管理する方法及びシステムに関する。
【背景技術】
【0002】
ラップトップやデスクトップコンピュータのハードディスクドライブといった情報記憶装置は、0から何らかの最大値まで番号付けされた論理ブロックとして、自身の物理メディアを接続されたホストシステムに公表する。論理ブロックにアクセスするために用いられるアドレスは、論理ブロックアドレス(logical block address)(LBA)として知られている。ホストシステムが読み出し又は書き込み命令を発すると、読み出し又は書き込みされるデータのデータ長とLBAが特定される。
【0003】
従来のハードディスクドライブでは、データストラクチャ(data structure)はLBA=0において格納され、このデータストラクチャは、ハードディスクドライブに記憶されたオペレーションシステムファイル(operation system files)へのポインタとして用いられる。従って、ホストシステムの電源が投入されると、ホストシステムはLBA=0においてデータストラクチャを読み出し、このポインタによって特定されるロケーション(location)からホストのシステムのメモリへ、オペレーティングシステムファイルをロードする。
【0004】
暗号化が可能なハードディスクドライブにおいて、例えばLBA=0からLBA=128MBのLBA空間の底部(bottom)で正常に利用できるデータが、初期ブート画像(initial boot image)によって置き換えられる。この初期ブート画像は、多数の異なる売り手(vender)によって提供されるバイオメトリック入力装置(biometric input device)やスマートカードリーダ(smart card reader)等の種々の暗号化に関係する装置を操作するために必要とされる。この画像は一般に“シャドーMBR(shadow-MBR)”(“シャドーマスタブートレコード(shadow-Master Boot Record)”の省略)と称される。シャドーMBRがロードされた後、ハードディスクドライブはユーザの認証を行う。ユーザ認証の後に、LBA空間の底部の当初の内容へのアクセスが再構築され、ホストシステムはブートプロセス(boot process)を完了する。
【0005】
シャドーMBRの更新は、トラステッドセンド/レシーブ(Trusted Send/Receive)として技術的に知られる暗号化された読み出し/書き込みプロトコルを用いて行われる。シャドーMBRを更新しようとするユーザは、書き換えられるシャドーMBRの部分について新しいデータを送信することによって当該プロセスを開始するであろう。そして、シャドーMBRの当該部分を新しいデータで上書きするようハードディスクドライブに命令することによって当該プロセスを終了するであろう。
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、本発明は、新規且つ改善された、情報記憶装置において初期ブート画像を管理する方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の各実施形態は、シャドーMBRを管理するための改良された方法及びシステムを提供する。一実施形態によれば、更新のスピードを向上させるため、シャドーMBRの更新はスタンダードATA読み出し/書き込みコマンド等の暗号化されていないプロセスを用いて行われる。他の実施形態によれば、シャドーMBRの2つのコピーが保持される。コピーの一方はアクティブであるよう指定され、他方は更新に用いられる。1つのコピーへの更新が完了すると、更新されたコピーがアクティブとなるよう指定される。
【0008】
(1)本発明の一実施形態によれば、暗号化されたデータ及び暗号化されていないデータをホストから受信して処理するよう構成された記憶装置において初期ブート画像をインストール方法は、
初期ブート画像を、暗号化されていないデータとして前記ホストから受信するステップと、
前記初期ブート画像についてデータ書き込み動作を実行するステップと、
を備える。
【0009】
(2)データ書き込み動作は、マルチブロックデータ書き込み動作を備える(1)に記載のインストール方法。
【0010】
(3)データ書き込み動作は、ATAデータ書き込み動作を備える(2)に記載のインストール方法。
【0011】
(4)データ書き込み動作を実行するステップは、記憶装置の論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域への書き込みを有効化するステップと、
初期ブート画像を前記領域に書き込むステップと、
を含む(1)に記載のインストール方法。
【0012】
(5)前記領域は、ホストによって指定され、ホストによってランダムに選択される(4)に記載のインストール方法。
【0013】
(6)ホストからユーザ証明を受信するステップと、
初期ブート画像への更新を、ユーザ証明に基づいて許可するステップと、
を更に備える(1)に記載のインストール方法。
【0014】
(7)ユーザ証明は、暗号化プロトコルを用いて送信される(6)に記載のインストール方法。
【0015】
(8)本発明の他の実施形態によれば、初期ブート画像の第1及び第2のコピーを保持するよう構成され、前記第1及び第2のコピーの一方は前記初期ブート画像のアクティブなコピーであるよう指定される記憶装置において初期ブート画像を更新する方法は、
前記初期ブート画像への更新を受信するステップと、
受信した更新を用いて、前記初期ブート画像の前記第1及び第2のコピーの一方を更新するステップと、
を備える。
【0016】
(9)初期ブート画像のコピーの一方への更新が完了すると、コピーの一方をアクティブな初期ブート画像として指定するステップを更に備える(8)に記載の更新方法。
【0017】
(10)前記更新は暗号化されたデータとして受信される(9)に記載の更新方法。
【0018】
(11)前記更新はトラステッドセンド/レシーブコマンドの一部として受信される(10)に記載の更新方法。
【0019】
(12)前記更新はネットワーク接続を通じて受信される(11)に記載の更新方法。
【0020】
(13)前記更新は暗号化されていないデータとして受信される(9)に記載の更新方法。
【0021】
(14)第1及び第2のコピーの一方を更新するステップは、
記憶装置の論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域への書き込みを有効化するステップと、
前記更新を前記領域に書き込むステップと、
を含む(8)に記載の更新方法。
【0022】
(15)本発明の他の一実施形態によれば、ユーザアドレッサブルな論理ブロックアドレス空間を伴って構成された記憶装置は、
論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域に記憶される、初期ブート画像の第1のコピーと、
前記論理ブロックアドレス空間の、前記ユーザアドレッサブルな論理ブロックアドレス空間外である領域に記憶される、前記初期ブート画像の第2のコピーと、
を備える。
【0023】
(16)第1のコピーと第2のコピーの一方を、アクティブなコピーとして指定するようプログラムされたコントローラを更に備える(15)に記載の記憶装置。
【0024】
(17)コントローラは、第1のコピーと第2のコピーのアクティブでない一方を更新し、更新の後、アクティブでない一方をアクティブなコピーとして指定するよう更にプログラムされた(16)に記載の記憶装置。
【0025】
(18)コントローラは、暗号化された形式で受信された初期ブート画像への更新を復号するよう更にプログラムされた(17)に記載の記憶装置。
【0026】
(19)コントローラは、暗号化されていない形式で受信された初期ブート画像について、ATA書き込み動作を実行するよう更にプログラムされた(16)に記載の記憶装置。
【0027】
(20)コントローラは、初期ブート画像のアクティブなコピーを、ユーザアドレッサブルな論理ブロックアドレス空間内の指定された領域から読み出し、読み出しが完了したら、ユーザアドレッサブルな論理ブロックアドレス空間内の指定された領域を用いて、オペレーティングシステムファイルをロードするよう更にプログラムされた(16)に記載の記憶装置。
【発明の効果】
【0028】
本発明によれば、新規且つ改善された、情報記憶装置において初期ブート画像を管理する方法及びシステムを提供することができる。
【図面の簡単な説明】
【0029】
【図1】本発明の1以上の実施形態が実施され得る情報記憶装置及びホストプラットフォームの概略的なブロック図。
【図2】図1におけるハードディスクドライブの一実施形態を説明するブロック図。
【図3】図2におけるプリント基板の構成要素を概略的に説明するブロック図。
【図4】図3におけるシステムオンチップの構成要素を概略的に説明するブロック図。
【図5A】従来技術による、ユーザアドレッサブルLBA空間を説明する図。
【図5B】本発明の1以上の実施形態による、ユーザアドレッサブルLBA空間を説明する図。
【図6】本発明の一実施形態による、記憶装置において初期ブート画像をインストールする方法を説明するフロー図。
【図7】本発明の一実施形態による、初期ブート画像の他方のコピーが使用されている間に、記憶装置において初期ブート画像の一方のコピーを更新する方法を説明するフロー図。
【図8】ホスト及び接続された記憶装置の通常のブートプロセスを説明するフロー図。
【発明を実施するための形態】
【0030】
本発明の各実施形態は、記憶装置に記憶された、シャドーMBRとして知られる初期ブート画像を管理する方法及びシステムを意図するものである。一実施形態によれば、更新のスピードを向上させるため、シャドーMBRの更新はスタンダードATA読み出し/書き込みコマンド等の暗号化されていないプロセスを用いて行われる。他の実施形態によれば、シャドーMBRの2つのコピーが保持される。コピーの一方はアクティブであるよう指定され、他方は更新に用いられる。1つのコピーへの更新が完了すると、更新されたコピーがアクティブとなるよう指定される。本発明の各実施形態から恩恵を受け得る情報記憶装置としては、特にラップトップ及びデスクトップコンピュータのハードディスクドライブ(HDD)、光学記憶装置、固体記憶装置、及び磁気メディアが含まれる。
【0031】
図1は、本発明の1以上の実施形態が実施される情報記憶装置、すなわちHDD200とホストプラットフォーム100の概略的なブロック図である。ホストプラットフォーム100は、ラップトップコンピュータやデスクトップコンピュータであっても、あるいはセットトップボックス、テレヴィジョン、ビデオプレーヤのような装置であってもよく、HDD200の1又は複数のセクタへのアクセスを要求する。あるいは、ホストプラットフォーム100は、LAN又はWANを通じてHDD200にアクセスするリモートコンピューティング装置であってもよい。
【0032】
一実施形態において、ホストプラットフォーム100は、中央演算処理装置(CPU)101、RAM102、メモリコントローラハブ(memory controller hub)(MCH)103、入出力(I/O)コントローラハブ104、複数の入出力(I/O)装置105〜108、及びHDD200との通信リンク(communications link)109を含む。ホストプラットフォーム100はまた、ホストプラットフォーム100を構成するハードウェアの動作を管理及び調整し、ホストプラットフォーム100へのユーザインタフェースを提供するホストプラットフォーム100のソフトウェアコンポーネント、オペレーティングシステムを含む。オペレーティングシステムは通常、ホストプラットフォーム100の動作中はRAM102内に存在する。ホストプラットフォーム100がネットワークの一部である場合、ホストプラットフォーム100の起動時に、オペレーティングシステムがネットワークストレージからダウンロードされてもよい。ホストプラットフォーム100がラップトップやデスクトップ等のスタンドアロン(stand-alone)コンピュータに含まれている場合は、オペレーティングシステムは、HDD200又は当該スタンドアロンコンピュータの一部である他のローカルストレージからRAM102にロードされる。
【0033】
CPU101は、ホストプラットフォーム100上で動作するソフトウェアプログラムを実行するプロセッサである。RAM102は、CPU101及びホストプラットフォーム100の動作についての必要に応じてデータストレージを提供する。メモリコントローラハブ103は、CPU101、RAM102、I/Oコントローラハブ104、及びグラフィックスカード(graphics card)等のホストプラットフォーム100に含まれ得るグラフィックスハードウェア(graphics hardware)の間の通信の経路を定める。I/Oコントローラハブ104は、I/O装置に対してホストプラットフォーム100とのインタフェースを提供し、I/O装置へのデータ及びI/O装置からのデータの経路を定めて制御する。図1に示すように、ホストプラットフォーム100は、HDD200、マウス105、キーボード106、バイオメトリックセンサ(biometric sensor)107、及びスマートカードリーダ(smart card reader)108を含む複数のI/O装置を含む。マウス105及びキーボード106は、ホストプラットフォーム100に対する通常のコンピュータインタフェースをユーザ150に提供し、ユーザ150によるユーザID番号や英数字のパスワード及びアクセスコード等のユーザ証明(user credential)の入力を可能にする。バイオメトリックセンサ107は、ユーザのバイオメトリック証明(biometric credential)をホストプラットフォーム100に入力できるようにする。例えば、バイオメトリックセンサ107はユーザの指紋を入力するための指紋スキャナ(fingerprint scanner)であってもよい。バイオメトリクス証明の他の例としては、顔、手、及び虹彩の幾何形状が含まれる。スマートカードリーダ108はスマートカード(smart card)を受け入れて読み取るよう構成され、スマートカードはポケットサイズ又はクレジットカードサイズのカードであり、暗号化されたアクセスコードを含む集積回路が組み込まれている。
【0034】
ホストプラットフォーム100は、通信リンク109を介してHDD200に接続される。ホストプラットフォーム100がスタンドアロンコンピュータに含まれている場合には、通信リンク109はI/Oコントローラハブ104を介してHDD200をCPU101に接続する内部バスを表す。ホストプラットフォーム100がネットワークの一部である場合は、通信リンク109はホストプラットフォーム100とHDD200の間のネットワーク接続を含む。一実施形態において、HDD200は、ラップトップやデスクトップコンピュータ等のホストプラットフォーム100を構成するコンピューティング装置内に含まれる。他の実施形態では、HDD200はホストプラットフォーム100から物理的に分離され、ホストプラットフォーム100によって設定されたネットワーク接続を介して遠隔アクセスされる。
【0035】
図2は、図1におけるHDD200の一実施形態を説明するブロック図である。HDD200の機械的な構成要素は、スピンドルモータ202によって回転される磁気ディスク201と、サスペンションアーム203の一端に配置された読み出し/書き込みヘッド204を含む。アームアクチュエータ205はサスペンションアーム203に連結され、磁気ディスク201上の異なるトラックにアクセスするため要求のとおりにアーム203を動かす。HDD200の電子的な構成要素は、プリント基板PCB300及びプリアンプ(pre-amplifier)207を含み、後者は読み出し/書き込みヘッド204に電気的に接続されている。プリアンプ207は、読み出し/書き込みヘッド204への信号、及び読み出し/書き込みヘッド204からの信号を調節し増幅する。PCB300は、システムオンチップ(system-on-chip)(SoC)、RAM、及びHDD200を動作させるための他の集積回路を含み、以下では図3及び図4に関連して説明される。図示の通り、PCB300は、電気的接続206を介してプリアンプ207に、電気的接続208を介してスピンドルモータ202に、電気的接続209を介してアームアクチュエータ205に電気的に接続される。PCB300は、ホストプラットフォーム100と通信リンク109を介して通信するが、通信リンク109はSATA、PATA、SCSI又は他のインタフェースケーブルであってもよい。
【0036】
図3は、図2におけるPCB300の構成要素を概略的に示すブロック図である。PCB300はSoC400、DRAM302、フラッシュメモリ301、及びコンボチップ303を含み、DRAM302はSoC400の内部にあっても外部にあってもよく、コンボチップ303はスピンドルモータ202とアームアクチュエータ205を駆動する。コンボチップ303はまた、SoC400、プリアンプ207及びSoC400に含まれるモータコントローラ(motor controllers)のための電圧レギュレータを含む。図示のように、フラッシュメモリ301とDRAM302はSoC400に連結され、SoC400は通信リンク109を介してホストプラットフォーム100と、電気的接続206を介してプリアンプ307と、シリアルバス304を介してコンボチップ303とインタフェースする。実施形態によっては、フラッシュメモリ301はSoC400内に存在する。HDD200のファームウェアは、フラッシュメモリ301内に存在する。別の構成においては、変更不能なファームウェアのごく一部がSoC400内のリードオンリーメモリ内に存在し、ファームウェアの大部分は磁気ディスク201上に存在して電源投入直後にロードされる。
【0037】
図4は、図3におけるSoC400の構成要素を概略的に示すブロック図である。SoC400は特定用途向け集積回路(application-specific integrated circuit)(ASIC)であり、HDD200が周期的な再認証に基づく安全なユーザアクセスを提供し、ファームウェアを安全にダウンロードし、暗号化されたデータを磁気ディスク201に記憶するために必要な制御及び暗号化/復号動作を実行するように構成される。SoC400は特定の機能を実行するよう設計された多数の機能ブロックを含む。プロセッサ401はHDD200の動作を制御するよう構成されたマイクロコントローラであり、図示のように、SoC400の他の機能ブロックと通信するための入力/出力機能性及びRAMを有する。一実施形態において、プロセッサ401は、PCB300上でフラッシュメモリ301の近くに配置されるよりもむしろ、フラッシュメモリ301を内部に伴って構成されてもよい。SATAブロック402はSoC400に含まれる入力/出力ブロックであり、通信リンク109を介してホストプラットフォーム100へ信号を送信しホストプラットフォーム100から信号を受信する。コンボチップI/Oブロック409は、シリアルバス304を介したプロセッサ401とコンボチップ303との間の通信専用のI/Oブロックである。プロセッサ401はまた、HDD200とホストプラットフォーム100の間のデータトラフィック、特に暗号化キー等のセキュリティ関係のトラフィックを暗号化するよう構成されている。プロセッサ401及び/又はブロック403は、HDD200を発してホストプラットフォーム100に送信されるトラフィックを暗号化する。ホストプラットフォーム100はそれから、暗号化されたデータトラフィックがホストプラットフォーム100によって使用可能となる前に、適切な暗号化キー(encryption key)を用いてこのようなデータを復号しなくてはならない。トラフィックは同様に、ホストプラットフォーム100からHDD200へ暗号化される。HDD200とホストプラットフォーム100との間の暗号化された制御トラフィック(control traffic)の動きは、“トラステッドセンド(trusted send)/トラステッドレシーブ(trusted receive)”コマンドを使用する。
【0038】
暗号化/復号ブロック403は、プロセッサ401の制御下にあり、SATAブロック402とSoC400の他の全ての構成要素との間のデータパスに配置され、安全な記憶のため入ってくるデータを暗号化し、ホストプラットフォーム100による使用のため出ていくデータを復号する。すなわち、暗号化/復号ブロック403は、SATAブロック402を介したホストプラットフォーム100からの入力データを受信して暗号化し、SATAブロック402を介したホストプラットフォーム100へ出力データ、すなわちHDD200からアクセスされたデータを復号して送信する。暗号化/復号ブロック403は、暗号化キーを保持しデータトラフィックの暗号化/復号の間にデータをバッファするメモリに加えて、所望の暗号化アルゴリズムを実施する状態機械(state machine)も含む。動作中、暗号化/復号ブロック403は、ホストプラットフォーム100からのデータを暗号化されていない形式で受信する。適切な暗号化キーが、入ってくるデータと共に用いられるために提供されると、当該データは暗号化/復号ブロック403によって暗号化され、DRAM302又は磁気ディスク201に記憶される。ホストプラットフォーム100が記憶されたデータを取り出す場合、暗号化されていないデータをホストが受信するよう、暗号化/復号ブロック403は、SATAブロック402による送信に先立ってデータを復号する。
【0039】
DRAMコントローラ404は、HDD200の適切な動作についての必要に応じて、暗号化/復号ブロック403、プロセッサ401、読み出し/書き込みチャネル405及びエラー訂正及び生成ブロック406からDRAM302へアクセスできるようにし、DRAM302をリフレッシュしDRAM302の使用を調整する。DRAM302は、磁気ディスク201に書き込まれている又は磁気ディスク201から読み出されているデータ及び暗号化の後ホストプラットフォーム100から受信されるデータのDRAMバッファとして機能する。DRAM302は、図示のようにSoC400の外部にあってもよいが、あるいはSoC400内に含まれる機能ブロックの1つを構成してもよい。磁気ディスク201からのエラーの無いデータ取り出しのためには、復号及びホストプラットフォーム100への送信のためにデータがDRAM302にバッファされる前に、エラー訂正ブロック406は磁気ディスク201から読み出されたデータに対してエラー訂正を適用する。加えて、データが磁気ディスク201に書き込みされている時は、エラー訂正ブロック406は当該データに情報を付加して、磁気ディスク201からのデータ読み出しの際にエラー訂正が可能となるようにする。
【0040】
ホストプラットフォーム100が磁気ディスク201からデータを読み出すためには、読み出し/書き込みヘッド204によって磁気ディスク201からデータが読み出され、プリアンプ207によって調整され、電気的接続206Aによってアナログ・デジタル変換器407へアナログ信号として運ばれる。アナログ・デジタル変換器407はアナログ信号をデジタル信号411に変換し、デジタル信号411はスプリッタブロック408に送られる。モータ205を用いるアームアクチュエータ203及びスピンドルモータ202の最適な制御のため、スプリッタブロック408は、デジタル信号411から、適切なサーボ関連のデータをサーボブロック410へ送る。スプリッタブロック408は、ホストプラットフォーム100によって要求されたデータを読み出し/書き込みチャネル405へ送り、読み出し/書き込みチャネル405はエラー訂正ブロック406を介して当該データをDRAM302に送るが、これは当該データが復号されてホストプラットフォーム100に送信され得るまでバッファするためである。
【0041】
ホストプラットフォーム100による磁気ディスク201上へのデータの記憶のため、暗号化されたデータは必要に応じてDRAM302にバッファされ、エラー訂正ブロック406を介した後、読み出し/書き込みチャネル405へ送られる。読み出し/書き込みチャネル405はその後電気的接続206Bを介してプリアンプ207へデジタル信号を送り、プリアンプ207は、読み出し/書き込みヘッド204が磁気ディスク201に暗号化されたデータを書き込めるように、デジタル信号を調節及び増幅する。暗号化されたデータはHDD200に含まれる記憶メディア、すなわちDRAM302や磁気ディスク201内に存在することが、当業者には理解されるだろう。
【0042】
HDD200は、自身の物理メディアを0から何らかの最大値まで番号付けされた論理ブロックとして公表する。各論理ブロックは物理メディア上の対応するブロック(トラック及びセクタ番号で定められる)へとマップされ、HDD200のプロセッサ401は、このような論理ブロックから物理ブロックへのマップを保持する。図5Aに示すように、ユーザによるアドレス指定が可能(ユーザアドレッサブル(user-addressable))なLBA空間は、LBA=0から何らかの最大値LBA=maxまでに及ぶ。従来の全ディスク暗号化(full disk encryption)ハードディスクドライブでは、LBA空間の始めのN(例えば128)MBが、マスタブートレコード(master boot record)のために確保され、LBA=maxを超えた、LBA空間の斜線領域にはアクセスできない。
【0043】
本実施形態の各実施形態では、図5Bに示すLBA=maxを超えたLBA空間の領域が、特定の条件下で読み出し命令及び書き込み命令についてアクセス可能とされる。この領域内に、シャドーMBR(shadow-MBR)の2つのコピーMBR0とMBR1が記憶される。シャドーMBRのコピーの1つはアクティブとされ、他方のコピーは更新を受信するのに使用される。
【0044】
図6は、本発明の一実施形態による、記憶装置においてシャドーMBR、あるいは初期ブート画像(以下では、“MBR”と称する)をインストールする方法を説明するフロー図である。ステップ610では、ユーザは記憶装置に接続されたホストにログインする。ユーザは、1又は複数のユーザ証明(user credential)を、対応するユーザ識別名又は識別番号と組み合わせてホストに提供することでホストにログインする。この目的のためのユーザ証明は特に、英数字のアクセスコード、指紋スキャン(fingerprint scan)等の1又は複数のバイオメトリック証明(biometric credential)、あるいは適切にエンコードされたスマートカードを含んでもよい。更にセキュリティを向上させるため、ユーザ証明の組み合わせの入力は、各々のログインの成功ごとに要求されてもよい。ユーザログインの成功の後、フローはステップ612に進む。
【0045】
ステップ612では、ホストは記憶装置においてユーザを認証するのに用いられるユーザ認証データ(user authentication data)を生成し、当該ユーザ認証データを記憶装置へ送信する。ホストは、記憶装置に対して異なるユーザを設定した際に記憶された情報を用いて、当該ユーザ認証データを生成する。
【0046】
ステップ614は記憶装置によって実行され、記憶装置は、ホストから受信したユーザ認証データを用いて、MBRを修正できる管理者(administrator)としてユーザが認証されたかを判断する。ユーザ認証は、2008年3月31日に提出された「記憶装置及び暗号化方法」と題された米国特許出願12/060,182に基づき2009年2月23日に出願された特願2009−018593号に記載された方法を用いて実行されてもよい。
【0047】
ユーザがMBRを修正できる管理者として認証されると、ステップ616〜620が実行される。ユーザがMBRを修正できる管理者として認証されなければ、当該ユーザにはMBRへの読み出し/書き込みアクセスが許可されない(ステップ622)。
【0048】
ステップ616では、ata_enable_mbr関数が実行される。ata_enable_mbr関数は、スタンダードATA読み出し/書き込みコマンドを用いたMBRへの読み出し/書き込みアクセスを可能とする。この関数は、記憶装置へのネットワークアクセスではなくローカルアクセスを用いる安全なロケーション(secure location)のみに使用されることが推奨される。この設定は、揮発性である。コンテクスト(context)が次に失われると、MBRはもはやATA読み出し/書き込みコマンドを介してアクセスできない。MBRは、ベースLBA(base_LBA)値において利用可能とされる。ベースLBA値はユーザアドレッサブルなLBA空間の最大のLBAより大きく(すなわちLBA=maxより大きく)、2−1から2つのMBRのサイズを引いた値(ここでATAインタフェースについてはM=48である)より小さい。一実施形態において、MBR0はベースLBAにおいて利用可能であり、MBR1はベースLBAに1つのMBRコピーのサイズを加えたところで利用可能である。一実施形態において、ホストはベースLBAをランダムに指定し、LBA=maxより大きい、ユーザアドレッサブルなLBA空間内のランダムなロケーションにMBRが記憶される。
【0049】
ステップ618では、ATA書き込み動作がホストによって指定されたLBAロケーション(LBA location)において行われる。MBRの1回目のインストールについては、このロケーションは、ホストによって指定されたベースLBAと等しい。既存のMBRの更新については、ATA書き込み動作が実行されて、現在アクティブでないMBRのコピーが上書きされる。更新の後、ユーザが記憶装置に2つのMBRの役割を切り替えるよう命令してもよく、ちょうど更新された一方がアクティブなMBRとなり、他方が続く更新に用いられる。ATA書き込み動作は、ホストから受信された暗号化されていないデータに対して実行され、これは非常に速いMBRの書き込みを可能とする。いったんインストールが完了すると、記憶装置はパワーダウンされる(powered down)(ステップ620)。
【0050】
図7は、本発明の一実施形態による、MBRの他のコピーが使用されている間、記憶装置においてMBRの1つのコピーを更新する方法を説明するフロー図である。ステップ710〜714は、上述のステップ610〜614と同様の方法で実行される。
【0051】
ユーザがMBRを修正できる管理者として認証されると、ステップ716〜720が実行される。ユーザがMBRを修正できる管理者として認証されなければ、当該ユーザにはMBRへの読み出し/書き込みアクセスが許可されない(ステップ724)。
【0052】
ステップ716では、write_mbr関数を用いたMBRへの書き込みが可能とされる。write_mbr関数によっては、MBRへの書き込みを可能とする。そして、ステップ718では、ユーザは使用されていないMBRのコピーを更新する。更新はちょうど更新された部分の部分的な書き込みであっても、MBR全体の上書きであってもよい。その後、ステップ720では、更新されたMBRのコピーがenable_mbr関数を用いてアクティブなMBRとして指定される。enable_mbr関数は、電源投入時に、2つのMBRのうち1つがユーザアドレッサブルなLBA空間の初めの128MB部分と置き換わるのを可能とする。0に設定されたフラグがMBR0を有効化し、1に設定されたフラグはMRB1を有効化する。MBR0又はMBR1のどちらかが有効化されていれば、記憶装置の次回の電源投入時に、当該有効化されたMBRが再びLBA空間の初めの128MB部分と置き換わる。
【0053】
図8は、ホスト及び接続された記憶装置の通常のブートプロセスを説明するフロー図である。ステップ810では、記憶装置はMBR0とMBR1のどちらかが有効化されているかをチェックする。enable_mbr関数は、電源投入時に2つのMBRの一方をユーザアドレッサブルなLBA空間の初部と置き換わらせる。ユーザアドレッサブルなLBA空間の初部と置き換わったMBRは、固定長であり読み出し専用となる。close_mbr関数は、MBRを無効化する。MBRが有効であると、当該MBRが次の電源投入時にLBA空間と置き換わる。
【0054】
MBR0とMBR1のどちらかが有効化されていると、ステップ812〜816が実行される。そうでなければステップ818が実行される。ステップ818では、オペレーティングシステムがLBA空間の初部を用いてロードされ、ブートプロセスが完了する。
【0055】
ステップ812では、有効化されたMBRがLBA空間の初部から読み出され、ユーザを認証するために、プリブートオペレーティングシステム(pre-boot operating system)が有効化されたMBRから実行される。そしてステップ814では、ユーザが記憶装置上の“オープンな”ロックされたパーティション(“open” locked partition)にログインされる。その後、アクティブなMBRがステップ816でクローズ(close)され、アクティブなMBRはもはや、ユーザアドレッサブルなLBA空間の初部とは置き換わらない。ステップ818が、上述のようにステップ816の後に実行される。
【0056】
ユーザがMBRの非常に小さい部分を変更することを所望すれば、あるいはMBRへの更新命令がネットワークを通じて送信されると、ユーザは図7の方法を用いること、及びトラステッドセンド/レシーブとして技術的に知られる暗号化された書き込み/読み出しプロトコルを用いてMBRへの書き込みを実行することができる。
【0057】
上記の記載は本発明の各実施形態を対象にしているが、本発明の他の更なる実施形態が本発明の基本的な範囲を逸脱することなく考案されてもよく、本発明の範囲は以下の特許請求の範囲によって決定される。
【符号の説明】
【0058】
100…ホストプラットフォーム、101…CPU、102…RAM、103…MCH、104…I/Oコントローラハブ、105…マウス、106…キーボード、107…バイオメトリクスセンサ、108…スマートカードリーダ、109…通信リンク、150…ユーザ、200…HDD。

【特許請求の範囲】
【請求項1】
暗号化されたデータ及び暗号化されていないデータをホストから受信して処理するよう構成された記憶装置において初期ブート画像をインストール方法であって、
初期ブート画像を、暗号化されていないデータとして前記ホストから受信するステップと、
前記初期ブート画像についてデータ書き込み動作を実行するステップと、
を備える、初期ブート画像のインストール方法。
【請求項2】
前記データ書き込み動作は、マルチブロックデータ書き込み動作を備える、請求項1に記載のインストール方法。
【請求項3】
前記データ書き込み動作を実行するステップは、
前記記憶装置の論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域への書き込みを有効化するステップと、
前記初期ブート画像を前記領域に書き込むステップと、
を含む、請求項1に記載のインストール方法。
【請求項4】
前記ホストからユーザ証明を受信するステップと、
前記初期ブート画像への更新を、前記ユーザ証明に基づいて許可するステップと、
を更に備える、請求項1に記載のインストール方法。
【請求項5】
初期ブート画像の第1及び第2のコピーを保持するよう構成され、前記第1及び第2のコピーの一方は前記初期ブート画像のアクティブなコピーであるよう指定される記憶装置において初期ブート画像を更新する方法であって、
前記初期ブート画像への更新を受信するステップと、
受信した更新を用いて、前記初期ブート画像の前記第1及び第2のコピーの一方を更新するステップと、
を備える、初期ブート画像の更新方法。
【請求項6】
前記初期ブート画像のコピーの一方への更新が完了すると、前記コピーの一方をアクティブな初期ブート画像として指定するステップを更に備える、請求項5に記載の更新方法。
【請求項7】
前記第1及び第2のコピーの一方を更新するステップは、
前記記憶装置の論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域への書き込みを有効化するステップと、
前記更新を前記領域に書き込むステップと、
を含む、請求項5に記載の更新方法。
【請求項8】
ユーザアドレッサブルな論理ブロックアドレス空間を伴って構成された記憶装置であって、
論理ブロックアドレス空間の、ユーザアドレッサブルな論理ブロックアドレス空間外である領域に記憶される、初期ブート画像の第1のコピーと、
前記論理ブロックアドレス空間の、前記ユーザアドレッサブルな論理ブロックアドレス空間外である領域に記憶される、前記初期ブート画像の第2のコピーと、
を備える記憶装置。
【請求項9】
前記第1のコピーと前記第2のコピーの一方を、アクティブなコピーとして指定するようプログラムされたコントローラを更に備える、請求項8に記載の記憶装置。
【請求項10】
前記コントローラは、前記第1のコピーと前記第2のコピーのアクティブでない一方を更新し、更新の後、前記アクティブでない一方をアクティブなコピーとして指定するよう更にプログラムされた、請求項9に記載の記憶装置。
【請求項11】
前記コントローラは、暗号化されていない形式で受信された前記初期ブート画像について、ATA書き込み動作を実行するよう更にプログラムされた、請求項9に記載の記憶装置。
【請求項12】
前記コントローラは、前記初期ブート画像のアクティブなコピーを、前記ユーザアドレッサブルな論理ブロックアドレス空間内の指定された領域から読み出し、読み出しが完了したら、前記ユーザアドレッサブルな論理ブロックアドレス空間内の前記指定された領域を用いて、オペレーティングシステムファイルをロードするよう更にプログラムされた、請求項9に記載の記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−20753(P2010−20753A)
【公開日】平成22年1月28日(2010.1.28)
【国際特許分類】
【出願番号】特願2009−56922(P2009−56922)
【出願日】平成21年3月10日(2009.3.10)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】