説明

安全な直接プラッタ・アクセス

【課題】システムのオペレーティング・システムによる読取り/書込み操作に依存せず大量のデータを転送する方法を提供する。
【解決手段】保護領域ランタイム・インターフェース拡張(PARTIES)技術をディスク・ドライブに適用して、データ記憶装置(50)上の安全な記憶領域内に安全なサブ領域を作成して編成する。安全なサブ領域はデータの正当性および秘密性を保持しながら大きなデータ・ファイルを転送するためのデータ・バッファである。この新しい安全なサブ領域はオペレーティング・システムにより編成または保護が行なわれないので、オペレーティング・システムを不当に操るウイルスあるいはトロイの木馬ソフトウエアによる攻撃から保護される。更に、読取り/書込み操作はコマンド・ペイロード制限を回避すると共に、データおよびコマンドの検証コストを減らすことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は磁気記憶装置に関するものであって、より詳しくは、磁気ディスク・ドライブへのまた磁気ディスク・ドライブからのデータの安全な大量転送に関するものである。
【背景技術】
【0002】
従来のディスク・ドライブ内の磁気記憶媒体は複数の記憶領域に分割されることがある。これらの記憶領域の1つはユーザ領域と呼ばれ、コンピュータ・ユーザの通常の記憶用として確保される。通常、高度技術アタッチメント(ATA)または小型コンピュータ・システム・インターフェース(SCSI)などの標準インターフェースを介して、また論理ブロック・アドレス(LBA)などのアドレス指定方式を用いて、ユーザはホスト装置のオペレーティング・システムによりこのユーザ領域に自由にアクセスすることができる。ユーザのアクセスを制御する必要があるときは、パスワード保護を用いてユーザ領域への読取りおよび/または書込み操作を可能または不能にすることが多い。
【0003】
しかし、ユーザ領域への読取りおよび/または書込みアクセスの許可だけでは安全保護を十分に行うことはできない。なぜなら、伝送されるデータについては完全性の検証または起点の認証が行われないからである。また、パスワードで可能になる読取り/書込み許可の範囲は広すぎることが多い。なぜなら、許可は全ユーザ領域またはそのパーティションに対して行うのが普通だからである。個別のデータ・ブロックに適用される特定の許可プロトコルが提案されてはいるが、この方法はブロック転送を行う度に許可または認証をテストするので読取り/書込み操作の速度が遅くなる。特に、この操作が比較的大きなデータ・ファイルを扱う場合に遅くなる。
【0004】
同じディスク・ドライブの中に、ディスク・ドライブのメーカが作成した、隠れシステム領域と呼ばれる別の記憶領域が含まれることもある。通常の動作中は、この記憶領域はユーザに見えないしまたユーザはアクセスすることができない。通常、隠れシステム領域は1メガバイトより小さな固定のサイズであり、ディスク・ドライブのファームウエアムなどのシステム・データを入れるのに用いられる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
磁気記憶媒体に加えて、従来のディスク・ドライブはホスト・システム(例えば、サーバ)内の揮発性RAMの形の一時データ・バッファを用いる。このRAMバッファを用いて、読取りデータおよび書込みデータをキャッシュしてキャッシュ・データの検証および認証を行う。データを揮発性RAMバッファにキャッシュすることの欠点は、データ・バッファにとってデータ集合が大きすぎる場合があることである。この方法では正味のデータ・サイズを人為的に制限する。サイズの制限というこの問題を解決する1つの方法は揮発性RAMバッファのサイズを大きくすることである。しかし揮発性RAMバッファ・メモリは比較的高価なメモリ・チップを用いることが多い。したがって、バッファ・サイズを大きくするためにメモリ・チップの数を増やすとディスク・ドライブのコストが高くなる。
【0006】
別の方法は、記憶媒体上に特殊なバッファ記憶領域を作成して、一時的に記憶されたデータにデータ検証および認証を行うことである。残念ながら、特殊なバッファ記憶領域を作成し、管理し、保護するにはオペレーティング・システムのかなりの資源を必要とする。1つの記憶位置からネットワーク結合記憶(NAS)装置などの別の記憶位置へのデータの大量転送を処理するときは、従来技術の上述の欠点は更に大きくなる。この場合、高速の広帯域データ転送は宛先ドライブまたは発信ドライブでデータを扱うときに「最終の」ボトルネックに会う。
【0007】
したがって、オペレーティング・システム資源をできるだけ使わずに高速でデータ検証および認証を行って大量データ転送を可能にする磁気ディスク・ドライブ装置および方法が必要である。
【課題を解決するための手段】
【0008】
本発明は磁気ディスク・ドライブなどのデータ記憶装置が大量のデータ転送を行なうためのシステムおよびプロセスに関するものである。このシステムは高速の読取り/書込み操作を用いて記憶装置上の永続的な、保護された、すなわち安全な記憶領域にアクセスして、データ記憶装置上の通常のユーザ・データ記憶領域(すなわち、終点記憶用)との間で読取りまたは書込みを行うデータを緩衝しまたは一時的に記憶する。この新しいプロセスはその読取り/書込み操作を行うのにオペレーティング・システムに依存しない。したがってこの新しいプロセスにより、一時記憶領域に関する読取り/書込み操作はコマンド・ペイロードの制限を回避すると共に、データおよびコマンドの検証コストを減らすことができる。
【0009】
1つの態様では、本発明では磁気ディスク・ドライブ内に定義された保護された、すなわち安全な領域に対して直接プラッタ・アクセスを行う。本発明の1つの実施の形態は保護領域ランタイム・インターフェース拡張サービス(PARTIES)技術と呼ばれる既存の機構を操作して、PARTIES領域と呼ばれる安全な記憶領域内に安全な記憶サブ領域を作成して編成する。この新しいプロセスは安全なサブ領域との間の大きなデータ・ファイルの転送を支援しまたデータの正当性および機密性を保証することができるので、本発明はかかる安全なサブ領域を読取り/書込み操作のためのデータ・バッファとして有効に用いることができる。この新しい安全なサブ領域はオペレーティング・システムにより編成および保護が行われないので、ウイルスすなわちトロイの木馬ソフトウエア(オペレーティング・システムを不当に操る能力が大きいほど有害である)による攻撃から本質的に保護される。また本発明のプロセスにより、読取り/書込み操作はコマンド・ペイロードの制限を回避すると共に、データおよびコマンドの検証コストを減らすことができる。なぜなら、読取り/書込み操作を行うのにオペレーティング・システムに依存しないからである。
【図面の簡単な説明】
【0010】
本発明の性質および利点ならびに好ましい使用モードを完全に理解するため、添付の図面と共に以下の詳細な説明を参照していただきたい。以下の図面では、全図面を通して同じ参照番号は同じまたは同様の部分を指す。
【図1】本発明に係る大量データ転送方式を用いるネットワーク・サーバおよび計算装置の略図である。
【図2】本発明の原理に係る大量データ転送方式を用いることができるディスク・ドライブを示す。
【図3】PARTIES技術を用いて作成されまた編成された、安全なPARTIES領域を有する磁気ディスク・ドライブの記憶領域レイアウトを示す。
【図4】PARTIES技術を用いて作成されまた編成された、PARTIES領域内に安全なサブ領域を有する磁気ディスク・ドライブの記憶領域レイアウトを示す。
【図5】PARTIES技術を用いて作成されまた編成された、隠れシステム領域内に安全なサブ領域を有する磁気ディスク・ドライブの記憶領域レイアウトを示す。
【図6】PARTIES技術を用いて作成された磁気ディスク・ドライブ上の安全なサブ領域に読取りコマンドを出すことを可能にする、本発明の1つの実施の形態に係るプロセスを示す流れ図である。
【図7】PARTIES技術を用いて作成された磁気ディスク・ドライブ上の安全なサブ領域に書込みコマンドを出すことを可能にする、本発明の1つの実施の形態に係るプロセスを示す流れ図である。
【図8】或る一般コマンドを1つ以上のLBAとしてディスク・ドライブに運びまた或る状態を1つ以上のLBAとして返すことを可能にする、本発明の1つの実施の形態に係るプロセスを示す流れ図である。
【発明を実施するための形態】
【0011】
ここに説明するのは本発明を実行するのに現在最も良いと考えられるモードである。この説明は本発明の一般原理を示すために行うものであって、制限するものと考えてはならない。本発明の範囲は添付の特許請求の範囲を参照して決めるのが最も良い。ここでは本発明について種々の実施の形態および図面を参照して説明する。当業者が認識するように、本発明の範囲および精神から逸れない限り、かかる教示を参照して種々の変更および改善を行うことができる。
【0012】
1つの態様では、本発明は磁気ディスク・ドライブなどのデータ記憶装置が大量のデータ転送を行なうためのシステムおよびプロセスに関するものである。このシステムは、高速の読取り/書込み操作を用いて記憶媒体上の永続的で安全な一時記憶領域にアクセスして、記憶媒体上の通常のユーザ・データ記憶領域(すなわち、終点データ記憶用)との間で読取りまたは書込みを行うときにデータを緩衝しまたは一時的に記憶する。この新しいプロセスは一時記憶領域に関して読取り/書込み操作を行うのにオペレーティング・システムに依存しない。したがってこの新しいプロセスにより、読取り/書込み操作はコマンド・ペイロードの制限を回避すると共に、データおよびコマンドの検証コストを減らすことができる。
【0013】
磁気ディスク・ドライブでは、本発明はPARTIES技術と呼ばれる既存の機構を操作して、安全な記憶領域を作成して編成する。PARTIES技術は、コンピュータ装置のハード・ディスク・ドライブ上の別の保護領域を管理するために設けられるホスト保護領域機能を利用する。この技術は、NCITS346、ANSI NCITS306(SCSI−3ブロック・コマンド)、およびANSI NCITS340(ATAPI−5)などの明細書に記載されている。PARTIESおよびATA/ATAPI−5標準は、ハード・ドライブの或る領域を編成して通常のシステム運転中にユーザのアクセスを不能にするよう規定する。この記憶領域はPARTIES領域と呼ばれ、通常、記憶媒体の末端にあり、ブート・エンジニアリング拡張記録(BEER)を介して複数のサービス領域に分割される。これらの個々のサービス領域を用いて、緊急ブート位置を与えるなどの特定の機能およびその他の診断サービスを支援することができる。
【0014】
PARTIES技術は性質の異なる4つのソフトウエア層を含む。第1の層はハード・ドライブ上にPARTIES領域が存在するのを検出するもので、発見層と呼ばれる。第2の層はフェールセーフ・ブート・サービスを選択するためのもので、ブート選択層と呼ばれる。第3の層はフェールセーフ・ブート・サービスを選択するときにハード・ドライブ上の予約された領域からシミュレートされたドライブAを与えるもので、シミュレーション層と呼ばれる。第4の層は他のPARTIESサービスを作成し、アクセスし、削除するためのもので、操作層と呼ばれる。これらの層は、PARTIESサービスを書式化しまた発見するための特定の詳細を与えるANSI PARTIES明細書に規定されている。
【0015】
通常の操作中にPARTIESサービスを操作してPARTIES領域へのアクセスを可能にするいくつかの周知の方法がある。第1の方法は、PARTIESサービスの追加および削除に加えて、DOSベースのプログラムなどのアプリケーションを用いてホスト保護領域を初期化することである。別の方法は、SETUP中またはランタイム中に、ホスト装置の基本入出力システム(BIOS)などのファームウエアを操作することである。例えば、BIOSを操作してPARTIES領域へのアクセスを可能にする1つの方法は、オペレーティング・システムを立ち上げる前にBIOSがSET MAXIMUMロック・コマンドを出さないようにすることである。別の方法は、SET MAXIMUM UNLOCKコマンドを正式に出して、通常はシステム用として確保されている記憶領域へのアクセスを可能にすることである。
【0016】
制限するためではなく例示として、サーバと磁気ディスク・ドライブ(特に、データの認証および検証のプロセスを扱うオンボード・プロセッサまたはコントローラを有するディスク・ドライブ装置)との間の新しい大量データ転送方法を含むネットワーク記憶サーバに関して本発明を説明する。認識されるように、1台以上の汎用またはアプリケーション専用のプロセッサ、コントローラ・カード、またはコンピュータなどの情報処理装置で本発明のプロセスを支援して、安全なサブ領域の作成および編成を行いまた本発明の原理に係る大量データの転送を容易にすることもできる。
【実施例】
【0017】
図1は、本発明に係る大量データ転送方式を用いることのできるネットワーク・サーバ40または計算装置42の一例のブロック図である。サーバ40または計算装置42は、プロセッサ44、揮発性メモリ・ユニット46、不揮発性メモリ・ユニット48、および大容量記憶装置50を備える。プロセッサ44は、システム・メモリとして動作する揮発性メモリ・ユニット46に結合する。揮発性メモリ・ユニット46の一例はダイナミック・ランダム・アクセス・メモリ(DRAM)である。プロセッサ44は、システム・ファームウエアなどの初期の命令セットを保持するのに用いられる不揮発性メモリ・ユニット48にも結合する。プロセッサ44は、データ・ファイルおよびオペレーティング・システムなどの命令セットを記憶するのに用いることができる大容量記憶装置50にも結合する。
【0018】
大容量記憶装置50は任意のタイプの、または種々のタイプを組み合わせた、磁気ディスク・ドライブ、コンパクト・ディスク(CD)ドライブ、ディジタル・ビデオ・ディスク(DVD)ドライブ、フロッピー(登録商標)・ディスク・ドライブ、ジップ・ドライブ、SuperDiskドライブ、光磁気ディスク・ドライブ、ジャズ・ドライブ、高密度フロッピー(登録商標)・ディスク(HiFD)ドライブ、フラッシュ・メモリ、読取り専用メモリ(ROM)、プログラム可能読取り専用メモリ(PROM)、消去可能プログラム可能読取り専用メモリ(EPROM)、または電気的消去可能プログラム可能読取り専用メモリ(EEPROM)などでよい。
【0019】
サーバ40または計算装置42は、情報をユーザに表示するフラット・パネル・モニタなどのビデオ出力装置52と、ユーザからの入力を受けるキーボードまたはタブレットなどの入力装置54も含んでよい。サーバ40または計算装置42は、有線(例えば、銅線または光ファイバ)接続および/または無線接続を用いるネットワーク56を介して互いに接続してよい。本発明の範囲から逸れない限り、サーバ40または計算装置42は、それぞれが異なる物理的位置に常駐してネットワーク56を介して相互接続される、複数のプロセッサ44、揮発性メモリ・ユニット46、不揮発性メモリ・ユニット48、および大容量記憶装置50を含んでもよい。当業者が認識するように、本発明のプロセスは、コントローラ・カード(図示せず)または大容量記憶装置50上に常駐するプロセッサが部分的にまたは全体的に処理して、安全なサブ領域の作成、編成、および/または安全保護を行ってもよい。
【0020】
図2は本発明に係る大量データ転送方式を実現するのに用いることができるディスク・ドライブ10の一例である。ディスク・ドライブ10は、ディスク・ドライブの種々の構成要素が入る大きさおよび構成のハウジング12(この図では上部を取り除いて下部が見えるようにした)を含む。ディスク・ドライブ10は、ハウジング内の少なくとも1個の磁気記憶媒体16を回転させるスピンドル・モータ14を含む。ハウジング12内には少なくとも1本のアーム18を有するサスペンション組立体があり、各アーム18は、スライダ22上に支持された記録ヘッドの形の変換器を有する第1の端部20と、軸受26により軸上に旋回可能に取り付けられた第2の端部24とを有する。アクチュエータ・モータ28はアームの第2の端部24にあり、アーム18を旋回させて、記録ヘッド22をディスク16の所望のセクタまたはトラック上に位置決めする。アクチュエータ・モータ28および他の構成要素はコントローラ30により制御され、これらを以下の開示に係る大量データ転送方式に組み入れてもよい。
【0021】
図3は安全なPARTIES領域を含むディスク・ドライブ内のLBA範囲を示す。図3はPARTIES可能ディスク・ドライブの3つの主記憶領域を示す。すなわち、ユーザ領域(通常の、すなわち終点(endpoint)のデータ記憶用)、隠れシステム領域、およびPARTIES領域である。記憶ブロックはそのLBA値に従って編成してアドレス指定することができる。これらの3つの記憶領域のLBA範囲は以下の規定を用いてよい。ユーザ領域では、LBAはゼロからUSER_MAXIMUMと呼ばれる値までの範囲にわたってよい。ただし、USER_MAXIMUMはSET MAXIMUMコマンドにより設定される値で、この装置がユーザ記憶に利用できる最大LBA値である。PARTIES領域内では、LBAはPARTIES_MINIMUMと呼ばれる最小値からPARTIES_MAXIMUMと呼ばれる最大値までの範囲にわたる。ただし、PARTIES_MINIMUMはATAを介してホストのオペレーティング・システムに示される指定されたドライブ・サイズより一般に1だけ大きい。
【0022】
図4は、PARTIES機構を用いてPARTIES領域内のサブ領域を編成して保護する或る実施の形態を示す。PARTIES技術を用いてPARTIES領域内に安全なサブ領域を確保して、ホスト装置とディスク・ドライブとの間の大量データ転送を容易にすることができる。この大量転送プロセスは直接プラッタ・アクセス(DPA)と呼ばれており、安全なサブ領域はDPA領域と呼ばれることがある。DPA領域に用いられるLBAはユーザ領域用として確保されたLBA範囲より上に設定され、DPA_MINIMUMと呼ばれる最小値からDPA_MAXIMUMと呼ばれる最大値までの範囲にわたる。PARTIES技術を用いると、ディスク・ドライブはDPA_MINIMUMとDPA_MAXIMUMとにより設定される範囲内にあるLBAへの問合せに対応することができる。
【0023】
図5は、PARTIES領域外(例えば、隠れシステム領域内)にサブ領域を編成して保護する別の実施の形態を示す。隠れシステム領域は、通常、記憶ブロックをアドレス指定するのにLBAを用いない。しかし、隠れシステム領域内の物理的記憶位置を参照するためにLBAの或る範囲を確保することができる標準機構がある。大量データ転送専用に或るLBA範囲を確保すると、ドライブはこのLBAアドレスが隠れシステム領域に関するものと解釈しなければならない。またはコマンドおよび/またはコマンド・パラメータは目標領域が隠れシステム領域内にあると指定しなければならない。この安全なサブ領域はDPA領域と呼ばれ、そのLBA範囲は、ユーザ領域およびPARTIES領域の両方のLBA範囲と矛盾しない。DPA領域のLBAは、DPA_MINIMUMと呼ばれる最小値からDPA_MAXIMUMと呼ばれる最大値までの範囲にわたってよい。PARTIES技術を用いると、ディスク・ドライブはDPA_MINIMUMとDPA_MAXIMUMとにより設定される範囲内にあるLBAへの問合せに対応することができる。
【0024】
本発明は、PARTIES領域を開くことまたはDPA処理のために記憶領域内にサブ領域を作成することをシステム・ファームウエアに要求する、このプロセスにより実現されるプログラミング・インターフェースを提供する。保護されたサブ領域が編成されてアクセスされれば、ユーザは種々のコマンドを出してサブ領域内で種々のタスクを実行することができる。例えばユーザは、安全なサブ領域へのまたサブ領域からの大量のデータ転送を可能にするコマンドを出してよい。また別のコマンドを出してデータに操作を行ってもよいし、またはトランザクション機能性などの追加のセマンティクスを提供してもよい。暗号化が必要な場合はデータを暗号化してよく、その暗号キーはAES(高度暗号化標準)ガイドラインに係る周知のプロセスにより選択してよい。
【0025】
メッセージのデータ完全性は認証アルゴリズムおよび認証キーを用いて保証することができる。この認証アルゴリズムはメッセージおよび認証キーを入力として受けて認証値を計算する。この認証値は短いビット・ストリングであって、その値は認証アルゴリズム、メッセージ、およびキーにより決まる。かかる認証アルゴリズムの一例はキー付きハッシュ関数HMAC−SHA1である。その他の暗号化および認証アルゴリズムは当業者に明らかであろう。
【0026】
ホスト装置とディスク・ドライブとの間で暗号キーおよび認証キーを交換するには、ディフィー・ヘルマン(Diffie−Hellman,DH)方式などの公開鍵一致方式を用いればよい。DH方式は元のキー値に基づいて公開参照番号を計算して送信する。公開参照番号を受け取ると、周知のプロセスを用いて元のキーを確実に得ることができる。
【0027】
図6は、PARTIES技術を用いてPARTIES領域内に作成された保護サブ領域への読取り操作のための流れ図を示す。このプロセスの第1のステップは、HMAC−SHA1アルゴリズムなどのキー付きハッシュ関数およびディフィー・ヘルマン(DH)キー一致方式などの公開鍵暗号化システムを用いる認証方式を実現するよう要求する。HMAC−SHA1アルゴリズムを用いて、秘密認証キーKaおよび読取りコマンドCMDを用いることにより認証値Mを計算する。次に、AESなどの暗号化方式および秘密暗号キーKeを用いてコマンドCMDを暗号化して、暗号化された読取りコマンドCMDeを作る。暗号キーへの公開参照番号Ke_refおよび認証キーへの公開参照番号Ka_refはディフィー・ヘルマン・キー一致方式に係る周知のプロセスにより計算する。暗号化された読取りコマンドCMDe、目標データ・ブロックのLBA下限値L(1)、目標データ・ブロックのLBA上限値L(n)、認証キーへの公開参照Ka_ref、暗号キーへの公開参照Ke_ref、および認証値Mを要求REQとしてディスク・ドライブに送る。
【0028】
ディスク・ドライブは未検証の要求REQを受け取る。ディスク・ドライブはまず、L(1)およびL(n)がDPA_MINIMUMおよびDPA_MAXIMUMにより指定された範囲内にあるかどうかチェックすることにより、送信されたデータを認証しまた検証しなければならない。L(1)およびL(n)がDPA LBA範囲内にない場合は、プロセスは誤りメッセージを出して読取りプロセスは停止する。L(1)およびL(n)がDPA LBA範囲内にある場合は、ディスク・ドライブはディフィー・ヘルマン・キー交換方式に従う周知のプロセスを用いて公開参照番号Ke_refおよびKa_refからKeおよびKaをそれぞれ得る。次に、プロセスはAES解読アルゴリズムおよびKeを用いてコマンドCMDを解読する。
【0029】
次に、ディスク・ドライブは解読されたコマンドCMDおよび認証キーKaから認証値を計算し、この値と送信された認証値Mとを比較して、要求REQの正当性を決定する。この2つの値が等しくなくてコマンドの正当性が確認されない場合は、誤りメッセージを出してプロセスは停止する。この2つの値が等しくてコマンドの正当性が確立された場合は、プロセスはコマンドCMDが許容されるコマンドかどうかチェックする。コマンドCMDが許容されない場合は、プロセスは誤りメッセージを出してプロセスは停止する。コマンドCMDが許容される場合は、プロセスはコマンドCMDを実行して、結果をX1,...,Xnとして出力する。秘密暗号キーKeを用いて結果X1,...,Xnを暗号化し、暗号化された結果Y1,...,YnをLBA L(1),...,L(n)に書き込む。
【0030】
プロセスは読取りプロセスの結果をディスク・ドライブからホスト装置に送信する準備をするため、まず、秘密認証キーKaおよび暗号化されていない結果X1,...,Xnを用いて別の認証値MMを計算する。プロセスは、ディフィー・ヘルマン・キー一致方式に係る周知のプロセスを用いて、公開参照番号Ke_refおよびKa_refの新しい集合を生成してよい。次に、プロセスはLBA下限値L(1)、LBA上限値L(n)、認証キーへの公開参照Ka_ref、暗号化キーへの公開参照Ke_ref、および認証値MMをホスト装置に送信する。
【0031】
ホスト装置は未検証の応答RESPを受け取る。 次にプロセスは、L(1)およびL(n)がDPA LBA範囲内の有効なLBAかどうかチェックする。L(1)またはL(n)が有効なLBA範囲内にない場合は、誤りメッセージを出してプロセスは停止する。L(1)およびL(n)が共にDPA LBA範囲内にある場合は、プロセスは先に進んで、KeおよびKaをKe_refおよびKa_refからそれぞれ得る。次にホスト装置は暗号化された結果Y1,...,YnをLBA L(1),...,L(n)から読み取り、これらを解読して結果X1,...,Xnを作る。次に、ホスト装置は解読された結果X1,...,Xnおよび秘密認証キーKaを用いて認証値を計算し、この認証値と送信された認証値MMとを比較する。この2つの値が一致しない場合は正当性が確認されず、プロセスは誤りメッセージを出して読取りプロセスは停止する。正当性が確立された場合は、結果X1,...,Xnをホストに与えて必要に応じて更に処理する。
【0032】
図7は、PARTIES技術により作成された保護サブ領域への書込み操作のための流れ図を示す。このプロセスの第1のステップは、HMAC−SHA1アルゴリズムを用いて、秘密認証キーKa、書込みコマンドCMD、およびデータX1,...,Xnを用いることにより認証値Mを計算するよう要求する。AES暗号化および秘密暗号キーKeを用いてデータX1,...,Xnおよび書込みコマンドCMDを暗号化して、暗号文Y1,...,Ynおよび暗号化されたコマンドCMDeをそれぞれ作る。またホスト装置は、KeおよびKaへの公開参照として用いるために、周知のプロセスを用いてディフィー・ヘルマン番号を生成する。次にプロセスは暗号文Y1,...,YnをLBA L(1),...,L(n)に書き込む。暗号化された読取りコマンドCMDe、LBA下限値L(1)、LBA上限値L(n)、認証キーへの公開参照Ka_ref、暗号キーへの公開参照Ke_ref、および認証値Mを要求REQとしてディスク・ドライブに送る。
【0033】
ディスク・ドライブは未検証の要求REQを受け取る。L(1)およびL(n)がDPA_MINIMUMおよびDPA_MAXIMUMにより指定された範囲内にあるかどうかまずチェックすることにより、送信されたデータを認証しまた検証する。それらがDPA LBA範囲内にない場合は、誤りメッセージを出して読取りプロセスは停止する。それらがDPA LBA範囲内にある場合は、ディスク・ドライブはAES解読アルゴリズムと、Ke_ref内のディフィー・ヘルマン番号から得られる該当するKeとを用いて、CMDeおよびY1,...,YnからCMDおよびX1,...,Xnを解読する。
【0034】
次に、ディスク・ドライブはCDM、X1,...,Xn、および認証キーKa(これはKa_ref内のディフィー・ヘルマン番号から得られる)を用いて認証値を計算し、この値と送信された認証値Mとを比較して、CDMおよびX1,...,Xnの正当性を決定する。この2つの値が等しくなくてCDMおよびX1,...,Xnの正当性が確認されない場合は、誤りメッセージを出してプロセスは停止する。この2つの値が等しくてコマンドおよびX1,...,Xnの正当性が確立される場合は、プロセスはコマンドCMDが許可されるコマンドであるかどうかチェックする。コマンドCMDが許容されない場合は、プロセスは誤りメッセージを出して書込みプロセスは停止する。コマンドCMDが許容される場合は、プロセスはX1,...,XnをL(1),...,L(n)に書き込む。随意であるが、プロセスはCMDの該当する状態をホスト装置に返す。
【0035】
別の実施の形態では、一般コマンドCMDおよび/またはその状態を1つ以上のLBAとして運んでよい。図8は、PARTIES技術を用いて記憶媒体上に作成された保護サブ領域に一般コマンドを出すことに関する一般的な操作の流れ図を示す。このプロセスの第1のステップは、秘密認証キーKa、一般コマンドCMD、およびクリアテキストX1,...,Xnを用いて認証値Mを計算するようホスト装置に要求する。次に、AES暗号化方式および秘密暗号キーKeを用いてクリアテキストX1,...,XnおよびCMDを暗号化して、暗号化されたデータY1,...,Ynおよび暗号化された一般コマンドCMDeを作る。プロセスはCMDeおよびY1,...,YnをLBA L(1),...,L(N)に書き込む。ただし、CMDeを記憶するのに追加のデータ・ブロックを用いるので、Nはnに等しいかまたはnより大きい。次に、プロセスは暗号キーへの公開参照Ke_refおよび認証キーへの公開参照Ka_refとして用いるために公開ディフィー・ヘルマン番号を生成する。LBA下限値L(1)、LBA上限値L(N)、認証キーへの公開参照Ka_ref、暗号キーへの公開参照Ke_ref、および認証値Mを要求REQとしてディスク・ドライブに送る。
【0036】
ディスク・ドライブは未検証の要求REQを受け取り、L(1),...,L(N)の外部からの変更を防ぐ。次に、L(1)およびL(N)がDPA_MINIMUMおよびDPA_MAXIMUMにより指定された範囲内にあるかどうかチェックする。それらがDPA LBA範囲内にない場合は、誤りメッセージを出して読取りプロセスは停止する。それらがDPA LBA範囲内にある場合は、プロセスはAES解読アルゴリズムと、周知のプロセスを用いてKe_refから得られる暗号キーKeとを用いて、L(1),...,L(N)からデータX1,...,XnおよびCMDを探し出して解読する。解読された結果と、周知のプロセスを用いてKa_refから得られる認証キーKaとを用いて、認証値を計算する。
【0037】
この認証値と送信された認証値Mとを比較して、要求REQの正当性を決定する。この2つの値が等しくなくてコマンドの正当性が確認されない場合は、誤りメッセージを出してプロセスは停止する。この2つの値が等しくてコマンドの正当性が確立される場合は、プロセスはコマンドCMDが許容されるコマンドかどうかチェックする。コマンドCMDが許容されない場合は、プロセスは誤りメッセージを出してプロセスは停止する。コマンドCMDが許容される場合は、プロセスはコマンドCMDを実行して、その結果をXX1,...,XXnとして、状態値STATUSと共に出力する。秘密暗号キーKeを用いて結果XX1,...,XXnおよびSTATUSを暗号化して、暗号化された結果YY1,...,YYnおよびSTATUSeを作り、LBA L(1),...,L(N)に書き込む。
【0038】
このプロセスは一般操作の結果をホスト装置に送る準備をするため、秘密認証キーKa、XX1,...,XXn、およびSTATUSを用いて別の認証値MMをまず計算する。次に、ディスク・ドライブはSTATUSe、LBA下限値L(1)、LBA上限値L(N)、Ka_ref、Ke_ref、およびMMをホスト装置に送る。
【0039】
ホスト装置は未検証の応答RESPを受け取る。次にホスト装置は、L(1)およびL(N)がDPA LBA範囲内の有効なLBAかどうかチェックする。L(1)またはL(N)が有効なLBA範囲外にある場合は、誤りメッセージを出してプロセスは停止する。L(1)およびL(N)が共にDPA LBA範囲内にある場合は、プロセスはLBA L(1),...,L(N)から暗号化された結果YY1,...,YYnおよびSTATUSeを探し出して解読する。暗号キーへの公開参照Ke_refから得られる秘密暗号キーKeを用いて、YY1,...,YYnおよびSTATUSeから結果XX1,...,XXnおよびSTATUSをそれぞれ解読する。次に、プロセスは解読された結果XX1,...,XXn、STATUS値、およびKaを用いて認証値を計算する。この認証値とMMとを比較して結果を認証する。正当性が確認されない場合は、プロセスは誤りメッセージを出して読取りプロセスは停止する。正当が確立される場合は、STATUSを登録し、ホスト装置は結果XX1,...,XXnを用いて更にデータ処理を行ってよい。
【0040】
或る実施の形態では暗号化アルゴリズムと解読アルゴリズムとに同じキーを用いる対称キー・システムを用いるが、当業者が認識するように、本発明は非対称キー・システムを用いてもよいし、秘密キーのファミリを用いてもよいし、または秘密キーのファミリを1個以上のマスタ・キーから得てもよい。また本発明はデータ暗号化標準(DES)またはトリプルDESなどのAES以外の暗号化方式を用いて、暗号文に不確実性を追加してよい。またHMAC−SHA1以外の、HMAC−SHA256およびHMAC−MD5などの方式を用いて、完全性を検証しまたデータの起点を認証するのに用いられる認証値を計算してよい。したがって、ディフィー・ヘルマン・キー一致方式以外の公開キー一致方式を用いて、ホストとディスク・ドライブの間で暗号化キーを交換しまたは生成してよい。例えば、暗号化キーに基づく参照番号を生成して送信するのではなく、このシステムは、ホストおよびディスク・ドライブだけが知っているキー/ID表に従って正しい暗号化キーを探索するのに用いることができる厳密なリテラル参照(すなわち、キー・ラベル、キーID)を送信するようにしてよい。
【0041】
或る実施の形態では認証方式を用いてDPA領域への問合せの許可または正当性をチェックするが、本発明は保護されないマスタリング・モードのDPA空間を用いてもよい。この場合ディスク・ドライブは、DPA空間が使用中か使用中でないかに関するLBAの範囲についての問合わせに応答する。これらの要求については許可または正当性をチェックするのではなく、使用/不使用フラグをヒントとして用いて、正しく行動したクライアントの間の衝突を防ぐ。この方法は認証なしのマスタリングの形と考えてよい。
【0042】
コマンドCMDが読取りコマンドまたは書込みコマンドである方式の実施の形態について述べたが、本発明はISO−7816または他のスマートカードに基づくAPDUに準拠するコマンドなどの他のコマンドをドライブ終点に出してもよい。ATAコマンドなどの代替的なコマンドまたは記憶内に常駐する終点で実行するための他の指定された操作を用いる代替的な実施の形態は当業者に明であろう。
【0043】
認識されるように、本発明を理解するのに、プロセスを構成する各ステップを実際に具体化するための詳細な説明は必要ない。システムの属性、機能性、およびシステム内の種々のソフトウエアおよびハードウエア構成要素の相互関係を開示したので、実際の具体化はプログラマおよびコンピュータ技術者の通常の技術の範囲内にある。当業者が普通の技術を適用すれば、不適当な実験を行わなくても本発明を実行することができる。
【0044】
本発明を制限するためではなく例示する目的で本発明の特定の実施の形態を説明したが、当業者が認識するように、本発明の範囲および精神から逸れない限り、種々の変更および改善を行ってよい。例えば、暗号化、検証、および/または認証を用いずにディスク・ドライブが大量のデータを転送する場合に適応するように大量データ転送方式を変更して、データおよびコマンド検証のコストを減らすと共に、簡単なマスタリング機能を可能にするのは容易なことである。
【0045】
本発明のプロセスおよびシステムについて、流れ図の形の機能的ステップを用いて上に説明した。理解されるように、別段の指定がない限り、また本発明の範囲および精神から逸れない限り、複数の機能を1つの物理的装置内またはソフトウエア製品の中のソフトウエア・モジュール内に統合してよいし、或る機能を別個の物理的装置またはソフトウエア・モジュール内で実現してもよい。また認識されるように、ハードウエアとソフトウエアとの境界は必ずしもはっきりしない。
したがって、本発明が制約されるのは特定の例示の実施の形態ではなく、特許請求の範囲だけであることを理解していただきたい。
【符号の説明】
【0046】
40 ネットワーク・サーバ
42 計算装置
44 プロセッサ
46 揮発性メモリ・ユニット
48 不揮発性メモリ・ユニット
50 大容量記憶装置


