(58)【調査した分野】(Int.Cl.,DB名)
前記第2の状態にある場合において前記第1のモード下でデータの保護機能が稼働する状態である第4の状態への移行を要求する第3のコマンドに応じて、前記第2の状態から前記第4の状態へ移行する第3の処理を実行し、前記第3の状態にある場合において前記第2のモード下でデータの保護機能が稼働する状態である第5の状態への移行を要求する第4のコマンドに応じて、前記第3の状態から前記第5の状態へ移行する第4の処理を実行する処理反映部と、
前記第4の状態にある場合において前記第2の状態への移行を要求する第5のコマンドに応じて、データの暗号化または暗号化されたデータの復号に用いられる暗号鍵を更新することによって前記不揮発性メモリに蓄積されるデータを無効化するとともに、ホスト装置の利用者を認証するためのPIN(Personal Identification Number)を初期化して、前記初期設定保存部が保存する前記第2の初期設定を用いて前記第4の状態から前記第2の状態へ移行する第5の処理を実行し、前記第5の状態にある場合において前記第3の状態への移行を要求する第6のコマンドに応じて、前記暗号鍵の更新および前記PINの初期化を行って、前記初期設定保存部が保存する前記第3の初期設定を用いて前記第5の状態から前記第3の状態へ移行する第6の処理を実行し、前記第4の状態または前記第5の状態にある場合において前記第1の状態への移行を要求する第7のコマンドに応じて、前記暗号鍵の更新および前記PINの初期化を行って、前記初期設定保存部が保存する前記第1の初期設定を用いて前記第4の状態または前記第5の状態から前記第1の状態へ移行する第7の処理を実行する初期化処理部と、
を具備する請求項1に記載のデータ蓄積装置。
前記第1の状態、前記第2の状態、前記第3の状態、前記第4の状態または前記第5の状態のいずれの状態にあるかを管理する状態管理部を具備する請求項2乃至5のいずれか1項に記載のデータ蓄積装置。
前記初期化処理部は、前記第5の処理または前記第6の処理の実行時における前記暗号鍵の更新有無を選択する鍵更新選択部を具備する請求項2乃至6のいずれか1項に記載のデータ蓄積装置。
前記初期化処理部は、前記第1のモードから前記第2のモードへの切り替えを要求するコマンドであって、前記第4の状態にある場合において前記第3の状態への移行を要求する第8のコマンドに応じて、前記初期設定保存部が保存する前記第3の初期設定を用いて前記第4の状態から前記第3の状態へ移行する第8の処理を実行し、前記第2のモードから前記第1のモードへの切り替えを要求するコマンドであって、前記第5の状態にある場合において前記第2の状態への移行を要求する第9のコマンドに応じて、前記初期設定保存部が保存する前記第2の初期設定を用いて前記第5の状態から前記第2の状態へ移行する第9の処理を実行する請求項2乃至9のいずれか1項に記載のデータ蓄積装置。
前記初期化処理部は、前記第8の処理または前記第9の処理を実行する場合、前記不揮発性メモリに蓄積されるデータの無効化を行わない請求項10に記載のデータ蓄積装置。
前記初期設定保存部は、前記第2の初期設定および前記第3の初期設定の一方または両方について、前記標準仕様および前記特別仕様として、異なる初期設定が適用され、プログラムが各々格納される2種類の初期イメージを保存する請求項12項に記載のデータ蓄積装置。
前記第1のモードは、TCG(Trusted Computing Group) Enterprise規格に準拠して動作するモードであり、前記第2のモードは、TCGOpal規格に準拠して動作するモードである請求項1乃至13のいずれか1項に記載のデータ蓄積装置。
【発明を実施するための形態】
【0009】
以下、実施の形態について図面を参照して説明する。
(第1実施形態)
まず、第1実施形態について説明する。
図1は、本実施形態に係るデータ蓄積装置1の構成の一例を示す図である。このデータ蓄積装置1は、暗号化機能を搭載するストレージであり、たとえばSSDやHDDなどとして実現され得る。
図1に示すように、データ蓄積装置1は、コントローラ11と、揮発性メモリ12と、不揮発性メモリ13とを有している。
【0010】
コントローラ11は、ホスト装置2からreadまたはwriteのコマンドを受け付け、揮発性メモリ12をキャッシュとして使用しながら、ホスト装置2から要求されたデータの不揮発性メモリ13からの読み出し、または、ホスト装置2から転送されるデータの不揮発性メモリ13への書き込みを行う処理回路である。なお、キャッシュは、コントローラ11内に設けられてもよい。つまり、揮発性メモリ12は必須ではない。なお、揮発性メモリ12は、キャッシュとして以外にも、たとえば不揮発性メモリ13からのプログラムのロード先や当該プログラムの作業領域などとして使用され得る。
【0011】
コントローラ11は、データを不揮発性メモリ13へ書き込む場合、そのデータを暗号鍵によって暗号化し、一方、データを不揮発性メモリ13から読み出す場合、暗号化されているデータを、暗号化に用いた同じ暗号鍵によって復号する。コントローラ11は、この暗号鍵を更新することによって、不揮発性メモリ13上のデータを一括的に無効化することができる。暗号鍵の更新は、たとえば、乱数を発生させ、暗号鍵の値を当該発生させた乱数の値に置き換えることによって実行される。また、コントローラ11は、このような暗号化によるデータの保護を、Enterpriseモード(第1のモード)またはOpalモード(第2のモード)のいずれかによって実行する。Enterpriseモードは、データ蓄積装置1が主に企業向けであるサーバ用として利用される場合に設定されるモードであり、Opalモードは、PC用として利用される場合に設定されるモードである。たとえば、Enterpriseモードは、TCG(Trusted Computing Group) Enterprise規格に準拠して動作するモードであり、また、Opalモードは、TCG Opal規格に準拠して動作するモードである。つまり、本実施形態のデータ蓄積装置1は、サーバ用またはPC用のいずれとしても利用することができるものであり、以下、この点について詳述する。
【0012】
なお、EnterpriseモードとOpalモードとの間には、たとえば、Opalモードでは起動時の認証機構(Shadow MBR)を構築する機能が必須であるのに対して、Enterpriseモードでは不要であったり、Opalモードでは管理者権限でユーザ領域のUnlockとデータ消去が可能であるのに対して、Enterpriseモードでは管理者権限であってもユーザ領域のUnlockは不可(Eraseのみ可能)であり、データ消去しかできなかったりといった違いが存在する。
【0013】
揮発性メモリ12は、たとえばDRAM(Dynamic RAM)である。また、不揮発性メモリ13は、たとえばNANDフラッシュメモリやハードディスクである。
データ蓄積装置1とホスト装置2とは、たとえば、TCG SIIS(Storage Interface Interactions Specification)仕様に規定される、SCSIインタフェース、ATAインタフェース、NVM Express(NVMe(登録商標))、e・MMCインタフェースなどによって接続される。
図1には、データ蓄積装置1とホスト装置2とが、NVMe(登録商標)インタフェースによって接続されている例を示している。
【0014】
ホスト装置2は、データ蓄積装置1をストレージとして利用する、データ蓄積装置1に対してreadやwriteを発行する装置であり得るが、ここでは、データ蓄積装置1をEnterpriseモードに設定したり、データ蓄積装置1をOpalモードに設定したり、データ蓄積装置1をEnterpriseモードからOpalモードに切り替えたり、データ蓄積装置1をOpalモードからEnterpriseモードに切り替えたりするためのモード設定・モード切替用の装置であることを想定する。
【0015】
図2は、コントローラ11の機能ブロックの一例を示す図である。
図2に示すように、コントローラ11は、インタフェース処理部111、コマンド処理部112、認可処理部113、設定管理部114および初期設定保存部115を有している。また、コントローラ11は、状態管理部116、モード設定部117、処理反映部118、初期化処理部119および鍵管理部120を有している。さらに、コントローラ11は、暗号処理部121およびread/write処理部122を有している。
【0016】
図1に示した不揮発性メモリ13の所定の領域には、コントローラ11に様々な手順を実行させるためのプログラムが格納されている。このプログラムは、たとえばデータ蓄積装置1の起動時などに、コントローラ11が具備するプロセッサによって、その一部または全部が、
図1に示した揮発性メモリ12(コントローラ11内に設けられる、キャッシュとしても用いられる揮発性メモリであってもよい。)にロードされる。コントローラ11のプロセッサは、揮発性メモリ12上のプログラムを実行する。このプログラムの記述によって、
図2に示される各処理部を含む様々な処理部をコントローラ11内に構築することができる。
【0017】
ここで、コントローラ11の各処理部の理解を助けるために、
図3を参照して、本実施形態のデータ蓄積装置1が、サーバ用またはPC用のいずれとしても利用することができるようにするために備える仕組みの概要について説明する。
本実施形態のデータ蓄積装置1は、第1に、データ蓄積装置1が取り得る状態、換言すれば、データ蓄積装置1が管理し得る状態として、符号S1で示されるNeutral Original Factory State (Neutral OFS:第1の状態)と、符号S2で示されるEnterprise Original Factory State (Enterprise OFS:第2の状態)とを追加する。
【0018】
Neutral OFSは、EnterpriseモードまたはOpalモードのいずれにも設定されていない非稼働(Inactive)の状態であって、たとえば出荷時の初期状態である。Enterprise OFSは、Enterpriseモードにおける初期状態である。
【0019】
符号S3で示されるOpal Original Factory State (Opal OFS:第3の状態)と、符号S5で示されるOpal Active (第5の状態)とは、たとえば、TCG Opal規格において定義されている、データ蓄積装置1が取り得る既存の状態、換言すれば、データ蓄積装置1が管理し得る既存の状態である。Opal OFSは、Opalモードにおける初期状態(出荷状態)であり、Opal Activeは、Opalモードで稼働中の状態である。また、符号4で示されるEnterprise Active(第4の状態)は、Enterpriseモードで稼働中の状態である。従来、データ蓄積装置1は、サーバ用またはPC用のいずれか向けの製品として製造され、サーバ用の製品は、顧客の要望に沿った設定がなされたEnterprise Activeの状態で出荷され、PC用の製品は、顧客が設定を行うOpal OFSの状態で出荷される。つまり、従来、データ蓄積装置1は、PC用の製品として製造・出荷される場合において、Opal OFSの状態に復帰(Opal OFSの状態を再現)するための初期イメージ(初期設定)のみを保持する。これに対して、Neutral OFSとEnterprise OFSとを追加する本実施形態のデータ蓄積装置1は、Neutral OFS用の初期イメージと、Enterprise OFS用の初期イメージと、Opal OFS用の初期イメージとの複数の初期イメージを保持する。ここで、初期イメージとは、たとえば、所定の初期設定が適用されたファーム(プログラム)イメージである。あるいは、初期イメージは、所定の初期設定を格納する設定ファイルなどであってもよい。
【0020】
なお、Enterprise OFSおよびOpal OFSの初期イメージは、generic(標準仕様)とcustomized(特別仕様)とが、たとえば排他選択的に存在し得る。genericは、製造・販売元が定める初期設定が適用され、一方、customizedは、顧客の要望に沿った初期設定が適用される。たとえば、Enterprise OFSについてはユーザ数を(generic時における数から)増減させたり、Opal OFSについては管理者PIN(Personal Identification Number)の初期値を(たとえばgenericではマニュアルなどに記載の値であるものを)その時の所有者PINの値にしたりといった変更が施される。また、Enterprise OFSとOpal OFSとのそれぞれについて、genericとcustomizedとの双方の初期イメージを保持し、いずれか一方を選択して使用できるようにしてもよい。
【0021】
また、本実施形態のデータ蓄積装置1は、第2に、Neutral OFSの状態においてEnterpriseモードを設定し、Enterprise OFSの状態へ移行させるコマンド(Enterprise mode:第1のコマンド[b1])と、Neutral OFSの状態においてOpalモードを設定し、Opal OFSの状態へ移行させるコマンド(Opal mode:第2のコマンド[b2])と、Enterprise Activeの状態またはOpal Activeの状態からNeutral OFSの状態に移行させるコマンド(Neutral Revert:第7のコマンド[b3])とを新設する。さらには、本実施形態のデータ蓄積装置1は、Enterprise OFSの状態からEnterprise Activeの状態に移行させるコマンド(Activate(Enterprise):第3のコマンド[b11])と、Enterprise Activeの状態からEnterprise OFSの状態に移行させるコマンド(Revert(Enterprise):第5のコマンド[b12])とについても新設する。
【0022】
なお、Activate(Enterprise)およびRevert(Enterprise)は、後述する既存のActivateおよびRevertと共通化してもよい。より詳しくは、Enterprise OFSの状態においてActivateが発行されたならば、Activate(Enterprise)と解釈し、Opal OFSの状態においてActivateが発行されたならば、既存のActivateと解釈し、また、Enterprise Activeの状態においてRevertが発行されたならば、Revert(Enterprise) と解釈し、Opal Activeの状態においてRevertが発行されたならば、既存のRevertと解釈するようにしてもよい。
【0023】
また、たとえばEnterprise mode (w/param)の(w/param)は、Enterprise modeがパラメータ付きで発行され得ることを示している(with parameter)。たとえばEnterprise OFSの初期イメージとしてgenericとcustomizedとの双方が保持されている場合、パラメータによって、それらのうちのいずれを選択して使用するのかを指定することができるようにしてもよい。
【0024】
さらに、本実施形態のデータ蓄積装置1は、Enterprise mode、Opal modeおよびNeutral Revertを発行するための専用の権限(Authority)を定義する。権限の種類については後述するが、Enterprise modeにおいては、管理者PIN(Admin PIN)およびユーザPIN(User PIN)に加えて、専用PINを定義し、Opal modeにおいては、所有者PIN(SID PIN)、管理者PIN(Admin PIN)およびユーザPIN(User PIN)に加えて、専用PINを定義する。Activate(Enterprise)およびRevert(Enterprise)を発行する権限は、管理者PINに与えられる。専用PINは、変更不可とすること、または、一定の条件下においてのみ変更可能とすることが好ましい。
【0025】
Opal OFSの状態からOpal Activeの状態に移行させるコマンド(Active:第4のコマンド[b13])と、Opal Activeの状態からOpal OFSの状態に移行させるコマンド(Revert:第6のコマンド[b14])は、たとえば、TCG Opal規格において定義されている既存のコマンドであり、その発行権限は、所有者PINに与えられる。
【0026】
Revert(Enterprise)によってEnterprise OFSの状態に移行する場合と、RevertによってOpal OFSの状態に移行する場合と、Neutral RevertによってNeutral OFSの状態に移行する場合とのいずれの場合も、暗号鍵の更新によるデータの無効化が行われ、また、その時の状態(Enterpriseモード下またはOpalモード下)において管理されるPINの初期化が行われる。
【0027】
つまり、本実施形態のデータ蓄積装置1は、出荷時の状態(Neutral OFSの状態)においてEnterpriseモードを設定することによってサーバ用として利用し得るし、出荷時の状態(Neutral OFSの状態)においてOpalモードを設定することによってPC用として利用し得る。さらに、本実施形態のデータ蓄積装置1は、サーバ用として利用していたものを、出荷時の状態(Neutral OFSの状態)に戻して、PC用に転用し得るし、PC用として利用していたものを、出荷時の状態(Neutral OFSの状態)に戻して、サーバ用に転用し得る。また、専用の権限を定義することで、その権限者以外によるモード切り替えを制限することができる。
【0028】
以上を踏まえて、
図2に戻り、コントローラ11の各処理部について説明する。
インタフェース処理部111は、ホスト装置2との間でたとえばNVMe(登録商標)規格に準拠したプロトコルによって通信する。より詳しくは、インタフェース処理部111は、ホスト装置2から発行されるコマンドを受信してコマンド処理部112へ引き渡すとともに、そのコマンドに対応する処理の結果をコマンド処理部112から受け取ってホスト装置2へ送信する。
【0029】
コマンド処理部112は、まず、インタフェース処理部111から受け取ったコマンドを認可処理部113に転送する。認可処理部113は、ホスト装置2の操作者が、そのコマンドを発行する権限を有するか否かを判定し、その結果をコマンド処理部112に通知する。コマンド処理部112は、権限を有するとの通知を認可処理部113から受けた場合、インタフェース処理部111から受け取ったコマンドを、そのコマンドに対応する処理を実行する処理部に転送する。
【0030】
認可処理部113は、コマンドの発行権限の有無を、そのコマンドを発行する権限が与えられたPINで認証が成功しているかによって判定する。PINによる認証は、設定管理部114の認証処理部114Bによって実行される。設定管理部114は、PIN管理部114Aを有している。認証処理部114Bは、PIN管理部114Aが管理するPINに基づき、認証を実行する。
図4に、PIN管理部114Aが管理するPINの種類を示す。
【0031】
図4に示すように、PIN管理部114Aは、Enterpriseモードの場合、管理者PIN、専用PINおよびユーザPINを管理する。専用PINは、前述した、Neutral Revertを発行する権限が与えられた新たに定義されるPINである。また、PIN管理部114Aは、Opalモードの場合、所有者PIN、管理者PIN、専用PINおよびユーザPINを管理する。この専用PINも、前述した、Neutral Revertを発行する権限が与えられた新たに定義されるPINである。また、PIN管理部114Aは、EnterpriseモードまたはOpalモードのいずれにも設定されていない場合、つまり、Neutral OFSの状態にある場合、少なくとも専用PINを管理する。この専用PINは、前述した、Enterprise mode、Opal modeおよびNeutral Revertを発行する権限が与えられた新たに定義されるPINである。つまり、本実施形態のデータ蓄積装置1におけるPIN管理部114Aは、専用PINをさらに管理するように機能追加されている。
【0032】
専用PIN以外のPINは、ホスト装置2からコマンドを発行することによって変更することができる。このコマンドも、インタフェース処理部111およびコマンド処理部112経由で認可処理部113に転送され、その発行権限の有無が判定される。権限を有する場合、そのコマンドは設定管理部114に転送され、PIN管理部114Aが管理するPINの変更が実行される。専用PINの値は、たとえば、データ蓄積装置1の製造・販売元から顧客側の特定者のみに通知され、または、データ蓄積装置1の製造・販売元において管理される。また、専用PINについても、たとえばNeutral OFSの状態にある場合においてのみ変更することができるようにしてもよい。
【0033】
また、PINによる認証も、ホスト装置2からのコマンドの発行に起因して実行されるものであって、そのコマンドが、インタフェース処理部111およびコマンド処理部112経由で認可処理部113に転送され、さらに、認可処理部113から設定管理部114に転送されて、認証処理部114Bによって、PIN管理部114Aが管理するPINに基づく認証が実行される。認証処理部114Bは、たとえば、ホスト装置2の操作者にPINの入力を促し、入力されたPINとPIN管理部114Aが管理するPINとを比較して、ホスト装置2の操作者を認証する。
【0034】
図5に、本実施形態のデータ蓄積装置1の状態移行に関するコマンドおよびその発行権限の一例を示す。
図5中、(A)は、EnterpriseモードまたはOpalモードのいずれにも設定されていないNeutral OFSの状態において発行されるコマンドを示し、(B)は、Enterpriseモード下において発行されるコマンドを示し、(C)は、Opalモード下において発行されるコマンドを示している。
また、
図5中の符号b1〜b3,b11〜14は、
図5中の符号b1〜b3,b11〜14と対応している。前述したように、Enterprise mode(b1)、Opal mode(b2)、Neutral Revert(b3)、Revert(Enterprise)(b12)およびActivate(Enterprise)(b11)は、新設のコマンドであって、Enterprise mode(b1)、Opal mode(b2)およびNeutral Revert(b3)を発行する権限は、専用PINに与えられ、Revert(Enterprise)(b12)およびActivate(Enterprise)(b11)を発行する権限は、管理者PINに与えられる。また、Revert(B14)およびActivate(B13)は、たとえば、TCG Opal規格において定義されている既存のコマンドであって、それらを発行する権限は、所有者PINに与えられる。たとえばEnterprise mode(b1)の発行時、認可処理部113は、専用PINで認証が成功している場合に限り、当該Enterprise modeの実行について許可と判定する。
【0035】
初期設定保存部115は、Neutral OFSイメージ151と、Enterprise OFSイメージ152と、Opal OFSイメージ153とを保持する。Neutral OFSイメージ151は、Neutral Revertの発行によってNeutral OFSの状態に移行(Neutral OFSの状態を再現)するための前述したNeutral OFS用の初期イメージである。Enterprise OFSイメージ152は、Enterprise modeまたはRevert(enterprise) の発行によってEnterprise OFSの状態に移行(Enterprise OFSの状態を再現)するための前述したEnterprise OFS用の初期イメージである。Opal OFSイメージ153は、Opal modeまたはRevertの発行によってOpal OFSの状態に移行(Opal OFSの状態を再現)するための前述したOpal OFS用の初期イメージである。つまり、本実施形態のデータ蓄積装置1における初期設定保存部115は、Enterprise OFSとOpal OFSとの両方の初期イメージを保存する。
【0036】
なお、前述したように、Enterprise OFSおよびOpal OFSの初期イメージは、genericとcustomizedとが排他選択的に存在し得るし、または、それらの両方が存在し、それらを排他選択的に使用し得る。
図2に示したEnterprise OFSイメージ152およびOpal OFSイメージ153は、genericの初期イメージである。したがって、初期設定保存部115によって保持される初期イメージは、Neutral OFSイメージ151と、Enterprise OFSイメージ152と、Opal OFSイメージ153とに限られない。たとえば、
図6に示すように、(A)Neutral OFSイメージ151と、Enterprise OFSのcustomizedの初期イメージであるEnterprise OFS(customized)イメージ152−2と、Opal OFSイメージ153とを保持する、(B)Neutral OFSイメージ151と、Enterprise OFSイメージ152と、Opal OFSのcustomizedの初期イメージであるOpal OFS(customized)イメージ153−2とを保持する、(C)Neutral OFSイメージ151と、Enterprise OFS(customized)イメージ152−2と、Opal OFS(customized)イメージ153−2とを保持する、(D)Neutral OFSイメージ151と、Enterprise OFSイメージ152と、Enterprise OFS(customized)イメージ152−2と、Opal OFSイメージ153と、Opal OFS(customized)イメージ153−2とを保持する、なども考えられる。
【0037】
状態管理部116は、データ蓄積装置1が、Neutral OFS、Enterprise OFS、Opal OFS、Enterprise ActiveまたはOpal Activeのいずれの状態にあるのかを管理する。つまり、本実施形態のデータ蓄積装置1における状態管理部116は、Neutral OFSの状態とEnterprise OFSの状態とをさらに管理するように機能追加されている。
【0038】
モード設定部117は、Enterprise modeまたはOpal modeが発行された場合であって、認可処理部113によってその実行について許可と判断された場合に、コマンド処理部112から転送されてくる当該Enterprise modeまたはOpal modeに対応する処理を実行する。より詳しくは、データ蓄積装置1を、Neutral OFSの状態からEnterprise OFSの状態に移行させる処理(第1の処理)またはNeutral OFSの状態からOpal OFSの状態に移行させる処理(第2の処理)を実行する。認可処理部113は、状態管理部116によって管理される状態がNeutral OFSの状態ではない場合、エラーをコマンド処理部112に通知する。モード設定部117は、Neutral OFSの状態からEnterprise OFSの状態またはOpal OFSの状態への移行を完了させた場合、その状態遷移を状態管理部116に通知するとともに、処理完了をコマンド処理部112に通知する。このモード設定部117は、本実施形態のデータ蓄積装置1固有の処理部である。
【0039】
処理反映部118は、Activate(Enterprise)またはActivateが発行された場合であって、認可処理部113によってその実行について許可と判断された場合に、コマンド処理部112から転送されてくる当該Activate(Enterprise) またはActivateに対応する処理を実行する。より詳しくは、データ蓄積装置1を、Enterprise OFSの状態からEnterprise Activeの状態に移行させる処理(第3の処理)またはOpal OFSの状態からOpal Activeの状態に移行させる処理(第4の処理)を実行する。認可処理部113は、状態管理部116によって管理される状態がEnterprise OFSの状態ではない場合(Activate(Enterprise)発行時)またはOpal OFSの状態ではない場合(Activate発行時)、エラーをコマンド処理部112に通知する。モード設定部117は、Enterprise OFSの状態からEnterprise Activeの状態への移行またはOpal OFSの状態からOFS Activeの状態への移行を完了させた場合、その状態遷移を状態管理部116に通知するとともに、処理完了をコマンド処理部112に通知する。つまり、本実施形態のデータ蓄積装置1における処理反映部118は、Activate(Enterprise)に応じて、Enterprise OFSの状態からEnterprise Activeの状態に移行させる処理を実行するように機能追加されている。
【0040】
初期化処理部119は、Revert(Enterprise)、RevertまたはNeutral Revertが発行された場合であって、認可処理部113によってその実行について許可と判断された場合に、コマンド処理部112から転送されてくる当該Revert(Enterprise)、RevertまたはNeutral Revertに対応する処理を実行する。より詳しくは、初期設定保存部115に保持される初期イメージを用いて、データ蓄積装置1を、Enterprise Activeの状態からEnterprise OFSの状態に移行させる処理(第5の処理)、Opal Activeの状態からOpal OFSの状態に移行させる処理(第6の処理)またはEnterprise Activeの状態もしくはOpal Activeの状態からNeutral OFSの状態に移行させる処理(第7の処理)を実行する。認可処理部113は、状態管理部116によって管理される状態がEnterprise Activeの状態ではない場合(Revert(Enterprise)発行時)またはOpal Activeの状態ではない場合(Revert発行時)、エラーをコマンド処理部112に通知する(Neutral Revert発行時は、Enterprise ActiveまたはOpal Activeのいずれの状態でもない場合)。モード設定部117は、Enterprise Activeの状態からEnterprise OFSもしくはNeutral OFSの状態への移行またはOpal Activeの状態からOpal OFSもしくはNeutral OFSの状態への移行を完了させた場合、その状態遷移を状態管理部116に通知するとともに、処理完了をコマンド処理部112に通知する。つまり、本実施形態のデータ蓄積装置1における初期化処理部119は、Neutral Revertに応じて、データ蓄積装置1を、Enterprise ActiveまたはOpal Activeの状態からNeutral OFSの状態に移行させる処理を実行するように機能追加されている。また、本実施形態のデータ蓄積装置1における初期化処理部119は、Revert(Enterprise)に応じて、データ蓄積装置1を、Enterprise Activeの状態からEnterprise OFSの状態に移行させる処理も実行するように機能追加されている。
【0041】
また、初期化処理部119は、データ蓄積装置1を、Neutral OFS、Enterprise OFSまたはOpal OFSの状態に移行させる場合、不揮発性メモリ13上のデータを無効化するために、暗号鍵を管理する鍵管理部120に対して、暗号鍵の更新を指示する。暗号鍵が更新されると、不揮発性メモリ13上に蓄積されている暗号化されたデータを正しく復号することができなくなるので、データが一括的に無効化されることになる。なお、この更新後は、更新後の暗号鍵を使って、データの暗号化と、暗号化されたデータの復号とが行われることになる。つまり、暗号鍵の更新は、データ蓄積装置1を使用できないようにするものではない。
【0042】
暗号処理部121は、鍵管理部120によって管理される暗号鍵を使って、不揮発性メモリ13に書き込まれるデータを暗号化し、または、不揮発性メモリ13から読み出された暗号化されているデータを復号する処理を実行する。そして、read/write処理部122は、不揮発性メモリ13からデータを読み出し、または、不揮発性メモリ13にデータを書き込む処理を実行する。
【0043】
次に、
図7乃至
図9を参照して、以上のような構成を有する本実施形態のデータ蓄積装置1において想定され得る使用事例について説明する。
ここでは、たとえば、サーバやPCを販売する企業(サーバベンダ)が、データ蓄積装置1の製造・販売元(サプライヤ)からデータ蓄積装置1を購入し、販売品であるサーバやPCに適用する場合を想定する。
【0044】
図7中、サーバ3は、サーバベンダが販売するコンピュータであり、たとえばその筐体内に多数のデータ蓄積装置1が収容される。なお、クライアント機器4は、たとえばサーバベンダからサーバ3を購入して使用する企業の社員など(エンドユーザ)が使用するコンピュータである。ネットワークNは、サーバ3とクライアント機器4とを繋ぐたとえばインターネットなどのネットワークである。
【0045】
また、
図7中、ストレージ設定用機器2−1は、たとえばデータ蓄積装置1の在庫管理者が使用するコンピュータであり、サーバ管理者機器2−2は、たとえばサーバ3の運用管理者が使用するコンピュータであり、PC2−3は、サーバベンダが販売するたとえばノートPCなどのコンピュータである。ストレージ設定用機器2−1は、(専用PINにて認証が成功しているという条件下で)
図1および
図2に示されるホスト装置2としてEnterprise mode、Opal mode、Neutral Revertを発行し得る。サーバ管理者機器2−2は、(管理者PINにて認証が成功しているという条件下で)
図1および
図2に示されるホスト装置2としてActivate(Enterprise)、Revert(Enterprise)を発行し得る。PC2−3は、(所有者PINにて認証が成功しているという条件下で)
図1および
図2に示されるホスト装置2としてActivate、Revertを発行し得る。
【0046】
サーバベンダは、サーバ3用およびPC2−3用としてサプライヤからデータ蓄積装置1を購入して適用する場合、従来、たとえば、サーバ3用のデータ蓄積装置1をいくつ購入して、PC2−3用のデータ蓄積装置1をいくつ購入するかや、サーバ3用のデータ蓄積装置1はいくつ在庫が存在して、PC2−3用のデータ蓄積装置1はいくつ在庫が存在するかなど、購入や在庫管理をサーバ3用とPC2−3用とで各々行うことが必要であった。これに対して、本実施形態のデータ蓄積装置1は、サーバ3用またはPC2−3用のいずれとしても利用することができるので、サーバベンダは、サーバ3用なのかPC2−3用なのかを区別する必要なく、サプライヤからデータ蓄積装置1を一括して購入することができる。一方、サプライヤは、サーバ用とPC用との2種類の製品(2種類のデータ蓄積装置1)を製造することが不要となる。
【0047】
データ蓄積装置1は、Neutral OFSの状態でサプライヤから出荷される。また、サプライヤからは、出荷されたデータ蓄積装置1の専用PINの値が購入者(たとえばサーバベンダの在庫管理者)に通知される。在庫管理者は、この専用PINを使って、ストレージ設定用機器2−1により、サーバ3に適用するデータ蓄積装置1については、Enterprise modeを発行して、Enterpriseモードに設定することで、Enterprise OFSの状態に移行させ(a1)、PC2−3に適用するデータ蓄積装置1については、Opal modeを発行して、Opalモードに設定することで、Opal OFSの状態に移行させる(a2)。
【0048】
Enterprise OFSの状態でサーバ3に収容されたデータ蓄積装置1は、(管理者PINにて認証が成功している)サーバ管理者機器2−2からActive(Enterprise)の発行を受けて、Enterprise Activeの状態に移行する。または、(管理者PINで認証が成功している)ストレージ設定用機器2−1でデータ蓄積装置1をEnterprise Activeの状態に移行させて、Enterprise Activeの状態のデータ蓄積装置1をサーバ3に収容するようにしてもよい。(管理者PINにて認証が成功している)サーバ管理者機器2−2からは、Revert(Enterprise)を発行することが可能であり、Enterprise OFSの状態に移行させることができる。
【0049】
同様に、Opal OFSの状態でPC2−3に収容されたデータ蓄積装置1は、(所有者PINにて認証が成功している)PC2−3からActiveの発行を受けて、Activeの状態に移行する。(所有者PINにて認証が成功している)PC2−3からは、Revertを発行することが可能であり、Opal OFSの状態に移行させることができる。
【0050】
また、本実施形態のデータ蓄積装置1は、たとえば、サーバ3用からPC2−3用に流用することなどが可能である(a3)。逆に、PC2−3用からサーバ3用への流用も可能である(a4)。換言すれば、Enterpriseモード−Opalモード間でのモード切り替えが可能である。サーバ3用からPC2−3用に流用されるデータ蓄積装置1は、Enterprise Activeの状態でサーバ3から取り外され、(専用PINにて認証が成功している)ストレージ設定用機器2−1からNeutral Revertの発行を受け、Neutral OFSの状態に移行する。Neutral OFSの状態は、出荷時の状態なので、前述の手順で、Opal OFSの状態に移行した後、PC2−3に収容される。
【0051】
PC2−3用からサーバ3用に流用されるデータ蓄積装置1も、Opal Activeの状態でPC2−3から取り外され、(専用PINにて認証が成功している)ストレージ設定用機器2−1からNeutral Revertの発行を受け、Neutral OFSの状態に移行する。Neutral OFSの状態に移行した後は、前述の手順で、Enterprise OFSまたはEnterprise Activeの状態に移行した後、サーバ3に収容される。
【0052】
なお、サプライヤから出荷されるデータ蓄積装置1の状態は、必ずしもNeutral OFSの状態としなくともよい。たとえば、サーバ用とPC用とで個別にサーバベンダからの発注を受け、Enterprise OFSまたはEnterprise Activeの状態のデータ蓄積装置1と、Opal OFSの状態のデータ蓄積装置1とを納品するようにしてもよい。たとえばサーバ用のデータ蓄積装置1をPC用に流用したいという事情がサーバベンダ側に生じた場合、
図8に示すように、そのデータ蓄積装置1をサーバベンダから回収し、サプライヤが、(専用PINにて認証が成功している)ストレージ設定用機器2−1によって、EnterpriseモードからOpalモードへの切り替えを行った上で、サーバベンダに返却するようにしてもよい。この場合、専用PINの値をサーバベンダに通知することは不要である。PC用のデータ蓄積装置1をサーバ用に流用したいという事情がサーバベンダ側に生じた場合も同様である。専用PINの値をサーバベンダに通知することが不要となると、サプライヤにおいては、たとえばサーバベンダごとに専用PINの値を分けて管理するといったことを行う必要がなくなり、管理すべき専用PINの数を大幅に削減することができる。
また、たとえば
図9に示すように、サプライヤ側のストレージ設定用機器2−1−1とサーバベンダ側のストレージ設定用機器2−1−2とをネットワークN2で接続し、サーバベンダ側のストレージ設定用機器2−1−2に収容されたデータ蓄積装置1へサプライヤ側のストレージ設定用機器2−1−1からリモートでアクセスできるようにして、サプライヤ側のストレージ設定用機器2−1−1から(サーバベンダ側のストレージ設定用機器2−1−2経由で)データ蓄積装置1へ直接的に専用PINを送信できるようにしてもよい。この場合も、たとえば、サーバ用のデータ蓄積装置1をPC用に流用したいという事情がサーバベンダ側に生じた場合において、専用PINの値をサーバベンダに通知することを不要とすることができる。
【0053】
つまり、データ蓄積装置1のモード設定やモード切り替えについて、サーバベンダ側において実行可能とすることは必須ではない。この場合も、サプライヤにおいては、サーバ用とPC用との2種類の製品を製造することが不要となるという効果がある。
このように、本実施形態のデータ蓄積装置1は、サーバ用またはPC用のいずれとしても利用することができる。
【0054】
(第2実施形態)
次に、第2実施形態について説明する。第1実施形態と同一の構成要素については、同一の符号を使用し、重複する説明は省略する。
図10は、本実施形態に係るデータ蓄積装置1が具備するコントローラ11の機能ブロックの一例を示す図である。
【0055】
図10に示すように、本実施形態のデータ蓄積装置1は、コントローラ11の初期化処理部119が、鍵更新選択部119Aを具備する。
鍵更新選択部119Aは、Enterprise Activeの状態からEnterprise OFSの状態またはOpal Activeの状態からOpal OFSの状態に移行する場合において、データを無効化しない、つまり、暗号鍵の更新を行わないオプションを提供するために設けられる処理部である。そのために、本実施形態のデータ蓄積装置1においては、たとえば、
図11に示すように、Enterprise OFSの状態に移行するためのコマンドとして、RevertSP(Enterprise)(b12−2)を新設するとともに、Opal OFSの状態に移行するためのコマンドとして、RevertSP(b14−2)を新設する。
図5と同様、
図11中、(A)は、EnterpriseモードまたはOpalモードのいずれにも設定されていないNeutral OFSの状態において発行されるコマンドを示し、(B)は、Enterpriseモード下において発行されるコマンドを示し、(C)は、Opalモード下において発行されるコマンドを示している。RevertSP(Enterprise)またはRevertSPが発行された場合、鍵更新選択部119Aは、暗号鍵の更新を行わないと判断する。なお、Activate(Enterprise)およびRevert(Enterprise)と同様、RevertSP(Enterprise)は、RevertSPと共通化してもよい。つまり、Enterprise ActiveまたはOpal Activeのいずれの状態にあるかによって、RevertSP(Enterprise)またはRevertSPのいずれであるのかを判断してもよい。また、RevertSP(Enterprise)およびRevertSPを新設することに代えて、Revert(Enterprise)またはRevertにパラメータを付すことで、暗号鍵の更新を行うか否かを指定することができるようにしてもよい(w/param)。
【0056】
初期化処理部119は、鍵更新選択部119Aによって暗号鍵の更新を行うと判断された場合、鍵管理部120に対して、暗号鍵の更新を指示し、一方、鍵更新選択部119Aによって暗号鍵の更新を行わないと判断された場合、鍵管理部120に対する暗号鍵の更新の指示は行わない。
【0057】
RevertSP(Enterprise)およびRevertSPを新設することによって、本実施形態のデータ蓄積装置1においては、Enterpriseモード下において使用される暗号鍵と、Opalモード下において使用される暗号鍵との両方が、鍵管理部120によって管理され得る。つまり、本実施形態のデータ蓄積装置1における鍵管理部120は、2つの鍵を管理するように機能追加されている。初期化処理部119は、暗号鍵の更新を鍵管理部120に指示する場合、それらのうちのいずれを更新するのかを指示する。より詳しくは、初期化処理部119は、RevertSP(Enterprise)が発行された場合であって、状態管理部116によって管理される状態がEnterprise Activeである場合、Enterpriseモード下において使用される暗号鍵の更新を鍵管理部120に指示し、RevertSPが発行された場合であって、状態管理部116によって管理される状態がOpal Activeである場合、Opalモード下において使用される暗号鍵の更新を鍵管理部120に指示する。
【0058】
図12に、暗号鍵の保持状態の遷移の一例を示す。
図12中、Act-Oは、Activateを表し、Act-Eは、Activate(Enterprise)を表している。また、Rvtは、Revert(Enterprise)またはRevertを表し、RvSPは、RevertSP(Enterprise)またはRevertSPを表している。さらに、No keyは、Opalモード下において使用される暗号鍵およびEnterpriseモード下において使用される暗号鍵のいずれもが保持されていない状態を表し、Opal keyは、Opalモード下において使用される暗号鍵のみが保持されている状態を表し、Ent keyは、Enterpriseモード下において使用される暗号鍵のみが保持されている状態を表し、Both keysは、Opalモード下において使用される暗号鍵およびEnterpriseモード下において使用される暗号鍵の両方が保持されている状態を表している。
【0059】
図12に示すように、Enterpriseモード下において使用される暗号鍵が保持されていない状態で、Activate(Enterprise)が発行されると、Enterpriseモード下において使用される暗号鍵が生成されて保持される。同様に、Opalモード下において使用される暗号鍵が保持されていない状態で、Activateが発行されると、Opalモード下において使用される暗号鍵が生成されて保持される。Enterpriseモード下において使用される暗号鍵が保持されている状態で、Activate(Enterprise)が発行された場合は、当該保持されている暗号鍵が継続して保持(使用)される。同様に、Opalモード下において使用される暗号鍵が保持されている状態で、Activateが発行された場合は、当該保持されている暗号鍵が継続して保持(使用)生成されて保持される。
【0060】
また、
図12に示すように、RevertSP(Enterprise)またはRevertSPが発行された場合、暗号鍵の更新は行われずに、その時点で保持されている暗号鍵は継続して保持されることとなり、Revert(Enterprise)が発行された場合、Enterpriseモード下において使用される暗号鍵のみの更新が行われて、Opalモード下において使用される暗号鍵が保持されているならば、その暗号鍵は継続して保持されることとなり、Revertが発行された場合、Opalモード下において使用される暗号鍵のみの更新が行われて、Enterpriseモード下において使用される暗号鍵が保持されているならば、その暗号鍵は継続して保持されることとなる。
【0061】
このオプションの提供によって、本実施形態のデータ蓄積装置1においては、初期化後(Enterprise OFSまたはOpal OFSの状態への移行後)におけるデータアクセスを許可するという運用も可能となる。
たとえば、あるデータ蓄積装置1がOpalモード→Enterpriseモード→Opalモードと使用された場合を想定する。また、このデータ蓄積装置1は、不揮発性メモリ13が複数のパーティションに分けられ、Opalモードの場合とEnterpriseモードの場合とで異なるパーティションが用いられるものと想定する。このような場合、たとえば、Opal用の暗号鍵を更新しないようにモードの切り替えを行えば、1回目のOpalモード時に不揮発性メモリ13に蓄積されたデータを(Enterpriseモードを経由した後の)2回目のOpalモード時に利用することが可能となる。
(第3実施形態)
次に、第3実施形態について説明する。第1実施形態または第2実施形態と同一の構成要素については、同一の符号を使用し、重複する説明は省略する。
【0062】
図13は、本実施形態に係るデータ蓄積装置1が具備するコントローラ11の機能ブロックの一例を示す図である。
図13に示すように、本実施形態のデータ蓄積装置1は、コントローラ11の初期化処理部119が、Shadow MBR更新選択部119Bを具備する。
【0063】
前述したように、Opalモードでは、Shadow MBRを構築する機能が必須である。このShadow MBRは、Opal OFSの状態への復帰時に消去される。この点に関して、Shadow MBR更新選択部119Bは、Opal OFSの状態への復帰時にShadow MBRを消去しないオプションを提供する。ここで、Shadow MBRの消去とは、Shadow MBRを初期化(ゼロ化)すること、より詳しくは、プリブート認証を実行するプログラムを稼働させるべくShadow MBRに記憶されている情報を消去することである。
【0064】
たとえば、
図14に示すように、Opal Activeの状態からOpal OFSの状態に移行させるコマンドであるRevertにパラメータを付すことができるようにし、このパラメータによって、Shadow MBRを消去するか否かを指定できるようにしてもよい(b14´)。または、Revertとは別のコマンドを新設し、それらを使い分けることによって、Shadow MBRを消去するか否かを指定できるようにしてもよい.
Shadow MBRを消去しない場合の初期化処理部119の手順として、たとえば、Shadow MBRを退避してから、初期設定保存部115に保存されるOpal OFSイメージ153で初期化した後、待避しておいたShadow MBRを戻すことなどが考えられる。
【0065】
ここで、
図15を参照して、Shadow MBRの概要について説明する。
Shadow MBR52は、プリブート認証などと称される認証を行うためにデータ蓄積装置1内に構築される。Shadow MBR52が構築されたデータ蓄積装置1に対して、ホスト装置2がMBR(Real MBR)51へのアクセスを行うと、まず、そのアクセス先がShadow MBR52に変換される(f1)。Shadow MBR52は、認証プログラム52Aを有し、認証プログラム52Aは、Real MBR51へアクセスしようとするホスト装置2に対して、たとえばPINの転送を要求する。ホスト装置2から転送されるPINが、データ蓄積装置1内において管理されるPINと一致する場合、認証プログラム52Aは、認証成立(認証成功)と判定し、Real MBR51の起動プロセスを開始させる(f2)。これにより、ホスト装置2とデータ蓄積装置1との接続が確立する(f3)。
【0066】
Opal OFSの状態への復帰時にShadow MBRを消去しないオプションの提供によって、本実施形態のデータ蓄積装置1においては、Opal OFSの状態への復帰前に構築されていたShadow MBRを継続して利用すること、つまり、Shadow MBRを再構築(再設定)する手間を省くことが可能となる。
【0067】
(第4実施形態)
次に、第4実施形態について説明する。第1実施形態乃至第3実施形態と同一の構成要素については、同一の符号を使用し、重複する説明は省略する。
図16は、本実施形態に係るデータ蓄積装置1が具備するコントローラ11の機能ブロックの一例を示す図である。
【0068】
図16に示すように、本実施形態のデータ蓄積装置1は、コントローラ11の初期化処理部119が、ダイレクト遷移処理部119Cを具備する。
第1実施形態乃至第3実施形態においては、Enterpriseモード−Opalモード間の切り替え時には、Neutral OFSの状態を介在させていた。より詳しくは、EnterpriseモードからOpalモードへの切り替えは、Enterprise Activeの状態においてNeutral Revertを発行してNeutral OFSの状態に移行し、当該Neutral OFSの状態においてOpal modeを発行してOpal OFSの状態に移行することで実施する。また、OpalモードからEnterpriseモードへの切り替えは、Opal Activeの状態においてNeutral Revertを発行してNeutral OFSの状態に移行し、当該Neutral OFSの状態においてEnterprise modeを発行してEnterprise OFSの状態に移行することで実施する。
【0069】
ダイレクト遷移処理部119Cは、これらとは別の手順で、
図17に示すように、Opal Activeの状態からNeutral OFSの状態を経ずにEnterprise OFSの状態に移行すること(b4)と、Enterprise Activeの状態からNeutral OFSの状態を経ずにOpal OFSの状態に移行すること(b5)を可能とするために設けられる処理部である。そのために、本実施形態のデータ蓄積装置1においては、
図17および
図18に示すように、Opal Activeの状態から直接的にEnterprise OFSの状態に移行するためのコマンドとして、Enterprise Revert(第8のコマンド[b4])を新設するとともに、Enterprise Activeの状態から直接的にOpal OFSの状態に移行するためのコマンドとして、Opal Revert(第9のコマンド[b5])を新設する。Enterprise RevertおよびOpal Revertを発行する権限は、専用PINに与えられる。
図5と同様、
図18中、(A)は、EnterpriseモードまたはOpalモードのいずれにも設定されていないNeutral OFSの状態において発行されるコマンドを示し、(B)は、Enterpriseモード下において発行されるコマンドを示し、(C)は、Opalモード下において発行されるコマンドを示している。
【0070】
ダイレクト遷移処理部119Cは、Enterprise Revertが発行された場合、初期設定保存部115に保持される初期イメージを用いて、データ蓄積装置1を、Opal Activeの状態からEnterprise OFSの状態に移行させる処理(第8の処理)を実行する。また、ダイレクト遷移処理部119Cは、Opal Revertが発行された場合、初期設定保存部115に保持される初期イメージを用いて、データ蓄積装置1を、Enterprise Activeの状態からOpal OFSの状態に移行させる処理(第9の処理)を実行する。
【0071】
また、Enterprise RevertおよびOpal Revertについては、パラメータを付すことができるようにして、初期イメージとして、genericまたはcustomizedのいずれかを指定することができるようにしてもよい。
たとえば、Enterprise RevertまたはOpal Revertによって、Enterprise OFSまたはOpal OFSの状態に移行する場合、初期化処理部119は、鍵管理部120に対する暗号鍵の更新の指示を行わないようにしてもよい。つまり、EnterpriseモードまたはOpalモードの一方において蓄積されたデータを、EnterpriseモードまたはOpalモードの他方で初期化された後に使用できるようにしてもよい。
【0072】
このように、本実施形態のデータ蓄積装置1においては、Enterpriseモード−Opalモード間の直接的な遷移が可能となる。
以上のように、前述した各実施形態に係るデータ蓄積装置1によれば、サーバ用またはPC用のいずれとしても利用することができる暗号化機能搭載のデータ蓄積装置を提供することが実現される。
【0073】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。