説明

記憶デバイス及び記憶デバイスアクセス制御方法

【課題】ホストコンピュータに外付け可能な記憶デバイスを複数のユーザで共有する場合に、各ユーザに割り当てられた記憶領域に対して他のユーザがアクセスすることを抑制可能な技術を提供することを目的とする。
【解決手段】記憶デバイスは、外付けデバイスとしてホストコンピュータに着脱可能であって、複数のユーザのそれぞれに割り当てられた割り当て済記憶領域を備えている。そして、この記憶デバイスは、ユーザの認証が成功した旨の認証成功情報をホストコンピュータ又は他の外部装置から受信すると、該ユーザに割り当てられている割り当て済記憶領域をマウントし、他のユーザに割り当てられている割り当て済記憶領域をマウントしない状態を模擬的に形成して、ホストコンピュータからのアクセスを制限する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホストコンピュータに外付けされた記憶デバイスに対して、各ユーザ毎にアクセスを制御する技術に関する。
【背景技術】
【0002】
近年、USB等のホットプラグをサポートしたインタフェースの発達により、フラッシュメモリやハードディスクドライブ等の外付け用の記憶デバイスを、コンピュータ(ホストコンピュータ)に接続して用いることが多い(下記特許文献1,2参照)。
【0003】
【特許文献1】特開2007−4251号公報
【特許文献2】特開2007−141083号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ホストコンピュータが複数のユーザによって利用される場合には、このホストコンピュータに外付けされた記憶デバイスの記憶領域は、複数のユーザによって共有される。このような場合に、記憶デバイスに記憶されている各ユーザ用のファイルやディレクトリに対して他のユーザからアクセスされないようにしたいという要請があった。そこで、各ユーザ毎に記憶領域を割り当て、この記憶領域内のディレクトリやファイルにアクセス権を設定するというアクセス制御方法が採用されていた。
【0005】
しかしながら、このようなアクセス制御方法を採用した場合であっても、ホストコンピュータで動作するオペレーションシステム(OS)からは、全てのユーザの記憶領域に対してアクセスすることは可能である。したがって、悪意のユーザによって、OSを介して他のユーザの記憶領域にアクセスされ、ファイルやディレクトリの改ざんや盗聴等が行われるおそれがあった。
【0006】
本発明は、ホストコンピュータに外付け可能な記憶デバイスを複数のユーザで共有する場合に、各ユーザに割り当てられた記憶領域に対して他のユーザがアクセスすることを抑制可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【0008】
[適用例1]外付けデバイスとしてホストコンピュータに着脱可能な記憶デバイスであって、複数のユーザのそれぞれに割り当てられた割り当て済記憶領域を備え、前記記憶デバイスは、ユーザの認証が成功した旨の認証成功情報を前記ホストコンピュータ又は他の外部装置から受信すると、該ユーザに割り当てられている割り当て済記憶領域をマウントし、他のユーザに割り当てられている割り当て済記憶領域をマウントしない状態を模擬的に形成して、前記ホストコンピュータからのアクセスを制限する、記憶デバイス。
【0009】
適用例1の記憶デバイスは、認証成功情報を受信すると、そのユーザに割り当てられている割り当て済記憶領域をマウントし、他のユーザに割り当てられている割り当て済記憶領域をマウントしない状態を模擬的に形成して、ホストコンピュータからのアクセスを制限するので、各ユーザ用の割り当て済記憶領域に対して、他のユーザがホストコンピュータからアクセスすることを抑制することができる。
【0010】
[適用例2]適用例1に記載の記憶デバイスであって、さらに、各ユーザ毎に、ユーザ識別情報と該ユーザの割り当て済記憶領域の構成に関する割り当て済記憶領域構成情報とを対応付けて記憶する構成情報記憶部と、論理デバイス部と、を備え、前記認証成功情報は、認証したユーザのユーザ識別情報を含み、前記論理デバイス部は、(i)前記記憶デバイスが前記ホストコンピュータに接続されると、前記記憶デバイスがリムーバブル記憶媒体を収容可能な記憶媒体処理装置であることを示すデバイス構成情報を前記ホストコンピュータに送信し、(ii)前記ホストコンピュータ又は前記外部装置から前記認証成功情報を受信すると、前記ホストコンピュータに対して前記記憶媒体処理装置に前記リムーバブル記憶媒体がマウントされた旨を通知し、(iii)さらに、前記ホストコンピュータから前記リムーバブル記憶媒体のデバイス構成情報を要求されると、前記受信した認証成功情報に含まれるユーザ識別情報の示すユーザについての割り当て済記憶領域に関するデバイス構成情報を、前記リムーバブル記憶媒体のデバイス構成情報として前記ホストコンピュータに送信する、記憶デバイス。
【0011】
このようにすることで、ホストコンピュータに対して、ユーザの認証成功後にそのユーザの割り当て済記憶領域をリムーバブル記憶媒体として模擬的に見せると共に、そのリムーバブル記憶媒体が記憶媒体処理装置に収容されてマウントされた状態を模擬的に見せることができる。したがって、ホストコンピュータからは、マウントされたリムーバブル記憶媒体、すなわち、そのユーザの割り当て済記憶領域にのみアクセスすることができ、他のユーザの割り当て済記憶領域にはアクセスできないようにアクセス制御を実現することができる。
【0012】
[適用例3]適用例2に記載の情報処理システムにおいて、前記リムーバブル記憶媒体はメモリカードであると前記ホストコンピュータが認識し、前記記憶媒体処理装置はメモリカードリーダ又はメモリカードリーダ/ライタであると前記ホストコンピュータが認識する、記憶デバイス。
【0013】
このようにすることで、ホストコンピュータに対して、ユーザの認証成功後にそのユーザの割り当て済記憶領域をメモリカードとして模擬的に見せると共に、そのメモリカードがメモリカードリーダ又はメモリカードリーダ/ライタに収容されてマウントされた状態を模擬的に見せることができる。
【0014】
[適用例4]適用例1ないし適用例3のいずれかに記載の情報処理システムにおいて、前記記憶デバイスと前記ホストコンピュータとは、USBインタフェース又はeSATAインタフェースで接続される、記憶デバイス。
【0015】
このようにすることで、ホストコンピュータは、USBインタフェース又はeSATAインタフェースを用いて記憶デバイスの備える記憶領域をマウントすることができる。
【0016】
なお、本発明は、種々の形態で実現することが可能であり、例えば、記憶デバイスアクセス制御方法等の形態で実現することができる。
【発明を実施するための最良の形態】
【0017】
以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
A.第1の実施例:
B.第2の実施例:
C.変形例:
【0018】
A.第1の実施例:
A1.システム構成:
図1は、本発明の一実施例としての記憶デバイスを適用した情報処理システムの装置構成を示す説明図である。この情報処理システム1000は、ホストコンピュータ200と、外付けの記憶デバイスとしてのUSBフラッシュメモリ100と、を備えている。ホストコンピュータ200は、USB(Universal Serial Bus)ポートを備えており、このUSBポートに、外付け記憶デバイスとしてのUSBフラッシュメモリ100を接続(外付け)することができる。図1の例では、USBフラッシュメモリ100は、ホストコンピュータ200の側面において上下2段に設けられた2つのUSBポートのうち、下段のポートに接続されている。なお、図1の例では、ホストコンピュータ200とUSBフラッシュメモリ100とは有線接続されているが、ワイヤレスUSB等による無線接続とすることもできる。
【0019】
図2は、図1に示すUSBフラッシュメモリ100の内部構成を示すブロック図である。このUSBフラッシュメモリ100は、CPU110と、USBバスインタフェース120と、EEPROM130と、SRAM140と、フラッシュメモリ150と、電圧制御部160と、内部インタフェース170と、汎用入出力ポート180と、を備えており、それぞれ内部バスで接続されている。
【0020】
USBバスインタフェース120は、USBの物理的な通信を実行する。EEPROM130には、予め領域指定テーブル138が格納されている。領域指定テーブル138の詳細については後述する。フラッシュメモリ150は、記憶デバイスとしての記憶領域を提供する。フラッシュメモリ150の記憶容量としては、例えば、2GBの容量とすることができる。内部インタフェース170は、フラッシュメモリ150とデータのやりとりを行うためのインタフェースを提供する。汎用入出力ポート180は、例えば、指紋認証装置等の付加デバイスを接続する場合に利用するパラレルインタフェースである。電圧制御部160は、USBバスインタフェース120を介して接続されたホストコンピュータ200から供給されるバスパワード電源を、例えば、3.3Vに調整して各部に供給する。
【0021】
EEPROM130には、USB制御用プログラム(図示省略)が記憶されており、CPU110は、このプログラムをSRAM140に展開して実行することで、USB論理デバイス部112として機能する。
【0022】
図3は、図2に示すフラッシュメモリ150の記憶領域を模式的に示す説明図である。フラッシュメモリ150は、制御カード用領域152と、情報処理システム1000の各ユーザに割り当てられている記憶領域と、空き領域159とを備えている。図3の例では、情報処理システム1000のユーザとして、3名のユーザA,B,Cが登録されており、ユーザAにユーザA領域154が割り当てられ、また、ユーザBにユーザB領域156が、ユーザCにユーザC領域158が、それぞれ割り当てられている。制御カード用領域152には、予め認証用プログラム152aと、ユーザ認証テーブル152bと、が格納されている。認証用プログラム152aは、情報処理システム1000にログインするユーザの認証を行うためのプログラムである。なお、「制御カード」については、後述する。
【0023】
図4は、図1に示すホストコンピュータ200の内部構成を示すブロック図である。このホストコンピュータ200は、CPU210と、ROM220と、USBバスインタフェース230と、RAM240と、ハードディスクドライブ260と、表示部270と、キーボード280と、を備えており、それぞれ内部バスで接続されている。USBバスインタフェース部230は、USBポートを有しており、USBフラッシュメモリ100を接続すると共に、図2におけるUSBバスインタフェース120と同様に、USBの物理的な通信を実行する。
【0024】
CPU210は、所定のオペレーティングシステムの下、前述の認証用プログラム152a(図3)をUSBフラッシュメモリ100から読み出して実行することで、ユーザ認証部212として機能する。ROM220には、USB通信用の各種プログラム(USBシステムソフトウェアやドライバソフトウェア)が格納されている。なお、オペレーティングシステムとしては、例えば、マイクロソフト社のウィンドウズ(登録商標)を採用することができる。
【0025】
図5は、ホストコンピュータ200とUSBフラッシュメモリ100との間でのデータのやりとりに関する機能の階層構造を示す説明図である。ホストコンピュータ200では、物理層における信号転送を制御するUSBバスインタフェース230が最下位となり、その上に、USBシステムソフトウェア232と、USBマスストレージクラスドライバ234と、オペレーティングシステム292と、ユーザ認証等のアプリケーション294と、がこの順番に配置されている。一方、USBフラッシュメモリ100では、USBバスインタフェース120が最下位となり、その上に、USB論理デバイス部112が配置されている。USB論理デバイス部112は、USB基本処理部112aと、専用マスストレージインタフェース112bと、を備えている。
【0026】
USB基本処理部112aは、エンドポイント114を備えており、ホストコンピュータ200が備えるUSBシステムソフトウェア232との間でメッセージパイプ301を形成してコントロール転送を実現している。ここで、「エンドポイント」とは、デバイス(USBフラッシュメモリ100)においてホストと通信を行うためのリソース(バッファ等)をいう。また、「メッセージパイプ」とは、双方向通信が可能な論理接続をいう。なお、このメッセージパイプ301はデフォルトパイプとも呼ばれ、ホスト(ホストコンピュータ200)とデバイス(USBフラッシュメモリ100)との間における各種設定/制御を行うための通信(コントロール転送)専用の論理接続である。
【0027】
専用マスストレージインタフェース112bとUSBマスストレージクラスドライバ234との間には、IN方向(ホストコンピュータ200に入力する方向)のストリームパイプ群312と、OUT方向(ホストコンピュータ200から出力する方向)のストリームパイプ群313とが設けられている。「ストリームパイプ」とは、コントロール転送以外の通信(バルク転送やインタラプト転送等)で用いられる片方向の論理接続をいう。なお、「バルク転送」は、比較的大容量データを一括して高速に転送する通信をいい、「インタラプト転送」は、小容量のデータを定期的に転送する通信をいう。そして、専用マスストレージインタフェース112bは、ストリームパイプ群312の各パイプに対応するエンドポイントからなるエンドポイント群116と、ストリームパイプ群313の各パイプに対応するエンドポイントからなるエンドポイント群118とを備えている。ここで、「専用マスストレージインタフェース112b」と呼ぶのは、標準的なマスストレージインタフェースインタフェースとは異なる機能を有しているからである。
【0028】
以上の構成を有する情報処理システム1000は、複数のユーザ(例えば、ユーザA,ユーザB,ユーザC)によって利用される。そして、情報処理システム1000では、各ユーザA,B,Cが他のユーザの記憶領域にアクセスできないようにアクセス制御を行っている。このアクセス制御の概要を、図6を用いて説明する。
【0029】
図6は、情報処理システム1000におけるアクセス制御のための模擬的な装置構成を示す説明図である。情報処理システム1000における実際の装置構成は、図1に示すようにホストコンピュータ200にUSBフラッシュメモリ100が外付けされている構成である。しかしながら、情報処理システム1000では、USBフラッシュメモリ100が論理的なマルチカードリーダ500として模擬的に振る舞い、この論理的なマルチカードリーダ500がホストコンピュータ200に外付けされている構成が模擬される。
【0030】
論理的なマルチカードリーダ500は2つのカードスロットSL1,SL2を備え、第1のスロットSL1にはアクセス制御を行うためのメモリカード(制御カード)MCmが常に挿入され、第2のスロットSL2には初期状態ではメモリカードが挿入されていない、という構成が模擬される。そして、各ユーザがUSBフラッシュメモリ100にアクセスする際には、各ユーザ用の論理的なメモリカード(ユーザAカードMCa,ユーザBカードMCb,ユーザCカードMCc)が、マルチカードリーダ500に挿入される構成が模擬される。ここで、ユーザAカードMCaは、フラッシュメモリ150におけるユーザA領域154に相当する。同様に、ユーザBカードMCbはユーザB領域156に、ユーザCカードMCcはユーザC領域158に、それぞれ相当する。以上のような模擬的な装置構成を取ることによって、各ユーザA,B,Cは、マルチカードリーダ500に挿入されている自己のメモリカードにのみアクセスすることができ、挿入されていない他のユーザのメモリカードにはアクセスすることができない。すなわち、各ユーザA,B,Cは、自己の記憶領域のみアクセスすることができ、他のユーザの記憶領域にはアクセスすることができず、アクセス制御が実現される。
【0031】
A2.接続時初期化処理:
図7は、USBフラッシュメモリ100がホストコンピュータ200に接続された際に実行される接続時初期化処理の手順を示すフローチャートである。図7において左側はホストコンピュータ200における手順を示し、右側はUSBフラッシュメモリ100における手順を示す。
【0032】
USBフラッシュメモリ100がホストコンピュータ200に接続されると、ホストコンピュータ200(図5)においてUSBバスインタフェース230は、電気的にデバイスの接続検出を行う(ステップ[1])。ステップ[2]では、USBソフトウェア232とUSB基本処理部112aとの間でUSBの初期化処理が実行される。この初期化処理は、USBの標準仕様に規定されている初期化処理である。具体的には、例えば、USBデバイスリクエストのやりとりや、ディスクリプタ(デバイスクラスやベンダIDやプロダクトID等)のやりとりが、メッセージパイプ301上のコントロール転送によって実行される。また、USBシステムソフトウェア232は、検出したデバイスにアドレスを割り当て、割り当てたアドレスをUSB基本処理部112aに通知する。例えば、アドレス「1」をUSBフラッシュメモリ100に割り当てることができる。
【0033】
一般に、USBフラッシュメモリのデバイスクラスとしては、「マスストレージクラス」が用いられる。USBフラッシュメモリ100でも、この「マスストレージクラス」が自己のデバイスクラスとして設定されている。したがって、ホストコンピュータ200は、USBフラッシュメモリ100からのディスクリプタを見ることで、USBフラッシュメモリがマスストレージクラスのデバイスであることを認識する。
【0034】
ステップ[3]では、ホストコンピュータ200において、OS292(図5)は、USBフラッシュメモリ100のデバイスクラスに応じたデバイスドライバをROM220(図4)から読み出してインストールする。このとき、例えば、ROM220に予め格納されているマスストレージクラス用の標準デバイスドライバをインストールすることもできる。ここまでの手順は、USBにおけるいわゆるプラグアンドプレイの手順である。
【0035】
ステップ[4](図7)では、ホストコンピュータ200において、OS292(図5)は、USBマスストレージクラスドライバ234及びストリームパイプ群312を介して、USBフラッシュメモリ100(アドレス=1)に対してドライブ構成を問い合わせる。ステップ[5]では、専用マスストレージインタフェース112bは、ドライブ構成として最大LUN(Logical Unit Number)を回答する。なお、「LUN」とは、1つのデバイスが有する論理的なデバイスを識別するための番号であり、最大LUNとは、論理的なデバイスに割り当てられたLUNのうち最大値をいう。上述したように、USBフラッシュメモリ100は、2スロットを有する論理的なマルチカードリーダ500として動作する。そして、図6に示すように、第1のスロットSL1にはLUNとして「0」が、第2のスロットSL2にはLUNとして「1」が割り当てられている。したがって、専用マスストレージインタフェース112bは、最大LUNとして「1」を回答する。
【0036】
ステップ[6](図7)では、OS292は、USBフラッシュメモリ100に対して各LUNについてのメディアの有無を問い合わせる。上述したように初期状態では、第1のスロットSL1には制御カードMCmが挿入され、第2のスロットSL2にはカードが挿入されていない構成が模擬される。そこで、ステップ[7]において、専用マスストレージインタフェース112bは、第1のスロットSL1(LUN0)にはメディアが挿入されており、第2のスロットSL2(LUN1)にはメディアが挿入されていない旨を回答する。
【0037】
ステップ[8]では、OS292は、USBフラッシュメモリ100に対して挿入されているメディア(LUN0)の容量や終了アドレス等のメディア情報を問い合わせる。ステップ[7]では、専用マスストレージインタフェース112bは、EEPROM130(図2)に格納されている領域指定テーブル138に基づいて、第1のスロットSL1に挿入されている制御カードMCmについてのメディア情報を回答する。
【0038】
図8は、領域指定テーブル138の記載内容の一例を示す説明図である。この領域指定テーブル138では、登録されているユーザ毎に、それぞれ、ユーザIDと、物理領域情報と、論理領域情報とが設定されている。ユーザIDとして、ユーザAには「1」が設定されており、また、ユーザBには「2」が、ユーザCには「3」が、それぞれ設定されている。なお、ユーザID「0」については、制御カードに対して設定されている。「物理領域情報」とは、フラッシュメモリ150内において各ユーザ用の記憶領域として割り当てられている物理的な記憶領域についてのトータル容量と、開始及び終了アドレスとをいう。また、「論理領域情報」とは、各物理領域内に設けられている論理的な領域(パーティション)についてのトータル容量と、開始及び終了アドレスとをいう。なお、図8の例では、物理領域のトータル容量と論理領域のトータル容量とが一致しているが、論理領域のトータル容量が比較的小さくなるように設定することもできる。各ユーザ毎のエントリは、各ユーザが情報処理システム1000に登録される際に設定される。なお、ユーザID「0」の制御カード用のエントリは、情報処理システム1000の初期設定時に予め設定されている。専用マスストレージインタフェース112bは、この領域指定テーブル138に基づいて制御カードMCmのメディア情報として、トータル容量「512MB」や終了アドレス等「22222222」を回答する。
【0039】
ステップ[10]では、OS292は、USBフラッシュメモリ100に対して挿入されているメディア(LUN0)のパーティション情報を問い合わせる。ステップ[11]では、専用マスストレージインタフェース112bは、前述の領域指定テーブル138(図8)に基づいて、第1のスロットSL1に挿入されている制御カードMCmについてのパーティション情報(トータル容量「512MB」や終了アドレス等「22222222」)を回答する。以上の接続時初期化処理の結果、OS292からは、ホストコンピュータ200にマルチカードリーダ500が接続され、第1のスロットSL1に制御カードMCmが挿入され、また、第2のスロットSL2にはカードが挿入されていない、という模擬的な構成が見えることとなる。そして、接続時初期化処理の後、ホストコンピュータ200とUSBフラッシュメモリ100とは、構成更新処理を繰り返し実行する。
【0040】
A3.構成更新処理:
図9は、接続時初期化処理の後実行される構成更新処理の手順を示すフローチャートである。ステップ[6],[7]は、上述した接続時初期化処理における処理と同じである。すなわち、ホストコンピュータ200は、既に把握している各LUNの示す論理的なデバイス(第1のスロットSL1,第2のスロットSL2)に対し、メディアが挿入されているか否かを問い合わせる。それに対して専用マスストレージインタフェース112bが回答する。
【0041】
ステップ[21]では、OS292は、ステップ[7]における専用マスストレージインタフェース112bからの回答に基づいて構成変更があったか否かを判定する。そして、構成変更なし、すなわち、第1のスロットSL1に制御カードMCmが挿入され、第2のスロットSL2にカードが挿入されていない状態のままである場合には、再びステップ[6],[7]が実行される。一方、第2のスロットSL2にいずれかのユーザのカードが挿入された場合には、OS292は、構成変更があったものと判定する。そして、この場合、上述したステップ[8],[9]及び[10],[11]が実行され、OS292は、新たに挿入されたカードについてのメディア情報及びパーティション情報を得ることができる。そして、再びステップ[6]に戻って構成更新処理が繰り返し実行される。このようにして、ホストコンピュータ200において、USBフラッシュメモリ100(論理的なマルチカードリーダ500)の構成の更新を検出するようにしている。
【0042】
A4.アクセス制御処理:
図10は、情報処理システム1000において実行されるアクセス制御処理の手順を示すフローチャートである。いずれかのユーザが、ホストコンピュータ200において、第1のスロットSL1内の制御カードMCmにアクセスして認証用プログラム152aの起動用アイコン(図示省略)を選択して実行したものとする。そうすると、認証用プログラム152aが起動し、ユーザ認証部212(図4)は、ユーザ認証用画面を表示部270に表示させる。
【0043】
図11は、表示部270に表示されるユーザ認証用画面を示す説明図である。このユーザ認証用画面W1は、ユーザ名入力欄C1と、パスワード入力欄C2と、OKボタンB1とを備えている。ユーザがユーザ名入力欄C1にユーザ名を入力し、パスワード入力欄C2にパスワードを入力してOKボタンB1を押下すると、ホストコンピュータ200とUSBフラッシュメモリ100との間でアクセス制御処理が実行される。なお、図11の例では、ユーザBがユーザ認証用画面W1にユーザ名及びパスワードを入力している。
【0044】
アクセス制御処理(図10)が開始されると、ホストコンピュータ200(図4)においてユーザ認証部212は、制御カード用領域152内のユーザ認証テーブル152bを参照して認証処理を行う(ステップ[31])。
【0045】
図12は、ステップ[31]において参照されるユーザ認証テーブル152bの内容を示す説明図である。このユーザ認証テーブル152bでは、登録されているユーザ毎に、それぞれ、ユーザ名と、パスワードと、ユーザIDとが設定されている。したがって、ステップ[31]において、ユーザ認証部212は、入力されたユーザ名及びパスワードと、各ユーザ毎のエントリと、を比較して認証処理を行う。
【0046】
ステップ[32](図10)では、ユーザ認証部212は、認証が成功したか否かを判定する。そして、ユーザ認証部212は、認証が成功したと判定した場合に、認証が成功した旨を示す情報として、認証したユーザのユーザIDをUSBフラッシュメモリ100に送信する(ステップ[33])。例えば、前述のようにユーザBについて認証が成功した場合には、ユーザID「2」がUSBフラッシュメモリ100に送信される(図12参照)。
【0047】
上述したように、ホストコンピュータ200とUSBフラッシュメモリ100との間では、構成更新処理が繰り返し実行されている(図9参照)。専用マスストレージインタフェース112bは、ユーザIDを受信した(図10、ステップ[33])後において、構成更新処理の一手順としてメディアの有無の問い合わせがあると(ステップ[6])、今度は、第1のスロットSL1に加えて第2のスロットSL2(LUN1)にもメディアが挿入されていると回答する(ステップ[7])。
【0048】
そうすると、ステップ[21]において、OS292は、構成変更があったと判定するので、新たに挿入されたメディアについて、メディア情報の問い合わせ(ステップ[8])及びパーティション情報の問い合わせ(ステップ[10])を行う。これらの問い合わせに対して、専用マスストレージインタフェース112bは、領域指定テーブル138(図8)に基づいて回答する(ステップ[9]、[11])。例えば、前述のようにユーザBについてのユーザID「2」を受信している場合、専用マスストレージインタフェース112bは、領域指定テーブル138のユーザBのエントリ(図8、上から3段目)に基づき、メディア情報として、トータル容量「256MB」や終了アドレス「44444444」等を回答する。また、パーティション情報として、トータル容量「256MB」や終了アドレス「11111111」等を回答する。
【0049】
したがって、OS292からは、ホストコンピュータ200に論理的なマルチカードリーダ500が接続され、第1のスロットSL1に制御カードMCmが挿入され、また、第2のスロットSL2にユーザBカードMCbが挿入されている、という模擬的な構成が見えることとなる。したがって、ユーザBは、OSを介してユーザBカードMCbにアクセスすることができる。換言すると、ユーザBは、USBフラッシュメモリ100内のユーザB領域156に、OS292を介してアクセスすることができる。なお、OS292からは、他のユーザのメモリカード(ユーザAカードMCa,ユーザCカードMCc)は論理的なマルチカードリーダ500に挿入されてないように見える。したがって、OS292は、これらのメモリカードMCa,MCcにアクセスすることはできない。換言すると、OS292からは、ユーザA領域154やユーザC領域158にアクセスすることができないこととなる。それゆえ、ユーザBは他のユーザA,Cに割り当てられたこれら記憶領域154,158にアクセスすることは不可能であり、アクセス制御が実現されている。なお、ユーザBが情報処理システム1000を使用する場合に限らず、ユーザA,Cが使用する場合についても同様にアクセス制御が実現される。
【0050】
以上説明したように、情報処理システム1000では、USBフラッシュメモリ100が論理的なマルチカードリーダ500として振る舞い、この論理的なマルチカードリーダ500に各ユーザ専用の論理的なメモリカードを挿入する構成を模擬している。したがって、各ユーザは、自己のメモリカード、すなわち、フラッシュメモリ150において自己のために割り当てられた記憶領域にアクセスすることができると共に、他のユーザ用のメモリカード、すなわち、他のユーザのために割り当てられた記憶領域にアクセスできない。また、情報処理システム1000では、OS292からは、他のユーザ用の論理的なメモリカードは見えないようにしている。したがって、悪意のユーザがOS292を介して他のユーザ用の記憶領域にアクセスすることを抑制することができる。
【0051】
B.第2の実施例:
図13は、第2の実施例における情報処理システムでのアクセス制御のための模擬的な装置構成を示す説明図である。第2の実施例におけるUSBフラッシュメモリ100は、USB−HUB及びそのUSB−HUBの配下に接続された複数のカードリーダとして模擬的に振舞う点において第1の実施例と異なり、実際の装置構成は図1に示す情報処理システム1000と同じである。
【0052】
具体的には、第2の実施例では、USBフラッシュメモリ100は、ホストコンピュータ200に外付けされた論理的なUSB−HUB600及びこの論理的なUSB−HUB600のポートに接続された2つの論理的なカードリーダ610,611として模擬的に振る舞う。これら2つのカードリーダ610,611は、それぞれ1つのスロットを備えている。そして、カードリーダ610には、上述の制御カードMCmが常に挿入されている。カードリーダ611には、ユーザAカードMCaと、ユーザBカードMCbと、ユーザCカードMCcとが、それぞれ挿入可能である。なお、初期状態においては、第1の実施例と同様に、ユーザ用の3つのカードMCa,MCb,MCcは、いずれもカードリーダ611に挿入されていない。
【0053】
図14は、第2の実施例におけるホストコンピュータ200とUSBフラッシュメモリ100との間でのデータのやりとりに関する機能の階層構造を示す説明図である。上述した模擬的な装置構成の相違に伴い、ホストコンピュータ200及びUSBフラッシュメモリ100の機能の階層構造は第1の実施例(図5)と異なる。
【0054】
具体的には、ホストコンピュータ200では、USBシステムソフトウェア232の上位に、USBマスストレージクラスドライバ234に加えてUSBハブクラスドライバ235が配置されている。USBフラッシュメモリ100では、USB論理デバイス部122において、USB−HUB600(図13)に対応するUSB基本処理部124a及び専用ハブインタフェース122bが設けられている。また、2つの論理的なカードリーダ610,611のそれぞれに対応する、2つのUSB基本処理部122cと2つの専用マスストレージインタフェース122dとが設けられている。USB基本処理部124aはエンドポイント131を備えている。専用ハブインタフェース122bは、IN方向のエンドポイント群132と、OUT方向のエンドポイント群133とを備えている。また、2つのUSB基本処理部122cは、それぞれエンドポイント134を備えている。2つの専用マスストレージインタフェース122dは、それぞれIN方向のエンドポイント群135と、OUT方向のエンドポイント群136とを備えている。
【0055】
図15及び図16は、第2の実施例における接続時初期化処理の手順を示すフローチャートである。ステップ[1](図15)では、第1の実施例と同様にUSBフラッシュメモリ100の接続が検出される。ステップ[2]では、第1の実施例と異なり、USB−HUB600に対応するUSB基本処理部124a(図14)が初期化処理を実行する。したがって、デバイスクラスとして「ハブクラス」がUSBシステムソフトウェア232に通知される。なお、ハブクラスのディスクリプションとしてポート数が規定されており、図13の例では、USB−HUB600は2ポートを有することから、ポート数「2」がUSBシステムソフトウェア232に通知される。本実施例では、USB−HUB600に接続されるデバイス数は、各ユーザの模擬的なカード用のカードリーダ611と、制御カードMCm用のカードリーダ610との合計2台である。したがって、USB−HUB600のポート数は「2」としたが、3以上の任意のポート数であるものとしてディスクリプションを設定することもできる。なお、この初期化処理において、USB−HUB600にはアドレス「1」が割り当てられる。
【0056】
ステップ[3]では、ホストコンピュータ200のOS292は、ハブクラスのデバイスドライバをインストールする。このとき、ホストコンピュータ200は、ROM220に予め格納されているハブクラス用の標準デバイスドライバをインストールすることもできる。ここまでは、USB−HUB600を接続デバイスとする初期化処理の手順であり、引き続き、各ポートに接続されている論理的なカードリーダ610,611を接続デバイスとする初期化処理が実行される。
【0057】
ステップ[1a]では、USBシステムソフトウェア232は、USB−HUB600の第1のポートにデバイスが接続されたことを検出する。これは、USB基本処理部124aがUSBシステムソフトウェア232に対して、デバイスの接続をコントロール転送で通知することによって検出する。ステップ[2a]では、USBシステムソフトウェア232とカードリーダ610に対応するUSB基本処理部122cとの間で、初期化処理が実行される。このとき、USB基本処理部122cは、デバイスクラスとして「マスストレージクラス」を通知する。またこのカードリーダ610には、アドレス「2」が割り当てられる。ステップ[3a]では、ホストコンピュータ200のOS292は、マスストレージクラスに対応するデバイスドライバをインストールする。
【0058】
以下、第1実施例と同様に、USBシステムソフトウェア232とUSB基本処理部122cとの間で、ドライブ構成の問い合わせ及び回答(ステップ[4a],[5a])と、メディア有無問い合わせ及び回答(ステップ[6a],[7a])とが行われる。上述したように、カードリーダ610は1つだけスロットを有し、初期状態において制御カードMCmが挿入されているので、最大LUNとして「0」を、第1のスロット(LUN0)にメディアが挿入されている旨を回答する。この場合、第1の実施例と同様に、挿入されているメディアについて、メディア情報の問い合わせ及び回答(ステップ[8a],[9a])と、パーティション情報の問い合わせ及び回答(ステップ[10a],[11a])が実行される。
【0059】
続いて、ステップ[1b]〜[3b](図16)では、USB−HUB600の第2のポートについて、前述のステップ[1a]〜[3a](図15)と同様の処理が行われる。その結果、カードリーダ611にはアドレス「3」が割り当てられ、ホストコンピュータ200において、マスストレージクラスに対応するデバイスドライバがインストールされる。続いて、ステップ[4b]〜[7b]では、USB−HUB600の第2のポートについて、前述のステップ[4a]〜[7a](図15)と同様の処理が行われる。初期状態においていずれのカードもカードリーダ611には挿入されていない。したがって、ステップ[7b]の処理の終了によって第2のポートについての初期化処理は終了し、接続時初期化処理は完了する。
【0060】
以上の処理の結果、OS292からは、図13に示す模擬的な装置構成が見えることとなる。接続時初期化処理の後、第1の実施例と同様に、ホストコンピュータ200とUSBフラッシュメモリ100との間では構成更新処理(図9)が繰り返し実行されている。なお、この構成更新処理は、論理的な3つのデバイス(USB−HUB600と、2台のカードリーダ610,611)のそれぞれについて実行される。そして、いずれかのユーザがユーザ認証画面(図11)から認証を試みると、第1の実施例と同様に、アクセス制御処理(図10)が開始される。そして、ユーザ認証が成功すると、カードリーダ611に、認証されたユーザに対応するメモリカードが挿入されたものとしてOS292に認識させることができる。したがって、第1の実施例と同様なアクセス制御を実現することができる。
【0061】
C.変形例:
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0062】
C1.変形例1:
上述した各実施例では、各ユーザに割り当てられた記憶領域をそれぞれ論理的なメモリカードとし、この論理的なメモリカードが論理的なマルチカードリーダ500或いは論理的な(シングル)カードリーダ611に挿入される、という構成を模擬するものであった。本発明はこれに限定されるものではなく、例えば、各ユーザに割り当てられた記憶領域を論理的なCD−ROMとし、この論理的なCD−ROMが論理的なCD−ROMドライブに挿入される、という構成を模擬することもできる。或いは、論理的なMOが、論理的なMOドライブに挿入される、という構成を模擬することもできる。また、各ユーザに割り当てられた記憶領域をそれぞれ論理的な外付けハードディスクドライブとし、ユーザ認証が成功した場合に、そのユーザに対応する外付けハードディスクドライブがUSBハブに接続される(ホストコンピュータにマウントされる)、という構成を模擬することもできる。すなわち、一般には、各ユーザに割り当てられた記憶領域をそれぞれ論理的な記憶媒体とし、ユーザ認証が成功した場合に、そのユーザに対応する論理的な記憶媒体がホストコンピュータにマウントされる、という構成を模擬することができる。
【0063】
C2.変形例2:
上述した各実施例では、論理的なマルチカードリーダ500又は論理的なカードリーダ611に挿入される論理的なメモリカードは、各ユーザ専用のものであったが、これに限らず、複数のユーザからなるグループ専用のものとしてもよい。具体的には、フラッシュメモリ150においてグループ単位で記憶領域を割り当てておく。そして、ユーザがログインした場合には、そのユーザが属するグループに割り当てた記憶領域に相当する論理的なメモリカードがマルチカードリーダ500又はカードリーダ611に挿入された構成を模擬するようにする。このようにすることで、グループ内においては、フラッシュメモリ150内の記憶領域(ファイルやディレクトリ)を共有することができると共に、他グループのメンバからのアクセスを制限することができる。
【0064】
C3.変形例3:
上述した各実施例では、認証プログラムの格納場所はフラッシュメモリ150内であったが、これに限らず、ホストコンピュータ200の有するハードディスク260(図4)やROM220内であってもよい。この場合、第1の実施例では、制御カードMCmは不要となり、したがって、論理的なマルチカードリーダ500に代えて1スロットのみを備える論理的なカードリーダを備える構成を模擬することもできる。また、第2の実施例では、制御カードMCm及び制御カードMCm用のカードリーダ610を省略することもできる。
【0065】
C4.変形例4:
上述した各実施例では、ユーザ認証は、ホストコンピュータ200側において実行されていたが、これに代えて、フラッシュメモリ150側において実行されるようにしてもよい。具体的には、例えば、フラッシュメモリ150(図2)の汎用入出力ポート180に認証装置(例えば、パスワードによる認証装置や、指紋や虹彩等の生体的特徴による認証装置など)を接続し、この認証装置を用いてユーザ認証を行うこともできる。この場合、ユーザ認証が成功した場合には、認証が成功した旨を示す情報としてのユーザIDを、この認証装置からUSB論理デバイス部112(専用マスストレージインタフェース112b)に送信することもできる。すなわち、一般には、情報処理システム1000内のいずれかにおいてユーザ認証を行い、認証が成功した場合にはユーザIDをUSB論理デバイス部112に送信する任意の構成を採用することができる。なお、登録しているユーザが一人であれば、ユーザIDに代えて、認証が成功した旨をUSB論理デバイス部112に通知する構成とすることもできる。この構成においても、当該ユーザがログインした場合に、このユーザに割り当てられた記憶領域に相当する論理的なメモリカードを論理的なカードリーダに挿入する構成を模擬することができる。
【0066】
C5.変形例5:
上述した各実施例では、ホストコンピュータ200とフラッシュメモリ150との接続インタフェースはUSBであったが、USBに限らず、外付けデバイスの接続を検出可能な任意のインタフェースを採用することができる。具体的には、例えば、eSATA(external Serial ATA)やIEEE1394等を採用することもできる。
【0067】
C6.変形例6:
上述した各実施例では、模擬的な装置構成(図6,図13)において採用されるデバイスは、2スロットのマルチカードリーダ500及び2台のシングルカードリーダ610,611であったが、これに代えて、3スロット以上のマルチカードリーダ/ライタ及び3台以上のシングルカードリーダ/ライタを採用することもできる。このような構成とすることで、より複雑なユーザ管理を実現できる。
【0068】
C7.変形例7:
上述した実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【図面の簡単な説明】
【0069】
【図1】本発明の一実施例としての記憶デバイスを適用した情報処理システムの装置構成を示す説明図。
【図2】図1に示すUSBフラッシュメモリ100の内部構成を示すブロック図。
【図3】図2に示すフラッシュメモリ150の記憶領域を模式的に示す説明図。
【図4】図1に示すホストコンピュータ200の内部構成を示すブロック図。
【図5】ホストコンピュータ200とUSBフラッシュメモリ100との間でのデータのやりとりに関する機能の階層構造を示す説明図。
【図6】情報処理システム1000におけるアクセス制御のための模擬的な装置構成を示す説明図。
【図7】USBフラッシュメモリ100がホストコンピュータ200に接続された際に実行される接続時初期化処理の手順を示すフローチャート。
【図8】領域指定テーブル138の記載内容の一例を示す説明図。
【図9】接続時初期化処理の後に実行される構成更新処理の手順を示すフローチャート。
【図10】情報処理システム1000において実行されるアクセス制御処理の手順を示すフローチャート。
【図11】表示部270に表示されるユーザ認証用画面を示す説明図。
【図12】ステップ[31]において参照されるユーザ認証テーブル152bの内容を示す説明図。
【図13】第2の実施例における情報処理システムでのアクセス制御のための模擬的な装置構成を示す説明図。
【図14】第2の実施例におけるホストコンピュータ200とUSBフラッシュメモリ100との間でのデータのやりとりに関する機能の階層構造を示す説明図。
【図15】第2の実施例における接続時初期化処理の手順を示すフローチャート。
【図16】第2の実施例における接続時初期化処理の手順を示すフローチャート。
【符号の説明】
【0070】
100…USBフラッシュメモリ
110…CPU
112…USB論理デバイス部
112a…USB基本処理部
112b…専用マスストレージインタフェース
114,132,134…エンドポイント
116,118,132,133,135,136…エンドポイント群
120…USBバスインタフェース
122b…専用ハブインタフェース
122d…専用マスストレージインタフェース
130…EEPROM
138…領域指定テーブル
140…SRAM
150…フラッシュメモリ
152…制御カード用領域
152a…認証用プログラム
152b…ユーザ認証テーブル
159…領域
160…電源制御部
170…内部インタフェース
180…汎用入出力ポート
200…ホストコンピュータ
210…CPU
212…ユーザ認証部
220…ROM
230…USBバスインタフェース
240…RAM
260…ハードディスクドライブ
270…表示部
280…キーボード
292…オペレーティングシステム(OS)
294…アプリケーション
232…USBシステムソフトウェア
234…USBマスストレージクラスドライバ
301…メッセージパイプ
312…ストリームパイプ群
313…ストリームパイプ群
500…マルチカードリーダ
610,611…カードリーダ
1000…情報処理システム
MCa…ユーザAカード
MCb…ユーザBカード
MCc…ユーザCカード
MCm…制御カード
W1…ユーザ認証用画面
C1…ユーザ名入力欄
C2…パスワード入力欄
SL1…第1のスロット
SL2…第2のスロット

