(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024042470
(43)【公開日】2024-03-28
(54)【発明の名称】ストレージ装置
(51)【国際特許分類】
G06F 21/31 20130101AFI20240321BHJP
G06F 21/62 20130101ALI20240321BHJP
【FI】
G06F21/31
G06F21/62 318
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022147216
(22)【出願日】2022-09-15
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】小林 弘知
(57)【要約】
【課題】 不揮発性メモリに対するアクセスのセキュリティを強化できるストレージ装置を実現する。
【解決手段】 実施形態によれば、ストレージ装置は、不揮発性メモリとコントローラとを具備する。コントローラは、第1ユーザ識別情報と、前記第1ユーザ識別情報と第1クライアント装置の第1装置識別情報とから算出されるハッシュ値を含む第1認証情報とを管理する。コントローラは、外部装置から送信された、不揮発性メモリへのアクセス要求と、ユーザ識別情報、および認証情報を受信した場合、ユーザ識別情報が第1ユーザ識別情報と一致し、且つ認証情報が第1認証情報と一致するという第1条件を満たす場合、不揮発性メモリへのアクセス要求を受け付け、第1条件を満たさない場合、アクセス要求を拒否する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
第1ユーザ識別情報と、前記第1ユーザ識別情報と第1クライアント装置の第1装置識別情報とから算出されるハッシュ値を含む第1認証情報とを管理するように構成されるコントローラとを具備し、
前記コントローラは、
外部装置から送信された、前記不揮発性メモリへのアクセス要求と、ユーザ識別情報、及び、認証情報を受信した場合、
前記ユーザ識別情報が前記第1ユーザ識別情報と一致し、且つ前記認証情報が前記第1認証情報と一致するという第1条件を満たす場合、前記不揮発性メモリへのアクセス要求を受け付け、
前記第1条件を満たさない場合、前記アクセス要求を拒否する、
ストレージ装置。
【請求項2】
前記コントローラは、
前記第1ユーザ識別情報と、前記第1ユーザ識別情報に関連付けられた前記第1認証情報および第1アクセス権情報とを管理し、
前記外部装置によって送信された、前記アクセス要求、前記ユーザ識別情報、および前記認証情報を受信し、
前記第1条件を満たし、且つ前記第1アクセス権情報が前記アクセス要求で指定された記憶領域に対するアクセスを許可することを示している場合、前記アクセス要求を受け付け、
前記第1条件を満たし、且つ前記第1アクセス権情報が前記アクセス要求で指定された記憶領域に対するアクセスを許可することを示していない場合、前記アクセス要求を拒否する、
請求項1に記載のストレージ装置。
【請求項3】
前記アクセス要求は、前記不揮発性メモリからのデータの読み出しを要求するリード要求、または前記不揮発性メモリへのデータの書き込みを要求するライト要求である、
請求項2に記載のストレージ装置。
【請求項4】
前記第1アクセス権情報は、前記不揮発性メモリの記憶領域の少なくとも一部に対するアクセスの許可または禁止を示す情報を含む、
請求項2に記載のストレージ装置。
【請求項5】
前記アクセス要求は、前記不揮発性メモリからのデータの読み出しを要求するリード要求であり、
前記コントローラは、
前記第1条件を満たし、且つ前記第1アクセス権情報が前記アクセス要求で指定された記憶領域からのデータの読み出しを許可することを示している場合、前記アクセス要求を受け付け、
前記第1条件を満たし、且つ前記第1アクセス権情報が前記アクセス要求で指定された記憶領域からのデータの読み出しを許可することを示していない場合、前記アクセス要求を拒否する、
請求項2に記載のストレージ装置。
【請求項6】
前記アクセス要求は、前記不揮発性メモリへのデータの書き込みを要求するライト要求であり、
前記コントローラは、
前記第1条件を満たし、且つ前記第1アクセス権情報が前記アクセス要求で指定された記憶領域へのデータの書き込みを許可することを示している場合、前記アクセス要求を受け付け、
前記第1条件を満たし、且つ前記第1アクセス権情報が前記アクセス要求で指定された記憶領域へのデータの書き込みを許可することを示していない場合、前記アクセス要求を拒否する、
請求項2に記載のストレージ装置。
【請求項7】
前記コントローラは、前記第1ユーザ識別情報と、前記第1ユーザ識別情報と前記第1クライアント装置とは異なる第2クライアント装置の第2装置識別情報とから算出されるハッシュ値を含む第2認証情報とを管理するように構成され、
前記コントローラは、
前記外部装置によって送信された、前記アクセス要求、前記ユーザ識別情報、および前記認証情報を受信し、
前記ユーザ識別情報が前記第1ユーザ識別情報と一致し、且つ前記認証情報が前記第2認証情報と一致するという第2条件を満たす場合、前記アクセス要求を受け付け、
前記第1条件と前記第2条件のいずれも満たさない場合、前記アクセス要求を拒否する、
請求項1に記載のストレージ装置。
【請求項8】
前記コントローラは、第3ユーザ識別情報と、前記第3ユーザ識別情報と第3クライアント装置の第3装置識別情報とから算出される第3認証情報とを管理するように構成され、
前記コントローラは、
前記外部装置によって送信された、前記アクセス要求、前記ユーザ識別情報、および前記認証情報を受信し、
前記ユーザ識別情報が前記第3ユーザ識別情報と一致し、且つ前記認証情報が前記第3認証情報と一致するという第3条件を満たす場合、前記アクセス要求を受け付け、
前記第1条件と前記第3条件のいずれも満たさない場合、前記アクセス要求を拒否する、
請求項1に記載のストレージ装置。
【請求項9】
前記コントローラは、
前記第3ユーザ識別情報と、前記第3ユーザ識別情報に関連付けられた前記第3認証情報および第2アクセス権情報とを管理し、
前記外部装置によって送信された、前記アクセス要求、前記ユーザ識別情報、および前記認証情報を受信し、
前記第3条件を満たし、且つ前記第2アクセス権情報が前記アクセス要求で指定された記憶領域に対するアクセスを許可することを示している場合、前記アクセス要求を受け付け、
前記第3条件を満たし、且つ前記第2アクセス権情報が前記アクセス要求で指定された記憶領域に対するアクセスを許可することを示していない場合、前記アクセス要求を拒否する、
請求項8に記載のストレージ装置。
【請求項10】
前記コントローラは、
前記第1ユーザ識別情報と前記第1認証情報とを、前記第1クライアント装置からサーバ装置を介して受信し、
前記アクセス要求、前記ユーザ識別情報、および前記認証情報を、前記外部装置から前記サーバ装置を介して受信するように構成される、
請求項2に記載のストレージ装置。
【請求項11】
前記コントローラは、
前記第1ユーザ識別情報と前記第1認証情報とを、前記第1クライアント装置からサーバ装置を介することなく受信し、
前記アクセス要求、前記ユーザ識別情報、および前記認証情報を、前記外部装置から前記サーバ装置を介することなく受信するように構成される、
請求項2に記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、不揮発性メモリを制御する技術に関する。
【背景技術】
【0002】
近年、不揮発性メモリを備えるストレージ装置が広く普及している。このようなストレージ装置の1つとして、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)が知られている。SSDは、様々なコンピューティングデバイスのメインストレージとして使用されている。
【0003】
コンピューティングデバイスは、接続されたストレージ装置へのアクセスを許可するアカウントに対して、例えば、アカウント情報を発行する。アカウント情報は、アカウントの認証に用いられる情報である。アカウント情報は、例えば、ユーザの識別情報とパスワードとを含み、コンピューティングデバイス内の記憶領域に設定される。コンピューティングデバイスは、正当なアカウント情報を有するアカウントに対して、ストレージ装置へのアクセスを許可する。
【0004】
しかし、このようなアカウント認証方法において、コンピューティングデバイスが発行したアカウント情報が何らかの理由で漏洩する可能性がある。そしてそのアカウント情報を入手した第三者がストレージ装置にアクセスし、ストレージ装置内のデータが盗まれたりデータが書き換えられたりする不正アクセスが行われる可能性がある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の一実施形態では、不揮発性メモリに対するアクセスのセキュリティを強化できるストレージ装置を提供する。
【課題を解決するための手段】
【0007】
実施形態によれば、ストレージ装置は、不揮発性メモリと、コントローラとを具備する。コントローラは、第1ユーザ識別情報と、第1ユーザ識別情報と第1クライアント装置の第1装置識別情報とから算出されるハッシュ値を含む第1認証情報とを管理する。コントローラは、外部装置から送信された、不揮発性メモリへのアクセス要求と、ユーザ識別情報、および認証情報を受信した場合、ユーザ識別情報が第1ユーザ識別情報と一致し、且つ認証情報が第1認証情報と一致するという第1条件を満たす場合、不揮発性メモリへのアクセス要求を受け付け、第1条件を満たさない場合、アクセス要求を拒否する。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係るストレージ装置がサーバ装置とネットワークを介してクライアント装置に接続された情報処理システムの全体構成例を示すブロック図。
【
図2】第1実施形態に係るストレージ装置の構成例を示すブロック図。
【
図3】第1実施形態に係るストレージ装置において用いられる認証・アクセス権管理テーブルの構成例を示す図。
【
図4】第1実施形態に係るストレージ装置と、サーバ装置及びクライアント装置間の登録処理の例を説明するためのシーケンス図。
【
図5】第1実施形態に係るストレージ装置と、サーバ装置及びクライアント装置間の認証・リード処理の例を示すシーケンス図。
【
図6】第1実施形態に係るストレージ装置と、サーバ装置及びクライアント装置間の認証・ライト処理の例を示すシーケンス図。
【
図7】第1実施形態に係るストレージ装置と、サーバ装置及びクライアント装置間の登録処理の別の例を示すシーケンス図。
【
図8】第1実施形態に係るストレージ装置と、サーバ装置及びクライアント装置間の認証・リード処理の別の例を示すシーケンス図。
【
図9】第1実施形態に係るストレージ装置において実行される登録処理の手順の例を示すフローチャート。
【
図10】第1実施形態に係るストレージ装置において実行される認証・アクセス処理の手順の例を示すフローチャート。
【
図11】第1実施形態に係るストレージ装置において実行されるアクセス制御処理の手順の例を示すフローチャート。
【
図12】第2実施形態に係るストレージ装置がクライアント装置に直接接続された情報処理システムの全体構成例を示すブロック図。
【
図13】第2実施形態に係るストレージ装置と、クライアント装置間の登録処理の例を示すシーケンス図。
【
図14】第2実施形態に係るストレージ装置と、クライアント装置間の認証・リード処理の例を示すシーケンス図。
【
図15】第2実施形態に係るストレージ装置と、クライアント装置間の認証・ライト処理の例を示すシーケンス図。
【
図16】第2実施形態に係るストレージ装置と、クライアント装置間の登録処理の別の例を示すシーケンス図。
【
図17】第2実施形態に係るストレージ装置と、クライアント装置間の認証・リード処理の別の例を示すシーケンス図。
【
図18】比較例に係るストレージ装置と、サーバ装置及びクライアント装置間の認証・リード処理の例を示すシーケンス図。
【発明を実施するための形態】
【0009】
以下、実施の形態について図面を参照して説明する。
【0010】
(第1実施形態)
図1は、第1実施形態に係るストレージ装置がサーバ装置とネットワークを介してクライアント装置に接続された情報処理システムの全体構成例を示すブロック図である。情報処理システム1Aは、例えば、複数のクライアント装置2、サーバ装置3、ネットワーク4、およびストレージ装置5を含む。
【0011】
複数のクライアント装置2は、例えば、n台のクライアント装置2-1、2-2、……、および2-nである。nは、1以上の整数である。n台のクライアント装置2-1、2-2、……、および2-nのそれぞれは、ネットワーク4およびサーバ装置3を介してストレージ装置5にアクセスするコンピューティングデバイスである。n台のクライアント装置2-1、2-2、……、および2-nのそれぞれは、例えば、パーソナルコンピュータ、またはスマートフォンである。n台のクライアント装置2-1、2-2、……、および2-nのそれぞれは、少なくとも1人のユーザによって使用される。より具体的には、例えば、n台のクライアント装置2-1、2-2、……、および2-nの1つは、1人のユーザによってのみ使用される。また例えば、n台のクライアント装置2-1、2-2、……、および2-nの別の1つは、複数のユーザによって使用される。以下の説明では、n台のクライアント装置2-1、2-2、……、および2-nの内の特定しない1台のクライアント装置を、単にクライアント装置2と称することがある。
【0012】
サーバ装置3は、例えば、ネットワーク4を介してクライアント装置2と接続され得る。サーバ装置3は、クライアント装置2を使用しているユーザのアカウントを認証する。サーバ装置3は、アカウントの認証が成功した場合、クライアント装置2とストレージ装置5との間で、要求、応答、データ等の伝送を中継する。サーバ装置3を介してクライアント装置2からストレージ装置5に送信される要求は、例えば、ライト要求、リード要求などのアクセス要求である。クライアント装置2は、アクセス要求によって、ストレージ装置5の記憶領域の少なくとも一部にアクセスが可能である。
【0013】
ストレージ装置5は、例えば、NAND型フラッシュメモリ等の不揮発性メモリを含むソリッドステートドライブ(SSD)として実現され得る。ストレージ装置5は、クライアント装置2のストレージ(記憶領域)として使用され得る。ストレージ装置5は、サーバ装置3にケーブルを介して接続される。典型的には、大容量の共有データがSSD内にデータベースとして保存され、そのデータベースに複数のユーザがそれぞれのクライアント装置2からアクセスすることなどが想定される。
【0014】
サーバ装置3とストレージ装置5とを相互接続するためのインタフェースとしては、SCSI、Serial Attached SCSI(SAS)、ATA、Serial ATA(SATA)、PCI Express(PCIe)(登録商標)、Ethernet(登録商標)、Fibre channel、NVM Express(NVMe)(登録商標)等が使用され得る。
【0015】
次いで、ストレージ装置5の内部構成について説明する。
【0016】
図2は、第1実施形態に係るストレージ装置5の構成例を示すブロック図である。ストレージ装置5は、不揮発性メモリ6、ランダムアクセスメモリ(RAM)7、およびコントローラ8を備える。
【0017】
不揮発性メモリ6は、メモリデバイスである。不揮発性メモリ6は、二次元構造の不揮発性メモリであってもよいし、三次元構造の不揮発性メモリであってもよい。不揮発性メモリ6は、例えば、NAND型フラッシュメモリとして実現される。
【0018】
不揮発性メモリ6は、メモリセルアレイを含む。メモリセルアレイは、マトリクス状に配置された複数のメモリセルを含む。不揮発性メモリ6のメモリセルアレイは、複数のブロックB0、B1、B2、……、およびBm-1を含む。複数のブロックB0、B1、B2、……、およびBm-1のそれぞれは、複数のページP0、……、およびPn-1を含む。1つのブロックは、最小の消去単位として機能する。ブロックは、消去ブロック、物理ブロックと称されることもある。複数のページP0、……、およびPn-1のそれぞれは、同一ワード線に接続された複数のメモリセルを含む。1つのページは、データ書き込み動作およびデータ読み出し動作の単位である。なお、ワード線をデータ書き込み動作およびデータ読み出し動作の単位としてもよい。
【0019】
また、不揮発性メモリ6は、複数の不揮発性メモリチップ(例えば、複数のNAND型フラッシュメモリダイ)を含んでいてもよい。
【0020】
RAM7は、揮発性メモリである。RAM7は、例えば、ダイナミックRAM(DRAM)である。あるいは、RAM7は、スタティックRAM(SRAM)であってもよい。RAM7は、コントローラ8の内部構成であってもよい。以下では、RAM7としてDRAMが用いられる場合を主に例示する。
【0021】
RAM7には、論理物理アドレス変換テーブル31のキャッシュ領域と、認証・アクセス権管理テーブル32のキャッシュ領域とが設けられている。論理物理アドレス変換テーブル31と認証・アクセス権管理テーブル32とは、例えば、ストレージ装置5の起動時に不揮発性メモリ6からRAM7にロードされる。
【0022】
論理物理アドレス変換テーブル31は、論理アドレスそれぞれと不揮発性メモリ6の物理アドレスそれぞれとの間のマッピングを管理するテーブルである。論理物理アドレス変換テーブル31は、例えば、ルックアップテーブル(以下、LUTと称する)として実現される。論理アドレスは、ストレージ装置5をアドレス指定するためにクライアント装置2によって使用されるアドレスである。論理アドレスとして、例えば、論理ブロックアドレス(以下、LBAと称する)が使用される。物理アドレスは、不揮発性メモリ6における記憶位置を示す。
【0023】
認証・アクセス権管理テーブル32は、ユーザとクライアント装置2の組み合わせの認証に用いられる情報と、ユーザとクライアント装置2の組み合わせに対して設定された不揮発性メモリ6へのアクセス権とを管理するテーブルである。認証・アクセス権管理テーブル32の具体的な構成例については、
図3を参照して後述する。以下では、1人のユーザと1台のクライアント装置2との組み合わせを、ユーザ-クライアントペアとも称する。ユーザ-クライアントペアの認証に用いられる情報を、ユーザ-クライアント情報とも称する。
【0024】
コントローラ8は、不揮発性メモリ6を制御するように構成されたメモリコントローラである。コントローラ8は、例えば、System-on-a-chip(SoC)のような回路によって実現され得る。
【0025】
コントローラ8は、不揮発性メモリ6のデータ管理およびブロック管理を実行するように構成されたフラッシュトランスレーション層(FTL)として機能してもよい。
【0026】
データ管理には、(1)論理アドレスそれぞれと不揮発性メモリ6の物理アドレスそれぞれとの間の対応関係を示すマッピング情報の管理、(2)ページ単位のリード動作/ライト動作とブロック単位の消去動作との差異を隠蔽するための処理、等が含まれる。
【0027】
ブロック管理には、バッドブロックの管理、ウェアレベリング、ガベージコレクション(GC)、等が含まれる。以下では、不揮発性メモリ6のデータ管理およびブロック管理のための処理を、FTL処理とも称する。
【0028】
コントローラ8は、論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングの管理を、論理物理アドレス変換テーブル31を用いて実行する。コントローラ8は、論理アドレスそれぞれと物理アドレスそれぞれとの間のマッピングを、所定の管理サイズ単位で管理する。
【0029】
各ブロックに対して許容できるProgram/Eraseサイクル(P/Eサイクル)の数には上限がある。あるプロックの1回のP/Eサイクルは、ブロック内の全てのメモリセルを消去状態にするための消去動作と、ブロックのページそれぞれにデータを書き込む書き込み動作(プログラム動作)とを含む。したがって、1つのページへのデータ書き込みは、1つのP/Eサイクル(プログラムと消去のサイクル)当たり1回のみ可能である。このため、コントローラ8は、ある論理アドレスに対応する更新データを、この論理アドレスに対応する以前のデータが格納されている記憶位置ではなく、別の記憶位置に書き込む。そして、コントローラ8は、論理物理アドレス変換テーブル31を更新してこの論理アドレスをこの別の物理記憶位置を指す物理アドレスに関連付け、さらに以前のデータを無効化する。以下では、論理物理アドレス変換テーブル31から参照されているデータ(すなわち、論理アドレスと紐付けられているデータ)を有効データと称する。また、どの論理アドレスとも紐付けられていないデータを無効データと称する。有効データは、後にクライアント装置2からリードされる可能性があるデータである。無効データは、もはやクライアント装置2からリードされる可能性が無いデータである。
【0030】
コントローラ8は、ホストインタフェース(ホストI/F)11、メモリインタフェース(メモリI/F)12、RAMインタフェース(RAM I/F)13、およびCPU14を含む。ホストI/F11、メモリI/F12、RAM I/F13、およびCPU14は、例えば、バス10を介して接続される。
【0031】
ホストI/F11は、サーバ装置3からアクセス要求およびデータを受信する回路である。受信するデータは、例えば、ライト要求に基づいて不揮発性メモリ6に書き込まれるユーザデータである。
【0032】
また、ホストI/F11は、サーバ装置3に応答およびデータを送信する回路である。応答は、例えば、アクセス要求に対する応答である。送信するデータは、例えば、リード要求に基づいて不揮発性メモリ6から読み出されたユーザデータである。
【0033】
メモリI/F12は、不揮発性メモリ6を制御するように構成されたストレージ制御回路である。メモリI/F12は、例えばToggle DDR、Open NAND Flash Interface(ONFI)等のインターフェースに準拠している。コントローラ8と不揮発性メモリ6とは、メモリI/F12を介して電気的に接続されている。メモリI/F12は、複数のチャネルを介して、不揮発性メモリ6内の複数のメモリチップにそれぞれ接続されていてもよい。
【0034】
RAM I/F13は、RAM7のアクセスを制御するように構成されたRAMコントローラである。
【0035】
CPU14は、ホストI/F11、メモリI/F12、およびRAM I/F13を制御するように構成されたプロセッサである。CPU14は、図示しないROM等に格納されている制御プログラム(ファームウェア)を実行することによって様々な処理を行う。様々な処理とは、例えば、前述したデータ管理およびブロック管理などのためのFTL処理やリード要求、ライト要求などの要求処理である。CPU14の動作は、CPU14によって実行される上述のファームウェアによって制御される。なお、FTL処理および要求処理の一部または全部は、コントローラ8内の専用ハードウェアが実行してもよい。
【0036】
CPU14は、例えば、登録処理部141、認証処理部142、アクセス制御部143、およびリード/ライト処理部144として機能し得る。CPU14は、例えば、ファームウェアを実行することにより、登録処理部141、認証処理部142、アクセス制御部143、およびリード/ライト処理部144として機能し得る。登録処理部141、認証処理部142、アクセス制御部143、およびリード/ライト処理部144の具体的な処理については、
図4から
図8を参照して後述する。
【0037】
次いで、
図3を参照して、ストレージ装置5において用いられる認証・アクセス権管理テーブル32について説明する。
【0038】
図3は、認証・アクセス権管理テーブル32の構成例を示す。認証・アクセス権管理テーブル32は、複数のエントリを含む。複数のエントリのそれぞれは、1つのユーザ-クライアントペアに対応する。複数のエントリのそれぞれは、例えば、ユーザIDフィールド、認証情報フィールド、および複数のアクセス権フィールドを含む。複数のエントリのそれぞれにおいて、ユーザIDフィールドに設定されるデータ、認証情報フィールドに設定されるデータ、および複数のアクセス権フィールドに設定されるデータは、関連付けて管理される。
【0039】
1つのユーザ-クライアントペアに対応するエントリにおいて、ユーザIDフィールドは、対応するユーザに付与された識別情報を示す。対応するユーザは、ユーザ-クライアントペアを構成するユーザである。ユーザに付与された識別情報を、ユーザIDとも称する。ユーザIDは、対応するユーザを一意に特定可能な情報である。
【0040】
認証情報フィールドは、ユーザ-クライアントペアの認証情報を示す。認証情報は、ユーザ-クライアントペアに対して一意な情報である。認証情報は、例えば、対応するユーザのユーザIDと、対応するクライアント装置2の固有の識別情報とからなるデータのハッシュ値である。対応するクライアント装置2は、ユーザ-クライアントペアを構成するクライアント装置2である。クライアント装置2の固有の識別情報を、装置IDとも称する。ハッシュ値の算出には、特定のハッシュアルゴリズムが用いられる。特定のハッシュアルゴリズムは、例えば、Secure Hash Algorithm(SHA)であり、典型的には、SHA-384やSHA-512等が含まれる。
【0041】
複数のアクセス権フィールドは、例えば、m個のアクセス権フィールドである。mは、1以上の整数である。m個のアクセス権フィールドのそれぞれは、不揮発性メモリ6の記憶領域の少なくとも一部に対応する。不揮発性メモリ6の記憶領域の少なくとも一部は、例えば、1つのLBA範囲で表される。1つのLBA範囲は、少なくとも1つのLBAを含む。LBA範囲は、例えば、LBA範囲の先頭のLBAのアドレスと、論理ブロック数またはデータサイズとで特定される。以下では、m個のアクセス権フィールドのそれぞれが1つのLBA範囲に対応する場合について例示する。なお、不揮発性メモリ6の記憶領域の少なくとも一部は、LBA範囲に限定されない任意の記憶領域の単位で表現され得る。
【0042】
m個のアクセス権フィールドのそれぞれは、ユーザ-クライアントペアに対して設定されている、対応するLBA範囲へのアクセス権を示す。例えば、
図3の第1列目のアクセス権フィールドは、ユーザ-クライアントペアに対して設定されている第1LBA範囲へのアクセス権を示す。アクセス権は、アクセスの許可または禁止を示す。具体的には、アクセス権は、例えば、“R”、“W”、および“-”の少なくともいずれかで示される。“R”は、対応するLBA範囲からのユーザデータの読み出しが許可されていること(すなわち、リード許可)を表す。“W”は、対応するLBA範囲に対するユーザデータの書き込みが許可されていること(すなわち、ライト許可)を表す。“-”は、対応するLBA範囲に対するアクセスが禁止されていること(すなわち、アクセス禁止)を表す。
【0043】
図3に示す例では、認証・アクセス権管理テーブル32は、複数のエントリを含むように構成されており、ここでは先頭から順に、第1エントリ321、第2エントリ322、第3エントリ323、および第4エントリ324の4つのエントリが示されている。
【0044】
第1エントリ321は、例えば、第1ユーザと第1クライアント装置2-1のペアに対応する。第1エントリ321において、ユーザIDフィールドは、第1ユーザのユーザID“User01”を示す。認証情報フィールドは、ユーザID“User01”と第1クライアント装置2-1の装置IDとからなるデータのハッシュ値を示す。第1LBA範囲に対応するアクセス権フィールドは、第1ユーザと第1クライアント装置2-1のペアに対して、第1LBA範囲に対するリードが許可されていることを示す。第2LBA範囲に対応するアクセス権フィールドは、第1ユーザと第1クライアント装置2-1のペアに対して、第2LBA範囲に対するリードが許可されていることを示す。第mLBA範囲に対応するアクセス権フィールドは、第1ユーザと第1クライアント装置2-1のペアに対して、第mLBA範囲に対するリードが許可されていることを示す。
【0045】
第2エントリ322は、例えば、第1ユーザと第2クライアント装置2-2のペアに対応する。第2エントリ322において、ユーザIDフィールドは、第1ユーザのユーザID“User01”を示す。認証情報フィールドは、ユーザID“User01”と第2クライアント装置2-2の装置IDとからなるデータのハッシュ値を示す。第1LBA範囲に対応するアクセス権フィールドは、第1ユーザと第2クライアント装置2-2のペアに対して、第1LBA範囲に対するリードおよびライトが許可されていることを示す。第2LBA範囲に対応するアクセス権フィールドは、第1ユーザと第2クライアント装置2-2のペアに対して、第2LBA範囲に対するリードおよびライトが許可されていることを示す。第mLBA範囲に対応するアクセス権フィールドは、第1ユーザと第2クライアント装置2-2のペアに対して、第mLBA範囲に対するリードおよびライトが許可されていることを示す。
【0046】
第1エントリ321と第2エントリ322とでは、対応するユーザは同一であるが、対応するクライアント装置2が異なっている。同一のユーザが複数のクライアント装置2を使用する場合、例えば、LBA範囲に対するアクセス権が、使用するクライアント装置2によって異なるように設定され得る。なお、同一のユーザが複数のクライアント装置2を使用する場合に、LBA範囲に対するアクセス権を、使用するクライアント装置2によらず同一になるように設定することもできる。
【0047】
第3エントリ323は、例えば、第2ユーザと第1クライアント装置2-1のペアに対応する。第3エントリ323において、ユーザIDフィールドは、第2ユーザのユーザID“User02”を示す。認証情報フィールドは、ユーザID“User02”と第1クライアント装置2-1の装置IDとからなるデータのハッシュ値を示す。第1LBA範囲に対応するアクセス権フィールドは、第2ユーザと第1クライアント装置2-1のペアに対して、第1LBA範囲に対するリードおよびライトが許可されていることを示す。第2LBA範囲に対応するアクセス権フィールドは、第2ユーザと第1クライアント装置2-1のペアに対して、第2LBA範囲に対するリードが許可されていることを示す。第mLBA範囲に対応するアクセス権フィールドは、第2ユーザと第1クライアント装置2-1のペアに対して、第mLBA範囲に対するリードおよびライトが許可されていることを示す。
【0048】
第1エントリ321と第3エントリ323とでは、対応するユーザは異なっているが、対応するクライアント装置2が同一のクライアント装置2-1である。複数のユーザが1台のクライアント装置2を使用する場合、LBA範囲に対するアクセス権が、使用するユーザによらず同一になるように設定され得る。なお、複数のユーザが1台のクライアント装置2を使用する場合に、LBA範囲に対するアクセス権を、使用するユーザによって異なるように設定することもできる。
【0049】
第4エントリ324は、例えば、第3ユーザと第nクライアント装置2-nのペアに対応する。第4エントリ324において、ユーザIDフィールドは、第3ユーザのユーザID“User03”を示す。認証情報フィールドは、ユーザID“User03”と第nクライアント装置2-nの装置IDとからなるデータのハッシュ値を示す。第1LBA範囲に対応するアクセス権フィールドは、第3ユーザと第nクライアント装置2-nのペアに対して、第1LBA範囲に対するリードおよびライトが許可されていることを示す。第2LBA範囲に対応するアクセス権フィールドは、第3ユーザと第nクライアント装置2-nのペアに対して、第2LBA範囲に対するリードおよびライトが許可されていることを示す。第mLBA範囲に対応するアクセス権フィールドは、第3ユーザと第nクライアント装置2-nのペアに対して、第mLBA範囲に対するアクセスが禁止されていることを示す。
【0050】
以上の構成により、認証・アクセス権管理テーブル32は、ユーザ-クライアントペアの認証に用いられる情報(ユーザ-クライアント情報)と、ユーザ-クライアントペアに対して設定されたLBA範囲へのアクセス権とを管理できる。
【0051】
次いで、
図4から
図8を参照して、情報処理システム1Aにおける処理を説明する。
【0052】
図4は、第1実施形態に係るストレージ装置5と、サーバ装置3及びクライアント装置2間の登録処理の例を示すシーケンス図である。登録処理は、ユーザ-クライアント情報をストレージ装置5に登録する処理である。ユーザ-クライアント情報は、例えば、ユーザIDと認証情報とを含む。
【0053】
まず、クライアント装置2は、使用しているユーザのアカウント情報をサーバ装置3に送信する(A11)。アカウント情報は、例えば、ユーザIDとパスワードとを含む。ユーザIDとパスワードとは、例えば、クライアント装置2に設けられた入力デバイスによって、ユーザによる操作に基づき入力される。入力デバイスは、例えば、キーボード、またはタッチスクリーンディスプレイである。
【0054】
サーバ装置3は、クライアント装置2から受信したアカウント情報(以下、受信アカウント情報と称する)に基づいて、アカウントの認証を行う(A12)。より詳しくは、サーバ装置3は、予め記憶および設定された少なくとも1つのアカウント情報(以下、設定アカウント情報と称する)に、受信アカウント情報と一致するアカウント情報が含まれているか否かを判定する。受信アカウント情報のユーザIDと一致するユーザIDを含み、且つ受信アカウント情報のパスワードと一致するパスワードを含む設定アカウント情報がある場合、サーバ装置3は、アカウントの認証が成功したと判断する。受信アカウント情報のユーザIDと一致するユーザIDを含む設定アカウント情報がない場合、サーバ装置3は、アカウントの認証が失敗したと判断する。また、受信アカウント情報のユーザIDと一致するユーザIDを含むが、受信アカウント情報のパスワードとは異なるパスワードを含む設定アカウント情報がある場合、サーバ装置3は、アカウントの認証が失敗したと判断する。アカウントの認証が失敗した場合、ユーザ-クライアント情報のストレージ装置5への登録は行われない。
【0055】
ユーザ-クライアント情報のストレージ装置5への登録は、アカウントの認証が成功した場合に行われる。以下では、アカウントの認証が成功した場合について説明する。アカウントの認証が成功した場合、サーバ装置3は、アカウントの認証が成功したことをクライアント装置2に通知する(A13)。
【0056】
サーバ装置3からアカウントの認証が成功したことが通知された後、クライアント装置2は、認証情報を生成する(A14)。具体的には、クライアント装置2は、ユーザIDと、クライアント装置2の装置IDとからなるデータのハッシュ値を、認証情報として生成する。そして、クライアント装置2は、ユーザIDと生成した認証情報とを含むユーザ-クライアント情報を、サーバ装置3に送信する(A15)。
【0057】
サーバ装置3は、クライアント装置2からユーザ-クライアント情報を受信すると、受信したユーザ-クライアント情報をストレージ装置5に送信する(A16)。
【0058】
ストレージ装置5の登録処理部141は、サーバ装置3からユーザ-クライアント情報を受信すると、受信したユーザ-クライアント情報を認証・アクセス権管理テーブル32に登録する(A17)。具体的には、登録処理部141は、受信したユーザ-クライアント情報から、ユーザIDと認証情報とを取得する。そして、登録処理部141は、取得したユーザIDと認証情報とを含むエントリを、認証・アクセス権管理テーブル32に追加する。
【0059】
以上の登録処理により、クライアント装置2と、クライアント装置2を使用しているユーザとのペア(ユーザ-クライアントペア)に対応するユーザ-クライアント情報を、ストレージ装置5に登録できる。これにより、ストレージ装置5は、認証・アクセス権管理テーブル32を用いて、ユーザ-クライアントペアの認証を行うことができる。したがって、サーバ装置3で行われるアカウントの認証とは別に、ストレージ装置5でユーザ-クライアントペアの認証が行われるので、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。また、ストレージ装置5がユーザ-クライアントペアに対応するユーザ-クライアント情報を管理するので、サーバ装置3では、1人のユーザが複数のクライアント装置2を使用する場合に、1人のユーザに対して、使用するクライアント装置2に応じた複数のアカウント情報を発行および設定する必要がない。なお、悪意あるユーザによって偽のユーザ-クライアント情報が登録されないように、クライアント装置2は、送信するユーザ-クライアント情報に対して、正当性を検証可能な情報を付与してもよい。
【0060】
図5は、第1実施形態に係るストレージ装置5と、サーバ装置3及びクライアント装置2間の認証・リード処理の例を示すシーケンス図である。認証・リード処理は、ユーザ-クライアントペアの認証とリード処理とを行う処理である。認証・リード処理は、クライアント装置2がストレージ装置5からのユーザデータの読み出しを要求する場合に行われる。
【0061】
B101からB103までのアカウントの認証に関する処理は、
図4を参照して前述した登録処理におけるA11からA13までの処理と同様である。なお、認証・リード処理を開始する前にアカウントの認証が行われ、認証が成功している場合、B101からB103までの処理は省略されてもよい。
【0062】
サーバ装置3からアカウントの認証が成功したことが通知された後、クライアント装置2は、認証情報とリード要求とを生成する(B104)。リード要求は、クライアント装置2が読み出そうとするファイルに対応するLBA範囲を指定する。指定するLBA範囲は、ストレージ装置5において、ファイルが論理的に記憶されている記憶領域を示す。ファイルとLBA範囲との対応関係は、例えば、ファイルシステムによって管理される。ファイルシステムは、例えば、クライアント装置2が実行するオペレーティングシステムに含まれる。クライアント装置2は、ユーザID、および生成した認証情報を含むユーザ-クライアント情報と、生成したリード要求とを、サーバ装置3に送信する(B105)。
【0063】
サーバ装置3は、クライアント装置2からユーザ-クライアント情報とリード要求とを受信すると、受信したユーザ-クライアント情報とリード要求とをストレージ装置5に送信する(B106)。
【0064】
ストレージ装置5の認証処理部142は、サーバ装置3からユーザ-クライアント情報とリード要求とを受信すると、認証・アクセス権管理テーブル32を用いて、受信したユーザ-クライアント情報に基づくユーザ-クライアントペアの認証を行う(B107)。具体的には、認証処理部142は、認証・アクセス権管理テーブル32のいずれか1つのエントリが、(1)受信したユーザ-クライアント情報に含まれるユーザIDと一致するユーザIDを含み、且つ(2)受信したユーザ-クライアント情報に含まれる認証情報と一致する認証情報を含むという条件を満たすエントリであるか否かを判定する。認証・アクセス権管理テーブル32のいずれかのエントリが、条件を満たすエントリである場合、認証処理部142は、ユーザ-クライアントペアの認証が成功したと判断する。そして、認証処理部142は、受信したリード要求を受け付ける。認証・アクセス権管理テーブル32のいずれのエントリも条件を満たすエントリでない場合、認証処理部142は、ユーザ-クライアントペアの認証が失敗したと判断する。そして、認証処理部142は、受信したリード要求を拒否する。
【0065】
B107において、ユーザ-クライアントペアの認証が成功した場合の処理について説明する。
【0066】
認証処理部142は、受信したリード要求をリード/ライト処理部144に送出する(B108)。
【0067】
リード/ライト処理部144は、認証処理部142からリード要求を受け取ると、リード要求に基づいて、不揮発性メモリ6に対するリード処理を行う(B109)。具体的には、リード/ライト処理部144は、論理物理アドレス変換テーブル31を用いて、リード要求で指定されたLBA範囲に対応する物理アドレスを特定する。リード/ライト処理部144は、特定した物理アドレスに基づき、不揮発性メモリ6からユーザデータを読み出す。そして、リード/ライト処理部144は、読み出したユーザデータをサーバ装置3に送信する(B110)。
【0068】
サーバ装置3は、ストレージ装置5からユーザデータを受信すると、受信したユーザデータをクライアント装置2に送信する(B111)。
【0069】
これにより、クライアント装置2は、リード要求を用いて読み出しを要求したユーザデータを取得できる。
【0070】
次いで、B107において、ユーザ-クライアントペアの認証が失敗した場合の処理について説明する。
【0071】
認証処理部142は、ユーザ-クライアントペアの認証が失敗したことを示す応答を、サーバ装置3に送信する(B112)。なお、認証処理部142は、リード要求に基づくリード処理が失敗したことを示す応答を、サーバ装置3に送信してもよい。
【0072】
サーバ装置3は、ストレージ装置5から受け取った応答を、クライアント装置2にさらに送信する(B112)。
【0073】
これにより、クライアント装置2は、ユーザ-クライアントペアの認証が失敗したことを、あるいはリード要求に基づくリード処理が失敗したことを、認識できる。
【0074】
以上の認証・リード処理により、ストレージ装置5は、ユーザ-クライアントペアの認証を行って、認証が成功した場合に、リード要求に基づくリード処理を行うことができる。ストレージ装置5が認証・アクセス権管理テーブル32に登録されていないユーザ-クライアント情報と共にリード要求を受信したならば、リード要求に基づくリード処理は行われない。つまり、ストレージ装置5は、正当なユーザ-クライアント情報を有していないユーザ-クライアントペアからのリード要求を拒否する。これにより、ストレージ装置5は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0075】
図6は、第1実施形態に係るストレージ装置5と、サーバ装置3及びクライアント装置2間の認証・ライト処理の例を示すシーケンス図である。認証・ライト処理は、ユーザ-クライアントペアの認証とライト処理とを行う処理である。認証・ライト処理は、クライアント装置2がストレージ装置5へのユーザデータの書き込みを要求する場合に行われる。
【0076】
C101からC103までのアカウントの認証に関する処理は、
図4を参照して前述した登録処理におけるA11からA13までの処理と同様である。
【0077】
サーバ装置3からアカウントの認証が成功したことが通知された後、クライアント装置2は、認証情報とライト要求とを生成する(C104)。ライト要求は、クライアント装置2がユーザデータを書き込もうとするファイルに対応するLBA範囲を指定する。指定されたLBA範囲は、ストレージ装置5において、ファイルが論理的に記憶される記憶領域を示す。クライアント装置2は、ユーザIDおよび生成した認証情報を含むユーザ-クライアント情報と、生成したライト要求と、書き込まれるユーザデータとを、サーバ装置3に送信する(C105)。
【0078】
サーバ装置3は、クライアント装置2からユーザ-クライアント情報、ライト要求、およびユーザデータを受信すると、受信したユーザ-クライアント情報、ライト要求、およびユーザデータをストレージ装置5に送信する(C106)。
【0079】
ストレージ装置5の認証処理部142は、サーバ装置3からユーザ-クライアント情報、ライト要求、およびユーザデータを受信すると、認証・アクセス権管理テーブル32を用いて、受信したユーザ-クライアント情報に基づくユーザ-クライアントペアの認証を行う(C107)。
【0080】
C107において、ユーザ-クライアントペアの認証が成功した場合の処理について説明する。
【0081】
認証処理部142は、受信したライト要求およびユーザデータを、リード/ライト処理部144に送出する(C108)。
【0082】
リード/ライト処理部144は、認証処理部142からライト要求およびユーザデータを受け取ると、ライト要求に基づいて、不揮発性メモリ6に対するライト処理を行う(C109)。具体的には、ストレージ装置5は、受け取ったユーザデータを不揮発性メモリ6に書き込む。ストレージ装置5は、ユーザデータが書き込まれた記憶位置を示す物理アドレスと、ライト要求で指定されたLBA範囲とのマッピングを示すように、論理物理アドレス変換テーブル31を更新する。そして、ストレージ装置5は、ライト要求に基づくライト処理が完了したことを示す応答を、サーバ装置3に送信する(C110)。
【0083】
サーバ装置3は、ストレージ装置5から受け取った応答を、クライアント装置2にさらに送信する(C111)。
【0084】
これにより、クライアント装置2は、ライト要求に基づく書き込みが完了したことを認識する。
【0085】
次いで、C107において、ユーザ-クライアントペアの認証が失敗した場合の処理について説明する。
【0086】
認証処理部142は、ユーザ-クライアントペアの認証が失敗したことを示す応答を、サーバ装置3に送信する(C112)。なお、ストレージ装置5は、ライト要求に基づくライト処理が失敗したことを示す応答を、サーバ装置3に送信してもよい。
【0087】
サーバ装置3は、ストレージ装置5から受け取った応答を、クライアント装置2にさらに送信する(C113)。
【0088】
これにより、クライアント装置2は、ユーザ-クライアントペアの認証が失敗したことを、あるいはライト要求に基づくライト処理が失敗したことを、認識する。
【0089】
以上の認証・ライト処理により、ストレージ装置5は、ユーザ-クライアントペアの認証を行って、認証が成功した場合に、ライト要求に基づくライト処理を行うことができる。ストレージ装置5が認証・アクセス権管理テーブル32に登録されていないユーザ-クライアント情報と共にライト要求を受信したならば、ライト要求に基づくライト処理は行われない。つまり、ストレージ装置5は、正当なユーザ-クライアント情報を有していないユーザ-クライアントペアからのライト要求を拒否する。これにより、ストレージ装置5は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0090】
図7は、第1実施形態に係るストレージ装置5と、サーバ装置3及びクライアント装置2間の登録処理の別の例を示すシーケンス図である。
図7に示す登録処理は、ユーザ-クライアント情報に加えて、アクセス権情報もストレージ装置5に登録する処理である。
【0091】
アクセス権情報は、少なくとも1つのLBA範囲へのアクセス権を示す情報であり、例えば、
図3に示したテーブル32のうちアクセス権フィールドに含まれる情報に相当する。アクセス権情報は、より具体的には、例えば、LBA範囲を示す情報と当該LBA範囲へのアクセス権の内容を示す情報とを含む。LBA範囲を示す情報とは、例えば、LBA範囲の先頭のLBAのアドレスと、論理ブロック数またはデータサイズとを示す情報である。LBA範囲へのアクセス権の内容を示す情報とは、あるLBA範囲に対するアクセスの許可または禁止を示す情報を含む。例えば、
図3に示した例と同様に、LBA範囲へのアクセス権の内容を示す情報は、リード許可“R”、ライト許可“W”、及びアクセス禁止“-”の少なくとも1つを含む。アクセス権情報は、ユーザ-クライアント情報によって示されるユーザ-クライアントペアに対応する。つまり、アクセス権情報によって示されるアクセス権は、ユーザ-クライアント情報によって示されるユーザ-クライアントペアに対して設定されるアクセス権である。
【0092】
D11からD13までのアカウントの認証に関する処理は、
図4を参照して前述した登録処理におけるA11からA13までの処理と同様である。
【0093】
サーバ装置3からアカウントの認証が成功したことが通知された後、クライアント装置2は、認証情報とアクセス権情報とを生成する(D14)。そして、クライアント装置2は、ユーザID、および生成した認証情報を含むユーザ-クライアント情報と、生成したアクセス権情報とを、サーバ装置3に送信する(D15)。
【0094】
サーバ装置3は、クライアント装置2からユーザ-クライアント情報およびアクセス権情報を受信すると、受信したユーザ-クライアント情報およびアクセス権情報をストレージ装置5に送信する(D16)。
【0095】
ストレージ装置5の登録処理部141は、サーバ装置3からユーザ-クライアント情報およびアクセス権情報を受信すると、受信したユーザ-クライアント情報およびアクセス権情報を認証・アクセス権管理テーブル32に登録する(D17)。具体的には、登録処理部141は、受信したユーザ-クライアント情報から、ユーザIDと認証情報とを取得する。また、登録処理部141は、受信したアクセス権情報から、少なくとも1つのLBA範囲へのアクセス権の内容を取得する。そして、ストレージ装置5は、取得したユーザID、認証情報、および少なくとも1つのLBA範囲へのアクセス権の内容を含むエントリを、認証・アクセス権管理テーブル32に追加する。
【0096】
以上の登録処理により、クライアント装置2と、クライアント装置2を使用しているユーザとのペア(ユーザ-クライアントペア)に対応するユーザ-クライアント情報と、当該ユーザ-クライアントペアに対応するアクセス権情報とを、ストレージ装置5に登録できる。これにより、ストレージ装置5は、認証・アクセス権管理テーブル32を用いて、ユーザ-クライアントペアの認証を行うことができる。また、ストレージ装置5は、認証・アクセス権管理テーブル32を用いて、認証が成功したユーザ-クライアントペアによる不揮発性メモリ6へのアクセスを、例えば、LBA範囲毎に制御できる。したがって、ストレージ装置5は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0097】
図8は、第1実施形態に係るストレージ装置5と、サーバ装置3及びクライアント装置2間の認証・リード処理の別の例を示すシーケンス図である。
【0098】
E101からE107までの処理は、
図5を参照して前述した認証・リード処理におけるB101からB107までの処理と同様である。また、E107においてユーザ-クライアントペアの認証が失敗した場合の処理は、
図5を参照して前述した認証・リード処理におけるB112およびB113の処理と同様である。
【0099】
以下では、E107においてユーザ-クライアントペアの認証が成功した場合の処理について説明する。
【0100】
ストレージ装置5の認証処理部142は、受信したユーザ-クライアント情報およびリード要求を、アクセス制御部143に送出する(E108)。
【0101】
アクセス制御部143は、認証処理部142からユーザ-クライアント情報およびリード要求を受け取ると、認証・アクセス権管理テーブル32を用いて、ユーザ-クライアントペアに対して、リード要求で指定されたLBA範囲へのリードが許可されているか否かを判定する(E109)。具体的には、アクセス制御部143は、例えば、認証・アクセス権管理テーブル32において、受け取ったユーザ-クライアント情報に対応するエントリを特定する。アクセス制御部143は、特定したエントリが、受け取ったリード要求で指定されたLBA範囲へのリード許可“R”を示しているか否かを判定する。特定したエントリが、リード要求で指定されたLBA範囲へのリード許可“R”を示している場合、アクセス制御部143は、ユーザ-クライアントペアに対して、リード要求で指定されたLBA範囲へのリードが許可されていると判断する。そして、アクセス制御部143は、リード要求を受け付ける。特定したエントリが、リード要求で指定されたLBA範囲へのリード許可“R”を示していない場合、アクセス制御部143は、ユーザ-クライアントペアに対して、リード要求で指定されたLBA範囲へのリードが許可されていない(すなわち、禁止されている)と判断する。そして、アクセス制御部143は、リード要求を拒否する。
【0102】
ユーザ-クライアントペアに対して、リード要求で指定されたLBA範囲へのリードが許可されている場合について説明する。
【0103】
この場合、アクセス制御部143は、リード要求をリード/ライト処理部144に送出する(E110)。
【0104】
リード/ライト処理部144は、アクセス制御部143からリード要求を受け取ると、リード要求に基づいて、不揮発性メモリ6に対するリード処理を行う(E111)。そして、リード/ライト処理部144は、読み出したユーザデータをサーバ装置3に送信する(E112)。
【0105】
サーバ装置3は、ストレージ装置5からユーザデータを受信すると、受信したユーザデータをクライアント装置2に送信する(E113)。
【0106】
これにより、クライアント装置2は、リード要求を用いて読み出しを要求したユーザデータを取得できる。
【0107】
次いで、ユーザ-クライアントペアに対して、リード要求で指定されたLBA範囲へのリードが許可されていない場合について説明する。
【0108】
この場合、アクセス制御部143は、リード要求で指定されたLBA範囲へのリードが禁止されていることを示す応答を、サーバ装置3に送信する(E114)。なお、アクセス制御部143は、リード要求に基づくリード処理が失敗したことを示す応答を、サーバ装置3に送信してもよい。
【0109】
サーバ装置3は、ストレージ装置5から受け取った応答を、クライアント装置2にさらに送信する(E115)。
【0110】
これにより、クライアント装置2は、リード要求で指定されたLBA範囲へのリードが禁止されていることを、あるいはリード要求に基づくリード処理が失敗したことを、認識する。
【0111】
以上の認証・リード処理により、ストレージ装置5は、ユーザ-クライアントペアの認証を行って、認証が成功し、且つリード要求で指定されたLBA範囲へのリードが許可されている場合に、リード要求に基づくリード処理を行うことができる。ストレージ装置5が認証・アクセス権管理テーブル32に登録されていないユーザ-クライアント情報と共にリード要求を受信したならば、リード要求に基づくリード処理は行われない。つまり、ストレージ装置5は、正当なユーザ-クライアント情報を有していないユーザ-クライアントペアからのリード要求を拒否する。また、ストレージ装置5が、リードが許可されていないLBA範囲を指定したリード要求を受信したならば、リード要求に基づくリード処理は行われない。つまり、ストレージ装置5は、正当なユーザ-クライアント情報を有しているユーザ-クライアントペアからであっても、リードが許可されていないLBA範囲を指定したリード要求を拒否する。
【0112】
なお、認証・ライト処理についても同様にして、ストレージ装置5は、ライトが許可されているLBA範囲を指定したライト要求のみに基づいて、ライト処理を行うことができる。つまり、ストレージ装置5は、ライトが許可されていないLBA範囲を指定したライト要求を拒否する。
【0113】
これにより、ストレージ装置5は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0114】
次いで、
図9から
図11を参照して、ストレージ装置5において実行される処理の手順について説明する。
【0115】
図9は、第1実施形態に係るストレージ装置5において実行される登録処理の手順の例を示すフローチャートである。登録処理は、ユーザ-クライアント情報をストレージ装置5に登録する処理である。登録処理では、ユーザ-クライアント情報が、あるいはユーザ-クライアント情報とアクセス権情報とが、ストレージ装置5に登録される。ストレージ装置5のCPU14は、ユーザ-クライアント情報をサーバ装置3から受信した場合に、あるいはユーザ-クライアント情報とアクセス権情報とをサーバ装置3から受信した場合に、登録処理を実行する。
【0116】
まず、CPU14は、受信したユーザ-クライアント情報から、ユーザIDと認証情報とを取得する(S11)。そして、CPU14は、ユーザ-クライアント情報と共にアクセス権情報を受信したか否かを判定する(S12)。
【0117】
アクセス権情報を受信した場合(S12 Yes)、CPU14は、取得したユーザIDおよび認証情報と、アクセス権情報とを含むエントリを、認証・アクセス権管理テーブル32に追加し(S13)、登録処理を終了する(終了)。
【0118】
アクセス権情報を受信していない場合(S12 No)、CPU14は、取得したユーザIDと認証情報とを含むエントリを、認証・アクセス権管理テーブル32に追加し(S14)、登録処理を終了する(終了)。
【0119】
以上の登録処理により、CPU14は、サーバ装置3からユーザ-クライアント情報を受信した場合に、ユーザ-クライアント情報(すなわち、ユーザIDおよび認証情報)を認証・アクセス権管理テーブル32に登録できる。したがって、CPU14は、認証・アクセス権管理テーブル32を用いて、ユーザ-クライアント情報を管理できる。
【0120】
また、CPU14は、サーバ装置3からユーザ-クライアント情報とアクセス権情報とを受信した場合に、ユーザ-クライアント情報およびアクセス権情報を認証・アクセス権管理テーブル32に登録できる。したがって、CPU14は、認証・アクセス権管理テーブル32を用いて、ユーザ-クライアント情報およびアクセス権情報を管理できる。
【0121】
図10は、第1実施形態に係るストレージ装置5において実行される認証・アクセス処理の手順の例を示すフローチャートである。認証・アクセス処理は、ユーザ-クライアントペアの認証を行って、認証が成功した場合にアクセス要求に基づく処理を行う処理である。ストレージ装置5のCPU14は、ユーザ-クライアント情報とアクセス要求とをサーバ装置3から受信した場合に、認証・アクセス処理を実行する。ここでは、受信したアクセス要求がリード要求とライト要求のいずれかである場合を例示する。なお、アクセス要求がライト要求である場合、CPU14は、ユーザ-クライアント情報およびライト要求と共に、不揮発性メモリ6に書き込むユーザデータも受信する。
【0122】
まず、CPU14は、受信したユーザ-クライアント情報から、ユーザIDと認証情報とを取得する(S201)。そして、CPU14は、認証・アクセス権管理テーブル32に、取得したユーザIDを含むエントリがあるか否かを判定する(S202)。以下では、取得したユーザIDを含むエントリを、対象エントリと称する。
【0123】
認証・アクセス権管理テーブル32に対象エントリがない場合(S202 No)、CPU14は、認証の失敗を示す応答をサーバ装置3に送信し(S203)、認証・アクセス処理を終了する(終了)。なお、認証・アクセス権管理テーブル32に対象エントリがないことは、ユーザ-クライアントペアの認証が失敗したことに相当する。
【0124】
認証・アクセス権管理テーブル32に対象エントリがある場合(S202 Yes)、CPU14は、取得した認証情報が対象エントリ内の認証情報と一致したか否かを判定する(S204)。
【0125】
取得した認証情報が対象エントリ内の認証情報とは異なる場合(S204 No)、CPU14は、認証の失敗を示す応答をサーバ装置3に送信し(S203)、認証・アクセス処理を終了する(終了)。なお、認証・アクセス権管理テーブル32に対象エントリがあり、且つ取得した認証情報が対象エントリ内の認証情報とは異なることは、ユーザ-クライアントペアの認証が失敗したことに相当する。
【0126】
取得した認証情報が対象エントリ内の認証情報と一致した場合(S204 Yes)、CPU14は、受信したアクセス要求がリード要求であるか否かを判定する(S205)。なお、認証・アクセス権管理テーブル32に対象エントリがあり、且つ取得した認証情報が対象エントリ内の認証情報と一致したことは、ユーザ-クライアントペアの認証が成功したことに相当する。
【0127】
受信したアクセス要求がリード要求である場合(S205 Yes)、CPU14は、論理物理アドレス変換テーブル31を用いて、リード要求で指定されたLBA範囲に対応する物理アドレスを特定する(S206)。CPU14は、特定した物理アドレスに基づいて、不揮発性メモリ6からユーザデータを読み出す(S207)。そして、CPU14は、読み出したユーザデータをサーバ装置3に送信し(S208)、認証・アクセス処理を終了する(終了)。なお、CPU14は、読み出したユーザデータと共に、リード要求に基づく読み出しが完了したこと示す応答をサーバ装置3に送信してもよい。
【0128】
受信したアクセス要求がリード要求でない場合(S205 No)、すなわち、受信したアクセス要求がライト要求である場合、CPU14は、ライト要求に基づき、ユーザデータを不揮発性メモリ6に書き込む(S209)。CPU14は、ユーザデータが書き込まれた記憶位置を示す物理アドレスと、ライト要求で指定されたLBA範囲とのマッピングを示すように、論理物理アドレス変換テーブル31を更新する(S210)。そして、CPU14は、ライト要求に基づく書き込みが完了したことを示す応答をサーバ装置3に送信し(S211)、認証・アクセス処理を終了する(終了)。
【0129】
以上の認証・アクセス処理により、CPU14は、ユーザ-クライアントペアの認証が成功した場合に、アクセス要求に基づく処理を行うように制御できる。換言すると、CPU14は、ユーザ-クライアントペアの認証が失敗した場合には、アクセス要求に基づく処理を行わないように制御できる。これにより、CPU14は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0130】
なお、認証・アクセス処理のS205からS211までの手順は、アクセス制御処理に置き換えられてもよい。アクセス制御処理は、ユーザ-クライアントペアに対して、アクセス要求で指定されたLBA範囲へのアクセスが許可されているか否かに基づいて、アクセス要求に基づく処理の実行を制御する処理である。
【0131】
図11は、第1実施形態に係るストレージ装置5において実行されるアクセス制御処理の手順の例を示すフローチャートである。CPU14は、
図10を参照して前述した認証・アクセス処理のS204で、取得した認証情報が対象エントリの認証情報と一致した場合に、アクセス制御処理を実行する。なお、取得した認証情報は、受信したユーザ-クライアント情報から取得した認証情報である。対象エントリは、認証・アクセス権管理テーブル32において、受信したユーザ-クライアント情報から取得したユーザIDを含むエントリである。
【0132】
まず、CPU14は、受信したアクセス要求がリード要求であるか否かを判定する(S301)。
【0133】
受信したアクセス要求がリード要求である場合(S301 Yes)、CPU14は、対象エントリが、リード要求で指定されたLBA範囲に対するリード許可を示しているか否かを判定する(S302)。
【0134】
対象エントリが、リード要求で指定されたLBA範囲に対するリード許可を示していない場合(S302 No)、CPU14は、指定されたLBA範囲に対するリードが禁止されていることを示す応答をサーバ装置3に送信し(S303)、アクセス制御処理を終了する(終了)。
【0135】
対象エントリが、リード要求で指定されたLBA範囲に対するリード許可を示している場合(S302 No)、CPU14は、S304からS306までの手順を行って、アクセス制御処理を終了する(終了)。S304からS306までの手順は、前述した認証・アクセス処理のS206からS208までの手順と同様であるため詳細な説明は省略する。
【0136】
受信したアクセス要求がライト要求である場合(S301 No)、CPU14は、対象エントリが、ライト要求で指定されたLBA範囲に対するライト許可を示しているか否かを判定する(S307)。
【0137】
対象エントリが、ライト要求で指定されたLBA範囲に対するライト許可を示していない場合(S307 No)、CPU14は、指定されたLBA範囲に対するライトが禁止されていることを示す応答をサーバ装置3に送信し(S308)、アクセス制御処理を終了する(終了)。
【0138】
対象エントリが、ライト要求で指定されたLBA範囲に対するライト許可を示している場合(S307 No)、CPU14は、S309からS311までの手順を行って、アクセス制御処理を終了する(終了)。S309からS311までの手順は、前述した認証・アクセス処理のS209からS211までの手順と同様である。
【0139】
以上のアクセス制御処理により、CPU14は、ユーザ-クライアントペアに対して、アクセス要求で指定されたLBA範囲へのアクセスが許可されている場合に、アクセス要求に基づく処理を行うように制御できる。換言すると、CPU14は、ユーザ-クライアントペアに対して、アクセス要求で指定されたLBA範囲へのアクセスが許可されていない場合には、アクセス要求に基づく処理を行わないように制御できる。これにより、CPU14は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0140】
(第2実施形態)
第1実施形態では、要求、応答、データ等、ストレージ装置5とクライアント装置2間の伝送を、サーバ装置3を介して行ったのに対し、第2実施形態では、サーバ装置等他の装置を介さずに直接行うように構成されている点が異なる。すなわち、第2実施形態のメモリシステムでは、ストレージ装置5のホストI/F11にクライアント装置2が直接接続される点が異なる。
【0141】
以下、第2実施形態について詳細に説明する。
【0142】
図12は、第2実施形態に係るストレージ装置5がクライアント装置2に直接接続された情報処理システム1Bの全体構成例を示すブロック図である。情報処理システム1Bは、例えば、クライアント装置2と、ストレージ装置5とを含む。
【0143】
第2実施形態のストレージ装置5の構成は、
図2の第1実施形態のストレージ装置5の構成と同様である。第2実施形態のクライアント装置2の構成は、第1実施形態のクライアント装置2の構成とほぼ同様であるが、アカウント情報に基づいてアカウントの認証を行う構成をさらに有する点が異なる。アカウントの認証を行う構成は、第1実施形態においてサーバ装置3がアカウントの認証を行う構成と同様である。
【0144】
図13から
図17を参照して、情報処理システム1Bにおける処理を説明する。
【0145】
図13は、第2実施形態に係るストレージ装置5と、クライアント装置2間の登録処理の例を示すシーケンス図である。登録処理は、ユーザ-クライアント情報をストレージ装置5に登録する処理である。
【0146】
クライアント装置2には、アカウント情報が入力される。アカウント情報は、例えば、ユーザIDとパスワードとを含む。ユーザIDとパスワードとは、例えば、クライアント装置2に設けられた入力デバイスによって、ユーザによる操作に基づき入力される。
【0147】
クライアント装置2は、入力されたアカウント情報(以下、入力アカウント情報と称する)に基づいて、アカウントの認証を行う(F11)。より詳しくは、クライアント装置2は、予め記憶および設定された少なくとも1つのアカウント情報(以下、設定アカウント情報と称する)に、入力アカウント情報と一致するアカウント情報が含まれているか否かを判定する。入力アカウント情報のユーザIDと一致するユーザIDを含み、且つ入力アカウント情報のパスワードと一致するパスワードを含む設定アカウント情報がある場合、クライアント装置2は、アカウントの認証が成功したと判断する。入力アカウント情報のユーザIDと一致するユーザIDを含む設定アカウント情報がない場合、クライアント装置2は、アカウントの認証が失敗したと判断する。また、入力アカウント情報のユーザIDと一致するユーザIDを含むが、入力アカウント情報のパスワードとは異なるパスワードを含む設定アカウント情報がある場合、クライアント装置2は、アカウントの認証が失敗したと判断する。アカウントの認証が失敗した場合、ユーザ-クライアント情報のストレージ装置5への登録は行われない。
【0148】
ユーザ-クライアント情報のストレージ装置5への登録は、アカウントの認証が成功した場合に行われる。以下では、アカウントの認証が成功した場合について説明する。
【0149】
アカウントの認証が成功した場合、クライアント装置2は、認証情報を生成する(F12)。具体的には、クライアント装置2は、ユーザIDと、クライアント装置2の装置IDとからなるデータのハッシュ値を、認証情報として生成する。そして、クライアント装置2は、ユーザIDと生成した認証情報とを含むユーザ-クライアント情報を、ストレージ装置5に送信する(F13)。
【0150】
ストレージ装置5の登録処理部141は、クライアント装置2からユーザ-クライアント情報を受信すると、受信したユーザ-クライアント情報を認証・アクセス権管理テーブル32に登録する(F14)。具体的には、登録処理部141は、受信したユーザ-クライアント情報から、ユーザIDと認証情報とを取得する。そして、登録処理部141は、取得したユーザIDと認証情報とを含むエントリを、認証・アクセス権管理テーブル32に追加する。
【0151】
以上の登録処理により、クライアント装置2と、クライアント装置2を使用しているユーザとのペアに対応するユーザ-クライアント情報を、ストレージ装置5に登録できる。これにより、ストレージ装置5は、認証・アクセス権管理テーブル32を用いて、ユーザ-クライアントペアの認証を行うことができる。
【0152】
図14は、第2実施形態に係るストレージ装置5と、クライアント装置2間の認証・リード処理の例を示すシーケンス図である。認証・リード処理は、ユーザ-クライアントペアの認証とリード処理とを行う処理である。認証・リード処理は、クライアント装置2がストレージ装置5からのユーザデータの読み出しを要求する場合に行われる。
【0153】
G101のアカウントの認証に関する処理は、
図13を参照して前述した登録処理におけるF11の処理と同様である。なお、認証・リード処理を開始する前にアカウントの認証が行われ、認証が成功している場合、G101の処理は省略されてもよい。
【0154】
アカウントの認証が成功した後、クライアント装置2は、認証情報とリード要求とを生成する(G102)。クライアント装置2は、ユーザIDおよび生成した認証情報を含むユーザ-クライアント情報と、生成したリード要求とを、ストレージ装置5に送信する(G103)。
【0155】
ストレージ装置5の認証処理部142は、クライアント装置2からユーザ-クライアント情報とリード要求とを受信すると、認証・アクセス権管理テーブル32を用いて、受信したユーザ-クライアント情報に基づくユーザ-クライアントペアの認証を行う(G104)。
【0156】
ユーザ-クライアントペアの認証が成功した場合、認証処理部142は、受信したリード要求をリード/ライト処理部144に送出する(G105)。
【0157】
リード/ライト処理部144は、認証処理部142からリード要求を受け取ると、リード要求に基づいて、不揮発性メモリ6に対するリード処理を行う(G106)。そして、ストレージ装置5は、読み出したユーザデータをクライアント装置2に送信する(G107)。
【0158】
これにより、クライアント装置2は、リード要求を用いて読み出しを要求したユーザデータを取得できる。
【0159】
また、ユーザ-クライアントペアの認証が失敗した場合、認証処理部142は、ユーザ-クライアントペアの認証が失敗したことを示す応答を、クライアント装置2に送信する(G108)。なお、ストレージ装置5は、リード要求に基づくリード処理が失敗したことを示す応答を、クライアント装置2に送信してもよい。
【0160】
これにより、クライアント装置2は、ユーザ-クライアントペアの認証が失敗したことを、あるいはリード要求に基づくリード処理が失敗したことを、認識できる。
【0161】
以上の認証・リード処理により、ストレージ装置5は、ユーザ-クライアントペアの認証を行って、認証が成功した場合に、リード要求に基づくリード処理を行うことができる。ストレージ装置5が、認証・アクセス権管理テーブル32に登録されていないユーザ-クライアント情報と共にリード要求を受信したならば、リード要求に基づくリード処理は行われない。つまり、ストレージ装置5は、正当なユーザ-クライアント情報を有していないユーザ-クライアントペアからのリード要求を受け付けない。これにより、ストレージ装置5は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0162】
図15は、第2実施形態に係るストレージ装置5と、クライアント装置2間の認証・ライト処理の例を示すシーケンス図である。認証・ライト処理は、ユーザ-クライアントペアの認証とライト処理とを行う処理である。認証・ライト処理は、クライアント装置2がストレージ装置5へのユーザデータの書き込みを要求する場合に行われる。
【0163】
H101のアカウントの認証に関する処理は、
図13を参照して前述した登録処理におけるF11の処理と同様である。
【0164】
アカウントの認証が成功した後、クライアント装置2は、認証情報とライト要求とを生成する(H102)。クライアント装置2は、ユーザIDおよび生成した認証情報を含むユーザ-クライアント情報と、生成したライト要求と、書き込まれるユーザデータとを、ストレージ装置5に送信する(H103)。
【0165】
ストレージ装置5の認証処理部142は、クライアント装置2からユーザ-クライアント情報、ライト要求、およびユーザデータを受信すると、認証・アクセス権管理テーブル32を用いて、受信したユーザ-クライアント情報に基づくユーザ-クライアントペアの認証を行う(H104)。
【0166】
ユーザ-クライアントペアの認証が成功した場合、認証処理部142は、受信したライト要求およびユーザデータをリード/ライト処理部144に送出する(H105)。
【0167】
リード/ライト処理部144は、認証処理部142からライト要求およびユーザデータを受け取ると、ライト要求に基づいて、不揮発性メモリ6に対するライト処理を行う(H106)。そして、リード/ライト処理部144は、ライト要求に基づくライト処理が完了したことを示す応答を、サーバ装置3に送信する(H107)。
【0168】
これにより、クライアント装置2は、ライト要求に基づく書き込みが完了したことを認識する。
【0169】
また、ユーザ-クライアントペアの認証が失敗した場合、認証処理部142は、ユーザ-クライアントペアの認証が失敗したことを示す応答を、クライアント装置2に送信する(H107)。なお、認証処理部142は、ライト要求に基づくライト処理が失敗したことを示す応答を、クライアント装置2に送信してもよい。
【0170】
これにより、クライアント装置2は、ユーザ-クライアントペアの認証が失敗したことを、あるいはライト要求に基づくライト処理が失敗したことを、認識する。
【0171】
以上の認証・ライト処理により、ストレージ装置5は、ユーザ-クライアントペアの認証を行って、認証が成功した場合に、ライト要求に基づくライト処理を行うことができる。ストレージ装置5が、認証・アクセス権管理テーブル32に登録されていないユーザ-クライアント情報と共にライト要求を受信したならば、ライト要求に基づくライト処理は行われない。つまり、ストレージ装置5は、正当なユーザ-クライアント情報を有していないユーザ-クライアントペアからのライト要求を受け付けない。これにより、ストレージ装置5は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0172】
図16は、第2実施形態に係るストレージ装置5と、クライアント装置2間の登録処理の別の例を示すシーケンス図である。
図16に示す登録処理は、ユーザ-クライアント情報に加えて、アクセス権情報もストレージ装置5に登録する処理である。
【0173】
K11のアカウントの認証に関する処理は、
図13を参照して前述した登録処理におけるF11の処理と同様である。
【0174】
アカウントの認証が成功した後、クライアント装置2は、認証情報とアクセス権情報とを生成する(K12)。そして、クライアント装置2は、ユーザIDおよび生成した認証情報を含むユーザ-クライアント情報と、生成したアクセス権情報とを、ストレージ装置5に送信する(K13)。
【0175】
ストレージ装置5の登録処理部141は、クライアント装置2からユーザ-クライアント情報およびアクセス権情報を受信すると、受信したユーザ-クライアント情報およびアクセス権情報を認証・アクセス権管理テーブル32に登録する(K14)。
【0176】
以上の登録処理により、クライアント装置2と、クライアント装置2を使用しているユーザとのペア(ユーザ-クライアントペア)に対応するユーザ-クライアント情報と、当該ユーザ-クライアントペアに対応するアクセス権情報とを、ストレージ装置5に登録できる。これにより、ストレージ装置5は、認証・アクセス権管理テーブル32を用いて、ユーザ-クライアントペアの認証を行うことができる。また、ストレージ装置5は、認証・アクセス権管理テーブル32を用いて、認証が成功したユーザ-クライアントペアによる不揮発性メモリ6へのアクセスを、例えば、LBA範囲毎に制御できる。したがって、ストレージ装置5は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0177】
図17は、第2実施形態に係るストレージ装置5と、クライアント装置2間の認証・リード処理の別の例を示すシーケンス図である。
【0178】
L101からL104までの処理は、
図14を参照して前述した認証・リード処理におけるG101からG104までの処理と同様である。また、L104においてユーザ-クライアントペアの認証が失敗した場合の処理は、
図14を参照して前述した認証・リード処理におけるG108の処理と同様である。
【0179】
以下では、L104においてユーザ-クライアントペアの認証が成功した場合の処理について説明する。
【0180】
ユーザ-クライアントペアの認証が成功した場合、ストレージ装置5の認証処理部142は、クライアント装置2から受信したユーザ-クライアント情報およびリード要求をアクセス制御部143に送出する(L105)。
【0181】
アクセス制御部143は、認証処理部142からユーザ-クライアント情報およびリード要求を受け取ると、認証・アクセス権管理テーブル32を用いて、ユーザ-クライアントペアに対して、リード要求で指定されたLBA範囲へのリードが許可されているか否かを判定する(L106)。
【0182】
ユーザ-クライアントペアに対して、リード要求で指定されたLBA範囲へのリードが許可されている場合、アクセス制御部143は、リード要求をリード/ライト処理部144に送出する(L107)。
【0183】
リード/ライト処理部144は、アクセス制御部143からリード要求を受け取ると、リード要求に基づいて、不揮発性メモリ6に対するリード処理を行う(L108)。そして、リード/ライト処理部144は、読み出したユーザデータをクライアント装置2に送信する(L109)。
【0184】
これにより、クライアント装置2は、リード要求を用いて読み出しを要求したユーザデータを取得できる。
【0185】
また、ユーザ-クライアントペアに対して、リード要求で指定されたLBA範囲へのリードが許可されていない場合、アクセス制御部143は、リード要求で指定されたLBA範囲へのリードが禁止されていることを示す応答を、クライアント装置2に送信する(L110)。なお、ストレージ装置5は、リード要求に基づくリード処理が失敗したことを示す応答を、クライアント装置2に送信してもよい。
【0186】
これにより、クライアント装置2は、リード要求で指定されたLBA範囲へのリードが禁止されていることを、あるいはリード要求に基づくリード処理が失敗したことを、認識する。
【0187】
以上の認証・リード処理により、ストレージ装置5は、ユーザ-クライアントペアの認証を行って、認証が成功し、且つリード要求で指定されたLBA範囲へのリードが許可されている場合に、リード要求に基づくリード処理を行うことができる。ストレージ装置5が、認証・アクセス権管理テーブル32に登録されていないユーザ-クライアント情報と共にリード要求を受信したならば、リード要求に基づくリード処理が行われない。つまり、ストレージ装置5は、正当なユーザ-クライアント情報を有していないユーザ-クライアントペアからのリード要求を受け付けない。また、ストレージ装置5が、リードが許可されていないLBA範囲を指定したリード要求を受信したならば、リード要求に基づくリード処理は行われない。つまり、ストレージ装置5は、正当なユーザ-クライアント情報を有しているユーザ-クライアントペアからであっても、リードが許可されていないLBA範囲を指定したリード要求を受け付けない。
【0188】
なお、認証・ライト処理についても同様にして、ストレージ装置5は、ライトが許可されているLBA範囲を指定したライト要求のみに基づいて、ライト処理を行うことができる。つまり、ストレージ装置5は、ライトが許可されていないLBA範囲を指定したライト要求を受け付けない。
【0189】
これにより、ストレージ装置5は、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0190】
なお、第2実施形態のストレージ装置5において実行される処理の手順は、例えば、
図9から
図11のフローチャートを参照して前述した処理の手順において、サーバ装置3をクライアント装置2に置き換えることにより、実現される。
【0191】
以上説明したように、第1および第2実施形態によれば、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。ストレージ装置5の登録処理部141は、第1ユーザ識別情報と、第1ユーザ識別情報と第1クライアント装置の第1装置識別情報とから算出されるハッシュ値を含む第1認証情報とを管理する。認証処理部142は、外部装置から送信された、不揮発性メモリ6へのアクセス要求と、ユーザ識別情報、および認証情報を受信した場合、ユーザ識別情報が第1ユーザ識別情報と一致し、且つ認証情報が第1認証情報と一致するという第1条件を満たした場合、不揮発性メモリへのアクセス要求を受け付け、第1条件を満たさない場合、アクセス要求を拒否する。
【0192】
このように、ストレージ装置5は、外部装置から受信したユーザ識別情報が第1ユーザ識別情報と一致し、且つ外部装置から受信した認証情報が第1認証情報と一致するという第1条件を満たした場合に、アクセス要求を受け付ける。また、ストレージ装置5は、第1条件を満たさない場合、アクセス要求を拒否する。つまり、クライアント装置2が正当なユーザ識別情報および認証情報の組み合わせを送信していない場合、ストレージ装置5はアクセス要求を拒否する。これにより、不揮発性メモリ6に対するアクセスのセキュリティを強化できる。
【0193】
尚、クライアント装置2にユーザIDとパスワードを入力する例を説明したが、パスワードに代えて、或いは、パスワード入力に加えて指紋認証、顔認証、静脈認証可能な入力デバイスを導入することによって、ストレージ装置5にさらに強力なセキュリティ性を持たせ得ることは言うまでもない。
【0194】
ここで、比較例に係るストレージ装置5Cを含む情報処理システムについて説明する。比較例に係る情報処理システムは、ストレージ装置5C、クライアント装置2C、およびサーバ装置3Cを備える。
【0195】
クライアント装置2Cは、悪意あるユーザが使用しているクライアント装置である。悪意あるユーザは、サーバ装置3Cによって設定されたアカウント情報を不正に入手している。つまり、悪意あるユーザが使用するアカウント情報は、漏洩したアカウント情報である。
【0196】
サーバ装置3Cは、アカウント情報に基づいてアカウントの認証を行う。サーバ装置3Cは、アカウントの認証が成功した場合、クライアント装置2Cとストレージ装置5Cとの間で、要求、応答、データ等の伝送を中継する。サーバ装置3Cを介してクライアント装置2Cからストレージ装置5Cに送信される要求は、例えば、アクセス要求である。
【0197】
ストレージ装置5Cは、クライアント装置2Cからサーバ装置3Cを介して、アクセス要求を受信する。ストレージ装置5Cは、受信した要求に基づく処理を行う。なお、ストレージ装置5Cは、ユーザ-クライアントペアを認証する機能を有していない。
【0198】
図18は、比較例に係るストレージ装置5Cと、サーバ装置3C及びクライアント装置2C間の認証・リード処理の例を示すシーケンス図である。
図18に示す認証・リード処理は、漏洩したアカウント情報に基づく認証とリード処理とを行う処理である。なお、ここでは、クライアント装置2Cは悪意のある非正規のユーザが使用する非正規の装置であり、ストレージ装置5Cおよびサーバ装置3Cは正規のユーザが使用する正規の装置である、ものとする。
【0199】
まず、クライアント装置2Cは、漏洩したアカウント情報をサーバ装置3Cに送信する(M11)。アカウント情報は、例えば、クライアント装置2Cに設けられた入力デバイスによって、悪意あるユーザによる操作に基づき入力される。
【0200】
サーバ装置3Cは、クライアント装置2Cから受信したアカウント情報(受信アカウント情報)に基づいて、アカウントの認証を行う(M12)。より詳しくは、サーバ装置3Cは、予め記憶および設定された少なくとも1つのアカウント情報(設定アカウント情報)に、受信アカウント情報と一致するアカウント情報が含まれているか否かを判定する。受信アカウント情報は漏洩したアカウント情報であるので、サーバ装置3Cは、少なくとも1つの設定アカウント情報に、受信アカウント情報と一致するアカウント情報が含まれていると判断する。そして、サーバ装置3Cは、アカウントの認証が成功したことをクライアント装置2Cに通知する(M13)。
【0201】
クライアント装置2Cは、サーバ装置3Cからの通知を受け取ると、リード要求を生成する(M14)。クライアント装置2Cは、生成したリード要求をサーバ装置3Cに送信する(M15)。
【0202】
サーバ装置3Cは、クライアント装置2Cからユーザ-クライアント情報とリード要求とを受信すると、受信したユーザ-クライアント情報とリード要求とをストレージ装置5Cに送信する(M16)。
【0203】
ストレージ装置5Cは、サーバ装置3Cからリード要求を受け取ると、リード要求に基づいて、ストレージ装置5Cに設けられた不揮発性メモリに対するリード処理を行う(M17)。そして、ストレージ装置5Cは、読み出したユーザデータをサーバ装置3Cに送信する(M18)。
【0204】
サーバ装置3Cは、ストレージ装置5Cからユーザデータを受信すると、受信したユーザデータをクライアント装置2Cに送信する(M19)。
【0205】
これにより、クライアント装置2Cは、リード要求を用いて読み出しを要求したユーザデータを取得できる。
【0206】
同様にして、クライアント装置2Cは、漏洩したアカウント情報に基づくアカウントの認証が成功した後に、ライト要求を用いてストレージ装置5Cにユーザデータを書き込むこともできる。
【0207】
このように、クライアント装置2Cは、漏洩したアカウント情報を用いて、サーバ装置3Cによるアカウントの認証を成功させることができる。そのため、クライアント装置2Cは、ストレージ装置5Cからユーザデータを取得できる。また、クライアント装置2Cは、ストレージ装置5Cにユーザデータを書き込むことができる。したがって、比較例のサーバ装置3Cでアカウントを認証する方法のみでは、アカウント情報が漏洩した場合に、任意のクライアント装置2Cからストレージ装置5Cに対する不正アクセスが行われる可能性がある。
【0208】
第1および第2実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。これら実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
【0209】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0210】
1A…情報処理システム
2…クライアント装置
2-1…第1クライアント装置
2-2…第2クライアント装置
2-n…第nクライアント装置
3…サーバ装置
4…ネットワーク
5…ストレージ装置
6…不揮発性メモリ
7…RAM
8…コントローラ
10…バス
11…ホストI/F
12…メモリI/F
13…RAM I/F
14…CPU
141…登録処理部
142…認証処理部
143…アクセス制御部
144…リード/ライト処理部
31…論理物理アドレス変換テーブル
32…認証・アクセス権管理テーブル
321…第1エントリ
322…第2エントリ
323…第3エントリ
324…第4エントリ
B0…ブロック
B1…ブロック
B2…ブロック
Bm-1…ブロック
P0…ページ
Pn-1…ページ
1B…情報処理システム
2C…クライアント装置
3C…サーバ装置
5C…ストレージ装置