記憶装置、記憶システム及び認証方法
【課題】記憶されているユーザデータを不正な読出しから保護することができる記憶装置を得ること。
【解決手段】不揮発性半導体メモリを有する記憶装置であり、任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報及び正規のユーザを認証する第1ユーザ認証情報を予め記憶する認証情報記憶部、を備え、新たに接続された現在のホスト装置から受けた第2機器認証情報と認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行し、機器認証が失敗した場合、不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施する。
【解決手段】不揮発性半導体メモリを有する記憶装置であり、任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報及び正規のユーザを認証する第1ユーザ認証情報を予め記憶する認証情報記憶部、を備え、新たに接続された現在のホスト装置から受けた第2機器認証情報と認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行し、機器認証が失敗した場合、不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、記憶装置、記憶システム及び認証方法に関する。
【背景技術】
【0002】
従来、不揮発性半導体メモリであるNANDメモリを用いた認証機能を持つSolid Sate Drive(SSD)(以下、記憶装置という)は、アクセス権のあるユーザのパスワード認証が成功すると、ホスト装置からのデータアクセス要求を受理し、ホスト装置から指定された領域に記録されたユーザデータを出力する。さらに、記憶装置が暗号化機能を持つ場合は、パスワード認証が成功すると、予め保持した暗号鍵を復号鍵に設定し、この復号鍵により暗号化ユーザデータを復号して得られたユーザデータを出力する。このように、従来の記憶装置は、アクセス権のあるユーザに対し、正しいユーザデータを出力可能となっている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−5408号公報
【特許文献2】特開2009−211228号公報
【特許文献3】特開2003−249083号公報
【特許文献4】特開平8−306196号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態は、データ漏洩を防止することが可能な記憶装置、記憶システム及び認証方法を提供する。
【課題を解決するための手段】
【0005】
本願発明の一態様によれば、ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置は、任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報、及び正規のホスト装置を使用する正規のユーザを認証する第1ユーザ認証情報を予め記憶する認証情報記憶部、を備える。また、この記憶装置は、新たに接続された現在のホスト装置から受けた第2機器認証情報と前記認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行し、機器認証が失敗した場合、不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施する。また、この記憶装置は、機器認証の後、現在のホスト装置から受けた第2ユーザ認証情報と認証情報記憶部内の第1ユーザ認証情報とに基づいてユーザ認証を実行し、ユーザ認証が成功したとき、現在のホスト装置から受けた読出要求に基づいて、不揮発性半導体メモリに記憶されているユーザデータを現在のホスト装置に出力する。
【図面の簡単な説明】
【0006】
【図1】図1は、第1の実施形態にかかる記憶システムの構成の一例を示すブロック図である。
【図2】図2は、第1の実施形態にかかる記憶システムの暗号化処理を行う場合の構成の一例を示すブロック図である。
【図3】図3は、NANDメモリチップに含まれる1個の物理ブロックの構成例を示す図である。
【図4】図4は、アドレス変換情報の構成例を示す図である。
【図5】図5は、NANDメモリの記憶領域の区分を模式的に示す図である。
【図6】図6は、記憶装置が保持するデータと格納領域の一例を示す図である。
【図7】図7は、暗号化処理を行う場合のSRAM上のデータの一例を示す図である。
【図8】図8は、メモリ上のデータの一例を示す図である。
【図9】図9は、第1の実施形態の構成例α1の動作の一例を示すフローチャートである。
【図10】図10は、第1の実施形態の構成例βの動作の一例を示すフローチャートである。
【図11】図11は、ステップST40の詳細処理手順の一例を示すフローチャートである。
【図12】図12は、第2の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図13】図13は、第2の実施形態におけるメモリ内のデータを説明するための模式図である。
【図14】図14は、第2の実施形態における動作を説明するためのフローチャートである。
【図15】図15は、第2の実施形態における動作を説明するためのフローチャートである。
【図16】図16は、正規のホスト装置が複数ある場合の第1機器認証情報および内部情報の一例を示す図である。
【図17】図17は、一般的なパスワード認証のみを実行するユーザデータ暗号化機能を持つ記憶装置を用いた記憶システムの動作を示す模式図である。
【図18】図18は、第2の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図19】図19は、第2の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図20】図20は、第2の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図21】図21は、第2の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図22】図22は、第2の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図23】図23は、第2の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図24】図24は、第3の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図25】図25は、第3の実施形態におけるメモリ内のデータを説明するための模式図である。
【図26】図26は、第3の実施形態における動作を説明するためのフローチャートである。
【図27】図27は、第3の実施形態における動作を説明するためのフローチャートである。
【図28】図28は、第4の実施形態における動作を説明するためのフローチャートである。
【図29】図29は、第5の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図30】図30は、第5の実施形態における動作を説明するためのフローチャートである。
【図31】図31は、第6の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図32】図32は、第6の実施形態における動作を説明するためのフローチャートである。
【図33】図33は、第7の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図34】図34は、第7の実施形態における破棄ログ情報を説明するための模式図である。
【図35】図35は、第8の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図36】図36は、第8の実施形態における破棄証明書を説明するための模式図である。
【図37】図37は、第8の実施形態におけるメモリ内のデータを説明するための模式図である。
【図38】図38は、第10の実施形態における動作を説明するためのフローチャートである。
【発明を実施するための形態】
【0007】
従来の記憶装置は、ユーザデータを記憶した状態で、アクセス権のあるユーザによって外部のシステム環境に持ち出された場合、パスワード認証の成功により、復号したユーザデータを漏洩させてしまう心配がある。
【0008】
また、小型の記憶装置は容易に持ち出し可能なため、盗難が発生し易い上に、盗難後にパスワードが破られると、ユーザデータを漏洩させてしまう。このため、盗難時のユーザデータ漏洩防止のため、持ち出し先で確実にユーザデータが無効化される必要がある。
【0009】
このように、従来の記憶装置は、使用可能なシステム環境とは異なる環境からアクセスされた場合には、ユーザのアクセス権の有無によらず、記憶しているユーザデータを無効にしたいという課題がある。
【0010】
ユーザデータの無効化については、例えば、記憶装置全体を無効データで上書きする方法が一番知られているが、これは非常に時間が掛かるため、データを読み出そうとしている悪意を持った攻撃者に気づかれ、電源を切られて、別の攻撃をされるといった問題もある。このため、短い時間でユーザデータの無効化処理を行うことが望ましい。
【0011】
短時間のユーザデータ無効化技術としては、データを暗号化して記録し、その鍵を破棄することで、データの復号を困難にしてデータを事実上無効化する暗号消去と言われる方式が存在するが、この方式では、記憶装置の処理速度が遅くなるか、遅くならないようにするためには、暗号回路を組み込む必要があり、装置が複雑化、大型化、消費電力の増大といった課題がある。また、暗号装置は、法規制の対象になる国が多く、暗号機能を持つ記憶装置が使えない国がある、法規制に適合するため取り扱いが煩雑になる、という課題もある。
【0012】
また、廃棄時もユーザデータを無効化したいが、記憶装置全体を無効データ上書きする方法では時間がかかりすぎるという課題もあった。
【0013】
以下に添付図面を参照して、実施形態にかかる記憶装置、記憶システム及び認証方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【0014】
(第1の実施形態)
図1は、第1の実施形態にかかる記憶システムの構成の一例を示すブロック図である。図2は、第1の実施形態にかかる記憶システムの暗号化処理を行う場合の構成の一例を示すブロック図である。
【0015】
記憶装置では、記憶されるデータを保護するためにユーザデータを暗号化して記憶することがある。このように暗号化処理を行うと、セキィリティは向上するが、一方で暗号化モジュールおよび復号化モジュールを備える必要があり、また書き込みや読み出し時の処理量が増加する。本実施形態では、暗号化を行わない例(図1の構成例)を主に説明を行うが、暗号化処理を行わない例(図2の構成例)についても並行して説明を行う。なお、同一の符号を有する構成要素は、同様または類似の機能を有する構成要素を示している。
【0016】
図1に示すように、本実施形態の記憶システムは、電源オフ時にデータが消去される揮発性メモリを有し、任意のホスト装置30A,30B,…に着脱自在に接続可能な記憶装置10と、任意のホスト装置30A,30B,…のうち、記憶装置10への接続権限をもつ正規のホスト装置30Aとを備えている。
【0017】
記憶装置10は、フューズ8、電源回路5、温度センサ7、記憶媒体である不揮発性半導体メモリ(NANDメモリ)11、DRAM(Dynamic Random Access Memory:バッファメモリ)19及びドライブ制御回路20を備えている。ドライブ制御回路20は、機器認証モジュール21、ユーザ認証モジュール22、SRAM(Satic Random Access Memory:揮発性メモリ)25、データ記憶モジュール26およびデータ読出モジュール27を備える。なお、ここでは、不揮発性半導体メモリ11がNANDメモリである場合について説明するが、NANDメモリ以外の不揮発性半導体メモリであってもよい。
【0018】
また、図2に示すように、記憶装置10が、ユーザデータの暗号化処理を行う機能を持つ場合は、ドライブ制御回路20は、図1の例のドライブ制御回路20の構成要素に加え、さらに暗号化モジュール23、復号化モジュール24を備える。
【0019】
まず、図1の構成例の各構成要素と基本動作について説明する。本実施形態では、記憶装置が備える不揮発性半導体メモリとしてNANDメモリ11を用いている。NANDメモリ11は、図1および図2に示すように、4並列動作を行う4つの並列動作要素11a〜11dを有し、1つの並列動作要素は、2つのNANDメモリパッケージを有する。各NANDメモリパッケージは、積層された複数のNANDメモリチップ(例えば、1チップ=2GB)によって構成されている。
【0020】
図1の例では、各NANDメモリパッケージは、積層された4枚のNANDメモリチップによって構成されており、NANDメモリ11は64GBの容量を有する。例えば、各NANDメモリパッケージが、積層された8枚のNANDメモリチップによって構成されている場合は、NANDメモリ11は128GBの容量を有することになる。
【0021】
DRAM19は、ホスト装置30AとNANDメモリ11と間でのデータ転送用キャッシュおよび作業領域用メモリとして機能する。また、DRAM19の代わりに、不揮発性メモリであるFeRAM(Ferroelectric RAM)を使用しても良い。ドライブ制御回路20は、ホスト装置30AとNANDメモリ20との間でDRAM19を介してデータ転送制御を行うとともに、記憶装置10内の各構成要素を制御する。また、ドライブ制御回路20は、状態表示用LED(Light Emitting Diode)6にステータス表示用信号を供給するとともに、電源回路 からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を自回路内および記憶装置10内の各部に供給する機能も有している。なお、LED6は、記憶装置10自体には無く、例えばホスト装置に設けたLED6を点灯させるための信号を出力するための端子のみを設けてあってもよい。
【0022】
各NANDメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。図3(a)は、NANDメモリチップに含まれる1個の物理ブロックの構成例を示す回路図である。各物理ブロックは、X方向に沿って順に配列された(p+1)個のNANDストリングを備えている(pは、0以上の整数)。(p+1)個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL0〜BLpに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
【0023】
各メモリセルトランジスタMTは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、および電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタMTは、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
【0024】
また、メモリセルトランジスタMTは、浮遊ゲート電極を有する構造に限らず、MONOS(Metal-Oxide-Nitride-Oxide-Silicon)型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることでしきい値調整可能な構造であってもよい。MONOS構造のメモリセルトランジスタMTについても同様に、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
【0025】
各NANDストリングにおいて、(q+1)個のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタMTは、隣接するもの同士で拡散領域(ソース領域若しくはドレイン領域)を共有するような形でY 方向に直列接続される。
【0026】
そして、最もドレイン側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワード線WL0〜WLqにそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワード線WLqに接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。
【0027】
ワード線WL0〜WLqは、物理ブロック内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続される(p+1)個のメモリセルトランジスタMTは1ページ(物理ページ)として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【0028】
また、ビット線BL0〜BLpは、ブロック間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
【0029】
図3(b)は、例えば、1個のメモリセルトランジスタMTに2ビットの記憶を行う4値データ記憶方式でのしきい値分布を示す模式図である。4値データ記憶方式では、上位ページデータ“x”と下位ページデータ“y”で定義される4 値データ“xy”の何れか1つをメモリセルトランジスタMTに保持可能である。
【0030】
この、4値データ“xy”は、メモリセルトランジスタMTのしきい値電圧の順に、例えば、データ“11”、“01”、“00”、“10”が割り当てられる。データ“11”は、メモリセルトランジスタMTのしきい値電圧が負の消去状態である。
【0031】
下位ページ書き込み動作においては、データ“11”(消去状態)のメモリセルトランジスタMTに対して選択的に、下位ビットデータ“y”の書き込みによって、データ“10”が書き込まれる。上位ページ書き込み前のデータ“10”のしきい値分布は、上位ページ書き込み後のデータ“01”とデータ“00”のしきい値分布の中間程度に位置しており、上位ページ書き込み後のしきい値分布よりブロードであってもよい。上位ページ書き込み動作においては、データ“11”のメモリセルと、データ“10”のメモリセルに対して、それぞれ選択的に上位ビットデータ“x”の書き込みが行われて、データ“01”およびデータ“00”が書き込まれる。
【0032】
論理アドレス(Logical Block Address 略してLBAともいう)と、NANDメモリ11の物理アドレスと、は、アドレス変換情報により管理される。図4は、アドレス変換情報の構成例を示す図である。ドライブ制御回路20は、ホスト装置30Aから要求されたユーザデータの読み出し時に、アドレス変換情報を用いて当該ユーザデータの論理アドレスに対応する物理アドレスを取得して、NANDメモリ11から当該ユーザデータの読み出しを実施する。なお、ここでは、論理アドレスと物理アドレスを直接変換する例について説明したが、これに限らず、多段階でアドレスを変換する(ホスト装置の論理アドレスから記憶装置の論理アドレスへ一旦変換した後に、物理アドレスへ変換する等)方式としてもよい。
【0033】
図5は、NANDメモリ11の記憶領域の区分を模式的に示す図である。NANDメモリ11の記憶領域は、図5に示すように、通常LBA領域11bと、特殊LBA領域11aと、特殊領域11cに区分される。ここで、通常LBA領域11bは、ホスト装置30Aからのコマンド(Readコマンド/Writeコマンドなど)によってアクセス可能なLBA領域(論理アドレス領域)、すなわちユーザデータ領域であるのに対し、特殊LBA領域11a、特殊領域11cは、ホスト装置30Aから発出される通常のコマンドではアクセスすることができないLBA領域である。
【0034】
NANDメモリ11のうち、LBAが対応付けされていない領域が、特殊領域11cである。本実施の形態では、非ユーザ領域は、管理情報の記録等に用いられる特殊LBA領域(システムエリア)11aと、それ以外の、ファームウェアが記録された領域等、またフリーブロックFBを含むLBAが割り当てられていない領域が属する特殊領域11cで構成される。特殊LBA領域11a、特殊領域11cは、記憶装置10の内部に展開されるファームウェア(FW)を構成するモジュールが発出するコマンドによってアクセスすることが可能である。また、ファームウェア自体は、記憶装置10内、例えばドライブ制御装置内の図示しない読み出し専用メモリ(ROM)内に予め記録されたIPL(Initial Program Loader)と呼ばれるファームウェアロード用コードによって、起動時に読み出されて例えばSRAM25に展開されて実行される。なお、これらの特殊LBA領域11a、通常LBA領域11b、特殊領域11cは、物理的にそれぞれ連続した物理領域として存在する必要はなく、NANDメモリ11の個々の物理管理単位が、それぞれこれらの領域に属する。例えば、特殊領域11cとして使用していたブロックが解放されフリーブロックFBとなった後、このフリーブロックFBにユーザデータが記録されると、以降は通常LBA領域11bとして使用される。このように個々の物理管理単位が属する領域は、固定ではなく、記憶装置10の使用とともに、変化していく。
【0035】
これらの通常LBA領域11b、特殊領域11cおよび特殊LBA領域(システムエリア)11aについて、具体例を用いて説明する。いま、NANDメモリ11の領域のサイズ(いわゆるディスク容量)を、例えば64GBとすると、この64GBの領域はユーザ領域である。なお、ここでいう64GBの領域というのは、LBAの範囲が64GBという意味であり、常に物理的に64GBのNANDメモリ11が割り当てられているという意味ではない。一方、NANDメモリ11には、ホスト装置30Aからアクセスできる当該64GBの領域(ユーザ領域)以外に、NANDメモリ11の内部情報を保存するための領域として、所定サイズ(例えば、1論理ブロック分程度)の領域(非ユーザ領域)がLBA上にマップされる。この64GBの領域が通常LBA領域11bであり、所定サイズの領域が特殊LBA領域(システムエリア)11aであり、これらに属さない領域が特殊領域11cである。なお、ここではファームウェアが特殊エリア11cに記録されるとしているが、特殊LBA領域11aに記録してもよい。
【0036】
特殊LBA領域(システムエリア)11aは、例えば、NANDメモリ11を管理する管理データ、SMART情報などを保存するために使用される。この特殊LBA領域(システムエリア)11aに格納される管理データは、通常LBA領域11bに格納されるユーザデータと同じ管理方式でハンドリングされ、通常LBA領域11bがマップされ得る全ての論理ブロックに割り当てが可能である。すなわち、ドライブ制御回路20から見れば、論理アドレスの違いを除いて、処理の違いはない。
【0037】
以上、図1の構成例(以下、構成例αとする)について説明したが、図2の構成例(以下、構成例βとする)についても、重複する構成要素の機能と基本動作は構成例αと同様である。以下では、特記しない場合(例えば、「構成例βの場合は」等のような記載がない場合)は、構成例αについて説明している。構成例βについては、暗号化処理および復号化処理に関する部分以外は、構成例αの各部の機能および動作と同様であり、構成例αと重複する説明は省略する。
【0038】
次に、本実施形態の認証と鍵データについて説明する。本実施形態では、ホスト装置30A、30B、…から記憶装置10へのアクセス(記憶装置10からの読み出し、記憶装置10への書き込み)を行う前に、機器認証処理とユーザ認証処理を実施する。機器認証処理とユーザ認証処理の両方で認証された場合に、記憶装置10へのアクセスが可能となる。なお、機器認証手順およびユーザ認証手順に特に制約はなくどのような手順で実施してもよい。
【0039】
本実施形態の記憶装置10は、上述の機器認証処理およびユーザ認証処理を行うための情報を保持している。図6は、記憶装置10が保持するデータと格納領域の一例を示す図である。図6に示すように、本実施形態では、NANDメモリ11の特殊LBA領域(システムエリア)11a内に、第1部分鍵、第1機器認証情報、第1ユーザ認証情報およびアドレス変換情報を記憶している。このように、NANDメモリ11の特殊LBA領域(システムエリア)11aは、第1部分鍵を記憶する第1部分鍵記憶部としての機能と、認証情報を記憶する認証情報記憶部としての機能と、を有する。
【0040】
ここで、第1部分鍵は、構成例αの場合は、第1ユーザ認証情報を生成するために用いる暗号鍵を生成するために用いる鍵データである。なお、構成例αの場合には、この第1部分鍵を用いない場合もある。また、構成例βの場合は、第1部分鍵はSRAM25に書き込まれる暗号鍵を生成するために用いる鍵データである。第1部分鍵としては、例えば、記憶装置10の内部情報Gを用いる。また、内部情報Gは、例えば初期設定時に、ドライブ制御回路20からシステムエリア11aに予め書込まれる。例えば、構成例βの場合は、暗号化モジュール23から内部情報Gがシステムエリア11aに書き込まれ、構成例α(暗号化モジュール23を持たない構成)の場合は、別のモジュールで内部情報Gを書き込むようにしてもよい。なお、ここでは、このような内部情報Gの一例として、内部情報Gを所定の規則により生成された乱数とするが、内部情報Gはこの例に限定されない。以下の説明では、第1部分鍵が内部情報Gであるとして述べる。
【0041】
また、ここでは、構成例αの場合には、内部情報Gを用いて第1ユーザ認証情報を生成する例について説明するが、内部情報Gを用いて第1ユーザ認証情報を生成しなくてもよい。すなわち、記憶装置10は内部情報Gを保持せず、第1ユーザ認証情報は予めシステムエリア11aに書き込まれるとしてもよい。以下、内部情報Gを用いて第1ユーザ認証情報を生成する場合としない場合を区別して説明する際には、構成例αで内部情報Gを用いて第1ユーザ認証情報を生成する場合を構成例α1とし、内部情報Gを用いない場合を構成例α2として説明する。構成例α1と構成例α2を区別しない場合(両方に共通する事項)には、構成例αと表記して説明する。なお、構成例α1の場合は、図6で示した構成例において、特殊LBA領域(システムエリア)11a内の第1ユーザ認証情報の全て、または一部は、第3暗号鍵を用いて複合された形態(後述の保護化第1ユーザ認証情報)である内部情報Gとして記憶される。
【0042】
第1機器認証情報は、接続可能な任意のホスト装置30A,30B,…のうち、接続権限をもつ正規のホスト装置30Aを機器認証するためのものであり、任意の機器認証方式の機器認証情報が使用可能となっている。例えば、第1機器認証情報としては、ホスト装置30Aの固有情報“AA”、又はホスト装置30Aの署名検証鍵Kveri-30Aが使用可能であるが、これらの例に限定されない。このような第1機器認証情報は、例えば初期設定時に、機器認証モジュール21からシステムエリア11aに予め書込まれる。機器認証方式としては、互いに同一の第1機器認証情報と第2機器認証情報とを照合する方式や、第2又は第3の実施形態に述べるように、互いに異なる第1機器認証情報及び第2機器認証情報に基づく方式のいずれとしてもよい。ホスト装置30Aの固有情報としては、例えばMACアドレスが使用可能であるが、この例に限定されない。
【0043】
第1ユーザ認証情報は、正規のホスト装置30Aを使用する正規のユーザを認証するためのものである。第1ユーザ認証情報としては、正規のユーザのパスワードP及びユーザIDを一例として用いるが、この例に限定されない。第1ユーザ認証情報は、例えば初期設定時に、ユーザ認証モジュール22からシステムエリア11aに予め書込まれる。
【0044】
また、通常LBA領域11b(ユーザ領域)は、ユーザデータDを記憶している。記憶装置10がユーザデータ暗号化機能を持つ場合(構成例βの場合)は、ユーザエリア11bは、暗号鍵Kgに基づいて暗号化モジュール23により暗号化されたデータDである暗号化データEg(Kg,D)を記憶している。なお、ここでは、内部情報Gの場合に、“G”の小文字“g”を添字にして“Eg”,“Kg”と表記している。例えば、内部情報Iの場合には、“I”の小文字“i”を添字にして“Ei”,“Ki”と表記する。構成例αの場合には、ユーザデータDは暗号化されていないデータである。
【0045】
構成例βの場合には、SRAM25には、図7に示すように暗号化鍵Kgが記憶される。図7は、暗号化処理を行う場合のSRAM25上のデータの一例を示す図である。暗号化モジュール23は、書き込み対象のユーザデータをホスト装置30Aから受け取ると、当該データを暗号鍵Kgを用いて暗号化して暗号化データEg(Kg,D)を生成し、データ記憶モジュール26が通常LBA領域11bにユーザデータとして暗号化データEg(Kg,D)を書き込む。また、読み出し時には、データ読出モジュール27が通常LBA領域11bから読み出した暗号化データEg(Kg,D)を、復号化モジュール24が暗号鍵Kgを用いて復号し、復号後のユーザデータをホスト装置30Aへ送る。
【0046】
データ記憶モジュール26は、有効データが記憶されていないNANDメモリ11上の領域に、データを記録する機能を持つ。データ記憶モジュール26は、ホスト装置から送られた論理アドレスとユーザデータを受け取り、有効データが記憶されていないNANDメモリ11上の領域に当該ユーザデータを書き込み、その物理アドレスと、ホスト装置から送付された論理アドレスの対応状況を、特殊LBA領域(システムエリア)11a内のアドレス変換情報に書込む。また、構成例βの場合には、NANDメモリ11にユーザデータを書き込む前に、上述のように暗号化モジュール23により暗号化データEg(Kg,D)に変換する。
【0047】
また、データ読出モジュール27は、NANDメモリ11から、指定された論理アドレスのデータを読み出す機能を持つ。ホスト装置30Aから指定された論理アドレスのデータを出力する(読みだす)よう要求された場合、データ読出モジュール27は、システムエリア11a内に保持したアドレス変換情報に基づいて、論理アドレスを物理アドレスに変換し、そのNANDメモリ11上の当該物理アドレスからユーザデータを読み出し、ホスト装置30Aに出力する。また、構成例βの場合には、上述のように暗号化されたユーザデータを読み出した後、復号化モジュール24で、平文のユーザデータに戻してから、ホスト装置30Aに出力する。
【0048】
アドレス変換情報には、初期時は、論理アドレスに対応する物理アドレスは登録されていない。そのため、データ読出モジュール27は、読み出し要求を受けると、ホスト装置によって書き込まれたものではないデータを出力、あるいはエラーをホスト装置に通知するなどの動作をする。
【0049】
この動作の実現方法としては、例えば、次のような方法がある。例えば、アドレス変換情報には、初期時は、論理アドレスに対応するユーザデータを記憶した物理アドレスは存在しない状態とし、NANDメモリ11への記録時に、論理アドレスに対応する物理アドレスを登録する。そして、データ読出モジュール27は、アドレス変換情報に、読み出しのデータに対応する物理アドレスが存在しない場合に、ゼロの値のみでなるデータを出力する、もしくはエラーをホスト装置に通知する。
【0050】
または、例えば、初期時は、アドレス変換情報は、全ての論理アドレスが、一つの固定データを記憶した特殊ブロックの物理アドレスを示すようにして、ホスト装置から読み出し要求が来ると、この特殊ブロックを読み出して得たデータをホスト装置に出力するようにしてもよい。
【0051】
アドレス変換情報を用いたアドレス変換の処理は、この例に限定されず、様々な実現方法があり、どのような実現方法を採用してもよい。いずれの実現方法を採用した場合も、アドレス変換情報に、論理アドレスに対応するユーザデータを記憶した物理アドレスが登録されていない状態では、NANDメモリ11上に、ユーザデータが記憶されていたとしても、ホスト装置からの要求でユーザデータを出力できない。
【0052】
DRAM19は、揮発性メモリであり、ドライブ制御回路20に制御されてリードデータ及びライトデータを一時的に記憶する。また、ドライブ制御回路20の利用する各種管理データを記憶する。システムエリアに記録する情報、とりわけアドレス変換情報のキャッシュとして利用してもよい。なお、DRAM19は、SRAM25に代えて、SRAM25内のデータを記憶するように用いてもよい。あるいは逆に、DRAM19の代わりに、SRAM25に、DRAM19内のデータを記憶するように用いてもよい。ただし、揮発性メモリであるDRAM19の代わりに不揮発性FeRAMを使用した場合は、暗号鍵Kgなどは、後述のように電源オフ時に消去されないので、FeRAMに記憶することは好ましくない。
【0053】
ドライブ制御回路20は、DRAM19を使用して、NANDメモリ11とホスト装置30Aとのデータ伝送を制御するインターフェースである。また、ドライブ制御回路20は、NANDメモリ11のデータ読出/書込動作を制御し、構成例βの場合は、暗号化処理及び復号化処理などを制御する。また、ドライブ制御回路20は、さらに、機器認証処理及びユーザ認証処理を制御する。ここでいうユーザ認証処理は、従来のパスワード認証以外の処理(例、認証失敗時のユーザデータの無効化処理など)を含んでいる。
【0054】
以下では、ドライブ制御回路20による制御のうち、特に、機器認証処理、ユーザ認証処理、暗号化処理及び復号化処理の制御に用いられる機能ブロックについて説明する。
【0055】
機器認証モジュール21は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた第2機器認証情報と、特殊LBA領域(システムエリア)11a内の第1機器認証情報とに基づいて機器認証を実行し、この機器認証が失敗したとき、ユーザデータの無効化処理を行う機器認証機能をもっている。なお、第2機器認証情報は、機器認証処理において、第1機器認証情報と対を成す情報であり、認証を行う装置側(この場合は記憶装置10)は、認証対象の機器から第2機器認証情報を取得し、第2機器認証情報と保持する第1機器認証情報とに基づいて機器認証を実施する。
【0056】
構成例α1および構成例βの場合(第1部分鍵である内部情報Gを保持する記憶装置10の場合)は、機器認証モジュール21は、機器認証に失敗したときに、特殊LBA領域(システムエリア)11a内の内部情報Gを破棄する機能を有する。
【0057】
また、構成例α1および構成例βの場合(第1部分鍵である内部情報Gを保持する記憶装置10の場合)には、機器認証モジュール21は、機器認証の後、認証したホスト装置30A(又は30B,…)から受けとった第2部分鍵とシステムエリア11a内の内部情報G(第1部分鍵)とを複合し、生成した第3部分鍵K3をSRAM25に書込む第3部分鍵書込部としての機能を有する。
【0058】
ここで、複合とは、複数のデータに基づいて、なにかしらのデータを得る操作のことであり、その目的を達成できるものであれば、内容を問わない。例えば、内部情報Gが第2部分鍵によって予め暗号化されている情報であって、内部情報Gを第2部分鍵で復号(平文化)したものが第3部分鍵であってもよい。あるいは、内部情報Gが第2部分鍵と第3部分鍵と一緒に保存したデータであり、複合の処理としては、内部情報Gから第2部分鍵を取り除いて第3部分鍵を生成する操作であってもよい。これらは一例にすぎず、複合とは、第2部分鍵、内部情報Gおよび第3部分鍵の間に所定の関係を定義できるような処理であればどのような処理でもよい。
【0059】
また、本実施形態における、ユーザデータの無効化処理とは、不正なホスト装置からユーザデータを保護するために、ホスト装置からユーザデータを読み出しできなくする処理である。以下、ユーザデータの無効化処理の具体例について説明する。
【0060】
まず、ユーザデータの無効化処理の第1の方法として、前述のアドレス変換情報を初期化する方法がある。初期化とは、論理アドレスに対応するユーザデータを記録した物理アドレスを取得できない状態にすることである。例えば、ユーザデータの全部または予め設定された一部のアドレスに対応するアドレス変換情報のエントリを削除する。この場合、アドレス変換情報の大きさは、記憶装置10全体のデータ量に対して非常に小さいため、ユーザデータを実際に削除する場合等よりきわめて短時間でユーザデータの無効化ができる。または、無効化対象のユーザデータに対応するアドレス変換情報の物理アドレスを、無効なデータが記憶される領域に対応する特殊物理アドレスに変更するようにしてもよい。
【0061】
アドレス変換情報を初期化した(エントリが削除された)場合、ドライブ制御回路20は、NANDメモリ11上のデータを論理アドレスを介さずに読み出す手段(例えば物理アドレスを指定して読み出す手段)を別に設けなければ、NANDメモリ11からデータを読み出すことは不可能になる。
【0062】
なお本方式では、NANDメモリ11上にはデータが記載されたままなので、分解されると、不揮発性半導体メモリから直接読み出すことが可能になる恐れがある。ただし、NANDメモリの特性として、データをランダム化して記録した方が、寿命が延びるという特性があり、近年の微細化の進んだNANDメモリをNANDメモリ11として備える記憶装置10では、データがランダマイズ化されて記録される。ランダム化の方式としては、当然ながら可逆変換が使われるが、疑似乱数(暗号に使えるような暗号的な意味での乱数の必要はない)を使用する方法や、暗号アルゴリズムを使う方法がある。暗号アルゴリズムを使う場合は、暗号化が目的でないため、固定鍵や、短い鍵長でも構わない。固定鍵や鍵長の短い鍵を用いると、暗号強度は弱まるが、NANDメモリ11の寿命を延長する目的のためには十分であるからである。これらのデータランダマイズ用のハードウェアは、データを保護するための暗号化機能に比べて、簡単なハードウェアで実現できる。いずれにせよ、近年の微細化の進んだNANDメモリを備える記憶装置10では、暗号化ドライブで使うランダム化のためのハードウェアより、簡単なハードウェアでランダマイズすることができるため寿命延長のためにデータをランダマイズしてNANDメモリに記録することが多い。従って、仮に分解して、NANDメモリ11から直接データを読み出しても、多くの場合、ただちに、データを得ることはできない。
【0063】
なお、実際の実装にあたっては、管理の都合から、外部から与えられた論理アドレスを、機器内部の内部論理アドレスに変換して、しかるのち内部論理ブロックアドレスへ変換し、最後に物理アドレスに変換するという複数段階の構成をとることもできる。前述の説明でいうアドレス変換情報を無くすという操作は、この外部から与えられた論理アドレスから、最終的な物理アドレスへの変換過程の、どこか1箇所で行えばよい。実装の一例として、NANDメモリ11のアドレス空間を、図5で示したように、ユーザ領域と非ユーザ領域とに分けておくことができる。この場合、この場合、ユーザ領域に対応するアドレス変換情報のみを破棄することにより、記憶装置10の動作に必要なシステムエリアの情報を失わず、ホスト装置からのデータアクセスを不能にすることができる。
【0064】
ユーザデータの無効化処理の第2の方法として、不揮発性半導体メモリ11がNANDメモリで有る場合は、ユーザデータを記録した領域を消去する方法がある。NANDメモリは、磁気記録を用いたハードディスクドライブとは異なり、上書きができないため、ブロック単位で消去してから記録する。この際、時間がかかるのは記録(書き込み)であるため、消去だけであれば非常に高速に実行することが可能である。
【0065】
これによって、実際に記録されたデータそのものを消去することが可能である。例えば、1ブロックの消去と記録では200ms必要なところが消去だけでは5ms以下と、1ブロック全体上書きによりもとのデータを消去する場合の1/40以下の時間で消去が可能になる。
【0066】
なお、一般に、NANDメモリを用いた記憶装置では、通常の記録動作時において、前述のアドレス変換情報からブロックが除かれた時など、ブロックが有効なデータを保持しなくなった時点で、すなわちフリーブロックになった時点で消去する場合と、フリーブロックになった時には消さずに、記録する直前に消す方法がある。
【0067】
本実施形態のユーザデータ無効化処理における消去では、フリーブロックになったか否かを問わず、ユーザデータが記録されている可能性のある全ブロックを実際に消去してもよい。
【0068】
また、NANDメモリ11の1つのブロック中に、ユーザデータと記憶装置10の内部情報等とが混在して記録されている場合は、ユーザデータ以外を別のブロックにコピーしてから消去する。
【0069】
アドレス変換情報の消去とブロックの消去(NANDメモリ11上の実際のブロックのデータの消去)はどちらを先に行ってもよいが、アドレス変換情報を初期化(消去)せずに対応するブロックのデータを消去してしまうと、符号化の方式によっては読みだしたデータのエラー訂正符号が整合しなくなり、その後はすべて訂正不能UNC(Uncorrectable Error)となる。この方法を用いると、実際に消去されていることの確認が容易になる。データの消去の確認後、改めてホスト装置からの要求に基づいて、前述のアドレス変換情報の消去をおこなってもよい。
【0070】
なお、NANDメモリ11は、ドライブ制御回路20から発行されるコマンドに従って動作する。消去の場合は、例えば、消去するブロックのアドレスをドライブ制御回路20からNANDメモリ11へ送り、続いて消去コマンドを送付することによって、NANDメモリ11内において消去が実行される。以下の説明において、NANDメモリ11内の動作を説明しているが、これらはすべて、ドライブ制御回路20から送付されたコマンドと、物理ブロックアドレスと、に基づいて、NANDメモリ11内で動作が実行されることを意味している。
【0071】
さらに、ユーザデータ無効化処理の第3の方法として、第2の方法の消去を不完全な消去とする方法がある。不揮発性メモリ11としてNANDメモリを用いている場合、この第3の方法を用いれば、データ無効化による消去を不完全ながら高速に行うことができる。通常のNANDメモリにおけるデータの消去は、記録可能になるまで完全消去する方法により実施される。NANDメモリにおいてデータを消去する場合は、消去の対象のブロック中のワード線WL0〜WLqを選択し、つまり該当するワード線の電位を0Vとし、Si基板であるP-Wellに、所定の電圧を所定時間加えることで、浮遊ゲート中の電子を抜き出す。その後、消去状況の確認(Erase Verify)を行い、完全に消えていなければ、また消去するという操作を数回繰り返すことによって完全に消去する(例えば、上記特許文献3参照)。
【0072】
しかし、NANDメモリから読めなくなることだけが目的であれば、消去操作一回だけにして消去状況の確認(消去べリファイ)を実施しない、あるいはその回数を減らすことにより、消去時間を短縮できる。この場合、完全には消去されていない状態となるが、各メモリセルの値はばらばらに変化しており、事実上読み出し不能になる。
【0073】
このように、ここでいう不完全な消去というのは、再記録のための消去としては不十分だが、データ読出しができなくなるという意味では十分な消去である。どこまで消去すれば十分かという点については、ハードウェア構成や様々な要求等により異なってくるため消去回数が1回では不足な場合もあるもしれないが、いずれにせよ、完全なブロック消去より消去回数を減らすことで完全なブロック消去より高速になる。
【0074】
あるいは、1回の消去時間(消去電圧の印加時間)を、読めなくなるのに十分な時間にする等、調整によって様々なバリエーションが考えられる。なお、消去作業により、全メモリセルの電圧が均等に下がるのではなく、メモリセル毎にばらばらに下がる。このため、仮にメモリセルに電位が残っていても、読み出しレベル(読み出し時にワード線に印加する電圧)を変えるなどして再現(読み出したデータの復元)することは極めて困難になる。
【0075】
なお、このように不完全な消去により消去したブロックに、新たにデータを記録してしまうと、データ化けが発生してしまう。このため、新たに記録を行う前には、再度、通常の消去動作をする必要がある。フリーブロックを記録直前に消去してから使う方式であれば、特に不完全な消去をしたことを覚えておく必要はない。フリーブロック化時に消去する方式であれば、不完全な消去をしたブロックを記憶装置10内部の管理情報として記録しておき、後に、再度完全消去する必要がある。
【0076】
さらに、ユーザデータ無効化処理の第4の方法として、第2、第3の消去方法において、データ無効化処理における消去をさらに高速に行うために、チップ(NANDメモリチップ)内の複数ブロックを同時に消去する方法もある。これは、複数の指定したブロックを一度に消去するNANDメモリのコマンドを使うことにより実現するものであり、例えば上記特許文献4に記載の方法で実現することができる。なお、複数ブロックの同時消去の方法は上記特許文献4に記載の方法に限定されない。NANDメモリ11内で、該当するブロック内のワード線を全て選択した上、Si基板であるP-Wellに所定の電圧を所定時間加えることで、浮遊ゲート中の電子を抜き出すことによって消去する方法である。この第4の方法は、完全に消去されたか確認して、消去されていない場合は、再度消去動作を行えば、第2の方法の複数ブロック同時消去方式への変形版となり、完全に消去する前に止めてしまえば、第3の方法の複数ブロック同時不完全消去方式への変形版となる。
【0077】
さらに、ユーザデータ無効化処理の第5の方法として、不揮発性半導体メモリ11としてNANDメモリが用いられている場合、記憶装置10におけるユーザデータ無効化処理後に装置が機能しない、つまり故障状態になっても構わないのであれば、一回の操作で、チップ単位でデータを消す方法を用いてもよい。これは、消去対象のチップ中の全てのワード線を選択し、P-Wellに電圧を加えることによって、全体を消去するものである。ただし、この方式は消費電力が大きくなる場合があるので、複数のチップをまとめて消すことができない場合は、1枚ずつ消去するなどの制御が必要となる。
【0078】
なお、一般にNANDメモリを用いた記憶装置では、NANDメモリ中にも、ドライブの制御プログラムであるファームウェア、制御プログラムが用いる前述のアドレス変換情報などの管理情報も記録されるため、本方式を用いると、これらのデータも全て消去することになり、消去後は、記憶装置として動作しなくなる。
【0079】
なお、チップ全体のデータ無効化としては、消去の他に、全てのメモリセルの電位が上がる方向、つまり記録電圧をかけて上書きしてしまってもよい。具体的には、例えば全ビット線を0Vにして、全WLにプログラム電圧を与えてしまえばよい。
【0080】
消去後は、例えば、ドライブ制御回路内に保持されるIPL(Initial Program Loader)と呼ばれるファームウェアロード用コードが、ファームフェアを見つけられずエラーを検出し、インターフェース経由や、ドライブアクセス状況の通知用のLEDの信号性を利用して、ファームフェアが存在しないことを示すようにすることによって、外部から、他の故障と区別が可能となる。
【0081】
なお、本実施形態では、ユーザデータの無効化処理では、NANDメモリ11の全てのデータ(ユーザデータ以外のファームウェア等が用いる領域も含む)を消す方法ではなく、ユーザデータ部分を消去する方法の方が望ましい。つまり、上述の第5の方法より、第1の方法から第4の方法までの方が好ましい。第5の方法のように、NANDメモリ11内の全てのデータを消去する方法を用いた場合には、無効化処理時点で動作を停止するか、継続した場合であっても途中で後述の動作ができなくなる。
【0082】
なお、この他にも、ユーザデータ無効化処理は、様々な実施方法が考えられる。例えば、単に、前述の特殊LBA領域(システムエリア)11a(以下、システムエリア11aと略す)に、ユーザデータが、無効化処理がされていることを示す情報を記録し、この記録がある場合、以後のホスト装置からの読み出し命令に応答しなくする方法もある。ただし、この方法は、ほとんどの情報がそのまま不揮発性半導体メモリ上に残っているため、様々な攻撃に対する防御力が弱い。また、この場合、ホスト装置から書き込み命令を受け取る前に、少なくとも、アドレス変換情報を初期化する必要がある。もしくは、無効化処理がされている論理アドレスを記録する必要がでてくるが、これは処理が煩雑になる。
【0083】
他に、実際に、ユーザデータの記録されているNANDメモリ11上の領域をすべて、意味の無いデータ、例えば0で上書きしてしまう方法もあるが、書き込み時間が長いNANDメモリにおいて、この様な上書き処理は時間がかかり非実用的である。
【0084】
以上のようにユーザデータの無効化処理には、様々な方法を取りうるので、ユーザデータ無効処理にあたって使用する方法を、ホストから予め設定できるようにしてもよい。すなわち、記憶装置10のシステムアリア11aに、前述、および後述の実施例で述べる各種情報に加え、ユーザデータ無効化方式を記憶する。この場合、消去方式によっては併用できるものもあるので、記憶できる方式は1種類以上であってもよい。
【0085】
機器認証モジュール21は、前述した各機能に加え、ユーザデータ無効化方式の設定要求を正規のホスト装置30Aから受けると、当該ユーザデータ無効化方式情報をシステムエリア11aに設定(記憶)する設定機能をもっている。
【0086】
例えば、前述の第1方式であるアドレス変換情報の初期化のみ設定、前述の第2の方法であるユーザデータを保持するブロックの完全消去のみ設定、前述の第3の方法であるユーザデータを保持するブロックの不完全消去のみ設定、といった単独の無効化方法設定の他、前述の第1の方法であるアドレス変換情報を初期化と、前述の第3の方法である不完全なユーザデータ消去の組み合わせ実施の設定といった具合である。
【0087】
これを実現するには、ユーザデータ無効化方式のそれぞれの方式毎に、実施の可否を設定(記憶)してもよいし、可能な組み合わせ毎に番号を与え、その番号を記憶してもよい。あるいは、無効化の強度に応じてレベル付を行い、そのレベルで設定できるようにしてもよい。そして、機器認証モジュール21は、ユーザデータ無効化処理の実施の際、システムアリア11a内に記憶した無効化方式情報に基づいて、ユーザデータの無効化処理を実施する機能を持っている。以上の構成により、ホスト装置から設定したユーザデータ無効化方式を用いて、ユーザデータの無効化が実行される。
【0088】
なお、構成例βの場合には、第1部分鍵及び暗号鍵の破棄を、ユーザデータ無効化処理の方式と見なして、使用する方法として選択できるようにしてもよい。
【0089】
ユーザ認証モジュール22は、機器認証モジュール21による機器認証後、認証処理中のホスト装置30A(又は30B,…)から受けた第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証機能を有する。
【0090】
なお、構成例α1の場合は、第3部分鍵と第1ユーザ認証情報とを複合して保護化第1ユーザ認証情報を生成し、保護化第1ユーザ認証情報をシステムエリア11a内に内部情報Gとして予め記憶しておく。そして機器認証時に、内部情報Gとホスト装置30A(又は30B,…)から受け取った第2部分鍵とを複合して第3部分鍵K3を生成しSRAM25に保持しておく。そして、ユーザ認証時に、保護化第1ユーザ認証情報と、第3部分鍵K3とに基づいて第1ユーザ認証情報を生成し、生成した第1ユーザ認証情報と、ホスト装置30A(又は30B,…)から受け取った第2ユーザ認証情報と、に基づいてユーザ認証を実行する。この場合、不正なホスト装置に接続された場合には、正しい第3部分鍵K3が得られないため、正しい第2ユーザ情報がホスト装置から送られてきても、認証に失敗する効果が得られる。なお、この場合、保護化ユーザ認証情報は、第1ユーザ認証情報の一部を保護化したものでもよい。例えば、第1ユーザ認証情報がユーザパスワードと、ユーザIDであれば、ユーザパスワードのみ保護化してもよい。
【0091】
構成例α2の場合は、第1ユーザ認証情報は予めシステムエリア11aに記憶しておき、上述の内部情報と第1ユーザ認証情報とを用いた複合処理等は実施しない。また、内部情報Gも持たない。
【0092】
また、構成例βの場合は、内部情報Gとホスト装置30A(又は30B,…)から受け取った第2部分鍵とを複合して第3部分鍵K3を生成してSRAM25内に保持しておく。ユーザ認証モジュール22は、ユーザ認証の後、SRAM25内の第3部分鍵とホスト装置30A(又は30B,…)から受け取った第2ユーザ認証情報とを複合して暗号鍵を生成し、生成した暗号鍵をSRAM25に書込む。
【0093】
なお、構成例α、βのいずれの場合も、ユーザ認証モジュール22は、ユーザ認証が規定回数だけ失敗したとき、ユーザデータの無効化処理を行う機能を持っていてもよい。また構成例α1および構成例βの場合、ユーザ認証モジュール22は、システムエリア11a内の内部情報G及びSRAM25またはシステムエリア11a内の第3部分鍵を破棄する鍵破棄機能をもっていてもよい。また、ユーザデータ無効化処理、鍵破棄の両方を実行するようにしてもよい。また、ユーザデータ無効化処理および鍵破棄処理に代えて、ユーザ認証モジュール22は、ユーザ認証が規定回数だけ失敗したとき、NANDメモリ11からデータを読み出してホスト装置30A(又は30B,…)に出力することをせず、ユーザ認証エラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっていてもよい。
【0094】
暗号化モジュール23は、ユーザ認証が成功したとき、データ記憶モジュール26がデータを書き込む際、現在のホスト装置30A(又は30B,…)から受けたデータDを含む書込要求に従い、SRAM25内の暗号鍵Kgに基づいて書込要求内のデータDを暗号化して、暗号化データEg(Kg,D)に変換する暗号化機能をもっている。
【0095】
復号化モジュール24は、ユーザ認証が成功したとき、データ読出モジュール27がデータを読み込む際、現在のホスト装置30A(又は30B,…)から受けた読出要求に基づいて読みだしたユーザエリア11b内の暗号化データをSRAM25内の暗号鍵に基づいて復号する復号化機能をもっている。
【0096】
SRAM25は、各モジュール21〜24及び25、26から読出/書込可能な揮発性メモリであり、構成例βの場合、図7に示すように、第3部分鍵K3の生成前に第2部分鍵としての固有情報“AA”及び第1部分鍵としての内部情報Gが一時的に記憶され、第3部分鍵K3生成時には、固有情報“AA”及び内部情報Gが消去されて第3部分鍵K3が一時的に書き込まれる。同様に、暗号鍵Kg生成時には、複合用の第2ユーザ認証情報が一時的に記憶され、第3部分鍵K3及び第2ユーザ認証情報が消去されて暗号鍵Kgが書き込まれる。なお、「書き込まれる」の語は「設定される」ともいう。また、暗号鍵Kgは、記憶装置10の電源オフ時にSRAM25から消去される。さらに、固有情報“AA”、内部情報G、第3部分鍵K3及び第2ユーザ認証情報の一時的な記憶と、電源オフ時までの暗号鍵Kgの記憶とは、SRAM25に代えて、DRAM19が実行してもよい。また、第2部分鍵としては、ホスト装置30Aの固有情報“AA”に限定されず、正規のホスト装置30Aが管理する任意のデータが使用可能となっている。また、SRAM25は、アドレス変換情報の読み出しキャッシュとしても使用してよい。
【0097】
構成例α1の場合には、第3部分鍵K3の生成前に第2部分鍵としての固有情報“AA”及び第1部分鍵としての内部情報Gが一時的に記憶され、第3部分鍵K3生成時には、固有情報“AA”及び内部情報Gが消去されて第3部分鍵K3が一時的に書き込まれる。第3部分鍵K3は、保護化第1ユーザ認証情報に基づいて第1ユーザ認証情報を生成する際に用いられ、第1ユーザ認証情報を生成した後に第3部分鍵K3は破棄される。
【0098】
一方、ホスト装置30Aは、アクセス権のあるユーザに用いられ、記憶装置10を接続可能な通常のコンピュータである。
【0099】
具体的には、ホスト装置30Aは、インターフェース31、メモリ32A、入力モジュール33、CPU34及び出力モジュール35を備えている。なお、ホスト装置30Aと、後述する他のホスト装置30Bとは、メモリ32Aの記憶内容以外はほぼ同一構成である。このため、各要素31〜35のうち、メモリ32Aのみ“A”の符号を付している。
【0100】
インターフェース31は、記憶装置10をホスト装置30Aに接続するためのモジュールである。説明の簡略化のため、以下の説明では、記憶装置10とのデータ伝送にインターフェース31を介する旨の記載を省略する。
【0101】
メモリ32Aは、入力モジュール33、CPU34及び出力モジュール35から読出/書込可能な記憶部であり、例えば、図8に示すように、第2部分鍵と、第2機器認証情報と、機器認証プログラムと、ユーザ認証プログラムと、アプリケーションプログラムとを記憶している。また、メモリ32Aには、各プログラムの実行に応じて、適宜、処理途中及び処理結果のデータが記憶される。
【0102】
ここで、第2部分鍵は、記憶装置10で作成される暗号鍵の他の一部を構成する鍵データである。第2部分鍵としては、例えば、自装置(ホスト装置30A)の固有情報“AA”を用いるが、この例に限定されない。以下の説明では、第2部分鍵を固有情報“AA”として述べる。
【0103】
第2機器認証情報は、記憶装置10への接続権限をもつ正規のホスト装置30Aを記憶装置10に機器認証させるためのものであり、任意の機器認証方式の機器認証情報が使用可能となっている。
【0104】
機器認証プログラムは、CPU34により実行され、ホスト装置30Aを、ホスト装置30Aに記憶装置10が接続されると、記憶装置10の機器認証モジュール21により実行される機器認証の規定の認証シーケンスに沿って、メモリ32A内の第2機器認証情報を記憶装置10に送信する機器認証情報送信手段として動作させるものである。
【0105】
ユーザ認証プログラムは、CPU34により実行され、ホスト装置30Aを、入力モジュール33にて入力を受け付けた第2ユーザ認証情報を記憶装置10に送信するユーザ認証情報送信手段として動作させるものである。
【0106】
アプリケーションプログラムは、CPU34により実行される任意のプログラムであって、例えば、ホスト装置30Aを、入力モジュール33にて入力を受け付けた読出要求を記憶装置10に送信する読出要求送信手段として動作させるものである。
【0107】
これに加え、アプリケーションプログラムは、例えば、ホスト装置30Aを、当該入力を受け付けた書込要求を記憶装置10に送信する書込要求送信手段として動作させるものであってもよい。
【0108】
さらに、アプリケーションプログラムは、例えば、ホスト装置30Aを、記憶装置10からデータを読み出す手段と、当該読み出したデータに基づいて業務処理を実行し、処理結果を記憶装置10に書き込む手段として動作させるものであってもよい。
【0109】
入力モジュール33は、ユーザとの間の入力インターフェースであり、例えば、ユーザの操作に応じて、第2ユーザ認証情報の入力を受け付けるユーザ認証情報受付手段と、ユーザの操作に応じて、読出要求の入力を受け付ける読出要求受付手段として動作させるものである。これに加え、入力モジュールは、ユーザの操作に応じて、データを含む書込要求の入力を受け付ける書込要求受付手段として動作させるものであってもよい。入力モジュールとしては、例えば、キーボード及びマウス等の入力デバイスが適宜使用可能となっている。
【0110】
CPU34は、メモリ32A内のデータに基づいて、メモリ32A内の各プログラムを実行する演算処理装置である。
【0111】
出力モジュール35は、ユーザとの間の出力インターフェースであり、例えば、ディスプレイ装置等の出力デバイスが適宜使用可能となっている。
【0112】
次に、以上のように構成された記憶システムの動作を図9、図10及び図11のフローチャートを用いて説明する。図9は、構成例α1の動作の一例を示し、図10は、構成例βの場合の動作の一例を示している。図11は、後述のステップST40の詳細処理手順の一例を示すフローチャートである。なお、構成例α2の場合(内部情報Gを保持しない場合)は、図9の処理のうち第3部分鍵に係る処理は行わないが、それ以外は図9の処理と同様である。
【0113】
なお、記憶装置10は、構成例αの場合は、ユーザデータDを、構成例βの場合は、暗号化データEg(Kg,D)をNANDメモリ11内に記憶しているとする。また、ホスト装置30Aは、メモリ内32Aの機器認証プログラム、ユーザ認証プログラム及びアプリケーションプログラムをCPU34が実行中であるとする。
【0114】
まず、図9を用いて、構成例αの場合の動作を説明する。この状況において、記憶装置10は、正規のユーザにより、正規のホスト装置30Aに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Aに対する機器認証を実行する(ステップST10)。
【0115】
具体的には、ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32A内の第2機器認証情報を記憶装置10に送信する。
【0116】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aから受けた第2機器認証情報と、システムエリア11a内の第1機器認証情報とに基づいて機器認証を実行する。機器認証モジュール21は、機器認証に失敗したときには、ユーザデータの無効化処理を行う。さらに、構成例α1の場合には、機器認証モジュール21は、機器認証に失敗したときには、内部情報Gを破棄して代わりに内部情報I(内部情報I≠内部情報G)とする。ここでは、機器認証が成功したとする。
【0117】
構成例α1の場合には、機器認証モジュール21は、認証処理により機器認証が成功すると、ホスト装置30Aから受けた固定情報“AA”とシステムエリア11a内の内部情報Gとを複合して生成した第3部分鍵K3をSRAM25に書込む。この第3部分鍵K3は正しい部分鍵である。なお、前述した機器認証が失敗した場合には、破棄状態の内部情報Iを含む誤った部分鍵K3iが書き込まれることになる。
【0118】
いずれにしても、構成例α1、つまり内部情報Gを利用する場合は、第3部分鍵の書込により、ステップST10の機器認証が完了する。
【0119】
次に、記憶装置10は、ホスト装置30Aに対するユーザ認証を実行する(ステップST20)。
【0120】
具体的には、ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、第2ユーザ認証情報の入力を受け付ける。CPU34は、入力を受け付けた第2ユーザ認証情報を記憶装置10に送信する。
【0121】
記憶装置10のユーザ認証モジュール22は、現在のホスト装置30Aから受けた第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行する。ここでは、ユーザ認証が成功するとする。ここで、第1ユーザ認証情報が第3部分鍵K3と複合されて、システムエリア11a内に保護化第1ユーザ認証情報として保存されている場合(構成例α1の場合)は、第3部分鍵K3と、保護化第1ユーザ認証情報と、に基づいて第1ユーザ認証情報を生成し、前述の認証を行う。この方式を採用した場合、機器認証で失敗した場合は、誤った第3部鍵K3iが生成されるため、誤った第1ユーザ認証情報が生成されるため、正しい第2ユーザ認証情報がホスト装置から送られたとしても、かならずユーザ認証は失敗する。
【0122】
なお、ユーザ認証が失敗した場合には、ユーザ認証モジュール22の無効化処理によりユーザデータが無効化される。
【0123】
なお、構成例α1では、第3部分鍵で、第1ユーザ認証情報を暗号化したものを保護化第1ユーザ認証情報としたが、これによって、保護化第1ユーザ認証情報の解読が困難になり、セキュリティが向上する効果がある。
【0124】
これにより、ステップST20のユーザ認証が完了する。
【0125】
ユーザ認証の終了後、記憶装置10は、ユーザによるホスト装置30Aの操作に応じて、ステップST30〜ステップST50に移行する。ここでは、ステップST30の認証失敗時の設定動作を実行せず、ステップST40〜ステップST50を実行する場合を述べる。
【0126】
ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、読出要求の入力を受け付ける。CPU34は、入力を受け付けた読出要求を記憶装置10に送信する。
【0127】
記憶装置10のデータ読出モジュール27は、現在のホスト装置30Aから受けた読出要求に基づいて、システムエリア11a内のアドレス変換情報を用いて読み出し得られたNANDメモリ11内のデータDを現在のホスト装置30Aに出力する(ステップST40)。なお、ステップST40のデータ読出処理においては、ユーザデータの無効化処理がなされていなければ、正しいデータDが得られるが、ユーザデータ無効化処理がされていると正しいデータが出力されない。
【0128】
次に、ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、例えばデータD1を含む書込要求の入力を受け付ける。CPU34は、入力を受け付けた書込要求を記憶装置10に送信する。記憶装置10のデータ記憶モジュール26は、現在のホスト装置30Aから受けたデータD1を含む書込要求に従い、ユーザエリア11b内の有効データを保持しない位置にデータを書き込み、ホスト装置から送付された論理アドレスと実際に記録した物理的な位置の対応状況を、システムエリア11a内に保持したアドレス変換情報に書き込む。これにより、ステップST50が完了する。
【0129】
以下、記憶装置10は、ユーザによるホスト装置30Aの操作に応じて、ステップST40の読出処理と、ステップST50の書込処理が適宜、繰り返し実行される。
【0130】
しかる後、記憶装置10は、ユーザの操作に応じて、電源がオフ状態にされる(ステップST60)。これにより、記憶装置10では、DRAM19及びSRAM25内のデータが消去される。
【0131】
なお、本実施形態では、以上のように、機器認証モジュール21およびユーザ認証モジュール22が、ユーザデータの無効化処理を実施するユーザデータ無効化部としての機能を有している。このような構成に限らず、ユーザデータ無効化部を機器認証モジュール21およびユーザ認証モジュール22とは別に備え、機器認証モジュール21およびユーザ認証モジュール22の認証処理により認証されなかった場合に、ユーザデータ無効化部が上述のユーザデータの無効化処理を行ってもよい。
【0132】
次に、図10を用いて構成例βの場合の動作を説明する。ステップST110は構成例α1のステップST10における構成例α1と同様である。ユーザ認証時には、ユーザ認証モジュール22は、ユーザ認証処理を行い、ユーザ認証の後、SRAM25内の第3部分鍵と、第2ユーザ認証情報とを複合し、生成した暗号鍵をSRAM25に書込む(ステップST120)。なお、機器認証モジュール21は、機器認証に失敗したときには、構成例α1の場合と同様に、内部情報Gを破棄して代わりに内部情報I(内部情報I≠内部情報G)とする。また、同様にユーザ認証に失敗した場合には、ユーザ認証モジュール22により、機器認証の失敗時と同様に誤った暗号鍵がSRAM25に書き込まれることになる(ステップS130)。
【0133】
ここでは、ユーザ認証が成功し、ステップST130を実施せず、ステップST140,150へ以降する場合を説明する。ユーザ認証後、SRAM25内の第3部分鍵と、第2ユーザ認証情報と、を複合し、複合により生成した暗号鍵をSRAM25に書き込む。そして、ホスト装置50Aから読み出しの要求を受け取ると、要求されたユーザデータに対応する暗号化データEg(Kg,D)をシステムエリア11a内のアドレス変換情報を用いてNANDメモリ11から読み出し、読み出し得られた暗号化データEg(Kg,D)を復号化モジュール24を用いてSRAM25内の暗号鍵Kgに基づいて復号してデータDを得てから現在のホスト装置30Aに出力する(ステップST140)。これにより、ステップST140が完了する。
【0134】
なお、ステップST140のデータ読出処理においても、ユーザデータの無効化処理がなされていなければ、正しいデータDが得られるが、ユーザデータ無効化処理がされていると正しいデータが出力されない。
【0135】
ホスト装置50AからデータD1の書き込みの要求を受け取ると、SRAM25内の暗号鍵Kgに基づいて書き込み対象のデータD1を暗号化してEg(Kg,D1)を生成したのち、ステップ50と同様の処理をおこなってNANDメモリ11へ書き込む(ステップST150)。これにより、ステップST150が完了する。
【0136】
なお、記憶装置10がユーザデータ暗号化機能を有する場合は、例え、ホスト装置側から与える情報を入手して、記憶装置10を分解して不揮発性メモリから情報を直接読出し、各種情報がわかったとしても、内部情報Gが破棄され内部情報Iしか残っていないため、正しい暗号鍵Kgを得ることはできず、正しいデータDを復号することはできない。
【0137】
以下、記憶装置10は、ユーザによるホスト装置30Aの操作に応じて、ステップST140の読出処理と、ステップST150の書込処理が適宜、繰り返し実行される。ステップST160はステップS60と同様である。
【0138】
また、図11に示すように、ステップST40およびステップS140の読み出し処理においては、ホスト装置(ホスト装置30A,30B,…)からデータ読み出し要求を受けとると(ステップST41)、ドライブ制御回路20は、アドレス変換情報に基づいて読み出しを要求されたデータに対応する物理アドレスが存在するかを判断する(ステップST42)。対応する物理アドレスが存在する場合(ステップST42 Yes)、NANDメモリ11の当該物理アドレスからデータを読み出してホスト装置へ出力する(ステップST43)。対応する物理アドレスが存在しない場合(ステップST42 No)、無効データ(例えば、0で埋まったデータ)をホスト装置へ出力する(ステップST44)。
【0139】
上述したように本実施形態によれば、ホスト装置30A,30B,…を機器認証し、機器認証が失敗したときにはユーザデータ無効化処理により、異なるシステムに持ち出された場合(不正なホスト装置に接続された場合)のデータ漏洩を防止することができる。さらに、暗号化機能を持つ場合は、内部情報G(第1部分鍵)の破棄によって暗号鍵を破棄する構成により、異なるシステムに持ち出された場合、記憶装置10の分解によるデータ漏洩を防止することができる。
【0140】
なお、構成例βの場合は、機器認証またはユーザ認証が失敗した場合には、内部情報Gの書き換えを行うため復号のために必要な正しい暗号鍵が得られない。従って、構成例βの場合は、機器認証またはユーザ認証が失敗した場合には、ユーザデータの無効化処理は行ってもよいし、行わなくてもよい。
【0141】
また、ユーザデータ無効化処理を行った後、記憶装置10を正規のホスト装置30Aに再接続したとしても、無効化処理が行われているので、データは読み出すことはできない。これにより、記憶装置10の盗難時に確実にデータDを破棄でき、データ漏洩を防止することができる。
【0142】
また、ユーザ認証の失敗時にユーザデータ無効化処理を行い、さらにユーザデータ暗号機能を持つ場合は加えて暗号鍵を破棄する構成により、装置盗難時にユーザのパスワードPが解析される前にデータDを破棄することができる。
【0143】
さらに、電源オン時に暗号鍵をSRAM25(揮発性メモリ)に格納することにより、電源オフ時に確実に暗号鍵を破棄することができる。
【0144】
なお、本実施形態によれば、ホスト装置30A,30B,…から見た場合、記憶装置10がユーザデータ暗号機能を持つ場合(構成例βの場合)と、持たない場合(構成例αの場合)に、記憶装置10との取り扱い方法(接続手順等)に差が無い。ホスト装置30A,30B,…に接続する記憶装置としては、磁気ディスクを使用するHDD(Hard Disk Drive)が現在においても主流であるが、HDDにおいては、暗号ドライブにおける暗号消去が実用的であり、本実施形態で述べているユーザデータ無効化技術(構成例αにおける動作)は適用できない。
【0145】
一方、不揮発性半導体メモリを用いた記憶装置において本実施形態の構成例αを採用すれば、ホスト装置の動作を変更することなしに、HDDでは暗号ドライブ、不揮発性半導体メモリを用いた記憶装置を用いた場合は暗号機能を持たないドライブを使用できる。このため、ホスト装置側の構成を簡単にすることができ、また記憶装置を変更した場合の動作の切替等の手間が発生しない。
【0146】
データの安全性についても、ユーザデータ無効化処理により、不揮発性半導体メモリに記録された情報を実際消去している場合は、ユーザデータの暗号化機能がなくても暗号機能を有する場合に比べ劣ることはない。ユーザデータ無効化処理としてアドレス変換情報のみ消去した場合でも、内部データの復元には多大な労力を必要とするため、多くの用途では情報の漏えいを防げるという効果がある。
【0147】
また、ユーザデータ暗号機能を持つ場合(構成例β)は、暗号化、復号化を行うハードウェアが必要になり、装置が複雑、大型化、消費電力が増大する。これに対し、構成例αでは、暗号ハードウェアを持たずに、データ漏洩を防止できる記憶装置10が実現できるので、装置が簡単、小型となり、低消費電力化ができる。
【0148】
<第2の実施形態>
次に、第2の実施形態について前述した図1および図2を参照しながら説明する。本実施形態の記憶システムの構成例は、第1の実施形態と同様である。本実施形態においても、図1のように記憶装置10は暗号化機能を有しない構成例αと、図2のように暗号化機能を有する構成例βの両方について説明する。また、第1の実施形態と同様に、構成例αのうち、第3の部分鍵を用いた処理を行う場合を構成例α1とし、第3の部分鍵を用いない処理を行う場合を構成例α2とする。
【0149】
第2の実施形態は、第1の実施形態における第1及び第2機器認証情報の具体例である。すなわち、本実施形態では、第1機器認証情報は、図12に示すように、正規のホスト装置30Aの固有情報“AA”のハッシュ値h(AA)である。
【0150】
第2機器認証情報は、図13に示すように現在のホスト装置30Aの固有情報“AA”であり、記憶装置10が、内部情報Gを持つ場合(構成例α1、構成例β)は、第2部分鍵としても用いられる。第2部分鍵は、第2機器認証情報としても用いられる現在のホスト装置30Aの固有情報“AA”である。
【0151】
これに伴い、記憶装置10の機器認証モジュール21は、現在のホスト装置30Aから受けた第2機器認証情報“AA”のハッシュ値h(AA)を算出し、このハッシュ値h(AA)と、システムエリア11a内の第1機器認証情報h(AA)とを照合して両者が不一致のときに、機器認証が失敗した旨を判定する機能をもっている。
【0152】
次に、以上のように構成された記憶システムの動作を図14及び図15のフローチャートを用いて説明する。図14は、機器認証手順の一例を示すフローチャートであり、図15は、機器認証手順の一部を詳細化したフローチャートである。なお、構成例α2の場合は、図14における第3部分鍵に関する処理は省略され、図15における内部情報G、第3部分鍵に関する操作も実施しない。
【0153】
いま、構成例αまたは構成例βにおいて、ステップST10またはステップST110の機器認証が開始されるとする。
【0154】
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32A内の固有情報“AA”を記憶装置10に送信する。
【0155】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aの固有情報“AA”を受信する(ステップST11)。なお、不正なホスト装置30Bが接続されていた場合、機器認証モジュール21は、固有情報“BB”(“AA”≠“BB”)を受信する。
【0156】
機器認証モジュール21は、受信した固有情報“AA”のハッシュ値h(AA)を算出し、このハッシュ値h(AA)と、システムエリア11a内の固有情報“AA”のハッシュ値h(AA)とを照合し(ステップST12)、両者が一致したか否かを判定する(ステップST13)。
【0157】
ステップST13の判定結果が否を示す場合(ステップST13 No)、機器認証モジュール21は、システムエリア11a内に予め保持する他のハッシュ値があるか否かを判定し(ステップST14)、他のハッシュ値があれば(ステップST14 Yes)、他のハッシュ値を用いて照合処理を再試行するように、ステップST12に戻る。このステップST14は、接続可能な正規のホスト装置30A,…が複数台あり、それぞれ異なる固有情報を保持するときの処理であるので、正規のホスト装置30Aが1台のときには省略可能である。
【0158】
なお、正規のホスト装置30Aが複数ある場合は、固有情報“AA”が第2機器認証情報としても用いられるため、例えば、内部情報Gも、それぞれの正規ホスト装置30Aの固有情報“AA”毎の情報を含むようにすれば、正規のホスト装置30Aの種類にかかわらず、同一の第3部分鍵を生成することができる。
【0159】
以下、正規のホスト装置30Aが複数(n台)ある場合の動作の一例を図16を用いて説明する。図16は、正規のホスト装置30Aが複数ある場合の第1機器認証情報および内部情報の一例を示す図である。ここでは、複数のホスト装置30Aを、ホスト装置30A−1,ホスト装置30A−2,ホスト装置30A−3,…ホスト装置30A−nとする。そして、複合後の内部情報g−j(j=1,2,…,n)を、ホスト装置30A−jの固有情報と第1部分鍵(内部情報G)とを複合した値として生成する。具体的には、例えば、正規のホスト装置30A−jの固有情報”AA−j“で、内部情報Gを暗号化して暗号化内部情報(複合後の内部情報)g−jとし、さらに暗号化内部情報g−jをホスト装置固有情報”AA−j“のハッシュ値h(AA−j)(第1機器認証情報)とを対応づけて、システムエリア11a内に予め保持しておく。なお、ここでは、第1認証情報がホスト装置の固有情報のハッシュ値である例を説明したが、第1認証情報は、これに限らず、ホスト装置の固有情報を一方向関数で変換した値であればよい。
【0160】
機器認証時には、受信した固有情報“AA”のハッシュ値h(AA)と一致した値として保存されている第1機器認証情報(ハッシュh(AA))と対応づけられて保持されている暗号化内部情報g−k(kは、1,2,…,nのいずれか)を内部情報から抽出し、暗号化内部情報g−kを“AA”を用いて平文化することによって、内部情報Gを得て、これを第3部分鍵とするという方法である。
【0161】
すなわち、予め保持しておく内部情報は、正規のホスト装置の固有情報を用いて、逆関数の存在する関数F1により変換した値とし、さらに、その変換した値を一方向関数F2で変換したホスト装置の固有情報と対応づけて保持しておく。機器認証の際には、受信したホスト装置固有情報を、一方向性関数F2で変換し、保存された、一方向関数F2で変換されたホスト装置固有情報と比較し、同一の情報が見つかれば、認証成功とする。その後、関連づけられた、ホスト装置固有情報と関数F1で変換された内部情報g−jを、F1の逆関数とホスト装置固有情報にて、元の内部情報Gに戻す。関数F1による処理は、例えば暗号化であり、逆関数F1による処理は復号化である。一方向性関数F2は、例えばハッシュ関数である。
【0162】
また、上述の方法では、正規のホスト装置に関する情報の追加時、複合していない第1部分鍵が、記憶装置10内にある状態である必要がある。そこで、正規のホスト装置情報を追加する場合は、すでに記憶装置10に登録された正規のホスト装置(例えば、ホスト装置30A−1とする)が、追加したい正規のn番目のホスト装置30A−nの固有情報を予め入手しておき、正規のホスト装置30A−1が記憶装置10と認証を完了した後、記憶装置10に認証情報の追加命令を、ホスト装置30A−nの固有情報とともに送付する。その後、記憶装置10は、現在接続されているホスト装置30A−1の認証時に生成した第1部分鍵と、追加するホスト装置30A−nの固有情報と、を複合させた値を内部情報(複合後の内部情報)として保持する。そして、複合後の内部情報を、追加するホスト装置30A−nの固有情報を一方向性関数で変化した値と関連づけて共に保持する。これにより、正規のホスト装置の追加が可能になる。なお、上記は、一つの実施例であり、本方法によらず実装してもよい。
【0163】
また、敢えて上述のような方法を採用せず、ホスト装置によって異なる第3部分鍵が得られるようにした場合は、例えば、記憶装置10は、接続されたホスト装置によって記録されたデータのみを正しく出力することになる。
【0164】
また、ステップST14の判定結果が否を示す場合(ステップS14 No)、機器認証モジュール21は、ユーザデータの無効化処理を行う。さらに、構成例α1、構成例βの場合は、第3部分鍵も破棄する(ステップST15)。具体的には、機器認証モジュール21は、図15に示すように、システムエリア11a内の正規の内部情報Gを破棄し(ステップST15−1)、乱数等の内部情報Iを新規作成して内部情報Gの代わりに保持する(ステップST15−2)。また、機器認証モジュール21は、システムエリア11a内の固有情報“AA”のハッシュ値を破棄し(ステップST15−3)、ステップST11で受信した固有情報“BB”のハッシュ値を作成する(ステップST15−4)。そして、構成例αの場合はユーザデータの無効化処理を行う(ステップST15−5)。なお、ユーザデータの無効化処理は、ステップST15−4の後ではなく、ステップST14、ステップST15−1、ステップST15−2、ステップST15−3のいずれかの直後であってもよい。
【0165】
なお、ステップST15−1〜ステップST15−2において、第3部分鍵K3を構成する内部情報Gが破棄されて内部情報Iが新規作成されることにより、第3部分鍵K3が破棄されている。また、第3部分鍵K3が破棄されたことにより、第3部分鍵K3に基づく暗号鍵Kgが破棄されている。
【0166】
異なる正規のホスト装置に接続しても、同一の第3部分鍵が得られるよう正規のホスト装置ごとに複合後の内部情報と固有情報“AA”の一方向性関数による変換値(例えばハッシュ値)とを保持している場合は、全ての複合後の内部情報および固有情報“AA”の一方向性関数による変換値に対して、同様の破棄処理を行う。
【0167】
一方、ステップST13の判定結果が一致を示す場合(ステップST13 Yes)、機器認証モジュール21は、システムエリア11a内の内部情報G(または複合後の内部情報g−i)を読み出す(ステップST16)。しかる後、機器認証モジュール21は、ステップST11で受信した固有情報“AA”と、ステップST16で読み出した内部情報Gとを複合し(ステップST117)、生成した正しい第3部分鍵K3をSRAM25に書き込む(ステップST17a)。
【0168】
なお、ステップST15で第3部分鍵K3を破棄した場合には、機器認証モジュール21は、ステップST11で受信した固有情報“BB”と、ステップST15−2で作成した内部情報Iとを複合し、生成した誤った第3部分鍵K3iをSRAM25に書き込む(ステップST17b)。
【0169】
いずれにしても、構成例α1、構成例βの場合には、第3部分鍵の書込により、ステップST10の機器認証が完了する。
【0170】
以下、第1の実施形態と同様に、ステップST20〜ステップST60(またはステップS120〜ST160)が実行される。
【0171】
次に、第2の実施形態の動作中、正規のホスト装置30Aが接続された場合と、不正なホスト装置30Bが接続された場合とについて補足的に説明する。なお、始めに、一般的なパスワード認証の場合を簡単に述べる。
【0172】
図17は一般的なパスワード認証のみを実行するユーザデータ暗号化機能を持つ記憶装置を用いた記憶システムの動作を示す模式図である。
【0173】
記憶装置10は、ユーザのパスワードP、暗号鍵K、暗号鍵KでデータDが暗号化されてなる暗号化データE(K,D)が保存されている。
【0174】
この記憶装置10においては、正規のホスト装置30A及び不正なホスト装置30Bのいずれの装置30A,30Bからでも正しいパスワードPが送信されれば、暗号鍵Kに基づいて暗号化データE(K,D)を復号して、正しいデータDを出力可能となっている。
【0175】
このため、アクセス権限をもつ悪意のユーザが、例えば、正規のホスト装置30Aから記憶装置10を取りはずし、自宅のホスト装置30Bに接続して、機密情報等を含むデータDを正しく取得することが可能となってしまう。
【0176】
以上は、ユーザデータ暗号化機能を持つ記憶装置を用いた場合の説明であるが、ユーザ暗号化機能を持たない記憶装置(構成例α)の場合は、同様に、正しいパスワードPが送信されれば、認証が成功し、正しいデータDが出力可能になる。
【0177】
このため、正規のホスト装置30Aを使用した場合のみ、記憶装置10から正しいデータDを読出可能であり、ホスト装置30Bを使用した場合にはデータDが破棄されることが望ましい。
【0178】
図18〜図20は第2の実施形態における記憶装置10に正規のホスト装置30Aが接続された場合の動作を示す模式図であり、図21〜図23は第2の実施形態における記憶装置10に不正なホスト装置30Bが接続された場合の動作を示す模式図である。
【0179】
図18、図21は、記憶装置10が構成例α2の場合を示し、図19、図22は、記憶装置10が構成例α1の場合を示し、図20、図23は、記憶装置10が構成例βの場合で、ユーザデータの無効化処理を行わない例を示しており、この例は例えばHDD等にも適用できる。
【0180】
構成例α、構成例βの場合ともに、正規のホスト装置30Aに記憶装置10が接続された状態で、図14に示した動作が実行された場合、ホスト装置30Aが送信した固有情報“AA”をハッシュ演算して得たハッシュ値h(AA)は、記憶装置10内に予め保持したハッシュ値h(AA)と一致する。ハッシュ値h(AA)が一致した場合、認証に成功したとし、ユーザデータ無効化処理を行わない。
【0181】
さらに、構成例α1、構成例βの記憶装置10では、受信したホスト装置30Aの固有情報“AA”と内部情報Gとを複合し、第3部分鍵K3を生成する。つづいて、ユーザ認証を行うが、第3部分鍵K3を用いている場合は、第3部分鍵K3と第1ユーザ認証情報を複合し、第2ユーザ認証情報とでユーザ認証を行う。なお、本例では、記憶装置10内では、パスワードPから生成した情報をユーザ認証情報としている。たとえばパスワードPのハッシュ値をユーザ認証情報として扱えばよい。また本例では、ホスト装置30AとのユーザIDの受け渡しを省略している。
【0182】
また、構成例βの場合は、記憶装置10は、さらに、この第3部分鍵K3と第2ユーザ認証情報とを複合し、生成した暗号鍵Kgを復号鍵に設定する。そして、ホスト装置30AからデータDの読出要求を受けた場合、データDは設定された復号鍵Kgで正しく復号されて送信される。
【0183】
記憶装置10が不正なホスト装置30Bと接続された場合、構成例α、構成例βの場合ともに、ホスト装置30Bが送信した固有情報“BB”をハッシュ演算して得たハッシュ値h(BB)は、記憶装置10内に予め保持したハッシュ値h(AA)と一致しない。このため、記憶装置10は、構成例αの場合にはユーザデータ無効化処理を行う。また、構成例α1、構成例βの場合は、内部情報Gと予め保持したハッシュ値h(AA)を破棄し、新たに内部情報Iを乱数生成等により再生成し、ホスト装置30Bの固有情報“BB”のハッシュ値を作成してシステムエリア11aに書き込む。このとき、暗号鍵Kgは破棄された状態となる。
【0184】
構成例α1の場合は、ユーザ認証で第3部分暗号鍵を用いる方法を用いた場合は、ユーザ認証時に、不正な第3部分暗号鍵と第1ユーザ認証情報が復合されるため、第2ユーザ認証情報が正しくとも、認証は成功しない。
【0185】
ホスト装置30BからデータDの読出要求があると、記憶装置10は、構成例βの場合、ホスト装置30Bの固有情報“BB”と内部情報Iを複合し、生成した第3部分鍵K3iと第2ユーザ認証情報とを複合し、生成した暗号鍵Kiで暗号化データEg(Kg,D)を復号化処理する。この復号化処理では、誤った暗号鍵Kiを用いるため、正しいデータDを読み出すことが不可能となる。暗号機能を持たない場合(構成例αの場合)でも、データ無効化処理が実施されているため、正しいデータDは出力できない。
【0186】
また、構成例αの場合、ユーザは、データ無効化処理が実施されているため仮に記憶装置10をホスト装置30Aに再接続したとしても、正しいデータDを読み出すことができない。構成例βの場合も、暗号鍵Kg、および内部情報Gが既に廃棄されているため、読み出すことができない。なお、第1の実施形態と同様に、構成例βの場合に、鍵の破棄時にデータ無効化処理を同時に実行してもよい。
【0187】
上述したように本実施形態によれば、第1機器認証情報が正規のホスト装置30Aの固有情報“AA”のハッシュ値h(AA)であり、第2機器認証情報が第2部分鍵としても用いられる現在のホスト装置30Aの固有情報“AA”であるように、第1の実施形態を具体化した構成としても、第1の実施形態と同様の効果を得ることができる。
【0188】
また、データ無効化機能を持たないHDDのような暗号鍵の消去によってデータを保護している装置と、ホスト装置からみて同じ取り扱いができるように、構成することもできる。
【0189】
<第3の実施形態>
次に、第3の実施形態について前述した図1および図2を参照しながら説明する。
【0190】
第3の実施形態は、第1の実施形態における第1及び第2機器認証情報の他の具体例である。すなわち、第1機器認証情報は、図24に示すように、正規のホスト装置30Aの署名検証鍵Kveri-30Aである。
【0191】
第2機器認証情報は、図25に示すように、現在のホスト装置30Aの署名生成鍵Ksig-30Aにより生成されたデジタル署名と当該デジタル署名の生成に用いた署名対象データである。なお、デジタル署名は、署名対象データから算出されたハッシュ値に対し、署名生成鍵Ksig-30Aに基づく署名処理が施されて生成される。これに伴い、ホスト装置30Aのメモリ32Aは、署名生成鍵Ksig-30Aを記憶している。
【0192】
なお、署名生成鍵Ksig-30Aとしては、公開鍵ペアの秘密鍵(private key)が使用可能となっている。署名検証鍵Kveri-30Aとしては、公開鍵ペアの公開鍵(public key)が使用可能となっている。このため、署名生成鍵Ksig-30Aは秘密鍵(private key)と読み替えてもよく、署名検証鍵Kveri-30Aは公開鍵と読み替えてもよい。このことは、後述する記憶装置10の署名生成鍵Ksig-10及び署名検証鍵Kveri-10についても同様である。
【0193】
また、記憶装置10の機器認証モジュール21は、第2機器認証情報内のデジタル署名を署名検証鍵Kveri-30Aに基づいて復号し、得られた復号データと、第2機器認証情報内の署名対象データから算出したハッシュ値とを照合して両者が不一致のときに、機器認証が失敗した旨を判定する機能をもっている。
【0194】
次に、以上のように構成された記憶システムの動作を図26及び図27のフローチャートを用いて説明する。なお、図26および図27は、構成例α1または構成例βの場合の動作の一例を示している。構成例α2の場合は、図26および図27の動作のうち、第3部分鍵に関する動作を除いた動作となるが、ステップST16’のホスト装置の固有情報の受信処理は、構成例α1や構成例βとホストとの機器認証手順を同一にするため除かなくてもよい。この場合、受信した固有情報は、受信するだけで利用しない。
【0195】
いま、ステップST10の機器認証が開始されるとする。
【0196】
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、乱数等の署名対象データを生成し、この署名対象データのハッシュ値を算出する。続いて、CPU34は、メモリ32A内の署名生成鍵Ksig-30Aに基づいて、このハッシュ値に署名処理を施してデジタル署名を生成する。しかる後、CPU34は、この署名対象データ及びデジタル署名からなる署名付データを第2機器認証情報としてメモリ32Aに書き込むと共に、当該署名付データ(第2機器認証情報)を記憶装置10に送信する。
【0197】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aの署名付データを受信する(ステップST11’)。なお、認証失敗時には、現在のホスト装置30Bから署名付データを受信したことになる。
【0198】
機器認証モジュール21は、システムエリア11a内の署名検証鍵Kveri-30Aにより署名付データを検証する(ステップST12’)。具体的には、機器認証モジュール21は、受信した署名付データ内のデジタル署名を署名検証鍵Kveri-30Aに基づいて復号し、得られた復号データと、第2機器認証情報内の署名対象データから算出したハッシュ値とを照合して両者が一致することを検証する。
【0199】
機器認証モジュール21は、検証結果が正当でなければ(ステップST13’ No)、システムエリア11a内に予め保持する他の署名検証鍵Kveriがあるか否かを判定し(ステップST14’)、他の署名検証鍵Kveriがあれば(ステップS14’ Yes)、他の署名検証鍵Kveriを用いて照合処理を再試行するように、ステップST12’に戻る。このステップST14’は、接続可能な正規のホスト装置30A,…が複数台あるときの処理であるので、正規のホスト装置30Aが1台のときには省略可能である。
【0200】
また、ステップ14’の判定結果が否を示す場合(ステップST14’ No)、機器認証モジュール21は、構成例α1または構成例α2の場合は、ユーザデータ無効化処理を実施する(ステップST15’)。構成例α1または構成例βの場合は、第3部分鍵を破棄する(ステップST15’)。具体的には、機器認証モジュール21は、図27に示すように、システムエリア11a内の正規の内部情報Gを破棄し(ステップST15−1)、乱数等の内部情報Iを新規作成する(ステップST15−2)。また、機器認証モジュール21は、現在のホスト装置30Bから固有情報“BB”を受信し(ステップST15−4’)、構成例αの場合はユーザデータの無効化処理を行う(ステップST15−5’)。なお、ユーザデータの無効化処理は、ステップST15−4’の後ではなく、ステップST14’、ステップST15−1、ステップST15−2のいずれかの直後であってもよい。なお、前述同様に、ステップST15−1〜ステップST15−2により、第3部分鍵K3が破棄されるので、構成例βの場合、暗号鍵Kgが破棄されることになる。
【0201】
一方、ステップST13’の検証結果が正当であれば(ステップST13’ Yes)、機器認証モジュール21は、現在のホスト装置30Aから固有情報“AA”を受信する(ステップST16’)。しかる後、機器認証モジュール21は、構成例α1、構成例βの場合は、前述した通り、正しい第3部分鍵K3をSRAM25に書き込む(ステップST17a)。なお、複数の正規のホスト装置が、共通のユーザデータ領域を読み出せるようにする時は、第2の実施形態と同様、内部情報Gとして複数のホスト装置に対応した情報を持つか、複数の正規のホスト装置が、共通の固有情報“AA”を持つ必要がある。
【0202】
なお、ステップST15で第3部分鍵K3を破棄した場合には、機器認証モジュール21は、前述した通り、誤った第3部分鍵K3iをSRAM25に書き込む(ステップST17b)。
【0203】
構成例α1、構成例βの場合は、いずれにしても、暗号鍵の書込により、ステップST10の機器認証が完了する。
【0204】
以下、第1の実施形態と同様に、ステップST20〜ステップST60(またはステップST120〜ステップST160)が実行される。
【0205】
上述したように本実施形態によれば、第1機器認証情報が正規のホスト装置30Aの署名検証鍵Kveri-30Aであり、第2機器認証情報がホスト装置30Aのデジタル署名及び署名対象データであるように、第1の実施形態を具体化した構成としても、第1の実施形態と同様の効果を得ることができる。
【0206】
また、本実施形態は、署名認証に限らず、チャレンジ&レスポンスによるワンタイム情報の送受信による認証を用いてもよい。この種の認証は、例えば次の[1]〜[3]のように実行してもよい。
【0207】
[1]機器認証モジュール21は、乱数rを生成し、この乱数rに署名検証鍵Kveri-30A(ホスト装置30Aの公開鍵)で暗号化処理を施し、得られた値C(=r^Kveri-30A)をホスト装置30A(又は30B,…)に送信する(^は、ベキ乗を表す記号)。
【0208】
[2]ホスト装置30A(又は30B,…)は、この値Cに署名生成鍵Ksig-30A(ホスト装置30Aの秘密鍵)で復号化処理を施し、得られた値t=(C^Ksig-30A)を機器認証モジュール21に返信する。
【0209】
[3]機器認証モジュール21は、生成した乱数rと、返信された値tとが一致したとき(r=tのとき)、機器認証を成功と判定する。
【0210】
<第4の実施形態>
次に、第4の実施形態について前述した図1を参照しながら説明する。
【0211】
第4の実施形態は、第1〜第3の各実施形態における機器認証の他の具体例である。すなわち、本実施形態では、記憶装置10の機器認証モジュール21は、前述した各機能に加え、現在のホスト装置30A(又は30B,…)が第2機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、機器認証が失敗した旨を判定する機能をもっている。
【0212】
次に、以上のように構成された記憶システムの動作を図28のフローチャートを用いて説明する。図28は、構成例α1および構成例βの場合の動作を示している。構成例α2の場合は、図28の動作から第3部分鍵に関する動作を除いた動作とする。
【0213】
いま、ステップST10(またはステップST110)の機器認証が開始されるとする。
【0214】
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、認証コマンドを送信した後、第2機器認証情報を記憶装置10に送信する。
【0215】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた最初のコマンドが認証コマンドであるか否かを判定する(ステップST1)。
【0216】
ステップST1の判定の結果、否の場合(ステップST1 No)には、機器認証モジュール21は、規定の認証シーケンスと異なる旨を検出し、機器認証が失敗した旨を判定してステップST15(又はステップST15’)に移行する。
【0217】
ステップST1の判定の結果、最初のコマンドが認証コマンドである場合(ステップST1 Yes)には、機器認証モジュール21は、ステップST2に移行して機器認証を実行する。ここで、ステップST2の機器認証は、各実施形態の機器認証(ステップST10またはステップST110)において、データ無効化処理、及び第3部分鍵の破棄及び第3部分鍵の設定を除いた処理である。例えば、第2の実施形態の場合、図14に示したステップST11〜ステップST14、ステップST16が、図28に示したステップST2に該当する。第3の実施形態の場合、図26に示したステップST11’〜ステップST14’、ステップST16’が、図28に示したステップST2に該当する。
【0218】
機器認証モジュール21は、ステップST2の機器認証が成功であればステップST17に移行し、機器認証が失敗であれば(ステップST2 No)ステップST15(又はステップST15’)を介して処理を終了する。
【0219】
ステップ15(またはステップST15’)では、ユーザデータ無効化処理を行い、第3部分鍵の破棄を行う(ステップST15)。なお、構成例βの場合は、ユーザデータ無効化処理は行わなくてよい。ステップ17では、構成例α1、構成例βの場合、第3部分鍵を設定する。
【0220】
以下、第1〜第3の各実施形態と同様に、ステップST20〜ステップST60(またはステップST120〜ステップST160)が実行される。
【0221】
上述したように本実施形態によれば、機器認証モジュール21が、現在のホスト装置30A(又は30B,…)が第2機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、機器認証が失敗した旨を判定するように、第1〜第3の各実施形態を具体化した構成としても、第1〜第3の各実施形態と同様の効果を得ることができる。
【0222】
また、記憶装置10を使用可能なホスト装置が、記憶装置10の認証シーケンスと同じ認証シーケンスをもつホスト装置30Aに限定されることにより、記憶装置10の盗難時にデータDが破棄され、データ漏洩を防止することができる。
【0223】
なお、ステップST1の代わりに、ホスト装置から最初の認証コマンドが来る前に、ホスト装置からユーザデータ読出要求が来たか否かで判断してもよい。ホスト装置から認証コマンドが送られてくる前に、ドライブの種別を判別するためのコマンドや、識別情報を得るためのコマンドが送られてきた場合、これを持ってユーザデータ無効化処理をするより、データ読出要求が認証コマンドより前に来るという、あきらかに不審なアクセスに対して鍵の破棄処理や、ユーザデータ無効化処理を実行した方が、防御効果を落とさずに、認証前にホスト装置に有用な情報を提供可能にした上で、防御ができる。特に、複数の正規ホスト装置に接続される記憶装置においては、機器認証前に、ホスト装置が接続された記憶装置の識別情報を得るコマンドを記憶装置に送出して、記憶装置がホスト装置に識別情報を送ることによって、記憶装置毎に、異なった固有情報や機器認証情報を設定することが実現できる。これによって、ホスト装置が複数の記憶装置に共通の情報を設定しなくて済むため、固有情報や機器認証情報が、万一ある記憶装置の情報管理に脆弱性があり、固有情報や機器認証情報が漏洩しても、他の記憶装置の安全性が脅かされることが防げる。
【0224】
また、認証に対応していない機器では、認証コマンドを実行せずに、ユーザデータ出力要求を送ってくるため、このような装置に接続された場合も、ただちにデータ無効化処理等が実施できる。
【0225】
<第5の実施形態>
次に、第5の実施形態について前述した図1および図2を参照しながら説明する。
【0226】
第5の実施形態は、第1〜第4の各実施形態における機器認証の他の具体例である。すなわち、記憶装置10のシステムエリア11aは、図29に示すように、前述した各情報に加え、第1部分鍵を破棄するか否かを示す可否情報を記憶する。
【0227】
機器認証モジュール21は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する設定機能をもっている。なお「設定する」の用語は「書き込む」と読み替えてもよい。
【0228】
また、機器認証モジュール21は、機器認証が失敗したとき、システムエリア11a内の可否情報に基づいてユーザデータの無効化処理の実施を阻止する無効化阻止機能をもっている。補足すると、可否情報が破棄の否と設定されている場合に、ユーザデータの無効化処理を阻止する。さらに、記憶装置10が構成例α1、構成例βの場合は、第1部分鍵(内部情報G)の破棄をさらに阻止する。
【0229】
さらに、機器認証モジュール21は、ユーザデータの無効化処理が阻止され、さらに構成例α1、構成例βの場合には第1部分鍵の破棄も阻止されたとき、前述した第3部分鍵書込機能(構成例α1、構成例βの場合のみ)、ユーザ認証モジュール22及び復号化モジュール24(構成例βの場合のみ)を動作させず、機器認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
【0230】
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【0231】
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
【0232】
次に、以上のように構成された記憶システムの動作を図30のフローチャートを用いて説明する。なお、構成例によって、第3部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【0233】
始めに、正規のホスト装置30Aと正規のユーザによりステップST10’の機器認証とステップST20のユーザ認証に成功した後のステップST30の認証失敗時の動作設定について述べる。
【0234】
ステップST10´では、ステップST10またはステップST110と同様に、機器認証を実施し、認証が否の場合、記憶装置10は、接続されたホスト装置30A(又は30B,…)にエラーを出力し、構成例α1、構成例βの場合は認証結果に応じて正しい第3部分鍵または誤った第3部分鍵を設定する(ステップS10´)。次に、ステップST20(またはステップS120)を実施する。
【0235】
ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける。ホスト装置30AのCPU34は、ステップST20の後、認証された場合は、入力を受け付けた設定要求を記憶装置10に送信する。認証されなかった場合は、第1の実施形態等と同様に認証失敗時の動作を実施する(ステップST30)。
【0236】
記憶装置10の機器認証モジュール21は、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する。
【0237】
これにより、ステップST30が完了する。以後、適宜、ステップST40〜ステップST50を実行し、一旦、電源をオフして動作が終了する(ステップST60)。電源オフの後でも可否情報は消去されずに、システムエリア11aに記憶されている。なお、構成例βの場合には、読出処理時には設定した暗号鍵による復号、書込処理時には設定した暗号鍵による暗号化がおこなわれる。
【0238】
次に、記憶装置10は、ユーザにより、現在のホスト装置30Bに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Bに対する機器認証を実行する(ステップST10’)。なお、現在のホスト装置30Bは、不正な装置であるとする。
【0239】
ホスト装置30BのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32B内の第2機器認証情報を記憶装置10に送信する。
【0240】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Bから受けた第2機器認証情報と、システムエリア11a内の第1機器認証情報とに基づいて機器認証を実行する。
【0241】
しかしながら、不正なホスト装置30Bに対する機器認証は失敗する。機器認証が失敗した時点は、第2〜第4の各実施形態ではステップST15,ステップST15’の直前である。
【0242】
機器認証が失敗したとき、記憶装置10の機器認証モジュール21は、構成例αの場合はシステムエリア11a内の可否情報に基づいてユーザデータ無効化処理を阻止し、また構成例α1、構成例βの場合は、さらに第1部分鍵(内部情報G)の破棄を阻止する。
【0243】
しかる後、機器認証モジュール21は、ユーザデータ無効化処理や第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能(構成例α1、構成例β場合のみ)、ユーザ認証モジュール22及び復号化モジュール24(構成例βの場合のみ)を動作させず、機器認証のエラーを現在のホスト装置30Bに出力する。
【0244】
上述したように本実施形態によれば、可否情報によりユーザデータ無効化処理の可否、および内部情報Gを持つ場合はさらに第1部分鍵の破棄の可否を設定できる構成により、破棄の可を設定した場合には第1〜第4の各実施形態の効果を得ることができ、破棄の否を設定した場合にはユーザデータ無効化を阻止することができる。さらに暗号化機能を持つ場合は、暗号化データの鍵の破棄も阻止することができる。
【0245】
<第6の実施形態>
次に、第6の実施形態について前述した図1を参照しながら説明する。
【0246】
第6の実施形態は、第1〜第4の各実施形態における機器認証の他の具体例である。換言すると、第6の実施形態は、第5の実施形態の可否情報に代えて、許容接続回数を用いた構成である。
【0247】
すなわち、記憶装置10のシステムエリア11aは、図31に示すように、前述した各情報に加え、第1部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数(リトライ可能回数)と、機器認証が失敗した回数を示すエラー回数とを記憶する。
【0248】
機器認証モジュール21は、前述した各機能に加え、許容接続回数を含む設定要求を正規のホスト装置30Aから受けると、当該許容接続回数をシステムエリア11aに設定する設定機能をもっている。
【0249】
また、機器認証モジュール21は、機器認証が失敗したとき、システムエリア11a内のエラー回数を増加させるように更新するエラー回数更新機能をもっている。
【0250】
さらに、機器認証モジュール21は、更新後のエラー回数とシステムエリア11a内の許容接続回数に基づいてユーザデータ無効化処理を阻止し(構成例αの場合)、さらに構成例α1、構成例βの場合は、第1部分鍵(内部情報G)の破棄を阻止する破棄阻止機能をもっている。
【0251】
また、機器認証モジュール21は、ユーザデータ無効化処理が阻止、さらに内部情報Gを持つ場合は第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能(構成例α1、構成例βの場合のみ)、ユーザ認証モジュール22及び復号化モジュール24(構成例βの場合のみ)を動作させず、機器認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
【0252】
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【0253】
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
【0254】
次に、以上のように構成された記憶システムの動作を図32のフローチャートを用いて説明する。なお、構成例によって、第3部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【0255】
始めに、許容接続回数は、第5の実施形態と同様に、ステップST30の認証失敗時の動作設定において、記憶装置10のシステムエリア11aに設定される。以後、同様に、一旦、電源をオフして動作が終了する(ステップST60)。電源オフの後でも許容接続回数は消去されずに、システムエリア11aに記憶されている。
【0256】
次に、記憶装置10は、ユーザにより、現在のホスト装置30Bに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Bに対する機器認証を実行する(ステップST10”)。なお、現在のホスト装置30Bは、不正な装置であるとする。
【0257】
このため、第5の実施形態と同様に、不正なホスト装置30Bに対する機器認証は失敗する。機器認証が失敗した時点は、第2〜第4の各実施形態ではステップST15,ステップST15’の直前である。
【0258】
機器認証が失敗したとき、記憶装置10の機器認証モジュール21は、システムエリア11a内のエラー回数を増加させるように更新し、更新後のエラー回数と許容接続回数に基づいてユーザデータ無効化処理を阻止し(構成例αの場合)、さらに構成例α1、構成例βの場合は、第1部分鍵(内部情報G)の破棄も阻止する。
【0259】
しかる後、機器認証モジュール21は、ユーザデータ無効化処理(構成例αの場合)、構成例α1、構成例βの場合はさらに第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能(構成例α1、構成例βの場合のみ)、ユーザ認証モジュール22及び復号化モジュール24(構成例βの場合のみ)を動作させず、機器認証のエラーを現在のホスト装置30Bに出力する。
【0260】
上述したように本実施形態によれば、許容接続回数により第1部分鍵の破棄の可否を設定できる構成により、許容接続回数に至るまでは暗号化データの破棄を阻止できると共に、許容接続回数に至った後は第1〜第4の各実施形態の効果を得ることができる。
【0261】
<第7の実施形態>
次に、第7の実施形態について前述した図1および図2を参照しながら説明する。
【0262】
第7の実施形態は、第1〜第6の各実施形態において、ユーザデータ無効化処理を実施した時、および、さらに構成例α1、構成例βの場合は、第1部分鍵を破棄したときの破棄ログ情報を記憶するものである。
【0263】
具体的には、記憶装置10のシステムエリア11aは、図33及び図34に示すように、前述した各情報に加え、ユーザデータ無効化処理が実施された日時(構成例α1、構成例βの場合はさらに、第1部分鍵を破棄したときの日時)を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを記憶する。なお、破棄理由情報は、機器認証の失敗に限らず、正規の破棄コマンドで破棄された場合にはその旨を示してもよい。
【0264】
機器認証モジュール21は、前述した各機能に加え、ユーザデータ無効化処理が実施されたとき(構成例α1、構成例βの場合はさらに、第1部分鍵を破棄したとき)、破棄ログ情報Lgを作成してシステムエリア11aに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Lgは、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
【0265】
以上のような構成によれば、前述した通り、機器認証が失敗し、ユーザデータが無効化、つまり破棄されたとする。なお、破棄された時点は、例えば、第2〜第4の各実施形態ではステップST15,ステップST15’の直後である。
【0266】
このとき、機器認証モジュール21は、破棄された日時を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを作成してシステムエリア11aに書き込む。これにより、例えば記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄ログ情報Lgがシステムエリア11aから読み出される。
【0267】
上述したように本実施形態によれば、ユーザデータが破棄されたとき、破棄ログ情報Lgを記憶する構成により、第1〜第6の各実施形態の効果に加え、正規のユーザが破棄日時と破棄理由とを知ることができる。
【0268】
<第8の実施形態>
次に、第8の実施形態について前述した図1および図2を参照しながら説明する。
【0269】
第8の実施形態は、第7の実施形態の破棄ログ情報Lgにデジタル署名を付与した破棄証明書を記憶するものである。
【0270】
具体的には、記憶装置10のシステムエリア11aは、図35に示すように、前述した各情報に加え、自装置の署名生成鍵Ksig-10を予め記憶する。ここで、自装置の署名生成鍵Ksig-10としては、記憶装置10毎(製造番号又は型番毎)の署名生成鍵に限らず、例えば、記憶装置10のメーカ毎の署名生成鍵、又は記憶装置10の販売元(ベンダ)毎の署名生成鍵が使用可能となっている。また、システムエリア11aは、図35及び図36に示すように、破棄ログ情報Lg及びデジタル署名からなる破棄証明書Certを記憶する。
【0271】
機器認証モジュール21は、前述した各機能に加え、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する署名生成機能をもっている。
【0272】
また、機器認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む破棄証明書作成機能を更にもっている。
【0273】
この破棄証明書Certは、前述同様に、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
【0274】
一方、ホスト装置30Aのメモリ32Aは、図37に示すように、前述した各情報に加え、記憶装置10の署名検証鍵Kveri-10を予め記憶している。
【0275】
また、ホスト装置30AのCPU34は、前述した機能に加え、読出要求により記憶装置10から読み出した破棄証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証する機能をもっている。
【0276】
以上のような構成によれば、前述した第7の実施形態で破棄ログ情報Lgがシステムエリア11aに書き込まれたとき、機器認証モジュール21は、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する。
【0277】
また、機器認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む。これにより、記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄証明書Certがシステムエリア11aから読み出される。
【0278】
正規のホスト装置30AのCPU34は、読み出した破棄証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証し、検証結果が正当のとき、破棄証明書Certを出力モジュール35に出力する。
【0279】
上述したように本実施形態によれば、破棄ログ情報Lgにデジタル署名を付加した破棄証明書Certを記憶する構成により、第7の実施形態の効果に加え、破棄ログ情報Lgの正当性を検証することができる。
【0280】
<第9の実施形態>
次に、第9の実施形態について前述した図1および図2を参照しながら説明する。
【0281】
第9の実施形態は、第1〜第8の各実施形態におけるユーザ認証の他の具体例である。
【0282】
すなわち、記憶装置10のユーザ認証モジュール22は、前述した各機能に加え、現在のホスト装置30A(又は30B,…)が第2ユーザ認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、ユーザ認証が失敗した旨を判定する機能をもっている。例えば、ユーザ認証モジュール22は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた最初のコマンドが認証コマンドであるか否かを判定し、否の場合には、規定の認証シーケンスと異なる旨を検出する。あるいは、ユーザ認証前に、ホスト装置から読出し要求が来た場合に、規定の認証シーケンスと異なる旨を検出してもよい。
【0283】
以上のような構成によれば、ユーザ認証モジュール22が、現在のホスト装置30A(又は30B,…)の認証シーケンスが、規定の認証シーケンスと異なる場合にユーザ認証の失敗を判定する構成により、第1〜第8の各実施形態の効果に加え、機器認証を成功させた不正なホスト装置30Bであっても、ユーザ認証の認証シーケンスの違いから不正を検出することができる。
【0284】
<第10の実施形態>
次に、第10の実施形態について前述した図1および図2を参照しながら説明する。
【0285】
第10の実施形態は、第1〜第9の各実施形態において、ユーザ認証失敗時の破棄の可否を設定するものである。
【0286】
具体的には、記憶装置10のシステムエリア11aは、前述した各情報に加え、第1部分鍵及び第3部分鍵を破棄するか否かを示す可否情報を記憶する(構成例α1、構成例βの場合)。
【0287】
ユーザ認証モジュール22は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する設定機能をもっている。
【0288】
また、ユーザ認証モジュール22は、ユーザ認証が失敗したとき、システムエリア11a内の可否情報に基づいてユーザデータの無効化処理、またさらに暗号化機能を持つ場合は、第1部分鍵及び第3部分鍵の破棄を阻止する破棄阻止機能をもっている。
【0289】
さらに、ユーザ認証モジュール22は、ユーザデータの無効化処理が阻止されたとき、データ読出モジュール27を動作させず、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
【0290】
さらに、ユーザ認証モジュール22は、構成例βの場合は、第1部分鍵及び第3部分鍵の破棄が阻止されたとき、復号化モジュール24を動作させない。
【0291】
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【0292】
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
【0293】
次に、以上のように構成された記憶システムの動作を図38のフローチャートを用いて説明する。なお、構成例によって、第3部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【0294】
始めに、破棄の否を示す可否情報は、第5の実施形態と同様に、ステップST30の認証失敗時の動作設定において、記憶装置10のシステムエリア11aに設定される。以後、同様に、一旦、電源をオフして動作が終了する(ステップST60)。電源オフの後でも可否情報は消去されずに、システムエリア11aに記憶されている。
【0295】
次に、記憶装置10は、不正なユーザにより、正規のホスト装置30Aに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Aに対する機器認証を実行する(ステップST10、ステップST110又はステップST10’)。なお、正規のホスト装置30Aなので、機器認証は成功する。
【0296】
続いて、記憶装置10は、ホスト装置30Aに対するユーザ認証を実行する(ステップST20’)。
【0297】
具体的には、ホスト装置30Aの入力モジュール33は、不正なユーザの操作に応じて、不正な第2ユーザ認証情報の入力を受け付ける。CPU34は、入力を受け付けた不正な第2ユーザ認証情報を記憶装置10に送信する。
【0298】
記憶装置10のユーザ認証モジュール22は、現在のホスト装置30Aから受けた不正な第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行する。ここでは、不正なユーザに対するユーザ認証は失敗する。
【0299】
ユーザ認証が失敗したとき、ユーザ認証モジュール22は、システムエリア11a内の可否情報に基づいて、ユーザデータの無効化を阻止する。さらに、システムエリア11a内の内部情報G(第1部分鍵)が存在する装置の場合は、内部情報G及びSRAM25内の第3部分鍵K3の破棄を阻止する。
【0300】
また、ユーザ認証モジュール22は、破棄を阻止したとき、ユーザ認証のエラーを現在のホスト装置30Aに出力する。また、このとき、構成例βの場合は復号化モジュール24を動作させない。
【0301】
上述したように本実施形態によれば、可否情報によりユーザデータの無効化処理の可否、内部情報G(第1部分鍵)を持つ場合は、さらに第1部分鍵及び暗号鍵の破棄の可否を設定できる構成により、破棄の可を設定した場合には第1〜第9の各実施形態の効果を得ることができ、破棄の否を設定した場合には暗号化データの破棄を阻止することができる。
【0302】
<第11の実施形態>
次に、第11の実施形態について前述した図1および図2を参照しながら説明する。
【0303】
第11の実施形態は、第9の実施形態において、ユーザ認証失敗時の接続許容回数(リトライ可能回数)を設定するものである。換言すると、第11の実施形態は、第10の実施形態の可否情報に代えて、許容接続回数を用いた構成である。
【0304】
すなわち、記憶装置10のシステムエリア11aは、前述した各情報に加え、第1部分鍵及び第3部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数と、ユーザ認証が失敗した回数を示すエラー回数とを記憶する。
【0305】
ユーザ認証モジュール22は、前述した各機能に加え、許容接続回数を含む設定要求を正規のホスト装置30Aから受けると、当該許容接続回数をシステムエリア11aに設定する設定機能をもっている。
【0306】
また、ユーザ認証モジュール22は、ユーザ認証が失敗したとき、システムエリア11a内のエラー回数を増加させるように更新するエラー回数更新機能をもっている。
【0307】
さらに、ユーザ認証モジュール22は、更新後のエラー回数とシステムエリア11a内の許容接続回数に基づいてユーザデータ無効化処理(構成例αの場合)、構成例α1、構成例βの場合はさらに第1部分鍵(内部情報G)及び第3部分鍵の破棄を阻止する破棄阻止機能をもっている。
【0308】
また、ユーザ認証モジュール22は、ユーザデータ無効化処理が阻止された場合、データ読出モジュール27を動作させずに、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
【0309】
また、ユーザ認証モジュール22は、構成例βの場合は、第1部分鍵及び第3部分鍵の破棄が阻止されたとき、復号化モジュール24も動作させない。
【0310】
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【0311】
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
【0312】
以上のような構成によれば、ユーザ認証が失敗した場合に、許容接続回数によりユーザデータの無効化処理、さらに構成例α1、構成例βの場合は、第1部分鍵及び第3部分鍵の破棄の可否を設定できる構成により、許容接続回数に至るまではデータの破棄を阻止できると共に、許容接続回数に至った後は第9の実施形態の効果を得ることができる。
【0313】
<第12の実施形態>
次に、第12の実施形態について前述した図1および図2を参照しながら説明する。
【0314】
第12の実施形態は、第1〜第11の各実施形態において、ユーザ認証モジュール22がユーザデータの無効化処理つまり破棄した時、さらに構成例α1、構成例βの場合は、第1部分鍵及び第3部分鍵を破棄したときの破棄ログ情報をシステムエリア11aに記憶するものである。
【0315】
ここで、破棄ログ情報Lgは、前述同様に、ユーザデータが破棄、さらに構成例α1、構成例βの場合においては第1部分鍵及び第3部分鍵が破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含んでいる。なお、破棄理由情報は、ユーザ認証の失敗に限らず、正規の破棄コマンドで破棄された場合にはその旨を示してもよい。
【0316】
ユーザ認証モジュール22は、前述した各機能に加え、ユーザデータが破棄、さらに構成例α1、構成例βの場合においては第1部分鍵及び第3部分鍵が破棄されたとき、破棄ログ情報Lgを作成してシステムエリア11aに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Lgは、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
【0317】
以上のような構成によれば、ユーザ認証が失敗し、ユーザデータが破棄、さらに構成例α1、構成例βの場合においては内部情報G(第1部分鍵)及び第3部分鍵K3が破棄されたとき、ユーザ認証モジュール22は、破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを作成してシステムエリア11aに書き込む。これにより、例えば記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄ログ情報Lgがシステムエリア11aから読み出される。
【0318】
上述したように本実施形態によれば、ユーザデータが破棄、さらに構成例α1、構成例βの場合においては内部情報G(第1部分鍵)及び第3部分鍵K3が破棄されたとき、破棄ログ情報Lgを記憶する構成により、第1〜第11の各実施形態の効果に加え、正規のユーザが破棄日時と破棄理由とを知ることができる。
【0319】
<第13の実施形態>
次に、第13の実施形態について前述した図1および図2を参照しながら説明する。
【0320】
第13の実施形態は、第12の実施形態の破棄ログ情報Lgにデジタル署名を付与した破棄証明書を記憶するものである。
【0321】
具体的には第8の実施形態と同様に、記憶装置10のシステムエリア11aは、図25に示したように、前述した各情報に加え、自装置の署名生成鍵Ksig-10を予め記憶する。また、システムエリア11aは、図25及び図26に示したように、破棄ログ情報Lg及びデジタル署名からなる破棄証明書Certを記憶する。
【0322】
ユーザ認証モジュール22は、前述した各機能に加え、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する署名生成機能をもっている。
【0323】
また、ユーザ認証モジュール22は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む破棄証明書作成機能を更にもっている。
【0324】
この破棄証明書Certは、前述同様に、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
【0325】
一方、ホスト装置30Aの構成は、第8の実施形態と同様である。
【0326】
以上のような構成によれば、前述した第12の実施形態で破棄ログ情報Lgがシステムエリア11aに書き込まれたとき、ユーザ認証モジュール22は、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する。
【0327】
また、ユーザ認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む。これにより、記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄証明書Certがシステムエリア11aから読み出される。
【0328】
正規のホスト装置30AのCPU34は、読み出した破棄証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証し、検証結果が正当のとき、破棄証明書Certを出力モジュール35に出力する。
【0329】
上述したように本実施形態によれば、ユーザ認証モジュール22が破棄ログ情報Lgにデジタル署名を付加した破棄証明書Certをシステムエリア11aに記憶する構成により、第12の実施形態の効果に加え、破棄ログ情報Lgの正当性を検証することができる。
【0330】
以上説明した少なくとも一つの実施形態によれば、接続されたホスト装置30A(又は30B,…)の機器認証を実行し、機器認証が失敗したとき、ユーザデータを破棄、さらに構成例α1においては認証情報の一部である内部情報G、構成例βにおいては暗号鍵の一部である第1部分鍵を破棄する機器認証モジュール21を記憶装置10が備えた構成により、使用可能なシステム環境とは異なる環境からアクセスされた場合には、ユーザのアクセス権の有無によらず、記憶しているデータを無効にすることができる。
【0331】
<第14の実施形態>
次に、第14の実施形態について前述した図1および図2を参照しながら説明する。
【0332】
第14の実施形態においては、前述の、機器認証、ユーザ認証すべてが成功した後の処理である。本実施形態では、記憶装置10は、不揮発性半導体メモリ11としてNANDメモリを用いることを前提としており、機器認証、ユーザ認証すべてが成功した後の状態において、ホスト装置からの命令、つまりインターフェース装置を経由して送られる自己破壊コマンドに基づいて、自己破壊を行う機能を持つ。自己破壊の手段は、NANDメモリ11内の全ての内容を消してしまう方法である。
【0333】
この場合、前述のデータ無効化処理の方法として上げた第2の方法から第5の方法など、実際に不揮発性半導体メモリの記憶内容を破壊できる方法が使用できる。なお、第2の方法から第4の方法においては、ユーザデータを保持したブロックのみを消去対象としたが、自己破壊を行う場合においては、全ブロックを対象として、データの消去を行う。
【0334】
この自己破壊の後は、ドライブ制御回路内に保持される、IPLと呼ばれるファームウェアロード用コードが、ファームウェアを見つけられずエラーを検出し、インターフェース経由や、ドライブアクセス状況の通知用のLEDの信号性を利用して、ファームウェアが存在しないことを示すようにすることによって、外部から、他の故障と区別が可能となる。
【0335】
本実施例によれば、認証がされたホスト装置から、認証がされたユーザからのみ破壊処理が可能になり、悪意を持ったユーザによる破壊が防げるとともに、必要な時に、安全に高速に破壊し、安全に記憶装置を廃棄することが可能となる。ハードディスクドライブの場合は、外部から強力な磁界を加えることによってHDDとしての破壊が可能であったが、不揮発性半導体メモリを用いた記憶装置において、対応する方法がなかったが、本発明により、簡単に破壊して処分することが可能になる。
【0336】
<各実施形態の変形例>
第1〜第13の各実施形態においては、記憶装置10内の内部情報G(第1部分鍵)と、ホスト装置30Aから送信される固有情報“AA”(第2部分鍵)とを複合し、生成した第3部分鍵に第2ユーザ認証情報を複合して暗号鍵を作成し、この暗号鍵をSRAM25(揮発性メモリ)に記憶させている。
【0337】
これに対し、システムエリア11a内の第1部分鍵及びメモリ32A内の第2部分鍵を省略する一方、メモリ32A内に暗号鍵Kgを予め保持し、機器認証が成功したとき、ホスト装置30Aから送信した暗号鍵Kgを機器認証モジュール21がSRAM25に書き込むように変形してもよい。
【0338】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0339】
1 記憶装置101 不揮発性半導体メモリ(NANDメモリ)、19 DRAM、20 ドライブ制御回路、21 機器認証モジュール、22 ユーザ認証モジュール、23 暗号化モジュール、24 復号化モジュール、25 SRAM、26 データ記憶モジュール、27 データ読出モジュール、30A,30B ホスト装置。
【技術分野】
【0001】
本発明の実施形態は、記憶装置、記憶システム及び認証方法に関する。
【背景技術】
【0002】
従来、不揮発性半導体メモリであるNANDメモリを用いた認証機能を持つSolid Sate Drive(SSD)(以下、記憶装置という)は、アクセス権のあるユーザのパスワード認証が成功すると、ホスト装置からのデータアクセス要求を受理し、ホスト装置から指定された領域に記録されたユーザデータを出力する。さらに、記憶装置が暗号化機能を持つ場合は、パスワード認証が成功すると、予め保持した暗号鍵を復号鍵に設定し、この復号鍵により暗号化ユーザデータを復号して得られたユーザデータを出力する。このように、従来の記憶装置は、アクセス権のあるユーザに対し、正しいユーザデータを出力可能となっている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−5408号公報
【特許文献2】特開2009−211228号公報
【特許文献3】特開2003−249083号公報
【特許文献4】特開平8−306196号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態は、データ漏洩を防止することが可能な記憶装置、記憶システム及び認証方法を提供する。
【課題を解決するための手段】
【0005】
本願発明の一態様によれば、ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置は、任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報、及び正規のホスト装置を使用する正規のユーザを認証する第1ユーザ認証情報を予め記憶する認証情報記憶部、を備える。また、この記憶装置は、新たに接続された現在のホスト装置から受けた第2機器認証情報と前記認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行し、機器認証が失敗した場合、不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施する。また、この記憶装置は、機器認証の後、現在のホスト装置から受けた第2ユーザ認証情報と認証情報記憶部内の第1ユーザ認証情報とに基づいてユーザ認証を実行し、ユーザ認証が成功したとき、現在のホスト装置から受けた読出要求に基づいて、不揮発性半導体メモリに記憶されているユーザデータを現在のホスト装置に出力する。
【図面の簡単な説明】
【0006】
【図1】図1は、第1の実施形態にかかる記憶システムの構成の一例を示すブロック図である。
【図2】図2は、第1の実施形態にかかる記憶システムの暗号化処理を行う場合の構成の一例を示すブロック図である。
【図3】図3は、NANDメモリチップに含まれる1個の物理ブロックの構成例を示す図である。
【図4】図4は、アドレス変換情報の構成例を示す図である。
【図5】図5は、NANDメモリの記憶領域の区分を模式的に示す図である。
【図6】図6は、記憶装置が保持するデータと格納領域の一例を示す図である。
【図7】図7は、暗号化処理を行う場合のSRAM上のデータの一例を示す図である。
【図8】図8は、メモリ上のデータの一例を示す図である。
【図9】図9は、第1の実施形態の構成例α1の動作の一例を示すフローチャートである。
【図10】図10は、第1の実施形態の構成例βの動作の一例を示すフローチャートである。
【図11】図11は、ステップST40の詳細処理手順の一例を示すフローチャートである。
【図12】図12は、第2の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図13】図13は、第2の実施形態におけるメモリ内のデータを説明するための模式図である。
【図14】図14は、第2の実施形態における動作を説明するためのフローチャートである。
【図15】図15は、第2の実施形態における動作を説明するためのフローチャートである。
【図16】図16は、正規のホスト装置が複数ある場合の第1機器認証情報および内部情報の一例を示す図である。
【図17】図17は、一般的なパスワード認証のみを実行するユーザデータ暗号化機能を持つ記憶装置を用いた記憶システムの動作を示す模式図である。
【図18】図18は、第2の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図19】図19は、第2の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図20】図20は、第2の実施形態の記憶装置に正規のホスト装置が接続された場合の動作を示す模式図である。
【図21】図21は、第2の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図22】図22は、第2の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図23】図23は、第2の実施形態における記憶装置に不正なホスト装置が接続された場合の動作を示す模式図である。
【図24】図24は、第3の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図25】図25は、第3の実施形態におけるメモリ内のデータを説明するための模式図である。
【図26】図26は、第3の実施形態における動作を説明するためのフローチャートである。
【図27】図27は、第3の実施形態における動作を説明するためのフローチャートである。
【図28】図28は、第4の実施形態における動作を説明するためのフローチャートである。
【図29】図29は、第5の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図30】図30は、第5の実施形態における動作を説明するためのフローチャートである。
【図31】図31は、第6の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図32】図32は、第6の実施形態における動作を説明するためのフローチャートである。
【図33】図33は、第7の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図34】図34は、第7の実施形態における破棄ログ情報を説明するための模式図である。
【図35】図35は、第8の実施形態における不揮発性半導体メモリ内のデータを説明するための模式図である。
【図36】図36は、第8の実施形態における破棄証明書を説明するための模式図である。
【図37】図37は、第8の実施形態におけるメモリ内のデータを説明するための模式図である。
【図38】図38は、第10の実施形態における動作を説明するためのフローチャートである。
【発明を実施するための形態】
【0007】
従来の記憶装置は、ユーザデータを記憶した状態で、アクセス権のあるユーザによって外部のシステム環境に持ち出された場合、パスワード認証の成功により、復号したユーザデータを漏洩させてしまう心配がある。
【0008】
また、小型の記憶装置は容易に持ち出し可能なため、盗難が発生し易い上に、盗難後にパスワードが破られると、ユーザデータを漏洩させてしまう。このため、盗難時のユーザデータ漏洩防止のため、持ち出し先で確実にユーザデータが無効化される必要がある。
【0009】
このように、従来の記憶装置は、使用可能なシステム環境とは異なる環境からアクセスされた場合には、ユーザのアクセス権の有無によらず、記憶しているユーザデータを無効にしたいという課題がある。
【0010】
ユーザデータの無効化については、例えば、記憶装置全体を無効データで上書きする方法が一番知られているが、これは非常に時間が掛かるため、データを読み出そうとしている悪意を持った攻撃者に気づかれ、電源を切られて、別の攻撃をされるといった問題もある。このため、短い時間でユーザデータの無効化処理を行うことが望ましい。
【0011】
短時間のユーザデータ無効化技術としては、データを暗号化して記録し、その鍵を破棄することで、データの復号を困難にしてデータを事実上無効化する暗号消去と言われる方式が存在するが、この方式では、記憶装置の処理速度が遅くなるか、遅くならないようにするためには、暗号回路を組み込む必要があり、装置が複雑化、大型化、消費電力の増大といった課題がある。また、暗号装置は、法規制の対象になる国が多く、暗号機能を持つ記憶装置が使えない国がある、法規制に適合するため取り扱いが煩雑になる、という課題もある。
【0012】
また、廃棄時もユーザデータを無効化したいが、記憶装置全体を無効データ上書きする方法では時間がかかりすぎるという課題もあった。
【0013】
以下に添付図面を参照して、実施形態にかかる記憶装置、記憶システム及び認証方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【0014】
(第1の実施形態)
図1は、第1の実施形態にかかる記憶システムの構成の一例を示すブロック図である。図2は、第1の実施形態にかかる記憶システムの暗号化処理を行う場合の構成の一例を示すブロック図である。
【0015】
記憶装置では、記憶されるデータを保護するためにユーザデータを暗号化して記憶することがある。このように暗号化処理を行うと、セキィリティは向上するが、一方で暗号化モジュールおよび復号化モジュールを備える必要があり、また書き込みや読み出し時の処理量が増加する。本実施形態では、暗号化を行わない例(図1の構成例)を主に説明を行うが、暗号化処理を行わない例(図2の構成例)についても並行して説明を行う。なお、同一の符号を有する構成要素は、同様または類似の機能を有する構成要素を示している。
【0016】
図1に示すように、本実施形態の記憶システムは、電源オフ時にデータが消去される揮発性メモリを有し、任意のホスト装置30A,30B,…に着脱自在に接続可能な記憶装置10と、任意のホスト装置30A,30B,…のうち、記憶装置10への接続権限をもつ正規のホスト装置30Aとを備えている。
【0017】
記憶装置10は、フューズ8、電源回路5、温度センサ7、記憶媒体である不揮発性半導体メモリ(NANDメモリ)11、DRAM(Dynamic Random Access Memory:バッファメモリ)19及びドライブ制御回路20を備えている。ドライブ制御回路20は、機器認証モジュール21、ユーザ認証モジュール22、SRAM(Satic Random Access Memory:揮発性メモリ)25、データ記憶モジュール26およびデータ読出モジュール27を備える。なお、ここでは、不揮発性半導体メモリ11がNANDメモリである場合について説明するが、NANDメモリ以外の不揮発性半導体メモリであってもよい。
【0018】
また、図2に示すように、記憶装置10が、ユーザデータの暗号化処理を行う機能を持つ場合は、ドライブ制御回路20は、図1の例のドライブ制御回路20の構成要素に加え、さらに暗号化モジュール23、復号化モジュール24を備える。
【0019】
まず、図1の構成例の各構成要素と基本動作について説明する。本実施形態では、記憶装置が備える不揮発性半導体メモリとしてNANDメモリ11を用いている。NANDメモリ11は、図1および図2に示すように、4並列動作を行う4つの並列動作要素11a〜11dを有し、1つの並列動作要素は、2つのNANDメモリパッケージを有する。各NANDメモリパッケージは、積層された複数のNANDメモリチップ(例えば、1チップ=2GB)によって構成されている。
【0020】
図1の例では、各NANDメモリパッケージは、積層された4枚のNANDメモリチップによって構成されており、NANDメモリ11は64GBの容量を有する。例えば、各NANDメモリパッケージが、積層された8枚のNANDメモリチップによって構成されている場合は、NANDメモリ11は128GBの容量を有することになる。
【0021】
DRAM19は、ホスト装置30AとNANDメモリ11と間でのデータ転送用キャッシュおよび作業領域用メモリとして機能する。また、DRAM19の代わりに、不揮発性メモリであるFeRAM(Ferroelectric RAM)を使用しても良い。ドライブ制御回路20は、ホスト装置30AとNANDメモリ20との間でDRAM19を介してデータ転送制御を行うとともに、記憶装置10内の各構成要素を制御する。また、ドライブ制御回路20は、状態表示用LED(Light Emitting Diode)6にステータス表示用信号を供給するとともに、電源回路 からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を自回路内および記憶装置10内の各部に供給する機能も有している。なお、LED6は、記憶装置10自体には無く、例えばホスト装置に設けたLED6を点灯させるための信号を出力するための端子のみを設けてあってもよい。
【0022】
各NANDメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。図3(a)は、NANDメモリチップに含まれる1個の物理ブロックの構成例を示す回路図である。各物理ブロックは、X方向に沿って順に配列された(p+1)個のNANDストリングを備えている(pは、0以上の整数)。(p+1)個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL0〜BLpに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
【0023】
各メモリセルトランジスタMTは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(Metal Oxide Semiconductor Field Effect Transistor)から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、および電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタMTは、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
【0024】
また、メモリセルトランジスタMTは、浮遊ゲート電極を有する構造に限らず、MONOS(Metal-Oxide-Nitride-Oxide-Silicon)型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることでしきい値調整可能な構造であってもよい。MONOS構造のメモリセルトランジスタMTについても同様に、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
【0025】
各NANDストリングにおいて、(q+1)個のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタMTは、隣接するもの同士で拡散領域(ソース領域若しくはドレイン領域)を共有するような形でY 方向に直列接続される。
【0026】
そして、最もドレイン側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワード線WL0〜WLqにそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワード線WLqに接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。
【0027】
ワード線WL0〜WLqは、物理ブロック内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続される(p+1)個のメモリセルトランジスタMTは1ページ(物理ページ)として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【0028】
また、ビット線BL0〜BLpは、ブロック間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
【0029】
図3(b)は、例えば、1個のメモリセルトランジスタMTに2ビットの記憶を行う4値データ記憶方式でのしきい値分布を示す模式図である。4値データ記憶方式では、上位ページデータ“x”と下位ページデータ“y”で定義される4 値データ“xy”の何れか1つをメモリセルトランジスタMTに保持可能である。
【0030】
この、4値データ“xy”は、メモリセルトランジスタMTのしきい値電圧の順に、例えば、データ“11”、“01”、“00”、“10”が割り当てられる。データ“11”は、メモリセルトランジスタMTのしきい値電圧が負の消去状態である。
【0031】
下位ページ書き込み動作においては、データ“11”(消去状態)のメモリセルトランジスタMTに対して選択的に、下位ビットデータ“y”の書き込みによって、データ“10”が書き込まれる。上位ページ書き込み前のデータ“10”のしきい値分布は、上位ページ書き込み後のデータ“01”とデータ“00”のしきい値分布の中間程度に位置しており、上位ページ書き込み後のしきい値分布よりブロードであってもよい。上位ページ書き込み動作においては、データ“11”のメモリセルと、データ“10”のメモリセルに対して、それぞれ選択的に上位ビットデータ“x”の書き込みが行われて、データ“01”およびデータ“00”が書き込まれる。
【0032】
論理アドレス(Logical Block Address 略してLBAともいう)と、NANDメモリ11の物理アドレスと、は、アドレス変換情報により管理される。図4は、アドレス変換情報の構成例を示す図である。ドライブ制御回路20は、ホスト装置30Aから要求されたユーザデータの読み出し時に、アドレス変換情報を用いて当該ユーザデータの論理アドレスに対応する物理アドレスを取得して、NANDメモリ11から当該ユーザデータの読み出しを実施する。なお、ここでは、論理アドレスと物理アドレスを直接変換する例について説明したが、これに限らず、多段階でアドレスを変換する(ホスト装置の論理アドレスから記憶装置の論理アドレスへ一旦変換した後に、物理アドレスへ変換する等)方式としてもよい。
【0033】
図5は、NANDメモリ11の記憶領域の区分を模式的に示す図である。NANDメモリ11の記憶領域は、図5に示すように、通常LBA領域11bと、特殊LBA領域11aと、特殊領域11cに区分される。ここで、通常LBA領域11bは、ホスト装置30Aからのコマンド(Readコマンド/Writeコマンドなど)によってアクセス可能なLBA領域(論理アドレス領域)、すなわちユーザデータ領域であるのに対し、特殊LBA領域11a、特殊領域11cは、ホスト装置30Aから発出される通常のコマンドではアクセスすることができないLBA領域である。
【0034】
NANDメモリ11のうち、LBAが対応付けされていない領域が、特殊領域11cである。本実施の形態では、非ユーザ領域は、管理情報の記録等に用いられる特殊LBA領域(システムエリア)11aと、それ以外の、ファームウェアが記録された領域等、またフリーブロックFBを含むLBAが割り当てられていない領域が属する特殊領域11cで構成される。特殊LBA領域11a、特殊領域11cは、記憶装置10の内部に展開されるファームウェア(FW)を構成するモジュールが発出するコマンドによってアクセスすることが可能である。また、ファームウェア自体は、記憶装置10内、例えばドライブ制御装置内の図示しない読み出し専用メモリ(ROM)内に予め記録されたIPL(Initial Program Loader)と呼ばれるファームウェアロード用コードによって、起動時に読み出されて例えばSRAM25に展開されて実行される。なお、これらの特殊LBA領域11a、通常LBA領域11b、特殊領域11cは、物理的にそれぞれ連続した物理領域として存在する必要はなく、NANDメモリ11の個々の物理管理単位が、それぞれこれらの領域に属する。例えば、特殊領域11cとして使用していたブロックが解放されフリーブロックFBとなった後、このフリーブロックFBにユーザデータが記録されると、以降は通常LBA領域11bとして使用される。このように個々の物理管理単位が属する領域は、固定ではなく、記憶装置10の使用とともに、変化していく。
【0035】
これらの通常LBA領域11b、特殊領域11cおよび特殊LBA領域(システムエリア)11aについて、具体例を用いて説明する。いま、NANDメモリ11の領域のサイズ(いわゆるディスク容量)を、例えば64GBとすると、この64GBの領域はユーザ領域である。なお、ここでいう64GBの領域というのは、LBAの範囲が64GBという意味であり、常に物理的に64GBのNANDメモリ11が割り当てられているという意味ではない。一方、NANDメモリ11には、ホスト装置30Aからアクセスできる当該64GBの領域(ユーザ領域)以外に、NANDメモリ11の内部情報を保存するための領域として、所定サイズ(例えば、1論理ブロック分程度)の領域(非ユーザ領域)がLBA上にマップされる。この64GBの領域が通常LBA領域11bであり、所定サイズの領域が特殊LBA領域(システムエリア)11aであり、これらに属さない領域が特殊領域11cである。なお、ここではファームウェアが特殊エリア11cに記録されるとしているが、特殊LBA領域11aに記録してもよい。
【0036】
特殊LBA領域(システムエリア)11aは、例えば、NANDメモリ11を管理する管理データ、SMART情報などを保存するために使用される。この特殊LBA領域(システムエリア)11aに格納される管理データは、通常LBA領域11bに格納されるユーザデータと同じ管理方式でハンドリングされ、通常LBA領域11bがマップされ得る全ての論理ブロックに割り当てが可能である。すなわち、ドライブ制御回路20から見れば、論理アドレスの違いを除いて、処理の違いはない。
【0037】
以上、図1の構成例(以下、構成例αとする)について説明したが、図2の構成例(以下、構成例βとする)についても、重複する構成要素の機能と基本動作は構成例αと同様である。以下では、特記しない場合(例えば、「構成例βの場合は」等のような記載がない場合)は、構成例αについて説明している。構成例βについては、暗号化処理および復号化処理に関する部分以外は、構成例αの各部の機能および動作と同様であり、構成例αと重複する説明は省略する。
【0038】
次に、本実施形態の認証と鍵データについて説明する。本実施形態では、ホスト装置30A、30B、…から記憶装置10へのアクセス(記憶装置10からの読み出し、記憶装置10への書き込み)を行う前に、機器認証処理とユーザ認証処理を実施する。機器認証処理とユーザ認証処理の両方で認証された場合に、記憶装置10へのアクセスが可能となる。なお、機器認証手順およびユーザ認証手順に特に制約はなくどのような手順で実施してもよい。
【0039】
本実施形態の記憶装置10は、上述の機器認証処理およびユーザ認証処理を行うための情報を保持している。図6は、記憶装置10が保持するデータと格納領域の一例を示す図である。図6に示すように、本実施形態では、NANDメモリ11の特殊LBA領域(システムエリア)11a内に、第1部分鍵、第1機器認証情報、第1ユーザ認証情報およびアドレス変換情報を記憶している。このように、NANDメモリ11の特殊LBA領域(システムエリア)11aは、第1部分鍵を記憶する第1部分鍵記憶部としての機能と、認証情報を記憶する認証情報記憶部としての機能と、を有する。
【0040】
ここで、第1部分鍵は、構成例αの場合は、第1ユーザ認証情報を生成するために用いる暗号鍵を生成するために用いる鍵データである。なお、構成例αの場合には、この第1部分鍵を用いない場合もある。また、構成例βの場合は、第1部分鍵はSRAM25に書き込まれる暗号鍵を生成するために用いる鍵データである。第1部分鍵としては、例えば、記憶装置10の内部情報Gを用いる。また、内部情報Gは、例えば初期設定時に、ドライブ制御回路20からシステムエリア11aに予め書込まれる。例えば、構成例βの場合は、暗号化モジュール23から内部情報Gがシステムエリア11aに書き込まれ、構成例α(暗号化モジュール23を持たない構成)の場合は、別のモジュールで内部情報Gを書き込むようにしてもよい。なお、ここでは、このような内部情報Gの一例として、内部情報Gを所定の規則により生成された乱数とするが、内部情報Gはこの例に限定されない。以下の説明では、第1部分鍵が内部情報Gであるとして述べる。
【0041】
また、ここでは、構成例αの場合には、内部情報Gを用いて第1ユーザ認証情報を生成する例について説明するが、内部情報Gを用いて第1ユーザ認証情報を生成しなくてもよい。すなわち、記憶装置10は内部情報Gを保持せず、第1ユーザ認証情報は予めシステムエリア11aに書き込まれるとしてもよい。以下、内部情報Gを用いて第1ユーザ認証情報を生成する場合としない場合を区別して説明する際には、構成例αで内部情報Gを用いて第1ユーザ認証情報を生成する場合を構成例α1とし、内部情報Gを用いない場合を構成例α2として説明する。構成例α1と構成例α2を区別しない場合(両方に共通する事項)には、構成例αと表記して説明する。なお、構成例α1の場合は、図6で示した構成例において、特殊LBA領域(システムエリア)11a内の第1ユーザ認証情報の全て、または一部は、第3暗号鍵を用いて複合された形態(後述の保護化第1ユーザ認証情報)である内部情報Gとして記憶される。
【0042】
第1機器認証情報は、接続可能な任意のホスト装置30A,30B,…のうち、接続権限をもつ正規のホスト装置30Aを機器認証するためのものであり、任意の機器認証方式の機器認証情報が使用可能となっている。例えば、第1機器認証情報としては、ホスト装置30Aの固有情報“AA”、又はホスト装置30Aの署名検証鍵Kveri-30Aが使用可能であるが、これらの例に限定されない。このような第1機器認証情報は、例えば初期設定時に、機器認証モジュール21からシステムエリア11aに予め書込まれる。機器認証方式としては、互いに同一の第1機器認証情報と第2機器認証情報とを照合する方式や、第2又は第3の実施形態に述べるように、互いに異なる第1機器認証情報及び第2機器認証情報に基づく方式のいずれとしてもよい。ホスト装置30Aの固有情報としては、例えばMACアドレスが使用可能であるが、この例に限定されない。
【0043】
第1ユーザ認証情報は、正規のホスト装置30Aを使用する正規のユーザを認証するためのものである。第1ユーザ認証情報としては、正規のユーザのパスワードP及びユーザIDを一例として用いるが、この例に限定されない。第1ユーザ認証情報は、例えば初期設定時に、ユーザ認証モジュール22からシステムエリア11aに予め書込まれる。
【0044】
また、通常LBA領域11b(ユーザ領域)は、ユーザデータDを記憶している。記憶装置10がユーザデータ暗号化機能を持つ場合(構成例βの場合)は、ユーザエリア11bは、暗号鍵Kgに基づいて暗号化モジュール23により暗号化されたデータDである暗号化データEg(Kg,D)を記憶している。なお、ここでは、内部情報Gの場合に、“G”の小文字“g”を添字にして“Eg”,“Kg”と表記している。例えば、内部情報Iの場合には、“I”の小文字“i”を添字にして“Ei”,“Ki”と表記する。構成例αの場合には、ユーザデータDは暗号化されていないデータである。
【0045】
構成例βの場合には、SRAM25には、図7に示すように暗号化鍵Kgが記憶される。図7は、暗号化処理を行う場合のSRAM25上のデータの一例を示す図である。暗号化モジュール23は、書き込み対象のユーザデータをホスト装置30Aから受け取ると、当該データを暗号鍵Kgを用いて暗号化して暗号化データEg(Kg,D)を生成し、データ記憶モジュール26が通常LBA領域11bにユーザデータとして暗号化データEg(Kg,D)を書き込む。また、読み出し時には、データ読出モジュール27が通常LBA領域11bから読み出した暗号化データEg(Kg,D)を、復号化モジュール24が暗号鍵Kgを用いて復号し、復号後のユーザデータをホスト装置30Aへ送る。
【0046】
データ記憶モジュール26は、有効データが記憶されていないNANDメモリ11上の領域に、データを記録する機能を持つ。データ記憶モジュール26は、ホスト装置から送られた論理アドレスとユーザデータを受け取り、有効データが記憶されていないNANDメモリ11上の領域に当該ユーザデータを書き込み、その物理アドレスと、ホスト装置から送付された論理アドレスの対応状況を、特殊LBA領域(システムエリア)11a内のアドレス変換情報に書込む。また、構成例βの場合には、NANDメモリ11にユーザデータを書き込む前に、上述のように暗号化モジュール23により暗号化データEg(Kg,D)に変換する。
【0047】
また、データ読出モジュール27は、NANDメモリ11から、指定された論理アドレスのデータを読み出す機能を持つ。ホスト装置30Aから指定された論理アドレスのデータを出力する(読みだす)よう要求された場合、データ読出モジュール27は、システムエリア11a内に保持したアドレス変換情報に基づいて、論理アドレスを物理アドレスに変換し、そのNANDメモリ11上の当該物理アドレスからユーザデータを読み出し、ホスト装置30Aに出力する。また、構成例βの場合には、上述のように暗号化されたユーザデータを読み出した後、復号化モジュール24で、平文のユーザデータに戻してから、ホスト装置30Aに出力する。
【0048】
アドレス変換情報には、初期時は、論理アドレスに対応する物理アドレスは登録されていない。そのため、データ読出モジュール27は、読み出し要求を受けると、ホスト装置によって書き込まれたものではないデータを出力、あるいはエラーをホスト装置に通知するなどの動作をする。
【0049】
この動作の実現方法としては、例えば、次のような方法がある。例えば、アドレス変換情報には、初期時は、論理アドレスに対応するユーザデータを記憶した物理アドレスは存在しない状態とし、NANDメモリ11への記録時に、論理アドレスに対応する物理アドレスを登録する。そして、データ読出モジュール27は、アドレス変換情報に、読み出しのデータに対応する物理アドレスが存在しない場合に、ゼロの値のみでなるデータを出力する、もしくはエラーをホスト装置に通知する。
【0050】
または、例えば、初期時は、アドレス変換情報は、全ての論理アドレスが、一つの固定データを記憶した特殊ブロックの物理アドレスを示すようにして、ホスト装置から読み出し要求が来ると、この特殊ブロックを読み出して得たデータをホスト装置に出力するようにしてもよい。
【0051】
アドレス変換情報を用いたアドレス変換の処理は、この例に限定されず、様々な実現方法があり、どのような実現方法を採用してもよい。いずれの実現方法を採用した場合も、アドレス変換情報に、論理アドレスに対応するユーザデータを記憶した物理アドレスが登録されていない状態では、NANDメモリ11上に、ユーザデータが記憶されていたとしても、ホスト装置からの要求でユーザデータを出力できない。
【0052】
DRAM19は、揮発性メモリであり、ドライブ制御回路20に制御されてリードデータ及びライトデータを一時的に記憶する。また、ドライブ制御回路20の利用する各種管理データを記憶する。システムエリアに記録する情報、とりわけアドレス変換情報のキャッシュとして利用してもよい。なお、DRAM19は、SRAM25に代えて、SRAM25内のデータを記憶するように用いてもよい。あるいは逆に、DRAM19の代わりに、SRAM25に、DRAM19内のデータを記憶するように用いてもよい。ただし、揮発性メモリであるDRAM19の代わりに不揮発性FeRAMを使用した場合は、暗号鍵Kgなどは、後述のように電源オフ時に消去されないので、FeRAMに記憶することは好ましくない。
【0053】
ドライブ制御回路20は、DRAM19を使用して、NANDメモリ11とホスト装置30Aとのデータ伝送を制御するインターフェースである。また、ドライブ制御回路20は、NANDメモリ11のデータ読出/書込動作を制御し、構成例βの場合は、暗号化処理及び復号化処理などを制御する。また、ドライブ制御回路20は、さらに、機器認証処理及びユーザ認証処理を制御する。ここでいうユーザ認証処理は、従来のパスワード認証以外の処理(例、認証失敗時のユーザデータの無効化処理など)を含んでいる。
【0054】
以下では、ドライブ制御回路20による制御のうち、特に、機器認証処理、ユーザ認証処理、暗号化処理及び復号化処理の制御に用いられる機能ブロックについて説明する。
【0055】
機器認証モジュール21は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた第2機器認証情報と、特殊LBA領域(システムエリア)11a内の第1機器認証情報とに基づいて機器認証を実行し、この機器認証が失敗したとき、ユーザデータの無効化処理を行う機器認証機能をもっている。なお、第2機器認証情報は、機器認証処理において、第1機器認証情報と対を成す情報であり、認証を行う装置側(この場合は記憶装置10)は、認証対象の機器から第2機器認証情報を取得し、第2機器認証情報と保持する第1機器認証情報とに基づいて機器認証を実施する。
【0056】
構成例α1および構成例βの場合(第1部分鍵である内部情報Gを保持する記憶装置10の場合)は、機器認証モジュール21は、機器認証に失敗したときに、特殊LBA領域(システムエリア)11a内の内部情報Gを破棄する機能を有する。
【0057】
また、構成例α1および構成例βの場合(第1部分鍵である内部情報Gを保持する記憶装置10の場合)には、機器認証モジュール21は、機器認証の後、認証したホスト装置30A(又は30B,…)から受けとった第2部分鍵とシステムエリア11a内の内部情報G(第1部分鍵)とを複合し、生成した第3部分鍵K3をSRAM25に書込む第3部分鍵書込部としての機能を有する。
【0058】
ここで、複合とは、複数のデータに基づいて、なにかしらのデータを得る操作のことであり、その目的を達成できるものであれば、内容を問わない。例えば、内部情報Gが第2部分鍵によって予め暗号化されている情報であって、内部情報Gを第2部分鍵で復号(平文化)したものが第3部分鍵であってもよい。あるいは、内部情報Gが第2部分鍵と第3部分鍵と一緒に保存したデータであり、複合の処理としては、内部情報Gから第2部分鍵を取り除いて第3部分鍵を生成する操作であってもよい。これらは一例にすぎず、複合とは、第2部分鍵、内部情報Gおよび第3部分鍵の間に所定の関係を定義できるような処理であればどのような処理でもよい。
【0059】
また、本実施形態における、ユーザデータの無効化処理とは、不正なホスト装置からユーザデータを保護するために、ホスト装置からユーザデータを読み出しできなくする処理である。以下、ユーザデータの無効化処理の具体例について説明する。
【0060】
まず、ユーザデータの無効化処理の第1の方法として、前述のアドレス変換情報を初期化する方法がある。初期化とは、論理アドレスに対応するユーザデータを記録した物理アドレスを取得できない状態にすることである。例えば、ユーザデータの全部または予め設定された一部のアドレスに対応するアドレス変換情報のエントリを削除する。この場合、アドレス変換情報の大きさは、記憶装置10全体のデータ量に対して非常に小さいため、ユーザデータを実際に削除する場合等よりきわめて短時間でユーザデータの無効化ができる。または、無効化対象のユーザデータに対応するアドレス変換情報の物理アドレスを、無効なデータが記憶される領域に対応する特殊物理アドレスに変更するようにしてもよい。
【0061】
アドレス変換情報を初期化した(エントリが削除された)場合、ドライブ制御回路20は、NANDメモリ11上のデータを論理アドレスを介さずに読み出す手段(例えば物理アドレスを指定して読み出す手段)を別に設けなければ、NANDメモリ11からデータを読み出すことは不可能になる。
【0062】
なお本方式では、NANDメモリ11上にはデータが記載されたままなので、分解されると、不揮発性半導体メモリから直接読み出すことが可能になる恐れがある。ただし、NANDメモリの特性として、データをランダム化して記録した方が、寿命が延びるという特性があり、近年の微細化の進んだNANDメモリをNANDメモリ11として備える記憶装置10では、データがランダマイズ化されて記録される。ランダム化の方式としては、当然ながら可逆変換が使われるが、疑似乱数(暗号に使えるような暗号的な意味での乱数の必要はない)を使用する方法や、暗号アルゴリズムを使う方法がある。暗号アルゴリズムを使う場合は、暗号化が目的でないため、固定鍵や、短い鍵長でも構わない。固定鍵や鍵長の短い鍵を用いると、暗号強度は弱まるが、NANDメモリ11の寿命を延長する目的のためには十分であるからである。これらのデータランダマイズ用のハードウェアは、データを保護するための暗号化機能に比べて、簡単なハードウェアで実現できる。いずれにせよ、近年の微細化の進んだNANDメモリを備える記憶装置10では、暗号化ドライブで使うランダム化のためのハードウェアより、簡単なハードウェアでランダマイズすることができるため寿命延長のためにデータをランダマイズしてNANDメモリに記録することが多い。従って、仮に分解して、NANDメモリ11から直接データを読み出しても、多くの場合、ただちに、データを得ることはできない。
【0063】
なお、実際の実装にあたっては、管理の都合から、外部から与えられた論理アドレスを、機器内部の内部論理アドレスに変換して、しかるのち内部論理ブロックアドレスへ変換し、最後に物理アドレスに変換するという複数段階の構成をとることもできる。前述の説明でいうアドレス変換情報を無くすという操作は、この外部から与えられた論理アドレスから、最終的な物理アドレスへの変換過程の、どこか1箇所で行えばよい。実装の一例として、NANDメモリ11のアドレス空間を、図5で示したように、ユーザ領域と非ユーザ領域とに分けておくことができる。この場合、この場合、ユーザ領域に対応するアドレス変換情報のみを破棄することにより、記憶装置10の動作に必要なシステムエリアの情報を失わず、ホスト装置からのデータアクセスを不能にすることができる。
【0064】
ユーザデータの無効化処理の第2の方法として、不揮発性半導体メモリ11がNANDメモリで有る場合は、ユーザデータを記録した領域を消去する方法がある。NANDメモリは、磁気記録を用いたハードディスクドライブとは異なり、上書きができないため、ブロック単位で消去してから記録する。この際、時間がかかるのは記録(書き込み)であるため、消去だけであれば非常に高速に実行することが可能である。
【0065】
これによって、実際に記録されたデータそのものを消去することが可能である。例えば、1ブロックの消去と記録では200ms必要なところが消去だけでは5ms以下と、1ブロック全体上書きによりもとのデータを消去する場合の1/40以下の時間で消去が可能になる。
【0066】
なお、一般に、NANDメモリを用いた記憶装置では、通常の記録動作時において、前述のアドレス変換情報からブロックが除かれた時など、ブロックが有効なデータを保持しなくなった時点で、すなわちフリーブロックになった時点で消去する場合と、フリーブロックになった時には消さずに、記録する直前に消す方法がある。
【0067】
本実施形態のユーザデータ無効化処理における消去では、フリーブロックになったか否かを問わず、ユーザデータが記録されている可能性のある全ブロックを実際に消去してもよい。
【0068】
また、NANDメモリ11の1つのブロック中に、ユーザデータと記憶装置10の内部情報等とが混在して記録されている場合は、ユーザデータ以外を別のブロックにコピーしてから消去する。
【0069】
アドレス変換情報の消去とブロックの消去(NANDメモリ11上の実際のブロックのデータの消去)はどちらを先に行ってもよいが、アドレス変換情報を初期化(消去)せずに対応するブロックのデータを消去してしまうと、符号化の方式によっては読みだしたデータのエラー訂正符号が整合しなくなり、その後はすべて訂正不能UNC(Uncorrectable Error)となる。この方法を用いると、実際に消去されていることの確認が容易になる。データの消去の確認後、改めてホスト装置からの要求に基づいて、前述のアドレス変換情報の消去をおこなってもよい。
【0070】
なお、NANDメモリ11は、ドライブ制御回路20から発行されるコマンドに従って動作する。消去の場合は、例えば、消去するブロックのアドレスをドライブ制御回路20からNANDメモリ11へ送り、続いて消去コマンドを送付することによって、NANDメモリ11内において消去が実行される。以下の説明において、NANDメモリ11内の動作を説明しているが、これらはすべて、ドライブ制御回路20から送付されたコマンドと、物理ブロックアドレスと、に基づいて、NANDメモリ11内で動作が実行されることを意味している。
【0071】
さらに、ユーザデータ無効化処理の第3の方法として、第2の方法の消去を不完全な消去とする方法がある。不揮発性メモリ11としてNANDメモリを用いている場合、この第3の方法を用いれば、データ無効化による消去を不完全ながら高速に行うことができる。通常のNANDメモリにおけるデータの消去は、記録可能になるまで完全消去する方法により実施される。NANDメモリにおいてデータを消去する場合は、消去の対象のブロック中のワード線WL0〜WLqを選択し、つまり該当するワード線の電位を0Vとし、Si基板であるP-Wellに、所定の電圧を所定時間加えることで、浮遊ゲート中の電子を抜き出す。その後、消去状況の確認(Erase Verify)を行い、完全に消えていなければ、また消去するという操作を数回繰り返すことによって完全に消去する(例えば、上記特許文献3参照)。
【0072】
しかし、NANDメモリから読めなくなることだけが目的であれば、消去操作一回だけにして消去状況の確認(消去べリファイ)を実施しない、あるいはその回数を減らすことにより、消去時間を短縮できる。この場合、完全には消去されていない状態となるが、各メモリセルの値はばらばらに変化しており、事実上読み出し不能になる。
【0073】
このように、ここでいう不完全な消去というのは、再記録のための消去としては不十分だが、データ読出しができなくなるという意味では十分な消去である。どこまで消去すれば十分かという点については、ハードウェア構成や様々な要求等により異なってくるため消去回数が1回では不足な場合もあるもしれないが、いずれにせよ、完全なブロック消去より消去回数を減らすことで完全なブロック消去より高速になる。
【0074】
あるいは、1回の消去時間(消去電圧の印加時間)を、読めなくなるのに十分な時間にする等、調整によって様々なバリエーションが考えられる。なお、消去作業により、全メモリセルの電圧が均等に下がるのではなく、メモリセル毎にばらばらに下がる。このため、仮にメモリセルに電位が残っていても、読み出しレベル(読み出し時にワード線に印加する電圧)を変えるなどして再現(読み出したデータの復元)することは極めて困難になる。
【0075】
なお、このように不完全な消去により消去したブロックに、新たにデータを記録してしまうと、データ化けが発生してしまう。このため、新たに記録を行う前には、再度、通常の消去動作をする必要がある。フリーブロックを記録直前に消去してから使う方式であれば、特に不完全な消去をしたことを覚えておく必要はない。フリーブロック化時に消去する方式であれば、不完全な消去をしたブロックを記憶装置10内部の管理情報として記録しておき、後に、再度完全消去する必要がある。
【0076】
さらに、ユーザデータ無効化処理の第4の方法として、第2、第3の消去方法において、データ無効化処理における消去をさらに高速に行うために、チップ(NANDメモリチップ)内の複数ブロックを同時に消去する方法もある。これは、複数の指定したブロックを一度に消去するNANDメモリのコマンドを使うことにより実現するものであり、例えば上記特許文献4に記載の方法で実現することができる。なお、複数ブロックの同時消去の方法は上記特許文献4に記載の方法に限定されない。NANDメモリ11内で、該当するブロック内のワード線を全て選択した上、Si基板であるP-Wellに所定の電圧を所定時間加えることで、浮遊ゲート中の電子を抜き出すことによって消去する方法である。この第4の方法は、完全に消去されたか確認して、消去されていない場合は、再度消去動作を行えば、第2の方法の複数ブロック同時消去方式への変形版となり、完全に消去する前に止めてしまえば、第3の方法の複数ブロック同時不完全消去方式への変形版となる。
【0077】
さらに、ユーザデータ無効化処理の第5の方法として、不揮発性半導体メモリ11としてNANDメモリが用いられている場合、記憶装置10におけるユーザデータ無効化処理後に装置が機能しない、つまり故障状態になっても構わないのであれば、一回の操作で、チップ単位でデータを消す方法を用いてもよい。これは、消去対象のチップ中の全てのワード線を選択し、P-Wellに電圧を加えることによって、全体を消去するものである。ただし、この方式は消費電力が大きくなる場合があるので、複数のチップをまとめて消すことができない場合は、1枚ずつ消去するなどの制御が必要となる。
【0078】
なお、一般にNANDメモリを用いた記憶装置では、NANDメモリ中にも、ドライブの制御プログラムであるファームウェア、制御プログラムが用いる前述のアドレス変換情報などの管理情報も記録されるため、本方式を用いると、これらのデータも全て消去することになり、消去後は、記憶装置として動作しなくなる。
【0079】
なお、チップ全体のデータ無効化としては、消去の他に、全てのメモリセルの電位が上がる方向、つまり記録電圧をかけて上書きしてしまってもよい。具体的には、例えば全ビット線を0Vにして、全WLにプログラム電圧を与えてしまえばよい。
【0080】
消去後は、例えば、ドライブ制御回路内に保持されるIPL(Initial Program Loader)と呼ばれるファームウェアロード用コードが、ファームフェアを見つけられずエラーを検出し、インターフェース経由や、ドライブアクセス状況の通知用のLEDの信号性を利用して、ファームフェアが存在しないことを示すようにすることによって、外部から、他の故障と区別が可能となる。
【0081】
なお、本実施形態では、ユーザデータの無効化処理では、NANDメモリ11の全てのデータ(ユーザデータ以外のファームウェア等が用いる領域も含む)を消す方法ではなく、ユーザデータ部分を消去する方法の方が望ましい。つまり、上述の第5の方法より、第1の方法から第4の方法までの方が好ましい。第5の方法のように、NANDメモリ11内の全てのデータを消去する方法を用いた場合には、無効化処理時点で動作を停止するか、継続した場合であっても途中で後述の動作ができなくなる。
【0082】
なお、この他にも、ユーザデータ無効化処理は、様々な実施方法が考えられる。例えば、単に、前述の特殊LBA領域(システムエリア)11a(以下、システムエリア11aと略す)に、ユーザデータが、無効化処理がされていることを示す情報を記録し、この記録がある場合、以後のホスト装置からの読み出し命令に応答しなくする方法もある。ただし、この方法は、ほとんどの情報がそのまま不揮発性半導体メモリ上に残っているため、様々な攻撃に対する防御力が弱い。また、この場合、ホスト装置から書き込み命令を受け取る前に、少なくとも、アドレス変換情報を初期化する必要がある。もしくは、無効化処理がされている論理アドレスを記録する必要がでてくるが、これは処理が煩雑になる。
【0083】
他に、実際に、ユーザデータの記録されているNANDメモリ11上の領域をすべて、意味の無いデータ、例えば0で上書きしてしまう方法もあるが、書き込み時間が長いNANDメモリにおいて、この様な上書き処理は時間がかかり非実用的である。
【0084】
以上のようにユーザデータの無効化処理には、様々な方法を取りうるので、ユーザデータ無効処理にあたって使用する方法を、ホストから予め設定できるようにしてもよい。すなわち、記憶装置10のシステムアリア11aに、前述、および後述の実施例で述べる各種情報に加え、ユーザデータ無効化方式を記憶する。この場合、消去方式によっては併用できるものもあるので、記憶できる方式は1種類以上であってもよい。
【0085】
機器認証モジュール21は、前述した各機能に加え、ユーザデータ無効化方式の設定要求を正規のホスト装置30Aから受けると、当該ユーザデータ無効化方式情報をシステムエリア11aに設定(記憶)する設定機能をもっている。
【0086】
例えば、前述の第1方式であるアドレス変換情報の初期化のみ設定、前述の第2の方法であるユーザデータを保持するブロックの完全消去のみ設定、前述の第3の方法であるユーザデータを保持するブロックの不完全消去のみ設定、といった単独の無効化方法設定の他、前述の第1の方法であるアドレス変換情報を初期化と、前述の第3の方法である不完全なユーザデータ消去の組み合わせ実施の設定といった具合である。
【0087】
これを実現するには、ユーザデータ無効化方式のそれぞれの方式毎に、実施の可否を設定(記憶)してもよいし、可能な組み合わせ毎に番号を与え、その番号を記憶してもよい。あるいは、無効化の強度に応じてレベル付を行い、そのレベルで設定できるようにしてもよい。そして、機器認証モジュール21は、ユーザデータ無効化処理の実施の際、システムアリア11a内に記憶した無効化方式情報に基づいて、ユーザデータの無効化処理を実施する機能を持っている。以上の構成により、ホスト装置から設定したユーザデータ無効化方式を用いて、ユーザデータの無効化が実行される。
【0088】
なお、構成例βの場合には、第1部分鍵及び暗号鍵の破棄を、ユーザデータ無効化処理の方式と見なして、使用する方法として選択できるようにしてもよい。
【0089】
ユーザ認証モジュール22は、機器認証モジュール21による機器認証後、認証処理中のホスト装置30A(又は30B,…)から受けた第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証機能を有する。
【0090】
なお、構成例α1の場合は、第3部分鍵と第1ユーザ認証情報とを複合して保護化第1ユーザ認証情報を生成し、保護化第1ユーザ認証情報をシステムエリア11a内に内部情報Gとして予め記憶しておく。そして機器認証時に、内部情報Gとホスト装置30A(又は30B,…)から受け取った第2部分鍵とを複合して第3部分鍵K3を生成しSRAM25に保持しておく。そして、ユーザ認証時に、保護化第1ユーザ認証情報と、第3部分鍵K3とに基づいて第1ユーザ認証情報を生成し、生成した第1ユーザ認証情報と、ホスト装置30A(又は30B,…)から受け取った第2ユーザ認証情報と、に基づいてユーザ認証を実行する。この場合、不正なホスト装置に接続された場合には、正しい第3部分鍵K3が得られないため、正しい第2ユーザ情報がホスト装置から送られてきても、認証に失敗する効果が得られる。なお、この場合、保護化ユーザ認証情報は、第1ユーザ認証情報の一部を保護化したものでもよい。例えば、第1ユーザ認証情報がユーザパスワードと、ユーザIDであれば、ユーザパスワードのみ保護化してもよい。
【0091】
構成例α2の場合は、第1ユーザ認証情報は予めシステムエリア11aに記憶しておき、上述の内部情報と第1ユーザ認証情報とを用いた複合処理等は実施しない。また、内部情報Gも持たない。
【0092】
また、構成例βの場合は、内部情報Gとホスト装置30A(又は30B,…)から受け取った第2部分鍵とを複合して第3部分鍵K3を生成してSRAM25内に保持しておく。ユーザ認証モジュール22は、ユーザ認証の後、SRAM25内の第3部分鍵とホスト装置30A(又は30B,…)から受け取った第2ユーザ認証情報とを複合して暗号鍵を生成し、生成した暗号鍵をSRAM25に書込む。
【0093】
なお、構成例α、βのいずれの場合も、ユーザ認証モジュール22は、ユーザ認証が規定回数だけ失敗したとき、ユーザデータの無効化処理を行う機能を持っていてもよい。また構成例α1および構成例βの場合、ユーザ認証モジュール22は、システムエリア11a内の内部情報G及びSRAM25またはシステムエリア11a内の第3部分鍵を破棄する鍵破棄機能をもっていてもよい。また、ユーザデータ無効化処理、鍵破棄の両方を実行するようにしてもよい。また、ユーザデータ無効化処理および鍵破棄処理に代えて、ユーザ認証モジュール22は、ユーザ認証が規定回数だけ失敗したとき、NANDメモリ11からデータを読み出してホスト装置30A(又は30B,…)に出力することをせず、ユーザ認証エラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっていてもよい。
【0094】
暗号化モジュール23は、ユーザ認証が成功したとき、データ記憶モジュール26がデータを書き込む際、現在のホスト装置30A(又は30B,…)から受けたデータDを含む書込要求に従い、SRAM25内の暗号鍵Kgに基づいて書込要求内のデータDを暗号化して、暗号化データEg(Kg,D)に変換する暗号化機能をもっている。
【0095】
復号化モジュール24は、ユーザ認証が成功したとき、データ読出モジュール27がデータを読み込む際、現在のホスト装置30A(又は30B,…)から受けた読出要求に基づいて読みだしたユーザエリア11b内の暗号化データをSRAM25内の暗号鍵に基づいて復号する復号化機能をもっている。
【0096】
SRAM25は、各モジュール21〜24及び25、26から読出/書込可能な揮発性メモリであり、構成例βの場合、図7に示すように、第3部分鍵K3の生成前に第2部分鍵としての固有情報“AA”及び第1部分鍵としての内部情報Gが一時的に記憶され、第3部分鍵K3生成時には、固有情報“AA”及び内部情報Gが消去されて第3部分鍵K3が一時的に書き込まれる。同様に、暗号鍵Kg生成時には、複合用の第2ユーザ認証情報が一時的に記憶され、第3部分鍵K3及び第2ユーザ認証情報が消去されて暗号鍵Kgが書き込まれる。なお、「書き込まれる」の語は「設定される」ともいう。また、暗号鍵Kgは、記憶装置10の電源オフ時にSRAM25から消去される。さらに、固有情報“AA”、内部情報G、第3部分鍵K3及び第2ユーザ認証情報の一時的な記憶と、電源オフ時までの暗号鍵Kgの記憶とは、SRAM25に代えて、DRAM19が実行してもよい。また、第2部分鍵としては、ホスト装置30Aの固有情報“AA”に限定されず、正規のホスト装置30Aが管理する任意のデータが使用可能となっている。また、SRAM25は、アドレス変換情報の読み出しキャッシュとしても使用してよい。
【0097】
構成例α1の場合には、第3部分鍵K3の生成前に第2部分鍵としての固有情報“AA”及び第1部分鍵としての内部情報Gが一時的に記憶され、第3部分鍵K3生成時には、固有情報“AA”及び内部情報Gが消去されて第3部分鍵K3が一時的に書き込まれる。第3部分鍵K3は、保護化第1ユーザ認証情報に基づいて第1ユーザ認証情報を生成する際に用いられ、第1ユーザ認証情報を生成した後に第3部分鍵K3は破棄される。
【0098】
一方、ホスト装置30Aは、アクセス権のあるユーザに用いられ、記憶装置10を接続可能な通常のコンピュータである。
【0099】
具体的には、ホスト装置30Aは、インターフェース31、メモリ32A、入力モジュール33、CPU34及び出力モジュール35を備えている。なお、ホスト装置30Aと、後述する他のホスト装置30Bとは、メモリ32Aの記憶内容以外はほぼ同一構成である。このため、各要素31〜35のうち、メモリ32Aのみ“A”の符号を付している。
【0100】
インターフェース31は、記憶装置10をホスト装置30Aに接続するためのモジュールである。説明の簡略化のため、以下の説明では、記憶装置10とのデータ伝送にインターフェース31を介する旨の記載を省略する。
【0101】
メモリ32Aは、入力モジュール33、CPU34及び出力モジュール35から読出/書込可能な記憶部であり、例えば、図8に示すように、第2部分鍵と、第2機器認証情報と、機器認証プログラムと、ユーザ認証プログラムと、アプリケーションプログラムとを記憶している。また、メモリ32Aには、各プログラムの実行に応じて、適宜、処理途中及び処理結果のデータが記憶される。
【0102】
ここで、第2部分鍵は、記憶装置10で作成される暗号鍵の他の一部を構成する鍵データである。第2部分鍵としては、例えば、自装置(ホスト装置30A)の固有情報“AA”を用いるが、この例に限定されない。以下の説明では、第2部分鍵を固有情報“AA”として述べる。
【0103】
第2機器認証情報は、記憶装置10への接続権限をもつ正規のホスト装置30Aを記憶装置10に機器認証させるためのものであり、任意の機器認証方式の機器認証情報が使用可能となっている。
【0104】
機器認証プログラムは、CPU34により実行され、ホスト装置30Aを、ホスト装置30Aに記憶装置10が接続されると、記憶装置10の機器認証モジュール21により実行される機器認証の規定の認証シーケンスに沿って、メモリ32A内の第2機器認証情報を記憶装置10に送信する機器認証情報送信手段として動作させるものである。
【0105】
ユーザ認証プログラムは、CPU34により実行され、ホスト装置30Aを、入力モジュール33にて入力を受け付けた第2ユーザ認証情報を記憶装置10に送信するユーザ認証情報送信手段として動作させるものである。
【0106】
アプリケーションプログラムは、CPU34により実行される任意のプログラムであって、例えば、ホスト装置30Aを、入力モジュール33にて入力を受け付けた読出要求を記憶装置10に送信する読出要求送信手段として動作させるものである。
【0107】
これに加え、アプリケーションプログラムは、例えば、ホスト装置30Aを、当該入力を受け付けた書込要求を記憶装置10に送信する書込要求送信手段として動作させるものであってもよい。
【0108】
さらに、アプリケーションプログラムは、例えば、ホスト装置30Aを、記憶装置10からデータを読み出す手段と、当該読み出したデータに基づいて業務処理を実行し、処理結果を記憶装置10に書き込む手段として動作させるものであってもよい。
【0109】
入力モジュール33は、ユーザとの間の入力インターフェースであり、例えば、ユーザの操作に応じて、第2ユーザ認証情報の入力を受け付けるユーザ認証情報受付手段と、ユーザの操作に応じて、読出要求の入力を受け付ける読出要求受付手段として動作させるものである。これに加え、入力モジュールは、ユーザの操作に応じて、データを含む書込要求の入力を受け付ける書込要求受付手段として動作させるものであってもよい。入力モジュールとしては、例えば、キーボード及びマウス等の入力デバイスが適宜使用可能となっている。
【0110】
CPU34は、メモリ32A内のデータに基づいて、メモリ32A内の各プログラムを実行する演算処理装置である。
【0111】
出力モジュール35は、ユーザとの間の出力インターフェースであり、例えば、ディスプレイ装置等の出力デバイスが適宜使用可能となっている。
【0112】
次に、以上のように構成された記憶システムの動作を図9、図10及び図11のフローチャートを用いて説明する。図9は、構成例α1の動作の一例を示し、図10は、構成例βの場合の動作の一例を示している。図11は、後述のステップST40の詳細処理手順の一例を示すフローチャートである。なお、構成例α2の場合(内部情報Gを保持しない場合)は、図9の処理のうち第3部分鍵に係る処理は行わないが、それ以外は図9の処理と同様である。
【0113】
なお、記憶装置10は、構成例αの場合は、ユーザデータDを、構成例βの場合は、暗号化データEg(Kg,D)をNANDメモリ11内に記憶しているとする。また、ホスト装置30Aは、メモリ内32Aの機器認証プログラム、ユーザ認証プログラム及びアプリケーションプログラムをCPU34が実行中であるとする。
【0114】
まず、図9を用いて、構成例αの場合の動作を説明する。この状況において、記憶装置10は、正規のユーザにより、正規のホスト装置30Aに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Aに対する機器認証を実行する(ステップST10)。
【0115】
具体的には、ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32A内の第2機器認証情報を記憶装置10に送信する。
【0116】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aから受けた第2機器認証情報と、システムエリア11a内の第1機器認証情報とに基づいて機器認証を実行する。機器認証モジュール21は、機器認証に失敗したときには、ユーザデータの無効化処理を行う。さらに、構成例α1の場合には、機器認証モジュール21は、機器認証に失敗したときには、内部情報Gを破棄して代わりに内部情報I(内部情報I≠内部情報G)とする。ここでは、機器認証が成功したとする。
【0117】
構成例α1の場合には、機器認証モジュール21は、認証処理により機器認証が成功すると、ホスト装置30Aから受けた固定情報“AA”とシステムエリア11a内の内部情報Gとを複合して生成した第3部分鍵K3をSRAM25に書込む。この第3部分鍵K3は正しい部分鍵である。なお、前述した機器認証が失敗した場合には、破棄状態の内部情報Iを含む誤った部分鍵K3iが書き込まれることになる。
【0118】
いずれにしても、構成例α1、つまり内部情報Gを利用する場合は、第3部分鍵の書込により、ステップST10の機器認証が完了する。
【0119】
次に、記憶装置10は、ホスト装置30Aに対するユーザ認証を実行する(ステップST20)。
【0120】
具体的には、ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、第2ユーザ認証情報の入力を受け付ける。CPU34は、入力を受け付けた第2ユーザ認証情報を記憶装置10に送信する。
【0121】
記憶装置10のユーザ認証モジュール22は、現在のホスト装置30Aから受けた第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行する。ここでは、ユーザ認証が成功するとする。ここで、第1ユーザ認証情報が第3部分鍵K3と複合されて、システムエリア11a内に保護化第1ユーザ認証情報として保存されている場合(構成例α1の場合)は、第3部分鍵K3と、保護化第1ユーザ認証情報と、に基づいて第1ユーザ認証情報を生成し、前述の認証を行う。この方式を採用した場合、機器認証で失敗した場合は、誤った第3部鍵K3iが生成されるため、誤った第1ユーザ認証情報が生成されるため、正しい第2ユーザ認証情報がホスト装置から送られたとしても、かならずユーザ認証は失敗する。
【0122】
なお、ユーザ認証が失敗した場合には、ユーザ認証モジュール22の無効化処理によりユーザデータが無効化される。
【0123】
なお、構成例α1では、第3部分鍵で、第1ユーザ認証情報を暗号化したものを保護化第1ユーザ認証情報としたが、これによって、保護化第1ユーザ認証情報の解読が困難になり、セキュリティが向上する効果がある。
【0124】
これにより、ステップST20のユーザ認証が完了する。
【0125】
ユーザ認証の終了後、記憶装置10は、ユーザによるホスト装置30Aの操作に応じて、ステップST30〜ステップST50に移行する。ここでは、ステップST30の認証失敗時の設定動作を実行せず、ステップST40〜ステップST50を実行する場合を述べる。
【0126】
ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、読出要求の入力を受け付ける。CPU34は、入力を受け付けた読出要求を記憶装置10に送信する。
【0127】
記憶装置10のデータ読出モジュール27は、現在のホスト装置30Aから受けた読出要求に基づいて、システムエリア11a内のアドレス変換情報を用いて読み出し得られたNANDメモリ11内のデータDを現在のホスト装置30Aに出力する(ステップST40)。なお、ステップST40のデータ読出処理においては、ユーザデータの無効化処理がなされていなければ、正しいデータDが得られるが、ユーザデータ無効化処理がされていると正しいデータが出力されない。
【0128】
次に、ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、例えばデータD1を含む書込要求の入力を受け付ける。CPU34は、入力を受け付けた書込要求を記憶装置10に送信する。記憶装置10のデータ記憶モジュール26は、現在のホスト装置30Aから受けたデータD1を含む書込要求に従い、ユーザエリア11b内の有効データを保持しない位置にデータを書き込み、ホスト装置から送付された論理アドレスと実際に記録した物理的な位置の対応状況を、システムエリア11a内に保持したアドレス変換情報に書き込む。これにより、ステップST50が完了する。
【0129】
以下、記憶装置10は、ユーザによるホスト装置30Aの操作に応じて、ステップST40の読出処理と、ステップST50の書込処理が適宜、繰り返し実行される。
【0130】
しかる後、記憶装置10は、ユーザの操作に応じて、電源がオフ状態にされる(ステップST60)。これにより、記憶装置10では、DRAM19及びSRAM25内のデータが消去される。
【0131】
なお、本実施形態では、以上のように、機器認証モジュール21およびユーザ認証モジュール22が、ユーザデータの無効化処理を実施するユーザデータ無効化部としての機能を有している。このような構成に限らず、ユーザデータ無効化部を機器認証モジュール21およびユーザ認証モジュール22とは別に備え、機器認証モジュール21およびユーザ認証モジュール22の認証処理により認証されなかった場合に、ユーザデータ無効化部が上述のユーザデータの無効化処理を行ってもよい。
【0132】
次に、図10を用いて構成例βの場合の動作を説明する。ステップST110は構成例α1のステップST10における構成例α1と同様である。ユーザ認証時には、ユーザ認証モジュール22は、ユーザ認証処理を行い、ユーザ認証の後、SRAM25内の第3部分鍵と、第2ユーザ認証情報とを複合し、生成した暗号鍵をSRAM25に書込む(ステップST120)。なお、機器認証モジュール21は、機器認証に失敗したときには、構成例α1の場合と同様に、内部情報Gを破棄して代わりに内部情報I(内部情報I≠内部情報G)とする。また、同様にユーザ認証に失敗した場合には、ユーザ認証モジュール22により、機器認証の失敗時と同様に誤った暗号鍵がSRAM25に書き込まれることになる(ステップS130)。
【0133】
ここでは、ユーザ認証が成功し、ステップST130を実施せず、ステップST140,150へ以降する場合を説明する。ユーザ認証後、SRAM25内の第3部分鍵と、第2ユーザ認証情報と、を複合し、複合により生成した暗号鍵をSRAM25に書き込む。そして、ホスト装置50Aから読み出しの要求を受け取ると、要求されたユーザデータに対応する暗号化データEg(Kg,D)をシステムエリア11a内のアドレス変換情報を用いてNANDメモリ11から読み出し、読み出し得られた暗号化データEg(Kg,D)を復号化モジュール24を用いてSRAM25内の暗号鍵Kgに基づいて復号してデータDを得てから現在のホスト装置30Aに出力する(ステップST140)。これにより、ステップST140が完了する。
【0134】
なお、ステップST140のデータ読出処理においても、ユーザデータの無効化処理がなされていなければ、正しいデータDが得られるが、ユーザデータ無効化処理がされていると正しいデータが出力されない。
【0135】
ホスト装置50AからデータD1の書き込みの要求を受け取ると、SRAM25内の暗号鍵Kgに基づいて書き込み対象のデータD1を暗号化してEg(Kg,D1)を生成したのち、ステップ50と同様の処理をおこなってNANDメモリ11へ書き込む(ステップST150)。これにより、ステップST150が完了する。
【0136】
なお、記憶装置10がユーザデータ暗号化機能を有する場合は、例え、ホスト装置側から与える情報を入手して、記憶装置10を分解して不揮発性メモリから情報を直接読出し、各種情報がわかったとしても、内部情報Gが破棄され内部情報Iしか残っていないため、正しい暗号鍵Kgを得ることはできず、正しいデータDを復号することはできない。
【0137】
以下、記憶装置10は、ユーザによるホスト装置30Aの操作に応じて、ステップST140の読出処理と、ステップST150の書込処理が適宜、繰り返し実行される。ステップST160はステップS60と同様である。
【0138】
また、図11に示すように、ステップST40およびステップS140の読み出し処理においては、ホスト装置(ホスト装置30A,30B,…)からデータ読み出し要求を受けとると(ステップST41)、ドライブ制御回路20は、アドレス変換情報に基づいて読み出しを要求されたデータに対応する物理アドレスが存在するかを判断する(ステップST42)。対応する物理アドレスが存在する場合(ステップST42 Yes)、NANDメモリ11の当該物理アドレスからデータを読み出してホスト装置へ出力する(ステップST43)。対応する物理アドレスが存在しない場合(ステップST42 No)、無効データ(例えば、0で埋まったデータ)をホスト装置へ出力する(ステップST44)。
【0139】
上述したように本実施形態によれば、ホスト装置30A,30B,…を機器認証し、機器認証が失敗したときにはユーザデータ無効化処理により、異なるシステムに持ち出された場合(不正なホスト装置に接続された場合)のデータ漏洩を防止することができる。さらに、暗号化機能を持つ場合は、内部情報G(第1部分鍵)の破棄によって暗号鍵を破棄する構成により、異なるシステムに持ち出された場合、記憶装置10の分解によるデータ漏洩を防止することができる。
【0140】
なお、構成例βの場合は、機器認証またはユーザ認証が失敗した場合には、内部情報Gの書き換えを行うため復号のために必要な正しい暗号鍵が得られない。従って、構成例βの場合は、機器認証またはユーザ認証が失敗した場合には、ユーザデータの無効化処理は行ってもよいし、行わなくてもよい。
【0141】
また、ユーザデータ無効化処理を行った後、記憶装置10を正規のホスト装置30Aに再接続したとしても、無効化処理が行われているので、データは読み出すことはできない。これにより、記憶装置10の盗難時に確実にデータDを破棄でき、データ漏洩を防止することができる。
【0142】
また、ユーザ認証の失敗時にユーザデータ無効化処理を行い、さらにユーザデータ暗号機能を持つ場合は加えて暗号鍵を破棄する構成により、装置盗難時にユーザのパスワードPが解析される前にデータDを破棄することができる。
【0143】
さらに、電源オン時に暗号鍵をSRAM25(揮発性メモリ)に格納することにより、電源オフ時に確実に暗号鍵を破棄することができる。
【0144】
なお、本実施形態によれば、ホスト装置30A,30B,…から見た場合、記憶装置10がユーザデータ暗号機能を持つ場合(構成例βの場合)と、持たない場合(構成例αの場合)に、記憶装置10との取り扱い方法(接続手順等)に差が無い。ホスト装置30A,30B,…に接続する記憶装置としては、磁気ディスクを使用するHDD(Hard Disk Drive)が現在においても主流であるが、HDDにおいては、暗号ドライブにおける暗号消去が実用的であり、本実施形態で述べているユーザデータ無効化技術(構成例αにおける動作)は適用できない。
【0145】
一方、不揮発性半導体メモリを用いた記憶装置において本実施形態の構成例αを採用すれば、ホスト装置の動作を変更することなしに、HDDでは暗号ドライブ、不揮発性半導体メモリを用いた記憶装置を用いた場合は暗号機能を持たないドライブを使用できる。このため、ホスト装置側の構成を簡単にすることができ、また記憶装置を変更した場合の動作の切替等の手間が発生しない。
【0146】
データの安全性についても、ユーザデータ無効化処理により、不揮発性半導体メモリに記録された情報を実際消去している場合は、ユーザデータの暗号化機能がなくても暗号機能を有する場合に比べ劣ることはない。ユーザデータ無効化処理としてアドレス変換情報のみ消去した場合でも、内部データの復元には多大な労力を必要とするため、多くの用途では情報の漏えいを防げるという効果がある。
【0147】
また、ユーザデータ暗号機能を持つ場合(構成例β)は、暗号化、復号化を行うハードウェアが必要になり、装置が複雑、大型化、消費電力が増大する。これに対し、構成例αでは、暗号ハードウェアを持たずに、データ漏洩を防止できる記憶装置10が実現できるので、装置が簡単、小型となり、低消費電力化ができる。
【0148】
<第2の実施形態>
次に、第2の実施形態について前述した図1および図2を参照しながら説明する。本実施形態の記憶システムの構成例は、第1の実施形態と同様である。本実施形態においても、図1のように記憶装置10は暗号化機能を有しない構成例αと、図2のように暗号化機能を有する構成例βの両方について説明する。また、第1の実施形態と同様に、構成例αのうち、第3の部分鍵を用いた処理を行う場合を構成例α1とし、第3の部分鍵を用いない処理を行う場合を構成例α2とする。
【0149】
第2の実施形態は、第1の実施形態における第1及び第2機器認証情報の具体例である。すなわち、本実施形態では、第1機器認証情報は、図12に示すように、正規のホスト装置30Aの固有情報“AA”のハッシュ値h(AA)である。
【0150】
第2機器認証情報は、図13に示すように現在のホスト装置30Aの固有情報“AA”であり、記憶装置10が、内部情報Gを持つ場合(構成例α1、構成例β)は、第2部分鍵としても用いられる。第2部分鍵は、第2機器認証情報としても用いられる現在のホスト装置30Aの固有情報“AA”である。
【0151】
これに伴い、記憶装置10の機器認証モジュール21は、現在のホスト装置30Aから受けた第2機器認証情報“AA”のハッシュ値h(AA)を算出し、このハッシュ値h(AA)と、システムエリア11a内の第1機器認証情報h(AA)とを照合して両者が不一致のときに、機器認証が失敗した旨を判定する機能をもっている。
【0152】
次に、以上のように構成された記憶システムの動作を図14及び図15のフローチャートを用いて説明する。図14は、機器認証手順の一例を示すフローチャートであり、図15は、機器認証手順の一部を詳細化したフローチャートである。なお、構成例α2の場合は、図14における第3部分鍵に関する処理は省略され、図15における内部情報G、第3部分鍵に関する操作も実施しない。
【0153】
いま、構成例αまたは構成例βにおいて、ステップST10またはステップST110の機器認証が開始されるとする。
【0154】
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32A内の固有情報“AA”を記憶装置10に送信する。
【0155】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aの固有情報“AA”を受信する(ステップST11)。なお、不正なホスト装置30Bが接続されていた場合、機器認証モジュール21は、固有情報“BB”(“AA”≠“BB”)を受信する。
【0156】
機器認証モジュール21は、受信した固有情報“AA”のハッシュ値h(AA)を算出し、このハッシュ値h(AA)と、システムエリア11a内の固有情報“AA”のハッシュ値h(AA)とを照合し(ステップST12)、両者が一致したか否かを判定する(ステップST13)。
【0157】
ステップST13の判定結果が否を示す場合(ステップST13 No)、機器認証モジュール21は、システムエリア11a内に予め保持する他のハッシュ値があるか否かを判定し(ステップST14)、他のハッシュ値があれば(ステップST14 Yes)、他のハッシュ値を用いて照合処理を再試行するように、ステップST12に戻る。このステップST14は、接続可能な正規のホスト装置30A,…が複数台あり、それぞれ異なる固有情報を保持するときの処理であるので、正規のホスト装置30Aが1台のときには省略可能である。
【0158】
なお、正規のホスト装置30Aが複数ある場合は、固有情報“AA”が第2機器認証情報としても用いられるため、例えば、内部情報Gも、それぞれの正規ホスト装置30Aの固有情報“AA”毎の情報を含むようにすれば、正規のホスト装置30Aの種類にかかわらず、同一の第3部分鍵を生成することができる。
【0159】
以下、正規のホスト装置30Aが複数(n台)ある場合の動作の一例を図16を用いて説明する。図16は、正規のホスト装置30Aが複数ある場合の第1機器認証情報および内部情報の一例を示す図である。ここでは、複数のホスト装置30Aを、ホスト装置30A−1,ホスト装置30A−2,ホスト装置30A−3,…ホスト装置30A−nとする。そして、複合後の内部情報g−j(j=1,2,…,n)を、ホスト装置30A−jの固有情報と第1部分鍵(内部情報G)とを複合した値として生成する。具体的には、例えば、正規のホスト装置30A−jの固有情報”AA−j“で、内部情報Gを暗号化して暗号化内部情報(複合後の内部情報)g−jとし、さらに暗号化内部情報g−jをホスト装置固有情報”AA−j“のハッシュ値h(AA−j)(第1機器認証情報)とを対応づけて、システムエリア11a内に予め保持しておく。なお、ここでは、第1認証情報がホスト装置の固有情報のハッシュ値である例を説明したが、第1認証情報は、これに限らず、ホスト装置の固有情報を一方向関数で変換した値であればよい。
【0160】
機器認証時には、受信した固有情報“AA”のハッシュ値h(AA)と一致した値として保存されている第1機器認証情報(ハッシュh(AA))と対応づけられて保持されている暗号化内部情報g−k(kは、1,2,…,nのいずれか)を内部情報から抽出し、暗号化内部情報g−kを“AA”を用いて平文化することによって、内部情報Gを得て、これを第3部分鍵とするという方法である。
【0161】
すなわち、予め保持しておく内部情報は、正規のホスト装置の固有情報を用いて、逆関数の存在する関数F1により変換した値とし、さらに、その変換した値を一方向関数F2で変換したホスト装置の固有情報と対応づけて保持しておく。機器認証の際には、受信したホスト装置固有情報を、一方向性関数F2で変換し、保存された、一方向関数F2で変換されたホスト装置固有情報と比較し、同一の情報が見つかれば、認証成功とする。その後、関連づけられた、ホスト装置固有情報と関数F1で変換された内部情報g−jを、F1の逆関数とホスト装置固有情報にて、元の内部情報Gに戻す。関数F1による処理は、例えば暗号化であり、逆関数F1による処理は復号化である。一方向性関数F2は、例えばハッシュ関数である。
【0162】
また、上述の方法では、正規のホスト装置に関する情報の追加時、複合していない第1部分鍵が、記憶装置10内にある状態である必要がある。そこで、正規のホスト装置情報を追加する場合は、すでに記憶装置10に登録された正規のホスト装置(例えば、ホスト装置30A−1とする)が、追加したい正規のn番目のホスト装置30A−nの固有情報を予め入手しておき、正規のホスト装置30A−1が記憶装置10と認証を完了した後、記憶装置10に認証情報の追加命令を、ホスト装置30A−nの固有情報とともに送付する。その後、記憶装置10は、現在接続されているホスト装置30A−1の認証時に生成した第1部分鍵と、追加するホスト装置30A−nの固有情報と、を複合させた値を内部情報(複合後の内部情報)として保持する。そして、複合後の内部情報を、追加するホスト装置30A−nの固有情報を一方向性関数で変化した値と関連づけて共に保持する。これにより、正規のホスト装置の追加が可能になる。なお、上記は、一つの実施例であり、本方法によらず実装してもよい。
【0163】
また、敢えて上述のような方法を採用せず、ホスト装置によって異なる第3部分鍵が得られるようにした場合は、例えば、記憶装置10は、接続されたホスト装置によって記録されたデータのみを正しく出力することになる。
【0164】
また、ステップST14の判定結果が否を示す場合(ステップS14 No)、機器認証モジュール21は、ユーザデータの無効化処理を行う。さらに、構成例α1、構成例βの場合は、第3部分鍵も破棄する(ステップST15)。具体的には、機器認証モジュール21は、図15に示すように、システムエリア11a内の正規の内部情報Gを破棄し(ステップST15−1)、乱数等の内部情報Iを新規作成して内部情報Gの代わりに保持する(ステップST15−2)。また、機器認証モジュール21は、システムエリア11a内の固有情報“AA”のハッシュ値を破棄し(ステップST15−3)、ステップST11で受信した固有情報“BB”のハッシュ値を作成する(ステップST15−4)。そして、構成例αの場合はユーザデータの無効化処理を行う(ステップST15−5)。なお、ユーザデータの無効化処理は、ステップST15−4の後ではなく、ステップST14、ステップST15−1、ステップST15−2、ステップST15−3のいずれかの直後であってもよい。
【0165】
なお、ステップST15−1〜ステップST15−2において、第3部分鍵K3を構成する内部情報Gが破棄されて内部情報Iが新規作成されることにより、第3部分鍵K3が破棄されている。また、第3部分鍵K3が破棄されたことにより、第3部分鍵K3に基づく暗号鍵Kgが破棄されている。
【0166】
異なる正規のホスト装置に接続しても、同一の第3部分鍵が得られるよう正規のホスト装置ごとに複合後の内部情報と固有情報“AA”の一方向性関数による変換値(例えばハッシュ値)とを保持している場合は、全ての複合後の内部情報および固有情報“AA”の一方向性関数による変換値に対して、同様の破棄処理を行う。
【0167】
一方、ステップST13の判定結果が一致を示す場合(ステップST13 Yes)、機器認証モジュール21は、システムエリア11a内の内部情報G(または複合後の内部情報g−i)を読み出す(ステップST16)。しかる後、機器認証モジュール21は、ステップST11で受信した固有情報“AA”と、ステップST16で読み出した内部情報Gとを複合し(ステップST117)、生成した正しい第3部分鍵K3をSRAM25に書き込む(ステップST17a)。
【0168】
なお、ステップST15で第3部分鍵K3を破棄した場合には、機器認証モジュール21は、ステップST11で受信した固有情報“BB”と、ステップST15−2で作成した内部情報Iとを複合し、生成した誤った第3部分鍵K3iをSRAM25に書き込む(ステップST17b)。
【0169】
いずれにしても、構成例α1、構成例βの場合には、第3部分鍵の書込により、ステップST10の機器認証が完了する。
【0170】
以下、第1の実施形態と同様に、ステップST20〜ステップST60(またはステップS120〜ST160)が実行される。
【0171】
次に、第2の実施形態の動作中、正規のホスト装置30Aが接続された場合と、不正なホスト装置30Bが接続された場合とについて補足的に説明する。なお、始めに、一般的なパスワード認証の場合を簡単に述べる。
【0172】
図17は一般的なパスワード認証のみを実行するユーザデータ暗号化機能を持つ記憶装置を用いた記憶システムの動作を示す模式図である。
【0173】
記憶装置10は、ユーザのパスワードP、暗号鍵K、暗号鍵KでデータDが暗号化されてなる暗号化データE(K,D)が保存されている。
【0174】
この記憶装置10においては、正規のホスト装置30A及び不正なホスト装置30Bのいずれの装置30A,30Bからでも正しいパスワードPが送信されれば、暗号鍵Kに基づいて暗号化データE(K,D)を復号して、正しいデータDを出力可能となっている。
【0175】
このため、アクセス権限をもつ悪意のユーザが、例えば、正規のホスト装置30Aから記憶装置10を取りはずし、自宅のホスト装置30Bに接続して、機密情報等を含むデータDを正しく取得することが可能となってしまう。
【0176】
以上は、ユーザデータ暗号化機能を持つ記憶装置を用いた場合の説明であるが、ユーザ暗号化機能を持たない記憶装置(構成例α)の場合は、同様に、正しいパスワードPが送信されれば、認証が成功し、正しいデータDが出力可能になる。
【0177】
このため、正規のホスト装置30Aを使用した場合のみ、記憶装置10から正しいデータDを読出可能であり、ホスト装置30Bを使用した場合にはデータDが破棄されることが望ましい。
【0178】
図18〜図20は第2の実施形態における記憶装置10に正規のホスト装置30Aが接続された場合の動作を示す模式図であり、図21〜図23は第2の実施形態における記憶装置10に不正なホスト装置30Bが接続された場合の動作を示す模式図である。
【0179】
図18、図21は、記憶装置10が構成例α2の場合を示し、図19、図22は、記憶装置10が構成例α1の場合を示し、図20、図23は、記憶装置10が構成例βの場合で、ユーザデータの無効化処理を行わない例を示しており、この例は例えばHDD等にも適用できる。
【0180】
構成例α、構成例βの場合ともに、正規のホスト装置30Aに記憶装置10が接続された状態で、図14に示した動作が実行された場合、ホスト装置30Aが送信した固有情報“AA”をハッシュ演算して得たハッシュ値h(AA)は、記憶装置10内に予め保持したハッシュ値h(AA)と一致する。ハッシュ値h(AA)が一致した場合、認証に成功したとし、ユーザデータ無効化処理を行わない。
【0181】
さらに、構成例α1、構成例βの記憶装置10では、受信したホスト装置30Aの固有情報“AA”と内部情報Gとを複合し、第3部分鍵K3を生成する。つづいて、ユーザ認証を行うが、第3部分鍵K3を用いている場合は、第3部分鍵K3と第1ユーザ認証情報を複合し、第2ユーザ認証情報とでユーザ認証を行う。なお、本例では、記憶装置10内では、パスワードPから生成した情報をユーザ認証情報としている。たとえばパスワードPのハッシュ値をユーザ認証情報として扱えばよい。また本例では、ホスト装置30AとのユーザIDの受け渡しを省略している。
【0182】
また、構成例βの場合は、記憶装置10は、さらに、この第3部分鍵K3と第2ユーザ認証情報とを複合し、生成した暗号鍵Kgを復号鍵に設定する。そして、ホスト装置30AからデータDの読出要求を受けた場合、データDは設定された復号鍵Kgで正しく復号されて送信される。
【0183】
記憶装置10が不正なホスト装置30Bと接続された場合、構成例α、構成例βの場合ともに、ホスト装置30Bが送信した固有情報“BB”をハッシュ演算して得たハッシュ値h(BB)は、記憶装置10内に予め保持したハッシュ値h(AA)と一致しない。このため、記憶装置10は、構成例αの場合にはユーザデータ無効化処理を行う。また、構成例α1、構成例βの場合は、内部情報Gと予め保持したハッシュ値h(AA)を破棄し、新たに内部情報Iを乱数生成等により再生成し、ホスト装置30Bの固有情報“BB”のハッシュ値を作成してシステムエリア11aに書き込む。このとき、暗号鍵Kgは破棄された状態となる。
【0184】
構成例α1の場合は、ユーザ認証で第3部分暗号鍵を用いる方法を用いた場合は、ユーザ認証時に、不正な第3部分暗号鍵と第1ユーザ認証情報が復合されるため、第2ユーザ認証情報が正しくとも、認証は成功しない。
【0185】
ホスト装置30BからデータDの読出要求があると、記憶装置10は、構成例βの場合、ホスト装置30Bの固有情報“BB”と内部情報Iを複合し、生成した第3部分鍵K3iと第2ユーザ認証情報とを複合し、生成した暗号鍵Kiで暗号化データEg(Kg,D)を復号化処理する。この復号化処理では、誤った暗号鍵Kiを用いるため、正しいデータDを読み出すことが不可能となる。暗号機能を持たない場合(構成例αの場合)でも、データ無効化処理が実施されているため、正しいデータDは出力できない。
【0186】
また、構成例αの場合、ユーザは、データ無効化処理が実施されているため仮に記憶装置10をホスト装置30Aに再接続したとしても、正しいデータDを読み出すことができない。構成例βの場合も、暗号鍵Kg、および内部情報Gが既に廃棄されているため、読み出すことができない。なお、第1の実施形態と同様に、構成例βの場合に、鍵の破棄時にデータ無効化処理を同時に実行してもよい。
【0187】
上述したように本実施形態によれば、第1機器認証情報が正規のホスト装置30Aの固有情報“AA”のハッシュ値h(AA)であり、第2機器認証情報が第2部分鍵としても用いられる現在のホスト装置30Aの固有情報“AA”であるように、第1の実施形態を具体化した構成としても、第1の実施形態と同様の効果を得ることができる。
【0188】
また、データ無効化機能を持たないHDDのような暗号鍵の消去によってデータを保護している装置と、ホスト装置からみて同じ取り扱いができるように、構成することもできる。
【0189】
<第3の実施形態>
次に、第3の実施形態について前述した図1および図2を参照しながら説明する。
【0190】
第3の実施形態は、第1の実施形態における第1及び第2機器認証情報の他の具体例である。すなわち、第1機器認証情報は、図24に示すように、正規のホスト装置30Aの署名検証鍵Kveri-30Aである。
【0191】
第2機器認証情報は、図25に示すように、現在のホスト装置30Aの署名生成鍵Ksig-30Aにより生成されたデジタル署名と当該デジタル署名の生成に用いた署名対象データである。なお、デジタル署名は、署名対象データから算出されたハッシュ値に対し、署名生成鍵Ksig-30Aに基づく署名処理が施されて生成される。これに伴い、ホスト装置30Aのメモリ32Aは、署名生成鍵Ksig-30Aを記憶している。
【0192】
なお、署名生成鍵Ksig-30Aとしては、公開鍵ペアの秘密鍵(private key)が使用可能となっている。署名検証鍵Kveri-30Aとしては、公開鍵ペアの公開鍵(public key)が使用可能となっている。このため、署名生成鍵Ksig-30Aは秘密鍵(private key)と読み替えてもよく、署名検証鍵Kveri-30Aは公開鍵と読み替えてもよい。このことは、後述する記憶装置10の署名生成鍵Ksig-10及び署名検証鍵Kveri-10についても同様である。
【0193】
また、記憶装置10の機器認証モジュール21は、第2機器認証情報内のデジタル署名を署名検証鍵Kveri-30Aに基づいて復号し、得られた復号データと、第2機器認証情報内の署名対象データから算出したハッシュ値とを照合して両者が不一致のときに、機器認証が失敗した旨を判定する機能をもっている。
【0194】
次に、以上のように構成された記憶システムの動作を図26及び図27のフローチャートを用いて説明する。なお、図26および図27は、構成例α1または構成例βの場合の動作の一例を示している。構成例α2の場合は、図26および図27の動作のうち、第3部分鍵に関する動作を除いた動作となるが、ステップST16’のホスト装置の固有情報の受信処理は、構成例α1や構成例βとホストとの機器認証手順を同一にするため除かなくてもよい。この場合、受信した固有情報は、受信するだけで利用しない。
【0195】
いま、ステップST10の機器認証が開始されるとする。
【0196】
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、乱数等の署名対象データを生成し、この署名対象データのハッシュ値を算出する。続いて、CPU34は、メモリ32A内の署名生成鍵Ksig-30Aに基づいて、このハッシュ値に署名処理を施してデジタル署名を生成する。しかる後、CPU34は、この署名対象データ及びデジタル署名からなる署名付データを第2機器認証情報としてメモリ32Aに書き込むと共に、当該署名付データ(第2機器認証情報)を記憶装置10に送信する。
【0197】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Aの署名付データを受信する(ステップST11’)。なお、認証失敗時には、現在のホスト装置30Bから署名付データを受信したことになる。
【0198】
機器認証モジュール21は、システムエリア11a内の署名検証鍵Kveri-30Aにより署名付データを検証する(ステップST12’)。具体的には、機器認証モジュール21は、受信した署名付データ内のデジタル署名を署名検証鍵Kveri-30Aに基づいて復号し、得られた復号データと、第2機器認証情報内の署名対象データから算出したハッシュ値とを照合して両者が一致することを検証する。
【0199】
機器認証モジュール21は、検証結果が正当でなければ(ステップST13’ No)、システムエリア11a内に予め保持する他の署名検証鍵Kveriがあるか否かを判定し(ステップST14’)、他の署名検証鍵Kveriがあれば(ステップS14’ Yes)、他の署名検証鍵Kveriを用いて照合処理を再試行するように、ステップST12’に戻る。このステップST14’は、接続可能な正規のホスト装置30A,…が複数台あるときの処理であるので、正規のホスト装置30Aが1台のときには省略可能である。
【0200】
また、ステップ14’の判定結果が否を示す場合(ステップST14’ No)、機器認証モジュール21は、構成例α1または構成例α2の場合は、ユーザデータ無効化処理を実施する(ステップST15’)。構成例α1または構成例βの場合は、第3部分鍵を破棄する(ステップST15’)。具体的には、機器認証モジュール21は、図27に示すように、システムエリア11a内の正規の内部情報Gを破棄し(ステップST15−1)、乱数等の内部情報Iを新規作成する(ステップST15−2)。また、機器認証モジュール21は、現在のホスト装置30Bから固有情報“BB”を受信し(ステップST15−4’)、構成例αの場合はユーザデータの無効化処理を行う(ステップST15−5’)。なお、ユーザデータの無効化処理は、ステップST15−4’の後ではなく、ステップST14’、ステップST15−1、ステップST15−2のいずれかの直後であってもよい。なお、前述同様に、ステップST15−1〜ステップST15−2により、第3部分鍵K3が破棄されるので、構成例βの場合、暗号鍵Kgが破棄されることになる。
【0201】
一方、ステップST13’の検証結果が正当であれば(ステップST13’ Yes)、機器認証モジュール21は、現在のホスト装置30Aから固有情報“AA”を受信する(ステップST16’)。しかる後、機器認証モジュール21は、構成例α1、構成例βの場合は、前述した通り、正しい第3部分鍵K3をSRAM25に書き込む(ステップST17a)。なお、複数の正規のホスト装置が、共通のユーザデータ領域を読み出せるようにする時は、第2の実施形態と同様、内部情報Gとして複数のホスト装置に対応した情報を持つか、複数の正規のホスト装置が、共通の固有情報“AA”を持つ必要がある。
【0202】
なお、ステップST15で第3部分鍵K3を破棄した場合には、機器認証モジュール21は、前述した通り、誤った第3部分鍵K3iをSRAM25に書き込む(ステップST17b)。
【0203】
構成例α1、構成例βの場合は、いずれにしても、暗号鍵の書込により、ステップST10の機器認証が完了する。
【0204】
以下、第1の実施形態と同様に、ステップST20〜ステップST60(またはステップST120〜ステップST160)が実行される。
【0205】
上述したように本実施形態によれば、第1機器認証情報が正規のホスト装置30Aの署名検証鍵Kveri-30Aであり、第2機器認証情報がホスト装置30Aのデジタル署名及び署名対象データであるように、第1の実施形態を具体化した構成としても、第1の実施形態と同様の効果を得ることができる。
【0206】
また、本実施形態は、署名認証に限らず、チャレンジ&レスポンスによるワンタイム情報の送受信による認証を用いてもよい。この種の認証は、例えば次の[1]〜[3]のように実行してもよい。
【0207】
[1]機器認証モジュール21は、乱数rを生成し、この乱数rに署名検証鍵Kveri-30A(ホスト装置30Aの公開鍵)で暗号化処理を施し、得られた値C(=r^Kveri-30A)をホスト装置30A(又は30B,…)に送信する(^は、ベキ乗を表す記号)。
【0208】
[2]ホスト装置30A(又は30B,…)は、この値Cに署名生成鍵Ksig-30A(ホスト装置30Aの秘密鍵)で復号化処理を施し、得られた値t=(C^Ksig-30A)を機器認証モジュール21に返信する。
【0209】
[3]機器認証モジュール21は、生成した乱数rと、返信された値tとが一致したとき(r=tのとき)、機器認証を成功と判定する。
【0210】
<第4の実施形態>
次に、第4の実施形態について前述した図1を参照しながら説明する。
【0211】
第4の実施形態は、第1〜第3の各実施形態における機器認証の他の具体例である。すなわち、本実施形態では、記憶装置10の機器認証モジュール21は、前述した各機能に加え、現在のホスト装置30A(又は30B,…)が第2機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、機器認証が失敗した旨を判定する機能をもっている。
【0212】
次に、以上のように構成された記憶システムの動作を図28のフローチャートを用いて説明する。図28は、構成例α1および構成例βの場合の動作を示している。構成例α2の場合は、図28の動作から第3部分鍵に関する動作を除いた動作とする。
【0213】
いま、ステップST10(またはステップST110)の機器認証が開始されるとする。
【0214】
ホスト装置30AのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、認証コマンドを送信した後、第2機器認証情報を記憶装置10に送信する。
【0215】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた最初のコマンドが認証コマンドであるか否かを判定する(ステップST1)。
【0216】
ステップST1の判定の結果、否の場合(ステップST1 No)には、機器認証モジュール21は、規定の認証シーケンスと異なる旨を検出し、機器認証が失敗した旨を判定してステップST15(又はステップST15’)に移行する。
【0217】
ステップST1の判定の結果、最初のコマンドが認証コマンドである場合(ステップST1 Yes)には、機器認証モジュール21は、ステップST2に移行して機器認証を実行する。ここで、ステップST2の機器認証は、各実施形態の機器認証(ステップST10またはステップST110)において、データ無効化処理、及び第3部分鍵の破棄及び第3部分鍵の設定を除いた処理である。例えば、第2の実施形態の場合、図14に示したステップST11〜ステップST14、ステップST16が、図28に示したステップST2に該当する。第3の実施形態の場合、図26に示したステップST11’〜ステップST14’、ステップST16’が、図28に示したステップST2に該当する。
【0218】
機器認証モジュール21は、ステップST2の機器認証が成功であればステップST17に移行し、機器認証が失敗であれば(ステップST2 No)ステップST15(又はステップST15’)を介して処理を終了する。
【0219】
ステップ15(またはステップST15’)では、ユーザデータ無効化処理を行い、第3部分鍵の破棄を行う(ステップST15)。なお、構成例βの場合は、ユーザデータ無効化処理は行わなくてよい。ステップ17では、構成例α1、構成例βの場合、第3部分鍵を設定する。
【0220】
以下、第1〜第3の各実施形態と同様に、ステップST20〜ステップST60(またはステップST120〜ステップST160)が実行される。
【0221】
上述したように本実施形態によれば、機器認証モジュール21が、現在のホスト装置30A(又は30B,…)が第2機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、機器認証が失敗した旨を判定するように、第1〜第3の各実施形態を具体化した構成としても、第1〜第3の各実施形態と同様の効果を得ることができる。
【0222】
また、記憶装置10を使用可能なホスト装置が、記憶装置10の認証シーケンスと同じ認証シーケンスをもつホスト装置30Aに限定されることにより、記憶装置10の盗難時にデータDが破棄され、データ漏洩を防止することができる。
【0223】
なお、ステップST1の代わりに、ホスト装置から最初の認証コマンドが来る前に、ホスト装置からユーザデータ読出要求が来たか否かで判断してもよい。ホスト装置から認証コマンドが送られてくる前に、ドライブの種別を判別するためのコマンドや、識別情報を得るためのコマンドが送られてきた場合、これを持ってユーザデータ無効化処理をするより、データ読出要求が認証コマンドより前に来るという、あきらかに不審なアクセスに対して鍵の破棄処理や、ユーザデータ無効化処理を実行した方が、防御効果を落とさずに、認証前にホスト装置に有用な情報を提供可能にした上で、防御ができる。特に、複数の正規ホスト装置に接続される記憶装置においては、機器認証前に、ホスト装置が接続された記憶装置の識別情報を得るコマンドを記憶装置に送出して、記憶装置がホスト装置に識別情報を送ることによって、記憶装置毎に、異なった固有情報や機器認証情報を設定することが実現できる。これによって、ホスト装置が複数の記憶装置に共通の情報を設定しなくて済むため、固有情報や機器認証情報が、万一ある記憶装置の情報管理に脆弱性があり、固有情報や機器認証情報が漏洩しても、他の記憶装置の安全性が脅かされることが防げる。
【0224】
また、認証に対応していない機器では、認証コマンドを実行せずに、ユーザデータ出力要求を送ってくるため、このような装置に接続された場合も、ただちにデータ無効化処理等が実施できる。
【0225】
<第5の実施形態>
次に、第5の実施形態について前述した図1および図2を参照しながら説明する。
【0226】
第5の実施形態は、第1〜第4の各実施形態における機器認証の他の具体例である。すなわち、記憶装置10のシステムエリア11aは、図29に示すように、前述した各情報に加え、第1部分鍵を破棄するか否かを示す可否情報を記憶する。
【0227】
機器認証モジュール21は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する設定機能をもっている。なお「設定する」の用語は「書き込む」と読み替えてもよい。
【0228】
また、機器認証モジュール21は、機器認証が失敗したとき、システムエリア11a内の可否情報に基づいてユーザデータの無効化処理の実施を阻止する無効化阻止機能をもっている。補足すると、可否情報が破棄の否と設定されている場合に、ユーザデータの無効化処理を阻止する。さらに、記憶装置10が構成例α1、構成例βの場合は、第1部分鍵(内部情報G)の破棄をさらに阻止する。
【0229】
さらに、機器認証モジュール21は、ユーザデータの無効化処理が阻止され、さらに構成例α1、構成例βの場合には第1部分鍵の破棄も阻止されたとき、前述した第3部分鍵書込機能(構成例α1、構成例βの場合のみ)、ユーザ認証モジュール22及び復号化モジュール24(構成例βの場合のみ)を動作させず、機器認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
【0230】
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【0231】
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
【0232】
次に、以上のように構成された記憶システムの動作を図30のフローチャートを用いて説明する。なお、構成例によって、第3部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【0233】
始めに、正規のホスト装置30Aと正規のユーザによりステップST10’の機器認証とステップST20のユーザ認証に成功した後のステップST30の認証失敗時の動作設定について述べる。
【0234】
ステップST10´では、ステップST10またはステップST110と同様に、機器認証を実施し、認証が否の場合、記憶装置10は、接続されたホスト装置30A(又は30B,…)にエラーを出力し、構成例α1、構成例βの場合は認証結果に応じて正しい第3部分鍵または誤った第3部分鍵を設定する(ステップS10´)。次に、ステップST20(またはステップS120)を実施する。
【0235】
ホスト装置30Aの入力モジュール33は、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける。ホスト装置30AのCPU34は、ステップST20の後、認証された場合は、入力を受け付けた設定要求を記憶装置10に送信する。認証されなかった場合は、第1の実施形態等と同様に認証失敗時の動作を実施する(ステップST30)。
【0236】
記憶装置10の機器認証モジュール21は、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する。
【0237】
これにより、ステップST30が完了する。以後、適宜、ステップST40〜ステップST50を実行し、一旦、電源をオフして動作が終了する(ステップST60)。電源オフの後でも可否情報は消去されずに、システムエリア11aに記憶されている。なお、構成例βの場合には、読出処理時には設定した暗号鍵による復号、書込処理時には設定した暗号鍵による暗号化がおこなわれる。
【0238】
次に、記憶装置10は、ユーザにより、現在のホスト装置30Bに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Bに対する機器認証を実行する(ステップST10’)。なお、現在のホスト装置30Bは、不正な装置であるとする。
【0239】
ホスト装置30BのCPU34は、記憶装置10が接続されると、機器認証の規定の認証シーケンスに沿って、メモリ32B内の第2機器認証情報を記憶装置10に送信する。
【0240】
記憶装置10の機器認証モジュール21は、新たに接続された現在のホスト装置30Bから受けた第2機器認証情報と、システムエリア11a内の第1機器認証情報とに基づいて機器認証を実行する。
【0241】
しかしながら、不正なホスト装置30Bに対する機器認証は失敗する。機器認証が失敗した時点は、第2〜第4の各実施形態ではステップST15,ステップST15’の直前である。
【0242】
機器認証が失敗したとき、記憶装置10の機器認証モジュール21は、構成例αの場合はシステムエリア11a内の可否情報に基づいてユーザデータ無効化処理を阻止し、また構成例α1、構成例βの場合は、さらに第1部分鍵(内部情報G)の破棄を阻止する。
【0243】
しかる後、機器認証モジュール21は、ユーザデータ無効化処理や第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能(構成例α1、構成例β場合のみ)、ユーザ認証モジュール22及び復号化モジュール24(構成例βの場合のみ)を動作させず、機器認証のエラーを現在のホスト装置30Bに出力する。
【0244】
上述したように本実施形態によれば、可否情報によりユーザデータ無効化処理の可否、および内部情報Gを持つ場合はさらに第1部分鍵の破棄の可否を設定できる構成により、破棄の可を設定した場合には第1〜第4の各実施形態の効果を得ることができ、破棄の否を設定した場合にはユーザデータ無効化を阻止することができる。さらに暗号化機能を持つ場合は、暗号化データの鍵の破棄も阻止することができる。
【0245】
<第6の実施形態>
次に、第6の実施形態について前述した図1を参照しながら説明する。
【0246】
第6の実施形態は、第1〜第4の各実施形態における機器認証の他の具体例である。換言すると、第6の実施形態は、第5の実施形態の可否情報に代えて、許容接続回数を用いた構成である。
【0247】
すなわち、記憶装置10のシステムエリア11aは、図31に示すように、前述した各情報に加え、第1部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数(リトライ可能回数)と、機器認証が失敗した回数を示すエラー回数とを記憶する。
【0248】
機器認証モジュール21は、前述した各機能に加え、許容接続回数を含む設定要求を正規のホスト装置30Aから受けると、当該許容接続回数をシステムエリア11aに設定する設定機能をもっている。
【0249】
また、機器認証モジュール21は、機器認証が失敗したとき、システムエリア11a内のエラー回数を増加させるように更新するエラー回数更新機能をもっている。
【0250】
さらに、機器認証モジュール21は、更新後のエラー回数とシステムエリア11a内の許容接続回数に基づいてユーザデータ無効化処理を阻止し(構成例αの場合)、さらに構成例α1、構成例βの場合は、第1部分鍵(内部情報G)の破棄を阻止する破棄阻止機能をもっている。
【0251】
また、機器認証モジュール21は、ユーザデータ無効化処理が阻止、さらに内部情報Gを持つ場合は第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能(構成例α1、構成例βの場合のみ)、ユーザ認証モジュール22及び復号化モジュール24(構成例βの場合のみ)を動作させず、機器認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
【0252】
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【0253】
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
【0254】
次に、以上のように構成された記憶システムの動作を図32のフローチャートを用いて説明する。なお、構成例によって、第3部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【0255】
始めに、許容接続回数は、第5の実施形態と同様に、ステップST30の認証失敗時の動作設定において、記憶装置10のシステムエリア11aに設定される。以後、同様に、一旦、電源をオフして動作が終了する(ステップST60)。電源オフの後でも許容接続回数は消去されずに、システムエリア11aに記憶されている。
【0256】
次に、記憶装置10は、ユーザにより、現在のホスト装置30Bに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Bに対する機器認証を実行する(ステップST10”)。なお、現在のホスト装置30Bは、不正な装置であるとする。
【0257】
このため、第5の実施形態と同様に、不正なホスト装置30Bに対する機器認証は失敗する。機器認証が失敗した時点は、第2〜第4の各実施形態ではステップST15,ステップST15’の直前である。
【0258】
機器認証が失敗したとき、記憶装置10の機器認証モジュール21は、システムエリア11a内のエラー回数を増加させるように更新し、更新後のエラー回数と許容接続回数に基づいてユーザデータ無効化処理を阻止し(構成例αの場合)、さらに構成例α1、構成例βの場合は、第1部分鍵(内部情報G)の破棄も阻止する。
【0259】
しかる後、機器認証モジュール21は、ユーザデータ無効化処理(構成例αの場合)、構成例α1、構成例βの場合はさらに第1部分鍵の破棄が阻止されたとき、前述した第3部分鍵書込機能(構成例α1、構成例βの場合のみ)、ユーザ認証モジュール22及び復号化モジュール24(構成例βの場合のみ)を動作させず、機器認証のエラーを現在のホスト装置30Bに出力する。
【0260】
上述したように本実施形態によれば、許容接続回数により第1部分鍵の破棄の可否を設定できる構成により、許容接続回数に至るまでは暗号化データの破棄を阻止できると共に、許容接続回数に至った後は第1〜第4の各実施形態の効果を得ることができる。
【0261】
<第7の実施形態>
次に、第7の実施形態について前述した図1および図2を参照しながら説明する。
【0262】
第7の実施形態は、第1〜第6の各実施形態において、ユーザデータ無効化処理を実施した時、および、さらに構成例α1、構成例βの場合は、第1部分鍵を破棄したときの破棄ログ情報を記憶するものである。
【0263】
具体的には、記憶装置10のシステムエリア11aは、図33及び図34に示すように、前述した各情報に加え、ユーザデータ無効化処理が実施された日時(構成例α1、構成例βの場合はさらに、第1部分鍵を破棄したときの日時)を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを記憶する。なお、破棄理由情報は、機器認証の失敗に限らず、正規の破棄コマンドで破棄された場合にはその旨を示してもよい。
【0264】
機器認証モジュール21は、前述した各機能に加え、ユーザデータ無効化処理が実施されたとき(構成例α1、構成例βの場合はさらに、第1部分鍵を破棄したとき)、破棄ログ情報Lgを作成してシステムエリア11aに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Lgは、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
【0265】
以上のような構成によれば、前述した通り、機器認証が失敗し、ユーザデータが無効化、つまり破棄されたとする。なお、破棄された時点は、例えば、第2〜第4の各実施形態ではステップST15,ステップST15’の直後である。
【0266】
このとき、機器認証モジュール21は、破棄された日時を示す破棄日時情報と、機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを作成してシステムエリア11aに書き込む。これにより、例えば記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄ログ情報Lgがシステムエリア11aから読み出される。
【0267】
上述したように本実施形態によれば、ユーザデータが破棄されたとき、破棄ログ情報Lgを記憶する構成により、第1〜第6の各実施形態の効果に加え、正規のユーザが破棄日時と破棄理由とを知ることができる。
【0268】
<第8の実施形態>
次に、第8の実施形態について前述した図1および図2を参照しながら説明する。
【0269】
第8の実施形態は、第7の実施形態の破棄ログ情報Lgにデジタル署名を付与した破棄証明書を記憶するものである。
【0270】
具体的には、記憶装置10のシステムエリア11aは、図35に示すように、前述した各情報に加え、自装置の署名生成鍵Ksig-10を予め記憶する。ここで、自装置の署名生成鍵Ksig-10としては、記憶装置10毎(製造番号又は型番毎)の署名生成鍵に限らず、例えば、記憶装置10のメーカ毎の署名生成鍵、又は記憶装置10の販売元(ベンダ)毎の署名生成鍵が使用可能となっている。また、システムエリア11aは、図35及び図36に示すように、破棄ログ情報Lg及びデジタル署名からなる破棄証明書Certを記憶する。
【0271】
機器認証モジュール21は、前述した各機能に加え、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する署名生成機能をもっている。
【0272】
また、機器認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む破棄証明書作成機能を更にもっている。
【0273】
この破棄証明書Certは、前述同様に、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
【0274】
一方、ホスト装置30Aのメモリ32Aは、図37に示すように、前述した各情報に加え、記憶装置10の署名検証鍵Kveri-10を予め記憶している。
【0275】
また、ホスト装置30AのCPU34は、前述した機能に加え、読出要求により記憶装置10から読み出した破棄証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証する機能をもっている。
【0276】
以上のような構成によれば、前述した第7の実施形態で破棄ログ情報Lgがシステムエリア11aに書き込まれたとき、機器認証モジュール21は、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する。
【0277】
また、機器認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む。これにより、記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄証明書Certがシステムエリア11aから読み出される。
【0278】
正規のホスト装置30AのCPU34は、読み出した破棄証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証し、検証結果が正当のとき、破棄証明書Certを出力モジュール35に出力する。
【0279】
上述したように本実施形態によれば、破棄ログ情報Lgにデジタル署名を付加した破棄証明書Certを記憶する構成により、第7の実施形態の効果に加え、破棄ログ情報Lgの正当性を検証することができる。
【0280】
<第9の実施形態>
次に、第9の実施形態について前述した図1および図2を参照しながら説明する。
【0281】
第9の実施形態は、第1〜第8の各実施形態におけるユーザ認証の他の具体例である。
【0282】
すなわち、記憶装置10のユーザ認証モジュール22は、前述した各機能に加え、現在のホスト装置30A(又は30B,…)が第2ユーザ認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、ユーザ認証が失敗した旨を判定する機能をもっている。例えば、ユーザ認証モジュール22は、新たに接続された現在のホスト装置30A(又は30B,…)から受けた最初のコマンドが認証コマンドであるか否かを判定し、否の場合には、規定の認証シーケンスと異なる旨を検出する。あるいは、ユーザ認証前に、ホスト装置から読出し要求が来た場合に、規定の認証シーケンスと異なる旨を検出してもよい。
【0283】
以上のような構成によれば、ユーザ認証モジュール22が、現在のホスト装置30A(又は30B,…)の認証シーケンスが、規定の認証シーケンスと異なる場合にユーザ認証の失敗を判定する構成により、第1〜第8の各実施形態の効果に加え、機器認証を成功させた不正なホスト装置30Bであっても、ユーザ認証の認証シーケンスの違いから不正を検出することができる。
【0284】
<第10の実施形態>
次に、第10の実施形態について前述した図1および図2を参照しながら説明する。
【0285】
第10の実施形態は、第1〜第9の各実施形態において、ユーザ認証失敗時の破棄の可否を設定するものである。
【0286】
具体的には、記憶装置10のシステムエリア11aは、前述した各情報に加え、第1部分鍵及び第3部分鍵を破棄するか否かを示す可否情報を記憶する(構成例α1、構成例βの場合)。
【0287】
ユーザ認証モジュール22は、前述した各機能に加え、可否情報を含む設定要求を正規のホスト装置30Aから受けると、当該可否情報をシステムエリア11aに設定する設定機能をもっている。
【0288】
また、ユーザ認証モジュール22は、ユーザ認証が失敗したとき、システムエリア11a内の可否情報に基づいてユーザデータの無効化処理、またさらに暗号化機能を持つ場合は、第1部分鍵及び第3部分鍵の破棄を阻止する破棄阻止機能をもっている。
【0289】
さらに、ユーザ認証モジュール22は、ユーザデータの無効化処理が阻止されたとき、データ読出モジュール27を動作させず、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
【0290】
さらに、ユーザ認証モジュール22は、構成例βの場合は、第1部分鍵及び第3部分鍵の破棄が阻止されたとき、復号化モジュール24を動作させない。
【0291】
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【0292】
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
【0293】
次に、以上のように構成された記憶システムの動作を図38のフローチャートを用いて説明する。なお、構成例によって、第3部分鍵に関する処理、および暗号鍵の設定に関する処理は該当せず、省略される。
【0294】
始めに、破棄の否を示す可否情報は、第5の実施形態と同様に、ステップST30の認証失敗時の動作設定において、記憶装置10のシステムエリア11aに設定される。以後、同様に、一旦、電源をオフして動作が終了する(ステップST60)。電源オフの後でも可否情報は消去されずに、システムエリア11aに記憶されている。
【0295】
次に、記憶装置10は、不正なユーザにより、正規のホスト装置30Aに接続されて電源がオン状態にされたとする。これにより、記憶装置10は、ホスト装置30Aに対する機器認証を実行する(ステップST10、ステップST110又はステップST10’)。なお、正規のホスト装置30Aなので、機器認証は成功する。
【0296】
続いて、記憶装置10は、ホスト装置30Aに対するユーザ認証を実行する(ステップST20’)。
【0297】
具体的には、ホスト装置30Aの入力モジュール33は、不正なユーザの操作に応じて、不正な第2ユーザ認証情報の入力を受け付ける。CPU34は、入力を受け付けた不正な第2ユーザ認証情報を記憶装置10に送信する。
【0298】
記憶装置10のユーザ認証モジュール22は、現在のホスト装置30Aから受けた不正な第2ユーザ認証情報と、システムエリア11a内の第1ユーザ認証情報とに基づいてユーザ認証を実行する。ここでは、不正なユーザに対するユーザ認証は失敗する。
【0299】
ユーザ認証が失敗したとき、ユーザ認証モジュール22は、システムエリア11a内の可否情報に基づいて、ユーザデータの無効化を阻止する。さらに、システムエリア11a内の内部情報G(第1部分鍵)が存在する装置の場合は、内部情報G及びSRAM25内の第3部分鍵K3の破棄を阻止する。
【0300】
また、ユーザ認証モジュール22は、破棄を阻止したとき、ユーザ認証のエラーを現在のホスト装置30Aに出力する。また、このとき、構成例βの場合は復号化モジュール24を動作させない。
【0301】
上述したように本実施形態によれば、可否情報によりユーザデータの無効化処理の可否、内部情報G(第1部分鍵)を持つ場合は、さらに第1部分鍵及び暗号鍵の破棄の可否を設定できる構成により、破棄の可を設定した場合には第1〜第9の各実施形態の効果を得ることができ、破棄の否を設定した場合には暗号化データの破棄を阻止することができる。
【0302】
<第11の実施形態>
次に、第11の実施形態について前述した図1および図2を参照しながら説明する。
【0303】
第11の実施形態は、第9の実施形態において、ユーザ認証失敗時の接続許容回数(リトライ可能回数)を設定するものである。換言すると、第11の実施形態は、第10の実施形態の可否情報に代えて、許容接続回数を用いた構成である。
【0304】
すなわち、記憶装置10のシステムエリア11aは、前述した各情報に加え、第1部分鍵及び第3部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数と、ユーザ認証が失敗した回数を示すエラー回数とを記憶する。
【0305】
ユーザ認証モジュール22は、前述した各機能に加え、許容接続回数を含む設定要求を正規のホスト装置30Aから受けると、当該許容接続回数をシステムエリア11aに設定する設定機能をもっている。
【0306】
また、ユーザ認証モジュール22は、ユーザ認証が失敗したとき、システムエリア11a内のエラー回数を増加させるように更新するエラー回数更新機能をもっている。
【0307】
さらに、ユーザ認証モジュール22は、更新後のエラー回数とシステムエリア11a内の許容接続回数に基づいてユーザデータ無効化処理(構成例αの場合)、構成例α1、構成例βの場合はさらに第1部分鍵(内部情報G)及び第3部分鍵の破棄を阻止する破棄阻止機能をもっている。
【0308】
また、ユーザ認証モジュール22は、ユーザデータ無効化処理が阻止された場合、データ読出モジュール27を動作させずに、ユーザ認証のエラーを現在のホスト装置30A(又は30B,…)に出力するエラー出力機能をもっている。
【0309】
また、ユーザ認証モジュール22は、構成例βの場合は、第1部分鍵及び第3部分鍵の破棄が阻止されたとき、復号化モジュール24も動作させない。
【0310】
一方、ホスト装置30Aの入力モジュール33は、前述した機能に加え、ユーザの操作に応じて、可否情報を含む設定要求の入力を受け付ける設定要求受付機能をもっている。
【0311】
ホスト装置30AのCPU34は、前述した機能に加え、入力を受け付けた設定要求を記憶装置10に送信する設定要求送信機能をもっている。
【0312】
以上のような構成によれば、ユーザ認証が失敗した場合に、許容接続回数によりユーザデータの無効化処理、さらに構成例α1、構成例βの場合は、第1部分鍵及び第3部分鍵の破棄の可否を設定できる構成により、許容接続回数に至るまではデータの破棄を阻止できると共に、許容接続回数に至った後は第9の実施形態の効果を得ることができる。
【0313】
<第12の実施形態>
次に、第12の実施形態について前述した図1および図2を参照しながら説明する。
【0314】
第12の実施形態は、第1〜第11の各実施形態において、ユーザ認証モジュール22がユーザデータの無効化処理つまり破棄した時、さらに構成例α1、構成例βの場合は、第1部分鍵及び第3部分鍵を破棄したときの破棄ログ情報をシステムエリア11aに記憶するものである。
【0315】
ここで、破棄ログ情報Lgは、前述同様に、ユーザデータが破棄、さらに構成例α1、構成例βの場合においては第1部分鍵及び第3部分鍵が破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含んでいる。なお、破棄理由情報は、ユーザ認証の失敗に限らず、正規の破棄コマンドで破棄された場合にはその旨を示してもよい。
【0316】
ユーザ認証モジュール22は、前述した各機能に加え、ユーザデータが破棄、さらに構成例α1、構成例βの場合においては第1部分鍵及び第3部分鍵が破棄されたとき、破棄ログ情報Lgを作成してシステムエリア11aに書き込む破棄ログ書込機能をもっている。この破棄ログ情報Lgは、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
【0317】
以上のような構成によれば、ユーザ認証が失敗し、ユーザデータが破棄、さらに構成例α1、構成例βの場合においては内部情報G(第1部分鍵)及び第3部分鍵K3が破棄されたとき、ユーザ認証モジュール22は、破棄された日時を示す破棄日時情報と、ユーザ認証の失敗を示す破棄理由情報とを含む破棄ログ情報Lgを作成してシステムエリア11aに書き込む。これにより、例えば記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄ログ情報Lgがシステムエリア11aから読み出される。
【0318】
上述したように本実施形態によれば、ユーザデータが破棄、さらに構成例α1、構成例βの場合においては内部情報G(第1部分鍵)及び第3部分鍵K3が破棄されたとき、破棄ログ情報Lgを記憶する構成により、第1〜第11の各実施形態の効果に加え、正規のユーザが破棄日時と破棄理由とを知ることができる。
【0319】
<第13の実施形態>
次に、第13の実施形態について前述した図1および図2を参照しながら説明する。
【0320】
第13の実施形態は、第12の実施形態の破棄ログ情報Lgにデジタル署名を付与した破棄証明書を記憶するものである。
【0321】
具体的には第8の実施形態と同様に、記憶装置10のシステムエリア11aは、図25に示したように、前述した各情報に加え、自装置の署名生成鍵Ksig-10を予め記憶する。また、システムエリア11aは、図25及び図26に示したように、破棄ログ情報Lg及びデジタル署名からなる破棄証明書Certを記憶する。
【0322】
ユーザ認証モジュール22は、前述した各機能に加え、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する署名生成機能をもっている。
【0323】
また、ユーザ認証モジュール22は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む破棄証明書作成機能を更にもっている。
【0324】
この破棄証明書Certは、前述同様に、正規のホスト装置30Aからの読出要求により、システムエリア11aから読出可能となっている。
【0325】
一方、ホスト装置30Aの構成は、第8の実施形態と同様である。
【0326】
以上のような構成によれば、前述した第12の実施形態で破棄ログ情報Lgがシステムエリア11aに書き込まれたとき、ユーザ認証モジュール22は、システムエリア11a内の署名生成鍵Ksig-10に基づいてシステムエリア11a内の破棄ログ情報Lgに署名処理を施して、デジタル署名Sig(Ksig-10,Lg)を生成する。
【0327】
また、ユーザ認証モジュール21は、破棄ログ情報Lg及びデジタル署名Sig(Ksig-10,Lg)からなる破棄証明書Certを作成し、この破棄証明書Certをシステムエリア11aに書込む。これにより、記憶装置10が盗難先から回収された後、正規のホスト装置30Aからの読出要求により、破棄証明書Certがシステムエリア11aから読み出される。
【0328】
正規のホスト装置30AのCPU34は、読み出した破棄証明書Certをメモリ32A内の署名検証鍵Kveri-10に基づいて検証し、検証結果が正当のとき、破棄証明書Certを出力モジュール35に出力する。
【0329】
上述したように本実施形態によれば、ユーザ認証モジュール22が破棄ログ情報Lgにデジタル署名を付加した破棄証明書Certをシステムエリア11aに記憶する構成により、第12の実施形態の効果に加え、破棄ログ情報Lgの正当性を検証することができる。
【0330】
以上説明した少なくとも一つの実施形態によれば、接続されたホスト装置30A(又は30B,…)の機器認証を実行し、機器認証が失敗したとき、ユーザデータを破棄、さらに構成例α1においては認証情報の一部である内部情報G、構成例βにおいては暗号鍵の一部である第1部分鍵を破棄する機器認証モジュール21を記憶装置10が備えた構成により、使用可能なシステム環境とは異なる環境からアクセスされた場合には、ユーザのアクセス権の有無によらず、記憶しているデータを無効にすることができる。
【0331】
<第14の実施形態>
次に、第14の実施形態について前述した図1および図2を参照しながら説明する。
【0332】
第14の実施形態においては、前述の、機器認証、ユーザ認証すべてが成功した後の処理である。本実施形態では、記憶装置10は、不揮発性半導体メモリ11としてNANDメモリを用いることを前提としており、機器認証、ユーザ認証すべてが成功した後の状態において、ホスト装置からの命令、つまりインターフェース装置を経由して送られる自己破壊コマンドに基づいて、自己破壊を行う機能を持つ。自己破壊の手段は、NANDメモリ11内の全ての内容を消してしまう方法である。
【0333】
この場合、前述のデータ無効化処理の方法として上げた第2の方法から第5の方法など、実際に不揮発性半導体メモリの記憶内容を破壊できる方法が使用できる。なお、第2の方法から第4の方法においては、ユーザデータを保持したブロックのみを消去対象としたが、自己破壊を行う場合においては、全ブロックを対象として、データの消去を行う。
【0334】
この自己破壊の後は、ドライブ制御回路内に保持される、IPLと呼ばれるファームウェアロード用コードが、ファームウェアを見つけられずエラーを検出し、インターフェース経由や、ドライブアクセス状況の通知用のLEDの信号性を利用して、ファームウェアが存在しないことを示すようにすることによって、外部から、他の故障と区別が可能となる。
【0335】
本実施例によれば、認証がされたホスト装置から、認証がされたユーザからのみ破壊処理が可能になり、悪意を持ったユーザによる破壊が防げるとともに、必要な時に、安全に高速に破壊し、安全に記憶装置を廃棄することが可能となる。ハードディスクドライブの場合は、外部から強力な磁界を加えることによってHDDとしての破壊が可能であったが、不揮発性半導体メモリを用いた記憶装置において、対応する方法がなかったが、本発明により、簡単に破壊して処分することが可能になる。
【0336】
<各実施形態の変形例>
第1〜第13の各実施形態においては、記憶装置10内の内部情報G(第1部分鍵)と、ホスト装置30Aから送信される固有情報“AA”(第2部分鍵)とを複合し、生成した第3部分鍵に第2ユーザ認証情報を複合して暗号鍵を作成し、この暗号鍵をSRAM25(揮発性メモリ)に記憶させている。
【0337】
これに対し、システムエリア11a内の第1部分鍵及びメモリ32A内の第2部分鍵を省略する一方、メモリ32A内に暗号鍵Kgを予め保持し、機器認証が成功したとき、ホスト装置30Aから送信した暗号鍵Kgを機器認証モジュール21がSRAM25に書き込むように変形してもよい。
【0338】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0339】
1 記憶装置101 不揮発性半導体メモリ(NANDメモリ)、19 DRAM、20 ドライブ制御回路、21 機器認証モジュール、22 ユーザ認証モジュール、23 暗号化モジュール、24 復号化モジュール、25 SRAM、26 データ記憶モジュール、27 データ読出モジュール、30A,30B ホスト装置。
【特許請求の範囲】
【請求項1】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置であって、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第1ユーザ認証情報を予め記憶する認証情報記憶部と、
新たに接続された現在のホスト装置から受けた第2機器認証情報と前記認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行する機器認証部と、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化部と、
前記機器認証の後、前記現在のホスト装置から受けた第2ユーザ認証情報と前記認証情報記憶部内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証部と、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出部と、
を備えることを特徴とする記憶装置。
【請求項2】
電源オフ時にデータが消去される揮発性メモリ、
前記揮発性メモリに書き込まれる暗号鍵の一部を構成する第1部分鍵を予め記憶する第1部分鍵記憶部と、
前記機器認証の後かつ前記ユーザ認証の前に、前記現在のホスト装置から受けた第2部分鍵と前記認証情報記憶部内の第1部分鍵とに基づいて第3部分鍵を生成し、生成した第3部分鍵を前記揮発性メモリに書込む第3部分鍵書込部と、
を備え、
前記機器認証部は、前記機器認証が失敗したとき、前記第1部分鍵を破棄し、
前記ユーザ認証部は、前記第3部分鍵を前記ユーザ認証に用いる、ことを特徴とする請求項1に記載の記憶装置。
【請求項3】
前記第1機器認証情報は、前記正規のホスト装置の固有情報のハッシュ値であり、
前記機器認証部は、前記第2機器認証情報のハッシュ値を算出し、このハッシュ値と前記第1機器認証情報とを照合して両者が不一致のときに、前記機器認証が失敗したと判定する、ことを特徴とする請求項1または2に記載の記憶装置。
【請求項4】
前記第2機器認証情報は、前記第2部分鍵としても用いられる前記現在のホスト装置の固有情報であり、
前記第2部分鍵は、前記第2機器認証情報としても用いられる前記現在のホスト装置の固有情報であることを特徴とする、請求項2または3に記載の記憶装置。
【請求項5】
前記第1機器認証情報は、前記正規のホスト装置の署名検証鍵であり、
前記第2機器認証情報は、前記現在のホスト装置の署名生成鍵により生成されたデジタル署名と当該デジタル署名の生成に用いた署名対象データであり、
前記機器認証部は、前記デジタル署名を前記署名検証鍵に基づいて復号し、得られた復号データと、前記署名対象データから算出したハッシュ値とを照合して両者が不一致のときに、前記機器認証が失敗した旨を判定する、ことを特徴とする請求項1または2に記載の記憶装置。
【請求項6】
前記機器認証部は、前記現在のホスト装置が第2機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、前記機器認証が失敗したと判定する、ことを特徴とする請求項1〜5のいずれか1つに記載の記憶装置。
【請求項7】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記可否情報記憶部内の前記可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項1に記載の記憶装置。
【請求項8】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記可否情報記憶部内の前記可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項2に記載の記憶装置。
【請求項9】
前記可否情報記憶部内の前記可否情報に基づいて、前記ユーザデータの無効化が阻止された場合に、前記第1部分鍵の破棄を阻止する破棄阻止部と、
前記エラー出力部は、前記第1部分鍵の破棄が阻止されたとき、前記第3部分鍵書込部および前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力する、ことを特徴とする請求項8に記載の記憶装置。
【請求項10】
前記第1部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数を記憶する許容接続回数記憶部と、
前記機器認証が失敗した回数を示すエラー回数を記憶するエラー回数記憶部と、
前記許容接続回数を含む設定要求を前記正規のホスト装置から受けると、当該許容接続回数を前記許容接続回数記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記エラー回数記憶部内のエラー回数を増加させるように更新するエラー回数更新部と、
更新後のエラー回数と前記許容接続回数記憶部内の許容接続回数に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項2に記載の記憶装置。
【請求項11】
前記ユーザデータの無効化処理が行われた日時を示す破棄日時情報と、前記機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報を記憶する破棄ログ記憶部と、
前記ユーザデータの無効化処理が行われたとき、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む破棄ログ書込部と、
をさらに備えることを特徴とする請求項1に記載の記憶装置。
【請求項12】
前記ユーザデータの無効化処理が行われた日時を示す破棄日時情報と、前記機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報を記憶する破棄ログ記憶部と、
前記ユーザデータの無効化処理が行われたとき、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む破棄ログ書込部と、
をさらに備えることを特徴とする請求項2に記載の記憶装置。
【請求項13】
前記破棄日時情報は、さらに前記第1部分鍵が破棄された日時を含み、
前記破棄ログ書込部は、さらに前記第1部分鍵が破棄されときに、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む、ことを特徴とする請求項12に記載の記憶装置。
【請求項14】
自装置の署名生成鍵を予め記憶する署名生成鍵記憶部と、
前記署名生成鍵に基づいて前記破棄ログ記憶部内の破棄ログ情報に署名処理を施して、デジタル署名を生成する署名生成部と、
前記破棄ログ情報及び前記デジタル署名からなる破棄証明書を作成し、この破棄証明書を前記破棄ログ記憶部に書込む破棄証明書作成部と、
をさらに備えることを特徴とする請求項11、12または13に記載の記憶装置。
【請求項15】
前記ユーザ認証部は、前記ユーザ認証が規定回数だけ失敗したとき、前記ユーザデータ無効化部によりユーザデータを無効化する、ことを特徴とする請求項1または2に記載の記憶装置。
【請求項16】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記ユーザ認証が失敗したとき、前記可否情報記憶部内の可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記データ読出部を動作させず、前記ユーザ認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項15に記載の記憶装置。
【請求項17】
前記記憶装置は、前記不揮発性半導体メモリからユーザデータを読み出して前記ホスト装置へ出力するにあたって、前記ホスト装置から前記不揮発性半導体メモリ内での論理的な位置を示す論理アドレスを指定されてユーザデータを出力し、
前記論理アドレスと記憶領域中のアドレスの対応状況を記憶するアドレス変換情報、
を備え、
前記データ読出部は、前記アドレス変換情報に基づいて前記ホスト装置から読出しを要求されたユーザデータの論理アドレスを物理アドレスに変換し、変換した物理アドレスの位置のユーザデータを前記不揮発性半導体メモリから読み出して出力し、
前記ユーザデータ無効化部は、前記無効化処理として、前記アドレス変換情報のうち無効化対象のユーザデータに対応する情報を削除する、または前記アドレス変換情報内の無効化対象のユーザデータに対応する物理アドレスを無効なデータを保持する特殊物理アドレスに変更する、処理を行うことを特徴とする、請求項1〜16のいずれか1つに記載の記憶装置。
【請求項18】
前記ユーザデータ無効化部は、前記無効化処理として、ユーザデータを含む前記不揮発性半導体メモリ中のブロックを消去する処理を行う、ことを特徴とする請求項1〜17のいずれか1つに記載の記憶装置。
【請求項19】
前記不揮発性半導体メモリとしてNANDメモリを用い、
前記不揮発性半導体メモリは、完全消去を行う場合には、前記不揮発性半導体メモリに記憶されたデータの消去後に消去確認作業を行い、消去が不完全で有る場合は、再度消去を行うという作業を、消去確認ができるまで繰り返し、
前記ユーザデータ無効化部は、前記無効化処理として、無効化対象のユーザデータに対して消去確認作業を行わずに消去を行う不完全消去を実施するよう、前記不揮発性半導体メモリを制御する、ことを特徴とする請求項1〜17のいずれか1つに記載の記憶装置。
【請求項20】
前記不揮発性半導体メモリとしてNANDメモリを用い、
前記ユーザデータ無効化部は、前記無効化処理として、前記不揮発性半導体メモリに記憶されている無効化対象のユーザデータを含む前記不揮発性半導体メモリを構成するメモリチップを前記メモリチップ単位で記憶データの消去を行うよう制御する、ことを特徴とする請求項1〜17のいずれか1つに記載の記憶装置。
【請求項21】
前記不揮発性半導体メモリとしてNANDメモリを用い、
前記ユーザデータ無効化部は、前記無効化処理として、前記不揮発性半導体メモリに記憶されている無効化対象のユーザデータを含む前記不揮発性半導体メモリを構成するメモリチップを前記メモリチップ単位で所定のデータで上書きする、ことを特徴とする請求項1〜17のいずれか1つに記載の記憶装置。
【請求項22】
前記ユーザ認証により認証された前記ホスト装置から受けた破壊要求に基づいて、前記不揮発性半導体メモリ内の全データを消去する自己破壊部、
をさらに備え、
前記自己破壊部は、前記不揮発性半導体メモリを構成する全てのメモリチップを前記メモリチップ単位で消去するまたは所定のデータで上書きする、ことを特徴とする請求項1〜21のいずれか1つに記載の記憶装置。
【請求項23】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置と、前記任意のホスト装置のうち、前記記憶装置への接続権限をもつ正規のホスト装置と、を具備する記憶システムであって、
前記記憶装置は、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第1ユーザ認証情報を予め記憶する認証情報記憶部と、
新たに接続された現在のホスト装置から受けた第2機器認証情報と前記認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行する機器認証部と、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化部と、
前記機器認証の後、前記現在のホスト装置から受けた第2ユーザ認証情報と前記認証情報記憶部内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証部と、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出部と、
を備え、
前記正規のホスト装置は、
前記第2機器認証情報を記憶する機器認証情報記憶部と、
前記記憶装置が接続されると、前記機器認証部により実行される機器認証の規定の認証シーケンスに沿って、前記機器認証情報記憶手段内の第2機器認証情報を前記記憶装置に送信する機器認証情報送信部と、
ユーザの操作に応じて、前記第2ユーザ認証情報の入力を受け付けるユーザ認証情報受付部と、
前記入力を受け付けた第2ユーザ認証情報を前記記憶装置に送信するユーザ認証情報送信部と、
ユーザの操作に応じて、前記読出要求の入力を受け付ける読出要求受付部と、
前記入力を受け付けた読出要求を前記記憶装置に送信する読出要求送信部と、
を備えることを特徴とする記憶システム。
【請求項24】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置における認証方法であって、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第1ユーザ認証情報を認証情報記憶部に予め記憶する認証情報記憶ステップと、
新たに接続された現在のホスト装置から受けた第2機器認証情報と前記認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行する機器認証ステップと、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化ステップと、
前記機器認証の後、前記現在のホスト装置から受けた第2ユーザ認証情報と前記認証情報記憶部内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証ステップと、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出しステップと、
を含むことを特徴とする認証方法。
【請求項1】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置であって、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第1ユーザ認証情報を予め記憶する認証情報記憶部と、
新たに接続された現在のホスト装置から受けた第2機器認証情報と前記認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行する機器認証部と、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化部と、
前記機器認証の後、前記現在のホスト装置から受けた第2ユーザ認証情報と前記認証情報記憶部内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証部と、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出部と、
を備えることを特徴とする記憶装置。
【請求項2】
電源オフ時にデータが消去される揮発性メモリ、
前記揮発性メモリに書き込まれる暗号鍵の一部を構成する第1部分鍵を予め記憶する第1部分鍵記憶部と、
前記機器認証の後かつ前記ユーザ認証の前に、前記現在のホスト装置から受けた第2部分鍵と前記認証情報記憶部内の第1部分鍵とに基づいて第3部分鍵を生成し、生成した第3部分鍵を前記揮発性メモリに書込む第3部分鍵書込部と、
を備え、
前記機器認証部は、前記機器認証が失敗したとき、前記第1部分鍵を破棄し、
前記ユーザ認証部は、前記第3部分鍵を前記ユーザ認証に用いる、ことを特徴とする請求項1に記載の記憶装置。
【請求項3】
前記第1機器認証情報は、前記正規のホスト装置の固有情報のハッシュ値であり、
前記機器認証部は、前記第2機器認証情報のハッシュ値を算出し、このハッシュ値と前記第1機器認証情報とを照合して両者が不一致のときに、前記機器認証が失敗したと判定する、ことを特徴とする請求項1または2に記載の記憶装置。
【請求項4】
前記第2機器認証情報は、前記第2部分鍵としても用いられる前記現在のホスト装置の固有情報であり、
前記第2部分鍵は、前記第2機器認証情報としても用いられる前記現在のホスト装置の固有情報であることを特徴とする、請求項2または3に記載の記憶装置。
【請求項5】
前記第1機器認証情報は、前記正規のホスト装置の署名検証鍵であり、
前記第2機器認証情報は、前記現在のホスト装置の署名生成鍵により生成されたデジタル署名と当該デジタル署名の生成に用いた署名対象データであり、
前記機器認証部は、前記デジタル署名を前記署名検証鍵に基づいて復号し、得られた復号データと、前記署名対象データから算出したハッシュ値とを照合して両者が不一致のときに、前記機器認証が失敗した旨を判定する、ことを特徴とする請求項1または2に記載の記憶装置。
【請求項6】
前記機器認証部は、前記現在のホスト装置が第2機器認証情報を送信するときの認証シーケンスが、規定の認証シーケンスと異なる旨を検出したときに、前記機器認証が失敗したと判定する、ことを特徴とする請求項1〜5のいずれか1つに記載の記憶装置。
【請求項7】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記可否情報記憶部内の前記可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項1に記載の記憶装置。
【請求項8】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記可否情報記憶部内の前記可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項2に記載の記憶装置。
【請求項9】
前記可否情報記憶部内の前記可否情報に基づいて、前記ユーザデータの無効化が阻止された場合に、前記第1部分鍵の破棄を阻止する破棄阻止部と、
前記エラー出力部は、前記第1部分鍵の破棄が阻止されたとき、前記第3部分鍵書込部および前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力する、ことを特徴とする請求項8に記載の記憶装置。
【請求項10】
前記第1部分鍵を破棄するまでに許容される新たな接続の回数を示す許容接続回数を記憶する許容接続回数記憶部と、
前記機器認証が失敗した回数を示すエラー回数を記憶するエラー回数記憶部と、
前記許容接続回数を含む設定要求を前記正規のホスト装置から受けると、当該許容接続回数を前記許容接続回数記憶部に設定する設定部と、
前記機器認証が失敗したとき、前記エラー回数記憶部内のエラー回数を増加させるように更新するエラー回数更新部と、
更新後のエラー回数と前記許容接続回数記憶部内の許容接続回数に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記ユーザ認証部を動作させず、前記機器認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項2に記載の記憶装置。
【請求項11】
前記ユーザデータの無効化処理が行われた日時を示す破棄日時情報と、前記機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報を記憶する破棄ログ記憶部と、
前記ユーザデータの無効化処理が行われたとき、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む破棄ログ書込部と、
をさらに備えることを特徴とする請求項1に記載の記憶装置。
【請求項12】
前記ユーザデータの無効化処理が行われた日時を示す破棄日時情報と、前記機器認証の失敗を示す破棄理由情報とを含む破棄ログ情報を記憶する破棄ログ記憶部と、
前記ユーザデータの無効化処理が行われたとき、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む破棄ログ書込部と、
をさらに備えることを特徴とする請求項2に記載の記憶装置。
【請求項13】
前記破棄日時情報は、さらに前記第1部分鍵が破棄された日時を含み、
前記破棄ログ書込部は、さらに前記第1部分鍵が破棄されときに、前記破棄ログ情報を作成して前記破棄ログ記憶部に書き込む、ことを特徴とする請求項12に記載の記憶装置。
【請求項14】
自装置の署名生成鍵を予め記憶する署名生成鍵記憶部と、
前記署名生成鍵に基づいて前記破棄ログ記憶部内の破棄ログ情報に署名処理を施して、デジタル署名を生成する署名生成部と、
前記破棄ログ情報及び前記デジタル署名からなる破棄証明書を作成し、この破棄証明書を前記破棄ログ記憶部に書込む破棄証明書作成部と、
をさらに備えることを特徴とする請求項11、12または13に記載の記憶装置。
【請求項15】
前記ユーザ認証部は、前記ユーザ認証が規定回数だけ失敗したとき、前記ユーザデータ無効化部によりユーザデータを無効化する、ことを特徴とする請求項1または2に記載の記憶装置。
【請求項16】
前記ユーザデータ無効化部によってユーザデータを無効化するか否かを示す可否情報を記憶する可否情報記憶部と、
前記可否情報を含む設定要求を前記正規のホスト装置から受けると、当該可否情報を前記可否情報記憶部に設定する設定部と、
前記ユーザ認証が失敗したとき、前記可否情報記憶部内の可否情報に基づいて前記ユーザデータの無効化を阻止する無効化阻止部と、
前記ユーザデータの無効化が阻止されたとき、前記データ読出部を動作させず、前記ユーザ認証のエラーを前記現在のホスト装置に出力するエラー出力部と、
をさらに備えることを特徴とする請求項15に記載の記憶装置。
【請求項17】
前記記憶装置は、前記不揮発性半導体メモリからユーザデータを読み出して前記ホスト装置へ出力するにあたって、前記ホスト装置から前記不揮発性半導体メモリ内での論理的な位置を示す論理アドレスを指定されてユーザデータを出力し、
前記論理アドレスと記憶領域中のアドレスの対応状況を記憶するアドレス変換情報、
を備え、
前記データ読出部は、前記アドレス変換情報に基づいて前記ホスト装置から読出しを要求されたユーザデータの論理アドレスを物理アドレスに変換し、変換した物理アドレスの位置のユーザデータを前記不揮発性半導体メモリから読み出して出力し、
前記ユーザデータ無効化部は、前記無効化処理として、前記アドレス変換情報のうち無効化対象のユーザデータに対応する情報を削除する、または前記アドレス変換情報内の無効化対象のユーザデータに対応する物理アドレスを無効なデータを保持する特殊物理アドレスに変更する、処理を行うことを特徴とする、請求項1〜16のいずれか1つに記載の記憶装置。
【請求項18】
前記ユーザデータ無効化部は、前記無効化処理として、ユーザデータを含む前記不揮発性半導体メモリ中のブロックを消去する処理を行う、ことを特徴とする請求項1〜17のいずれか1つに記載の記憶装置。
【請求項19】
前記不揮発性半導体メモリとしてNANDメモリを用い、
前記不揮発性半導体メモリは、完全消去を行う場合には、前記不揮発性半導体メモリに記憶されたデータの消去後に消去確認作業を行い、消去が不完全で有る場合は、再度消去を行うという作業を、消去確認ができるまで繰り返し、
前記ユーザデータ無効化部は、前記無効化処理として、無効化対象のユーザデータに対して消去確認作業を行わずに消去を行う不完全消去を実施するよう、前記不揮発性半導体メモリを制御する、ことを特徴とする請求項1〜17のいずれか1つに記載の記憶装置。
【請求項20】
前記不揮発性半導体メモリとしてNANDメモリを用い、
前記ユーザデータ無効化部は、前記無効化処理として、前記不揮発性半導体メモリに記憶されている無効化対象のユーザデータを含む前記不揮発性半導体メモリを構成するメモリチップを前記メモリチップ単位で記憶データの消去を行うよう制御する、ことを特徴とする請求項1〜17のいずれか1つに記載の記憶装置。
【請求項21】
前記不揮発性半導体メモリとしてNANDメモリを用い、
前記ユーザデータ無効化部は、前記無効化処理として、前記不揮発性半導体メモリに記憶されている無効化対象のユーザデータを含む前記不揮発性半導体メモリを構成するメモリチップを前記メモリチップ単位で所定のデータで上書きする、ことを特徴とする請求項1〜17のいずれか1つに記載の記憶装置。
【請求項22】
前記ユーザ認証により認証された前記ホスト装置から受けた破壊要求に基づいて、前記不揮発性半導体メモリ内の全データを消去する自己破壊部、
をさらに備え、
前記自己破壊部は、前記不揮発性半導体メモリを構成する全てのメモリチップを前記メモリチップ単位で消去するまたは所定のデータで上書きする、ことを特徴とする請求項1〜21のいずれか1つに記載の記憶装置。
【請求項23】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置と、前記任意のホスト装置のうち、前記記憶装置への接続権限をもつ正規のホスト装置と、を具備する記憶システムであって、
前記記憶装置は、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第1ユーザ認証情報を予め記憶する認証情報記憶部と、
新たに接続された現在のホスト装置から受けた第2機器認証情報と前記認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行する機器認証部と、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化部と、
前記機器認証の後、前記現在のホスト装置から受けた第2ユーザ認証情報と前記認証情報記憶部内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証部と、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出部と、
を備え、
前記正規のホスト装置は、
前記第2機器認証情報を記憶する機器認証情報記憶部と、
前記記憶装置が接続されると、前記機器認証部により実行される機器認証の規定の認証シーケンスに沿って、前記機器認証情報記憶手段内の第2機器認証情報を前記記憶装置に送信する機器認証情報送信部と、
ユーザの操作に応じて、前記第2ユーザ認証情報の入力を受け付けるユーザ認証情報受付部と、
前記入力を受け付けた第2ユーザ認証情報を前記記憶装置に送信するユーザ認証情報送信部と、
ユーザの操作に応じて、前記読出要求の入力を受け付ける読出要求受付部と、
前記入力を受け付けた読出要求を前記記憶装置に送信する読出要求送信部と、
を備えることを特徴とする記憶システム。
【請求項24】
ユーザデータを不揮発に記憶する不揮発性半導体メモリを有し、任意のホスト装置に着脱自在に接続可能な記憶装置における認証方法であって、
前記任意のホスト装置のうち、接続権限をもつ正規のホスト装置を機器認証するための第1機器認証情報、及び前記正規のホスト装置を使用する正規のユーザを認証する第1ユーザ認証情報を認証情報記憶部に予め記憶する認証情報記憶ステップと、
新たに接続された現在のホスト装置から受けた第2機器認証情報と前記認証情報記憶部内の第1機器認証情報とに基づいて機器認証を実行する機器認証ステップと、
前記機器認証が失敗した場合、前記不揮発性半導体メモリに記憶されているユーザデータを読み出せない状態にする無効化処理を実施するユーザデータ無効化ステップと、
前記機器認証の後、前記現在のホスト装置から受けた第2ユーザ認証情報と前記認証情報記憶部内の第1ユーザ認証情報とに基づいてユーザ認証を実行するユーザ認証ステップと、
前記ユーザ認証が成功したとき、前記現在のホスト装置から受けた読出要求に基づいて、前記不揮発性半導体メモリに記憶されているユーザデータを前記現在のホスト装置に出力するデータ読出しステップと、
を含むことを特徴とする認証方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図38】
【公開番号】特開2012−221246(P2012−221246A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−86669(P2011−86669)
【出願日】平成23年4月8日(2011.4.8)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願日】平成23年4月8日(2011.4.8)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]