(57)【要約】【課題】データ記憶装置における信頼できるタイムスタンプを提供する。【解決手段】データ記憶装置によって生成される安全なタイムスタンプが記載される。メタデータタイムスタンプが、各記録されたデータユニット用に生成される。ＨＤＤは、安全な方法でタイムスタンピングを実行する。タイムスタンプは、データおよびタイムスタンプを用いて安全な動作を実行することによって安全にされる。安全な動作は、記憶装置に内蔵された安全な鍵を用い、装置の外部では読み出し不可能である。いくつかの実施形態において、安全な動作は、安全な鍵を用いた暗号化である。【選択図】図１
2012099100.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶装置であって、
安全な鍵が予め記録される不揮発性メモリであって、前記安全な鍵が、前記データ記憶装置の外部では読み出し不可能である不揮発性メモリと、
ホスト装置からの書き込みコマンドの受信に応じて書き込み動作を実行するための手段であって、前記書き込みコマンドが、データおよびアドレスを指定する手段と、
前記書き込み動作用のタイムスタンプを生成するための手段と、
前記安全な鍵を用い、かつ少なくとも前記データおよび前記タイムスタンプを入力として用いて、ハッシュコードを生成するためのハッシュコード生成器と、
前記タイムスタンプおよび前記ハッシュコードを、前記データに関連するメタデータとして記録するための手段と、
を含むデータ記憶装置。
【請求項２】
前記ハッシュコード生成器が、前記ハッシュコードを生成する際に前記アドレスを用いる、請求項１に記載のデータ記憶装置。
【請求項３】
前記ホスト装置からの検証コマンドの受信に応じて検証動作を実行するための手段であって、前記検証コマンドが前記アドレスを指定し、前記検証動作が、前記データ、前記タイムスタンプおよび前記ハッシュコードを読み出すことと、前記データおよび前記タイムスタンプ用の新しいハッシュコードを計算することと、前記新しいハッシュコードが前記読み出されたハッシュコードと等しい場合には、検証の成功を報告することと、を含む手段をさらに含む、請求項１に記載のデータ記憶装置。
【請求項４】
前記タイムスタンプが、ＰＯＳＩＸタイムスタンプであり、
前記データ記憶装置が、
前記データ記憶装置の製造時間を記録する原始記入を含むパワーオン時間（ＰＯＨ）対ＰＯＳＩＸ時間表と、
前記データ記憶装置の前記製造時間より早い、前記ホスト装置からのどんなＰＯＳＩＸ時間も拒絶するための手段と、
をさらに含む、請求項１に記載のデータ記憶装置。
【請求項５】
データ記憶装置を動作させる方法であって、
前記データ記憶装置における不揮発性メモリの位置に安全な鍵を記録することであって、前記位置が、前記データ記憶装置の外部から読み出すためにはアクセスできないことと、
ホスト装置からの書き込みコマンドの受信に応じて書き込み動作を実行することであって、前記書き込みコマンドがデータおよびアドレスを指定し、
前記書き込み動作が、
前記書き込み動作用のタイムスタンプを生成することと、
前記安全な鍵を用い、かつ少なくとも前記データおよび前記タイムスタンプを入力として用いて、前記ハッシュコードを生成することと、
前記タイムスタンプおよび前記ハッシュコードを、前記データに関連するメタデータとして記録することと、
を含むことと、
を含む方法。
【請求項６】
前記ハッシュコードを生成することが、前記ハッシュコードを生成する際に前記アドレスを用いることをさらに含む、請求項５に記載の方法。
【請求項７】
前記ホスト装置からの検証コマンドの受信に応じて検証動作を実行することであって、前記検証コマンドが前記アドレスを指定し、前記検証動作が、前記データ、前記タイムスタンプおよび前記ハッシュコードを記憶装置から読み出すことと、前記データおよび前記タイムスタンプ用の新しいハッシュコードを計算することと、前記新しいハッシュコードが前記読み出されたハッシュコードと等しい場合には、検証の成功を報告することと、を含むことをさらに含む、請求項５に記載の方法。
【請求項８】
前記タイムスタンプが、ＰＯＳＩＸタイムスタンプであり、前記書き込み動作用に前記タイムスタンプを生成することが、パワーオン時間（ＰＯＨ）対ＰＯＳＩＸ時間をマップする表を用いることをさらに含む、請求項５に記載の方法。
【請求項９】
前記表が、最も早い許可されたＰＯＳＩＸ時間として用いられる前記データ記憶装置の製造時間を記録した記入を含む、請求項８に記載の方法。
【請求項１０】
データ記憶装置であって、
安全な鍵が予め記録された不揮発性メモリであって、前記安全な鍵が、前記データ記憶装置の外部では読み出し不可能である不揮発性メモリと、
ホスト装置からの書き込みコマンドの受信に応じて書き込み動作を実行するための手段であって、前記書き込みコマンドが、データおよびアドレスを指定する手段と、
前記書き込み動作用のタイムスタンプを生成するための手段と、
暗号化された記録を生成する前記安全な鍵を用いて、前記データおよび前記タイムスタンプを暗号化するための暗号化関数と、
前記暗号化された記録を前記アドレスに記録するための手段と、
を含むデータ記憶装置。
【請求項１１】
前記ホスト装置からの検証コマンドの受信に応じて検証動作を実行するための手段であって、前記検証コマンドが前記アドレスを指定し、前記検証動作が、前記アドレスにおける前記暗号化された記録を読み出すことと、前記安全な鍵を用いて、前記暗号化された記録を復号して前記データおよび前記タイムスタンプを検索することと、エラーが検出されない場合には検証の成功を報告することと、を含む手段をさらに含む、請求項１０に記載のデータ記憶装置。
【請求項１２】
前記タイムスタンプが、ＰＯＳＩＸタイムスタンプであり、
前記データ記憶装置が、
前記データ記憶装置の製造時間を記録した原始記入を含むパワーオン時間（ＰＯＨ）対ＰＯＳＩＸ時間表と、
前記データ記憶装置の前記製造時間より早い、前記ホスト装置からのどんなＰＯＳＩＸ時間も拒絶するための手段と、
をさらに含む、請求項１０に記載のデータ記憶装置。
【請求項１３】
データ記憶装置を動作させる方法であって、
前記データ記憶装置における不揮発性メモリの位置に安全な鍵を記録することであって、前記位置が、前記データ記憶装置の外部から読み出すためにアクセスできないことと、
ホスト装置からの書き込みコマンドの受信に応じて書き込み動作を実行することであって、前記書き込みコマンドがデータおよびアドレスを指定し、
前記書き込み動作が、
前記書き込み動作用のタイムスタンプを生成することと、
前記安全な鍵を用いて前記データおよび前記タイムスタンプを暗号化し、暗号化された記録を生成することと、
前記暗号化された記録を前記アドレスに記録することと、
を含むことと、
を含む方法。
【請求項１４】
前記ホスト装置からの検証コマンドの受信に応じて検証動作を実行することであって、前記検証コマンドが前記アドレスを指定し、前記検証動作が、前記アドレスにおける前記暗号化された記録を読み出すことと、前記安全な鍵を用いて、前記暗号化された記録を復号して前記データおよび前記タイムスタンプを検索することと、エラーが検出されない場合には検証の成功を報告することと、を含むことをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記データ記憶装置が、複数のディスクドライブにおけるセクタのセット間にデータを分割するＲＡＩＤ記憶システムであって、前記セットにおけるいくつかのセクタがパリティデータだけを含み、前記検証動作を実行することが、前記セットにおける前記パリティデータだけを含むセクタを省略することをさらに含むＲＡＩＤ記憶システムである、請求項１４に記載の方法。
【請求項１６】
前記タイムスタンプが、ＰＯＳＩＸタイムスタンプであり、前記書き込み動作用に前記タイムスタンプを生成することが、パワーオン時間（ＰＯＨ）対ＰＯＳＩＸ時間をマップする表を用いることをさらに含む、請求項１３に記載の方法。
【請求項１７】
前記表が、最も早い許可されたＰＯＳＩＸ時間として用いられる前記データ記憶装置の製造時間を記録した記入を含む、請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ化されたデータ用の生成または変更時間を記録するタイムスタンプの認証の分野、およびハードディスクドライブなどのデータ記憶装置を設計し動作させるための方法に関する。
【背景技術】
【０００２】
ディスクドライブなどの先行技術のデータ記憶装置は、自己テスト、較正および電力管理に関する、ホストコンピュータからのコマンドを受信するための手段を含むドライブ制御システムを有する。各ドライブは、それが本質的な機能を実行できるようにするために、専用プロセッサによって実行するためのプログラムコード（マイクロコード）を不揮発性メモリに有する。ハードウェア構成要素およびコマンドプロトコルの両方を伴う、ＩＤＥ、ＳＣＳＩ、シリアルＡＴＡおよびファイバチャネルアービトレーテッドループ（ＦＣ−ＡＬ）などの様々な標準通信インタフェースが一般に用いられる。
【０００３】
法的または財務会計用途では、文書を本物として公証するか、さもなければ認証する必要があり得る。認証し得る文書の側面には、著者、提出時間、内容等が含まれる。現在の認証アーキテクチャには、人間の代理人を介した認証、第三者に管理されたシステム（オンサイトまたはオフサイト）を介した認証が含まれる。認証の一態様が、文書のタイムスタンピングである。これは、文書の生成および変更時間を安全な方法で追跡するプロセスである。
【０００４】
信頼できるタイムスタンピングの実行には、法的手続きにおいて使用可能な、認証の証拠となる痕跡を提供するタイムスタンプを管理する公的に利用可能なツールを設定することを必要とする。タイムスタンピング用の既存の一標準が、ＡＮＳＩ／Ｘ９、Ｘ９．９５である。タイムスタンプは、ハードドライブ上に記録してもよいが、プロセスの本質的な部分は、ハードドライブの外部で実行される（例えば、ネットワーク上またはホストソフトウェアによって）。
【０００５】
ハードドライブ上に記憶された情報は、ドライブに内蔵された暗号化能力を利用するバルク暗号化を含む様々な技術を用いて暗号化することができる。今日市販されているハードドライブは、ユーザデータ用にデータ暗号化を提供するが、この場合に、暗号鍵は、ハードドライブ内に保持され、ドライブデータは、ユーザパスワードでアクセス可能である。
【０００６】
Ｂｅｌｌｕｏｍｉｎｉらによる（特許文献１）（２００９年３月２６日出願）は、ＲＡＩＤシステム用のデータ完全性チェックを説明する。Ｂｅｌｌｕｏｍｉｎｉは、２つのタイプのメタデータ、すなわち原子性メタデータ（ＡＭＤ）および有効性メタデータ（ＶＭＤ）を説明する。ＶＭＤは、書き込まれたデータが破損されたかどうかを判定するために、対象データに関連するシーケンス番号などの情報を提供すると言われ、ＡＭＤは、対象データおよび対応するＶＭＤが、更新段階中にうまく書き込まれたかどうかに関する情報を提供する。ＡＭＤには、データ用のある種のチェックサムを含んでもよく、このチェックサムは、ＬＲＣもしくはＣＲＣまたはハッシュ値とすることができる。Ｂｅｌｌｕｏｍｉｎｉの有効性メタデータ（ＶＭＤ）は、一種の「タイムスタンプ」または位相マーカーとすることができる。これは、クロックベースとするか、またはシーケンス番号に関連させることができる。タイムスタンプまたは位相マーカーは、新しいデータがディスクに書き込まれるたびに変更してもよく、かつ各データセクタ用に保持することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２００９００８３５０４号明細書
【発明の概要】
【課題を解決するための手段】
【０００８】
本発明の実施形態は、記録データの生成または変更用のタイムスタンプの認証を、このサービスを安全に提供するように設計されたデータ記憶装置の使用を介して提供する。下記の実施形態はハードディスクドライブ（ＨＤＤ）であるが、しかし本発明は、フラッシュドライブなど、ＨＤＤに似た装置において実行することができる。ＨＤＤを介したタイムスタンプの認証は、より短くかつより知られた権威を含んだ潜在的により簡単な信用の連鎖という利点のみならず、より低いコスト（初期資本支出および常時サービスの両方）の利点も提供する。追加的な利点は、本発明によるＨＤＤタイムスタンプが、ネットワーク中心の攻撃に対して脆弱性を有しないということである。
【０００９】
本発明の実施形態は、書き込み動作が実行された時間を表す少なくとも１つのタイムスタンプを含む、各々記録されたデータユニット（セクタなど）用のメタデータを生成する。ＨＤＤ自体が、安全な方法でタイムスタンピングを実行する。タイムスタンプは、データおよびタイムスタンプを用いて安全な動作（すなわち、ＨＤＤだけが実行できる動作）を実行することによって安全に作られる。安全な動作は、記憶装置に内蔵された安全な鍵を用い、装置の外部では読み出し不可能である。いくつかの実施形態において、安全な動作は、安全な鍵を用いた暗号化である。他の実施形態において、安全な動作は、少なくとも記録データおよびタイムスタンプを入力として用いてハッシュコードを生成するために、安全な鍵を用いるハッシュコード関数（ハッシュベースメッセージ認証コード（ＨＭＡＣ）関数など）である。次に、ハッシュコードは、データユニット用に記録されるメタデータに含まれる。
【００１０】
実施形態のそれぞれにおいて、タイムスタンプは、検出されていない改ざんから保護されている。したがって、要求に応じて安全な関数を再計算することにより、装置によってユニットごとにタイムスタンプを認証することができる。認証情報は、ドライブから読み出されたデータが、タイムスタンプによって指定された特定の時間の、記録されたままの未変更のデータであるという証拠となる痕跡を提供する。
【図面の簡単な説明】
【００１１】
【図１】ハッシュコードを用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。
【図２】暗号化関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。
【図３】ハッシュ関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。
【図４】暗号化関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。
【発明を実施するための形態】
【００１２】
図１は、ハッシュコードを用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。情報、コマンド、データ等が、通信インタフェース３１を介して、ホストコンピュータ２０とディスクドライブ５０との間を行き来するが、通信インタフェース３１は、現在用いられている先行技術インタフェースのいずれかを含む任意のハードウェアインタフェースとすることができる。ディスクドライブには、揮発性メモリ３７および不揮発性メモリ３５の両方にアクセスする汎用マイクロプロセッサ３３が含まれる。マイクロプロセッサ３３用のプログラムコード（ファームウェア）は、揮発性メモリ３７または不揮発性メモリ３５のどちらかにおいて実行することができる。プログラムコード（ファームウェア）は、ＥＥｐｒｏｍなどの予めプログラムされたデバイス形態の不揮発性メモリ３５で生じる。ディスクドライブ５０は、別個のコントローラ３９を含むように示されているが、しかし代替実施形態において、マイクロプロセッサは、通常はコントローラによって実行されるタスクのいくつかまたは全てを処理するように設計することができる。アームエレクトロニクス４１、ボイスコイルモータ（ＶＣＭ）４３、ディスク４５、スピンドルモータ４７およびヘッド４６は、先行技術によるものである。ディスク４５は、情報が記憶される薄膜媒体（図示せず）でコーティングされる。本発明の実施形態による記録データ１０２のユニットには、データ、ＰＯＳＩＸタイムスタンプおよびハッシュコードが含まれる。ハッシュコードは、ハッシュ発生器１０１によって生成されるが、以下でさらに論じる。記録データのユニットは、ディスク４５上に記憶され、かつそこから検索される。ＰＯＨ対ＰＯＳＩＸ表７３は、以下でさらに論じるが、不揮発性メモリ３５に記憶される。ＰＯＨ対ＰＯＳＩＸ表７３は、１９７０年１月１日００：００：００ＵＴＣ（協定世界時）以来経過した秒であるＰＯＳＩＸ時間に対してデバイスのパワーオン時間（通電時間、ＰＯＨ）をマップするために用いられる。
【００１３】
図２は、暗号化関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。データおよびタイムスタンプ１０２を暗号化するために暗号化関数９９を用いるディスクドライブ５１における本発明の実施形態を示す。
【００１４】
ホストコンピュータとディスクドライブとの間で用いられる通信インタフェース（ＩＤＥ、ＳＣＳＩ、シリアルＡＴＡ、ファイバチャネルアービトレーテッドループなど（ＦＣ−ＡＬ）等）は、形式、すなわち、これを介してホストがコマンドおよびデータをディスクドライブに提供できる形式を定義する。本発明は、以下で説明する新しいコマンドに対して、限られた変更で、これらのシステムのいずれかの一般的な枠組み内で実行することができる。本発明による一変更によって、コンピュータが、データユニット、例えば１つまたは複数のセクタ用の認証情報の要求（コマンド）を送信するための方法が提供される。
【００１５】
本発明の実施形態において、認証情報には、データ変更タイムスタンプの後でデータ内容が変更されていないという証拠を含むべきである。認証情報（検証）の要求は、本発明に従ってハードドライブにより実行される新しく定義されたコマンドを介して、ホストコンピュータによって送信することができる。ハードドライブの通信インタフェースおよびファームウェアは、新しいコマンドを実行するように変更することができる。検証要求の結果は、インタフェースを介してホストに返送することができる。
【００１６】
いくつかの実施形態において、ドライブによって書き込まれた各データユニットの追加的なメタデータには、現在時間およびデータ識別子の非暗号化タイムスタンプと、別個の暗号的に保護／符号化されたハッシュと、が含まれる。データ識別子は、データを一意に識別すべきである。識別子は、論理ブロックアドレス（ＬＢＡ）などの仮想アドレス、またはＨＤＤアーキテクチャによって決定される実際の物理アドレスとすることができる。ＨＤＤだけが安全な鍵を知っており、その結果、ＨＤＤだけがハッシュを生成するか、またはデータユニットおよびメタデータが変更されていないことを検証することができる。安全な鍵は、バルク暗号化用の鍵を生成するために用いられるような、先行技術の方法によって生成される。
【００１７】
本発明用の用途の実例には、デスクトップコンピュータ、監視システムおよび中央公正証書サーバが含まれる。提供される認証データは、法廷においてまたは監査人にとって、文書、画像またはマルチメディアファイルが特定の時間に生成／保存されたという有用な証拠になるように意図されている。
【００１８】
別の使用法は、ファイルに含まれるようなログが変更されなかったことを証明することであり得る。先行技術のファイルシステムは、ファイル全体に対する最後の変更時間を名目上維持するが、しかしかかるタイムスタンプは変更することができ、したがって安全ではない。本発明によれば、信頼できるタイムスタンプは、改竄することも、データの各原子ユニット（例えばセクタ）に対するタイムスタンプの粒度を増加させることもできない。したがって、例えば、追記型ログは、単調に増加するセクタタイムスタンプを有するべきであり、この場合に、タイムスタンプは、ログに記録された最新のアプリケーションレベルの時間および最新のファイルシステム変更時間と一致する。
【００１９】
図３は、ハッシュ関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。ディスクドライブ５０Ａは、ＰＯＳＩＸタイムスタンプ５５および安全なハッシュコード５７を含む追加メタデータと共に、データの各セクタ５３をディスク（媒体）に書き込む。この実施形態において、追加メタデータは、ドライブによって実行される全ての書き込み動作において自動的に書き込まれる。ＰＯＳＩＸタイムスタンプ５５におけるビット数は、最大時間値を表すために十分に大きくなければならない。例えば、それは、便宜上、３２または６４ビットのどちらかにすることができる。
【００２０】
先行技術の暗号法には、安全な（秘密）鍵と組み合わせて暗号ハッシュ関数を用い、メッセージ認証コード（ＭＡＣ）を計算するハッシュベースメッセージ認証コード（ＨＭＡＣ）関数が含まれる。ＭＡＣを用いて、データ完全性およびメッセージ認証の両方を検証することができる。任意の暗号ハッシュ関数を、ＨＭＡＣの計算に用いることができる。この実施形態において、ＨＭＡＣは、タイムスタンプを信頼できるものにするために用いられ、ＨＤＤによる書き込み動作以外のどんな機構を介しても変更できない。ディスクドライブ５０は、安全な鍵６３と、セクタデータおよびセクタＬＢＡ（これらは、ホストコンピュータからの書き込みコマンド６５において指定される）の連結である「メッセージ」と、現在のＰＯＳＩＸ時間６９と、の入力と共にＨＭＡＣ関数６１を用いる。ＨＭＡＣ関数６１の出力は、セクタ用のメタデータの一部として媒体に書き込まれる安全なハッシュ５７である。セクタデータおよびメタデータは、１回の書き込み動作で書き込むことができるが、しかしまた、メタデータを別々に記憶することも可能である。ＬＢＡが、媒体に書き込まれるデータの一部ではなく、それが、ドライブによって用いられるセクタ用アドレスを指すことに留意されたい。したがって、セクタをどんな他のＬＢＡに移動させることも、結果として、もはや有効でないハッシュコードをもたらす。しかしながら、ＬＢＡは、ドライブによって、物理シリンダ／ヘッド／セクタ位置に割り当てられる仮想アドレスである。物理シリンダ／ヘッド／セクタ位置ではなくＬＢＡを用いることが有利である。なぜなら、ブロックが、ドライブの通常の機能の一部として不良であると判定された場合に、ドライブが、ブロックを再配置する必要があり得るからである。したがって、ドライブは、ＬＢＡが同じままである限り、データを移動させることができるが、しかし攻撃者は、データを移動させることができない。
【００２１】
検証動作は、図３の右下部分に示されている。検証プロセスは、ＬＢＡを指定するホストからコマンドを受信することによって開始される。検証は、検証されたタイムスタンプを返す特別のコマンドに応じて実行する必要がある。通常、ユーザは、改竄が発生しなかったことと同様に、実際のタイムスタンプを知りたいと思う。ユーザは、タイムスタンプをドライブから直接受信したいと思うかもしれない。ホストのファイルシステムはまた、その現在のタイムスタンプ（それは別個に維持され、安全ではない）をドライブからの信頼できるタイムスタンプと比較する必要があり得る。典型的なホストのファイルシステムは、単にファイル単位でタイムスタンプを維持するだけだが、しかしドライブの信頼できるタイムスタンプは、各セクタ用に維持される。ファイルは、典型的には多くのデータセクタを含み、これらのセクタは、たとえ媒体上で隣接して配置されていなくてもよい。したがって、セクタ用の信頼できるタイムスタンプを用いるファイルシステムは、典型的には、複数のタイムスタンプを、最も最近の変更を反映する単一のタイムスタンプへ統合する必要がある。
【００２２】
ホストから検証コマンドを受信した後で、セクタデータおよびＰＯＳＩＸタイムスタンプが読み出されて（７５）、ＨＭＡＣ関数７７へ入力として伝達される。ＬＢＡ６７および安全な鍵６３もまた、ＨＭＡＣ７７用の入力として用いられる。安全なハッシュは、媒体から読み出されるが（７６）、ＨＭＡＣ７７には伝達されない。次に、再構成されたハッシュコードが、媒体から読み出されたハッシュコードと比較される（７８）。２つが等しい場合には、ドライブは、セクタ用のＰＯＳＩＸタイムスタンプが検証されたことを報告し、そうでなければ検証は失敗する（７９）。
【００２３】
ＨＭＡＣにおいて用いられる基礎となるハッシュ関数に依存して、安全なハッシュ５７用の追加バイトが変わる。例えば、ＳＨＡ−１として知られている標準的な暗号ハッシュ関数は、セクタ当たり２０の追加バイトをもたらし、ＳＨＡ−５１２ハッシュ関数は、セクタ当たり６４バイトをもたらす。メタデータは、セクタデータ用に用いられる標準エラー検出およびエラー検出機構によってカバーすべきである。しかしながら、ドライブのアーキテクチャは、セクタデータとメタデータとの間の関連が明白で安全である限り、セクタ用のメタデータをセクタデータと別々に記憶できるように設計することができる。
【００２４】
典型的なＨＤＤ装置が、現在時間を決定する独立した方法を有しないので、それは、現在のＰＯＳＩＸ時間７１をＨＤＤに通信するようにホストに頼らなければならない。安全な鍵６３およびＰＯＨ対ＰＯＳＩＸ時間表７３は、不揮発性メモリに記憶しなければならない。時間表７３には、少なくとも１つの記入がなければならない。ＰＯＨおよびＰＯＳＩＸ記入は、単調に増加している。変換処理の例として、ＴＰＯＨを特定のＰＯＨタイムスタンプとし、ＴＰＯＳＩＸを対応するＰＯＳＩＸ時間とする。最初に、表においてＰＯＨｘを見つけることによってＴＰＯＳＩＸが得られるが、この場合に、ＰＯＨｘは、ＴＰＯＨより小さいかまたは等しい。ＰＯＨｘが最後の表記入でない場合には、ＴＰＯＨは、ＰＯＨｘ＋１より小さい。ＰＯＨｘが最後の表記入である場合には、ＰＯＨｘ＋１は存在しない。次に、ＴＰＯＳＩＸが、次のように見つけられる。
ＴＰＯＳＩＸ＝時間ｘ＋（ＴＰＯＨ−ＰＯＨｘ）／Ｃ
ここで、時間ｘは、ＰＯＨｘに対応する、前に計算されたＰＯＳＩＸ記入であり、Ｃは、特定のドライブ用にファームウェアによって固定された定数であり、かつ他の通常のドライブ機能用に必要とされる。
【００２５】
鍵６３および表７３は、変更から保護されるべきだが、しかし少なくとも耐改竄性でなければならない。鍵６３は、外部では読み出し可能であるべきではない。タイムスタンプは、安全なハッシュコードを生成したＨＤＤ装置によってだけ検証することができる。なぜなら、この装置だけが、検証に必要な安全な鍵を知っているからである。
【００２６】
図４は、暗号化関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。バルク暗号化能力を有するドライブにおいて、ディスクドライブ５１Ｂの代替実施形態は、図４に示すような内蔵の暗号化関数を用いる。この実施形態において、ＨＭＡＣ関数は、暗号化／解読関数によって取って代わられる。媒体に書き込まれるデータセクタは、現在のＰＯＳＩＸタイムスタンプ６９と連結され、この連結されたユニットは、安全な鍵６３を用いて、暗号化関数８１によって処理される。次に、暗号化されたユニットは、暗号化されたセクタデータ５３ｅおよび暗号化されたＰＯＳＩＸタイムスタンプ５５ｅを含み、媒体８２に書き込まれる。
【００２７】
検証プロセスは、アドレス（ＬＢＡ）を指定するホストからコマンドを受信することによって開始され、暗号化されたユニット８５を読み出し、次に、この暗号化されたユニット８５は、安全な鍵６３を用いて解読される。ＰＯＳＩＸタイムスタンプ８８の検証は、エラーのない読み出しを達成することからなる。ＣＲＣなどの標準的なエラーチェック法は、データおよびＰＯＳＩＸタイムスタンプが変更されていないことを確認する。
【００２８】
本発明の代替実施形態は、シングル書き込みを用いることができる。シングル書き込みでは、隣接トラックのバンドが、互いに重なり、特定の順序で書き込まれなければならない。重なっているトラックセットが書き込まれた後で、重なっているトラックを破壊することなく、適所において単一トラックを更新することはできない。したがって、シングル書き込みは、年代順ログまたは一度書き込まれると決して更新されないアーカイブにおいて追加的なセキュリティの利点を提供する。この実施形態は、本発明による信頼できるタイムスタンプを備えた文書の保存場所として、認定公証人には特に有用になり得る。この実施形態において、データ（文書）およびタイムスタンプの両方をシングル書き込みすることができる。
【００２９】
別の代替実施形態において、媒体スペースは、単一のタイムスタンプが、最も最近に変更されたセクタにおける最後の変更時間を反映するように、セクタをまとめることによって節約される。
【００３０】
本発明は、複数のディスクドライブにおけるセクタセット間にデータを分割するＲＡＩＤ記憶システムにおいて実行することができる。信頼できるタイムスタンプをＲＡＩＤ構成において用いる場合に、タイムスタンプは、システムの全てのドライブにおける全てのセクタ用に書き込まれる。しかしながら、タイムスタンプ検証のためには、本発明によるＲＡＩＤコントローラは、どのＨＤＤおよびセクタが「実際の」データ（すなわちパリティビットではない）を含むかを知る必要があり、その実際のデータ用のタイムスタンプの検証だけを要求する。したがって、パリティデータだけを含むセットにおけるセクタは、検証動作から省略することができる。
【００３１】
本発明によるシステムが、タイムスタンプを変更しようとする様々な予測し得る攻撃者にどのように耐えるかを考えることは有益である。例えば、ディスクが、一時的に取り出されて、安全でない装置に置き替えられた場合であっても、タイムスタンプは、もちろん破壊または破損される可能性があるが、安全な鍵についての知識なしでは、有効なタイムスタンプを生成することは不可能であろう。変更されたタイムスタンプは、ディスクが元の装置に戻された場合に、容易に検出されよう。
【００３２】
別のタイプの攻撃は、例えば、不正な（前の）ＰＯＳＩＸ時間をＨＤＤに通信することによって、ＨＤＤをだまし、誤った現在時間を使用させることを伴う可能性がある。この可能性に対して防御するには、ドライブがタイムクロックの設定に制限を加えることを必要とする。先行技術のＨＤＤにおけるＰＯＳＩＸ時間は、最新期間の終了前に設定することができない。なぜなら、パワーオン時間（通電時間、ＰＯＨ）対ＰＯＳＩＸ時間表は、重なり合う期間を可能にしないからである。その結果、追加的なセキュリティ手段なしであっても、セクタタイムスタンプを任意の前の時間に設定することは、ＨＤＤが電源を切られ、設定された人工的な時間の前に決して再び電源を入れられることがないので、実行するのが通常は困難である。
【００３３】
別の形態の攻撃は、過去に全く用いられていない新しい対象ＨＤＤに、内容（内容全体または少なくとも重要な部分）をコピーすることであり得る。対象ＨＤＤにおけるＰＯＳＩＸ時間は、各セクタ用に所望のＰＯＨ対ＰＯＳＩＸ時間表および所望の不正タイムスタンプを生成するように戦略的に設定することが可能である。この攻撃に対する保護は、ＨＤＤの製造時間を記録するＰＯＨ対ＰＯＳＩＸ時間表における原始記入の設定である。そうなら、ＨＤＤは、この製造時間より早いホストからのどんなＰＯＳＩＸ時間も拒絶し、したがって、これは、そのＨＤＤに設定できる最も早い不正時間に対するバリアを提供する。
【００３４】
安全な鍵を発見できなくすることは、本発明の実行において重要である。したがって、好ましくは、鍵は、同様にはるかに大きな機能を扱うＡＳＩＣ上に統合される。すなわち、鍵は、複雑な集積回路内に埋め込まれる。これは、差動電力解析または物理的分解を介して安全な鍵を発見する試みを妨げる。パッケージングが破壊されるか、さもなければ明らかに不正に手を加えられた場合には、ドライブは、タイムスタンプを検証できないか、または不正に手を加えられたゆえに信頼できないと判定することができる。非破壊分析は、全てのプロセスが含まれるので、非常に困難であろう。
【００３５】
特定の実施形態に関連して本発明を説明したが、しかし本発明による技術に対する変更、他の使用法または用途が、当業者には明らかであろう。
【符号の説明】
【００３６】
２０  ホストコンピュータ
３１  通信インタフェース
３３  マイクロプロセッサ
３５  不揮発性メモリ
３７  揮発性メモリ
３９  コントローラ
４１  アームエレクトロニクス
４３  ボイスコイルモータ
４５  ディスク
４６  ヘッド
４７  スピンドルモータ
５０  ディスクドライブ
５０Ａ  ディスクドライブ
５１  ディスクドライブ
５３  データセクタ
５３ｅ  セクタデータ
５５  ＰＯＳＩＸタイムスタンプ
５５ｅ  ＰＯＳＩＸタイムスタンプ
５７  ハッシュコード
６１  ＨＭＡＣ関数
６３  安全な鍵
６５  書き込みコマンド
６９  現在のＰＯＳＩＸ時間
７３  ＰＯＨ対ＰＯＳＩＸ表
７７  ＨＭＡＣ関数
８２  媒体
８５  暗号化されたユニット
８８  ＰＯＳＩＸタイムスタンプ
９９  暗号化関数
１０１  ハッシュ発生器
１０２  記録データ
【図１】
2012099100.tif 000003
【図２】
2012099100.tif 000004
【図３】
2012099100.tif 000005
【図４】
2012099100.tif 000006