(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-24
(45)【発行日】2022-01-18
(54)【発明の名称】データ消去方法および装置
(51)【国際特許分類】
G06F 21/60 20130101AFI20220111BHJP
G06F 3/06 20060101ALI20220111BHJP
G06F 21/62 20130101ALI20220111BHJP
【FI】
G06F21/60
G06F3/06 305Z
G06F21/62 345
(21)【出願番号】P 2019537874
(86)(22)【出願日】2017-09-25
(86)【国際出願番号】 EP2017074250
(87)【国際公開番号】W WO2018055171
(87)【国際公開日】2018-03-29
【審査請求日】2020-07-07
(32)【優先日】2016-09-23
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】519100952
【氏名又は名称】ブランコ テクノロジー グループ アイピー オイ
【氏名又は名称原語表記】BLANCCO TECHNOLOGY GROUP IP OY
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100205833
【氏名又は名称】宮谷 昂佑
(72)【発明者】
【氏名】パシ ケロコスキー
(72)【発明者】
【氏名】マーカス トーマ
(72)【発明者】
【氏名】ペッカ ヌンミネン
(72)【発明者】
【氏名】トミ レトラ
(72)【発明者】
【氏名】ペトリ ヘンツネン
【審査官】宮司 卓佳
(56)【参考文献】
【文献】特表2015-523633(JP,A)
【文献】特開2012-048606(JP,A)
【文献】特開2012-150611(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60-21/62
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
再利用、新規ユーザへの再割り当て、またはデータ記憶装置の引退のために、データ記憶装置からファイルベースのプロトコルを使用してデータを消去する方法であって、前記データ記憶装置はメモリを含み、前記方法は、
前記メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信するステップと、
前記ファイルベースのプロトコルを使用して、前記メモリの少なくとも1つの選択された領域にファイルを反復的に書き込むステップと、
を含み、
前記ファイルのうちの少なくとも1つは受信された信号のうちの少なくとも1つに基づいてサイズ設定され、前記ファイルの反復的な書き込みには、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるように前記ファイルを順に書き込むステップを含み、
前記ファイルは、前記メモリの少なくとも1つの選択された領域の全てを集合的に占有するように書き込まれ、
更に、前記ファイルの書き込み後に、前記メモリの少なくとも1つの選択された領域が一杯であるという指示を受信するステップと、
前記指示に応答して、前記メモリの少なくとも1つの領域の少なくとも一部を解放するステップと、前記指示に応答して、前記メモリの少なくとも1つの領域に少なくとも1つの更なるファイルを書き込むステップとを含む、方法。
【請求項2】
前記選択された少なくとも1つの領域は、前記メモリのユーザパーティション、および/または前記装置のオペレーティングシステムおよび/またはファームウェア用に予約されていない実質的に全てのメモリを含む、請求項1に記載の方法。
【請求項3】
メモリの選択された領域の少なくとも一部からデータを読み込むステップと、
前記メモリに書き込まれるファイルの生成に使用されるデータセットの少なくとも1つのサブセットであって、前記少なくとも1つの部分に対応している前記少なくとも1つのサブセットを選択するために、記憶されているインデックス(単数または複数)を使用するステップと、
読み込まれた前記データを、対応しているデータの少なくとも1つのサブセットと比較するステップと、
を含む、検証処理を実行するステップを更に含む、請求項1または2に記載の方法。
【請求項4】
前記メモリに書き込まれるファイルの生成に使用されるデータはシードを使用して生成され、前記検証処理は前記シードを使用して前記データセットの少なくとも一部を再生成するステップを含む、請求項3に記載の方法。
【請求項5】
前記検証処理は、前記記憶されているインデックスおよび前記シードを使用して、メモリに書き込まれる前記ファイルの生成に使用されるデータセット全体を生成することなく、前記データセットのサブセットを再生成するステップを含む、請求項4に記載の方法。
【請求項6】
各ファイルはランダムに生成されたデータを含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
ファイルを反復的に書き込むステップは、更に、前記受信された1つ以上の信号に基づいて、1つ以上の反復的に書き込まれるファイルのサイズを縮小するステップを含む、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記受信された1つ以上の信号は利用可能な空き容量に対する要求に応答して生成され、また前記受信された信号はそれぞれ、利用可能な空き容量を表す各値を含む、請求項1~7のいずれか一項に記載の方法。
【請求項9】
ファイルの反復的な書き込みの前に、初期消去および/または解放手順を実行して、前記メモリの選択された少なくとも1つの領域からデータを消去し、および/または、前記選択された少なくとも1つの領域を解放してファイルを受信するステップを含む、請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記ファイルを生成するステップを含む、請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記ファイルを生成するステップは、データセットの複数のサブセットを選択するステップと、各ファイルについて、前記複数のサブセットのうちの選択された1つを含むように前記ファイルを生成するステップとを含む、請求項10に記載の方法。
【請求項12】
前記サブセットが含まれるデータセットの部分を表すインデックスを記憶するステップを含み得る、
請求項11に記載の方法。
【請求項13】
前記データセットはランダムに生成されたデータセットを含み、前記サブセットは前記ランダムに生成されたデータセットの選択された部分を含む、請求項12に記載の方法。
【請求項14】
少なくとも1つのシードを使用して前記データセットおよび/または前記ファイルを生成するステップと、前記少なくとも1つのシードを記憶するステップとを含む、請求項1~13のいずれか一項に記載の方法。
【請求項15】
前記検証処理は、前記ファイルが前記メモリに正確に書き込まれたことを検証し、および/または前記メモリの選択された少なくとも1つの領域のほぼ全部が占有されたことを検証する、請求項
3~5のいずれか一項に記載の方法。
【請求項16】
前記メモリに書き込まれたファイルに含まれていたデータを検索または再生成するステップを更に含む、請求項15に記載の方法。
【請求項17】
前記更なるファイルの解放および書き込みが、複数回繰り返される、請求項
1に記載の方法。
【請求項18】
前記データ記憶装置に、電話機、スマートフォン、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、携帯用電子機器、音楽機器、および/またはビデオデバイスのうちの少なくとも1つを含む、請求項1~
17のいずれか一項に記載の方法。
【請求項19】
前記データ記憶装置に、iOSデバイス、またはAndroidデバイス、またはWindowsデバイス、またはBlackberryデバイスを含む、請求項1~
18のいずれか一項に記載の方法。
【請求項20】
前記メモリに、自己暗号化ドライブ(SED)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、不揮発性メモリ、フラッシュメモリ、NANDフラッシュメモリまたはランダムアクセスメモリ(RAM)のうちの少なくとも1つを含む、請求項1~
19のいずれか一項に記載の方法。
【請求項21】
インタフェースを介して前記装置および/または前記メモリに前記ファイルを提供するステップを含み、前記インタフェースは、シリアルATA(SATA)、パラレルATA(PATA)、スモールコンピュータシステムインタフェース(SCSI)、シリアルアタッチドSCSI(SAS)、ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCI ExpressまたはPCIe)、不揮発性メモリエクスプレス(NVM ExpressまたはNVMe)、ユニバーサルフラッシュストレージ(UFS)、マルチメディアカード(MMC)およびRS-MMC、MD-MMC、DV-MMC、MMCplus、MMCmobile、SecureMMC、eMMCを含むMMCの変形並びにセキュアデジタルおよびSDIO、SD、miniSD、microSDを含むセキュアデジタルの変形のうちの少なくとも1つに従って動作する、請求項1~
20のいずれか一項に記載の方法。
【請求項22】
前記ファイルはそれぞれ、最大ファイルサイズと最小ファイルサイズとの間のサイズであり、かつ、
a)前記最大ファイルサイズは1MB~100MBの間、任意に5MB~20MBの間、任意に実質的には10MBに等しい、または
b)前記最小ファイルサイズは100バイト未満、任意に10バイト未満、任意に3バイト、2バイトまたは1バイトである、
のうちの少なくとも一方である、請求項1~
21のいずれか一項に記載の方法。
【請求項23】
前記ファイルはそれぞれ、最大ファイルサイズと最小ファイルサイズとの間のサイズであり、かつ、前記方法は、前記装置および/または前記メモリの性質またはアイデンティティ、および/または前記装置および/または前記メモリのオペレーティングシステムの性質またはアイデンティティ、および/または前記メモリまたは前記メモリの選択された少なくとも1つの領域のサイズのうちの少なくとも1つに応じて、前記最大ファイルサイズおよび/または前記最小ファイルサイズを選択するステップを含む、請求項1~
22のいずれか一項に記載の方法。
【請求項24】
ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去する
方法を実行するためのシステムであって、
データ記憶装置と、
データ消去装置であって、
前記メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信し、
前記ファイルベースのプロトコルを使用して、前記ファイルを前記メモリの少なくとも1つの選択された領域に反復的に書き込む
ように構成された処理リソースを備えるデータ消去装置と、
を含み、
前記ファイルのうちの少なくとも1つは、受信された前記信号のうちの少なくとも1つに基づいてサイズ設定され、また、前記ファイルの反復的な書き込みは、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるように前記ファイルを順に書き込むステップを含み、
前記ファイルは、前記メモリの少なくとも1つの選択された領域の全てを集合的に占有するように書き込まれ、
前記方法は、更に、前記ファイルの書き込みに後に、前記メモリの少なくとも1つの選択された領域が一杯であるという指示を受信するステップと、
前記指示に応答して、前記メモリの少なくとも1つの領域の少なくとも一部を解放するステップと、前記指示に応答して、前記メモリの少なくとも1つの領域に少なくとも1つの更なるファイルを書き込むステップとを含む、システム。
【請求項25】
ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去する
方法を実行するように構成されたデータ消去装置であって、
前記データ消去装置は、
前記メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信し、
前記ファイルベースのプロトコルを使用して、前記メモリの少なくとも1つの選択された領域にファイルを反復的に書き込むように構成された処理リソースを備え、
前記ファイルのうちの少なくとも1つは、受信された前記信号のうちの少なくとも1つに基づいてサイズ設定され、また、前記ファイルの反復的な書き込みは、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるように前記ファイルを順に書き込むステップを含み、
前記ファイルは、前記メモリの少なくとも1つの選択された領域の全てを集合的に占有するように書き込まれ、
前記方法は、更に、前記ファイルの書き込み後に、前記メモリの少なくとも1つの選択された領域が一杯であるという指示を受信するステップと、
前記指示に応答して、前記メモリの少なくとも1つの領域の少なくとも一部を解放するステップと、前記指示に応答して、前記メモリの少なくとも1つの領域に少なくとも1つの更なるファイルを書き込むステップとを含む、データ消去装置。
【請求項26】
請求項1~
23のいずれか一項に記載の方法を実行するために実行可能であるコンピュータ可読命令を含む、コンピュータプログラム。
【請求項27】
ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを自動的に消去する方法であって、
前記メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信するステップと、
前記ファイルベースのプロトコルを使用して、ファイルを前記メモリの少なくとも1つの選択された領域に反復的に書き込むステップと、
を含み、前記前記ファイルのうちの少なくとも1つは受信された前記信号のうちの少なくとも1つに基づいてサイズ設定され、また前記ファイルは前記メモリの少なくとも1つの領域の全てを集合的に占有するように書き込まれる、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、データ記憶装置からデータを消去するのに使用するための方法および装置に関する。
【背景技術】
【0002】
データ記憶装置を再利用する、新規のユーザに再割り当てする、または引退させる際に、機密データ等のデータをデータ記憶装置から削除することが望ましい場合がある。プライバシーおよびデータ保護法の強化に対する継続的な推進並びに関連する環境規制の導入により、データ記憶装置からデータを効果的に消去する重要性が高まった。
【0003】
例えば、個人データや会社データ等の機密データを保持する何十億ものデバイスが流通している。このデータの保護に失敗した場合、プライバシーの問題が発生し、これは、データ保有資産の回収または廃棄時に、困難かつ法的に不確実な状況に繋がり得る。結果的に、潜在的な脅威を軽減し、情報漏洩の可能性を低減するためにセキュリティ対策が必要である。デバイスを再利用および/または引退させる前に、記憶されているデータを安全かつ効率的に消去する必要がある。実際、データ保護法、国内のデータセキュリティガイドライン、および環境規制がこの概念を支持している。
【0004】
場合によっては、デバイスの再配置を容易にするために、IT資産処分(ITAD)サービスと呼ばれる産業用処理プラントが使用されており、多くの場合、1週間当たり何万ものデバイスを処理している。このような状況では、デバイスの価値が経時的に低下し、かつ処理プロセス中に必要とされるリソースコストが増加する故に、デバイスの処理速度は、リサイクル施設からの投資利益率にとって最も重要である。デバイスの安全な再配置はこの業界の重要な部分であり、またユーザデータを確実に削除することが廃棄処理の重要な部分である。
【0005】
スマートフォンやタブレット等のモバイル技術に目を向けると、真っ先にデータを消去して再配置または引退させるための準備をする方法は、デバイスにインストールされているオペレーティングシステムを介して「ファクトリーリセット」オプションにアクセスすることである。iOSを実行しているデバイスの特定の例では、「全てのコンテンツおよび設定を消去する」機能を適切なメニューから選択することができる。同様に、同様の手順が他の電話プラットフォーム、即ち、Android、Windows、およびBlackberryでも提供されている。
【0006】
多くの場合、デバイスを再調整する際に機能的なオペレーティングシステムを保持する必要があることは周知である。データ消去中にオペレーティングシステムが削除された場合、場合によっては、デバイスをオペレーティングシステムで再フラッシュする必要があり、デバイスを処理するのに必要な時間が追加される。製造元の保証も無効になる可能性があり、根付いているように見えるデバイスは転売を妨げられる可能性がある。従って、デバイスを再調整するための何らかのデータ削除処理は、オペレーティングシステムによって課される制限によって制限され得る。従って、多くの場合、オペレーティングシステムの内部データ消去プロセスを使用する必要がある。これは、例えば、メモリへの直接アクセスが利用できず、インストールされたオペレーティングシステムを介したアクセスのみが許可され得ることを意味する。
【0007】
個々のユーザは、一般的に、インストールされているオペレーティングシステムの内蔵されたファクトリーリセットプロセスを使用して、アプリケーションデータ、記憶されているファイル、およびユーザ資格情報を含む全てのユーザデータを消去する。スマートフォン等のデバイスの開発者向けのファクトリーリセットプロセスは、どの技術コンソーシアムによっても標準化されておらず、または業界内で正式に合意されているものでもない。例えば、Androidオペレーティングシステムはこれらのプロセスに関するガイドラインを提供するが、電話開発者は必ずしもこれらのガイドラインに拘束されるわけではない。これらのガイドラインは、ファクトリーリセットが選択された際、電話機が実行する基本的なプロセスに関する見識を提供しない。適切なデータ消去を実行する場合もあれば、成功を報告する場合もあるが、電話機の内部のメモリチップ(即ち、eMMCパッケージ)に物理的に記憶されているデータを実際に削除することは殆どない。従って、ユーザが、ファクトリーリセットプロセスがどれほど効果的であるかを確実に知ることは困難である。一方、iOSは、セキュリティプロセスに関するより多くの情報をユーザに提供する。しかしながら、他のモバイルプラットフォームおよび技術に対して同一または類似の問題が存在することになる。
【0008】
既知のファクトリーリセットプロセスには暗号技術の利用が含まれ、ユーザデータを暗号化するために使用される(従ってユーザデータを解読するために必要とされる)暗号キーが消去されることによって、データを暗号的にアクセス不能とする。そのような技術は、デバイスのハードウェアに組み込まれた暗号化を含み、それ故、一旦起動されると、全ての記憶されたデータはデフォルトで暗号化される。全ての記憶されているデータに適用されるこのプロセスは、一般的には不可逆的である。
【0009】
記憶装置に適用される暗号化手法はいくつかの問題を伴う。例えば、最近、ブルートフォースアタックがフルディスク暗号化のAndroidデバイスで成功していることが報告された。一般に、暗号技術は、例えば、技術の予見できない発展を通じて、回避されるかまたは将来的には破綻する可能性がある。研究者およびハッカーによる暗号を破るための継続的な方法論的試みと相まって、これは暗号の安全性に不確実性を生み出す。暗号システムが破綻しているという歴史的な例がある。ユーザの観点からは、デバイスのデータを暗号化することによりデバイスのパフォーマンスに悪影響を及ぼす恐れがある。適用された暗号化の品質、即ちデータの安全性の程度をユーザが判断するのは困難であり得る。更に、ユーザの観点から見ると、デバイスの使用開始時から、データの暗号化がオンになっているか否かを判断するのは困難であり得る。更に、暗号化手法は、以前の暗号化キーを完全かつ効果的に破壊するデバイスに依存している。プロセスによってデータが積極的に削除または上書きされることはない。従って、データが回復可能である故、キーを破壊する際のエラーは潜在的なセキュリティ違反をもたらす。
【0010】
相手先商標製造会社によって実行される他の既知のファクトリーリセットプロセスは、実際に物理的に記憶されたデータを記憶装置から削除することなく、記憶装置上に記憶されたデータを無効にすることによって論理的にデータを削除するステップを含む。別のプロセスは、メモリ装置のユーザデータパーティションのコンテンツを空にするファームウェアコマンドを発行するステップである。しかしながら、ファイルを削除すると、オペレーティングシステムは、一般的に、関連付けられたテーブルからファイル名を削除するだけで、そのコンテンツは削除しない。重大なことに、ユーザは詳細については気付いておらず、ファクトリーリセットプロセスをほとんど制御できない。
【0011】
記憶装置上のデータを消去するための別の既知のプロセスは、記憶されているデータを冗長なコンテンツで上書きすることである。一般的には、記憶装置上のデータは、インタフェースに関連した転送プロトコルを使用してアクセスされる。モバイルデバイスをアドレス指定する場合、転送プロトコルはメディアまたは他のファイルをデバイスに転送するように設計されている。このプロセスに関する顕著な問題として、不完全な上書きがセキュリティ上のリスクをもたらす点が挙げられる。
【発明の概要】
【発明が解決しようとする課題】
【0012】
要約すると、とりわけ、ファクトリーリセットプロセスへの依存から生じる問題を軽減するために、記憶装置上のデータを大規模に消去するための信頼性があり、好ましくはプラットフォームに依存しないプロセスを提供する必要がある。
【課題を解決するための手段】
【0013】
本発明の第1の態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを自動的に消去する方法が提供される。この方法は、メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信するステップと、ファイルベースのプロトコルを使用して、メモリの少なくとも1つの選択された領域にファイルを反復的に書き込むステップとを含み、ファイルのうちの少なくとも1つは受信された信号のうちの少なくとも1つに基づいてサイズ設定され、かつファイルはメモリの少なくとも1つの領域の全てを集合的に占有するように書き込まれる。
【0014】
独立して提供され得る更なる態様では、データ記憶装置の再利用、新規ユーザへの再割り当て、または引退のために、データ記憶装置からファイルベースのプロトコルを使用してデータを消去する方法が提供される。データ記憶装置はメモリを含み、この方法は、メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信するステップと、ファイルベースのプロトコルを使用してメモリの少なくとも1つの選択された領域にファイルを反復的に書き込むステップとを含み、ファイルのうちの少なくとも1つは受信された信号のうちの少なくとも1つに基づいてサイズ設定され、ファイルの反復的な書き込みには、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるようにファイルを順に書き込むステップを含み、ファイルは、メモリの少なくとも1つの選択された領域の全てを集合的に占有するように書き込まれる。任意に、本方法は、更に、前記ファイルの書き込み後に、メモリの前記少なくとも1つの選択された領域が一杯であるという指示を受信するステップと、この指示に応答して、メモリの前記少なくとも1つの領域に少なくとも1つの更なるファイルを書き込むステップとを含む。
【0015】
選択された少なくとも1つの領域は、メモリのユーザパーティションおよび/または装置のオペレーティングシステムおよび/またはファームウェアのための予約されていない実質的に全てのメモリを含むことができる。本方法は、データ記憶装置をデータ消去装置に(例えば、有線または無線接続を介して)接続するステップと、例えばファイルをデータ記憶装置のメモリに書き込むためにデータ消去装置を使用して本方法を実行するステップとを含み得る。データ消去装置は、オペレータ端末、例えばIT資産処分施設のオペレータ端末を含むか、その一部を形成するか、またはそれに接続することができる。
【0016】
指示に応答して、少なくとも1つの更なるファイルを書き込むステップは、指示に応答して複数の更なるファイルを書き込むステップを含むことができ、そのうちの少なくとも一部は選択された異なるサイズを有する。この方法は、少なくとも1つの更なるファイルの書き込みを可能にするために、領域のうちの少なくとも一部を解放するステップを含み得る。少なくとも1つの更なるファイルは、データ記憶装置および/またはメモリに関連する少なくとも1つのバッファまたはキャッシュをフラッシュアウトするように選択されたサイズであり得る。少なくとも1つの更なるファイルは、デバイスおよび/またはメモリに関連する少なくとも1つのバッファまたはキャッシュのサイズに応じて選択されたサイズであり得る。指示は、少なくとも1つの選択された領域が一杯であることを表すかまたはそれに関連し得る任意の好適な指示であり得る。
【0017】
本方法は、更に、検証処理を実行するステップを含み得る。検証処理は、メモリに書き込まれるファイルの生成に使用されるデータセットの少なくとも1つのサブセットを選択するために記憶されたインデックス(単数または複数)を使用して、メモリの選択された領域の少なくとも一部からデータを読み取るステップを含み得る。前記少なくとも1つのサブセットは、前記少なくとも1つの部分に対応する。検証処理は、更に、読み取られたたデータを対応する少なくとも1つのデータのサブセットと比較するステップを含むことができる。
【0018】
メモリに書き込まれるファイルの生成に使用されるデータは、シードを使用して生成されてもよい。検証処理は、シードを使用してデータセットの少なくとも一部を再生成するステップを含み得る。
【0019】
検証処理は、任意に、メモリに書き込まれるファイルの生成に使用されるデータセットの全体を生成することなく、前記記憶されたインデックスおよび前記シードを使用して、データセットのサブセットを再生成するステップ、またはサブセットのうちの選択された1つまたは一部を再生成するステップを含み得る。
【0020】
少なくとも一部、任意に各ファイルは、ランダムに生成されたデータを含むことができる。
【0021】
ファイルのサイズ設定は、ファイルのサイズを選択するステップを含み得る。メモリの少なくとも1つの領域を占有するステップは、メモリの少なくとも1つのメモリ領域を上書きするステップを含み得る。
【0022】
ファイルを反復的に書き込むステップは、更に、受信された1つ以上の信号に基づいて、1つ以上の反復的に書き込まれるファイルのサイズを縮小するステップを含み得る。1つ以上のファイルのサイズを縮小するステップは、連続的により小さいファイルを書き込むステップを含み得る。
【0023】
本方法は、ファイルを順に書き込むステップを含むことができ、シーケンスの少なくとも一部について、前記シーケンスの少なくとも一部の各ファイルは、シーケンスの先行するファイルよりもサイズが小さくてもよい。前記シーケンスの少なくとも一部は、シーケンスの最後の部分を含み得る。
【0024】
本方法は、メモリの少なくとも1つの選択された領域が一杯であることを受信した信号が示すまで、前記1つ以上のファイルのサイズを縮小するステップを含み得る。
【0025】
ファイルサイズは、ファイルシステムバッファの上書きを確実にするように選択されてもよい。
【0026】
1つ以上の信号は、少なくとも1つのファイルを含み得る。1つ以上の信号は、利用可能な空き容量に対する要求に応答して生成されてもよく、受信された信号はそれぞれ利用可能な空き容量を表す各値を含む。利用可能な空き容量に対する要求は、ファイルが書き込まれた後に行われ得る。
【0027】
信号は、ファイルベースのプロトコルおよび/または装置のオペレーティングシステムを使用して生成および/または要求され得る。受信した信号は、更に、データ記憶装置から送信された割り込み信号を含むことができる。
【0028】
本方法は、ファイルの反復的な書き込み前に、初期消去および/または解放処理を実行して、メモリの選択された少なくとも1つの領域からデータを消去し、および/または選択された少なくとも1つの領域を解放してファイルを受信するステップを含むことができる。
【0029】
メモリの選択された少なくとも1つの領域は、ユーザ記憶領域、例えばユーザパーティションを含むことができる。
【0030】
選択された少なくとも1つの領域は、データ記憶装置のユーザが、例えばデータ、プログラム、画像、文書等のユーザ指定のコンテンツを書き込む許可を有するメモリの領域を含むことができる。選択された少なくとも1つの領域は、ユーザが、例えばデータ、プログラム、画像、文書等のユーザ指定のコンテンツを書き込む許可を有するメモリの実質的に全ての領域を含むことができる。選択された少なくとも1つの領域は、データ記憶装置のオペレーティングシステムおよび/またはファームウェア用に予約されていないメモリを含み得る。選択された少なくとも1つの領域は、装置のオペレーティングシステムおよび/またはファームウェア用に予約されていない実質的に全てのメモリを含むことができる。選択された少なくとも1つの領域は、記憶されたコンテンツがユーザによるデバイスの使用によって変化し得る1つ以上の、任意に全ての領域を含むことができる。
【0031】
本方法は、ファイルを生成するステップを含み得る。
【0032】
ファイルを生成するステップは、データセットの複数のサブセットを選択するステップと、各ファイルについて、複数のサブセットのうちの選択された1つを含むようにファイルを生成するステップとを含み得る。
【0033】
サブセットのうちの少なくとも一部は、サブセットのうちの他の少なくとも一部とは異なる場合がある。サブセットはそれぞれ、他の各サブセットと異なり得る。各サブセットは、データセットの隣接部分または重複部分を含み得るか、またはデータセットの別個の部分を含み得る。サブセットのうちの少なくとも一部は、他のサブセットのうちの少なくとも一部とは異なるサイズであり得る。
【0034】
本方法は、サブセットが構成されるデータセットの部分を表すインデックス、例えばポインタを記憶するステップを含むことができる。
【0035】
少なくとも一部、任意に各ファイルは、ランダムに生成されたデータを含むことができる。
【0036】
データセットはランダムに生成されたデータセットを含むことができ、サブセットはランダムに生成されたデータセットの選択された部分を含むことができる。
【0037】
本方法は、ランダムなデータセットを生成するステップを含み得る。反復的に書き込まれるファイルは、生成されたランダムなデータセットのデータのサブセットを含み得る。
【0038】
本方法は、少なくとも1つのシードを使用してデータセットおよび/またはファイルを生成するステップと、少なくとも1つのシードを記憶するステップとを含み得る。
【0039】
本方法は、例えば検証目的のために、少なくとも1つのシードを使用してデータセットおよび/またはファイルを再生成するステップを含み得る。
【0040】
反復的に書き込まれるファイルは、シードおよび記憶された一インデックスまたは記憶された複数のインデックスを使用して再現可能であり得る。この方法は、シードおよび記憶された一インデックスまたは記憶された複数のインデックスを使用して、選択された1つ以上のファイルのうちの少なくとも一部、任意に全てを再作成するステップを含み得る。
【0041】
本方法は、ファイルがメモリに正確に書き込まれたことを検証するため、および/または、メモリの選択された少なくとも1つの領域のほぼ全てが占有されたことを検証するための検証処理を実行するステップを含み得る。
【0042】
検証処理は、
メモリの選択された領域の一部からデータを読み取るステップと、
読み取られたデータと、メモリに書き込まれたファイルに含まれていたデータとを比較するステップと、
を含み得る。
【0043】
本方法は、更に、メモリに書き込まれたファイルに含まれていたデータを検索または再生成するステップを含み得る。
【0044】
本方法は、更に、インデックスおよび/または少なくとも1つのシードを使用してデータを検索または再生成するステップを含み得る。
【0045】
この方法は、更に、前記ファイルの書き込みに続いて、前記メモリの少なくとも1つの領域が一杯であるという指示を受信するステップと、この指示に応答して、前記メモリの少なくとも1つの領域の少なくとも一部を解放し、前記メモリの少なくとも1つの領域に少なくとも1つの更なるファイルを書き込むステップとを含み得る。解放するステップには、任意にファイルベースのプロトコルを使用して、少なくとも1つのファイルを削除するステップおよび/または少なくとも1つのファイルに含まれるデータを削除するステップを含むことができる。
【0046】
解放および更なるファイルの書き込みは、複数回繰り返されてもよい。繰り返しのうちの少なくとも一部については、任意に各繰り返しについて、更なるファイルのサイズおよび/またはコンテンツは異なってもよく、および/またはメモリの異なる部分が解放されてもよい。
【0047】
データ記憶装置は、電話機、スマートフォン、タブレット、ラップトップコンピュータ、デスクトップコンピュータ、携帯用電子機器、音楽機器および/またはビデオ機器のうちの少なくとも1つを含み得る。
【0048】
データ記憶装置は、任意の適切なデバイス、例えば、iOSデバイスまたはAndroidデバイスまたはWindowsデバイスまたはBlackberryデバイスを含むことができる。
【0049】
メモリは、任意の適切なメモリ、例えば、自己暗号化ドライブ(SED)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、不揮発性メモリ、フラッシュメモリ、NANDフラッシュメモリ、ランダムアクセスメモリ(RAM)、3Dクロスポイント、抵抗変化型メモリ(ReRam)、相変化メモリのうちの少なくとも1つを含み得るがこれらに限定されない。
【0050】
この方法は、インタフェースを介して装置および/またはメモリにファイルを提供するステップを含むことができ、インタフェースは、任意の適切なインタフェースプロトコルまたはインタフェース規格、例えばシリアルATA(SATA)、パラレルATA(PATA)、スモールコンピュータシステムインターフェイス(SCSI)、シリアルアタッチドSCSI(SAS)、ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCI ExpressまたはPCIe)、不揮発性メモリエクスプレス(NVM ExpressまたはNVMe)、ユニバーサルフラッシュストレージ(UFS)、マルチメディアカード(MMC)およびRS-MMC、MD-MMC、DV-MMC、MMCplus、MMCmobile、SecureMMC、eMMCを含むMMCの変形並びにセキュアデジタルおよびSDIO、SD、miniSD、microSDを含むセキュアデジタルの変形のうちの少なくとも1つに従って動作することができる。
【0051】
各ファイルは、最大ファイルサイズと最小ファイルサイズとの間のサイズであり得る。
【0052】
最大ファイルサイズは、1MB~100MBの間の範囲、任意に5MB~20MBの間、任意に実質的には10MBに等しい範囲とすることができる。
【0053】
最小ファイルサイズは、100バイト未満、任意に10バイト未満、任意に3バイト、2バイトまたは1バイトであり得る。
【0054】
この方法は、装置および/またはメモリの性質またはアイデンティティ、および/または装置および/またはメモリのオペレーティングシステムの性質またはアイデンティティ、および/またはメモリのサイズまたはメモリの選択された少なくとも1つの領域のうちの少なくとも一つに応じて、最大ファイルサイズおよび/または最小ファイルサイズを選択するステップを含むことができる。
【0055】
独立して提供され得る更なる態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するためのシステムが提供される。このシステムは、
データ記憶装置と、
データ消去装置であって、
メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信し、
ファイルベースのプロトコルを使用して、ファイルをメモリの少なくとも1つの選択された領域に反復的に書き込むように構成された処理リソースを含むデータ消去装置と、
を含み、ファイルのうちの少なくとも1つは受信された信号のうちの少なくとも1つに基づいてサイズ設定され、またファイルはメモリの少なくとも1つの領域の全てを集合的に占有するように書き込まれる。
【0056】
独立して提供され得る別の態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するように構成されたデータ消去装置が提供され、
データ消去装置は、
メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信し、
ファイルベースのプロトコルを使用してファイルをメモリの少なくとも1つの選択された領域に反復的に書き込むように構成された処理リソースを含み、ファイルのうちの少なくとも1つは受信された信号のうちの少なくとも1つに基づいてサイズ設定され、またファイルはメモリの少なくとも1つの領域の全てを集合的に占有するように書き込まれる。
【0057】
独立して提供され得る別の態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するためのシステムが提供され、このシステムは、
データ記憶装置と、
データ消去装置であって、
メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信し、
ファイルベースのプロトコルを使用して、ファイルをメモリの少なくとも1つの選択された領域に反復的に書き込むように構成された処理リソースを含むデータ消去装置と、を備え、
ファイルのうちの少なくとも1つは、受信された信号のうちの少なくとも1つに基づいてサイズ設定され、またファイルの反復的な書き込みは、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるようにファイルを順に書き込むステップを含み、
ファイルは、メモリの少なくとも1つの選択された領域の全てを集合的に占有するように書き込まれ、
この方法は、更に、前記ファイルの書き込みに続いて、前記メモリの少なくとも1つの選択された領域が一杯であるという指示を受信するステップと、その指示に応答して、前記メモリの少なくとも1つの領域に少なくとも1つの更なるファイルを書き込むステップとを含む。
【0058】
独立して提供され得る更なる態様では、ファイルベースのプロトコルを使用して、メモリを備えるデータ記憶装置からデータを消去するように構成されたデータ消去装置が提供され、
データ消去装置は、
メモリの少なくとも1つの選択された領域の利用可能な空き容量を表す1つ以上の信号を受信し、
ファイルベースのプロトコルを使用して、メモリの少なくとも1つの選択された領域にファイルを反復的に書き込むように構成された処理リソースを含み、
ファイルのうちの少なくとも1つは、受信された信号のうちの少なくとも1つに基づいてサイズ設定され、またファイルの反復的な書き込みは、シーケンスの少なくとも一部について、各ファイルがシーケンスの先行するファイルよりもサイズが小さくなるようにファイルを順に書き込むステップを含み、
ファイルは、メモリの少なくとも1つの選択された領域の全てを集合的に占有するように書き込まれ、
この方法は、更に、前記ファイルの書き込みに続いて、前記メモリの少なくとも1つの選択された領域が一杯であるという指示を受信するステップと、その指示に応答して、前記メモリの少なくとも1つの領域に少なくとも1つの更なるファイルを書き込むステップとを含む。
【0059】
別の態様では、本明細書に請求または記載されている方法を実行するために実行可能なコンピュータ可読命令を含むコンピュータプログラム製品が提供される。
【0060】
一態様における特徴は、他の態様における特徴として任意の適切な組み合わせで適用され得る。例えば、システムまたは装置の特徴は方法的特性として適用することができ、またその逆も可能である。
【0061】
次に、本発明の様々な態様を、添付の図面を参照しながら、単なる例示として説明する。
【図面の簡単な説明】
【0062】
【
図1】
図1A及び
図1Bは、データ記憶装置と通信するデータ消去装置の概略図である。
【
図3】メモリの複数のメモリアドレス内に記憶されたデータを示す説明図である。
【発明を実施するための形態】
【0063】
特定の実施形態は、ファイルベースの転送プロトコルへのアクセスをサポートして、全ての利用可能な容量が上書きされる可能性を最大化することができる、デバイスのストレージを上書きする方法に関する。いくつかの実施形態によれば、消去後にオペレーティングシステムがデバイス上に保持される。
【0064】
最初に
図1Aを参照すると、データ記憶装置10およびデータ消去装置20が示されている。データ記憶装置10およびデータ消去装置20は、ファイルベースの転送プロトコルに従って、インタフェース30を介して、その間のデータを転送するように構成されている。データ記憶装置は、例えば、モバイルスマートフォンまたはタブレット、あるいは他の任意の適切なデータ記憶装置であり得る。ファイルベースの転送プロトコルは、論理ファイルレベルで動作し、例えば、メディア転送プロトコル(MTP)、画像転送プロトコル(PTP)、Apple File Conduit(AFC)、およびUSBマスストレージであり得る。使用されるファイルベースの転送プロトコルは、特定のデータ記憶装置10またはデータ記憶装置の種類に依存する。
【0065】
データ記憶装置10およびデータ消去装置20を
図1Bに更に詳細に示す。データ消去装置20は
図1Aおよび
図1Bでは単一の装置として表されているが、実際には、データ消去装置20は、以下に記載するように、データ消去装置20の機能を集合的に実行することができる複数の分散した別個の装置を含むことができる。また、データ消去装置20は、データ記憶装置10に隣接して配置されてもよく、またはデータ記憶装置10から離れて配置されてもよい。
【0066】
図1Bに示すように、データ記憶装置10は、データ記憶用のメモリ12と、データ記憶およびデータ消去動作を実行するためのソフトウェア、例えばファームウェア14と、インタフェース30を介してデータ消去装置20と通信するための送受信機16と、プロセッサ18とを含む。
図1Bには示されていないが、データ記憶装置10は、メモリ12に書き込まれるデータを圧縮するための、またはメモリ12から読み込まれたデータを解凍するためのデータ圧縮機能を含むことができることを理解されたい。同様に、
図1Bには示されていないが、データ記憶装置10は、異なる時間に異なる物理メモリアドレスにデータを分配することによって、メモリ12の寿命を延ばすためのウェアレベリング機能を含むことができることを理解されたい。データ記憶装置10のメモリ12は、自己暗号化ドライブ(SED)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、不揮発性メモリ、フラッシュメモリ、NANDフラッシュメモリおよびランダムアクセスメモリ(RAM)のうちの少なくとも1つを含むか、または少なくとも1つであり得る。
【0067】
インタフェース30は、インタフェース規格、例えばシリアルATA(SATA)、パラレルATA(PATA)、スモールコンピュータシステムインターフェイス(SCSI)、シリアルアタッチドSCSI(SAS)、ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインターコネクトエクスプレス(PCI ExpressまたはPCIe)、不揮発性メモリエクスプレス(NVM ExpressまたはNVMe)、ユニバーサルフラッシュストレージ(UFS)、マルチメディアカード(MMC)およびRS-MMC、MD-MMC、DV-MMC、MMCplus、MMCmobile、SecureMMC、eMMCを含むMMCの変形並びにセキュアデジタルおよびSDIO、SD、miniSD、microSDを含むセキュアデジタルの変形のうちの少なくとも1つに従って動作することができる。
【0068】
図1Bにより詳細に示されるように、データ消去装置20は、プロセッサ22、メモリ24、送受信機26、およびユーザインタフェース28を含む。データ消去装置20は、サーバ、コンピュータ、およびラップトップのうちの少なくとも1つを含むか、または少なくとも1つであり得る。コンピュータ実行可能命令を含むホストアプリケーション29はメモリ24に記憶され、プロセッサ22によって実行されると、データ消去装置20に
図2に示すデータ消去方法100を実行させる。
【0069】
あるいは、ホストアプリケーションのコンピュータ実行可能命令29を、インタフェース30を介してデータ記憶装置10に転送し、データ記憶装置10のメモリ12に記憶することができる。この場合、プロセッサ18は、データ記憶装置10上にてコンピュータ実行可能命令29を実行することができる。有利なことに、インタフェース30を介してデータ消去装置20とデータ記憶装置10との間で転送されるデータの容量、および必要な帯域幅は、減少および/または最小化される。これは、同じデータ消去装置20に接続された複数のデータ記憶装置を処理する際に特に重要である。例えば、このアプローチは、Androidオペレーティングシステムを実行するデータ記憶装置に適しているかもしれない。消去プロセスが完了すると、例えばプラットフォームパッケージマネージャを使用してアプリケーションを削除することができる。Androidオペレーティングシステムでは、アプリケーションは、「packetmanager clear」コマンドを使用してAndroid Debug Bridge(adb)を介して削除することができる。
【0070】
更なる代替として、ファイル処理は、データ消去装置20とデータ記憶装置10にインストールされたアプリケーションとの両方によって実行されてもよい。
【0071】
図2の方法は、データ消去装置のホストアプリケーションの第1のアプローチを参照して説明されている。しかしながら、データ記憶装置10のホストアプリケーションを伴うアプローチも同様に実施できることは明白なはずである。
【0072】
図2は、自動データ消去方法100を概略的に示すフローチャートである。方法100は反復的である。最初に初期消去が実行されるか、または既に実行されており、可能な全てのメモリを解放する。WinPhoneおよびiOSでは、これはファクトリーリセット/再フラッシュにより実行され、代替的には、Androidにより全てのアプリケーション、パッケージ、およびユーザアカウントを消去する。ステップ102は、続いて実行される初期化ステップである。このステップは、データ記憶装置10およびデータ消去装置20が初期情報、例えばシステム構成情報を転送することができる処理を伴う。システム構成情報は、インタフェース30を介してデータ記憶装置10からデータ消去装置20に転送される。転送される情報は、データ記憶装置10上で動作しているオペレーティングシステムに関する詳細を含み得る。更に、メモリ12の全量がデータ消去装置に送信される。この段階で、メモリ12上の利用可能な容量のサイズについて要求を出すことができる。
【0073】
ステップ104において、ホストアプリケーションは転送されるファイルを作成する。ファイルが作成され、ランダム化されたデータが格納される。ランダムデータファイルを作成するために、任意の乱数発生器を使用することができる。好ましくは、確定論的乱数発生器、例えば擬似乱数発生器(PRNG)を使用することができる。この場合、ファイルを生成するために少なくとも1つのシードが乱数発生器に供給される。Qtの実装形態では、Qt関数Qrandを使用することができる。更に、ファイルは特別な構造や関連するメタデータを有さない。ホストアプリケーションは、固有のハンドルファイル名およびファイルサイズに関する情報を使用して、個々のファイルを追跡および識別するためにファイルハンドルを使用する。代替的な実施形態では、任意の他の適切な乱数発生プロセスおよび/またはファイル処理プロセスを使用することができる。
【0074】
あるいは、ファイルは、データ消去装置20のメモリ24に記憶されたより大きなデータセットからデータのサブセットを選択することによって作成されてもよい。例えば、作成されるファイルのサイズよりも大きい、ランダムデータで充填された転送バッファが、初期化ステップ102の間に、データ消去装置20のメモリ24に作成される。ステップ104は、転送バッファのサブセクションを選択するステップと、選択されたサブセクションを使用してファイルを作成するステップとを含む。ファイルは、後述するように、ファイルバッファのサブセクションをコピーすることによって作成される。
【0075】
後でより詳細に説明されるように、ステップ104は、作成された各ファイルに対する参照インデックスを記録するステップを任意に含み得る。参照インデックスは、作成されたファイルを識別する転送バッファ内の位置を表す。参照インデックスは、ファイルが作成された転送バッファ内の位置を示す。従って、参照インデックスはポインタとして機能する。参照インデックスは、転送バッファのアドレスのオフセットであり得る。例えば、参照インデックスは、作成されたファイルにコピーされた選択されたサブセクションの開始点に対応し得る。しかしながら、参照インデックスは、ファイルの任意の部分を指すことができる。ステップ104は、作成されたファイルを後で再作成するために、生成されたファイルに対する1つ以上の参照インデックスを記憶するステップも含み得る。
【0076】
作成されたファイルは、転送ファイルサイズの値に設定されたサイズを有する。転送ファイルサイズの値は、最初はファイルサイズの初期値と同じである。ファイルサイズの初期値は任意の値とすることができ、消去されるデバイスによる。ファイルサイズの初期値は、様々な方法で決定することができる。例えば、ユーザは、ユーザインタフェース28を介してファイルサイズの初期値を設定することができる。あるいは、ファイルサイズの初期値は、1つ以上の異なるタイプのデータ記憶装置のどれが処理されているかに応じて、および/またはどのオペレーティングシステムがデバイスで実行されているかに応じて設定することができる。例えば、iOSを実行している電話機の場合、Androidを実行している電話機とは異なるファイルサイズの初期値を有し得る。この情報は、例えばルックアップテーブルに記憶することができる。方法100が進むにつれて、転送ファイルサイズの値は変化する。
【0077】
様々なファイルサイズの初期値を試験した。WindowsデバイスおよびiOSデバイスの場合、初期ファイルサイズは10MBである。この文脈では、MBは2^20バイトである。試験の結果、このファイルサイズの初期値は最も速い消去プロセスを提供し、ファイルが小さいと処理が長くなり、またファイルが大きいと速度が向上しないことが判明した。Androidデバイスの場合、初期ファイルサイズを100MBとして選択する。
【0078】
プロセス100の次のステップは、作成されたファイルをデータ記憶装置10に転送するステップを伴うステップ106である。ファイル転送プロトコルを使用して、データ消去装置20からインタフェース30を介してファイルを転送する。このステップは、データ記憶装置10によりファイルを受信するステップと、プロセッサ18によりファームウェア14を介してメモリ12にファイルを書き込むステップとを含む。転送プロトコルは、ファイルと共に追加の情報を転送することができる。例えば、少なくとも1つのヘッダおよび/またはフッタおよび/または追加のメタデータが転送される。この追加情報は転送中にのみ使用され、メモリには書き込まれない。
【0079】
ファイル転送に続いて、メモリ12上の利用可能な容量を求める要求108がホストアプリケーションによって行われる。この要求は、データ消去装置20からデータ記憶装置10へインタフェース30を介して送信される信号を含む。ファームウェア14を介して、プロセッサ18によりメモリ12上の利用可能な容量をチェックする。メモリ12内の利用可能な空き容量を示す値を含む応答信号が、データ記憶装置10からホストアプリケーション29に送信される。応答信号はデータ消去装置20によって受信される。
【0080】
利用可能な空き容量は、消去プロセス中に書き込まれたデータの累積サイズとプロセス開始時の総アクセス可能容量とを使用して計算される。この計算の精度は、使用されるデバイスおよびプロトコルの特定の実装から生じる最小サイズの解像度によって制限される可能性がある。
【0081】
任意に、例えば閾値、例えば予め設定された閾値に到達した場合、または信号がデータ記憶装置10から受信された場合等、トリガイベントの後にのみ要求が送信されてもよい。一例として、初期化ステップ102において交換された総メモリ値および空きメモリ値を使用して閾値を設定することができる。従って、転送された全てのファイルの合計サイズが閾値に達するか、または閾値より大きい場合、データ消去装置20は、ステップ108にて、利用可能な容量値の要求を開始することができる。有利なことに、これは、転送される全ファイルの合計サイズがメモリ12のサイズに近づくときにのみ発生する要求ステップを制限する。あるいは、トリガイベントは、データ消去装置20に利用可能な容量が少なくなっていることを知らせるデータ記憶装置10から送信される信号であり得る。
【0082】
いくつかの実施形態では、残りの空き容量についてのクエリは、各書き込み操作後に送信される。
【0083】
要求ステップ108に続いて、データ消去装置20のプロセッサ22によって処理ステップ110が実行される。処理ステップは、合計サイズ転送値をアップデートするステップを含む。処理ステップはまた、利用可能な容量信号を処理するステップも含む。利用可能な容量信号を処理するステップは、利用可能な容量値を抽出するステップと、利用可能な容量値を既に転送されたファイルの合計サイズと比較して、メモリが一杯であるか否かの指示を提供するステップとを伴う。処理ステップ110はまた、現在のファイル転送サイズをメモリ12の利用可能な容量と比較して、現在のファイル転送サイズを有する更なるファイルが転送されるのに十分な容量があるか否かを示すステップも含む。現在のファイル転送サイズをメモリ12の利用可能な容量と比較するステップは、メモリが一杯でない場合にのみ実行され得る。
【0084】
比較結果に応じて、処理ステップ110に対する3つの結果が考えられる。
【0085】
第1の結果はメモリが一杯である場合に生じ、この場合、方法100はステップ112に進む。
【0086】
2番目の結果はメモリが一杯ではなく、現在のファイル転送サイズを有する更なるファイルを転送するのに十分な容量がある場合に発生する。この場合、本方法はステップ104に戻り、現在のファイル転送サイズと等しいサイズを有する新規のファイルを生成する。続いて、方法100は反復的に進行する。
【0087】
3番目の結果はメモリが一杯ではなく、現在のファイル転送サイズを有する更なるファイルを転送するのに十分な容量がない場合に生じ、この場合、ファイル転送サイズの値はより小さいファイル転送サイズの値にアップデートされる。この場合、本方法はステップ104に戻り、新しいファイル転送サイズと等しいサイズを有する縮小ファイルを生成する。
【0088】
いくつかの実施形態では、デバイスによって返される利用可能な空き容量の値が現在のファイル転送サイズ値よりも小さい場合、転送サイズの値はデバイスによって返される利用可能な空き容量の値に等しくなるように設定される。このサイズのファイルを転送した後、ファイル転送サイズ値はより小さいファイル転送サイズ値にアップデートされる。いくつかの実施形態では、利用可能な空き容量に等しいサイズを有するファイルの転送後に利用可能な容量を埋めるために必要とされる、反復的により小さいファイルの数は、約20であり得る。
【0089】
いくつかの実施形態では、満杯になるデバイスの応答時間が遅いことに起因して、利用可能な容量の要求が時々タイムアウトになることがある。タイムアウトは装置によって登録することができる。タイムアウトの場合には、同じファイル転送サイズまたはより小さいファイル転送サイズの更なるファイルが装置によって送信され、続いて利用可能な容量についての更なる要求が送信されてもよい。タイムアウト後、行動は信頼できないかもしれない。いくつかの実施形態では、タイムアウトに続いて、少なくとも部分的に、デバイスをリセットし、および/または消去プロセスを再開するように、フェイルセーフモードが実行されてもよい。
【0090】
プロセッサステップ110はデータ消去装置のプロセッサ22上でのみ生じるように説明されているが、代替的な実施形態も可能である。例えば、現在のファイル転送サイズと、メモリ12上の利用可能な容量との比較は、データ記憶装置のプロセッサ18上で生じてもよい。
【0091】
あるいは、現在のファイル転送サイズを有する更なるファイルを転送するのに十分な容量がないとの表示は、データ記憶装置10からデータ消去装置20に送信される割り込み信号の形態でもよい。割り込み信号はホストアプリケーションによって送信される。割り込み信号は、ファイルの書き込みを試みた後、即ちステップ106の後かつステップ108の前に送信することができる。この場合、割り込み信号は処理ステップ110の一部として受信され処理される。こうした割り込みの一例として、Androidオペレーティングシステムを実行し、メディア転送プロトコルを使用して、別個のUSBチャネルを介してデータ消去装置に割り込み信号を送信するデバイスの割り込みが挙げられる。
【0092】
方法100は反復的である。ファイルベースの転送プロトコルのおかげで、後に書き込まれるファイルは重複しない。反復的な方法100は、全ての利用可能なメモリ容量を満たす。
【0093】
1つのファイルのメモリへの書き込みとは対照的に、反復的にファイルを書き込むことにより、転送されるバイト数を低減させるという利点を提供し、かつジャーナリングファイルシステムに独自に割り当てられたバッファを上書きさせることができる。更に、複数のファイルを書き込むことで、オーバープロビジョニングがより効果的になる。
【0094】
最後の反復は、最小ファイル転送サイズのファイルを転送するステップを伴い得る。最小転送ファイルサイズは、シングルバイトまたは任意の他の適切な最小サイズに等しくてもよい。このサイズのファイルをメモリ12に転送することができない場合、本方法はステップ112に進む。反復的方法100は、メモリ12のアドレス指定可能な容量全体が上書きされ、それによって、メモリ12の以前のコンテンツが全てアクセス不能となり、従って消去されたことを確実にすることができる。
【0095】
データ記憶装置10は、要求された信号または割込み信号のいずれかを介して利用可能な容量がゼロであることを最初に報告し得るが、それでもなお実際にはいくらかのデータを受け入れることができる。これは、利用可能な容量の計算がデバイスの解像度によって制限されている状況で発生し得る。簡単な例として、デバイスが残り511バイトを有しているが、ブロックサイズが512バイトである例が挙げられる。実装されているデバイスおよびプロトコルに応じて、デバイスからの信号は、この状況では0バイトの空きがあることを示し得る。従って、この状況では、511バイトの空きがあっても、信号は利用可能な容量がないと反映し得る。従って、いくつかの実施形態では、メモリが一杯であることが示されていても、本方法は最初の拒絶後に停止せず、更なるファイル書き込み動作を実行し得る。試験により、満杯であると報告された一部のデバイスがより多くのデータを受け入れ続けることを示した。
【0096】
本方法100の追加の任意のステップ(図示せず)は、ステップ112の後に行われる。このステップにおいて、メモリ12の一部は、方法100を用いて書き換えられるようにマークされる。この部分は設定サイズ、例えば100MBとすることができる。ファイル転送プロトコルを使用して1つ以上のファイルを削除することによってその部分を解放することができ、ファイル書き込みプロセスが再度やり直される。
【0097】
メモリの一部への書き換えにより、一部のファイルがメモリに完全に書き込まれず、代わりに転送バッファ、他のバッファ、またはキャッシュに保持されるリスクを低減することができる。例えば、実際に容量が利用可能であった場合に、割り込み信号によりファイルがメモリに完全に書き込まれるのを防ぐことができる。これにより、メモリ内の全てのデータが上書きされるわけではなく、従って一部のデータが回復可能であり得る故、セキュリティ上のリスクをもたらす。また、ホストアプリケーションに直接アクセスできないオーバープロビジョニング領域が存在する可能性がある。また、デバイス内のファイルシステムがブロック当たり1つのファイルしか許可しないというリスクもある(例えば、512バイトごとに1つのファイルのみ)。プロセス100を繰り返すことによって、これらのリスクは軽減され得る。この方法でデータを書き込み続けると、メモリ容量領域を使用中にするか、または少なくともこの挙動が促進され得る。プロセス100は、データの異なるマーク付けされた部分に対して複数回繰り返すことができる。これにより、確実に可能な限り多くのデータがメモリ12に書き込まれ、かつ、いかなるキャッシュもデバイスにフラッシュされる。例えば、解放および書き換えは、設定された回数だけ繰り返すことができ、または反復の回数は、全ストレージのうちの特定の割合(例えば、25%)が書き換えられるように計算することができる。
【0098】
ファイル転送プロトコルを介してファイルを転送することにより、デバイスおよび/またはファイル転送プロトコルの性質および/またはメモリまたはデバイスにおける何らかの障害によっては、予期しない動作が発生する可能性がある。従って、インタフェースを介して送信されるデータが実際にメモリ12に書き込まれていることを確実にするために追加のステップが必要となる場合がある。
【0099】
そのような追加の検証ステップをプロセス100に追加することができる。いくつかの実施形態では、検証は転送される一組の固有ファイルの作成に基づくことができる。転送ファイルの固有性により、転送ファイルの検証が可能となる。固有ファイルを作成するための一アプローチとして、ランダムファイルを作成するために使用されるメモリ24内に作成された転送バッファが、メモリ12を満たすのに十分な数の固有ファイルを作成するのに十分に大きいサイズであることを保証するアプローチが挙げられる。転送バッファのサイズは、ターゲットメモリのサイズに依存する。例えば、大きな転送ファイルのサイズは、メモリ12のサイズに初期転送ファイルサイズを加えて、初期転送ファイルサイズで割ったサイズに等しく設定してもよい。上記の例では、初期転送ファイルサイズは10MBである。これにより、ファイルバッファから作成され、メモリに書き込まれる各ファイルが、デバイスの観点から見て以前に作成し、書き込まれたファイルとは異なることが保証される。その場合、ファイルバッファは、メモリ12を完全に一杯にする一組の固有ファイルを作成するのに十分な大きさである。
【0100】
ランダムなデータを格納された転送バッファファイル200の部分説明図である。ファイルサイズを有する作成ファイル202の一例を概説する。作成ファイル202は、転送バッファファイル200のサブセクションの選択を含む。作成ファイル202のコンテンツは、開始点204と終了点206とを有する。作成ファイルのコンテンツは、開始点204と終了点206との間のサイズを有する。
【0101】
作成ファイルの選択されたサブセクションは、周期的な境界を有することができる。ファイルが完全に作成される前に転送バッファの終わりに達した場合、ステップ104は転送バッファの先頭からデータを取り始める。換言すると、終了点206ではない選択されたサブセクションのバイトが転送バッファの最後のバイトと一致する場合、作成ファイルに使用される次のバイトは転送バッファの最初のバイトと一致する。説明的な例として、12バイトのサイズの大きいバッファは、[ABCDEFGHIJKL]として表される。ファイル転送サイズが5バイトの場合、[ABCDE]、[BCDEF]、[CDEFG]、[DEFGH]、[EFGHI]、[FGHIJ]、[GHIJK]、[HIJKL]、[IJKLA]、[JKLAB]、[KLABC]、および[LABCD]に対応して作成することができる固有の単一ファイルが12個ある。例示的な例は、1バイトの増分を有する。有利には、増分は、データ記憶装置10による同様のデータを含むファイルの識別を防ぐための小さな素数である。
【0102】
図3に戻ると、開始点204はファイル202の参照インデックスを示す。参照インデックス204により、ファイルを転送バッファから再作成することができる。全ての転送ファイルの参照インデックスを記憶することにより、全ての転送されたファイルを後に転送バッファから再作成することができる。
【0103】
図4は、
図1の方法100の完了後に実施することができる検証プロセス400を示す。検証プロセス400は、ステップ104の間に生成されたファイルの参照インデックスが上述したように記憶されることを必要とし、また、このプロセスは、転送バッファを生成するために使用される転送バッファまたはランダムシードへのアクセスも必要とする。併せて、作成されたファイルの記憶された参照インデックスおよび記憶されたランダムシードにより、実際の転送バッファを参照せずに全ての作成ファイルを再作成することができる。有利なことに、これにより、転送バッファ自体を記憶する必要がない故に、検証プロセスのために記憶される必要があるデータ量を減少させる。
【0104】
ステップ404において、メモリ12のチェック部分を検索する要求がデータ記憶装置10に送信される。要求はチェック部分識別子を含む。要求は、インタフェース30を介してデータ消去装置20から送信される。チェック部分識別子を使用して、プロセッサ18によりファームウェア14を介してメモリのチェック部分を探し出して検索する。チェック部分のコンテンツは、検証のためにインタフェース30を介してデータ消去装置20に返される。
【0105】
ステップ404は、ファイルレベルまたは物理メモリレベルへの直接アクセスで実施することができる。ファイルレベルにて動作する場合、チェック部分識別子はファイル名または他の適切なファイル識別子であり得、要求はファイルベースの転送プロトコルを使用して送信され得る。次に、プロセッサ18はファイルを検索し、ファイルベースの転送プロトコルを介してファイルをデータ消去装置に返す。
【0106】
あるいは、メモリへの直接アクセスを使用して、チェック部分識別子は、物理メモリ内のチェック部分の開始点に対応する値およびチェック部分サイズを含み得る。チェック部分サイズ値は、一定サイズでも可変でもよく、例えば、各チェック部分の開始点は関連するチェック部分サイズを有することができる。ファームウェア14を介してプロセッサ18は、チェック部分の開始点を探し出し、チェック部分サイズ値に等しいサイズを有する、チェック部分サイズから始まるメモリ12のコンテンツをコピーする。そのコンテンツは、インタフェース30を介してデータ消去装置20に返される。
【0107】
検証プロセスは、メモリ12のコンテンツのサブセットのみが検証される部分検証プロセスであり得る。この場合、チェック部分識別子の集合体が生成される。チェック部分識別子の集合体はランダムに生成されてもよい。完全な検証のためには、アクセス可能なメモリ12の全てのコンテンツが検証されなければならない。この場合、チェック部分識別子の集合体は、検索されたチェック部分がメモリ12全体に及ぶように選択されなければならない。ファイルベースの実施形態では、全てのファイルが検索されなければならない。直接アクセスによる埋め込みでは、チェック部分の開始点およびチェック部分の長さは、メモリのコンテンツ全体に及ぶように選択しなければならない。
【0108】
ステップ406にて、検索されたチェック部分に対応する転送バッファファイルの部分が、記憶されている参照インデックスを使用して再作成される。これは様々な方法で実施することができる。
【0109】
ファイルベースの転送の実施においては、ファイル識別子に対応する記憶された参照インデックスを検索することができる。参照インデックスを使用して、転送バッファの関連部分を選択し検索することができる。
【0110】
直接メモリアクセスの実施形態では、関連部分は、チェック部分の開始点、チェック部分の開始長さ、および参照インデックスを使用して検索される。
【0111】
再作成部分は、転送バッファ全体から、または転送バッファの一部から生成することができる。例えば、転送バッファが方法100に従ってメモリ内に保持されている場合、転送バッファの関連部分は記憶されている参照インデックスを使用して再作成することができる。あるいは、転送バッファが方法100に従ってデータ消去装置20のメモリ24に保持されていない場合、記憶されたランダムシードを使用してコピーをメモリ24に再作成し、転送バッファの関連部分はチェック部分の開始点を使用して検索することができる。
【0112】
ステップ408にて、検索されたチェック部分のコンテンツと再作成部分のコンテンツとが比較される。比較が成功すると両方の部分のコンテンツが一致し、その比較結果が記憶される。チェック部分のコンテンツが対応する再作成部分のコンテンツと一致しない場合、メモリ12の上書きされていない領域が見つかる。
【0113】
ステップ410は、検査すべき更なるチェック部分があるか否かに基づいて、更なる部分の比較が行われるべきか否かを判定する。更なる比較がなされるべきである場合、本方法はステップ404に戻り、そこで次のチェック部分が読み取られる。更なる部分を比較する必要がない場合、プロセスはステップ412に続く。一実施形態では、ステップ408にて比較が不成功であった場合の後、チェック部分の更なる比較を行わないと決定して、プロセスがステップ412に進む。
【0114】
ステップ412は、記憶された比較結果を調査する。全ての比較が成功した場合、検証プロセスの肯定的な結果に対応する、メモリ12の上書きされていない領域は見つからなかった。少なくとも1つの比較が成功しなかった場合、検証プロセスの否定的な結果に対応する、メモリ12の少なくとも1つの上書きされていない領域が発見された。
【0115】
図4の検証プロセスは、上書きされる全てのデバイスが検証されるわけではない処理環境で実施され得る。そのような環境では、消去プロセスは高いスループットを有することができる。検証プロセスは、シードのみを記憶する必要がある故、各デバイスのための各転送バッファを記憶するための関連する記憶要件なしにデバイスを検証する手法を提供する。ファイルバッファのランダムデータは記憶される必要はなく、ホストは要求に応じてランダムデータを再作成することができる。更に、参照インデックスが記憶される。ターゲットメモリの全てのコンテンツを比較する記憶された参照インデックスを使用することで検証をより速めることができる。後に転送バッファを再作成することができる能力はまた、消去ステーションとは異なる物理的位置での検証を実行可能にする。
【0116】
処理環境では、上書き処理の直後に
図4の検証処理を実施することができる。代替的な実施形態では、デバイスはランダムに選択され、主生産ラインから離れて検証される。
【0117】
プロセス400の実施例を、デバイス上の64GBのメモリの消去に関連して説明する。ファイル転送バッファは、固有の転送ファイルのセットを提供するために少なくとも10Mb+6400バイトである必要がある。上書き処理に続いて、100個のランダムに選択されたチェック部分開始点および例えば1kBのチェック長を用いて、部分検証プロセスを実施することができる。従って、それぞれが1kBのサイズを有する100個のチェック部分が、64GBのメモリからデータ消去装置によって検索される。記憶されたシードを使用して、ファイル転送バッファのコピーを生成することができ、記憶された参照インデックスを使用して、100個のチェック部分に対応した転送バッファの部分を再作成することができる。この100個の再作成された部分の集合体は、転送プロセスが成功したことを検証するために100個の検索されたチェック部分と比較される。
【0118】
当業者は、本発明から逸脱することなく、含まれる構成の変形形態が可能であることを理解するであろう。例えば、作成されたファイルおよび転送バッファはランダム化されたデータを格納されるものとして説明したが、ファイルおよび/または転送バッファを書き込むために代替データパターンを生成し使用することができる。このような代替データパターンには、0xFFや0x00等の繰り返しバイトパターンが含まれる。更に、検証プロセスのステップは、上書きプロセス中に実施することができる。非限定的な例として、書き込まれたファイルは、書き込まれた直後に、および/またはメモリが満杯であると報告する前の任意の時点で検証されてもよい。従って、特定の実施形態の上記の説明は単なる例示であり、限定を目的としたものではない。記載された動作に大きな変更を加えることなく、僅かな修正を加えることができることは当業者には明らかであろう。