(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-28
(45)【発行日】2022-07-06
(54)【発明の名称】データ削除処理を検証する方法及びシステム
(51)【国際特許分類】
G06F 21/62 20130101AFI20220629BHJP
G06F 3/06 20060101ALI20220629BHJP
【FI】
G06F21/62
G06F3/06 301Z
(21)【出願番号】P 2019541692
(86)(22)【出願日】2018-02-02
(86)【国際出願番号】 EP2018052703
(87)【国際公開番号】W WO2018141929
(87)【国際公開日】2018-08-09
【審査請求日】2020-11-06
(32)【優先日】2017-02-02
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】519100952
【氏名又は名称】ブランコ テクノロジー グループ アイピー オイ
【氏名又は名称原語表記】BLANCCO TECHNOLOGY GROUP IP OY
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100203264
【氏名又は名称】塩川 未久
(72)【発明者】
【氏名】バーナード レ ガルゲアン
(72)【発明者】
【氏名】ビクター ゴンザロ
【審査官】小林 秀和
(56)【参考文献】
【文献】米国特許出願公開第2015/0309925(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
メモリを備えるデータ記憶装置からデータを削除する方法であって、該方法は、
既知のデータパターンを前記データ記憶装置の複数の既知のメモリ位置に書き込むステップと、
前記データ記憶装置にデータ削除手順を行わせるステップと、
前記データ削除手順の完了後に前記既知のメモリ位置に格納されたデータを読み出すステップと、
前記読み出されたデータと前記既知のデータパターンのデータとを比較するステップと、
前記読み出されたデータと前記既知のデータパターンのデータとの間の前記比較の結果に少なくとも部分的に基づいて、検証結果を決定するステップとを含
み、
予備検証手順を行うステップであって:
前記メモリから読み出されたデータの所定の割合又は量が実質的に同一であるかを決定することを含む、ステップを含む、方法。
【請求項2】
請求項1に記載の方法において、前記データ記憶装置は暗号化データ記憶装置を備える、方法。
【請求項3】
請求項1又は2に記載の方法において、下記の少なくとも1つが該当する方法:
a)前記データ記憶装置の前記複数の既知のメモリ位置は、物理的な位置である、
b)前記データ記憶装置の前記既知のメモリ位置は、論理ブロックアドレッシング(LBA、logical block addressing)を用いて定義されている、
c)前記書き込み及び/又は読み出しは、前記メモリと関連付けられているファイルシステム及び/又はファイル転送プロトコルを用いないでなされる。
【請求項4】
前記いずれかの請求項に記載の方法において、前記データ削除手順は、
アドレス可能なメモリの実質的に全てからデータを削除することを含む、方法。
【請求項5】
前記いずれかの請求項に記載の方法において、前記データ削除手順は、さらなるデータパターンを前記メモリへと書き込むことを含む、方法。
【請求項6】
請求項5に記載の方法において、前記さらなるデータパターンは次の少なくとも1つを含む、方法:予め定義された静的なパターン;全て1からなるパターン;全て0からなるパターン;ランダムなデータパターン;少なくとも1回反復された一連の1及び0からなるパターンであって、
少なくとも1回反復された0x55、0xAA又は0x3Cシリーズからなるパターン;周期的に反復された一連の1及び0からなるパターンであって、
周期的に反復された0x55、0xAA又は0x3Cシリーズからなるパターン。
【請求項7】
前記いずれかの請求項に記載の方法において、前記データ削除手順は、データを暗号化及び/又は復号化をするために用いられる鍵を置換又は削除することを含む、方法。
【請求項8】
前記いずれかの請求項に記載の方法において、前記読み出されたデータと前記既知のデータパターンの前記データとについて所定の割合又は量が相違するかに応じて肯定的な検証結果を提供するステップを含む、方法。
【請求項9】
前記いずれかの請求項に記載の方法において、前記読み出されたデータと前記既知のデータパターンの前記データとについて全てが相違するかに応じて肯定的な検証結果を提供するステップを含む、方法。
【請求項10】
前記いずれかの請求項に記載の方法において、前記読み出されたデータと前記既知のデータパターンの前記データとについて所定の割合又は量が実質的に同じであるかに応じて否定的な検証結果を提供するステップを含む、方法。
【請求項11】
請求項10に記載の方法において、
前記否定的な検証結果の提供に応答して:
前記データ記憶装置に前記データ削除手順を追加的に1回以上行わせるステップ、及び/又は、
前記データ記憶装置が破壊されるべきことを示すステップ、及び/又は、
代替的な削除手順を行うステップをなす、方法。
【請求項12】
前記いずれかの請求項に記載の方法において、前記データ記憶装置の総データ記憶容量の所定の割合又は量、
前記データ記憶装置の前記総データ記憶容量の少なくとも1%、2%、5%、又は10%、について前記既知のデータパターンを書き込むステップを含む、方法。
【請求項13】
請求項12に記載の方法において、前記データ記憶装置の前記総データ記憶容量についての前記所定の割合又は量に依存して前記既知のデータパターンを生成するステップを含む、方法。
【請求項14】
前記いずれかの請求項に記載の方法において、前記メモリの複数の領域を選択するステップと、前記既知のデータパターンを前記領域の各々に書き込むステップとを含む、方法。
【請求項15】
請求項14に記載の方法において、下記の少なくとも1つが該当する方法:
前記メモリの前記複数の領域は、前記メモリの一帯に分布している;
前記メモリの前記複数の領域は、前記メモリ内の物理的な位置について実質的に周期的に分布している;
メモリの前記複数の領域は、物理メモリ空間内にて選択された間隔によって隔ててある;
前記メモリの前記複数の領域は、ランダムに分布し得る;
前記メモリの前記複数の領域は、前記メモリについての所与のサブセット内にてランダムに選択されていることができる;
1つの区域が複数の領域のいずれか1つに関連する、複数の等しいサイズの区域に前記メモリを論理的にスライスして、対応する1つの前記区域内において前記メモリの各領域を選択することによって、前記メモリの前記複数の領域は、選択され得る;
メモリの前記複数の領域は、論理ブロックアドレッシング(LBA、logical block addressing)を用いて定義される。
【請求項16】
前記いずれかの請求項に記載の方法において、
前記既知のデータパターンは、再現可能である、
前記既知のデータパターンは、予め定義された静的なパターンを備える、
前記既知のデータパターンは、アルゴリズム又は公式を用いて生成される、
前記既知のデータパターンは、少なくとも2つの異なるデータ値を備える、
前記既知のデータパターンは、少なくとも1回反復された一連の1及び0からなるパターンであって
、周期的に反復された1及び0からなるシリーズからなるパターンを備える、
前記既知のデータパターンは、少なくとも1回反復された0xB5シリーズからなるパターンであって
、周期的に反復された0xB5シリーズからなるパターンを備える、
前記既知のデータパターンは、一連の1及び0の複数インスタンスからなるパターンであって
、0xB5シリーズの複数インスタンスからなるパターンからなる、
又は
前記既知のデータパターンは、既知の固定シードを伴って乱数生成器(RNG、randomnumber generator)を用いて生成される
こととなる、方法。
【請求項17】
請求項
1~16のいずれかに記載の方法において、前記メモリから読み出されたデータの所定の割合又は量が実質的に同一であるか一貫した値を有している場合には肯定的な予備検証結果を提供し、その余の場合には否定的な予備検証結果を提供するステップを含む、方法。
【請求項18】
請求項
1~17のいずれかに記載の方法において:
前記メモリから読み出されたデータの所定の割合又は量が全てバイナリのゼロであるか、全てバイナリの1であるか、反復する一貫した任意の他のパターンであって
、0xCCか0xAAか任意の他の明らかに反復するパターンであるかを決定するステップと、
前記メモリから読み出されたデータの所定の割合又は量がバイナリのゼロづくしであるか、バイナリの1づくしであるか、反復する一貫した任意の他のパターンであって
、0xCCか0xAAか任意の他の明らかに反復するパターンである場合には肯定的な予備検証結果を提供し、その余の場合には否定的な予備検証結果を提供するステップとを含む、方法。
【請求項19】
請求項
1~18のいずれかに記載の方法において、否定的な予備検証結果の提供に応答して前記検証結果を決定するステップをなすステップを含む、方法。
【請求項20】
前記いずれかの請求項に記載の方法において、前記データ記憶装置は次の少なくとも1つであるか次の少なくとも1つを備える、方法:自己暗号化ドライブ(SED、self-encrypting drive)、HDD、SSD、不揮発性メモリ、フラッシュメモリ、NANDフラッシュメモリ、RAM、任意の種類のメモリカードであって
、埋込型MMC(eMMC)の任意の種類のマイクロメディアカード(MMC)やSDカード
(登録商標)の任意の種類のメモリカード。
【請求項21】
前記いずれかの請求項に記載の方法において、前記データ記憶装置は前記データ記憶装置に固有なデータ削除ルーチンであって
、ファームウェアで実装されたデータ削除ルーチンを格納しているか該ルーチンと関連付けられており、前記データ削除手順を実行するように構成されており、また、該方法は、データ削除装置によって前記データ削除ルーチンの実行を命令するステップを含む、方法。
【請求項22】
前記いずれかの請求項に記載の方法において、前記データ記憶装置はハードウェア、ファームウェア、及びソフトウェアの少なくとも1つを備えており、また、前記データ削除手順は前記データ記憶装置の前記ハードウェア、ファームウェア、及びソフトウェアの少なくとも1つによって定義される、方法。
【請求項23】
前記いずれかの請求項に記載の方法において:前記データ記憶装置又は前記データ記憶装置を含む装置を外部処理資源に接続するステップと;前記既知のデータパターンの書き込み、前記データ削除手順の実行、前記データの読み出し、及び、前記検証結果の決定の少なくとも1つを、前記外部処理資源の制御下で行うステップとを含む、方法。
【請求項24】
データ削除装置であって、
既知のデータパターンをデータ記憶装置の複数の既知のメモリ位置にわたって書き込み、
データ削除手順を行うか前記データ記憶装置にデータ削除手順を行わせ、
前記データ削除手順の完了後に前記既知のメモリ位置に格納されたデータを読み出し、
前記読み出されたデータと前記既知のデータパターンのデータとを比較し、
前記読み出されたデータと前記既知のデータパターンのデータとの間の前記比較の結果に少なくとも部分的に基づいて、検証結果を決定するように構成され
、
前記データ削除装置は、予備検証手順を行い、前記メモリから読み出されたデータの所定の割合又は量が実質的に同一であるかを決定するように構成される、データ削除装置。
【請求項25】
コンピュータ
に、
既知のデータパターンを前記データ記憶装置の複数の既知のメモリ位置にわたって書き込むステップと、
前記データ記憶装置にてデータ削除手順を行うステップと、
前記データ削除手順の完了後に前記既知のメモリ位置の各々に格納されたデータを読み出すステップと、
前記読み出されたデータと前記既知のデータパターンのデータとを比較するステップと、
前記読み出されたデータと前記既知のデータパターンのデータとの間の前記比較の結果に少なくとも部分的に基づいて、検証結果を決定するステップとを
含む動作を実行させ
るプログラムであって、
前記動作は、
予備検証手順を行うステップであって:
前記メモリから読み出されたデータの所定の割合又は量が実質的に同一であるかを決定することを含む、ステップをさらに含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願はデータ記憶装置、例えば暗号化ドライブ或いは随意的には自己暗号化ドライブ、についてなすデータ削除用の方法及び装置に関する。
【背景技術】
【0002】
データ記憶装置について新たな目的への転用、新ユーザへの再割当、又は退役を行う場合、機密データ等のデータをデータ記憶装置から除去することが望ましいとされ得る。強化されたプライバシに向かっての絶え間ない前進、並びに、データ保護法制、並びに、環境関連規制の導入を考慮すると、データ記憶装置から効果的にデータ削除をなすことの重要性が強調されていると言えよう。
【0003】
国際的なデータ削除規格は存在しているのであり、様々なタイプのデータ記憶装置からセキュアにデータ削除をなすためにどのような動作が要求されているかがこれらによって定義されている。諸々のデータ削除規格は充足されるべき様々な検証要件を具体的に特定しており、該要件によって様々なタイプのデータ記憶装置からデータが実効的に消去されたことについての保証がもたらされる。
【0004】
データ記憶装置からデータを除去することについての既知の手法としては次の手法が挙げられる:データ記憶装置の外部のデータ削除装置を用いて既定のデータパターンを書き込んで、データ記憶装置の全体を埋め尽くして、機密データが冗長データ又はnullデータで置き換えられるようにする手法。既定のデータパターンは通常は、準拠する削除規格の要件に応じてデータ削除装置によって決定される。代替的には、データ記憶装置はファームウェアを含むことができ、該ファームウェアはデータ記憶装置内に格納された機密データを上書きするための、データ記憶装置によって行われる内部削除手順を定義していることができる。内部削除手順は、データ記憶装置の外部のデータ削除装置によって開始され得る。用いられる具体的な内部削除手順は、データ記憶装置のタイプ及び/又はデータ記憶装置とデータ削除装置との間で用いられるインタフェースのタイプに応じて異なり得る。例えば、自己暗号化ドライブ(SED、self-encrypting drive)については暗号学的削除手順が知られており、該手順では、格納データの復号のために用いられる暗号鍵が変更されて、これによって格納データが無意味なものと化する。これによると、SEDからの読み出しによって得られるデータは、暗号学的削除の前後において異なるものとなり得るのであり、これは新たな鍵を用いてデータが復号される故に起こる。問題とされているデータが当初は異なる鍵を用いて暗号化されていた故に、新たな鍵を用いて復号化を行うと、物理装置上の格納データが不変であっても、無意味な或いは外見上はランダムなデータが結果的に出力されることとなる。このことは
図1A及び1Bに示されており、これらの図では、暗号学的削除(即ち、鍵の置き換え)の前後において出力される復号化データの論理表現が提示されている。暗号学的削除の前後において読み出されるデータは、物理装置上に格納されており読み出し手順の対象とされるデータが変わっていないにもかかわらず、異なるものと化していることに留意されたい。
【0005】
ハードディスクドライブ(HDD、hard disk drive)用には上書き削除手順と称される手順が知られており、該手順では格納データが既定データパターンで置換される。例えば、
図2A及び2Bに示すように、HDDのメモリを二進値のゼロで上書きする手法が知られている。ソリッドステートドライブ(SSD、solid state drive)用にはブロック削除手順も知られており、該手順ではNANDフラッシュメモリに対してブロック削除(トンネルリリース)が行われる。
【0006】
もっとも、そのような内部削除手順を用いる場合、所定の削除規格によって定立された検証要件を充足することが困難となり得る。なぜならば、特定のデータ記憶装置によって用いられる具体的な内部削除手順の正確な詳細事項が未知であるか提供されていない場合があるからである。例えば、内部削除手順の結果が、データ記憶装置のメモリがランダムデータ(或いは「ランダム風」のデータ)で上書きされたという結果、又は、暗号学的削除手順の使用によってランダム風のデータがもたらされたという結果である場合、次のことに関して検証することがとても困難となり得る:内部削除手順完了後にデータ記憶装置内に格納されたデータが内部削除手順の一環として成功裏に書き込まれたのか否か、或いは、格納データが内部削除手順完了後に暗号学的削除手順の使用の結果によって変更されたか否か、或いは、格納データが(データ削除手順の失敗故に)内部削除手順前にデータ記憶装置内に以前格納されていたデータと同じか否か。これがために、データ削除手順が実際には成功していたにもかかわらず、データ記憶装置にてデータ削除手順の失敗が生じたものと看做され得る。そうすると、失敗事象を伴ったデータ記憶装置についてデータ削除手順が反復されたり、さらには失敗事象を伴ったデータ記憶装置が不必要に破壊されたりすることになってしまい得る。
【0007】
内部削除手順の実行前にデータ記憶装置に格納されたデータを読み出すこととなっており、次の用途に読み出しデータを用いるのであれば、読み出しデータを一時的に格納しておくかキャッシュしておくことを要する:削除手順の実行後に装置から読み出されたデータとの比較用途に用いる場合。一部のタイプのデータ記憶装置のデータ記憶容量を考慮すると、所定の削除規格を充足するに足りる程の(一部のタイプのデータ記憶装置の総データ記憶容量に対しての)割合を格納又はキャッシュすることは純粋に実用性に欠けることとなり得る。例えば、容量500GBのドライブの10%を格納又はキャッシュするためには、50GBもの一時的記憶容量を要することとなるのであり、例えばRAMを用いては該容量を達成するのは実際的には困難又は不可能となり得る。また、データを、データ記憶装置及びデータ削除装置からリモートな場所に一時格納することがセキュリティリスクとなり得る。例えば、キャッシュ済みデータについて述べるに、その格納場所が第三者に知れてしまった場合や他の態様を通じて危険に曝されている場合、潜在的なセキュリティリスクとなり得る。
【0008】
既知のデータ削除規格についての更なる詳細事項を提供するために、国際的な規格(削除規格)も存在するのであり、これらはあらゆるタイプの媒体からデータをセキュアに削除するための動作を定義している。これらの規格はどの機関が発行主体であるかに応じて異なり得るものであるも、記憶テクノロジやハードコピーや例えばファクシミリ装置又はネットワークルータ等のデータを記憶できる他のアセット等についてどのような具体的な方法を用いてサニタイズを行うことを要するかについて枠組みを示している。これらの要件中においては、処理の検証段階に着眼した明示的な規制が存在する。該規制はデータが除去/破壊されたことについて保証をもたらすためのものであり、手動的な又は自動化された方法を包含している。
【0009】
ホストコンピュータ/ラップトップ機/サーバマシンに接続された記憶域について論じるに、様々な異なるインタフェースが存在する(ATA、SATA、PATA、ATA、ATAPI、SCSI、SAS、USB、PCIe、NVMe等、並びにそれらのマシンがホストマシン接続及び通信する態様について標準化を図る諸々の標準(例えば、SATAやPATAやATAやATAPI標準等))。
【0010】
これらのインタフェースと関連付けられている公表済み規格は、あらゆるディスク機能を行うための手法を律し得る。これらのインタフェース規格は、一般には、ドライブ製造者等の主要利害関係者によって管理されており、ソフトウェアが記憶装置を利用してそれと相互作用してデータの記憶や読み出しを可能とするために提供されるのであり、一方でその完全性についても意図されている。
【0011】
記憶アセットからデジタルデータを除去するための主要な手法においては、既定のデータパターンを書き込んで記憶装置全体を飽和させて、それによって機密情報を冗長データ又はnullデータで置換する。記憶アセットがコンピュータに取り付け可能である場合(例えばHDDの場合)においては、これらの手法は多くの場合ホストアプリケーションによって行われるのであり、該アプリケーションが(通常は、採用される削除規格の要件に基づいて)パターンを決定して、それを装置のアドレッシング可能領域の全域に亘って適用する。代替的には、記憶装置のファームウェアによって実行できるサニタイゼーション命令も存在するのであり、該命令によればデータ削除を行うことができる。これらの命令は異なるインタフェース毎に多少異なり得るのであり、ホストアプリケーションによって開始されるも、装置自体によって行われる。一部の場合においては命令がデータの上書きをなすが、幾つかのヴァリエーションがある:
・暗号学的削除(SED専用)
-データ暗号化鍵が変更されて格納データが無意味と化す。
・上書き(HDD用に設計)
-ユーザデータをホスト指定型パターンと置換するファームウェアベースド上書きコマンド。
・ブロック削除(SSD用に設計)
-例えばトンネルリリースや任意の他の適切な手法等を用いて装置のユーザデータ領域を削除するために該手法を用い得る。
【0012】
例えば上記にて概説したようなファームウェア削除命令をデータ削除の主たる手段として用いた場合、データ削除の効率性は、これらのファームウェア命令が規格に準拠して作用したか否かに依存し得るのであり、ここで検証行為が主要な役割を果たすことになる。なぜならば、データを読み返すことによってユーザデータが残存していないことを確認して削除行為の成功(或いはその余事象)を確認することができるからである。
【0013】
上述のファームウェア削除処理は一般的にはそれぞれのドキュメンテーションによって規格化されている。これらの文献の中には、特定のタスクをなすように要請された場合に記憶装置がどのように振る舞うべきかについての説明が含まれている。削除命令に関しては、仕様ドキュメントは詳細、例えば上書き時にドライブが書き込むべきデータパターンや設定すべきプロパティやフラグ等、について宣言する。
【0014】
(削除規格によって提供される)義務づけられた検証要件を充足しようとした場合に問題が生じる。例えば、インタフェース規格(例えば、ATA、ATAPIや任意の他の適切な規格)がもたらされていても、該規格はファームウェア命令が何をすべきかについて漠然とした情報だけ与えるものである場合があったり、製造者が規格外のタスク遂行手段や誤ったタスク遂行手段を実装している場合があったりし得るのであり、どちらの場合でも検証困難な結果がもたらされる。
【0015】
ファームウェア命令の結果が、ドライブがランダムデータで装置を上書きをなしたという結果である場合(或いは暗号学的削除によってランダム風のデータがもたらされた場合)、削除ソフトウェアが(検証処理中に)次の点について知ることが困難となり得る:このデータが、ドライブのファームウェアソフトウェアによって実際に書き込まれたのか、暗号学的削除の結果として変更されたのか、それとも従前からのデータと同じデータであり削除動作中にエラーが生じたのか。削除ツールは、削除が成功裏に完了されたことを保証できるようになるためには、削除がなされた当時において装置上に何が書かれていたのかを知っている必要がある(事前状態及び事後状態の比較)。削除前にドライブのスナップショットを取り得るが、装置のスケール及びサイズ故にこれは実際的なタスクとはならず、また、どこにそのようなスナップショットが格納されるべきかという論点も提起されてしまう。RAMに格納しようとしても、検証すべき装置容量の割合の最低要件を充足しつつ、データの格納及びタスクの実行を共になすために十分な容量があるとは限らない。その他の場所にデータを格納したのでは、セキュリティリスクを惹起しかねない。
【0016】
この結果、削除処理について必ずしも不合格判定が出されなくても良い場合にもドライブについて不合格判定が出されているということが起こる。このことの理由は、例えば、削除ソフトウェアが一律のパターンで一杯に満たされたドライブを想定する一方で、「ランダム」なデータを発見してしまい、処理を不合格と看做してしまうという点に求められる。このランダムデータは装置によって書き込まれたか暗号学的削除によって書き込まれたものである場合があり、その場合には削除は実際には成功しており、ユーザの要求を満たすのに適していることになる。この結果、例外が発動されて(誤って)不合格とされてしまった装置を再処理するのに時間が浪費されてしまい、不必要にハードウェアが破壊されることになりかねない。
【0017】
実際に、データ削除が大規模になされる業界ではこの問題が悪化する(例えば、ITアセット処分業界)。この局面では、時間の浪費は装置のROIに多大な影響を与え得るのであり、運用者は、再度削除を試みたり不合格の理由を理解したりしようとはせずに、一見すると誤作動しているアセットを破壊してしまう方向に流されやすくなり得る。ドライブが削除を適切に行っているのか否かについて理解するために、また、これらの事項をユーザに報告するためには、より先進的な処理が必要である。例えば、中規模の施設では、年間80,000台前後のドライブを削除している場合があり、1台の装置の正常な削除のために数時間を費やしている場合がある。したがって、データ削除仕様を充足せずに不合格となる装置の発生率について幾らかでも削減できれば、時間及び金銭面で相当な節約をもたらし得る。
【発明の概要】
【0018】
以下のいずれかの態様又は実施形態の1つ以上の任意の特徴は、他のいずれかの態様又は実施形態の1つ以上の任意の特徴と、組み合わせることができるということに留意されたい。例えば、方法の特徴は装置の特徴として適用でき、その逆もまた然りである。
【0019】
第1の態様によれば、メモリを備えるデータ記憶装置からデータを削除する方法を提供するのであって、該方法は、
既知のデータパターンをデータ記憶装置の複数の既知のメモリ位置にわたって書き込むステップと、
データ記憶装置にデータ削除手順を行わせるステップと、
データ削除手順の完了後に既知のメモリ位置に格納されたデータを読み出すステップと、
読み出されたデータと既知のデータパターンのデータとを比較するステップと、
読み出されたデータと既知のデータパターンのデータとの間の比較の結果に少なくとも部分的に基づいて、検証結果を決定するステップとを含む。
【0020】
データ削除手順は、データ記憶装置内にて内部的に行われ得る。データ削除手順は予め定義されていることができる。例えば、データ記憶装置はハードウェア、ファームウェア、及びソフトウェアの少なくとも1つを備えていることができ、また、データ削除手順はデータ記憶装置のハードウェア、ファームウェア、及びソフトウェアの少なくとも1つによって定義されていることができる。
【0021】
データ記憶装置は、暗号化データ記憶装置を備え得る。
【0022】
複数の既知のメモリ位置は、物理的な又は論理的なメモリアドレスたり得る。既知の位置は、選択された及び/又は既定の位置を備え得る。データパターンは、異なる位置について異なることができ、又は、異なる位置について同じデータパターンの異なる部分を用いることができる。データパターンは、異なる位置について同じであることができる。
【0023】
方法は、データ記憶装置の複数の既知のメモリ位置にわたって直接的に既知のデータパターンを書き込むステップを含むことができる。
【0024】
書き込み及び/又は読み出しは、メモリと関連付けられているファイルシステム及び/又はファイル転送プロトコルを用いないで及び/又はそれらとは独立に、行われ得る。
【0025】
方法は、任意の種類のファイル転送プロトコルに頼らず、及び/又は、装置と関連付けられているファイルシステムを用いないものとされ得る。つまり、利用可能なアドレス可能メモリ空間の全てを削除し得るのであり、潜在的に削除可能なメモリアドレスはデータ記憶装置の任意のファイルシステム構成(例えば、ファイルシステムが存在している論理パーティションを含む)によって限定はされていないことになる。
【0026】
データ記憶装置の複数の既知のメモリ位置は、論理ブロックアドレッシング(LBA、logical block addressing)を用いて定義され得る。複数の位置は、論理ブロックアドレスたり得る。LBAでは、データ記憶装置のあらゆる且つ全てのメモリブロックをデータの読み書きの見込みある対象と看做し得るのであり、データ記憶装置に存在しているかその上に設けられているかもしれない任意のファイルシステム内のルートファイルシステムに対応する場所も含まれる。方法は、記憶域のアドレス可能エリアを単一のものとして観念することができ、任意のファイル又は格納情報がどこから始まりどこで終わるかは知る術がないものとできる。ファイルについてのメタデータは認知されないかも知れず、既知のデータパターンは単に「その場で」上書きされるだけかも知れない。方法は、ファイルシステムに管理させずに、特定のLBA範囲を適用対象とすることができる。LBAを用いることによって、あらゆる種類の断片化を回避し得る。なぜならば、既知のデータパターンはデータ記憶装置のメモリへと直接的に書き込まれるからである。LBAを用いることによって、データの位置についてのあらゆる不明瞭化を回避し得る。LBAを用いることによって、ファイルシステムを介さずに直接的にディスクアクセスを行い得る(これによって、例えばより多くの制御を効かし得る)。
【0027】
データ削除手順は、アドレス可能なメモリの実質的に全てからデータを削除することを含み得る。
【0028】
データ削除手順は、さらなるデータパターンをメモリへと書き込むことを含み得る。
【0029】
さらなるデータパターンは次の少なくとも1つを含み得る:予め定義された静的なパターン;全て1からなるパターン;全て0からなるパターン;ランダムなデータパターン;少なくとも1回反復された一連の1及び0からなるパターン又は任意の他の適切なパターンであって、例えば少なくとも1回反復された0x55、0xAA又は0x3Cシリーズからなるパターン;周期的に反復された一連の1及び0からなるパターン又は任意の他の適切なパターンであって、例えば周期的に反復された0x55、0xAA又は0x3Cシリーズからなるパターン。
【0030】
データ削除手順は、データを暗号化及び/又は復号化をするために用いられる鍵を置換又は削除することを含み得る。
【0031】
読み出されたデータと既知のデータパターンのデータとを比較するステップは、次のステップを含み得る:既知のデータパターンを再生成又は複製するステップ、及び、その再生成又は複製後に読み出されたデータを既知のデータパターンのデータと比較するステップ。
【0032】
このような方法によれば、データ削除手順の正確な詳細を把握せずとも、データ記憶装置によってなされたデータ削除手順について検証可能となり得る。また、このような方法によれば、データ記憶装置がデータ削除手順をなす前にデータ記憶装置内に格納された機密データを一時的に格納又はキャッシュすることについての任意の要件を回避し得る。
【0033】
方法は、読み出されたデータと既知のデータパターンのデータとについて所定の割合又は量が相違するかに応じて肯定的な検証結果を提供するステップを含み得る。読み出されたデータと既知のデータパターンのデータとについての所定の割合又は量は、1つ以上のデータ削除規格によって定義されるか及び/又はユーザ定義可能とされ得る。方法は、読み出されたデータと既知のデータパターンのデータとについて全てが相違するかに応じて肯定的な検証結果を提供するステップを含み得る。所定の割合又は量は方法の実行前に選択された割合又は量たり得るのであり、例えば、方法の実行直前に選択されたり予め保存されたりしたものたり得る。
【0034】
方法は、読み出されたデータと既知のデータパターンのデータとについて所定の割合又は量が実質的に同じであるかに応じて否定的な検証結果を提供するステップを含み得る。読み出されたデータと既知のデータパターンのデータとについての所定の割合又は量は、1つ以上のデータ削除規格によって定義されるか及び/又はユーザ定義可能とされ得る。方法は、読み出されたデータ及び既知のデータパターンのデータの1以上のバイト、例えば所定の若しくは選択されたバイト数若しくはバイトの割合、が実質的に同じであるかに応じて否定的な検証結果を提供するステップを含み得る。不合格例えば否定的な検証の条件は、読み出されたデータ及び既知のデータパターンのデータが任意の所定の許容水準に達する程合致しているということとし得る。1つの極論においては、許容水準については、否定的な結果を返すためには読み出されたデータと既知のデータパターンのデータと間でたった1つのバイトが合致することを要するものとし得る。代替的には、方法は、読み出されたデータ及び既知のデータパターンのデータが互いに実質的に同じであるか或いは任意の選択された許容水準に応じて否定的な検証結果を提供するステップを含み得る(例えば、データを対応する論理位置又は物理位置にて比較すること)。
【0035】
方法は、否定的な検証結果の提供に応答して以下のステップをなし得る:
データ記憶装置にデータ削除手順を追加的に1回以上行わせるステップ、及び/又は、
データ記憶装置が破壊されるべきことを示すステップ、及び/又は、
代替的な削除手順を行うステップ。
【0036】
方法は、データ記憶装置の総データ記憶容量の所定の又は選択された割合又は量にわたって既知のデータパターンを書き込むステップを含み得る。例えば、データ記憶装置の総データ記憶容量の少なくとも1%、2%、5%、又は10%、にわたって既知のデータパターンを書き込むステップを含み得る。データ記憶装置の総データ記憶容量についての選択された又は所定の割合又は量は、1つ以上のデータ削除規格によって定義されるか及び/又はユーザ定義可能とされ得る。
【0037】
方法は、データ記憶装置の総データ記憶容量についての所定の割合又は量に依存して既知のデータパターンを生成するステップを含み得る。
【0038】
方法は、メモリの複数の領域を選択するステップと、既知のデータパターンを領域の各々に書き込むステップとを含み得る。
【0039】
メモリの複数の領域は、メモリの一帯に分布していることができる。メモリの複数の領域は、メモリ内の物理的な又は論理的な位置について実質的に周期的に分布していることができる。メモリの複数の領域は、物理メモリ空間内又は論理メモリ空間内にて選択された間隔によって隔ててあることができる。メモリの複数の領域は、ランダムに分布し得る。メモリの複数の領域は、メモリについての所与のサブセット内にてランダムに選択されていることができる。各領域について1つ設けられる複数の等しいサイズの区域にメモリを論理的に「スライス」して、対応する1つの区域内においてメモリの各領域を選択することによって、メモリの複数の領域は、選択され得る。
【0040】
メモリの複数の領域は、論理ブロックアドレッシング(LBA、logical block addressing)を用いて定義され得る。
【0041】
既知のデータパターンは、再現可能とすることができる。
【0042】
既知のデータパターンは、予め定義された静的なパターンを備え得る。
【0043】
既知のデータパターンは、任意の既存のタイプのデータ記憶装置によって記述されたものとして知られている任意のデータパターンとは異なっていることができ、或いは、任意の既存のデータ削除検証規格内にて定義されている任意のデータ仕様又はデータパターンとは異なっていることができる。そのような異なる既知のデータパターンを書き込むことによって、データ記憶装置によってなされたデータ削除手順の検証が可能となり得る。既知のデータパターンは、アルゴリズム又は公式を用いて生成され得る。
【0044】
既知のデータパターンは、少なくとも2つの異なるデータ値を備え得る。
【0045】
既知のデータパターンは、少なくとも1回反復された一連の1及び0又は任意の他の適切なパターンからなるパターンであって例えば周期的に反復された1及び0からなるシリーズからなるパターンを備え得る。
【0046】
既知のデータパターンは、少なくとも1回反復された一連の16進数値又は任意の他の適切な値からなるパターンであって例えば周期的に反復された0xB5シリーズからなるパターンを備え得る。既知のデータパターンは、一連の1及び0又は任意の他の適切な値又はパターンの複数インスタンスからなるパターンであって例えば既知のデータパターンは0xB5シリーズの複数インスタンスからなるパターンとされ得る。
【0047】
既知のデータパターンは、ランダムなデータパターン及び/又は非周期的なデータパターンを備えていることができ、例えば既知のシード値を用いて生成されたランダムなデータパターン及び/又は非周期的なデータパターンとし得る。データパターンの異なる部分を、及び随意的には、ランダムデータパターンの異なる部分を、異なるメモリ位置に書き込むことができる。例えば、シードを用いて生成されるランダムデータパターンの異なる部分を、削除されるべきドライブの異なるセクタに書き込むことができる。異なるシードを用いて、異なるセクタ又は他のメモリ位置についてのランダムデータパターンを生成できる。一部の場合においては、異なるシードを用いて、削除されるべきドライブの異なるセクタ用の、異なるランダムデータパターンを生成できる。検証目的でランダムデータパターンが1度より多くの回数メモリに書き込まれており、例えば第1回目のランダムデータパターン書き込みに際して試行された削除処理が成功しなかったり進行しなかったりしたことに応答して次のようになせる:第2回目のランダムデータパターン書き込みに際して(例えば異なるシードを用いて生成した)異なるランダムデータパターンを用いることができる。
【0048】
該方法を用いて異なるデータ記憶装置からデータを削除する場合には、異なるシードを用いてランダムデータパターンを生成し得る。例えば、異なる装置からデータを削除するために該方法を用いる度に、異なるシードを用い得る。したがって、用いられるデータパターンは装置毎に異なり得るのであり、セキュリティが向上し得る。
【0049】
代替的には、同じデータパターンを異なるメモリ位置に書き込むことができる。
【0050】
既知のデータパターンは、例えば既知の固定シードを伴って乱数生成器(RNG、random number generator)を用いて生成され得る。
【0051】
方法は、予備検証手順を行うステップを含み得るのであり、該ステップはメモリから読み出されたデータの所定の割合又は量が実質的に同一であるかを決定することを含む。メモリから読み出されたデータの所定の割合又は量が実質的に同一である場合には、方法は肯定的な予備検証結果を提供でき、その余の場合には否定的な予備検証結果を提供できる。例えば、方法は次のステップを含み得る:メモリから読み出されたデータの所定の割合又は量が全てバイナリのゼロであるか、全て1であるか、反復する一貫した任意の他のパターンであって例えば0xCCか0xAAか任意の他の明らかに反復するパターンであるかを決定するステップ、並びに、メモリから読み出されたデータの所定の割合又は量がバイナリのゼロづくしであるか、バイナリの1づくしであるか、反復する一貫した任意の他のパターンであって例えば0xCCか0xAAか任意の他の明らかに反復するパターンである場合には肯定的な予備検証結果を提供し、その余の場合には否定的な予備検証結果を提供するステップ。読み出されたデータについての所定の割合は、1つ以上のデータ削除規格によって定義されるか及び/又はユーザ定義可能とされ得る。方法は、否定的な予備検証結果の提供に応答して検証結果を決定するステップをなすステップを含み得る。
【0052】
方法は、読み出されたデータの所定の割合が同一であるかという点に少なくとも部分的に基づいて、データ記憶装置によって行われたデータ削除手順のタイプについての表示を提供することを伴い得る。
【0053】
方法は、読み出されたデータ及び既知のデータパターンのデータの所定の割合が異なるかという点に少なくとも部分的に基づいて、データ記憶装置によって行われたデータ削除手順のタイプについての表示を提供することを伴い得る。
【0054】
既知のデータパターンがデータ記憶装置の任意の既存のタイプによって書き込まれると知られている任意のデータパターンとは異なるか、又は、それが任意の既存のデータ削除規格によって定義される任意のデータ仕様若しくはデータパターンとは異なる場合には、読み出されたデータの所定の割合が同一かという点に応じて肯定的な予備検証結果を提供すれば、一部の場合においては、データ記憶装置によって行われたデータ削除手順のタイプを決し得る。例えば、データ記憶装置によってなされたデータ削除手順によってデータ記憶装置の総データ記憶容量の所定の割合が全部バイナリのゼロで又は全部バイナリの1によって上書きされた場合、このことを検出してユーザに伝達し得る。代替的には、データ削除手順がランダムデータ又はランダム風データをデータ記憶装置に書き込んだ場合、このことを検出してユーザに伝達し得る。
【0055】
データ記憶装置は任意の種類のデータ記憶装置を備え得る。例えば、データ記憶装置は、次の少なくとも1つを備え得る:自己暗号化ドライブ(SED、self-encrypting drive)、HDD、SSD、不揮発性メモリ、フラッシュメモリ、NANDフラッシュメモリ、ハイブリッドドライブ、RAM、任意の種類のメモリカードであって例えば埋込型MMC(eMMC)等の任意の種類のマイクロメディアカード(MMC)やSDカード(登録商標)等の任意の種類のメモリカード。
【0056】
データ記憶装置は、データ記憶装置に固有なデータ削除ルーチンであって随意的にはファームウェアで実装されたデータ削除ルーチンを格納しているか該ルーチンと関連付けられていることができ、データ削除手順を実行するように構成されており、また、方法は、例えばデータ削除装置によってデータ削除ルーチンの実行を命令するステップを含み得る。
【0057】
方法は、データ記憶装置又はデータ記憶装置を含むかこれらと関連付けられている装置を外部処理資源に接続するステップと;既知のデータパターンの書き込み、データ削除手順の実行、データの読み出し、及び、検証結果の決定の少なくとも1つを、外部処理資源の制御下で行うステップとを含み得る。
【0058】
他のものとは独立に提供し得るさらなる態様によれば、データ削除装置を提供するのであって、該データ削除装置は、
既知のデータパターンをデータ記憶装置の複数の既知のメモリ位置にわたって書き込み、
データ削除手順を行うかデータ記憶装置にデータ削除手順を行わせ、
データ削除手順の完了後に既知のメモリ位置に格納されたデータを読み出し、
読み出されたデータと既知のデータパターンのデータとを比較し、
読み出されたデータと既知のデータパターンのデータとの間の比較の結果に少なくとも部分的に基づいて、検証結果を決定するように構成されている。
【0059】
データ削除装置はプロセッサとメモリとメモリ内に格納されたコンピュータ実行可能命令とを備え得るのであり、コンピュータ実行可能命令は、プロセッサによって実行されるとデータ削除装置に次のことを行わせる:書き込み、データ削除手順、読み込み、比較、及び/又は検証。
【0060】
コンピュータ実行可能命令は、ホストアプリケーションを構成又は定義できる。
【0061】
データ削除装置は次のステップを含む方法を少なくとも部分的に定義するように構成されたハードウェア及び/又はファームウェアを備え得る:
データ記憶装置の複数の既知のメモリ位置にわたって既知のデータパターンを書き込むステップと、
データ記憶装置にデータ削除手順を行わせるステップと、
データ削除手順の完了後に既知のメモリ位置の各々に格納されたデータを読み出すステップと、
読み出されたデータに少なくとも部分的に基づいて検証結果を決定するステップ。
【0062】
データ削除装置は、データ記憶装置の複数の既知のメモリ位置にわたって既知のデータパターンを書き込み得る任意の種類の装置であることができ又はそのような装置を備えていることができる。データ削除装置は、既知のデータパターンを含む削除用ペイロードをデータ記憶装置へともたらし得る任意の種類の装置であることができ又はそのような装置を備えていることができる。データ削除装置は、例えばコンピュータ、ラップトップ、タブレット、スマートフォン、サーバの少なくとも1つであることができ又はそのようなものを備えていることができる。
【0063】
データ削除装置は、インタフェース規格を用いてデータ記憶装置とデータ転送を行えるように構成されていることができる。
【0064】
インタフェース規格は次の少なくとも1つを備えることができる:SATA、PATA、ATA、ATAPI、SCSI、SAS、USB、PCIe、NVMe。
【0065】
データ削除装置は、ファイバチャネルを用いてデータ記憶装置とデータ転送を行えるように構成されていることができる。
【0066】
データ記憶装置は次の少なくとも1つであるか次の少なくとも1つを備え得る:自己暗号化ドライブ(SED、self-encrypting drive)、HDD、SSD、不揮発性メモリ、フラッシュメモリ、NANDフラッシュメモリ、RAM、任意の種類のメモリカードであって例えば埋込型MMC(eMMC)等の任意の種類のマイクロメディアカード(MMC)やSDカード(登録商標)等の任意の種類のメモリカード。
【0067】
他のものとは独立に提供し得るさらなる態様によれば、コンピュータ実行可能命令を定義するコンピュータプログラムを提供するのであって、該プログラムをプロセッサによって実行すると:
既知のデータパターンをデータ記憶装置の複数の既知のメモリ位置にわたって書き込むステップと、
データ記憶装置にてデータ削除手順を行うステップと、
データ削除手順の完了後に既知のメモリ位置の各々に格納されたデータを読み出すステップと、
読み出されたデータと既知のデータパターンのデータとを比較するステップと、
読み出されたデータと既知のデータパターンのデータとの間の比較の結果に少なくとも部分的に基づいて、検証結果を決定するステップとを実行させる。
【0068】
さらなる態様によれば、暗号学的削除及び他のファームウェア削除処理についてのインテリジェントな検証用の方法及び/又は装置が提供される。
【0069】
或る態様における特徴は、任意の他の態様における特徴として提供され得る。例えば、方法の特徴は装置の特徴として提供でき、その逆もまた然り。
【図面の簡単な説明】
【0070】
添付の図面を参照して非限定的例示という限りで以下においてデータ削除用の装置及び方法について論じる。
【0071】
【
図1A】データ記憶装置による暗号学的削除手順実行前においてのデータ記憶装置の複数のメモリアドレスから読み出されたデータを論理レベルで示した概略図である。
【
図1B】データ記憶装置において暗号学的削除手順がなされて暗号化/復号化のために用いられる鍵が差し替えられた後においての
図1Aの複数のメモリアドレスから読み出されたデータを論理レベルで示した概略図である。
【
図2A】データ記憶装置によるデータ削除手順実行前においてのデータ記憶装置の複数のメモリアドレス内に格納されたデータを示す概略図である。
【
図2B】データ記憶装置によるデータ削除手順実行後においての
図2Aの複数のメモリアドレスにて格納されたデータを示す概略図である。
【
図3A】
図3Aは、データ記憶装置と通信可能に配されたデータ削除装置について示す概略図である。
図3Bは、
図3Aのデータ記憶装置について示す概略図である。
図3Cは、
図3Aのデータ削除装置について示す概略図である。
【
図4】データ削除方法について概略的に示す流れ図である。
【
図5】
図4のデータ削除方法と共に用いるためのデータ削除検証結果判定方法について概略的に示す流れ図である。
【
図6】
図4のデータ削除方法と共に用いるためのデータ削除検証結果判定方法について代替的方法を概略的に示す流れ図である。
【発明を実施するための形態】
【0072】
まず、
図3Aについて参照するに、同図ではデータ記憶装置10及びデータ削除装置20が示されている。
図3Aの実施形態では、データ記憶装置は自己暗号化ドライブ(SED、self-encrypting drive)である。代替的実施形態では、データ記憶装置は、任意の他の適切なタイプのデータ記憶装置たり得る。データ記憶装置10及びデータ削除装置20は、インタフェース30を介してそれらの間でデータ交換をなせるように構成されている。データ記憶装置10については
図3Bでさらに詳述し、データ削除装置20については
図3Cでさらに詳述する。
図3A及び3Cにおいてデータ削除装置20は単一の装置として表されているも、代替的には、データ削除装置20は複数の分散した別個の装置を含むものであることもでき、これらが後述のデータ削除装置20の機能を集合的に行うことができる、ということにも留意されたい。また、データ削除装置20は、データ記憶装置10の近隣に配置されているか、データ記憶装置10との関係でリモートに配置されていることができる。
【0073】
図3Bに示すように、データ記憶装置10は、データ記憶用のメモリ12と、データ記憶及びデータ削除オペレーションをなすためのファームウェア14と、インタフェース30を介してデータ削除装置20と通信するための送受信機16とを含んでいる。
図3Bにおいては不図示であるも、データ記憶装置10は、メモリ12に書き込まれるべきデータを圧縮し、又は、メモリ12から読み出されるデータを展開するための圧縮機能を含み得ることに留意されたい。同様に、
図3Bに図示されていないが、データ記憶装置10は、異なる時々においてデータを異なる物理的メモリアドレスへと分配してメモリ12の耐用期間を延長するための消耗平準化(wear-levelling)機能を有していることができることに留意されたい。当該実施形態においてデータ記憶装置10はSEDを備えているも、代替的実施形態において該装置は任意の他の適切なタイプの記憶装置であることもでき例えば次のものとすることもできる:HDD、SSD、不揮発性メモリ、フラッシュメモリ、NANDフラッシュメモリ、RAM、任意の種類のメモリカードであって例えば埋込型MMC(eMMC)等の任意の種類のマイクロメディアカード(MMC)やSDカード等。
【0074】
インタフェース30はインタフェース規格に従って動作するかインタフェース規格に準拠していることができ、例えば次の1つ以上とすることができる:SATA、PATA、ATA、ATAPI(例えば、インタフェースはATIやATAPI規格を用いる装置を備えるかそのような装置の一部を構成できる)、SCSI、SAS、USB、PCIe、NVMe等。
【0075】
図3Cにてより詳しく述べるように、データ削除装置20はプロセッサ22とメモリ24と送受信機26とユーザインタフェース28とを含む。メモリ24内にコンピュータ実行可能命令29が格納されており、プロセッサ22によってこれが実行されると、
図4に示したデータ削除方法100をデータ削除装置20に行わせることとなる。データ削除装置20は、サーバ、コンピュータ、ラップトップ、の少なくとも1つを備えていることができ又はそのようなものであることができる。
【0076】
図4に示すデータ削除方法100に転じるに、S102にてデータ削除装置20は既知のデータパターン又はシーケンスを、データ記憶装置10の、例えば物理的メモリアドレス等の複数の既知のメモリ位置にわたって書き込む。
【0077】
図4の実施形態では、既知のデータパターン又はシーケンスは、メモリ装置上に提供されているかメモリと関連付けられているファイルシステム又はファイル転送プロトコルを用いずに直接的に書き込まれるのであり、このためには既知の手法であって例えばLBAや任意の他の適切な手順を用いて書き込む。したがって、既知のデータパターン又はシーケンスはメモリ内の論理アドレスへと直接的に書き込まれることができる。
【0078】
ファイルシステムを通さずして既知のデータを直接的にメモリ位置へと書き込むことは、任意の適切な既知の手法を用いて行うことができるのであり、これはメモリの具体的なタイプに依存する。既知のデータが書き込まれる選択されたメモリ位置は、例えば物理メモリによってサポートされた番号スキームによってアドレッシングされたりする選択されたセクタを備え得る。任意の適切なセクタ数及びセクタ分布に対して書き込みを行い得るのであり、処理は、対象となる具体的なメモリのセクタサイズとは独立になされ得る。代替的実施形態では、ファイルシステムを用いてデータをファイルとして書き込んだり、LBA又は類似の論理的アドレッシングスキームを用いずにして直接的に物理的な位置へと書き込むことができる。
【0079】
既知のデータパターン又はシーケンスは、任意の適切なサイズとでき任意の適切な内容を含み得るのであるが、通常は小さなデータパターンが用いられるのであり、同じデータパターンが選択されたメモリ位置の複数箇所に書き込まれる。
図4の実施形態では、2バイトの16進数値(例えば、B5)が用いられる。一部の他の実施形態では、16進数の集合や生成されたランダムデータのブロックが反復するデータパターンとして用いられる。
【0080】
複数の既知のメモリ位置は、データ記憶装置10の総データ記憶容量の所定の割合又は量を、構成し得る。所定の割合又は量は、例えばユーザによって、データ削除期間前に選択され得るのであり、又は、予め保存されていることができる。例えば、複数の既知のメモリ位置が、所定のデータ削除規格を充足させることとの関係で、データ記憶装置10の総データ記憶容量についての十分な割合を構成し得るのであり、これについては以下において詳述する。追加的に又は代替的には、複数の既知のメモリ位置は、データ記憶装置10の総データ記憶容量についてのユーザ定義割合を構成し得る。既知のデータパターン又はシーケンスは、例えば既知の固定シードを伴ってRNGを用いて生成したデータパターン又はシーケンス等の複製可能なデータパターン又はシーケンスの形式をとる。RNG及びシードを用いて任意の適切なサイズのデータパターン又はシーケンスを決定することができるのであり、例えば数列におけるポジション又はポジションの範囲を選択してポジション又はポジション範囲に対応する乱数を生成することによってこれをなし得る。したがって、検証手順をなすためには、必ずしも大規模な数列を一時的に格納又はキャッシュしなくても良い場合がある。任意の適切なRNG又は乱数若しくは擬似乱数を生成するための手順を用いることができる。
【0081】
一部の実施形態では、ランダムデータパターンの異なる部分を異なるメモリ位置に書き込むことができる。例えば、或るシードを用いて生成されたランダムデータパターンの異なる部分を削除対象ドライブの異なるセクタに書き込むことができるのであり、或いは、異なるセクタ若しくは他のメモリ位置のためのランダムデータパターンを異なるシードを用いて生成することができる。一部の場合においては、異なるシードを用いて異なるランダムデータパターンを生成してこれを削除対象ドライブの異なるセクタ用とすることができる。
【0082】
検証目的でランダムデータパターンが1度より多くの回数メモリに書き込まれており、例えば第1回目のランダムデータパターン書き込みに際して試行された削除処理が成功しなかったり進行しなかったりしたことに応答して次のようになせる:第2回目のランダムデータパターン書き込みに際して(例えば異なるシードを用いて生成した)異なるランダムデータパターンを用いることができる。
【0083】
一部の実施形態では、異なるデータ記憶装置からデータを削除するために方法を用いる場合には、異なるシードを用いてランダムデータパターンを生成する。例えば、異なる装置からデータを削除するために方法が用いられる度に、異なるシードを用い得る。一部の実施形態では、同じデータ削除装置を用いて並列で幾つかのデータ記憶装置に対して削除を行える。このような実施形態では、データ記憶装置の各々について同じランダムデータパターン/シードを用い得る。
【0084】
S104では、データ削除装置20は、インタフェース30を介してコマンドをデータ記憶装置10へと送って、データ記憶装置10のファームウェア14によって定義されたデータ削除手順をデータ記憶装置10に行わせる。
【0085】
図3の実施形態では、データ記憶装置10は暗号化記憶装置(この場合は自己暗号化ドライブ)を備えるのであり、S104におけるデータ削除手順は鍵について削除・置換・上書きをなすことを伴い、該鍵は例えばメディア暗号化鍵等であり、暗号化ドライブによって格納されており、データ記憶装置に記憶されたデータを暗号化/復号化するための暗号化/復号化処理の一部として暗号化ドライブによって用いられる。鍵の削除・置換・上書きが成功した場合、ドライブから以後読み取られるデータは復号化できても復号後データは元々格納されていた有意義なデータ(例えば、ファイルやアプリケーションや任意の他の種類のデータを構築するのに用い得るデータ)を反映したものではなくなっているのであり、例えばランダムであったり擬似ランダムであったり、無意味又は使い物にならないデータの外見を呈し得る。
【0086】
S106では、データ削除手順の完了後、データ削除装置20は、既知のメモリアドレスに格納されたデータを検証手順の一環として読み出して、削除手順(例えばこの場合は、鍵の削除・置換・上書き)が正しく行われたか否かを決定する。
【0087】
その後、S108において、読み出されたデータに少なくとも部分的に基づいて検証結果について決定する。例えば、検証結果はS108にて決定され得るのであり、読み出されたデータと既知のデータパターンのデータとの間の比較の結果に少なくとも部分的に基づいて決定がなされるのであり、
図5を参照して以下説明する。具体的には、既知のデータパターンは(例えば、下の既知のデータパターンを生成するために用いられたのと同じシードを用いて)複製されるか再生成されるのであり、
図5のS200にて読み出されたデータと既知のデータパターンのデータとが比較される。
【0088】
S202では読み出されたデータの所定の割合及び既知のデータパターンのデータが異なるかが決定される。例えば、読み出されたデータ及び既知のデータパターンのデータの全てが異なるかが決定され得る。S202にて読み出されたデータの所定の割合及び既知のデータパターンのデータが異なると決定された場合、S204にて肯定的な検証結果が提供されるのであり、削除手順が成功したことが示される。反対に、読み出されたデータの所定の割合及び既知のデータパターンのデータが同じであると決定された場合には、S206にて否定的な検証結果が提供される。
【0089】
図4及び5にて説明されるデータ削除方法100は、幾つかの理由からして既存のデータ削除方法に対して優位性を有している場合がある。第1に、
図4及び5を参照して説明されるデータ削除方法100では、データ記憶装置10がデータ削除手順を行う前にデータ記憶装置10からデータを読み出す必要が課されないで済み得る。したがって、データ削除手順をデータ記憶装置10がなす前にデータ記憶装置10から何らのデータを読み出さなくてもよいこととなり得る。このことは、データ記憶装置10の総データ記憶容量の相当な割合についてデータ削除検証をなすことを要請するデータ削除規格の場合に特に利点をもたらすこととなろう。
【0090】
第2に、
図4及び5を参照して説明されるデータ削除方法100では、データ記憶装置10によって行われるデータ削除手順について詳細を知っていることを必要とされないで済む場合があるのであり、データ削除手順はデータ記憶装置10のファームウェア14内にて定義されている。換言するに、
図4及び5を参照して説明されるデータ削除方法100は、信頼性を有しており、検証可能性を有しており、データ記憶装置10によってなされるデータ削除手順について無知的(アグノスチック)であってもよいことになり得る。
【0091】
第3に、データ削除方法100がもたらす検証結果は、任意の所与の削除規格及び/又は特定のユーザ選好から見てスケーラブルなものとなるのであり、このことは、次の文脈から与えられる:データ記憶装置10の総データ記憶容量についての所定の割合について読み出されたデータと既知のデータパターンのデータとを比較することによってデータ削除検証をなし得るということ。
【0092】
削除手順は必ずしも自己充足型ではない。例えば、該手順は、ファームウェア削除コマンドが装置について用いられた任意の時に用いられ得るのであり、及び/又は、別の規格の一部として統合されることができる。例えば、削除手順は様々な段階を伴うことができ、その1つがファームウェア削除手順たり得る。実施形態によれば、実施形態による検証手順の結果次第によってフォールバック削除処理を使用可能にしておくことができる。例えば、米国標準技術局(NIST、National Institute of Standards and Technology)の標準によれば、SSDを消去する手段としては暗号学的削除もブロック削除も両方有用な手段とされている。一部の実施形態では、検証手順において削除手順に失敗が(例えば、装置全体について又は論理的(若しくは物理的)な装置の1つ以上のブロック若しくは他の部分について)生じていると示された場合、否定的な検証結果に対して自動で或いはユーザコマンドに従って異なる削除手順を用い得る。例えば、ブロック削除手順の失敗に続いて暗号学的削除手順へのフォールバック(或いはその逆のフォールバック)が定められていることができ、そのことについての指示をユーザに提供し得る。
【0093】
図6は検証結果を決定するための代替的な方法について示している(例えば、
図4のS108を参照。)。この代替的方法はS300で開始し、予備検証手順がなされるのであり、該手順では予備的確認をなして読み出されたデータの所定の割合が同一であるかを決定する。例えば、S300は、読み出されたデータの全部がバイナリのゼロづくしであるかバイナリの1づくしであるかを決定するステップを含み得る。S300にて読み出されたデータの所定の割合が同一であると決定された場合、S104にてなされたデータ削除手順が成功裏に置換をなしていることの徴表であり、既知のメモリアドレスにて元々データ記憶装置10に格納されていた機密データが、全部バイナリのゼロや全部バイナリの1等の冗長データ又はnullデータで置換されるのであり、肯定的な検証結果がS302にて提供される。他方で、S300にて読み出されたデータの所定の割合が異なると決定された場合、既知のデータパターンは複製されるか再生成されて、読み出されたデータと既知のデータパターンのデータとがS304にて比較される。S306にて、読み出されたデータの所定の割合及び既知のデータパターンのデータが異なっているかを決定する。例えば、読み出されたデータ及び既知のデータパターンのデータが異なっているものと決定され得る。S306にて読み出されたデータ及び既知のデータパターンのデータの所定の割合が異なると決定された場合、肯定的な検証結果が提供される。反対に、読み出されたデータ及び既知のデータパターンのデータの所定の割合が同じであると決定された場合、S308にて否定的な検証結果が提供される。
【0094】
したがって、
図6にて説明される代替的な検証結果決定方法によれば、次の可能性がもたらされ得る:データ記憶装置10が削除オペレーションをなして格納された機密データが冗長データ又はnullデータで置換されること、並びにデータ記憶装置10が削除オペレーションをなして格納された機密データが一見するとランダムなデータで置換されること(例えば、データ記憶装置10が暗号学的削除手順を行ったことの結果)。
【0095】
少なくとも一部の実施形態によれば、ファームウェア削除の予期せぬ効果に対抗し、暗号学的削除処理を扱うために、処理をなすソフトウェアが動作保証手段を用いることができる。この点について解決を図るためのアプローチとしては、ファームウェア削除前に比較用データを装置に書き込んでおいて、データの除去又は不存在について確認できるようにしておく。これによってデータが削除されたことを保証できるようになる。なぜならば、前もって装置の従前の状態について知っておくことができるからである(ホストソフトウェアが自己によって書き込まれたデータを既に知っているからである)。既知のデータが除去されたことを担保することによって、削除処理の結果がランダムデータの存在を伴う状況であっても、削除が成功したものと結論付けることができる。この処理はユーザ要件と共にスケールできる。即ちドライブのアドレス可能エリアのX%を包括できるのであり、処理に関するアシュアランスもスケールし得ることを意味する。
【0096】
規格に準拠していないドライブや予期せぬ結果をもたらしつつデータ削除を達成するドライブについては、スループットが増大するはずである。また、これ故にソフトウェアが規格についての不遵守を強調できる。これはソフトウェアのユーザに対して通知をなす際に有用たり得るのであり、内規が特定の処理のみを用いることをユーザらに強いている場合がある。処理の結果、ユーザに対して示唆が発せられ得るのであり、該示唆では結末が想定されていたものではなかったことが伝えられる。これによって、ユーザはさらなるインテリジェンスを検証プロセスに与え得る。
【0097】
特定の実施形態による処理は次のステージを含み得る:
1. ドライブのあちこちの特定のエリアに既知のデータセットを書き込む(例えば、データは定義されたパターンか固定シードを伴ってRNGを用いて生成されたパターンであることができる):
a. データを装置のあちこちに広げて、広範な包括範囲を保証する
b. 書き込まれるデータ量は、ユーザによって選択される%値に基づいているか又は削除規格若しくは他の要件に従って決定される
2. ファームウェア削除を開始(上書き系、暗号系、ブロック系)
3. 検証処理を開始
a. まず、ドライブサーフェイスを満たす一貫性を有するパターン(例えば、全て1や全て0のパターン)について確認するのであり、これはデータ削除の成功の徴表であるか及び/又はユーザデータが存在していないことの徴表たり得る。
b. これが失敗した場合、従前書き込まれたデータの不存在について代わりに確認する。
【0098】
一部の実施形態では、上述の段階の1つ以上を省略できる。例えば、ステージ3aを一部の実施形態では省略できる。
【0099】
当業者であれば、上述の装置及び方法に様々な変更を加え得ることに気付くであろう。例えば、データ記憶装置は、データ記憶装置内において内部的になされるデータ削除手順を少なくとも部分的に定義するハードウェア及び/又はソフトウェアを備え得る。既知の固定シードを用いて生成された既知のデータパターンを書き込むことに代えて、他のデータパターンを用いることができる。例えば、既知のデータパターンは、任意の種類のアルゴリズム又は公式を用いて生成できる。既知のデータパターンは、少なくとも2つの異なるデータ値を含み得る。既知のデータパターンは、反復的及び/又は周期的であることができる。既知のデータパターンは、任意の既存のタイプのデータ記憶装置によって書き込まれると知られている任意のデータパターンとは異なることができ、又は、任意の既存のデータ削除検証規格にて定義されている任意のデータ仕様若しくはデータパターンとは異なることができる。そのような異なる既知のデータパターンを書き込むことによって、データ記憶装置によってなされるデータ削除手順について検証できるようになり得る。そのような異なる既知のデータパターンを書き込むことによって、データ記憶装置によってなされるデータ削除手順のタイプについて一部の場合において決定もし得る。例えば、データ記憶装置によってなされたデータ削除手順が全てバイナリのゼロ又は全てバイナリの1でデータ記憶装置の総データ記憶容量の所定の割合を上書きした場合、
図6に示す方法のステージ300は、このことを検出するのであり、この情報はユーザインタフェース28を介してデータ削除装置20のユーザへと伝達し得る。代替的には、ランダムデータ又はランダム風のデータをデータ削除手順がデータ記憶装置10へと書き込んでいる場合、
図6のステージ306がこれを検出するのであり、この情報をどうにかしてユーザインタフェース28を介してデータ削除装置20のユーザへと伝達できる。
【0100】
図4、5、6のデータ削除方法は、メモリ24内に格納されたコンピュータ実行可能命令29によって定義され得るものであるも、
図4、5、6のデータ削除方法の少なくとも一部はハードウェア及び/又はファームウェアで又は任意の他の適切な態様で定義され得ることに留意されたい。
【0101】
本明細書にて説明した実施形態は純粋に例示的に説明されたに過ぎず、添付の特許請求の範囲にて画定された本発明の範疇に収まりつつ変更を加え得ることに留意されたい。