(57)【要約】指定されたホスト以外とは使用が制限される周辺装置、例えばＡＴＡディスクドライブがアンロック後に別のシステムにホットプラグされることを防止する方法を提供する。これにより、ドライブに保存されているデータ（例えば、音楽やビデオ）のホットプラグアタックによるプライバシー侵害を避けることができる。ドライブと指定されたホスト間の時間同期を維持することにより、両装置が時間情報から同じシードが得られるようホストからの読み書きコマンド発行時にいつでも認証番号を生成させ、実現される。
2005539278.tif 000002
【特許請求の範囲】
【請求項１】
ホストに指定されたコンピュータディスクドライブ等の周辺装置をホットプラグアタックから保護する方法であって、
（ａ）ホストと周辺装置間の時間的同期を維持するステップと、
（ｂ）ホストと周辺装置において共通のデータを生成するために時間的同期を利用するステップと、
（ｃ）共通データを含むシードに基づいてホストにおいて認証コードを生成するステップと、
を含む前記方法。
【請求項２】
ホストと関連するレジスタに認証コードを格納し、認証コードを読み書きコマンドとともに周辺装置に転送するステップを含む請求項１に記載の方法。
【請求項３】
前記レジスタがＦｅａｔｕｒｅｓレジスタを含む請求項２に記載の方法。
【請求項４】
前記認証コードが乱数を含む請求項１に記載の方法。
【請求項５】
シードをＸ0として、公式
Ｘn+1＝Ｐ1・Ｘn＋Ｐ2  ｍｏｄ  Ｎ  ｎ＝０，1，２，．．．
を用いて前記乱数を生成することができる請求項４に記載の方法。
【請求項６】
ホストおよび周辺装置のそれぞれのタイマを初期値のＴ0に設定することによって時間的同期が維持される請求項１に記載の方法。
【請求項７】
周辺装置の読み書き動作に実質的に影響を与えずに周辺装置に共通データを転送する請求項２に記載の方法。
【請求項８】
請求項１に記載の方法であって、
共通データに基づいてホストで認証コードを生成するステップと、
周辺装置で生成された認証コードをホストで生成された認証コードと比較するステップと、
を含む前記方法。
【請求項９】
前記比較ステップ中にホストからのコマンドに対して周辺装置が通常通りに応答する請求項８に記載の方法。
【請求項１０】
請求項８に記載の方法であって、
前記比較ステップで認証コードが不一致の場合に改訂認証コードを生成するステップと、
ホストで生成された認証コードと前記改訂認証コードを比較するステップと、
を含む前記方法。
【請求項１１】
前記比較ステップで認証コードが不一致の場合に、ホストからの新たなコマンドに対して周辺装置が応答することのないロックモードに周辺装置を切り換えるステップを含む請求項８に記載の方法。
【請求項１２】
ホストに指定されたコンピュータディスクドライブ等の周辺装置をホットプラグアタックから保護するシステムであって、
（ａ）ホストと周辺装置間の時間的同期を維持する手段と、
（ｂ）ホストおよび周辺装置で共通データを生成するために時間的同期を利用する手段と、
（ｃ）共通データを含むシードに基づいてホストで認証コードを生成する手段と、
を含む前記システム。
【請求項１３】
請求項１２に記載のシステムであって、
ホストに関連するレジスタに認証コードを格納する手段と、
認証コードを読み書きコマンドとともに周辺装置に転送する手段と、
を含む前記システム。
【請求項１４】
前記レジスタがＦｅａｔｕｒｅｓレジスタを含む請求項１３に記載のシステム。
【請求項１５】
認証コードが乱数を含む請求項１２に記載のシステム。
【請求項１６】
シードをＸ0として、公式
Ｘn+1＝Ｐ1・Ｘn＋Ｐ2  ｍｏｄ  Ｎ      ｎ＝０，ｌ，２，．．．
を用いて前記乱数を生成することができる請求項１５に記載のシステム。
【請求項１７】
ホストおよび周辺装置にそれぞれのタイマを備え、タイマを初期値Ｔ0に設定することによって時間的同期を維持する請求項１２に記載のシステム。
【請求項１８】
周辺装置の読み書き動作に実質的に影響を与えずに周辺装置に共通データを転送する請求項１３に記載のシステム。
【請求項１９】
請求項１３に記載のシステムであって、
共通データに基づいてホストで認証コードを生成する手段と、
周辺装置で生成された認証コードをホストで生成された認証コードと比較する手段と、
を含む前記システム。
【請求項２０】
前記比較ステップ中にホストからのコマンドに対して周辺装置が通常通りに応答する請求項１９に記載のシステム。
【請求項２１】
請求項１９に記載のシステムであって、
前記比較ステップで認証コードが不一致の場合に改訂認証コードを生成する手段と、
ホストで生成された認証コードと前記改訂認証コードとを比較する手段と、
を含む前記システム。
【請求項２２】
請求項１９に記載のシステムであって、
前記比較ステップで認証コードが不一致の場合に、ホストからの新たなコマンドに対して周辺装置が応答しないロックモードに周辺装置を切り換えるステップを含む前記システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
この特許出願は２００１年１０月２９日付出願の米国Ｐｒｏｖｉｓｉｏｎａｌ  Ａｐｐｌｉｃａｔｉｏｎ  ６０／３４８，４３１の優先権を主張する。
【０００２】
（発明の分野）
本発明は一般に、コンピュータディスクドライブなどの周辺装置の保護に関する。特に本発明は、指定されたホストでの使用に制限したディスクドライブなどの周辺装置がアンロック後に別のシステムにホットプラグされないように保護するための方法に関する。
【背景技術】
【０００３】
（発明の背景）
家庭用電化製品の技術開発においては、オーディオやビデオ、パーソナルコミュニケーション用の製品などの従来型家電製品と、パーソナルコンピュータのデジタルワールドとの接点を模索している。この種の技術によれば、各種製品の相互の対話が可能であり、また、多くの個別製品をコンパクトな対話ユニットに組み込むことが可能になる。そのような技術の１つの典型的な応用としては、例えばセットトップボックスがある。セットトップボックスは、入力デジタル信号を標準のテレビ受像機に適した形式に変換するための特殊なコンピュータを使用する装置である。信号ソースとしては、衛星または地上波のデジタル放送、ケーブルテレビチャンネルや電話回線経由のビデオ・オン・デマンドプログラムが可能である。インターネット領域において、セットトップボックスは基本的にインターネットと「対話」することができる特殊なコンピュータである。これらの製品には、例えばユーザがケーブルテレビ会社にテレビ番組や映画を注文し、それをドライブに保存し、都合の良いときにドライブからプログラムや映画を再生することができるように、ハードディスクドライブ形式の記憶装置を設けることが可能である。消費者家電のドライブでは一般に、個々のドライブを固有のホストに指定する必要がある。ビデオや音楽などのデータが、プライバシーを損なうような方法でドライブに保存されることを避けるためである。
【０００４】
ホットプラグという用語は通常、パワーオン状態のシステムに対してディスクドライブを抜き差しする操作を指す。特に、ディスクドライブに対するホットプラグアタックとは、ドライブがシステムによって起動された後かつアンロック状態にされた後にシステムから抜き取り、そして、ドライブのアンロック状態を維持する手順中にドライブをパワーオンのまま別のシステムに差し込むことを意味する。この方法によれば、ディスクドライブに保存されたすべてのデータを他のドライブにコピーすることが可能であり、また、ドライブのパワーダウンまで別のシステム上で使用することもできる。
【０００５】
ディスクドライブに対するホットプラグアタックの問題は、一般にディスクドライブのアンロック後に起こるので解決が困難であり、既存のＡＴＡ（Advanced Technology Attachment）の標準セキュリティ機能ではディスクドライブをそのような攻撃から保護することができない。
【０００６】
また、ホットプラグアタックはセキュリティアンロックコマンド間の合間で実行可能である。したがって、ホットプラグアタックを効果的に防止するためにアンロック時間を十分に短く設定する必要がある。そのためには、セキュリティアンロックコマンドを頻繁に出さなければならない。その結果、ドライブの通常動作においてアンロック手順に関わる多くのドライブ時間が費やされる。
【０００７】
本発明は、上記および他の問題に対する解決策と共に、従来技術より優れた特徴を提供する。
【発明の開示】
【０００８】
（発明の概要）  
本発明は、ハードディスクドライブなどの周辺装置をホットプラグアタックから保護するためのシステムと方法を提供し、上記問題に対処する。
【０００９】
本発明は、ディスクドライブが指定されたホストから別のシステムへ、正常な読み書き動作に影響のない状態でホットプラグされる危険を防止する方法を提供する。この方法は、ドライブとホスト間の時間的同期を維持することによってホットプラグアタックからドライブを効果的に保護する。また、この方法によれば、Ｆｅａｔｕｒｅｓレジスタを使用して各読み書きコマンドにおけるセキュリティ情報を搬送することによってＳｅｃｕｒｉｔｙ  Ｕｎｌｏｃｋコマンド相互間の時間間隔（すなわち、アンロックタイムリミット）を大幅に広げることができる。
【００１０】
本発明の一側面は、ホストに指定された周辺装置をホットプラグアタックから保護する方法であり、
（ａ）ホストと周辺装置間の時間的同期を維持するステップと、
（ｂ）ホストと周辺装置において共通のデータを生成するために時間的同期を利用するステップと、
（ｃ）共通データを含むシードに基づいてホストにおいて認証コードを生成するステップと、
を含む。
【００１１】
本発明の別の側面は、ホストに指定された周辺装置をホットプラグアタックから保護するシステムであり、
（ａ）ホストと周辺装置間の時間的同期を維持する手段と、
（ｂ）ホストと周辺装置において共通のデータを生成するために時間的同期を利用する手段と、
（ｃ）共通データを含むシードに基づいてホストにおいて認証コードを生成する手段と、
を含む。
【００１２】
本発明の特徴である上記および他の様々な特長および利点は、以下の詳細な説明と関連図面によって明らかになる。
【実施例】
【００１３】
（詳細な説明）  
ＡＴＡ規格によると、Ｆｅａｔｕｒｅｓレジスタ、Ｓｅｃｔｏｒ  Ｃｏｕｎｔレジスタ、ＬＢＡ  Ｌｏｗレジスタ、ＬＢＡ  Ｍｉｄレジスタ、ＬＢＡ  Ｈｉｇｈレジスタ、Ｄｅｖｉｃｅレジスタ、Ｃｏｍｍａｎｄレジスタを介して、ホストからディスクドライブにコマンド（制御情報）を発行することができる。現在ＡＴＡディスクドライブに実装されているすべての読み書きコマンドにＦｅａｔｕｒｅｓレジスタが使用されているわけではないので、各読み書きコマンドにおけるセキュリティ情報を搬送するためにＦｅａｔｕｒｅｓレジスタを使用することができる。これにより、ディスクドライブをホットプラグアタックから保護する目的でのオーバーヘッドの追加を回避することができる。
【００１４】
Ｆｅａｔｕｒｅｓレジスタによって搬送されるセキュリティ情報には、シードに基づいて生成される認証番号が含まれる。この目的で例えば以下の公式を使用することができる。
Ｘｎ＋１＝Ｐ１・Ｘｎ＋Ｐ２  ｍｏｄ  Ｎ  ｎ＝  ０，１，２，．．．    （１）
ただし、Ｘ０はシードを表す。公式から、ホストのＰ１、Ｐ２およびＮがドライブのものと同じであれば、同じシードから同じ認証番号Ｘ１が生成されることになる。
【００１５】
ホストとドライブ間の時間的同期を維持するために、双方に個別に初期値Ｔ０のタイマが設定される。それぞれのタイマの内容は、ミリ秒単位でインクリメントするように構成し、読み書きコマンドが発行される度に認証番号を生成するためにシードとして使用することができる。その後の各アンロックコマンドにおいて、タイマの内容は、現在の格納値にアンロックタイムリミットを加えることによって更新され、更新された内容は初期値と共にホストに格納される。
【００１６】
この概念を説明するために、以下の変数を定義する。
Ｔｕ＝アンロックタイムリミット
Ｔ＝ホストの同期タイマに格納された内容
Ｄｍａｘ＝アンロックタイムリミット以内のシード生成時に、ホストとドライブの同期タイマ間タイミング差の影響を排除するために用いられる時間ブロックユニット
【００１７】
タイミング差は下記三つの要因で生じる。
１  ホストとドライブのクロック差
２  ホストとドライブ間の同期タイマ始動の遅延Ｄｕ
３  ホストとドライブ間の認証番号生成の遅延Ｄｒｗ
【００１８】
電源投入後、ホストは通常動作を始める前にロック状態のドライブをアンロックにするために暗号化パスワードを送出する。
【００１９】
アンロック手順において、ホストは、
１  Ｔ＋ＴｕでＴを更新して、格納する
２  Ｔ−Ｔ０を暗号化して、それをアンロックパスワードとともにドライブに送出する
３  Ｔ０を同期タイマの初期値として、Ｔからミリ秒単位で計時を開始する
【００２０】
その間、ドライブは、
１  アンロックコマンドから復号されたＴ−Ｔ０を取得する
２  格納されている初期値Ｔ０にＴ−Ｔ０を加算することによってＴを計算する
３  Ｔからミリ秒単位で計時を開始する
【００２１】
ホストからドライブへ差Ｔ−Ｔ０を転送する目的は、両者が同期タイマを常に同じ値から始動することを保証するためである。
【００２２】
ホストがＴ＋Ｙで読み書きコマンドを発行すると、ホストは
１  （Ｔ＋Ｙ）／Ｄｍａｘの商をシードとして使用することにより認証番号を生成する。
２  認証番号をＦｅａｔｕｒｅｓレジスタの内容として、それをコマンドとともにＡＴＡバス経由でドライブへ転送する。
【００２３】
ドライブが読み書きコマンドを受け取ると、
１  ドライブはコマンドに通常通り応答すると同時に、バックグラウンドで認証番号を確認することができる。
ｉ  ドライブは、ホストと同じ公式を使用して自身のタイマ値に基づいて自身の認証番号を生成することによってＦｅａｔｕｒｅｓレジスタに格納されている認証番号を確認する。
ｉｉ  ドライブの認証番号とＦｅａｔｕｒｅｓレジスタに格納されている認証番号を比較する。
２  ドライブは、すべてのホストコマンドに対する応答を通常通りに継続すると同時に、バックグラウンドでの確認過程を続ける。すなわち、新しい認証番号を含むその後の読み書きコマンドを無視することが可能である。この確認は比較的短時間、例えば１ミリ秒で完了する。
３  二つの認証番号の比較に失敗した場合、ドライブは、ドライブの現在のシードをインクリメントまたはデクリメントすることによって確認手順をリトライする。これにより、ホストとドライブ間の僅かなタイミング差によって両者間のシード差が生じる恐れに対処することができる。
４  リトライによる比較に失敗した場合、ドライブは直ちにロックモードに切り換わり、その後のすべての読み書きコマンドを拒絶する。
【００２４】
アンロックタイムリミットが終了する前に、ホストはそのタイマをＴ＋Ｔｕで更新することによって同期タイマを再同期させるためにアンロックコマンドを発行し、そのコマンドを、暗号化された差分Ｔ＋Ｔｕ−Ｔ０と共にドライブに転送する。したがって、両者は新たに更新された同期値から計時を開始することができる。
【００２５】
このステップにより、最後のアンロックコマンド以後のタイミング差の蓄積を避けることができる。したがって、アンロックタイムリミットを比較的大きい値に設定することができる。ホストとドライブ間のタイミング差が十分に小さいことが保証されれば、例えば３０分か６０分、あるいは更に長時間にアンロックタイムリミットを設定することができる。しかし、ここではアンロックタイムリミットを約３０秒に設定することで、ホットプラグアタックの危険を最小限にすることができる。
【００２６】
以下の説明では、タイミング差の影響を解決する上記項目（３）について詳述する。
Ｔｕ＝５０分
Ｄｍａｘ＝２０ミリ秒
Ｄｕ＝０．６ミリ秒
Ｄｒｗ＝０．８ミリ秒
と仮定する。
【００２７】
ホストのクロックはドライブのクロックより０．０１ミリ秒／秒遅いと仮定する（実装時、Ｔ０およびＴｕをＤｍａｘの倍数にする必要があるかもしれない）。
つぎの二つのケースを考える。
（１）ホスト側において、Ｔ＋Ｔｕ＝３０５４１９８８０（ミリ秒）、Ｔ＋Ｔｕ＋Ｙ＝３０５４４００１５（ミリ秒）（すなわち、ホストにおけるＴ＋Ｔｕから２０１３５ミリ秒後）。したがって、Ｔ＋Ｔｕ＋Ｙでのホストのシードは１５２７２０００である。これに対応するドライブのシードは（３０５４４００１５−０．６＋０．８＋０．０１＊２０．１３５）／２０＝１５２７２０００であり、これはＴ＋Ｔｕ＋Ｙでのホストのシードと等しい。
（２）ホスト側において、Ｔ＋Ｔｕ＝３０５４１９８８０（ミリ秒）、Ｔ＋Ｔｕ＋Ｙ＝３０７２１９８８８（ミリ秒）（すなわち、ホストにおけるＴ＋Ｔｕから１８００００８ミリ秒、つまり３０分以上後）。したがって、Ｔ＋Ｔｕ＋Ｙでのホストのシードは１５３６０９９４である。これに対応するドライブのシードは（３０７２１９８８８−０．６＋０．８＋０．０１＊１８００．００８）／２０＝１５３６０９９５であり、Ｔ＋Ｔｕ＋Ｙでのホストのシードより１だけ大きい。この場合、シード１５３６０９９４に基づいてホストで生成される認証番号と一致するには、ドライブ側で現在のシードすなわち１５３６０９９５をデクリメントする必要がある。
【００２８】
図１はディスクドライブの分解図を示す。簡単に言えば、ディスクドライブ１０はハウジングベース１１と上部カバー１２を含み、それらをガスケット１３と係合して、清浄な環境を維持する封止ハウジングを形成する。複数のディスク１４がスピンドルモータハブ１５を軸として回転可能な状態で取り付けられる。複数のトランスジューサヘッド１６がアクチュエータ本体１７に取り付けられる。アクチュエータ本体１７は、ヘッド１６を弓形経路２１に沿って所望トラック２０へ制御性よく移動させるために、ボイスコイル１８と磁石１９を含むボイスコイルモータ（ＶＣＭ）による制御のもとでピボット運動をすることができる。ＶＣＭとヘッド１６を制御するための信号は、フレキシブル回路２２とコネクタ２３を介してコントローラボード２４上の電子回路との間で受け渡しされる。コントローラボード２４はファイバチャンネル・インタフェース２５、シリアルポートコネクタ２６、スピンドルコネクタ２７を含んでいる。
【００２９】
図２はホストとハードディスクドライブ間の通信のフローチャートを示す。同期タイマの値がＴ＋Ｔｕ＋Ｙであるとき、ホストは読み書きコマンド１を発行する。ホストはつぎに、シードとして商（Ｔ＋Ｔｕ＋Ｙ）／Ｄｍａｘを用いた方程式（１）の公式に基づいて認証番号を生成する。ホストは、Ｆｅａｔｕｒｅｓレジスタの内容として認証番号を格納し、それをコマンドとともにＡＴＡバスを介してディスクドライブに転送する。
【００３０】
ディスクドライブは読み書きコマンド１を受け取って、そのコマンドに通常通り応答すると同時にバックグラウンドで認証番号を確認する。ドライブは、シードとして自身のタイマ値を用いた方程式（１）のホストと同じ公式に基づいて自身の認証番号を生成することによって、Ｆｅａｔｕｒｅｓレジスタに格納されている認証番号を確認する。ドライブはつぎに、自身で生成した認証番号とＦｅａｔｕｒｅｓレジスタに格納されている認証番号とを比較する。ドライブは、すべてのホストコマンドに対する応答を継続すると同時に、バックグラウンドでの確認過程を続けるが、新しい認証番号を含むその後の読み書きコマンド２、３を無視する。
【００３１】
図２で示されるように比較が成功すれば、ディスクドライブは新しい認証番号を含む読み書きコマンド４を受け取る。ドライブはコマンドに応答すると同時にバックグラウンドで新しい番号を確認する。新しい番号の比較も成功した場合は、上記手順が繰り返される。
【００３２】
図３で示されるように一回目の比較が成功しなかった場合、ドライブは、現在のシードをインクリメントまたはデクリメントすることによって認証手順をリトライする。これによって、ホストとドライブ間の僅かなタイミング差が原因で両者間にシード差が生じる可能性を解決できるかもしれない。リトライ比較が成功しない場合、ドライブは直ちにロックモードに切り換わり、読み書きコマンド４とその後の読み書きコマンドを拒絶する。
【００３３】
本発明は、アンロック後にドライブとホスト間の時間的同期を維持することにより、ホストに指定されたディスクドライブが別のシステムにホットプラグされることを防止する。本発明は、時間情報からのシードに基づいて生成される認証番号を搬送するために読み書きコマンド内にＦｅａｔｕｒｅｓレジスタを使用するので、通常の読み書き動作コマンドへの影響がない。
【００３４】
したがって、仮にドライブがＰＣ等の別のシステムにホットプラグされたとしても、本発明によって下記二つの攻撃の可能性はなくなる。その一つは、ＡＴＡバスアナライザを使用してＦｅａｔｕｒｅｓレジスタの内容が捕捉されることである。正確な捕捉内容がＰＣからドライブに送られたとき、ドライブで使用されるタイマは以前とは異なっているので、異なった認証番号が生成される。したがって、ドライブにアクセスするために捕捉内容を使用することができない。比較手順で一回でも失敗すると、ドライブはロックモードに切り換わるので、有効８ビット数の徹底検索は不可能である。
【００３５】
本発明は下記の理由によりアンロックタイムリミットをかなり長くすることができる。
１  すべての読み書きコマンドを確認できる。
２  認証はバックグラウンドで実行され、ドライブのパフォーマンスに影響を与えることがない。
【００３６】
以上の説明において、本発明の様々な実施例に関する多くの特徴および利点について、それらの構成および機能とともに述べたが、この記述は単なる説明手段であって、本発明の原理から逸脱しない範囲において、特許請求の範囲に表現されている広範な一般概念で表される細部の変更、特に構造、構成の変更が可能である。例えば、本発明の範囲および精神から逸脱することなしに、実質的に同一の機能を維持しつつ、特定の応用に応じて特定要素を変更することが可能である。さらに好ましい実施例では上述のディスクドライブを取り上げたが、当業者には明らかな通り、本発明の範囲および精神から逸脱することなしにハードディスクドライブのような他のシステムにも応用可能である。
【図面の簡単な説明】
【００３７】
【図１】ディスクドライブの分解図。
【図２】認証手順が成功した場合のホストとハードディスクドライブ間通信のフローチャート。
【図３】認証手順が成功しなかった場合のホストとハードディスクドライブ間通信のフローチャート。
【図１】
2005539278.tif 000003
【図２】
2005539278.tif 000004
【図３】
2005539278.tif 000005
【国際調査報告】
2005539278.tif 000006
2005539278.tif 000007