(57)【要約】  起動用ＵＳＢペリフェラル１２ａと、記憶用ＵＳＢペリフェラル１２ｂと、制御用ＵＳＢペリフェラル１２ｃと、を有するＵＳＢ可搬装置１が、ホスト装置２に接続されると、起動用ＵＳＢペリフェラル１２ａを読み込み可能デバイスとして認識させ、認識された読み込み可能デバイス内の切替用プログラム１１がホスト装置２に読み込まれて実行されることで、ホスト装置２から切替指示を受信し、読み込み可能デバイスを解除させるとともに、記憶用ＵＳＢペリフェラル１２ｂを読み書き可能デバイスとして認識させることを特徴とする。
2009090734.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に接続されることで実行される切替用プログラムを格納するＵＳＢ可搬装置であって、
前記ＵＳＢ可搬装置は、前記切替用プログラムを記憶する起動用ＵＳＢ機能部と、前記ホスト装置からの読み書きを許可する記憶用ＵＳＢ機能部と、前記ホスト装置に認識させるデバイスを切り替える制御用ＵＳＢ機能部と、を有し、
前記制御用ＵＳＢ機能部は、
前記ホスト装置に前記ＵＳＢ可搬装置が接続されると、前記起動用ＵＳＢ機能部を読み込み可能デバイスとして認識させ、
認識された前記読み込み可能デバイス内の前記切替用プログラムが前記ホスト装置に読み込まれて実行されることで、前記ホスト装置から切替指示を受信し、
前記読み込み可能デバイスを解除させるとともに、前記記憶用ＵＳＢ機能部を読み書き可能デバイスとして認識させることを特徴とする
ＵＳＢ可搬装置。
【請求項２】
ホスト装置に接続されることで実行される切替用プログラムを格納するＵＳＢ可搬装置であって、
前記ＵＳＢ可搬装置は、前記切替用プログラムを記憶する起動用メモリチップと、前記ホスト装置からの読み書きを許可する記憶用メモリチップと、前記ホスト装置に認識させるデバイスを切り替えるコントローラと、を有し、
前記コントローラは、
前記ホスト装置に前記ＵＳＢ可搬装置が接続されると、前記起動用メモリチップを読み込み可能デバイスとして認識させ、
認識された前記読み込み可能デバイス内の前記切替用プログラムが前記ホスト装置に読み込まれて実行されることで、前記ホスト装置から切替指示を受信し、
前記読み込み可能デバイスを解除させるとともに、前記記憶用メモリチップを読み書き可能デバイスとして認識させることを特徴とする
ＵＳＢ可搬装置。
【請求項３】
ホスト装置に接続されることで実行される切替用プログラムを格納するＵＳＢ可搬装置であって、
前記ＵＳＢ可搬装置は、前記切替用プログラムを記憶する起動用仮想領域と、前記ホスト装置からの読み書きを許可する記憶用仮想領域と、を１つ以上のメモリチップ上に構築するとともに、前記ホスト装置に認識させるデバイスを切り替えるコントローラと、を有し、
前記コントローラは、
前記ホスト装置に前記ＵＳＢ可搬装置が接続されると、前記起動用仮想領域を読み込み可能デバイスとして認識させ、
認識された前記読み込み可能デバイス内の前記切替用プログラムが前記ホスト装置に読み込まれて実行されることで、前記ホスト装置から切替指示を受信し、
前記読み込み可能デバイスを解除させるとともに、前記記憶用仮想領域を読み書き可能デバイスとして認識させることを特徴とする
ＵＳＢ可搬装置。
【請求項４】
請求の範囲第１項ないし第３項のいずれか１項に記載のＵＳＢ可搬装置であって、
前記ＵＳＢ可搬装置は、前記読み込み可能デバイスが前記ホスト装置に認識されてから、その読み込み可能デバイスが解除されるまでの期間に、前記読み込み可能デバイスへの書き込み命令を無視するアクセス制御を実行することを特徴とするＵＳＢ可搬装置。
【請求項５】
請求の範囲第１項ないし第４項のいずれか１項に記載のＵＳＢ可搬装置であって、
前記ＵＳＢ可搬装置は、物理的に書き込み不可である記憶媒体を、前記読み込み可能デバイスとして認識させることを特徴とするＵＳＢ可搬装置。
【請求項６】
請求の範囲第１項ないし第５項のいずれか１項に記載のＵＳＢ可搬装置であって、
前記ホスト装置に実行される前記切替用プログラムは、所定ユーザを認証することを要件として、前記切替指示を送信するように前記ホスト装置を制御することを特徴とするＵＳＢ可搬装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ可搬装置に関する。
【背景技術】
【０００２】
ＵＳＢ（Universal Serial Bus）メモリなどの書き換え可能型の可搬媒体が、普及している。可搬媒体は、ホストであるＰＣ（Personal Computer）に接続され、そのＰＣから認識された後、ＰＣからメモリの記憶領域の記憶内容に対して書き換えアクセスを受ける。【０００３】
物理的に１つの可搬媒体の中に、複数の記憶領域を持つ形態が存在する。
特許文献１には、大容量の記憶領域を論理的に分割した複数の分割領域それぞれについて、分割領域の論理ユニット番号を用いることにより、記憶領域を有効に活用する旨が記載されている。
特許文献２には、アクセス制限領域内へのアクセスに対して、認証を行うことで、アクセス制限を実現する旨が記載されている。
特許文献３には、ＯＳ（Operating System）の仕様に対応して、その仕様に適合しない記憶領域を隠す旨が記載されている。
特許文献４，５には、特権ユーザには利用できるがその他のユーザには利用できないように、可搬媒体内の仮想デバイスの接続を制御する旨が記載されている。
【特許文献１】特開平７−２３４７５９号公報
【特許文献２】特開平１０−２８９１５９号公報
【特許文献３】特開２００５−１１５６３６号公報
【特許文献４】特開２００６−２０２３３９号公報
【特許文献５】特開２００６−２８６００８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
自動実行プログラムが格納されている可搬媒体を活用する場合がある。その自動実行プログラムは、ホストに接続されると、ホストに読み込まれ実行される。この自動実行プログラムは、例えば、可搬媒体の配布前に配布元によりあらかじめ記録されている。よって、自動実行プログラムそのものに対して、不正に削除や書き換えが行われることは、配布元にとって望ましくない。特許文献２の手法では、アクセス制限領域内への不正アクセスに対して、認証を行うことで対処しているが、アクセス量が多い可搬媒体では、認証処理に伴う性能劣化（例えば、転送速度の低下）が発生してしまう。【０００５】
また、従来の技術では、ＯＳ上に複数のドライブが認識されてしまう。その結果、ユーザの利便性がよくなかった。【０００６】
そこで、本発明は、前記した問題を解決し、自動実行プログラムが格納されている可搬媒体について、ユーザの利便性を高めつつ不正アクセスを防止することを主な目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するため、本発明は、ホスト装置に接続されることで実行される切替用プログラムを格納するＵＳＢ可搬装置であって、
前記ＵＳＢ可搬装置が、前記切替用プログラムを記憶する起動用ＵＳＢ機能部と、前記ホスト装置からの読み書きを許可する記憶用ＵＳＢ機能部と、前記ホスト装置に認識させるデバイスを切り替える制御用ＵＳＢ機能部と、を有し、
前記制御用ＵＳＢ機能部が、
前記ホスト装置に前記ＵＳＢ可搬装置が接続されると、前記起動用ＵＳＢ機能部を読み込み可能デバイスとして認識させ、
認識された前記読み込み可能デバイス内の前記切替用プログラムが前記ホスト装置に読み込まれて実行されることで、前記ホスト装置から切替指示を受信し、
前記読み込み可能デバイスを解除させるとともに、前記記憶用ＵＳＢ機能部を読み書き可能デバイスとして認識させることを特徴とする。
その他の手段は、後記する。
【発明の効果】
【０００８】
本発明によれば、自動実行プログラムが格納されている可搬媒体について、ユーザの利便性を高めつつ不正アクセスを防止することが可能になった。
【図面の簡単な説明】
【０００９】
【図１】本発明の各実施形態に関するＵＳＢシステムを示す構成図である。
【図２】本発明の第１実施形態に関するＵＳＢペリフェラルごとにデバイスを認識させるＵＳＢ可搬装置を示す構成図である。
【図３】本発明の第１実施形態に関するＵＳＢペリフェラルごとにデバイスを認識させる動作を示すフローチャートである。
【図４】本発明の第２実施形態に関するメモリチップごとにデバイスを認識させるＵＳＢ可搬装置を示す構成図である。
【図５】本発明の第２実施形態に関するメモリチップごとにデバイスを認識させる動作を示すフローチャートである。
【図６】本発明の第３実施形態に関する仮想領域ごとにデバイスを認識させるＵＳＢ可搬装置を示す構成図である。
【図７】本発明の第３実施形態に関する仮想領域ごとにデバイスを認識させる動作を示すフローチャートである。
【図８】本発明の第３実施形態に関する複数のメモリチップを用いて仮想領域を構築する旨を示す説明図である。
【符号の説明】
【００１０】
１      ＵＳＢ可搬装置
１１    切替用プログラム
１２    ＵＳＢペリフェラル
１２ａ  起動用ＵＳＢペリフェラル
１２ｂ  記憶用ＵＳＢペリフェラル
１２ｃ  制御用ＵＳＢペリフェラル
１３    メモリチップ
１３ａ  起動用メモリチップ
１３ｂ  記憶用メモリチップ
１４ａ  起動用仮想領域
１４ｂ  記憶用仮想領域
１５    コントローラ
１６    インタフェース部
１７    ＣＰＵ
１８ａ  ＵＳＢハブ
１８ｂ  ポートスイッチ
１９    ＵＳＢインタフェース
２      ホスト装置
２１    ＵＳＢホストドライバ部
２２    切替用プログラム実行部
２９    ＵＳＢポート
【発明を実施するための最良の形態】
【００１１】
以下に、本発明が適用されるプログラム配信システムの一実施形態について、図面を参照して詳細に説明する。【００１２】
図１（ａ）は、ＵＳＢシステムを示す構成図である。ＵＳＢシステムは、ＵＳＢ規格におけるホスト（host）機能を実現するホスト装置２と、ＵＳＢ規格におけるファンクション（function）機能を実現するＵＳＢ可搬装置１とを接続することにより構成される。接続は、ＵＳＢ可搬装置１のＵＳＢインタフェース１９を、ホスト装置２のＵＳＢポート２９に挿入することで実現される。【００１３】
ＵＳＢ可搬装置１は、例えば、記憶手段としてのフラッシュメモリと、制御処理を行う制御回路チップ（後記する図１（ｂ）のＣＰＵ１７など）とを少なくとも備えるＵＳＢメモリとして構成される。なお、ＵＳＢ可搬装置１の記憶手段は、他にも、ＨＤＤ（Hard Disk Drive）や、着脱可能なＳＤカードなどの媒体として構成されてもよい。【００１４】
図１（ｂ）は、ＵＳＢ可搬装置１およびホスト装置２の内部を示す構成図である。ホスト装置２は、ＵＳＢホストドライバ部２１、切替用プログラム実行部２２、および、ＵＳＢポート２９を有する。【００１５】
ホスト装置２は、演算処理を行う際に用いられる記憶手段としてのメモリ２３と、前記演算処理を行う演算処理装置とを少なくとも備えるコンピュータとして構成される。なお、メモリ２３は、ＲＡＭ（Random Access Memory）などにより構成される。演算処理は、ＣＰＵ（Central Processing Unit）２４によって構成される演算処理装置が、メモリ２３上のプログラムを実行することで、実現される。
ホスト装置２は、データなどを表示させるための表示装置２５を有する。
ホスト装置２は、ＵＳＢポート２９を介して、接続されるキーボードやマウスなどの入力装置３からのデータ入力を受け付ける。【００１６】
ＵＳＢホストドライバ部２１は、ＵＳＢポート２９に接続されるＵＳＢ可搬装置１を検知すると、検知したＵＳＢ可搬装置１のハードウェア資源をホスト装置２のＯＳ（Operating System）に使用させるため認識（enumeration）を実行する。つまり、ＵＳＢホストドライバ部２１は、ＵＳＢ規格におけるＨＣＤ（Host Controller Driver）として機能する。【００１７】
切替用プログラム実行部２２は、ＵＳＢ可搬装置１の記憶手段に記憶されている切替用プログラム１１をホスト装置２のＣＰＵが、ＯＳからの指示に従ってメモリ上に読み込んで、実行することにより実現される。
切替用プログラム実行部２２は、ＵＳＢ可搬装置１の内部に存在する複数の記憶手段（起動用記憶手段１ａ、記憶用記憶手段１ｂ）のうち、マスストレージデバイスとして認識する１つの記憶手段を切り替える。マスストレージデバイスとして認識された記憶手段は、ホスト装置２のＯＳからアクセス可能な記憶手段である。
起動用記憶手段１ａは、読み込み可能デバイスとして認識されると、ＣＰＵ１７が、起動用記憶手段１ａの内部に格納する切替用プログラム１１をホスト装置２に読み込ませる。
記憶用記憶手段１ｂは、読み書き可能デバイスとして認識されると、ＣＰＵ１７が、ホスト装置２からのアクセス指示に従い、記憶用記憶手段１ｂの内部に格納するデータへの読み書きを実行する。
なお、切替用プログラム実行部２２は、記憶手段を切り替えるときに、既に認識されている所定の記憶手段を取り外した後、別の記憶手段を認識する。これにより、ユーザが手動でマスストレージデバイスの取り外し操作を入力する必要が無くなり、便利である。【００１８】
以上説明したＵＳＢシステムの構成は、以下に説明する第１実施形態〜第３実施形態で共通するものである。以下、実施形態ごとに詳細な構成および動作を説明する。各実施形態は、それぞれ次のような特徴がある。
・第１実施形態は、ＵＳＢ可搬装置１の記憶手段として、ＵＳＢペリフェラル（peripheral）ごとにデバイスを認識させるものである。なお、ＵＳＢペリフェラルは、ＵＳＢホストドライバ部２１から１つのデバイスアドレス（０〜１２７のうちのいずれかの値）が割り当てられるＵＳＢのファンクション（function）を構成するＵＳＢ機能部である。
・第２実施形態は、ＵＳＢ可搬装置１の記憶手段として、ＵＳＢペリフェラル内のメモリチップごとにデバイスを認識させるものである。
・第３実施形態は、ＵＳＢ可搬装置１の記憶手段として、ＵＳＢペリフェラル内のメモリチップ上に構築された仮想領域ごとにデバイスを認識させるものである。なお、仮想領域は、１つの論理ユニット番号（ＬＵＮ：Logical Unit Number）が割り当てられる記憶領域の単位である。【００１９】
以下、第１実施形態を説明する。図２は、ＵＳＢペリフェラルごとにデバイスを認識させるＵＳＢ可搬装置１を示す構成図である。ＵＳＢ可搬装置１は、各ＵＳＢペリフェラル（起動用ＵＳＢペリフェラル１２ａ、記憶用ＵＳＢペリフェラル１２ｂ、制御用ＵＳＢペリフェラル１２ｃ）が、ＵＳＢハブ１８ａの下流側に接続されている。なお、図１の起動用記憶手段１ａは起動用ＵＳＢペリフェラル１２ａに該当し、図１の記憶用記憶手段１ｂは記憶用ＵＳＢペリフェラル１２ｂに該当する。【００２０】
各ＵＳＢペリフェラルへの接続線には、ＵＳＢペリフェラルを特定するためのポート番号（図中吹き出しで示す０，１，２）が１つずつ割り当てられている。ＵＳＢハブ１８ａは、ポートスイッチ１８ｂを有する。ポートスイッチ１８ｂは、起動用ＵＳＢペリフェラル１２ａ、または、記憶用ＵＳＢペリフェラル１２ｂのうち、いずれか１つのＵＳＢペリフェラルと、ＵＳＢインタフェース１９とを接続する。そのため、ポートスイッチ１８ｂは、各ポートの状態を、「有効状態」または「無効状態」のいずれかに設定する。
ポート「０」の制御用ＵＳＢペリフェラル１２ｃは、本実施形態では常時「有効状態」としている。
ポート「１」の起動用ＵＳＢペリフェラル１２ａ、および、ポート「２」の記憶用ＵＳＢペリフェラル１２ｂは、それぞれ「有効状態」または「無効状態」のスイッチ操作が可能であり、互いに反対の状態となる。つまり、本実施形態では、双方の状態がともに「有効状態」となることはない。【００２１】
起動用ＵＳＢペリフェラル１２ａは、記憶手段としてのメモリチップ１３と、そのメモリチップ１３へのデータの読み書きを制御するコントローラ１５と、を有する。起動用ＵＳＢペリフェラル１２ａのメモリチップ１３には、切替用プログラム１１が記憶されており、この切替用プログラム１１は、オートランの対象となるプログラムである。【００２２】
記憶用ＵＳＢペリフェラル１２ｂは、記憶手段としてのメモリチップ１３と、そのメモリチップ１３へのデータの読み書きを制御するコントローラ１５と、を有する。【００２３】
制御用ＵＳＢペリフェラル１２ｃは、インタフェース部１６と、コントローラ１５と、を有する。
インタフェース部１６は、ポートスイッチ１８ｂに対して、起動用ＵＳＢペリフェラル１２ａ、または、記憶用ＵＳＢペリフェラル１２ｂのうち、接続する１つのＵＳＢペリフェラルを指定するための命令を切替用プログラム実行部２２からＵＳＢインタフェース１９を介して受ける。
コントローラ１５は、インタフェース部１６が受けた命令をポートスイッチ１８ｂに反映させる。
インタフェース部１６は、ホスト装置２と制御用の通信を行うために、例えば、ＵＳＢ規格におけるＨＩＤ（Human Interface Device）クラスとしてＵＳＢホストドライバ部２１に認識される。【００２４】
図３は、ＵＳＢペリフェラルごとにデバイスを認識させる動作を示すフローチャートである。【００２５】
まず、ホスト装置２に挿入される前のＵＳＢ可搬装置１は、自装置のモードを起動モードに初期化する（Ｓ１１）。起動モードでは、ポート「０」の制御用ＵＳＢペリフェラル１２ｃ、および、ポート「１」の起動用ＵＳＢペリフェラル１２ａが「有効状態」となっており、ポート「２」の記憶用ＵＳＢペリフェラル１２ｂが「無効状態」となる。【００２６】
ＵＳＢ可搬装置１のＵＳＢインタフェース１９がホスト装置２のＵＳＢポート２９に挿入されると（Ｓ１２ｃ）、ＵＳＢホストドライバ部２１は、挿入されたＵＳＢ可搬装置１を検知する（Ｓ１２ｂ）。この検知を契機として、ＵＳＢホストドライバ部２１は、検知したＵＳＢ可搬装置１の認識（enumeration）を実行する。具体的には、ＵＳＢホストドライバ部２１は、ＵＳＢ可搬装置１に対して利用可能であるデバイスを問い合わせると、ＵＳＢ可搬装置１は、その応答として「有効状態」となっている起動用ＵＳＢペリフェラル１２ａを読み込み可能デバイスとして通知する（Ｓ１３ｃ）とともに、その読み込み可能デバイス内に格納されている切替用プログラム１１をオートラン（自動実行）プログラムとして通知する。【００２７】
応答を受けたＵＳＢホストドライバ部２１は、起動用ＵＳＢペリフェラル１２ａを読み込み可能デバイスとして認識する（Ｓ１３ｂ）。そして、ＵＳＢホストドライバ部２１は、認識した読み込み可能デバイス内の切替用プログラム１１を自動実行プログラムとして起動する（Ｓ１４ｂ）ための転送命令の送信を契機に、ＵＳＢ可搬装置１は切替用プログラム１１をホスト装置２に転送し（Ｓ１４ｃ）、ホスト装置２は転送された切替用プログラム１１の実行を開始することで、切替用プログラム実行部２２を構築する。【００２８】
切替用プログラム実行部２２は、読み込み可能デバイスの取り外しをＵＳＢホストドライバ部２１に指示すると（Ｓ１５ａ）、ＵＳＢホストドライバ部２１はその指示を受け、Ｓ１３ｂで認識した読み込み可能デバイスを取り外す（Ｓ１５ｂ）。なお、切替用プログラム１１は、既にホスト装置２に転送され、切替用プログラム実行部２２として実行されているので、この取り外し処理によって実行は中断しない。【００２９】
切替用プログラム実行部２２は、Ｓ１５ｂの取り外しを行った旨の応答を契機に、ＵＳＢ可搬装置１に対して、Ｓ１１の起動モードから記憶モードへと切り替えるように指示する（Ｓ１６ａ）。ＵＳＢ可搬装置１は、その指示に従い、自身のモードを記憶モードへと切り替える（Ｓ１６ｃ）。記憶モードでは、ポート「０」の制御用ＵＳＢペリフェラル１２ｃ、および、ポート「２」の記憶用ＵＳＢペリフェラル１２ｂが「有効状態」となっており、ポート「１」の起動用ＵＳＢペリフェラル１２ａが「無効状態」となっている。
記憶モードへの切替により、制御用ＵＳＢペリフェラル１２ｃのコントローラ１５は、ポートスイッチ１８ｂに対して、起動用ＵＳＢペリフェラル１２ａから記憶用ＵＳＢペリフェラル１２ｂへと接続先を変更するように指示する。【００３０】
切替用プログラム実行部２２は、ＵＳＢホストドライバ部２１に対して、再度ＵＳＢ可搬装置１のデバイスを認識させるために、ＵＳＢポート２９に挿入されるイベント（Ｓ１２ｃ）と同様の検知イベントを発生させる（Ｓ１７ａ）。ＵＳＢホストドライバ部２１は、この検知イベントを受け、既に挿入されているＵＳＢ可搬装置１を再び検知する（Ｓ１７ｂ，Ｓ１７ｃ）。この検知を契機として、ＵＳＢホストドライバ部２１は、検知したＵＳＢ可搬装置１の２回目の認識（enumeration）を実行する。【００３１】
２回目の認識（enumeration）では、ＵＳＢホストドライバ部２１は、ＵＳＢ可搬装置１に対して利用可能であるデバイスを問い合わせると、ＵＳＢ可搬装置１は、その応答として「有効状態」となっている記憶用ＵＳＢペリフェラル１２ｂを読み書き可能デバイスとして通知する（Ｓ１８ｃ）。応答を受けたＵＳＢホストドライバ部２１は、記憶用ＵＳＢペリフェラル１２ｂを読み書き可能デバイスとして認識する（Ｓ１８ｂ）。【００３２】
以後、ホスト装置２は、認識した記憶用ＵＳＢペリフェラル１２ｂに対して読み書きを行うことができるが、取り外した起動用ＵＳＢペリフェラル１２ａはＵＳＢホストドライバ部２１から一切見えなくなっているので、読み書きの対象にはならずに済む。
以上説明した本実施形態によれば、起動用ＵＳＢペリフェラル１２ａの読み込み可能な領域と、記憶用ＵＳＢペリフェラル１２ｂの読み書き可能な領域とを切り替えることにより、起動用ＵＳＢペリフェラル１２ａへの不正アクセスを抑制しつつ、双方の領域を効率的に使用できる。【００３３】
以下、第２実施形態を説明する。図４は、メモリチップごとにデバイスを認識させるＵＳＢ可搬装置１を示す構成図である。ＵＳＢ可搬装置１は、ＵＳＢペリフェラル１２を有する。ＵＳＢペリフェラル１２は、各メモリチップ（起動用メモリチップ１３ａ、記憶用メモリチップ１３ｂ）と、各メモリチップへの読み書きを制御するコントローラ１５と、コントローラ１５の状態を制御するインタフェース部１６と、を有する。なお、図１の起動用記憶手段１ａは起動用メモリチップ１３ａに該当し、図１の記憶用記憶手段１ｂは記憶用メモリチップ１３ｂに該当する。【００３４】
コントローラ１５は、起動用メモリチップ１３ａ、および、記憶用メモリチップ１３ｂのうち、いずれか１つのメモリチップと、ＵＳＢインタフェース１９とを接続する。そのため、コントローラ１５は、各メモリチップの状態を、「有効状態」または「無効状態」のいずれかに設定する。
起動用メモリチップ１３ａ、および、記憶用メモリチップ１３ｂは、それぞれ「有効状態」または「無効状態」のスイッチ操作が可能であり、互いに反対の状態となる。つまり、本実施形態では、双方の状態がともに「有効状態」となることはない。【００３５】
起動用メモリチップ１３ａには、切替用プログラム１１が記憶されており、この切替用プログラム１１は、オートランの対象となるプログラムである。【００３６】
インタフェース部１６は、切替用プログラム実行部２２から起動用メモリチップ１３ａ、および、記憶用メモリチップ１３ｂのうち、接続する１つのメモリチップを指定するための命令を切替用プログラム実行部２２からＵＳＢインタフェース１９を介して受け、コントローラ１５に反映する。インタフェース部１６は、ホスト装置２と制御用の通信を行うために、ＵＳＢ規格におけるＨＩＤ（Human Interface Device）クラスとしてＵＳＢホストドライバ部２１に認識される。【００３７】
図５は、メモリチップごとにデバイスを認識させる動作を示すフローチャートである。【００３８】
まず、ホスト装置２に挿入される前のＵＳＢ可搬装置１は、自装置のモードを起動モードに初期化する（Ｓ１１）。起動モードでは、起動用メモリチップ１３ａが「有効状態」となっており、記憶用メモリチップ１３ｂが「無効状態」となる。【００３９】
ＵＳＢ可搬装置１のＵＳＢインタフェース１９がホスト装置２のＵＳＢポート２９に挿入されると（Ｓ１２ｃ）、ＵＳＢホストドライバ部２１は、挿入されたＵＳＢ可搬装置１を検知する（Ｓ１２ｂ）。この検知を契機として、ＵＳＢホストドライバ部２１は、検知したＵＳＢ可搬装置１の認識（enumeration）を実行する。具体的には、ＵＳＢホストドライバ部２１は、ＵＳＢ可搬装置１に対して利用可能であるデバイスを問い合わせると、ＵＳＢ可搬装置１は、その応答として「有効状態」となっている起動用メモリチップ１３ａを読み込み可能デバイスとして通知する（Ｓ２３ｃ）とともに、その読み込み可能デバイス内に格納されている切替用プログラム１１をオートラン（自動実行）プログラムとして通知する。【００４０】
応答を受けたＵＳＢホストドライバ部２１は、起動用メモリチップ１３ａを読み込み可能デバイスとして認識する（Ｓ２３ｂ）。そして、ＵＳＢホストドライバ部２１は、認識した読み込み可能デバイス内の切替用プログラム１１を自動実行プログラムとして起動する（Ｓ１４ｂ）ための転送命令の送信を契機に、ＵＳＢ可搬装置１は切替用プログラム１１をホスト装置２に転送し（Ｓ１４ｃ）、ホスト装置２は転送された切替用プログラム１１の実行を開始することで、切替用プログラム実行部２２を構築する。【００４１】
切替用プログラム実行部２２は、読み込み可能デバイスの取り外しをＵＳＢホストドライバ部２１に指示すると（Ｓ１５ａ）、ＵＳＢホストドライバ部２１はその指示を受け、Ｓ２３ｂで認識した読み込み可能デバイスを取り外す（Ｓ１５ｂ）。なお、切替用プログラム１１は、既にホスト装置２に転送され、切替用プログラム実行部２２として実行されているので、この取り外し処理によって実行は中断しない。【００４２】
切替用プログラム実行部２２は、Ｓ１５ｂの取り外しを行った旨の応答を契機に、ＵＳＢ可搬装置１に対して、Ｓ１１の起動モードから記憶モードへと切り替えるように指示する（Ｓ１６ａ）。ＵＳＢ可搬装置１は、その指示に従い、自身のモードを記憶モードへと切り替える（Ｓ１６ｃ）。記憶モードでは、記憶用メモリチップ１３ｂが「有効状態」となっており、起動用メモリチップ１３ａが「無効状態」となっている。
記憶モードへの切替により、コントローラ１５は、起動用メモリチップ１３ａから記憶用メモリチップ１３ｂへと接続先を切り替える。【００４３】
切替用プログラム実行部２２は、ＵＳＢホストドライバ部２１に対して、再度ＵＳＢ可搬装置１のデバイスを認識させるために、ＵＳＢポート２９に挿入されるイベント（Ｓ１２ｃ）と同様の検知イベントを発生させる（Ｓ１７ａ）。ＵＳＢホストドライバ部２１は、この検知イベントを受け、既に挿入されているＵＳＢ可搬装置１を再び検知する（Ｓ１７ｂ，Ｓ１７ｃ）。この検知を契機として、ＵＳＢホストドライバ部２１は、検知したＵＳＢ可搬装置１の２回目の認識（enumeration）を実行する。【００４４】
２回目の認識（enumeration）では、ＵＳＢホストドライバ部２１は、ＵＳＢ可搬装置１に対して利用可能であるデバイスを問い合わせると、ＵＳＢ可搬装置１は、その応答として「有効状態」となっている記憶用メモリチップ１３ｂを読み書き可能デバイスとして通知する（Ｓ２８ｃ）。応答を受けたＵＳＢホストドライバ部２１は、記憶用メモリチップ１３ｂを読み書き可能デバイスとして認識する（Ｓ２８ｂ）。【００４５】
以後、ホスト装置２は、認識した記憶用メモリチップ１３ｂに対して読み書きを行うことができるが、取り外した起動用メモリチップ１３ａはＵＳＢホストドライバ部２１から一切見えなくなっているので、読み書きの対象にはならずに済む。
以上説明した本実施形態によれば、起動用メモリチップ１３ａの読み込み可能な領域と、記憶用メモリチップ１３ｂの読み書き可能な領域とを切り替えることにより、起動用メモリチップ１３ａへの不正アクセスを抑制しつつ、双方の領域を効率的に使用できる。【００４６】
以下、第３実施形態を説明する。図６は、仮想領域ごとにデバイスを認識させるＵＳＢ可搬装置１を示す構成図である。ＵＳＢ可搬装置１は、ＵＳＢペリフェラル１２を有する。ＵＳＢペリフェラル１２は、複数の仮想領域（起動用仮想領域１４ａ、記憶用仮想領域１４ｂ）が構築されるメモリチップ１３と、メモリチップ１３への読み書きを制御するコントローラ１５と、コントローラ１５の状態を制御するインタフェース部１６と、を有する。なお、図１の起動用記憶手段１ａは起動用仮想領域１４ａに該当し、図１の記憶用記憶手段１ｂは記憶用仮想領域１４ｂに該当する。【００４７】
コントローラ１５は、起動用仮想領域１４ａ、または、記憶用仮想領域１４ｂのうち、いずれか１つの仮想領域と、ＵＳＢインタフェース１９とを接続する。そのため、コントローラ１５は、各仮想領域の状態を、「有効状態」または「無効状態」のいずれかに設定する。
起動用仮想領域１４ａ、および、記憶用仮想領域１４ｂは、それぞれ「有効状態」または「無効状態」のスイッチ操作が可能であり、互いに反対の状態となる。つまり、本実施形態では、双方の状態がともに「有効状態」となることはない。【００４８】
起動用仮想領域１４ａには、切替用プログラム１１が記憶されており、この切替用プログラム１１は、オートランの対象となるプログラムである。【００４９】
インタフェース部１６は、切替用プログラム実行部２２から起動用仮想領域１４ａ、および、記憶用仮想領域１４ｂのうち、接続する１つの仮想領域を指定するための命令を切替用プログラム実行部２２からＵＳＢインタフェース１９を介して受け、コントローラ１５に反映する。インタフェース部１６は、ホスト装置２と制御用の通信を行うために、ＵＳＢ規格におけるＨＩＤ（Human Interface Device）クラスとしてＵＳＢホストドライバ部２１に認識される。【００５０】
図７は、仮想領域ごとにデバイスを認識させる動作を示すフローチャートである。【００５１】
まず、ホスト装置２に挿入される前のＵＳＢ可搬装置１は、自装置のモードを起動モードに初期化する（Ｓ１１）。起動モードでは、起動用仮想領域１４ａが「有効状態」となっており、記憶用仮想領域１４ｂが「無効状態」となる。【００５２】
ＵＳＢ可搬装置１のＵＳＢインタフェース１９がホスト装置２のＵＳＢポート２９に挿入されると（Ｓ１２ｃ）、ＵＳＢホストドライバ部２１は、挿入されたＵＳＢ可搬装置１を検知する（Ｓ１２ｂ）。この検知を契機として、ＵＳＢホストドライバ部２１は、検知したＵＳＢ可搬装置１の認識（enumeration）を実行する。具体的には、ＵＳＢホストドライバ部２１は、ＵＳＢ可搬装置１に対して利用可能であるデバイスを問い合わせると、ＵＳＢ可搬装置１は、その応答として「有効状態」となっている起動用仮想領域１４ａを読み込み可能デバイスとして通知する（Ｓ３３ｃ）とともに、その読み込み可能デバイス内に格納されている切替用プログラム１１をオートラン（自動実行）プログラムとして通知する。【００５３】
応答を受けたＵＳＢホストドライバ部２１は、起動用仮想領域１４ａを読み込み可能デバイスとして認識する（Ｓ３３ｂ）。そして、ＵＳＢホストドライバ部２１は、認識した読み込み可能デバイス内の切替用プログラム１１を自動実行プログラムとして起動する（Ｓ１４ｂ）ための転送命令の送信を契機に、ＵＳＢ可搬装置１は切替用プログラム１１をホスト装置２に転送し（Ｓ１４ｃ）、ホスト装置２は転送された切替用プログラム１１の実行を開始することで、切替用プログラム実行部２２を構築する。【００５４】
切替用プログラム実行部２２は、読み込み可能デバイスの取り外しをＵＳＢホストドライバ部２１に指示すると（Ｓ１５ａ）、ＵＳＢホストドライバ部２１はその指示を受け、Ｓ３３ｂで認識した読み込み可能デバイスを取り外す（Ｓ１５ｂ）。なお、切替用プログラム１１は、既にホスト装置２に転送され、切替用プログラム実行部２２として実行されているので、この取り外し処理によって実行は中断しない。【００５５】
切替用プログラム実行部２２は、Ｓ１５ｂの取り外しを行った旨の応答を契機に、ＵＳＢ可搬装置１に対して、Ｓ１１の起動モードから記憶モードへと切り替えるように指示すると（Ｓ１６ａ）、ＵＳＢ可搬装置１は、その指示に従い、自身のモードを記憶モードへと切り替える（Ｓ１６ｃ）。記憶モードでは、記憶用仮想領域１４ｂが「有効状態」となっており、起動用仮想領域１４ａが「無効状態」となっている。
記憶モードへの切替により、コントローラ１５は、起動用仮想領域１４ａから記憶用仮想領域１４ｂへと接続先を切り替える。【００５６】
切替用プログラム実行部２２は、ＵＳＢホストドライバ部２１に対して、再度ＵＳＢ可搬装置１のデバイスを認識させるために、ＵＳＢポート２９に挿入されるイベント（Ｓ１２ｃ）と同様の検知イベントを発生させる（Ｓ１７ａ）。ＵＳＢホストドライバ部２１は、この検知イベントを受け、既に挿入されているＵＳＢ可搬装置１を再び検知する（Ｓ１７ｂ，Ｓ１７ｃ）。この検知を契機として、ＵＳＢホストドライバ部２１は、検知したＵＳＢ可搬装置１の２回目の認識（enumeration）を実行する。【００５７】
２回目の認識（enumeration）では、ＵＳＢホストドライバ部２１は、ＵＳＢ可搬装置１に対して利用可能であるデバイスを問い合わせると、ＵＳＢ可搬装置１は、その応答として「有効状態」となっている記憶用仮想領域１４ｂを読み書き可能デバイスとして通知する（Ｓ３８ｃ）。応答を受けたＵＳＢホストドライバ部２１は、記憶用仮想領域１４ｂを読み書き可能デバイスとして認識する（Ｓ３８ｂ）。【００５８】
以後、ホスト装置２は、認識した記憶用仮想領域１４ｂに対して読み書きを行うことができるが、取り外した起動用仮想領域１４ａはＵＳＢホストドライバ部２１から一切見えなくなっているので、読み書きの対象にはならずに済む。
以上説明した本実施形態によれば、起動用仮想領域１４ａの読み込み可能な領域と、記憶用仮想領域１４ｂの読み書き可能な領域とを切り替えることにより、起動用仮想領域１４ａへの不正アクセスを抑制しつつ、双方の領域を効率的に使用できる。【００５９】
図８は、複数のメモリチップを用いて仮想領域を構築する旨を示す説明図である。図６の仮想領域と比較すると、図６では１つのメモリチップ１３を起動用仮想領域１４ａおよび記憶用仮想領域１４ｂで共用していたのに対し、図８（ａ）では起動用仮想領域１４ａおよび記憶用仮想領域１４ｂはそれぞれ複数のメモリチップ１３を専有する点に違いがある。また、図８（ｂ）では、複数のメモリチップ１３を起動用仮想領域１４ａおよび記憶用仮想領域１４ｂで共用する一例である。【００６０】
図８（ａ）のように、メモリチップ１３を専有する構成では、１つのメモリチップ１３の故障が影響する仮想領域が１つで済むため、信頼性を向上させることができる。さらに、図８（ａ）では１つの起動用仮想領域１４ａを４つのメモリチップ１３で構成することにしたが、切替用プログラム１１を複数のメモリチップ１３上に重複して格納することにより、メモリチップ１３の多重化による耐障害性の向上効果を得ることができる。【００６１】
以上、第１実施形態〜第３実施形態を順に説明した。各実施形態の特徴は、次の通りである。【００６２】
まず、どの実施形態においても、切替用プログラム１１が複数の記憶手段から１つの記憶手段を切り替えてＵＳＢホストドライバ部２１に認識させるため、無効状態になっている記憶手段は、ＵＳＢホストドライバ部２１から見えなくなる。よって、無効状態になっている記憶手段への、読み込み可能デバイスへの不正な書き込み命令を排除するなどの不正アクセスを常時制御する必要が無くなる。その結果、制御に伴う性能劣化を生じさせずに、不正アクセスを防止してセキュリティを向上することができる。【００６３】
そして、切替対象の記憶手段として、第１実施形態ではＵＳＢペリフェラルを複数有し、第２実施形態ではメモリチップを複数有し、第３実施形態では仮想領域を複数有する。以下、各実施形態のハードウェアの構成の差異による効果の差異について、製造コストおよび信頼性という２つの面に着目して説明する。【００６４】
まず、ＵＳＢ可搬装置１の製造コストの面では、仮想領域という新たなハードウェアを不要とする第３実施形態が最も低コストであり、新たなＵＳＢペリフェラルを不要とするが新たなメモリチップを必要とする第２実施形態が次に低コストであり、新たなＵＳＢペリフェラルおよびそのメモリチップを必要とする第１実施形態がその次である。【００６５】
次に、ＵＳＢ可搬装置１の信頼性の面では、１つのＵＳＢペリフェラルのハードウェア的な故障が他のＵＳＢペリフェラルに影響しない第１実施形態が最も信頼性が高く、１つのメモリチップのハードウェア的な故障が他のメモリチップに影響しない第２実施形態が次に信頼性が高く、メモリチップの故障によりそのメモリチップ上の全ての仮想領域が使用不可となってしまう第１実施形態がその次である。【００６６】
以上説明した本発明は、以下のようにその趣旨を逸脱しない範囲で広く変形実施することができる。【００６７】
例えば、不正な書き込みの防止対象である起動用の記憶手段は、切替用プログラム１１を起動するためのわずかな期間（図３では、Ｓ１３ｂからＳ１５ｂまでの期間）ではあるが、読み込み可能デバイスとしてＵＳＢホストドライバ部２１に認識される。このわずかな期間中に切替用プログラム１１を改ざんするための不正な書き込み命令がＵＳＢ可搬装置１に入力される恐れがある。そこで、このわずかな期間中にだけ、ＵＳＢ可搬装置１およびホスト装置２のうち、少なくとも１つの装置は、読み込み可能デバイスに対する書き込み命令を無視するアクセス制御を実行してもよい。このアクセス制御により性能劣化が発生するが、わずかな期間だけなので、運用上はほとんど問題がない。【００６８】
また、前記不正な書き込み命令が起動用の記憶手段に入力される対策として、起動用の記憶手段を読み込み可能かつ書き込み不可の属性を有するＲＯＭ（Read Only Memory）として構成してもよい。これにより、ＲＯＭ内に書き込まれる切替用プログラム１１の更新は行えなくなるものの、切替用プログラム１１の改ざんを確実に防止できる。【００６９】
そして、切替用プログラム１１は、前記したように認識させる記憶手段を切り替えるという基本機能を実現させるが、この基本機能に加え、ＵＳＢ可搬装置１の利用形態に適した様々なアプリケーションの機能を実現させることとしてもよい。例えば、切替用プログラム１１は、記憶手段を切り替えるための要件として、ＵＳＢ可搬装置１のユーザをパスワード入力などにより認証することとしてもよい。これにより、ＵＳＢ可搬装置１のユーザ以外の人が、入手したＵＳＢ可搬装置１内のデータを盗み見することを抑制できる。【００７０】
さらに、ＵＳＢ可搬装置１とホスト装置２との通信経路について、インタフェース部１６を介する制御用の経路と、インタフェース部１６を介さないデータ通信用の経路と、を別々に設けることとしてもよいし、インタフェース部１６を省略してデータ通信用の経路に統一してもよい。
その場合、制御用の通信パケットと、データ通信用の通信パケットが１つの経路上に混在するため、双方の通信パケットを区別するための情報が必要となる。例えば、制御用の通信パケットには所定のフラグを付し、データ通信用の通信パケットには所定のフラグを付さないことにより、双方の通信パケットを区別する。
そして、第１実施形態では、制御用ＵＳＢペリフェラル１２ｃのコントローラ１５は、ＵＳＢインタフェース１９を介して通信される通信パケットを常時監視し、所定のフラグが付された通信パケットを制御用の通信パケットとして受信するとともに、所定のフラグが付されていない通信パケットをポートスイッチ１８ｂに接続されている「有効状態」のＵＳＢペリフェラルへと転送する。
一方、第２，第３実施形態では、コントローラ１５は、ＵＳＢインタフェース１９を介して通信される通信パケットを常時監視し、所定のフラグが付された通信パケットを制御用の通信パケットとして受信するとともに、所定のフラグが付されていない通信パケットをデータ通信用の通信パケットとして受信する。【００７１】
また、記憶用記憶手段１ｂは、前記した各実施形態で示したように１つでもよいし、複数個でもよい。複数個の記憶用記憶手段１ｂが存在するときには、その中から１つの記憶用記憶手段１ｂを認識させる。
【図１】
2009090734.tif 000003
【図２】
2009090734.tif 000004
【図３】
2009090734.tif 000005
【図４】
2009090734.tif 000006
【図５】
2009090734.tif 000007
【図６】
2009090734.tif 000008
【図７】
2009090734.tif 000009
【図８】
2009090734.tif 000010
【国際調査報告】
2009090734.tif 000011
2009090734.tif 000012
2009090734.tif 000013
2009090734.tif 000014