【特許請求の範囲】
【請求項1】
外付けデバイスとしてホストコンピュータに着脱可能な記憶デバイスであって、
複数のユーザのそれぞれに割り当てられた割り当て済記憶領域を備え、
前記記憶デバイスは、ユーザの認証が成功した旨の認証成功情報を前記ホストコンピュータ又は他の外部装置から受信すると、該ユーザに割り当てられている割り当て済記憶領域をマウントし、他のユーザに割り当てられている割り当て済記憶領域をマウントしない状態を模擬的に形成して、前記ホストコンピュータからのアクセスを制限する、記憶デバイス。
【請求項2】
請求項1に記載の記憶デバイスであって、さらに、
各ユーザ毎に、ユーザ識別情報と該ユーザの割り当て済記憶領域の構成に関する割り当て済記憶領域構成情報とを対応付けて記憶する構成情報記憶部と、
論理デバイス部と、
を備え、
前記認証成功情報は、認証したユーザのユーザ識別情報を含み、
前記論理デバイス部は、
(i)前記記憶デバイスが前記ホストコンピュータに接続されると、前記記憶デバイスがリムーバブル記憶媒体を収容可能な記憶媒体処理装置であることを示すデバイス構成情報を前記ホストコンピュータに送信し、
(ii)前記ホストコンピュータ又は前記外部装置から前記認証成功情報を受信すると、前記ホストコンピュータに対して前記記憶媒体処理装置に前記リムーバブル記憶媒体がマウントされた旨を通知し、
(iii)さらに、前記ホストコンピュータから前記リムーバブル記憶媒体のデバイス構成情報を要求されると、前記受信した認証成功情報に含まれるユーザ識別情報の示すユーザについての割り当て済記憶領域に関するデバイス構成情報を、前記リムーバブル記憶媒体のデバイス構成情報として前記ホストコンピュータに送信する、記憶デバイス。
【請求項3】
請求項2に記載の情報処理システムにおいて、
前記リムーバブル記憶媒体はメモリカードであると前記ホストコンピュータが認識し、
前記記憶媒体処理装置はメモリカードリーダ又はメモリカードリーダ/ライタであると前記ホストコンピュータが認識する、記憶デバイス。
【請求項4】
請求項1ないし請求項3のいずれかに記載の情報処理システムにおいて、
前記記憶デバイスと前記ホストコンピュータとは、USBインタフェース又はeSATAインタフェースで接続される、記憶デバイス。
【請求項5】
外付けデバイスとしてホストコンピュータに着脱可能な記憶デバイスに対して、前記ホストコンピュータからのアクセスを制御するためのアクセス制御方法であって、
(a)前記記憶デバイスにおいて、複数のユーザにそれぞれ割り当て済記憶領域を割り当てる工程と、
(b)前記記憶デバイスにおいて、ユーザの認証が成功した旨の認証成功情報を前記ホストコンピュータ又は他の外部装置から受信すると、該ユーザに割り当てられている割り当て済記憶領域をマウントし、他のユーザに割り当てられている割り当て済記憶領域をマウントしない状態を模擬的に形成して、前記ホストコンピュータからのアクセスを許容する工程と、
を備える記憶デバイスアクセス制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2009−87124(P2009−87124A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−257394(P2007−257394)
【出願日】平成19年10月1日(2007.10.1)
【出願人】(390040187)株式会社バッファロー (378)
【Fターム(参考)】