【特許請求の範囲】
【請求項1】
データ記憶装置内のユーザ・データ記憶領域にアクセスする方法であって、
前記データ記憶装置上のデータ記憶のためのユーザ領域に加えて保護領域を定義するステップと、
前記ユーザ領域に関するデータ読取りおよび書込み操作中に前記保護領域にアクセスして前記保護領域内でデータを緩衝するステップ、
を含むユーザ・データ記憶領域にアクセスする方法。
【請求項2】
前記データ記憶装置が関係するホスト装置のオペレーティング・システムの操作の下でユーザは前記保護領域にアクセスできない、請求項1記載のユーザ・データ記憶領域にアクセスする方法。
【請求項3】
前記データ記憶装置は磁気記憶媒体を有するディスク・ドライブを備え、また前記保護領域は前記磁気記憶媒体上の隠れシステム領域とPARTIES領域の少なくとも1つにある、請求項1記載のユーザ・データ記憶領域にアクセスする方法。
【請求項4】
前記データ記憶装置は磁気記憶媒体を有するディスク・ドライブを備え、また前記保護領域はソフトウエアまたはファームウエアによりアクセス可能な前記磁気記憶媒体上にホスト保護領域を含む、請求項1記載のユーザ・データ記憶領域にアクセスする方法。
【請求項5】
前記保護領域内に安全なサブ領域を定義するステップを更に含み、前記ユーザ領域に関するデータの読取りおよび書込み操作中は、データは前記安全なサブ領域内で緩衝される、請求項1記載のユーザ・データ記憶領域にアクセスする方法。
【請求項6】
前記データ記憶装置は前記保護領域をその上に含む磁気記憶媒体を有するディスク・ドライブを備え、また前記安全なサブ領域は前記保護領域内のLBA値の或る範囲により定義され、また前記安全なサブ領域はLBA値を用いてアドレス指定することによりアクセスされる、請求項5記載のユーザ・データ記憶領域にアクセスする方法。
【請求項7】
前記緩衝するステップはLBAを用いて前記保護領域内のデータにアクセスするステップを含む、請求項6記載のユーザ・データ記憶領域にアクセスする方法。
【請求項8】
前記緩衝するステップは読取りおよび書込み操作中のデータの認証を含む、請求項1記載のユーザ・データ記憶領域にアクセスする方法。
【請求項9】
前記保護領域へのアクセスと前記保護領域内でのデータの緩衝の少なくとも1つは前記データ記憶装置内に設けられたコントローラによる制御の下にある、請求項1記載のユーザ・データ記憶領域にアクセスする方法。
【請求項10】
前記保護領域へのアクセスと前記保護領域内でのデータの緩衝の少なくとも1つは前記データ記憶装置外にあるソフトウエアまたはファームウエアによる制御の下にある、請求項1記載のユーザ・データ記憶領域にアクセスする方法。
【請求項11】
遠隔装置とホスト・システムとの間の大量データ転送の方法であって、
前記ホスト・システム内のデータ記憶装置内のデータ記憶のためのユーザ領域に加えて保護領域を定義し、
前記ユーザ領域に関するデータ読取りおよび書込み操作中に前記保護領域にアクセスして前記保護領域内で大量データ転送を緩衝する、
大量データ転送の方法。
【請求項12】
データ記憶装置であって、
データ記憶媒体であって、データ記憶のためのユーザ領域に加えて保護領域を定義する、データ記憶媒体と、
変換器と、
前記データ記憶媒体に関して前記変換器を支持して位置決めするアクチュエータと、
前記ユーザ領域に関するデータの読取りおよび書込み操作中に前記保護領域へのアクセスと前記保護領域内でのデータの緩衝の少なくとも1つを制御するコントローラと、
を備えるデータ記憶装置。
【請求項13】
前記データ記憶装置が関係するホスト装置のオペレーティング・システムの操作の下でユーザは前記保護領域にアクセスできない、請求項12記載のデータ記憶装置。
【請求項14】
前記データ記憶装置は磁気記憶媒体を有するディスク・ドライブを備え、また前記保護領域は前記磁気記憶媒体上の隠れシステム領域とPARTIES領域の少なくとも1つにある、請求項12記載のデータ記憶装置。
【請求項15】
前記データ記憶装置は磁気記憶媒体を有するディスク・ドライブを備え、また前記保護領域はソフトウエアまたはファームウエアによりアクセス可能な前記磁気記憶媒体上にホスト保護領域を含む、請求項12記載のデータ記憶装置。
【請求項16】
前記保護領域は安全なサブ領域を含み、前記ユーザ領域に関するデータの読取りおよび書込み操作中は、データは前記安全なサブ領域内で緩衝される、請求項12記載のデータ記憶装置。
【請求項17】
前記データ記憶装置は前記保護領域をその上に含む磁気記憶媒体を有するディスク・ドライブを備え、また前記安全なサブ領域は前記保護領域内のLBA値の或る範囲により定義され、また前記安全なサブ領域はLBA値を用いてアドレス指定することによりアクセスされる、請求項16記載のデータ記憶装置。
【請求項18】
前記コントローラはLBAを用いて前記保護領域にアクセスすることによりデータの緩衝を制御する、請求項17記載のデータ記憶装置。
【請求項19】
データ処理システムであって、
請求項12記載のデータ記憶装置と、
ホスト・システムであって、前記データ記憶装置に動作可能なように結合されまたプロセッサおよびオペレーティング・システムを含み、前記プロセッサは読取りおよび書込み操作のために前記データ記憶装置との間でデータを転送する、ホスト・システムと、
を備えるデータ処理システム。
【請求項20】
前記ホスト・システムのオペレーティング・システムの操作の下でユーザは前記保護領域にアクセスできない、請求項19記載のデータ処理システム。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図1】
image rotate


【公開番号】特開2009−187547(P2009−187547A)
【公開日】平成21年8月20日(2009.8.20)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−21400(P2009−21400)
【出願日】平成21年2月2日(2009.2.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.EEPROM
【出願人】(500373758)シーゲイト テクノロジー エルエルシー (278)
【Fターム(参考)】