(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-01-18
(54)【発明の名称】記憶状態の高速で、確実で、完全な証明のための方法およびシステム
(51)【国際特許分類】
G06F 21/60 20130101AFI20230111BHJP
G06F 3/06 20060101ALI20230111BHJP
【FI】
G06F21/60
G06F3/06 301S
G06F3/06 304K
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022528200
(86)(22)【出願日】2020-10-29
(85)【翻訳文提出日】2022-06-08
(86)【国際出願番号】 US2020057910
(87)【国際公開番号】W WO2021096691
(87)【国際公開日】2021-05-20
(32)【優先日】2019-11-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520440124
【氏名又は名称】サイジェント テクノロジー インコーポレイテッド
【氏名又は名称原語表記】CIGENT TECHNOLOGY, INC.
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100224683
【氏名又は名称】齋藤 詩織
(72)【発明者】
【氏名】トニー エドワード フェッセル
(57)【要約】
データ記憶装置からのデータの消去を検証する方法であって、本方法は、複数のデータブロック内に含まれる第1のデータブロックに関連付けられた第1のメタデータ部を検索することと、検索された第1のメタデータ部に基づいて、第1のデータブロックに関連付けられた現在の内容分類と、第1のデータブロックに関連付けられた現在の消去状態とを判定することと、第1のデータブロックに関連付けられた現在の内容分類と、第1のデータブロックに関連付けられた現在の消去状態とに基づいて、第1のデータブロックに関連付けられた消去状態を判定することと、を含む。
【特許請求の範囲】
【請求項1】
データ記憶装置からのデータの消去を検証するための方法であって、前記データ記憶装置内に格納された前記データは、複数のデータブロックを含み、前記データ記憶装置内に格納された前記データは、(1)それぞれのデータブロックに関連付けられた現在の内容に基づく内容分類と、(2)前記それぞれのデータブロックに関連付けられた消去状態とを記述するメタデータ部を含み、前記方法は、
コンピューティング装置の検証インタフェースによって、前記複数のデータブロック内に含まれる第1のデータブロックに関連付けられた第1のメタデータ部を検索することと、
前記コンピューティング装置の前記検証インタフェースによって、前記検索された第1のメタデータ部に基づいて、前記第1のデータブロックに関連付けられた現在の内容分類を判定することであって、前記判定された現在の内容分類は、少なくとも、第1の種類の内容分類と第2の種類の内容分類とを含む複数の種類の内容分類のうちの1つである、ことと、
前記コンピューティング装置の前記検証インタフェースによって、前記検索された第1のメタデータ部に基づいて、前記第1のデータブロックに関連付けられた現在の消去状態を判定することであって、前記判定された現在の消去状態は、少なくとも、第1の種類の消去状態と第2の種類の消去状態とを含む複数の種類の消去状態のうちの1つである、ことと、
前記コンピューティング装置の前記検証インタフェースによって、前記第1のデータブロックに関連付けられた前記現在の内容分類と前記第1のデータブロックに関連付けられた前記現在の消去状態とに基づいて、前記第1のデータブロックに関連付けられた消去状態を判定することと、
を含む、方法。
【請求項2】
請求項1に記載の方法において、前記第1のメタデータ部は、前記第1のデータブロック内に含まれるブロック記述子データ構造内に格納される、方法。
【請求項3】
請求項2に記載の方法において、前記ブロック記述子データ構造は、前記第1のデータブロック内の第1のデータバイト内に格納され、前記第1のデータバイトは8データビットを含み、前記第1のデータバイトは、前記検証インタフェースによって検索され、前記第1のデータブロックの他のデータバイトは、前記検証インタフェースによって検索されない、方法。
【請求項4】
請求項3に記載の方法において、前記第1のデータブロックの前記現在の内容分類は、前記第1のデータブロック内の前記データバイト内に含まれる複数の前記データビットを分析することによって判定され、前記分析されたデータビットの各々は、前記複数の種類の内容分類のうちの1つに対応する、方法。
【請求項5】
請求項4に記載の方法において、
高値または低値のうちの一方は、前記分析されたビットのうちの第1のビットに関連付けられ、前記第1のビットは、前記第1のデータブロックに関連付けられた、前記判定された現在の内容分類が、前記分析されたビットのうちの前記第1のビットに関連付けられた前記内容分類の内容分類であることを示し、
前記高値または前記低値のうちの他方は、前記分析されたビットのうちの第2のビットに関連付けられ、前記第2のビットは、前記第1のデータブロックに関連付けられた前記現在の内容分類が、前記分析されたビットのうちの前記第2のビットに関連付けられた前記内容分類と異なることを示す、方法。
【請求項6】
請求項3に記載の方法において、前記第1のデータブロックの前記現在の消去状態は、前記第1のデータブロック内の前記データバイト内に含まれる複数の前記データビットを分析することによって判定され、前記分析されたデータビットの各々は、前記複数の種類の消去状態のうちの1つに対応する、方法。
【請求項7】
請求項6に記載の方法において、
高値または低値のうちの一方は、前記分析されたビットのうちの第1のビットに関連付けられ、前記第1のビットは、前記第1のデータブロックに関連付けられた、前記判定された現在の消去状態が、前記分析されたビットのうちの前記第1のビットに関連付けられた前記消去状態の消去状態であることを示し、
前記高値または前記低値のうちの他方は、前記分析されたビットのうちの第2のビットに関連付けられ、前記第2のビットは、前記第1のデータブロックに関連付けられた前記現在の消去状態が、前記分析されたビットのうちの前記第2のビットに関連付けられた前記消去状態と異なることを示す、方法。
【請求項8】
請求項1に記載の方法において、前記第1の種類の内容分類および前記第2の種類の内容分類は、装置動作のために内部的に使用される非ユーザ生成情報を有するデータブロック、ユーザ生成情報を有するデータブロック、または非アクティブデータブロックのうちの異なる1つにそれぞれ関連付けられる、方法。
【請求項9】
請求項8に記載の方法において、前記第1のデータブロックに関連付けられた、前記判定された消去状態は、
装置動作のために前記記憶装置によって内部的に使用される非ユーザ生成情報を有するデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類に応答して、前記消去状態が、検証されたと判定されることと、
ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第1の種類の消去状態を示す、前記第1のデータブロックに関連付けられた前記消去状態とに応答して、前記消去状態が、検証されたと判定されることと、
ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第2の種類の消去状態を示す、前記第1のデータブロックに関連付けられた前記消去状態とに応答して、前記消去状態が、検証されていないと判定されることと、
に従って判定される、方法。
【請求項10】
請求項1に記載の方法において、前記判定された現在の内容分類は、少なくとも、第1の種類の内容分類と、第2の種類の内容分類と、第3の種類の内容分類とを含む複数の種類の内容分類のうちの1つである、方法。
【請求項11】
請求項10に記載の方法において、
前記第1の種類の内容分類は、装置動作のために内部的に使用される非ユーザ生成情報に関連付けられ、
前記第2の種類の内容分類は、ユーザ生成情報に関連付けられ、
前記第3の種類の内容分類は、非アクティブデータブロックに関連付けられる、方法。
【請求項12】
請求項1に記載の方法において、
前記第1の種類の消去状態は、データを用いてまだプログラムされていないデータブロック、または最後の消去以降にデータを用いてまだプログラムされていないデータブロックに関連付けられ、
前記第2の種類の消去状態は、データを用いてプログラムされたデータブロックに関連付けられる、方法。
【請求項13】
請求項12に記載の方法において、前記第1のデータブロックに関連付けられた前記判定された消去状態は、
データを用いてまだプログラムされていないデータブロック、または最後の消去以降にデータを用いてまだプログラムされていないデータブロックを示す、前記第1のデータブロックに関連付けられた前記消去状態に応答して、前記消去状態が、検証されたと判定されることと、
ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第1の種類の消去状態を示す、前記第1のデータブロックに関連付けられた前記消去状態とに応答して、前記消去状態が、検証されたと判定されることと、
ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第2の種類の消去状態を示す、前記第1のデータブロックに関連付けられた前記消去状態とに応答して、前記消去状態が、検証されていないと判定されることと、
に従って判定される、方法。
【請求項14】
請求項1に記載の方法において、前記検索するステップは、前記複数のデータブロックの各々について実行され、前記判定するステップは、前記複数のデータブロックの各々について実行される、方法。
【請求項15】
データ記憶装置からのデータの消去を検証するためのシステムであって、前記データ記憶装置内に格納された前記データは、複数のデータブロックを含み、前記データ記憶装置内に格納された前記データは、(1)それぞれのデータブロックに関連付けられた現在の内容に基づく内容分類と、(2)前記それぞれのデータブロックに関連付けられた消去状態とを記述するメタデータ部を含み、前記システムは、
コンピューティング装置と、
前記コンピューティング装置の検証インタフェースと、を含み、
前記コンピューティング装置の前記検証インタフェースは、前記複数のデータブロック内に含まれる第1のデータブロックに関連付けられた第1のメタデータ部を検索するように構成され、
前記コンピューティング装置の前記検証インタフェースは、前記第1のデータブロックに関連付けられた現在の内容分類を判定するように構成され、前記判定された現在の内容分類は、少なくとも、第1の種類の内容分類と第2の種類の内容分類とを含む複数の種類の内容分類のうちの1つであり、
前記コンピューティング装置の前記検証インタフェースは、前記第1のデータブロックに関連付けられた現在の消去状態を判定するように構成され、前記判定された現在の消去状態は、少なくとも、第1の種類の消去状態と第2の種類の消去状態とを含む複数の種類の消去状態のうちの1つであり、
前記コンピューティング装置の前記検証インタフェースは、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第1のデータブロックに関連付けられた前記現在の消去状態とに基づいて、前記第1のデータブロックに関連付けられた消去状態を判定するように構成される、システム。
【請求項16】
請求項15に記載のシステムにおいて、前記第1のメタデータ部は、前記第1のデータブロック内に含まれるブロック記述子データ構造内に格納される、システム。
【請求項17】
請求項16に記載のシステムにおいて、前記ブロック記述子データ構造は、前記第1のデータブロック内の第1のデータバイト内に格納され、前記第1のデータバイトは8データビットを含み、前記第1のデータバイトは、前記検証インタフェースによって検索され、前記第1のデータブロックの他のデータバイトは、前記検証インタフェースによって検索されない、システム。
【請求項18】
請求項17に記載のシステムにおいて、前記第1のデータブロックの前記現在の内容分類は、前記第1のデータブロック内の前記データバイト内に含まれる複数の前記データビットを分析することによって判定され、前記分析されたデータビットの各々は、前記複数の種類の内容分類のうちの1つに対応する、システム。
【請求項19】
請求項18に記載のシステムにおいて、
高値または低値のうちの一方は、前記分析されたビットのうちの第1のビットに関連付けられ、前記第1のビットは、前記第1のデータブロックに関連付けられた、前記判定された現在の内容分類が、前記分析されたビットのうちの前記第1のビットに関連付けられた前記内容分類の内容分類であることを示し、
前記高値または前記低値のうちの他方は、前記分析されたビットのうちの第2のビットに関連付けられ、前記第2のビットは、前記第1のデータブロックに関連付けられた前記現在の内容分類が、前記分析されたビットのうちの前記第2のビットに関連付けられた前記内容分類と異なることを示す、システム。
【請求項20】
請求項17に記載のシステムにおいて、前記第1のデータブロックの前記現在の消去状態は、前記第1のデータブロック内の前記データバイト内に含まれる複数の前記データビットを分析することによって判定され、前記分析されたデータビットの各々は、前記複数の種類の消去状態のうちの1つに対応する、システム。
【請求項21】
請求項20に記載のシステムにおいて、
高値または低値のうちの一方は、前記分析されたビットのうちの第1のビットに関連付けられ、前記第1のビットは、前記第1のデータブロックに関連付けられた、前記判定された現在の消去状態が、前記分析されたビットのうちの前記第1のビットに関連付けられた前記消去状態の消去状態であることを示し、
前記高値または前記低値のうちの他方は、前記分析されたビットのうちの第2のビットに関連付けられ、前記第2のビットは、前記第1のデータブロックに関連付けられた前記現在の消去状態が、前記分析されたビットのうちの前記第2のビットに関連付けられた前記消去状態と異なることを示す、システム。
【請求項22】
請求項15に記載のシステムにおいて、前記第1の種類の内容分類および前記第2の種類の内容分類は、装置動作のために内部的に使用される非ユーザ生成情報を有するデータブロック、ユーザ生成情報を有するデータブロック、または非アクティブデータブロックのうちの異なる1つにそれぞれ関連付けられる、システム。
【請求項23】
請求項22に記載のシステムにおいて、前記第1のデータブロックに関連付けられた前記判定された消去状態は、
装置動作のために前記記憶装置によって内部的に使用される非ユーザ生成情報を有するデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類に応答して、前記消去状態が、検証されたと判定されることと、
ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第1の種類の消去状態を示す、前記第1のデータブロックに関連付けられた前記消去状態とに応答して、前記消去状態が、検証されたと判定されることと、
ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第2の種類の消去状態を示す、前記第1のデータブロックに関連付けられた前記消去状態とに応答して、前記消去状態が、検証されていないと判定されることと、
に従って判定される、システム。
【請求項24】
請求項15に記載のシステムにおいて、前記判定された現在の内容分類は、少なくとも、第1の種類の内容分類と、第2の種類の内容分類と、第3の種類の内容分類とを含む複数の種類の内容分類のうちの1つである、システム。
【請求項25】
請求項24に記載のシステムにおいて、
前記第1の種類の内容分類は、装置動作のために内部的に使用される非ユーザ生成情報に関連付けられ、
前記第2の種類の内容分類は、ユーザ生成情報に関連付けられ、
前記第3の種類の内容分類は、非アクティブデータブロックに関連付けられる、システム。
【請求項26】
請求項15に記載のシステムにおいて、
前記第1の種類の消去状態は、データを用いてまだプログラムされていないデータブロック、または最後の消去以降にデータを用いてまだプログラムされていないデータブロックに関連付けられ、
前記第2の種類の消去状態は、データを用いてプログラムされたデータブロックに関連付けられる、システム。
【請求項27】
請求項26に記載のシステムにおいて、前記第1のデータブロックに関連付けられた前記判定された消去状態は、
データを用いてまだプログラムされていないデータブロック、または最後の消去以降にデータを用いてまだプログラムされていないデータブロックを示す、前記第1のデータブロックに関連付けられた前記消去状態に応答して、前記消去状態が、検証されたと判定されることと、
ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第1の種類の消去状態を示す、前記第1のデータブロックに関連付けられた前記消去状態とに応答して、前記消去状態が、検証されたと判定されることと、
ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示す、前記第1のデータブロックに関連付けられた前記現在の内容分類と、前記第2の種類の消去状態を示す、前記第1のデータブロックに関連付けられた前記消去状態とに応答して、前記消去状態が、検証されていないと判定されることと、
に従って判定される、システム。
【請求項28】
請求項15に記載のシステムにおいて、前記検索するステップは、前記複数のデータブロックの各々について実行され、前記判定するステップは、前記複数のデータブロックの各々について実行される、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ記憶装置からのデータの消去を検証することに関する。具体的には、データがデータ記憶装置から適切に除去されたことを確実かつ正確に検証することに関する。
【背景技術】
【0002】
コンピューティング装置内のデータは、非常に重要で機密性が高い場合がある。データを含む記憶装置を確実に消去する能力(または不能)に関する産業上の懸念が広まる。現在、データ消去を検証する業界標準の方法は、ユーザがアクセス可能なインタフェースを介してデータの全部または代表的なサンプルを読み取り、次に、戻された情報を調べて、ユーザが生成したデータを含むかどうかを判定することである。しかしながら、現在の検証パラダイムにはいくつかの欠点がある。
【0003】
現在の検証パラダイムの欠点の1つは、ユーザがアクセス可能なインタフェースを使用して、記憶装置上の情報を検証することに起因する。これらのユーザがアクセス可能なインタフェースは、ユーザが直接相互作用できるデータのみを返すように設計される。例えば、記憶装置の寿命の間、ユーザデータを含むことができるドライブの特定の領域は、ユーザに対してアクセス不能にされる。これは、ウェアレベリング(wear leveling)、失敗したブロックの再マッピング、ディスク上のファームウェア記憶装置、またはユーザアクセスを防止する他の内部装置機能のためのオーバープロビジョニングに関連することができる。したがって、これらの従来の検証パラダイムは、これらの他の種類のデータにアクセスすることができない。
【0004】
現在の検証パラダイムの別の欠点は、速さの欠如である。記憶装置の容量が増加すると、データ記憶装置の消去を検証するために必要なすべてのデータの読み取りにかかる時間も増加する。装置が大きいほど、検証により長い時間がかかる。この問題は、時間を節約するために完全な検証を避けるサンプリング型検証アルゴリズムにつながった。これは、不完全で信頼性の低い検証結果となる。
【0005】
現在の検証パラダイムの別の欠点は、データ安全性の欠如である。現在の技術を使用して、消去を検証することをタスク付けされるエンティティは、記憶装置上に格納されたデータのいずれにもアクセスできることを要求される。この場合、記憶装置上に何らかのデータが残される場合、許可されていないエンティティが、任意の目的のために記憶装置上のデータ(すなわち機密データ)にアクセスできる可能性が存在する。
【0006】
したがって、許可されていないデータアクセスに関する安全上の懸念を最小限に抑えながら、データ記憶装置からのデータ消去の検証を可能にする解決策が必要である。
【発明の概要】
【0007】
本開示は、データがデータ記憶装置から適切に除去されたことを確実かつ正確に検証するためのシステムおよび方法の説明を提供する。本開示は、実装によって、インタフェースを介してデータ(すなわち、機密データ、ユーザデータなど)自体を転送することなく、メタデータの分析を介して、記憶装置上の任意のおよびすべての記憶領域を検証する、高速で、確実で、完全な検証インタフェースを提供することによって、従来技術の欠点に対処する。本開示は、記憶装置内のファームウェアデータブロックおよび未割り当てデータブロックなど、非ユーザデータブロックも検証する方法を提供する。対照的に、ファームウェアデータブロックおよび未割り当てデータブロックは従来のインタフェースを介してアクセス不可能であるため、従来の検証方法では、本開示のこのレベルの検証を提供することができないであろう。
【0008】
データ記憶装置からのデータの消去を検証するための方法であって、データ記憶装置内に格納されたデータは、複数のデータブロックを含み、データ記憶装置内に格納されたデータは、(1)それぞれのデータブロックに関連付けられた現在の内容に基づく内容分類と、(2)それぞれのデータブロックに関連付けられた消去状態とを記述するメタデータ部を含み、本方法は、コンピューティング装置の検証インタフェースによって、複数のデータブロック内に含まれる第1のデータブロックに関連付けられた第1のメタデータ部を検索することと、コンピューティング装置の検証インタフェースによって、検索された第1のメタデータ部に基づいて、第1のデータブロックに関連付けられた現在の内容分類を判定することであって、判定された現在の内容分類は、少なくとも、第1の種類の内容分類と第2の種類の内容分類とを含む複数の種類の内容分類のうちの1つである、ことと、コンピューティング装置の検証インタフェースによって、検索された第1のメタデータ部に基づいて、第1のデータブロックに関連付けられた現在の消去状態を判定することであって、判定された現在の消去状態は、少なくとも、第1の種類の消去状態と第2の種類の消去状態とを含む複数の種類の消去状態のうちの1つである、ことと、コンピューティング装置の検証インタフェースによって、第1のデータブロックに関連付けられた現在の内容分類と第1のデータブロックに関連付けられた現在の消去状態とに基づいて、第1のデータブロックに関連付けられた消去状態を判定することと、を含む、方法。
【0009】
データ記憶装置からのデータの消去を検証するためのシステムであって、データ記憶装置内に格納されたデータは、複数のデータブロックを含み、データ記憶装置内に格納されたデータは、(1)それぞれのデータブロックに関連付けられた現在の内容に基づく内容分類と、(2)それぞれのデータブロックに関連付けられた消去状態とを記述するメタデータ部を含み、本システムは、コンピューティング装置と、コンピューティング装置の検証インタフェースと、を含み、コンピューティング装置の検証インタフェースは、複数のデータブロック内に含まれる第1のデータブロックに関連付けられた第1のメタデータ部を検索するように構成され、コンピューティング装置の検証インタフェースは、第1のデータブロックに関連付けられた現在の内容分類を判定するように構成され、判定された現在の内容分類は、少なくとも、第1の種類の内容分類と第2の種類の内容分類とを含む複数の種類の内容分類のうちの1つであり、コンピューティング装置の検証インタフェースは、第1のデータブロックに関連付けられた現在の消去状態を判定するように構成され、判定された現在の消去状態は、少なくとも、第1の種類の消去状態と第2の種類の消去状態とを含む複数の種類の消去状態のうちの1つであり、コンピューティング装置の検証インタフェースは、第1のデータブロックに関連付けられた現在の内容分類と、第1のデータブロックに関連付けられた現在の消去状態とに基づいて、第1のデータブロックに関連付けられた消去状態を判定するように構成される、システム。
【0010】
本開示の範囲は、以下の例示的な実施形態の詳細な説明を、添付の図面と併せて読むと最もよく理解される。図面には、以下の図が含まれる。
【図面の簡単な説明】
【0011】
【
図1】例示的な実施形態による、データ記憶装置からのデータの消去を検証するように構成されたコンピューティング装置の高レベルアーキテクチャを示すブロック図である。
【
図2】例示的な実施形態による、データ記憶装置を有するコンピューティング装置の高レベルアーキテクチャを示すブロック図である。
【
図3】例示的な実施形態による、例示的なブロック記述子データ構造を示す。
【
図4】例示的な実施形態による、例示的な判定ブロック分析チャートを示す。
【
図5】例示的な実施形態による、データ記憶装置からのデータの消去を検証するための例示的な処理を示すフロー図である。
【
図6】例示的な実施形態による、データ記憶装置からのデータの消去を検証するための例示的な処理を示すフロー図である。
【
図7】例示的な実施形態による、コンピュータシステムアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0012】
本開示のさらなる適用範囲は、以下に提供される詳細な説明から明らかになる。例示的な実施形態の詳細な説明は、例示の目的のみを意図されるものであり、したがって、本開示の範囲を必ずしも限定することを意図されるものではないことを理解されたい。
【0013】
図1は、コンピューティング装置100の一実施形態を示す。
図1に示されるコンピューティング装置100の実施形態は、例示としてのみ提供され、本明細書で論じられるような機能を実行するのに適したコンピューティング装置100のすべての可能な構成を網羅し得るものではないことが、当業者には明らかであろう。例えば、
図7に示され、以下でより詳細に論じられるコンピュータシステム700は、コンピューティング装置100の適切な構成とすることができる。コンピューティング装置100は、複数のモジュール、エンジン、装置、記憶部、および本明細書で論じられるような機能を実行するように特別に構成される他の構成要素から構成されることができる。これは、第2のコンピューティング装置200内に含まれることができる、またはスタンドアロン装置210とすることができるデータ記憶装置210からのデータの消去の検証を含む。
【0014】
コンピューティング装置100は、受信装置106を含むことができる。受信装置106は、1つ以上のネットワークプロトコルを介して、1つ以上のネットワーク上でデータを受信するように構成されることができる。ある場合では、受信装置106は、他のコンピューティングシステムからデータを受信するように構成されることができる。この他のコンピューティングシステムは、例えば、無線周波数、構内通信網、無線エリアネットワーク、移動体通信網、Bluetooth、インターネットなどの1つ以上の通信方法を介して、コンピューティング装置100のローカルネットワーク上、またはコンピューティングシステムの外部に配置されることができる。ある実施形態では、受信装置106は、複数の装置から構成されることができる。複数の装置は、例えば、異なるネットワークを介してデータを受信するための異なる受信装置であり、構内通信網上でデータを受信するための第1の受信装置、およびインターネットを介してデータを受信するための第2の受信装置などである。受信装置106は、電子的に送信されたデータ信号を受信することができる。ここで、データは、データ信号に重ねられる、または符号化されることができ、受信装置106によるデータ信号の受信を介して、復号され、構文解析され、読み取られ、または取得されることができる。ある例では、受信装置106は、受信されたデータ信号を構文解析して、その上に重ねられたデータを取得するための構文解析モジュールを含むことができる。例えば、受信装置106は、構文解析プログラムを含むことができる。構文解析プログラムは、受信して、受信されたデータ信号を、処理装置によって実行される機能のために使用可能な入力に変換して、本明細書で説明される方法およびシステムを実行するように構成される。
【0015】
また、コンピューティング装置100は、送信装置112を含むことができる。送信装置112は、1つ以上のネットワークプロトコルを介して、1つ以上のネットワーク上でデータを送信するように構成されることができる。ある場合では、送信装置112は、コンピューティングシステムにデータを送信するように構成されることができる。このコンピューティングシステムは、構内通信網、無線エリアネットワーク、セルラ通信、Bluetooth、無線周波数、インターネットなどの1つ以上の通信方法を介して、コンピューティング装置100のローカルネットワーク上、またはコンピューティングシステムの外部に配置されることができる。ある実施形態では、送信装置112は、複数の装置から構成されることができる。複数の装置は、例えば、異なるネットワーク上でデータを送信するための異なる送信装置であり、構内通信網を介してデータを送信するための第1の送信装置、およびインターネットを介してデータを送信するための第2の送信装置などである。送信装置112は、データ信号を電子的に送信することができる。このデータ信号は、データを重ねられ、データ受信側コンピューティング装置によって構文解析されることができる。ある例では、送信装置112は、1つ以上のモジュールを含むことができる。このモジュールは、データを、送信に適したデータ信号に重ねる、符号化する、またはフォーマットする。
【0016】
また、コンピューティング装置100は、通信モジュール104を含むことができる。通信モジュール104は、本明細書で論じられる機能を実行する際に使用するために、モジュール、エンジン、データベース、記憶部およびコンピューティング装置100の他の構成要素(例えば、コンピューティング装置100の「装置」または「ホスト装置」とも呼ばれることができる)の間でデータを送信するように構成されることができる。通信モジュール104は、1つ以上の通信種別から成り、コンピューティング装置内の通信について様々な通信方法を利用することができる。例えば、通信モジュール104は、バス、接触ピンコネクタ、電線などから構成されることができる。また、ある実施形態では、通信モジュール104は、コンピューティング装置100の内部構成要素と、例えば、外部接続データベース、表示装置、入力装置などのコンピューティング装置100の外部構成要素との間で通信するように構成されることができる。また、コンピューティング装置100は、処理装置を含むことができる。処理装置は、当業者には明らかであるように、本明細書で論じられるコンピューティング装置100の機能を実行するように構成されることができる。ある実施形態では、処理装置は、処理装置の1つ以上の機能を実行するように特別に構成された複数のエンジンおよび/またはモジュールを含むことができ、および/またはそれらから構成されることができる。本明細書で使用されるように、用語「モジュール」は、入力を受信し、入力を使用して1つ以上の処理を実行し、出力を提供するように特別にプログラムされたソフトウェアまたはハードウェアとすることができる。様々なモジュールによって実行される入力、出力および処理は、本開示に基づいて、当業者には明らかであろう。
【0017】
例えば、コンピューティング装置100は、クエリモジュール108を含むことができる。クエリモジュール108は、データ記憶装置106、または他の記憶部、または、例えばデータ記憶装置へのアクセスに関連した、コンピューティング装置100内若しくはコンピューティング装置100によってアクセス可能なデータ記憶装置上でクエリを実行するように構成されることができる。例えば、クエリモジュール108は、データ記憶装置106およびコンピューティング装置100の他の記憶部内の記憶装置の名前空間に関連したデータコマンドの実行のためにホスト制御部によって利用されるモジュールとすることができる。別の例では、クエリモジュール108は、(後述の)検証モジュール110に対するクエリを実行して、データ記憶装置のデータ消去の検証を開始するように構成されることができる。例えば、ユーザが、データ記憶装置のデータ消去の検証を開始するコマンドを入力すると、クエリモジュール108は、実行された要求されたコマンド(例えば、ユーザから受信されたコマンドなど)に応答して検証モジュール110と通信することができる。
【0018】
コンピューティング装置100は、検証モジュール110を含むことができる。検証モジュール110は、例えば(後述の)コンピューティング装置200のデータ記憶装置210のようなデータ記憶装置の消去検証を実行するように構成されることができる。例えば、クエリモジュール108が検証モジュール110と通信して検証処理を開始すると、検証モジュール110は、データ記憶装置210上に格納されたメタデータから検索された情報に基づいて、データ記憶装置210上に含まれるデータの消去状態を(例えば、送信装置112および/または受信装置106を介して)判定することができる。
【0019】
コンピューティング装置100は、記憶部114を含むことができる。記憶部114は、読み出し専用メモリ、ランダムアクセスメモリ、またはOSアプリケーションの実行および使用の際にコンピューティング装置100によって使用されることができる他の種類のメモリとし得るデータ記憶装置とすることができる。ある場合では、ホスト制御部は、記憶部114のホスト制御部としても動作するように構成されることができ、または記憶部114内に格納されたデータへのアクセスおよびその使用を監視するように構成されることができる。記憶部114は、本明細書で論じられる機能を実行する際に、コンピューティング装置100によって使用されるデータを格納するように構成されることができる。記憶部114は、データ記憶装置と同様に、適切なデータフォーマット方法およびスキーマを使用してデータを格納するように構成されることができ、任意の適切な種類の記憶部とすることができる。記憶部114は、例えば、暗号化キーおよびアルゴリズム、通信プロトコルおよび規格、データフォーマット規格およびプロトコル、処理装置のモジュールおよびアプリケーションプログラムのためのプログラムコード、および当業者には明らかであるように、本明細書で開示される機能の実行の際にコンピューティング装置100による使用に適し得る他のデータを含むことができる。ある実施形態では、記憶部114は、関係データベースから構成されることができる、またはそれを含むことができる。関係データベースは、そこに格納された構造化データ集合の記憶、識別、修正、更新、アクセスなどのために構造化クエリ言語を利用する。ある場合では、記憶部114は、コンピューティング装置100の外部にあることができ、例えば、コンピューティング装置100の外部にあるがコンピューティング装置100と通信するリモートコンピューティングシステムの一部である。
【0020】
図2は、コンピューティング装置200の一実施形態を示す。
図2に示されるコンピューティング装置200の実施形態は、例示としてのみ提供され、本明細書で論じられる機能を実行するのに適したコンピューティング装置200のすべての可能な構成を網羅するものではないことが、当業者には明らかであろう。例えば、
図7に示され、以下でより詳細に論じられるコンピュータシステム700は、コンピューティング装置200の適切な構成とすることができる。
【0021】
コンピューティング装置200は、受信装置206を含むことができる。受信装置106は、1つ以上のネットワークプロトコルを介して、1つ以上のネットワーク上でデータを受信するように構成されることができる。ある場合では、受信装置206は、他のコンピューティングシステムからデータを受信するように構成されることができる。この他のコンピューティングシステムは、例えば、無線周波数、構内通信網、無線エリアネットワーク、移動体通信網、Bluetooth、インターネットなどの1つ以上の通信方法を介して、コンピューティング装置200のローカルネットワーク上、またはコンピューティングシステムの外部に配置されることができる。ある実施形態では、受信装置206は、複数の装置から構成されることができる。この複数の装置は、例えば、異なるネットワーク上でデータを受信するための異なる受信装置であり、構内通信網上でデータを受信するための第1の受信装置、およびインターネットを介してデータを受信するための第2の受信装置などである。受信装置206は、電子的に送信されたデータ信号を受信することができる。ここで、データは、データ信号に重ねられる、または符号化されることができ、受信装置206によるデータ信号の受信を介して、復号され、構文解析され、読み取られ、または取得されることができる。ある場合では、受信装置206は、受信されたデータ信号を構文解析して、その上に重ねられたデータを取得するための構文解析モジュールを含むことができる。例えば、受信装置206は、構文解析プログラムを含むことができ、構文解析プログラムは、受信して、受信されたデータ信号を、処理装置によって実行される機能のための使用可能な入力に変換して、本明細書で説明される方法およびシステムを実行するように構成される。
【0022】
また、コンピューティング装置200は、送信装置208を含むことができる。送信装置208は、1つ以上のネットワークプロトコルを介して、1つ以上のネットワーク上でデータを送信するように構成されることができる。ある場合では、送信装置208は、コンピューティングシステムにデータを送信するように構成されることができる。このコンピューティングシステムは、構内通信網、無線エリアネットワーク、移動体通信、Bluetooth、無線周波数、インターネットなどの1つ以上の通信方法を介して、コンピューティング装置200のローカルネットワーク上に配置される、またはコンピューティングシステムの外部に配置されることができる。ある実施形態では、送信装置208は、複数の装置から構成されることができる。この複数の装置は、例えば、異なるネットワーク上でデータを送信するための異なる送信装置であり、構内通信網上でデータを送信するための第1の送信装置、およびインターネットを介してデータを送信するための第2の送信装置などである。送信装置208は、データ信号を電子的に送信することができ、データ信号は、データを重ねられ、受信側コンピューティング装置によって構文解析されることができる。ある場合では、送信装置208は、データを送信に適したデータ信号に重ねる、符号化する、またはフォーマットするための1つ以上のモジュールを含むことができる。
【0023】
また、コンピューティング装置200は、通信モジュール204を含むことができる。通信モジュール204は、モジュール、エンジン、データベース、記憶部、および本明細書で論じられる機能を実行する際に使用するためのコンピューティング装置200の他の構成要素(例えば、コンピューティング装置200の「装置」または「ホスト装置」とも呼ばれることができる)の間でデータを送信するように構成されることができる。通信モジュール204は、1つ以上の通信種別から構成されることができ、コンピューティング装置内の通信について様々な通信方法を利用することができる。例えば、通信モジュール204は、バス、接触ピンコネクタ、電線などから構成されることができる。また、ある実施形態では、通信モジュール204は、コンピューティング装置200の内部構成要素と、例えば、外部接続データベース、表示装置、入力装置などのコンピューティング装置200の外部構成要素との間で通信するように構成されることができる。また、コンピューティング装置200は、処理装置を含むことができる。処理装置は、当業者には明らかであるように、本明細書で論じられるコンピューティング装置200の機能を実行するように構成されることができる。ある実施形態では、処理装置は、処理装置の1つ以上の機能を実行するように特別に構成された複数のエンジンおよび/またはモジュールを含むことができる、および/またはそれらから構成されることができる。本明細書で使用されるように、用語「モジュール」は、入力を受信し、入力を使用して1つ以上の処理を実行し、出力を提供するように特別にプログラムされたソフトウェアまたはハードウェアとすることができる。様々なモジュールによって実行される入力、出力、および処理は、本開示に基づいて、当業者には明らかであろう。
【0024】
コンピューティング装置200は、データ記憶装置210を含むことができる。データ記憶装置210は、データの記憶に適した任意の種類の装置とすることができる。これは、ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク、デジタルビデオディスク、磁気テープなどを含む。データ記憶装置210は、ホスト制御部、またはデータ記憶装置210内のデータを読み書きするように構成されるデータ記憶装置210内に、ハードウェア、ソフトウェア、若しくはそれらの組み合わせで実装されることができる他のアプリケーションプログラムを含むことができる。ホスト制御部は、データ記憶装置210内に格納されたデータのアクセスおよび修正に関連した任意の機能を実行するように構成されることができる。これは、データ記憶装置210内の1つ以上のデータファイル、セクタ、またはブロックへのアクセスの防止、セクタまたはブロックの修正からのロック、生データまたは処理されたデータの読み取りまたは書き込みなどを含む。本明細書で論じられるように、データ記憶装置210内に格納されたデータに関して、コンピューティング装置200において実行される動作は、ホスト制御部によって、またはホスト制御部と共に実行されることができる。開示された態様によれば、データ記憶装置210は、装置100と相互作用することができるスタンドアロンまたは別個の装置とすることができる。
【0025】
ある態様によれば、データ記憶装置210は、アドレス指定可能なデータの集合内に編成されることができる。ある実施形態では、データの集合は、物理的に配置されることができ、論理的に課されることができ、および/またはそれらの何らかの組み合わせとすることができる。データの集合は、データブロックの形成とすることができ、またはデータブロックとして説明されることができる。ここで、各データブロックは、異なる種類のデータのうちの1つを含むことができる。例えば、データブロックは、それぞれのブロックの現在の内容に基づいて、1つ以上の可能な分類型に分類されることができる。メタデータ部218は、分類型を示すことができる。
【0026】
例えば、データブロックは、ファームウェアデータブロック212として分類されることができ、現在、装置動作のために、記憶装置210によってまたはコンピューティング装置200によって内部的に使用されることができる情報またはデータを含むことができる。ある実施形態では、ファームウェアデータブロック212は、非ユーザ生成情報またはデータを含むことができ、任意のユーザ生成データを含まなくてよい。
【0027】
別の例では、データブロックは、ユーザデータブロック214として分類されることができ、現在、記憶装置210のユーザによって生成されることができた情報を含むことができる。
【0028】
別の例では、データブロックは、未割り当てデータブロック216として分類されることができ、現在、記憶装置210内の非アクティブデータブロックとすることができる。例えば、未割り当てデータブロック216は、アクティブなデータブロックの集合内に現在含まれることができないデータブロックとすることができる。ある実施形態では、未割り当てデータブロック216は、以前にファームウェアデータまたはユーザデータを含んでいたことがあり得る。ある場合では、未割り当てデータブロック216は、これまでデータを割り当てられていない、または含まれていないことがあり得る。
【0029】
ある態様によれば、記憶装置210内のデータブロックは、それぞれのブロック内の内容の存在(またはその欠如)に基づいて、複数の可能な消去状態のうちの1つであることができ、メタデータ部218は消去状態を示すことができる。例えば、ブロックが消去された状態になり得るのは、そのブロックが、データを用いてまだプログラムされていない場合、または最後の消去以降にデータを用いてまだプログラムされていない場合である。別の事例では、ブロックが非消去状態、または消去されていない状態であり得るのは、そのブロックが、現在データを用いてプログラムされた、またはデータを含む場合である。
【0030】
開示される態様によれば、装置100は、データ記憶装置210内に含まれるメタデータ部218を検索し、および/または検査して、記憶装置210からのデータの消去を検証することができる。メタデータ部218は、データ記憶装置210内の各データブロックについて、データ記憶装置210内に含まれるデータブロックのそれぞれに関連付けられた現在の内容に基づいて、内容分類の記述を含むことができる。メタデータ部218は、データ記憶装置210内の各データブロックについて、データ記憶装置210内に含まれるデータブロックのそれぞれに関連付けられた消去状態の記述を含むことができる。装置100は、メタデータ部210にアクセスして、メタデータ情報を迅速に検索し、データ記憶装置210内に含まれる個々の記憶ブロックのうちの1つ以上の消去状態を判定することができる。この記憶ブロックは、ユーザが現在アクセスできないブロック(例えば、ファームウェアブロック212および/または未割り当てブロック216)を含む。メタデータ218はいかなるユーザデータも含まないので、データ記憶装置210のデータの消去を検証するために、許可されていないデータアクセスに関する安全上の懸念は制限される、または懸念はないとすることができる。
【0031】
ある実施形態では、装置100のクエリモジュール108は、入力を受信して、別の装置200のデータ記憶装置210のデータの消去の検証を開始することができる。クエリモジュール108は、検証モジュール110と通信して、検証処理を開始することができる。ある場合では、検証モジュール110は、送信装置112と通信して、例えば、物理的接触または無線通信を介して、例えば、装置200の受信装置206を介して、装置200と通信を開始することができる。ある場合では、検証モジュール110は、装置200またはデータ記憶装置210と直接通信を開始して、データ記憶装置210のデータの消去を検証することができる。
【0032】
検証モジュール110は、データ記憶装置210内に含まれる1つ以上のデータブロックのメタデータ部218から情報を検索することができる。ある場合では、検証モジュール110は、受信装置106と通信して、例えば、装置200の送信装置208を介して、例えば、物理的接触または無線通信を介して、メタデータ部218から情報を検索および/または受信することができる。他の場合では、検証モジュール110は、装置200またはデータ記憶装置210と直接通信を開始して、データ記憶装置210のデータの消去を検証することができる。
【0033】
検証モジュール110は、検索されたメタデータ部218からの情報に基づいて、データ記憶装置210内に含まれる1つ以上のデータブロックと関連付けられた現在の内容分類を判定することができる。判定された現在の内容分類は、少なくとも、第1の種類の内容分類および第2の種類の内容分類を含む、複数の種類の内容分類のうちの1つとすることができる。ある場合では、内容分類は、2つより多い種類の内容分類を含むことができる。例えば、ブロックの内容分類の種類は、ファームウェアブロック212(例えば、装置動作のために記憶装置210または装置200によって内部的に使用されることができる非ユーザ生成情報を有するデータブロック)、ユーザブロック214(例えば、ユーザ生成情報を有するデータブロック)、または未割り当てブロック216(例えば、非アクティブデータブロック)のうちのいずれかを含むことができる。
【0034】
検証モジュール110は、検索されたメタデータ部218からの情報に基づいて、1つ以上のデータブロックに関連付けられた現在の消去状態を判定することができる。判定された現在の消去状態は、少なくとも、第1の種類の消去状態および第2の種類の消去状態を含む、複数の種類の消去状態のうちの1つとすることができる。例えば、消去状態は、消去された状態(例えば、データを用いてまだプログラムされていないデータブロック、または最後の消去以降にデータを用いてまだプログラムされていないデータブロック)、または消去されていない状態(例えば、データを用いてプログラムされたデータブロック)のうちの1つとすることができる。
【0035】
ある実施形態では、メタデータ部210は、例えば、ブロック212、214、216の各々のようなそれぞれのブロック内に含まれることができ、それぞれのブロック212、214、216の内容分類および/または状態を記述することができる。例えば、メタデータ部201は、8データビットを含むことができるデータバイトとしてフォーマットされることができ、検証モジュール110は、データバイトに含まれるデータビットを分析して、対応するブロックの内容分類および/または状態を判定することができる。
【0036】
図3は、ブロック記述子300の例示的な構成を示すブロック図を示す。
図3に示されるように、ブロック記述子300の1つ以上のビットは、複数の種類の内容分類のうちの1つに対応することができる。例えば、ビット6は、対応するブロックが未割り当てブロック216であるかどうかを識別することができ、ビット5は、対応するブロックがファームウェアブロック212であるかどうかを識別することができ、ビット4は、対応するブロックがユーザブロック214であるかどうかを識別することができる。
【0037】
ある態様によれば、ビットに関連付けられた高値は、対応するデータブロックに関連付けられて判定された現在の内容分類が、そのビットに関連付けられた内容分類の内容分類であることを示すことができる。例えば、ビット6の高値は、ブロックが未割当てブロック216であることを示すことができる。ある態様によれば、ビットに関連付けられた低値は、対応するデータブロックに関連付けられて判定された現在の内容分類が、そのビットに関連付けられた内容分類と異なる(または同じでない)ことを示すことができる。例えば、ビット5の低値は、ブロックがファームウェアブロック212と異なる(またはファームウェアブロック212でない)ことを示すことができる。
【0038】
ある場合では、符号の規則または値の標示は逆にされることができ、ビット6の低値は、ブロックが未割り当てブロックであることを示すことができ、ビット5の高値は、ブロックがファームウェアブロック212と異なる(またはファームウェアブロック212ではない)ことを示すことができる。ある実施形態によれば、ブロックは、内容分類の種類のうちの1つのみとして分類されるべきであり、2つ以上の種類として分類されることはできない。
【0039】
図3に示されるように、ブロック記述子300の1つ以上のビットは、複数の種類の消去状態のうちの1つに対応することができる。例えば、ビット1は、対応するブロックが非消去または消去されていないかどうかを識別することができ、ビット0は、対応するブロックが消去されたかどうかを識別することができる。
【0040】
ある態様によれば、ビットに関連付けられた高値は、対応するデータブロックに関連付けられて判定された現在の消去状態が、そのビットに関連付けられた消去状態であることを示すことができる。例えば、ビット1の高値は、ブロックが消去されていないことを示すことができ、一方で、ビット0の高値は、ブロックが消去されたことを示すことができる。ある態様によれば、ビットに関連付けられた低値は、対応するデータブロックに関連付けられて判定された現在の消去状態が、そのビットに関連付けられた消去状態と異なる(または同じでない)ことを示すことができる。例えば、ビット0の低値は、ブロックが消去されたとは異なる(または消去されていない)ことを示すことができる。ある実施形態によれば、ブロックは、消去状態の種類のうちの1つのみとして分類されるべきであり、2つ以上の種類の消去状態として分類されることはできない。ある場合では、符号の規則または値の標示は逆にされることができ、ビット0の低値は、ブロックが消去されたことを示すことができ、ビット1の高値は、ブロックが消去されていないとは異なる(すなわち、ブロックが消去された)ことを示すことができる。
【0041】
ある態様によれば、
図3に示されるように、ブロック記述子300内に含まれる1つ以上のビットは、ブロックの内容分類または状態に、使用されることはできない、または関連付けられることはできない。これらの未使用ビットは、別の目的に使用されることができる。ある実施形態では、
図3に示されるブロック記述子300内に含まれる1つ以上の他の未使用ビットは、他のおよび/または追加の内容分類または消去状態を記述することができる。ある実施形態では、3つより多い若しくは少ない、ビットに関連付けられた内容分類、または2つより多い若しくは少ない、ビットに関連付けられた消去状態とすることができる。ある実施形態では、ブロック記述子300の他の種類または形式は、例えば、2バイト以上であること、またはいくつかの他のフォーマット若しくはテーブル構造であることなどの開示される態様に従って、使用されることができる。
【0042】
ある態様によれば、検証モジュール110は、ブロック記述子データ構造300(すなわち、メタデータ218のデータバイト)を、装置記憶装置から、またはデータブロックから検索またはアクセスすることができ、他のデータまたはデータバイトを、装置記憶装置から、またはそのデータブロックから、検索しないことができる。上述したように、これは、データ記憶装置210内に格納されたデータの許可されないデータアクセスに関する任意の安全上の懸念を防ぐことができる。加えて、検証モジュール110は、データブロック212、214、216からの追加データの読み取りおよびアクセスを回避することができるので、検証モジュール110は、検証モジュール110が、各データブロックの残りのデータを読み取る場合よりもはるかに速く、ブロック212、214、216の消去状態を検証することができる。
【0043】
例えば、データブロックは、磁気媒体について、512から4096バイトのサイズのデータブロックとすることができる(ソリッドステート記憶装置はこれよりも大きいことがある)。したがって、検証モジュール110は、データ量の1/512番目(すなわち、1バイトのブロック記述子データ構造300)を読み出して、消去状態を検証することができ、これは検証処理を大幅に短縮する。加えて、従来の検証方法は、データ記憶装置210上に格納されたデータブロックの他の部分からデータを読み取るので、これらの従来の検証方法は、ファームウェアおよび/または未割り当てデータブロックの消去の検証を提供することを妨げられることになる。
【0044】
検証モジュール110は、メタデータ部218から検索された情報に基づいて、データ記憶装置210内に含まれる1つ以上のデータブロックに関連付けられた消去状態を判定することができる。
図4は、例示的な判定ブロック分析チャート400を示す。これは、内容分類および消去状態に関連付けられた例示的な消去状態を示す。
【0045】
開示される態様によれば、検証モジュール110は、ブロックの検証された消去状態を判定することができる。これは、対応するデータブロックの消去がデータ安全性の観点から認容できることを意味することができる。例えば、
図4に示されるように、ファームウェアブロック212が消去された状態であると判定されなくても、ファームウェアブロック212の消去状態は、検証されたとすることができる。これは、データ記憶装置210(または装置200)が依然として、装置動作のためにファームウェアブロック212内に含まれるデータおよび情報を必要とする可能性があるためである。別の場合では、
図4に示されるように、ユーザブロック212または未割り当てブロック216の消去状態は、検証モジュール110が、対応するブロックの消去状態が消去されたと判定した後に検証されたとすることができ、一方で、消去状態は、検証モジュール110が、ユーザブロック212または未割り当てブロック216の消去状態が消去されていないと判定した後に検証されていない、または認容できないとすることができる。
【0046】
ある態様によれば、ブロック記述子300および/または判定ブロック分析チャート400からの情報は、装置100から、または装置200から(例えば、装置100がこの情報を装置200に返信した後などに)提示または出力されることができる。例えば、この情報は、装置100若しくは装置200に関連付けられた表示装置上に表示されることができ、または何らかの他の方法で提供されることができる。ある他の場合では、装置100または装置200は、消去状態に基づいて、例えば、認容されない消去状態を有する1つ以上のデータブロックを保護するまたは消去を開始するなどの動作を実行することができる。
【0047】
ある実施形態では、装置100は、装置200とは別個の装置とすることができる。ある他の実施形態では、装置100の構成要素(ソフトウェアおよび/またはハードウェア)および機能は、
図2に示されるように、装置200内に含まれる検証アプリケーションモジュール220において具現化されることができる。例えば、検証アプリケーションモジュール220は、コンピューティング装置100のソフトウェアおよび/またはハードウェアの実装とすることができる。これらの場合、検証アプリケーションモジュール220は、装置100に関して上記、下記、および本明細書全体で論じられるのと同じまたは同様の方法で、データ記憶装置210からのデータの消去を検証するように動作することができる。
【0048】
図5は、例示的な実施形態による、データ記憶装置210からのデータの消去を検証するための例示的な処理500を示す例示的なフロー図を示し、例えば、検証モジュール110または検証アプリケーションモジュール220によって実行される。
【0049】
処理500は、ステップ502において開始することができる。ステップ502において、装置100は、装置200のデータ記憶装置210との通信を確立することができる。例えば、クエリモジュール108は、命令(例えば、ユーザまたは他の装置からの入力)を受信して、データ記憶装置210のデータの消去を検証することができる。クエリモジュール108は、検証モジュール110と通信することができる。検証モジュール110は、装置200の受信装置206と(例えば、送信装置112を介して)通信して、メタデータ部218から情報を検索することができる。
【0050】
ステップ504において、検証モジュール110は、メタデータ部218から情報を検索することができる。メタデータ部218は、ブロック記述子データ構造300のようなデータ構造またはテーブルとして格納されることができる。メタデータ部218は、データ記憶装置210上に、データ記憶装置210内のデータブロック内に、または別の位置内(例えば、装置200の別の領域内など)に格納されることができる。メタデータ部218は、(1)それぞれのデータブロックに関連付けられた現在の内容に基づく内容分類と、(2)それぞれのデータブロックに関連付けられた消去状態とを記述することができる。ある場合では、メタデータ部218は、データ記憶装置210内に含まれる複数のデータブロック212、214、216の各々内に格納されることができる。例えば、ブロック記述子データ構造300は、第1のブロック内の第1のデータバイト内に格納されることができる。ここで、第1のデータバイトは、8データビットを含むことができる。ある態様によれば、検証モジュール110は、データブロックに関連付けられたメタデータ部218を検索し、アクセスし、または読み取るだけでよい。ある場合では、データ記憶装置210の1つのデータブロックのメタデータ部218は、検証モジュール110によって検索され、および/または分析されることができる。他の場合では、データ記憶装置210の2つ以上のデータブロック(またはすべてのデータブロック)のメタデータ部218は、検証モジュール110によって検索され、および/または分析されることができる。
【0051】
ある態様によれば、検証モジュール110は、メタデータ218に対応するデータバイト内に含まれる1つまたは複数のデータビットを分析することができる。分析されたデータビットのうちの1つ以上は、複数の種類の内容分類(例えば、ファームウェア、ユーザ、または未割り当て)のうちの1つに対応することができる。分析されたデータビットの1つ以上は、現在の消去状態(例えば、消去された状態または非消去状態)に対応することができる。上述したように、特定のビットの高値(または、ある実施形態では低値)は、対応するブロックが、その特定のビットの対応する内容分類または消去状態に関連付けられることを示すことができ、一方、特定のビットの低値(または、ある実施形態では高値)は、対応するブロックが、その特定のビットの対応する内容分類または消去状態とは異なることを示すことができる。
【0052】
ステップ506において、検証モジュール110は、検索されたメタデータ218に基づいて(例えば、ブロック識別子データ構造300に基づいて)、データブロックに関連付けられた内容分類を判定することができる。例えば、判定された現在の内容分類は、複数の種類の内容分類のうちの1つとすることができ、この内容分類は、少なくとも、第1の種類の内容分類と第2の種類の内容分類とを含む。ある場合では、3つの種類など、2つより多い種類の内容分類とすることができる。例えば、上述したように、データ記憶装置210のデータブロックは、ファームウェアブロック212(例えば、装置動作のために、記憶装置210によってまたはコンピューティング装置200によって内部的に使用されることができる非ユーザ生成情報を有する)として、ユーザブロック214(例えば、ユーザ生成情報を有するデータブロック)として、または未割り当てブロック216(例えば、非アクティブデータブロック)として分類されることができる。
【0053】
ステップ508において、検証モジュール110は、検索されたメタデータ218に基づいて(例えば、ブロック識別子データ構造300に基づいて)、データブロックに関連付けられた消去状態を判定することができる。例えば、判定された現在の消去状態は、複数の種類の消去状態のうちの1つとすることができ、この消去状態は、少なくとも、第1の種類の消去状態と第2の種類の消去状態とを含む。例えば、上述したように、データ記憶装置210のデータブロックは、消去された(例えば、ブロックはメタデータ218以外のデータを含まない)、または消去されていない(例えば、ブロックはメタデータ218以外のデータを含む)と判定されることができる。
【0054】
ステップ510において、検証モジュール110は、データブロックに関連付けられた現在の内容分類および/または第1のデータブロックに関連付けられた現在の消去状態に基づいて、データブロックに関連付けられた消去状態を判定することができる。ある態様によれば、消去状態は、検証されたと判定されることができる。これは、対応するデータブロックの消去がデータセキュリティの観点から認容できることを意味することができる。消去状態は、検証されていないと判定されることができる。これは、対応するデータブロックの消去がデータセキュリティの観点から認容できないことを意味することができる。
【0055】
例えば、
図4に関して、検証モジュール110は、装置動作のために、記憶装置210によってまたはコンピューティング装置200によって内部的に使用されることができる非ユーザ生成情報を有するデータブロックを示すデータブロックに関連付けられた現在の内容分類に応答して、消去状態は検証されたと判定することができる。検証モジュール110は、ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示すデータブロックに関連付けられた現在の内容分類と、第1の種類の(例えば、消去された)消去状態を示すデータブロックに関連付けられた消去状態とに応答して、消去状態は検証されたと判定することができる。検証モジュール110は、ユーザ生成情報を有するデータブロックまたは非アクティブデータブロックを示すデータブロックに関連付けられた現在の内容分類と、第2の種類の(例えば、消去されていない)消去状態を示すデータブロックに関連付けられた消去状態とに応答して、消去状態は検証されていないと判定することができる。ある場合では、検証モジュール110は、データを用いてまだプログラムされていないデータブロック、または最後の消去以降にデータを用いてまだプログラムされていないデータブロックを示すデータブロックに関連付けられた消去状態に応答して、消去状態は検証されたと判定することができる。
【0056】
ステップ512において、検証モジュール110は、分析されたデータブロックの消去状態を評価することができる。消去状態が検証された場合(「はい」)、処理500は終了することができる。消去状態が検証されていない場合(「いいえ」)、処理500はステップ514に進むことができる。ステップ514において、装置100または装置200は、動作を実行することができる。例えば、装置100または装置200は、検証されていない消去状態を有するデータブロック(または複数のブロック)を保護することができ、または検証されていない消去状態を有する1つ以上のデータブロックの消去を開始することができる。ある実施形態では、検証モジュール110は、処理500のステップのうちの1つ以上を繰り返して、(例えば、検証されていないデータブロックに関して)データ記憶装置210からのデータの消去をさらに評価および/または検証することができる。例えば、ステップ514からステップ502への矢印により示されるように、処理500(またはその任意の部分)は繰り返されることができる。ある場合では、処理500は、ステップ512においてブロックの検証されていない消去状態を判定した後に終了することができる。ある場合では、処理500は、ステップ514において動作を実行した後に終了することができる。
【0057】
図6は、データ記憶装置210からのデータの消去を検証する例示的な方法を示し、例えば、検証モジュール110によって、または検証アプリケーションモジュール220によって実行される。データ記憶装置210は、複数のデータブロックを含むことができる。ここで、データ記憶装置内に格納されたデータは、メタデータ部(例えば、メタデータ部218)を含み、メタデータ部は、(1)それぞれのデータブロックに関連付けられた現在の内容に基づく内容分類と、(2)それぞれのデータブロックに関連付けられた消去状態とを記述する。ある実施形態では、データ記憶装置210内に含まれる複数のデータブロックの各々は、メタデータ部(例えば、メタデータ部218)を含むことができる。
【0058】
ステップ602において、検証モジュール110は、開示された態様に従って、複数のデータブロック内に含まれる第1のデータブロックに関連付けられた第1のメタデータ部を検索することができる。
【0059】
ステップ604において、検証モジュール110は、検索された第1のメタデータ部に基づいて、第1のデータブロックに関連付けられた現在の内容分類を判定することができる。この判定された現在の内容分類は、複数の種類の内容分類のうちの1つであり、この内容分類は、少なくとも、第1の種類の内容分類と第2の種類の内容分類とを含む。
【0060】
ステップ606において、検証モジュール110は、検索された第1のメタデータ部に基づいて、第1のデータブロックに関連付けられた現在の消去状態を判定することができる。この判定された現在の消去状態は、複数の種類の消去状態のうちの1つであり、複数の種類の消去状態は、少なくとも、第1の種類の消去状態と第2の種類の消去状態とを含む。
【0061】
ステップ608において、検証モジュール110は、第1のデータブロックに関連付けられた現在の内容分類と、第1のデータブロックに関連付けられた現在の消去状態とに基づいて、第1のデータブロックに関連付けられた消去状態を判定することができる。
【0062】
ある実施形態では、
図6に関して、検索するステップは、複数のデータブロックの各々について実行され、判定するステップは、複数のデータブロックの各々について実行される。ある場合では、検証されていないデータブロックの消去のさらなる検証、検証されていないデータブロックのデータの保護、または検証されていないデータブロックのデータの消去など、判定された消去状態に基づいて、動作が実行されることができる。
【0063】
<コンピュータシステムアーキテクチャ>
図7は、本開示の実施形態またはその一部がコンピュータ可読コードとして実装されることができるコンピュータシステム700を示す。例えば、
図1のコンピューティング装置100および/または
図2のコンピューティング装置200は、ハードウェア、ソフトウェア、ファームウェア、命令が格納された非一時的コンピュータ可読媒体、またはそれらの組合せを使用して、コンピュータシステム700内で実装されることができ、1つ以上のコンピュータシステムまたは他の処理システム内で実装されることができる。ハードウェア、ソフトウェア、またはそれらの任意の組み合わせは、
図5および
図6の方法を実施するために使用されるモジュールおよび構成要素を具現化することができる。
【0064】
プログラマブルロジックが使用される場合、そのようなロジックは、実行可能なソフトウェアコードによって構成された市販の処理プラットフォーム上で実行して、特定目的コンピュータまたは特別目的装置(例えば、プログラマブルロジックアレイ、特定用途向け集積回路など)になることができる。開示された主題の実施形態が様々なコンピュータシステム構成を用いて実装されることができ、これは、マルチコアマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、分散機能とリンクされたまたはクラスタ化されたコンピュータ、ならびに実質的に任意の装置に埋め込まれることができるパーベイシブまたはミニチュアコンピュータを含むことを、当業者は理解し得る。例えば、少なくとも1つのプロセッサ装置および記憶部を使用して、上述の実施形態を実装することができる。
【0065】
本明細書で論じられるようなプロセッサユニットまたは装置は、単一のプロセッサ、複数のプロセッサ、またはそれらの組み合わせとすることができる。プロセッサ装置は、1つ以上のプロセッサ「コア」を有することができる。本明細書で論じられるような用語「コンピュータプログラム媒体」、「非一時的コンピュータ可読媒体」および「コンピュータ使用可能媒体」は、一般に、有形媒体を指すために使用され、例えば、これは、取り外し可能記憶ユニット718、取り外し可能記憶ユニット722、およびハードディスクドライブ712内に設置されたハードディスクである。
【0066】
本開示の様々な実施形態は、この例示的なコンピュータシステム700に関して説明される。この説明を読んだ後、他のコンピュータシステムおよび/またはコンピュータアーキテクチャを使用して、本開示をどのように実装するかが、当業者には明らかになるであろう。動作は連続的な処理として説明されることができるが、動作の一部は、実際には並列して同時に、および/または分散環境において、単一またはマルチプロセッサ機械によるアクセスのためにローカルまたはリモートに格納されたプログラムコードを用いて実行されることができる。さらに、ある実施形態では、動作の順序は、開示された主題の趣旨から逸脱することなく再構成されることができる。
【0067】
プロセッサ装置704は、本明細書で論じられる機能を実行するように特別に構成された特別目的または汎用プロセッサ装置とすることができる。プロセッサ装置704は通信インフラストラクチャ706に接続されることができ、例えば、これは、バス、メッセージキュー、ネットワーク、マルチコアメッセージパッシングスキームである。ネットワークは、本明細書で開示されるような機能を実行するのに適した任意のネットワークとすることができ、構内通信網(LAN)、広域通信網(WAN)、無線通信網(例えば、WiFi)、移動体通信網、衛星通信網、インターネット、光ファイバ、同軸ケーブル、赤外線、無線周波数(RF)、またはそれらの任意の組合せを含むことができる。他の適切なネットワークの種類および構成は、当業者には明らかであろう。また、コンピュータシステム700は、主記憶部708(例えば、ランダムアクセスメモリ、読み取り専用メモリなど)を含むことができ、補助記憶部710を含むこともできる。補助記憶部710は、ハードディスクドライブ712および取り外し可能記憶ドライブ714を含むことができ、例えば、これは、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリなどである。
【0068】
取り外し可能記憶ドライブ714は、周知の方法で取り外し可能記憶ユニット718から読み取ることができ、および/またはそこに書き込むことができる。取り外し可能記憶ユニット718は、取り外し可能記憶媒体を含むことができ、これは、取り外し可能記憶ドライブ714によって読み書きされることができる。例えば、取り外し可能記憶ドライブ714がフロッピーディスクドライブまたはユニバーサルシリアルバスポートである場合、取り外し可能記憶ユニット718は、それぞれフロッピーディスクまたはポータブルフラッシュドライブとすることができる。一実施形態では、取り外し可能記憶ユニット718は、非一時的コンピュータ可読記録媒体とすることができる。
【0069】
ある実施形態では、補助記憶部710は、コンピュータプログラムまたは他の命令がコンピュータシステム700、例えば取り外し可能記憶ユニット722およびインタフェース720に読み込まれることを可能にする代替手段を含むことができる。そのような手段の例は、プログラムカートリッジおよびカートリッジインタフェース(例えば、ビデオゲームシステムに見られる)、取り外し可能メモリチップ(例えば、EEPROM、PROMなど)、および関連付けられたソケット、および当業者には明らかであるような他の取り外し可能記憶ユニット722およびインタフェース720を含むことができる。
【0070】
コンピュータシステム700(例えば、主記憶部708および/または補助記憶部710)内に格納されたデータは、光学記憶装置(例えば、コンパクトディスク、デジタル多用途ディスク、ブルーレイディスクなど)または磁気テープ記憶装置(例えば、ハードディスクドライブ)などの任意の種類の適切なコンピュータ可読媒体上に格納されることができる。データは、リレーショナルデータベース、構造化クエリ言語(SQL)データベース、分散データベース、オブジェクトデータベースなど、任意の種類の適切なデータベース構成で構成されることができる。最適な構成および記憶装置の種類は、当業者には明らかであろう。
【0071】
また、コンピュータシステム700は通信インタフェース724を含むことができる。通信インタフェース724は、ソフトウェアおよびデータが、コンピュータシステム700と外部装置との間で転送されることを可能にするように構成されることができる。例示的な通信インタフェース724は、モデム、ネットワークインタフェース(例えば、イーサネットカード)、通信ポート、PCMCIAスロットおよびカードなどを含むことができる。通信インタフェース424を介して転送されたソフトウェアおよびデータは、信号の形態とすることができる。これは、電子信号、電磁気信号、光信号、または当業者には明らかであるような他の信号とすることができる。信号は、通信経路726を介して伝わることができる。これは、信号を伝送するように構成されることができ、電線、ケーブル、光ファイバ、電話回線、携帯電話リンク、無線周波数リンクなどを使用して実装されることができる。
【0072】
コンピュータシステム700は、表示インタフェース702をさらに含むことができる。表示インタフェース702は、データがコンピュータシステム700と外部表示装置730との間で転送されることを可能にするように構成されることができる。例示的な表示インタフェース702は、高精細度マルチメディアインターフェース(HDMI)、デジタルビジュアルインタフェース(DVI)、ビデオグラフィックスアレイ(VGA)などを含むことができる。表示装置730は、コンピュータシステム700の表示インタフェース702を介して送信されるデータを表示するための任意の適切な種類の表示装置とすることができ、これは、陰極線管(CRT)表示装置、液晶表示装置(LCD)、発光ダイオード(LED)表示装置、静電タッチ表示装置、薄膜トランジスタ(TFT)表示装置などを含む。
【0073】
コンピュータプログラム媒体およびコンピュータ使用可能媒体は、主記憶部708および補助記憶部710などの記憶部を指すことができる。これは、メモリ半導体(例えば、DRAMなど)とすることができる。これらのコンピュータプログラム製品は、コンピュータシステム700にソフトウェアを提供するための手段とすることができる。コンピュータプログラム(例えば、コンピュータ制御論理)は、主記憶部708および/または補助記憶部710内に格納されることができる。また、コンピュータプログラムは、通信インタフェース724を介して受信されることができる。そのようなコンピュータプログラムは、実行されると、コンピュータシステム700が本明細書で論じられるような本方法を実施することを可能にすることができる。具体的には、コンピュータプログラムは、実行されると、本明細書で論じられるように、プロセッサ装置704が、
図5および
図6により示された方法を実施することを可能にすることができる。したがって、そのようなコンピュータプログラムは、コンピュータシステム700の制御装置を表すことができる。本開示がソフトウェアを使用して実装される場合、ソフトウェアは、コンピュータプログラム製品内に格納され、取り外し可能記憶ドライブ714、インタフェース720、およびハードディスクドライブ712、または通信インタフェース724を使用して、コンピュータシステム700に読み込まれることができる。
【0074】
プロセッサ装置704は、コンピュータシステム700の機能を実行するように構成された1つ以上のモジュールまたはエンジンを含むことができる。モジュールまたはエンジンの各々は、ハードウェアを使用して実装されることができる。また、ある場合では、モジュールまたはエンジンの各々は、主記憶部708または補助記憶部710内に格納されたプログラムコードおよび/またはプログラムに対応するようなソフトウェアを利用することができる。このような場合、プログラムコードは、コンピュータシステム700のハードウェアによる実行の前に、プロセッサ装置704によって(例えば、コンパイルモジュールまたはエンジンによって)コンパイルされることができる。例えば、プログラムコードは、プロセッサ装置704および/またはコンピュータシステム700の任意の追加のハードウェア構成要素による実行のために、アセンブリ言語または機械語のような低水準言語に翻訳されるプログラミング言語で書かれたソースコードとすることができる。コンパイルの処理は、字句解析、前処理、構文解析、意味解析、構文主導型変換、コード生成、コード最適化、およびコンピュータシステム700を制御して本明細書に開示される機能を実行するのに適した低水準言語へのプログラムコードの翻訳に適し得る任意の他の技術の使用を含むことができる。そのような処理の結果、コンピュータシステム700は上述の機能を実行するように一意にプログラムされ、特別に構成されたコンピュータシステム700になることが当業者には明らかであろう。
【0075】
本開示に一致する技術は、なかでも、データアクセスの監視および制御のための特徴、システムおよび方法を提供する。開示されたシステムおよび方法の様々な例示的な実施形態は、上述の通り説明されたが、それらは限定ではなく、単に例示の目的のために提示されたことが理解されたい。これは網羅的ではなく、開示を、開示された厳密な形態に限定するものではない。上記の教示に照らして修正および変形が可能であり、または、本開示の実施から、その広さまたは範囲から逸脱することなく、修正および変形を得ることができる。
【国際調査報告】