(57)【要約】【課題】  目的に応じてデータを処理できるストレージ装置を提供すること。【解決手段】  実施形態によれば、暗号化されていないユーザデータを記憶するストレージ装置は少なくとも１つのデータ消去方式を備える。ストレージ装置は、ホスト装置から問い合わせを受信する手段と、問い合わせを受信すると、少なくとも１つのデータ消去方式を表す応答情報をホスト装置に送信する手段と、を具備する。【選択図】図５Ａ
2019057165.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されていないユーザデータを記憶し、少なくとも１つの消去方式を備えるストレージ装置であって、
ホスト装置から問い合わせを受信する受信手段と、
前記問い合わせを受信すると、前記少なくとも１つの消去方式を表す応答情報を前記ホスト装置に送信する手段と、
を具備するストレージ装置。
【請求項２】
前記受信手段は、前記ホスト装置の電源オン時またはブート時に前記問い合わせを受信する請求項１記載のストレージ装置。
【請求項３】
前記受信手段が前記応答情報の送信後に前記ホスト装置から消去方式を指定する指定情報を受信すると、前記ホスト装置が前記指定情報の発行権限を有するか否かを判定し、前記ホスト装置が前記指定情報の発行権限を有する場合、前記受信手段に前記消去方式を受信させる第１認証手段をさらに具備する請求項１記載のストレージ装置。
【請求項４】
前記ホスト装置から消去指示を受信すると、前記ホスト装置が前記消去指示の発行権限を有するか否かを判定し、前記ホスト装置が前記消去指示の発行権限を有すると判定すると前記第１認証手段が受信した前記消去方式で前記消去指示を実行させる第２認証手段をさらに具備する請求項３記載のストレージ装置。
【請求項５】
個人識別情報を設定する設定手段と、
前記設定手段により設定された前記個人識別情報を初期値に戻す初期化手段と、を具備し、
前記個人識別情報は少なくとも第１個人に関する第１識別情報と第２個人に関する第２識別情報と、をさらに具備し、
前記消去指示は前記設定手段により設定された前記個人識別情報を初期値に戻すことも含み、
前記消去指示は消去するデータと初期値に戻す前記個人識別情報が異なる少なくとも第１指示と第２指示とを具備し、
前記第１指示の発行権限と前記第２指示の発行権限は異なる請求項４記載のストレージ装置。
【請求項６】
前記受信手段が前記応答情報の送信後に前記ホスト装置から消去方式を指定する指定情報を受信すると、前記ホスト装置により指定された消去方式が自身が備える前記少なくとも１つの消去方式と異なるか否かを判定し、前記ホスト装置により指定された消去方式が自身が備える前記少なくとも１つの消去方式と異なる場合、前記ホスト装置に指定エラー信号を送信する第２認証手段をさらに具備する請求項１記載のストレージ装置。
【請求項７】
前記少なくとも１つの消去方式は、上書き消去方式と、ブロック消去方式と、アンマップ方式のいずれか１つを具備する請求項１記載のストレージ装置。
【請求項８】
消去指示、書き込みコマンドまたは読み出しコマンドを受信する受信手段と、
前記受信手段が前記消去指示を受信すると、前記受信手段が前記書き込みコマンドあるいは前記読み出しコマンドを受信することを禁止する禁止手段と、
を具備するストレージ装置。
【請求項９】
前記受信手段が前記消去指示を受信すると、データを消去する消去手段をさらに具備し、
前記禁止手段は、前記消去手段が前記データを消去している間は、前記受信手段が前記書き込みコマンドあるいは前記読み出しコマンドを受信することを禁止する請求項８記載のストレージ装置。
【請求項１０】
消去指示を受信する受信手段と、
前記受信手段が前記消去指示を受信すると、データを消去する消去手段と、
前記消去手段によるデータの消去の進捗状況を検出し、検出した前記進捗状況を不揮発性メモリに格納する手段と、
を具備するストレージ装置。
【請求項１１】
電源再投入されると、前記不揮発性メモリから前記進捗状況を読み出し、読み出した前記進捗状況に基づいて前記消去手段の動作を再開させる手段をさらに具備する請求項１０記載のストレージ装置。
【請求項１２】
複数の領域を備えるストレージ装置であって、
消去指示、書き込みコマンドまたは読み出しコマンドを受信する受信手段と、
前記受信手段が前記複数の領域の中の第１領域に関する消去指示を受信すると、前記受信手段が前記第１領域に関する前記書き込みコマンドまたは前記読み出しコマンドを受信することを禁止する禁止手段と、
を具備するストレージ装置。
【請求項１３】
前記受信手段が前記消去指示を受信すると、データを消去する消去手段をさらに具備し、
前記禁止手段は、前記消去手段が前記第１領域に関するデータを消去している間は、前記受信手段が前記書き込みコマンドまたは前記読み出しコマンドを受信することを禁止する請求項１２記載のストレージ装置。
【請求項１４】
前記消去手段が前記第１領域に関するデータを消去している間は、前記受信手段は前記第１領域以外の領域に関する前記書き込みコマンドまたは前記読み出しコマンドは受信可能である請求項１３記載のストレージ装置。
【請求項１５】
前記禁止手段は、前記消去手段が前記第１領域に関するデータを消去している間は、前記受信手段が前記第１領域以外の領域に関する前記消去指示を受信することを禁止する請求項１３記載のストレージ装置。
【請求項１６】
記憶領域はそれぞれ異なるアクセス制限が設定されている複数のレンジを備え、前記複数のレンジのそれぞれは１つのネームスペースに含まれるストレージ装置であって、
前記複数のレンジのそれぞれと、対応するネームスペースとの関係を示す情報を記憶する記憶手段と、
ホスト装置からネームスペース消去指示を受信する受信手段と、
前記受信手段により受信された前記ネームスペース消去指示に対応するネームスペースを特定し、前記特定したネームスペースに対応する１つまたは複数の前記レンジを前記記憶手段に記憶されている前記情報に基づいて特定し、前記特定した１つまたは複数の前記レンジのデータを消去する手段と、
を具備するストレージ装置。
【請求項１７】
前記ネームスペース消去指示に対応するネームスペースは１つあるいはすべてのネームスペースである請求項１６記載のストレージ装置。
【請求項１８】
第１状態または第２状態で動作可能なストレージ装置であって、
前記第１状態で動作する場合、ホスト装置からコマンドを受信すると、前記コマンドに応じた応答を前記ホスト装置に送信可能であり、
前記第２状態で動作する場合、前記ホスト装置から第１コマンドを受信すると、前記第２状態で動作していることを示す情報を前記ホスト装置へ送信し、前記ホスト装置から前記第１コマンド以外のコマンドを受信するとエラーを示す情報を前記ホスト装置へ送信するストレージ装置。
【請求項１９】
前記第１状態は個人識別情報が設定されている状態であり、前記第２状態はデータが消去されており、前記第１状態で設定された前記個人識別情報が初期値に戻された状態であり、前記ストレージ装置は前記第１状態から前記第２状態に遷移可能であるが、前記第２状態から前記第１状態に遷移不可能である請求項１８記載のストレージ装置。
【請求項２０】
前記ストレージ装置に記憶されるデータを暗号化するとともに、記憶されている暗号化データを復号する暗号処理手段と、
前記第２状態で動作する場合、前記暗号処理手段のすくなくとも復号機能を停止させる手段と、
をさらに具備する請求項１８記載のストレージ装置。
【請求項２１】
管理者識別情報とユーザ識別情報を設定可能なストレージ装置であって、
前記管理者識別情報は第１識別情報と第２識別情報を具備し、
前記第１識別情報は前記ストレージ装置の記憶領域全体を消去し、前記管理者識別情報を初期化し、
前記第２識別情報は前記ストレージ装置の記憶領域の中のユーザに割り当てられた部分領域を消去し、前記ユーザに割り当てられた前記ユーザ識別情報を初期化するストレージ装置。
【請求項２２】
前記ユーザを認証する認証手段と、
前記認証手段により認証された前記ユーザのみに前記管理者識別情報を通知する手段とを、さらに具備する請求項２１記載のストレージ装置。
【請求項２３】
インアクティブ状態あるいはアクティブ状態で動作し、前記インアクティブ状態から前記アクティブ状態への遷移のために所有者識別情報が必要なストレージ装置であって、
前記所有者識別情報の値を取得又は生成するためのラベル情報を保存する記憶部を具備し、
前記記憶部から前記ラベル情報を読み出す権限は制限がなく、前記記憶部に前記ラベル情報を書き込む権限は前記所有者識別情報を知っているユーザに制限されているストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はストレージ装置に関する。
【背景技術】
【０００２】
従来、大容量のストレージ装置に要求されるセキュリティ機能は多様化している。セキュリティ機能の一例として、必要に応じてデータを処理することがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第6056567号公報
【特許文献２】特開2006-344177号公報
【特許文献３】特開2011-14103号公報
【非特許文献】
【０００４】
【非特許文献１】TCG Storage, Security Subsystem Class: Pyrite, Specification Version 1.00, Revision 1.00,［オンライン］，August 5, 2015,［平成２９年８月２９日検索］，インターネット<URL:https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Pyrite_SSC_v1.00_r1.00.pdf>
【非特許文献２】TCG Storage, Security Subsystem Class: Opal, Specification Version 2.01, Revision 1.00,［オンライン］，August 5, 2015，［平成２９年８月２９日検索］，インターネット<URL:https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_SSC_v2.01_rev1.00.pdf>
【非特許文献３】Working Draft, American National Standard, Project, T13/BSR INCITS 529, Revision 14,［オンライン］，October 14, 2016，［平成２９年８月２９日検索］、インターネット<URL:http://www.t13.org/documents/UploadedDocuments/docs2016/di529r14-ATAATAPI_Command_Set_-_4.pdf>
【非特許文献４】NVM Express, Revision 1.3, ［オンライン］，May 1, 2017， 平成２９年８月２９日検索］，インターネット<URL:http://www.nvmexpress.org/wp-content/uploads/NVM_Express_Revision_1.3.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
目的に応じてデータを処理できるストレージ装置を提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、ストレージ装置は、暗号化されていないユーザデータを記憶し、少なくとも１つのデータ消去方式を備える。ストレージ装置は、ホスト装置から消去方式の問い合わせを受信する手段と、問い合わせを受信すると、少なくとも１つのデータ消去方式を表す応答情報をホスト装置に送信する手段と、を具備する。
【図面の簡単な説明】
【０００７】
【図１】図１は第１実施形態のストレージ装置とホスト装置との接続例を示す。
【図２】図２は第１実施形態のストレージ装置の構成の一例を示す。
【図３】図３は第１実施形態で定義されるPINの一例を示す。
【図４】図４はストレージ装置の状態遷移の一例を示す。
【図５Ａ】図５Ａは第１実施形態におけるデータ消去シーケンスの一例を示す。
【図５Ｂ】図５Ｂは第１実施形態におけるデータ消去シーケンスの一例を示す。
【図６】図６は図５Ａ、図５Ｂに示すシーケンスにおける消去方式表示要求の一例を示す。
【図７】図７は図５Ａ、図５Ｂに示すシーケンスにおける消去方式返送の一例を示す。
【図８】図８は領域毎にアクセス権限を設定する一例を示す。
【図９】図９は電源断発生に備えたデータ管理を含むデータ消去の一例を示すフローチャートである。
【図１０】図１０はデータ消去中にアクセスを拒否するデータ消去の一例を示すフローチャートである。
【図１１】図１１は消去中の領域へのアクセスを拒否するデータ消去の一例を示すフローチャートである。
【図１２】図１２は複数領域に対する同時消去指示を拒否するデータ消去の一例を示すフローチャートである。
【図１３】図１３はNamespaceとRangeの関係の一例を示す。
【図１４】図１４はNamespace単位のデータ消去の一例を示すフローチャートである。
【図１５】図１５は破壊状態を含む状態遷移の一例を示す。
【図１６】図１６は破壊動作の一例を示すフローチャートである。
【図１７】図１７は破壊機能を備える第２実施形態のストレージ装置の構成の一例を示す。
【図１８】図１８はデータ暗号化機能を備える第３実施形態のストレージ装置の構成の一例を示す。
【図１９】図１９は破壊機能とデータ暗号化機能を備える第４実施形態のストレージ装置の構成の一例を示す。
【図２０】図２０は第５実施形態のストレージ装置の構成の一例を示す。
【図２１】図２１は第５実施形態における管理者ＰＩＮによるSetコマンド、Getコマンドの権限の一例を示す。
【図２２】図２２は第６実施形態のストレージ装置の構成の一例を示す。
【図２３】図２３は第６実施形態におけるSetコマンド、Getコマンドの発行権限の一例を示す。
【発明を実施するための形態】
【０００８】
以下、図面を参照して実施形態を説明する。以下の説明は、実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、以下に説明する構成部品の構造、配置等に限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、複数の図面において、略同一の機能及び構成を有する構成要素には同じ参照数字を付し、重複する説明は省略する場合もある。
【０００９】
［第１実施形態］  
図１は第１実施形態のストレージ装置とホスト装置との接続例を示す。ストレージ装置１２はホスト装置１４に接続され、ホスト装置１４から送信されるデータを自身の記憶媒体に書き込む、あるいは記憶媒体から読み出したデータをホスト装置１４へ送信する。ストレージ装置１２とホスト装置１４とのインターフェースは、ＳＣＳＩ、ＡＴＡ、ＮＶＭＥｘｐｒｅｓｓ（登録商標）、ｅ・ＭＭＣ等がある。ストレージ装置１２は、図１（ａ）に示すようにホスト装置１４に対して一対一で接続されてもよいし、図１（ｂ）に示すようにネットワーク１６を介してホスト装置１４に対して多対一で接続されてもよい。ホスト装置１４は、図１（ａ）ではパーソナルコンピュータ(以下、ＰＣと称する)等の電子機器であり、図１（ｂ）ではサーバ等である。図１（ａ）に示すストレージ装置１２はＰＣベンダによりＰＣの筐体内に組み込まれてもよい。１台のストレージ装置１２を使うユーザの人数は１人に限らない。１台のストレージ装置１２が複数のユーザにより使用される場合もある。例えば、図１（ｂ）に示すようにホスト装置１４が多数のユーザに対して仮想マシンを提供するサービスを行う場合、１台のストレージ装置１２が複数の領域（例えばNamespace、Range、パーティション）に分割され、各領域が各ユーザの仮想マシンとなることが可能である。
【００１０】
［概略構成］  
図２はストレージ装置１２の構成の一例を示す。ストレージ装置１２はＩ／Ｆ処理部２２を備え、Ｉ／Ｆ処理部２２はホストインターフェース（Ｉ／Ｆ）を介してホスト装置１４と接続される。Ｉ／Ｆ処理部２２には、認証処理部１０２、認可許可部１０４、消去方式表示部１０６、消去方式表示要求受信部１０８が接続される。
【００１１】
認証処理部１０２はストレージ装置１２へのアクセス制御を行うためにＰＩＮ（Personal Identification Number）を用いてユーザ認証を行う。認証処理部１０２にはＰＩＮ管理部１１２が接続される。ＰＩＮ管理部１１２は複数のＰＩＮ、例えば所有者ＰＩＮ（Security Identifier：ＳＩＤとも称する）１１２ａ、管理者ＰＩＮ（AdminＰＩＮとも称する）１１２ｂ、ラベルＰＩＮ（ＰＳＩＤとも称する）１１２ｃ、ユーザＰＩＮ１１２ｄ等を管理する。ユーザ権限を階層化するために、管理者ＰＩＮとユーザＰＩＮが設定されている。
【００１２】
ユーザはストレージ装置１２を何らかの理由で工場出荷時の状態に戻したいことがある。例えば、ストレージ装置１２を破棄する時、データ蓄積部３４に格納されたユーザデータがストレージ装置１２から流出することを防止したい。この明細書で、ストレージ装置１２を工場出荷時の状態に戻すことをリセットと称する。リセットは、ユーザデータの消去（読み出せないようにすること）と工場出荷後に設定されたＰＩＮの初期化の両方を含む。ここでは、リセットには特定のＰＩＮ、例えば所有者ＰＩＮまたはラベルＰＩＮが必要であるとする。また、ストレージ装置１２はロック機能を備え、ロックする（アンロック状態からロック状態にする）あるいはアンロック（ロック状態からアンロック状態にする）するには、特定のＰＩＮが必要であるとする。
【００１３】
認可処理部１０４には認証処理部１０２とロック管理部１１０と領域情報管理部１１４とデータ消去部１１８とリード／ライト処理部１２２が接続される。認証処理部１０２はホスト装置１４からリセットが指示されると、指示したユーザを認証する。具体的には入力されたＰＩＮの値がＰＩＮ管理部１１２に格納されたＰＩＮの値と一致するかチェックする処理を行う。たとえば、ホスト装置１４から所有者として認証要求を受けた場合、認証要求に含まれるＰＩＮの値が、ＰＩＮ管理部１１４に格納された所有者ＰＩＮ１１２ａと一致するか検査を行い、一致すれば成功と判定し、一致しなければ失敗と判定する。認可処理部１０４は、コマンドの発行元（ホスト装置１４のユーザ）がそのコマンドを発行する権限を有するか否かを判定し、その結果に応じてコマンドをロック管理部１１０とリード／ライト処理部１２２とデータ消去部１１８等に転送する。すなわち、認可処理部１０４は、どのコマンドがどの実行権限で実行可能かを判定するテーブルを管理しており、コマンド受信時にその権限で実行可能な処理であるかどうか判定処理を行う。たとえば、所有者ＰＩＮとラベルＰＩＮで認証されている場合に限り、ストレージ装置１２をリセットするためのRevertコマンドを実行可能であると認可処理部１０４が管理していたとする。この時、所有者ＰＩＮで認証が成功したユーザがホスト装置１４からストレージ装置１２をリセットするためのRevertコマンドを送信したとする。認可処理部１０４はRevertコマンドの発行元がRevertコマンドを発行可能な権限を有するかどうか判定処理を行う。この例では所有者ＰＩＮでRevertコマンドの実行が許可されているため、権限があると判定する。もし、ユーザＰＩＮで認証が成功したユーザがRevertコマンドを実行しようとした場合は権限がないと判定する。権限があると判定された場合、ストレージ装置１２をリセットするためにRevertコマンドを実行データ消去部１１８に転送し、データ消去を実行させるとともに、ＰＩＮを初期値に再設定する。
【００１４】
また、認可処理部１０４はアンロックコマンドをユーザＰＩＮまたは管理者ＰＩＮで認証された発行元が発行した場合、アンロックコマンドをロック管理部１１０に転送し、ロック管理部１１０はストレージ装置１２をアンロックする。ロック管理部１１０は領域情報管理部１１４で管理されるデータ蓄積部３４のユーザ領域全体のロック・アンロックができるように設定できるようになっていてもよいし、データ蓄積部３４の特定の領域のロック・アンロックが設定できるようになっていてもよい。なお、ラベルＰＩＮを用いる認証が成功した発行元がアンロックコマンドを発行しても、認可処理部１０４はアンロックコマンドをロック管理部１１０に転送しないので、ストレージ装置１２はアンロックされない。
【００１５】
消去方式表示部１０６には消去方式表示要求受信部１０８と消去情報管理部１２４が接続される。消去方式表示要求受信部１０８はホスト装置１４からのデータ消去方式問い合わせを受信して、消去方式表示部１０６に転送する。消去方式表示部１０６はストレージ装置１２がサポートしているデータ消去の方式をホスト装置１４に提示する。
【００１６】
データ消去方式の例は、上書き消去、ブロック消去、アンマップ、ライトポインタリセット、クリプトイレーズ（暗号鍵更新）等がある。上書き消去とは、消去するデータが保存されている領域に対して全て“０”や乱数により発生したデータを上書きすることである。ブロック消去は消去するデータを含むブロック全体をもとのデータを読み出し不能にすることである。アンマップはデータが記憶媒体のどのブロックに記憶されているかを表すマッピングテーブルを当該データについてリセットすることである。ライトポイントリセットはデータが記憶媒体のどのブロックに記憶されているかを表すポインタをリセットすることである。クリプトイレーズはストレージ装置１２が有する鍵によって入力データを暗号化し、データ蓄積部３４に暗号化データを記憶している場合、データの暗号に用いた鍵を更新することである。これにより、暗号化データが復号できず、入力したデータが読み出せない。
【００１７】
消去情報管理部１２４はデータ消去部１１８に接続される。消去情報管理部１２４はデータ消去中にリード／ライドコマンドを受け付けず、データ消去中の電源断に備えてデータ消去処理のステータスを管理し、電源断時の再起動後にどこまでデータを消去したかを示す情報をホスト装置１２に提示する。
【００１８】
データ消去部１１８とリード／ライト処理部１２２がデータ蓄積部３４に接続される。データ蓄積部３４は大容量の不揮発性の記憶媒体、例えばフラッシュメモリ、ハードディスクからなる。データ蓄積部３４はホスト装置１４からのリード命令、ライト命令を受け付け、データの書き込み、読込みを行う。
【００１９】
ストレージ装置１２の各部は、ＣＰＵ２４により制御される。
【００２０】
［ＰＩＮ］  
図３を参照してＰＩＮについて説明する。図３（ａ）はＰＩＮの種類によって発行できるコマンドを示す。所有者ＰＩＮはActivate/Revert コマンドを発行する権限を有する。どのＰＩＮが何のコマンドを発行できるかは認可処理部１０４で管理されている。Activateコマンドはロック機能を有効化するためのコマンドである。RevertコマンドはＰＩＮを初期値に設定し、ロック機能を無効にし、データを強制消去するためのコマンドである。管理者ＰＩＮ（AdminＰＩＮとも称する）はRevertSPコマンドを発行する権限を有する。RevertSPコマンドはＰＩＮを初期値に設定し、ロック機能を無効にするためのコマンドであり、データ強制消去については消去するかどうかをパラメータで指定できるコマンドである。ラベルＰＩＮ（ＰＳＩＤとも称する）はRevertコマンドを発行する権限を有する。ユーザＰＩＮはコマンドを発行する権限を有しないが、ユーザに割り当てられた領域をアンロックできる。
【００２１】
図３（ｂ）はストレージ装置１２のリセットに関し、コマンドにより開始されるアクション、すなわち初期化するＰＩＮの種類と消去するデータの種類を示す。Activateコマンドはリセットではなく、その逆の活性化(activate)に関するものであり、ＰＩＮの初期化とデータの消去はしない。Revertコマンドはデータ消去を行い、所有者ＰＩＮと管理者ＰＩＮを初期化する。RevertSPコマンドはデータ消去を行い、管理者ＰＩＮを初期化する。RevertSPコマンドはデータ消去するか、しないで残すかをコマンド発行時にパラメータにより指定可能である。Revertコマンドではデータ消去する／しないというパラメータはなく、常にデータ消去される。
【００２２】
コマンドにはこれ以外にもＰＩＮを設定するためのSetコマンドがある。Setコマンドはどの種類のＰＩＮを設定するかを示すパラメータを含み、パラメータの値、すなわちどの種類のＰＩＮを設定するかによって発行者権限が異なる。例えば、ユーザＰＩＮを設定するSetコマンドを発行できるのは管理者とユーザであり、所有者はユーザＰＩＮを設定する権限を有しない。そのため、ラベルＰＩＮはユーザＰＩＮを設定するSetコマンドに対して認証が失敗する。なお、Activateコマンド、Revertコマンド、RevertSPコマンドはパラメータによらず、発行権限が決まっている。
【００２３】
第１実施形態は２種類のラベルＰＩＮ（ＰＳＩＤ）を設定可能である。図３（ｃ）に示すように、第１種類のラベルＰＩＮ（ＰＳＩＤ１）は上述したストレージ装置１４のリセットのためのＰＩＮであり、記憶領域全体のデータ消去と所有者ＰＩＮと管理者ＰＩＮの初期化を行う。第２種類のラベルＰＩＮはユーザ毎のラベルＰＩＮ（ＰＳＩＤ２、ＰＳＩＤ３、…）である。記憶領域が複数のユーザ（ここでは、ユーザ１、ユーザ２）に割り当てられているとする。ユーザ１のラベルＰＩＮ（ＰＳＩＤ２）により発行されるRevertコマンドはユーザ１に割り当てられた領域のデータ消去とユーザ１のユーザＰＩＮの初期化を行う。ユーザ２のラベルＰＩＮ（ＰＳＩＤ３）により発行されるRevertコマンドはユーザ２に割り当てられた領域のデータ消去とユーザ２のユーザＰＩＮの初期化を行う。言い換えると、ユーザ１のラベルＰＩＮ（ＰＳＩＤ２）により発行されるRevertコマンドはユーザ２に割り当てられた領域のデータ消去とユーザ２のユーザＰＩＮの初期化を行うことはできない。ユーザ２のラベルＰＩＮ（ＰＳＩＤ３）により発行されるRevertコマンドはユーザ１に割り当てられた領域のデータ消去とユーザ１のユーザＰＩＮの初期化を行うことはできない。
【００２４】
これにより、ユーザ毎のセキュリティを向上することができる。
【００２５】
管理者ＰＩＮはストレージ装置１２を工場出荷時の状態にリセットすることができるが、管理者ＰＩＮの紛失に備えて、リセット用のラベルＰＩＮがストレージ装置１２の何処か、例えばストレージ装置の筐体に貼られる銘版ラベルに印刷されていることがある。例えば、記憶領域が複数のユーザ１、ユーザ２に割り当てられている場合、ＰＳＩＤ１、ＰＳＩＤ２、ＰＳＩＤ３が銘板ラベルに印刷されていることがある。
【００２６】
ラベルＰＩＮをストレージ装置１２に印刷しないで、ＰＣベンダやユーザに知らせる方法を採用してもよい。例えば、ＰＣベンダがユーザにＷｅｂサイトを提供し、ＰＣのシリアル番号を入力すればラベルＰＩＮを表示するようにしてもよい。また、同様にストレージ装置のベンダがユーザにＷｅｂサイトを提供し、ストレージ装置のシリアル番号を入力すればラベルＰＩＮを表示するようにしてもよい。図１（ｂ）に示すように、サーバのようなホスト装置１４に複数のストレージ装置１２が接続され、サーバ内のストレージ装置１２を一括してリセットさせたい場合に備えて、ストレージ装置１２のベンダが複数のストレージ装置１２に対して同一の値のラベルＰＩＮを設定し、サーバベンダに対して電子メール等でラベルＰＩＮの値を通知してもよい。
【００２７】
［ストレージ装置の状態遷移］
図４はストレージ装置１２の状態遷移の一例を示す。工場出荷時はInactive状態４０Ａである。Inactive状態４０Ａは管理者ＰＩＮ、ユーザＰＩＮが設定できない状態であり、ロック機能が無効な状態である。ＳＩＤ（所有者ＰＩＮ）は初期値である。ＳＩＤの初期値としてＭＳＩＤ  ＰＩＮが定義されていることもある。ＭＳＩＤ  ＰＩＮはGetコマンドを用いて誰でも取得することができる。ＳＩＤの初期値のユーザへの通知方法はコマンドを用いることに限らず、ＳＩＤの初期値をマニュアルに記載しておくことや、ＳＩＤの初期値を銘板ラベルに印刷しておくことも可能である。工場から出荷された直後のストレージ装置１２はＳＩＤの初期値、例えばＭＳＩＤ  ＰＩＮを使って、ＳＩＤとして認証する。ＳＩＤの初期値はＭＳＩＤ  ＰＩＮなので、認証は成功する。その後、ＳＩＤを初期値から任意の値（所有者の好きなＰＩＮの値）に設定することができる。
【００２８】
ストレージ装置１２はInactive状態４０Ａのまま例えばＰＣベンダに出荷され、ＰＣベンダは、たとえば上記方法でＳＩＤを設定すると想定する。Inactive状態４０Ａのストレージ装置１２はホスト装置１４からＳＩＤを設定するためのSetコマンドを受信すると、Setコマンドの発行元ユーザの権限をチェックする。Setコマンドは設定したいＳＩＤをパラメータに含む。ＳＩＤを設定できる権限は所有者である。所有者からSetコマンドが発行された場合、ＳＩＤが設定される。Inactive状態４０Ｂでは、ＳＩＤはSetコマンドを用いて所有者により設定された値（初期値ではない）である。
【００２９】
Inactive状態４０Ｂのストレージ装置１２はホスト装置１４からActivateコマンドを受信すると、Activateコマンドの発行元ユーザをチェックする。Activateコマンドはストレージ装置１２をActive状態に遷移させるためのコマンドであり、発行権限は図３（ａ）に示すように所有者である。所有者からActivateコマンドが発行された場合、ストレージ装置１２はActive状態４０Ｃとなる。Active状態４０Ｃでは管理者ＰＩＮ、ユーザＰＩＮが初期値になり、ロック機能が有効な状態である。
【００３０】
例えばＰＣに組み込まれたストレージ装置１２はActive状態４０Ｃのままエンドユーザに出荷され、エンドユーザ側で管理者ＰＩＮあるいはユーザＰＩＮを設定すると想定する。Active状態４０Ｃのストレージ装置１２はホスト装置１４から管理者ＰＩＮを設定するためのSetコマンドあるいはユーザＰＩＮを設定するためのSetコマンドを受信すると、Setコマンドの発行元ユーザをチェックする。Setコマンドは設定したい管理者ＰＩＮまたはユーザＰＩＮをパラメータに含む。管理者ＰＩＮを設定できる権限は管理者である。ユーザＰＩＮを設定できる権限は管理者と所有者である。Setコマンドが発行権限のあるユーザから発行された場合、Setコマンドを用いてエンドユーザにより管理者ＰＩＮあるいはユーザＰＩＮが設定（初期値ではない状態）され、ストレージ装置１２はActive状態４０Ｄとなる。
Active状態４０Ｄのストレージ装置１２はホスト装置１４からストレージ装置１２をリセットするためのRevertコマンドを受信すると、Revertコマンドの発行元ユーザをチェックする。Revertコマンドを発行できる権限は所有者ＰＩＮあるいはラベルＰＩＮを知っているユーザである。Revertコマンドが権限のあるユーザから発行された場合、データが消去され、所有者ＰＩＮ、管理者ＰＩＮ、ユーザＰＩＮが初期化され、ストレージ装置１２はInactive状態（工場出荷時）４０Ａとなる。
【００３１】
一方、Active状態４０Ｄのストレージ装置１２はホスト装置１４からストレージ装置１２をリセットするためのRevertSPコマンドを受信すると、RevertSPコマンドの発行元ユーザをチェックする。RevertSPコマンドを発行できる権限は管理者である。RevertSPコマンドが権限のあるユーザから発行された場合、データが消去され、管理者ＰＩＮ、ユーザＰＩＮが初期化され、ストレージ装置１２はInactive状態４０Ｂとなる。なお、RevertSPコマンドによるリセット後でもストレージ装置はInactive状態ではなくActive状態に留まるようになっていてもよい。  なお、ＰＩＮが初期化されると、自動的にアンロックされる。所有者ＰＩＮはRevertコマンドによってＰＩＮ初期化が可能なので、アンロックも可能である。ただし、Revertコマンドによってデータは消去されるので、アンロック後には、ユーザが記録したデータは残っていない。
【００３２】
ラベルＰＩＮもRevertコマンドによってＰＩＮ初期化が可能なので、アンロックも可能である。ただし、Revertコマンドによってデータは消去されるので、アンロック後には、ユーザが記録したデータは残っていない。
【００３３】
ストレージ装置１２はRevertコマンドを受信すると、内部処理によりデータ消去を行うと同時にアンロックも行う。ただし、厳密には、いずれか一方が先に実行され、他方が後に実行される。電源断を考慮すると、データ消去してからアンロックする方が安全である。アンロックしてデータ消去直前に電源断が発生すると、データ消去処理が行われないままアンロックしてしまう可能性があるためである。ただし、電源断の発生時にこのようなことが生じないように対策を講じれば、アンロックしてからデータ消去してもよい。
［データ消去シーケンス］  
図５Ａ、図５Ｂはストレージ装置１２をリセットするためのデータ消去シーケンスの一例を示す。  リセットに先立って予めホスト装置１４はストレージ装置１２に、ストレージ装置１２がサポートしている消去方式を問い合わせるための消去方式表示要求を送信する。この送信タイミングの一例はホスト装置１４のブート時である。
【００３４】
消去方式表示要求受信部１０８で受信された消去方式表示要求は消去方式表示部１０６に送られる。ステップ５０Ａで消去方式表示部１０６はサポートしている１つまたは複数の消去方式を示す情報を消去情報管理部１２４から取得する。消去方式表示部１０６は取得した１つまたは複数の消去方式を示す消去方式応答情報をホスト装置１４に返送する。
【００３５】
図６を参照して消去方式表示要求と消去方式応答情報の一例を説明する。ここでは、非特許文献２で定義されているLevel 0 Discovery HeaderとLevel 0 Discovery Responseを応用している。図６（ａ）はLevel 0 Discovery Headerを利用する消去方式表示要求の一例を示す。Level 0 Discovery Headerはストレージ装置１２に対してLevel 0 Discovery Responseを返信するよう指示するだけであり、header部のみでコンテンツ部は含まない。
【００３６】
図６（ｂ）はLevel 0 Discovery Responseを応用する消去方式応答情報の一例を示す。Level 0 Discovery Response は図６（ａ）に示すLevel 0 Discovery Headerとコンテンツ部とからなる。コンテンツ部であるフューチャー記述子には複数のフューチャー記述子が定義されている。
【００３７】
図７（ａ）に示すように、フューチャー記述子の１つが消去方式である。フューチャー記述子のデータ構造の一例を図７（ｂ）に示す。フューチャー記述子はヘッダ部とコンテンツ部から構成され、バイト０−３がヘッダ部で、バイト４−ｎがコンテンツ部である。ヘッダ部はフューチャーコードを含む。ストレージ装置１２がサポートしている消去方式のフューチャー記述データはバイト４に記述される。バイト４の各ビットに図７（ｃ）に示すように消去方式が割り当てられている。各ビットが“１”であれば、その消去方式をサポートしていることを示し、“０”であれば、その消去方式はサポートしていないことを示す。例えば、フューチャー記述データのビット０が“１”であれば、上書き消去(Overwrite Data Erasure)方式をサポートしていることを示し、ビット１が“１”であれば、ブロック消去方式(Block Erasure)をサポートしていることを示し、ビット２が“１”であれば、アンマップ方式(Unmap)をサポートしていることを示し、ビット３が“１”であれば、ライトポインタリセット方式(Reset Write Pointers)をサポートしていることを示し、ビット４が“１”であれば、暗号鍵更新（クリプトイレーズ）方式(Crypto Erasure)をサポートしていることを示すとする。
【００３８】
図５Ａ、図５Ｂに示す消去シーケンスの説明に戻り、ホスト装置１４はストレージ装置１２から１つの消去方式を示す情報が返送された場合、当該消去方式を指定し、複数の消去方式を示す情報が返送された場合、その中から１つを選択し、選択した消去方式を示す情報をストレージ装置１２に通知することが想定されている。ただし、ホスト装置１４がこれ以外の消去方式を指定する可能性もある。ホスト装置１４は、例えばそのパラメータに消去方式情報を含むSetコマンドを用いて消去方式をストレージ装置１２に通知してもよい。
【００３９】
ストレージ装置１２で受信された消去方式指定情報は認証処理部１０２に供給される。認証処理部１０２はステップ５０Ｂで消去方式を指定するSetコマンドの発行元ユーザを認証する。認可処理部１０４はコマンドの発行元がコマンドの発行権限があるか否かをチェックするためにどのＰＩＮを用いて認証された発行元(authority)によってSetコマンドが送信されたかをステップ５０Ｃでチェックする。ラベルＰＩＮまたはユーザＰＩＮを用いて認証された発行元によってSetコマンドが発行された場合は、ステップ５０Ｄで認可失敗とされ、認可処理部１０４は認可失敗を示す情報をホスト装置１４に送信する。所有者ＰＩＮまたは管理者ＰＩＮを用いて認証された発行元によってSetコマンドが発行された場合は認可成功とされる。認可成功の場合、消去情報管理部１２４はホスト装置１４によって指定された消去方式は自身がサポートしている消去方式であるか否かをステップ５０Ｃ−１でチェックする。ホスト装置１４によって指定された消去方式をサポートしていない場合（ステップ５０Ｃ−１のノー）、ステップ５０Ｄ−１で消去情報管理部１２４は指定エラーを示す情報をホスト装置１４に送信する。ホスト装置１４によって指定された消去方式をサポートしている場合（ステップ５０Ｃ−１のイエス）、消去情報管理部１２４はステップ５０Ｅで、ホスト装置１４によって指定された消去方式をデータ消去部１１８に設定する。
【００４０】
その後、ストレージ装置１２をリセットする必要が生じると、ホスト装置１４はストレージ装置１２にリセット指示（消去指示）を通知する。ホスト装置１４は、例えばRevertコマンドあるいはRevertSPコマンドを用いて消去指示をストレージ装置１２に通知してもよい。
ストレージ装置１２で受信された消去指示は認証処理部１０２に供給される。認証処理部１０２はステップ５０Ｆで消去指示であるRevertコマンドあるいはRevertSPコマンドの発行元ユーザを認証する。認可処理部１０４はステップ５０Ｇで受信したコマンドはRevertコマンドかRevertSPコマンドかをチェックする。
【００４１】
Revertコマンドを受信した場合、認可処理部１０４は発行元がRevertコマンドを発行する権限があるか否かをチェックするために、どのＰＩＮを用いて認証された発行元によってRevertコマンドが送信されたかをステップ５０Ｈでチェックする。管理者ＰＩＮまたはユーザＰＩＮを用いて認証された発行元によってRevertコマンドが発行された場合は、ステップ５０Ｉで認可失敗とされ、データ消去及びＰＩＮの初期化は行われない。所有者ＰＩＮまたはラベルＰＩＮを用いて認証された発行元によってRevertコマンドが発行された場合は認可成功とされ、ステップ５０Ｊでデータ消去部１１８がデータ消去を実行し、ＰＩＮ管理部１１２が所有者ＰＩＮ、管理者ＰＩＮ、ユーザＰＩＮを初期化する。これにより、ストレージ装置１２は図４に示すInactive状態（工場出荷時）４０Ａとなる。
【００４２】
RevertSPコマンドを受信した場合、認可処理部１０４は発行元がRevertSPコマンドを発行する権限があるか否かをチェックするために、どのＰＩＮを用いて認証された発行元によってRevertSPコマンドが送信されたかをステップ５０Ｋでチェックする。所有者ＰＩＮ、ラベルＰＩＮまたはユーザＰＩＮを用いて認証された発行元によってRevertSPコマンドが発行された場合は、ステップ５０Ｌで認可失敗とされ、データ消去及びＰＩＮの初期化は行われない。管理者ＰＩＮを用いて認証された発行元によってRevertSPコマンドが発行された場合は認可成功とされ、RevertSPコマンドにおいてデータ消去がパラメータで指定されているか否かがステップ５０Ｍでチェックされる。データ消去が指定されている場合（ステップ５０Ｍのイエス）、ステップ５０Ｊで、データ消去部１１８がデータ消去を実行し、ＰＩＮ管理部１１２が管理者ＰＩＮ、ユーザＰＩＮを初期化する。データ消去が指定されていない場合（ステップ５０Ｍのノー）、ステップ５０ＮでＰＩＮ管理部１１２が管理者ＰＩＮ、ユーザＰＩＮを初期化する。これにより、ストレージ装置１２は図４に示すInactive状態４０Ｂとなる。
【００４３】
以上説明したように、ストレージ装置１２は自身がサポートしている消去方式をホスト装置１４に知らせ、ホスト装置１４がその情報に基づいてストレージ装置１２に対して消去方式を指定することができる。ストレージ装置１２は指定者の権限をチェックし、権限がある場合、指定された消去方式を設定する。実際のリセットの際は、ホスト装置１４はストレージ装置にリセット指示を与える。ストレージ装置１２はリセット指示者の権限をチェックし、権限がある場合、先に設定された消去方式に従うデータの消去と、ＰＩＮの初期化を行う。
【００４４】
これにより、暗号化されていないデータを格納するストレージ装置１２もリセットすることができる。リセットされたストレージ装置１２からは廃棄後にデータが流出することがなく、セキュリティを確保することができる。ストレージ装置１２は暗号化データを格納しないので、ホスト装置１４が暗号化アプリケーションを備える必要がなく、ホスト装置１４の処理負荷が低い。暗号化回路が不要なため、ストレージ装置１２の製造コストを抑えることができる。  ストレージ装置１２は記憶領域全体で一様なアクセス権限（アンロック）を設定するのではなく、記憶領域をＬＢＡ範囲に応じて複数の領域（Rangeとも称する）に分割し、Range毎に異なるアクセス権限（アンロックに必要なＰＩＮ）を設定可能である。Rangeの概念は図１３を参照して後述する。例えば、図８に示すように、Range２は誰でもアクセス可能なアンロック状態とし、Range１はストレージ装置を通常使用するユーザと管理者だけがアンロックできるロック状態とし、Range３は管理者だけがアンロックできるロック状態とすることができる。このようにストレージ装置１２の記憶領域を複数のRangeに分割することにより、複数のユーザが互いのセキュリティを保ったままストレージ装置１２を共有することができる。
【００４５】
［消去処理の管理］  
図９（ａ）は電源断発生に備えた消去処理の一例のフローチャートである。ストレージ装置１２はステップ２２２でRevert/RevertSPコマンド（”/”は“あるいは”を意味する）を受信する。ステップ２２４で認可処理部１０４はコマンドの発行権限をチェックし、発行権限のあるユーザからコマンドが発行されたか否かをステップ２２６で判定する。発行権限のあるユーザからコマンドが発行されていない場合、ステップ２２８で認可失敗となる。
【００４６】
発行権限のあるユーザからコマンドが発行された場合、ステップ２３０で認可処理部１０４はデータ消去部１１８へRevert/RevertSPコマンドを送る。ステップ２３２でデータ消去部１１８はRevert/RevertSPコマンドを解析して、どのRangeに該当するRevert/RevertSPコマンドであるかを判定する。データ消去部１１８は判定結果のRangeに対応するＬＢＡ範囲、例えばＬＢＡ  Ｘ−Ｙを取得し、その最初のＬＢＡ  Ｘからデータ消去を開始する。消去情報管理部１２４はデータを消去する間、ステップ２３４で消去済みＬＢＡを不揮発性メモリに書き込む。この不揮発性メモリは消去情報管理部１２４に設けたフラッシュメモリにより実現してもよいし、データ蓄積部３４の一部により実現してもよい。データ消去部１１８は判定結果のRangeに対応するＬＢＡ範囲のデータ消去が完了したかをステップ２３６で判断し、完了していない場合、データ消去を続ける。完了した場合、ステップ２３８でデータ消去部１１８は消去情報管理部１２４にRevert/RevertSPコマンドの処理完了を示す完了フラグを不揮発性メモリに書き込ませる。
【００４７】
このように、Revert/RevertSPコマンドの処理中に電源断が発生しても、Revert/RevertSPコマンドの処理が未完了であったこと及び消去済みＬＢＡが不揮発性メモリに記憶されているので、ストレージ装置１２は未完了だったRevert/RevertSPコマンドを電源復旧時にデータ未消去のＬＢＡから効率良く再開できる。再開後に最初からデータ消去を行う必要がないので、データ消去時間が不必要に長くなることがない。
【００４８】
図９（ｂ）は電源復旧時Revert/RevertSPコマンドの再開処理の一例を示すフローチャートである。電源がオンすると、ステップ２４２で消去情報管理部１２４は未完了のRevert/RevertSPコマンドがあるか否かを判定する。未完了のRevert/RevertSPコマンドが無い場合、ステップ２４６で通常処理が行われる。未完了のRevert/RevertSPコマンドがある場合、ステップ２４４で消去情報管理部１２４は不揮発性メモリから消去済みＬＢＡを読み出し、消去済みＬＢＡをデータ消去部１１８の消去開始アドレスに設定し、データ消去部１１８に未消去ＬＢＡからデータ消去を開始させる。消去情報管理部１２４はデータを消去する間、ステップ２４８で消去済みＬＢＡを不揮発性メモリに書き込む。データ消去部１１８は現在消去中のRangeのデータ消去が完了したかをステップ２５０で判断し、完了していない場合、データ消去を続ける。完了した場合、ステップ２５２でデータ消去部１１８は消去情報管理部１２４にRevert/RevertSPコマンドの処理完了を示す完了フラグを不揮発性メモリに書き込ませる。その後、ステップ２５４で通常処理が行われる。
【００４９】
図９に示す消去処理は、図５Ａ、図５Ｂに示すように、ストレージ装置１２がホスト装置１４に自身がサポートしている消去方式を通知し、ホスト装置１４が消去方式を指定した後に実行してもよいし、図５Ａ、図５Ｂに示す手順とは無関係に単独で実行してもよい。
【００５０】
［データ消去の排他的制御］
図１０〜図１２を参照して、実行中のデータ消去処理を優先する排他的制御を説明する。
【００５１】
図１０は消去中にアクセスを拒否して、消去処理を優先する処理の一例を示すフローチャートである。ストレージ装置１２はステップ２６２でRevert/RevertSPコマンドを受信する。ステップ２６４で認可処理部１０４はコマンドの発行権限をチェックし、発行権限のあるユーザからコマンドが発行されたか否かをステップ２６６で判定する。発行権限のあるユーザからコマンドが発行されていない場合、ステップ２６８で認可失敗となる。
【００５２】
発行権限のあるユーザからコマンドが発行された場合、ストレージ装置１２はコマンドの実行中にステップ２７０でホスト装置１４からリード／ライトコマンドを受信したか否かを判定する。リード／ライトコマンドを受信した場合、ストレージ装置１２はコマンドをキューに格納する、あるいはエラーをホスト装置１４に返送する。キューは例えばリード／ライト処理部１２２内に設けてもよい。リード／ライトコマンドを受信しない場合、ストレージ装置１２はステップ２７４でコマンドの実行を続ける。
【００５３】
図１０に示す消去処理は、図５Ａ、図５Ｂに示すように、ストレージ装置１２がホスト装置１４に自身がサポートしている消去方式を通知し、ホスト装置１４が消去方式を指定した後に実行してもよいし、図５Ａ、図５Ｂに示す手順とは無関係に単独で実行してもよい。
【００５４】
図１１はデータ消去処理の排他的制御の第２の例としての消去中のRangeへのアクセス拒否（消去中の領域以外の領域へのアクセスは可能）の一例を示すフローチャートである。図１０の処理では記憶領域に複数の領域が定義されていないが、図１１の処理では記憶領域に複数の領域(Range)が定義されているとする。ストレージ装置１２はステップ２８２でRevertSPコマンドを受信する。ステップ２８４で認可処理部１０４はコマンドの発行権限をチェックし、発行権限のあるユーザからコマンドが発行されたか否かをステップ２８６で判定する。発行権限のあるユーザからコマンドが発行されていない場合、ステップ２８８で認可失敗となる。
【００５５】
発行権限のあるユーザからコマンドが発行された場合、ステップ２９０で認可処理部１０４はデータ消去部１１８へRevertSPコマンドを送る。ステップ２９２でデータ消去部１１８はRevertSPコマンドを解析して、どのRangeに該当するRevertSPコマンドであるかを判定する。データ消去部１１８は判定結果のRangeに対応するＬＢＡ範囲のデータ消去を開始する。ストレージ装置１２はデータ消去の実行中にステップ２９４でホスト装置１４からリード／ライトコマンドを受信したか否かを判定する。リード／ライトコマンドを受信しない場合、ストレージ装置１２はステップ２９６でRevertSP コマンドの実行を続ける。
【００５６】
リード／ライトコマンドを受信した場合、ストレージ装置１２は受信したリード／ライトコマンドは消去中のRangeについてのリード／ライトコマンドであるか否かをステップ２９８で判定する。消去中のRangeについてのリード／ライトコマンドである場合、ストレージ装置１２はステップ３００でコマンドをキューに格納する、あるいはエラーをホスト装置１４に返送する。消去中のRangeについてのリード／ライトコマンドではない場合、ストレージ装置１２はステップ３０２で消去中のRange以外のRangeについてリード／ライトコマンドを実行する。
【００５７】
このように、ある領域に対するデータ消去が行われている最中に、別な領域への書き込みが行われたとしても、その別な領域ではデータ消去は行っていないので通常のデータライト、リードは行うことができる。一方、データ消去を行っている領域は、上述のように消去以外のアクセスを実行しない排他制御を行うので、ユーザの期待に反してデータが残る・消去されるといったことがない。
【００５８】
図１１に示す消去処理は、図５Ａ、図５Ｂに示すように、ストレージ装置１２がホスト装置１４に自身がサポートしている消去方式を通知し、ホスト装置１４が消去方式を指定した後に実行してもよいし、図５Ａ、図５Ｂに示す手順とは無関係に単独で実行してもよい。
【００５９】
図１２はデータ消去処理の排他的制御の第３の例としての複数のRevert/RevertSPコマンドの実行制御の一例を示すフローチャートである。ストレージ装置１２はステップ３１２で第１Revert/RevertSPコマンドを受信する。ステップ３１４で認証処理部１０２はコマンドの発行権限をチェックし、発行権限のあるユーザからコマンドが発行されたか否かをステップ３１６で判定する。発行権限のあるユーザからコマンドが発行されていない場合、ステップ３１８で認可失敗となる。
【００６０】
発行権限のあるユーザからコマンドが発行された場合、ステップ３２０で認可処理部１０４はデータ消去部１１８へ第１Revert/RevertSPコマンドを送る。ステップ３２２でデータ消去部１１８は第１Revert/RevertSPコマンドを解析して、どのRangeに該当するRevert/RevertSPコマンドであるかを判定する。データ消去部１１８は判定結果のRangeに対応するＬＢＡ範囲のデータ消去を開始する。ストレージ装置１２はデータ消去の実行中にステップ３２４で第２Revert/RevertSPコマンドを受信したか否かを判定する。なお、ステップ３２４はステップ３２２の前に実行してもよい。
【００６１】
第２Revert/RevertSPコマンドを受信しない場合、ストレージ装置１２はステップ３２８で第１Revert/RevertSPコマンドの実行を続ける。第２Revert/RevertSPコマンドを受信した場合、ステップ３２２で認証処理部１０２はコマンドの発行権限をチェックし、発行権限のあるユーザからコマンドが発行されたか否かをステップ３３４で判定する。発行権限のあるユーザからコマンドが発行されていない場合、ステップ３３６で認可失敗となる。
【００６２】
発行権限のあるユーザからコマンドが発行された場合、ステップ３３８で認可処理部１０４はデータ消去部１１８へ第２Revert/RevertSPコマンドを送る。ステップ３４２でデータ消去部１１８は第２Revert/RevertSPコマンドを解析して、どのRangeに該当するRevert/RevertSPコマンドであるかを判定し、第１Revert/RevertSPコマンドのRangeと第２Revert/RevertSPコマンドのRangeが異なるか否か判定する。
【００６３】
第２Revert/RevertSPコマンドのRangeと第１Revert/RevertSPコマンドのRangeが異なる場合、データ消去部１１８はステップ３４４で、受信した２つのコマンドが第１RevertSPコマンドと第２RevertSPコマンドであったか否か判定する。２つのコマンドが第１RevertSPコマンドと第２RevertSPコマンドであった場合、異なるRangeについての２つのRevrrtSPコマンドを受信したので、ステップ３４６でデータ消去部１１８は第２RevertSPコマンドも実行する。なお、ステップ３４６で第２RevertSPコマンドを実行する代わりに、第２RevertSPコマンドの消去ジョブをキューに格納してもよい。
【００６４】
ステップ３４２で第２Revert/RevertSPコマンドのRangeと第１Revert/RevertSPコマンドのRangeが同じと判定された場合、及びステップ３４４で２つのコマンドが第１RevertSPコマンドと第２RevertSPコマンドでないと判定された場合、データ消去部１１８はステップ３４８で、第２Revert/RevertSPコマンドの消去ジョブをキューに格納する、あるいはエラーをホスト装置１４に返送する。第１コマンドと第２コマンドの組み合わせは、（第１Revertコマンド，第２Revertコマンド）、（第１Revertコマンド，第２RevertSPコマンド）、（第１RevertSPコマンド，第２Revertコマンド）、（第１RevertSPコマンド，第２RevertSPコマンド）がある。このうち（第１RevertSPコマンド，第２RevertSPコマンド）については、第１、第２コマンドのRangeが異なる場合は、ステップ３４６に示すように第１RevertSPコマンドとともに第２RevertSPコマンドも実行される。他の（第１Revertコマンド，第２Revertコマンド）、（第１Revertコマンド，第２RevertSPコマンド）、（第１RevertSPコマンド，第２Revertコマンド）については、第１、第２コマンドのRangeが同じである場合も異なる場合も、ステップ３４８に示すように第２コマンドは実行されない。
【００６５】
これにより、ストレージ装置１２は各Revert/RevertSPコマンドを集中して実行できる。このため、データ消去時間が長くなることがない。
【００６６】
図１２に示す消去処理は、図５Ａ、図５Ｂに示すように、ストレージ装置１２がホスト装置１４に自身がサポートしている消去方式を通知し、ホスト装置１４が消去方式を指定した後に実行してもよいし、図５Ａ、図５Ｂに示す手順とは無関係に単独で実行してもよい。
【００６７】
［Namespaceによる複数領域消去］  
図１３はストレージ装置１２の記憶領域を概念的に示す。NVM Express, Revision 1.3, May 1, 2017でNamespace（ネームスペース）が定義されている。Namespaceはストレージ装置１２の記憶領域全体を分割した部分領域であり、具体的には論理ブロックの集合である。１つのストレージ装置に対してNamespaceＩＤで識別される少なくとも１つのNamespaceが定義可能である。サイズｎのNamespaceは論理ブロックアドレス０〜（ｎ−１）の論理ブロックからなる。各Namespace内にはNamespace Global Rangeがあり、各Namespace Global Rangeは複数のRangeを含む。上述したように各Rangeにはそれぞれ異なるＰＩＮが設定可能である。複数のNamespaceに跨るGlobal Rangeがある。
【００６８】
なお、記憶領域全体を分割した部分領域としてパーティションがあるが、パーティションはホスト装置１４が管理する部分領域であり、Namaspaceはストレージ装置１２が管理する部分領域である。ホスト装置１４がパーティションにアクセスする際は、ホスト装置１４はアクセス対象のパーティションに含まれる論理アドレスを指定するが、Namespaceにアクセスする際は、ホスト装置１４はアクセス対象のNamespaceを指定する。ストレージ装置１２のRange情報管理部１１４は図１３に示すようなNamespaceとRangeの関係を管理している。
【００６９】
図１４（ａ）はNamespace単位の消去の一例を示すフローチャートである。ステップ４０２でストレージ装置１２はホスト装置１４からNamespace単位の消去コマンドを受信する。消去コマンドにはパラメータを追加できるので、Namespaceというパラメータを追加して、Namespace単位の消去コマンドとしてもよい。あるいは、上述のRevert／RevertSPコマンドにもパラメータが追加できるので、Namespaceというパラメータを追加して、Namespace単位の消去を実行させるRevert／RevertSPコマンドをNamespace単位の消去コマンドとしてもよい。さらに、図１４（ｂ）に示すように、Revert／RevertSPコマンドがどのNamespaceに対する消去処理を実行させるかを示すNamespace Tableを定義しておいてもよい。Namespace TableへのNamespaceの登録はSetコマンドを利用し、SetコマンドのパラメータでNamespaceＩＤを指定することが可能である。なお、Namespace単位の消去とは１つのNamespaceの消去と、全部のNamespace（すなわち、Global Range）の消去の両方を含む。そのため、パラメータで００ｈまたはＦＦｈが指定された場合は、全部のNamespaceが指定されたと見做してもよい。
【００７０】
Namespace Tableの設定の一例を図１４（ｃ）に示す。ストレージ装置１２はステップ４１２でSetコマンドを受信すると、パラメータで指定されたNamespaceＩＤをNamespace Tableに設定する。もしも、NamespaceＩＤ＝００ｈまたはＦＦｈの場合、全てのNamespaceＩＤがNamespace Tableに設定される。その後、ストレージ装置１２はホスト装置からRevert／RevertSPコマンドを受信する（ステップ４１４）と、ステップ４１６でNamespace Tableを参照して、NamespaceＩＤを取得し、取得したNamespaceＩＤに対応するNamespace に含まれる全てRangeのデータ消去を実行する。
【００７１】
これにより、ストレージ装置１２が複数のNamaspaceを備え、各Namaspaceが複数のRangeを備えている場合、ホスト装置１４はNamaspace単位の消去を指示するだけで、ストレージ装置１２は指示されたNamaspaceに含まれる全Rangeのデータ消去を簡単に行うことができる。ホスト装置１４はNamespaceとRangeの関係についての管理が不要なので、ホスト装置１４のアプリケーションの構成がシンプルになり、コストも下げられる。
【００７２】
図１４に示す消去処理は、図５Ａ、図５Ｂに示すように、ストレージ装置１２がホスト装置１４に自身がサポートしている消去方式を通知し、ホスト装置１４が消去方式を指定した後に実行してもよいし、図５Ａ、図５Ｂに示す手順とは無関係に単独で実行してもよい。
【００７３】
さらに、図９から図１４を参照していくつかの消去動作を説明したが、これらの消去動作を自由に組み合わせて実行してもよい。
第１実施形態によれば、ストレージ装置１２は自身がサポートしている消去方式をホスト装置１４に通知して、ホスト装置１４は消去方式を指定し、ストレージ装置１２は指定された消去方式によりデータを消去するので、暗号化されていないデータを格納するストレージ装置１２もリセットすることができる。リセットされたストレージ装置１２からは廃棄後にデータが流出することがなく、セキュリティを確保することができる。ストレージ装置１２は暗号化データを格納しないので、ホスト装置１４が暗号化アプリケーションを備える必要がなく、ホスト装置１４の処理負荷が低い。暗号化回路が不要なため、ストレージ装置１２の製造コストを抑えることができる。  以下、他の実施形態について説明する。他の実施形態は、第１実施形態と異なる箇所のみ説明し、同じ説明は省略する。
【００７４】
［第２実施形態］  
リセットしてから廃棄したストレージ装置１２からデータが流出する可能性は０ではない。この可能性を限りなく０としたい場合、廃棄する際、ストレージ装置１２を機械的に破壊・破砕してストレージ装置１２が物理的に存在しない状態にすることが考えられる。機械的に破壊・破砕することは手間と時間が掛かる。第２実施形態では、ストレージ装置１２を電気的に破壊状態にすることを可能とする。
【００７５】
第２実施形態では、図１５に示すように、ストレージ装置１２の状態としてActive状態、Inactive状態に加えて、Destroy（破壊）状態が定義される。Active状態のストレージ装置１２に対してホスト装置１４がDestroyコマンドを発行すると、ストレージ装置１２はDestroy状態になる。
【００７６】
Destroy状態に設定され得る第２実施形態のストレージ装置１２Ａの概略を図１７に示す。ストレージ装置１２Ａは図２に示すストレージ装置１２に対して破壊処理部１１６が追加されている点が異なる。破壊処理部１１６はＩ／Ｆ処理部２２と、認可処理部１０４と、リード／ライト処理部１２２と、データ消去部１１８とに接続される。破壊処理部１１６はストレージ装置１２がDestroy状態の場合、リード／ライト処理部１２２にコマンド受け付け不可（確認コマンドは受け付け可）を指示する。
【００７７】
図１６（ａ）はストレージ装置１２がDestroy状態に設定される流れの一例を示す。ストレージ装置１２はステップ４２２でDestroyコマンドを受信する。DestroyコマンドもRevert/RevertSPコマンドと同様に発行するためには所有者ＰＩＮまたは管理者ＰＩＮが必要であり、所有者または管理者以外のユーザはDestroyコマンドを発行できず、ストレージ装置１２を破壊できないとする。ステップ４２４で認可処理部１０４はコマンドの発行権限をチェックし、発行権限のあるユーザからコマンドが発行されたか否かをステップ４２６で判定する。発行権限のあるユーザからコマンドが発行されていない場合、ステップ４２８で認証失敗となる。
【００７８】
発行権限のあるユーザからコマンドが発行された場合、ステップ４２９でストレージ装置１２はホスト装置１４からのコマンドの中で破壊状態か否かを問い合わせる確認コマンドは受け付け可とし、それ以外のコマンド（例えばリード／ライトコマンド）は受け付け不可とする。とともに、データを消去し、ＰＩＮを初期化する。この後、ストレージ装置１２はDestroy状態となる。そのため、Destroy状態はInactive状態（工場出荷時）４０Ａと同様に、管理者ＰＩＮ、ユーザＰＩＮが設定できない状態であり、アンロックやロックが不可能な状態である。また、確認コマンド以外のコマンドやコマンドは受け付け不可である。そのため、Destroy状態のストレージ装置１２は他の状態、Active状態やInactive状態に遷移することはできない。
【００７９】
図１６（ｂ）はDestroy状態の時のストレージ装置１２の動作の一例を示すフローチャートである。ストレージ装置１２はコマンドを受信すると（ステップ４３４のイエス）、受信したコマンドは確認コマンドであるか否かをステップ４３６で判定する。受信したコマンドが確認コマンドである場合、ストレージ装置１２はステップ４４０で破壊状態であることを示す破壊状態情報をホスト装置１４に返送する。受信したコマンドが確認コマンド以外のコマンドである場合、ストレージ装置１２はステップ４３８でエラーを示すエラー情報をホスト装置１４に返送する。
【００８０】
これにより、ストレージ装置１２はDestroy状態への移行指示を受けると、データ蓄積部３４のデータを消去し、ＰＩＮを初期値に戻す、ストレージ装置１２はDestroy状態においては、データ蓄積部３４へのアクセスが不可能であり、データが流出する可能性は限りなく０である。また、破壊状態の場合、ストレージ装置１２はホスト装置１４からの確認コマンドに応答して破壊状態であることを示す応答をホスト装置１４に返送するので、ホスト装置１４はストレージ装置１２が破壊状態であるか、故障状態あるいはリセット状態であるかを識別することができる。破壊・破砕装置が不要であるので、ストレージ装置１２の管理コストが低い。また、故障品との区別がつき、故障品を間違って廃棄することがないので、廃棄品からのデータの流出を防止できる。
【００８１】
なお、Destroy状態の場合リード／ライトコマンドの受け付けを不可としたが、流出してもよいデータはリードアクセスを許可してもよい。すなわち、流出してもよいデータの記憶領域はリードオンリーエリアとしてもよい。
【００８２】
［第３実施形態］  
上述の説明では、ストレージ装置１２はデータ暗号化を備えず平文データを記憶する。次に、暗号化データを記憶するストレージ装置１２の第３実施形態を説明する。図１８は、第３実施形態のストレージ装置１２Ｂの概略を示す。ストレージ装置１２Ｂは図２に示すストレージ装置１２に対して暗号処理部１４２と鍵管理部１４０が追加されている点が異なる。鍵管理部１４０はデータ暗号化のための鍵を発生して、自身に格納する。鍵は乱数発生器によって生成されるランダムな値である。暗号処理部１４２はデータ蓄積部３４に入力される平文データをこの鍵を用いて暗号化する。暗号化のアルゴリズムの一例はAdvanced Encryption Standard(AES)のような公知の共通鍵アルゴリズムがある。暗号処理部１４２はデータ蓄積部３４から出力される暗号化データに対して暗号化に用いた鍵と同じ鍵を用いて復号処理を行い、暗号化データを平文データに戻す。すなわち、データはデータ記憶部３４に書き込まれる際常に暗号化され、データ記憶部３４から読み出される際常に復号される。
【００８３】
上述したようにホスト装置１４はストレージ装置１２が実行するデータ消去の方式を指定する機能を有する。図７（ｃ）に示すように、ストレージ装置１２はデータ消去方式としてCrypto Eraseを実装することもできる。ホスト装置１４がデータ消去方式としてCrypto Eraseを指定した場合で、RevertコマンドもしくはRevertSPコマンドでデータ消去指示がなされた場合、データ消去部１１８は鍵管理部１４０に鍵の更新を指示する。鍵管理部１４０は鍵更新が指示されると、新しい乱数を生成して新しい鍵の値を発生し、今まで使っていた鍵の値を破棄して代わりに新しい鍵の値を自身に格納する。暗号処理部１４２は以後新しい値の鍵を用いて暗号化、復号処理する。
【００８４】
このように鍵の値が更新されてしまうと、既にデータ蓄積部３４に記録されていたデータは古い値の鍵で暗号化されているので、新しい値の鍵を用いて復号処理をしても、正しい平文データに復号(復元)することは不可能となる。このように鍵更新後は、暗号処理部１４２の暗号化処理、復号処理自身が無意味であるので、暗号化処理、復号処理自身の実行を停止させてもよい。図１８に示す鍵管理部１４０は鍵更新後暗号処理部１４２に対して暗号化処理、復号処理を停止させる指示を送る。
【００８５】
このため、ストレージ装置１２が暗号化データを記憶する場合も、ホスト装置１４がデータ消去方式を指定することができ、ストレージ装置１２は指定された消去方式でリセットされる。
【００８６】
［第４実施形態］  
図１９は暗号化データを記憶する第４実施形態のストレージ装置１２Ｃの概略を示す。ストレージ装置１２Ｃは図１８に示した鍵管理部１４０と暗号処理部１４２とを備えるストレージ装置１２Ｂに対して破壊処理部１１６が追加されている点が異なる。破壊処理部１１６はＩ／Ｆ処理部２２と、認可処理部１０４と、リード／ライト処理部１２２と、データ消去部１１８と、暗号処理部１４２に接続される。ストレージ装置１２がDestroy状態の場合、破壊処理部１１６は暗号処理部１４２に暗号機能の無効化を指示するとともに、リード／ライト処理部１２２にコマンド受け付け不可（確認コマンドは受け付け可）を指示する。さらに、ストレージ装置１２がDestroy状態の場合、鍵管理部１４０は新しい乱数を生成して新しい鍵の値を発生し、今まで使っていた鍵の値を破棄して代わりに新しい鍵の値を自身に格納してもよい。鍵の値の更新により以前の値の鍵で暗号化されている暗号化データの復号は不可能となる。さらに、ストレージ装置１２がDestroy状態の場合、鍵管理部１４０は暗号処理部１４２に対して暗号化処理、復号処理を停止させる指示を送ってもよい。
【００８７】
第４実施形態によれば、第２実施形態の効果と第３実施形態の効果を奏することができる。
【００８８】
［第５実施形態］  
第１〜第４実施形態では、ストレージ装置１２、１２Ａ、１２Ｂ又は１２ＣはInactive状態４０Ａのまま例えばＰＣベンダに出荷され、ＰＣベンダがＳＩＤを設定し、Active状態にしてエンドユーザに出荷し、エンドユーザが管理者ＰＩＮとユーザＰＩＮを設定すると想定していた。すなわち、第１〜第４実施形態では、少なくとも管理者ＰＩＮの初期値をＰＣベンダがエンドユーザに、たとえばマニュアルに記載するなどの方法で通知する必要があった。第５実施形態では、エンドユーザが管理者ＰＩＮを紛失してしまった場合でも、データを消去する事無く、エンドユーザに通知した管理者ＰＩＮを初期値に復旧させる方法を示す。
【００８９】
第５実施形態では、図２０に示すように、ストレージ装置１２ＤのＰＩＮ管理部１１２は、管理者ＰＩＮを複数備える。ここで、管理者ＰＩＮ１、管理者ＰＩＮ２と定義する。図２０は第１実施形態のストレージ装置１２において管理者ＰＩＮを複数備えたが、第２〜第４実施形態のストレージ装置１２Ａ、１２Ｂ、１２Ｃにおいて管理者ＰＩＮを複数備えてもよい。ＰＣベンダがActivateコマンドによってストレージ装置をActive状態にすると、管理者ＰＩＮ１と管理者ＰＩＮ２が初期値に設定される。ここで、ＰＣベンダは管理者ＰＩＮ１と管理者ＰＩＮ２の値を設定するが、管理者ＰＩＮ１の値はマニュアルに記載するなどの方法でエンドユーザに通知する。しかし、管理者ＰＩＮ２の値はエンドユーザには開示せず、ＰＣベンダはその値が外部に漏洩しないように適切に管理しておく。また、管理者ＰＩＮ１と管理者ＰＩＮ２の設定権限を図２１に示したように、分離しておく。すなわち、管理者ＰＩＮ１の権限ではSetコマンドで管理者ＰＩＮ１の値を閲覧したり、Getコマンドで管理者ＰＩＮ１の値を設定することはできるが、Setコマンドで管理者ＰＩＮ２の値を閲覧したり、Getコマンドで管理者ＰＩＮ２の値を設定することはできない。同様に、管理者ＰＩＮ２の権限では、Setコマンドで管理者ＰＩＮ２の値を閲覧したり、Getコマンドで管理者ＰＩＮ２の値を設定することができるが、Setコマンドで管理者ＰＩＮ１の値を閲覧したり、Getコマンドで管理者ＰＩＮ１の値を設定することはできない。
【００９０】
管理者ＰＩＮ１はユーザが管理するためユーザが知り得る値である。もし管理者ＰＩＮ１の権限で管理者ＰＩＮ２の値が変更（設定）されてしまうと、管理者ＰＩＮ２の値は、ＰＣベンダの工場で設定した管理者ＰＩＮ２の値と異なる値となってしまう。これを防ぐために、管理者ＰＩＮ１の権限では管理者ＰＩＮ２の値を閲覧したり(Setコマンド)、設定したり(Getコマンド)できないように、権限を分離する。なお、図２１では管理者ＰＩＮ２の権限では管理者ＰＩＮ１を設定も閲覧もできないようにしているが、管理者ＰＩＮ１の権限で管理者ＰＩＮ２が変更できないようになっていればよいため、管理者ＰＩＮ２の権限では管理者ＰＩＮ１の設定と閲覧ができるようにアクセスコントロールを設定しておいてもよい。
【００９１】
第１実施形態の図３（ａ）で示したように、管理者ＰＩＮではRevertSPコマンドを発行することができる。ＰＣベンダはエンドユーザからの要請に基づいて、管理者ＰＩＮ２でRevertSPコマンドを使ってリセット処理を行う。このリセット処理、すなわちRevertSPコマンドの実行命令は、たとえばインターネット経由でＰＣベンダの管理するサーバからリモートからエンドユーザのＰＣに送信できるようにしてもよい。RevertSPコマンドにはデータを消去するか、残すかを示すパラメータを指定する事ができる。つまり、管理者ＰＩＮ２でRevertコマンドにデータを残すオプションを指定すれば、データはそのまま残るが、管理者ＰＩＮ１は初期化される。なお、RevertSPコマンドによるリセット後でもストレージ装置はInactive状態ではなくActive状態に留まるようになっていてもよい。
【００９２】
このように管理者ＰＩＮを複数定義するようにストレージ装置１２Ｄを構成しておくことで、エンドユーザが管理者ＰＩＮ１を紛失した場合でも、管理者ＰＩＮ１の初期化を実現できる。
［第６実施形態］  
第１〜第５実施形態では、ストレージ装置１２、１２Ａ、１２Ｂ、１２Ｃ又は１２ＤはInactive状態４０Ａのまま例えばＰＣベンダに出荷され、ＰＣベンダがＳＩＤを設定し、Active状態にしてエンドユーザに出荷し、エンドユーザが管理者ＰＩＮとユーザＰＩＮを設定すると想定していた。第６の実施形態では、ＰＣベンダはＳＩＤを設定するがActive状態には遷移させずInactive状態のままストレージ装置をエンドユーザに出荷し、エンドユーザ側でActive状態への遷移、管理者ＰＩＮとユーザＰＩＮの設定をする事を想定する。
【００９３】
図３（ａ）に示したように、Inactive状態からActive状態への遷移には所有者ＰＩＮが必要である。上記想定ではＰＣベンダが管理者ＰＩＮを初期値からＰＣベンダが知り得る値に設定するが、Activateコマンドはエンドユーザ側で実行されるため、エンドユーザ側で所有者ＰＩＮをストレージ装置に入力する必要がある。これを実現するには、（１）ＰＣに所有者ＰＩＮの値そのものを備えさせる方法、（２）ＰＣは所有者ＰＩＮの値そのものは持たず、エンドユーザ側で所有者ＰＩＮを計算させる方法の２通りがある。
（１）ＰＣに所有者ＰＩＮの値そのものを備えさせる方法
ＰＣベンダはBIOSなど、ユーザが容易に閲覧(リード:read)できない領域にＳＩＤを格納してストレージ装置をエンドユーザに出荷する。エンドユーザにはInactive状態で出荷されるため、初期状態ではロック機能は無効化されている。エンドユーザがロック機能を有効化する際に、BIOSなどに格納されたプログラムによって、当該エンドユーザが容易に閲覧できない領域に格納されたＳＩＤが読み出され、Activateコマンドによってストレージ装置をInactive状態からActive状態に遷移させる。
（２）ＰＣは所有者ＰＩＮの値そのものは持たせない方法
ＰＣベンダはあらかじめ、ＳＩＤのラベル情報とストレージ装置のシリアル番号などを用いてＳＩＤを生成し、そのＳＩＤの値をストレージ装置に設定しておく。この生成アルゴリズムは、パラメータを含めてＰＣベンダのみが知り得るとしておく。ラベル情報とはＳＩＤのＩＤを意味する。ＳＩＤの値（例えば、XXX、YYY、ZZZ）とラベル情報（例えば、0001、0002、0003）とは対応している。ＳＩＤの値はユーザには配布されないが、ラベル情報はユーザに配布される。
ストレージ装置のユーザが設定(ライト：write)できない領域にＳＩＤのラベル情報が格納されている。エンドユーザ側でBIOSなどに格納されたプログラムが、当該ラベル情報と、ストレージ装置のシリアル番号などを用いてＳＩＤを生成する。エンドユーザはこのＳＩＤを用いてActivateコマンドによってストレージ装置をInactive状態からActive状態に遷移させる。また、ＰＣがインターネットに接続されている場合は、ＰＣとＰＣベンダのサーバを通信させ、ＰＣからＳＩＤのラベル情報とストレージ装置のシリアル番号をＰＣベンダのサーバに送信し、ＰＣベンダがそれらの情報を元にＳＩＤを生成してもよい。これにより、エンドユーザ側で所有者ＰＩＮを持たせずに、所有者ＰＩＮの認証を行うことができる。
あるいは、ＰＣベンダがＳＩＤの値（例えば、XXX、YYY、ZZZ）とラベル情報（例えば、0001、0002、0003）との対をテーブルに保存しておいてもよい。各ストレージ装置のユーザが容易に閲覧できない、かつユーザが設定できないＳＩＤ格納領域にＳＩＤの値（例えば、XXX）が設定される。ＰＣはＳＩＤのラベル情報、すなわち、どのＳＩＤが設定されているかをＰＣベンダのサーバに通知する。このため、ラベル情報はユーザに勝手に変更されないことが好ましい。ＰＣベンダは上記テーブルを参照してラベル情報からＳＩＤを取得することができる。ＰＣベンダは取得したＳＩＤをネットワーク経由でＰＣのプログラムに伝送する事でも、エンドユーザ側で所有者ＰＩＮを持たせずに、所有者ＰＩＮの認証を行うことができる。
上記のいずれの場合でも、ストレージ装置はＳＩＤのラベル情報を格納しておく領域を確保する必要がある。この領域はエンドユーザが通常のリード・ライトコマンドでアクセスできないようにLBA領域外に定義する事が望ましい。さらに、エンドユーザによってＳＩＤのラベル情報が勝手に変更できないように、書き込み権限をＳＩＤに制限しておく必要がある。図２２に本実施形態におけるストレージ装置１２Ｅの構成図を示す。図２２に示すように、ストレージ装置１２Ｅは新たにラベルストア(LabelStore)管理部１５０を備える。ラベルストア管理部１５０は、ラベルストアテーブル１５２へＳＩＤのラベル情報を設定したり、ラベルストアテーブル１５２からラベル情報を閲覧したりする。ラベルストアテーブル１５２はLBAへのリードコマンドやライトコマンドではなく、SetコマンドとGetコマンドによってアクセスされる。つまり、ラベルストア管理部１５０はSetコマンドによってラベルストアテーブル１５２に値を設定し、Getコマンドによってラベルストアテーブル１５２から設定された値を取得する。図２２は第１実施形態のストレージ装置１２においてラベルストア管理部１５０を備えたが、第２〜第５実施形態のストレージ装置１２Ａ、１２Ｂ、１２Ｃ又は１２Ｄにおいてラベルストア管理部１５０を備えてもよい。
さらに、図２３に示すように、ラベルストアテーブル１５２へのアクセス権限はコマンドの発行元によって制限される。どの権限でもラベルストアテーブル１５２の値を読み込める(Get)が、ラベルストアテーブル１５２への書き込み(Set)は管理者ＰＩＮの権限に制限される。例えば、ラベルストアテーブル１５２についてのSetコマンドがストレージ装置１２Ｅに供給されると、認証処理部１０２がＰＩＮ認証を行い、認可処理部１０４がSetコマンドの発行元が所有者であるか否かを判定する。Setコマンドの発行元が所有者である場合、ラベル情報がラベルストアテーブル１５２に設定される。
ＰＣベンダの工場にて、ＳＩＤを設定する。そのＳＩＤの権限を用いて、ＳＩＤのラベル情報をラベルストアテーブル１５２に格納しておく。このようにすることで、ＳＩＤのラベル情報の書き込み権限をＳＩＤに制限しておくことが実現できる。
これにより、エンドユーザ側でActivateコマンドによってInactive状態からActive状態に遷移させる事ができるようになり、ロック機能を利用しない場合は、Inactive状態で出荷されたＰＣをそのまま利用する事ができる。ロック機能を利用したいユーザは、手元でActivateコマンドによってInactive状態からActive状態に遷移させる事で、ロック機能を有効化することができる。このようにロック機能を利用するユーザと利用したくないユーザに両方の機能を提供することができ、ユーザの使い勝手を向上させることができる。
【００９４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００９５】
１２…ストレージ装置、１４…ホスト装置、２２…Ｉ／Ｆ処理部、３４…データ蓄積部、１０２…認証処理部、１０４…認可処理部、１０６…消去方式表示部、１１６…破壊処理部、１１８…データ消去部、１１２…ＰＩＮ管理部、１２２…リード／ライト処理部、１２４…消去情報管理部。
【図１】
2019057165.tif 000003
【図２】
2019057165.tif 000004
【図３】
2019057165.tif 000005
【図４】
2019057165.tif 000006
【図５Ａ】
2019057165.tif 000007
【図５Ｂ】
2019057165.tif 000008
【図６】
2019057165.tif 000009
【図７】
2019057165.tif 000010
【図８】
2019057165.tif 000011
【図９】
2019057165.tif 000012
【図１０】
2019057165.tif 000013
【図１１】
2019057165.tif 000014
【図１２】
2019057165.tif 000015
【図１３】
2019057165.tif 000016
【図１４】
2019057165.tif 000017
【図１５】
2019057165.tif 000018
【図１６】
2019057165.tif 000019
【図１７】
2019057165.tif 000020
【図１８】
2019057165.tif 000021
【図１９】
2019057165.tif 000022
【図２０】
2019057165.tif 000023
【図２１】
2019057165.tif 000024
【図２２】
2019057165.tif 000025
【図２３】
2019057165.tif 000026