(57)【要約】【課題】複数のユーザが同時に使用可能な情報処理装置に接続されるＵＳＢストレージデバイスを通じて、認証されたローカルユーザの情報等がリモートユーザによって不正利用されることを抑制する。【解決手段】情報処理装置の筐体をあけることなく着脱可能な記憶媒体は、自由領域と制限領域を備える。自由領域は、情報処理装置に対して直接的にログインしているローカルユーザと、情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域である。制限領域は、情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、個人認証処理により認証されなかったローカルユーザおよびリモートユーザによる情報の読み書きが制限された記憶領域である。【選択図】図１
2011248474.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザが同時に使用可能な情報処理装置に対して、前記情報処理装置の筐体をあけることなく着脱可能な記憶媒体であって、
前記情報処理装置または前記記憶媒体において実行される個人認証処理により認証された前記情報処理装置に対して直接的にログインしているローカルユーザによる前記記憶媒体へのアクセスを許可し、前記個人認証処理により認証されなかったローカルユーザおよび前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザによる前記記憶媒体へのアクセスを制限するアクセス制限手段
を備えることを特徴とする記憶媒体。
【請求項２】
前記個人認証処理は、複数のユーザをそれぞれ識別するための識別情報と、前記ローカルユーザの識別情報を比較し判定することを含む
ことを特徴とする請求項１に記載の記憶媒体。
【請求項３】
複数のユーザが同時に使用可能な情報処理装置に対して、前記情報処理装置の筐体をあけることなく着脱可能な記憶媒体であって、
前記情報処理装置に対して直接的にログインしているローカルユーザと、前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域である自由領域と、
前記情報処理装置または前記記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、前記個人認証処理により認証されなかったローカルユーザおよび前記リモートユーザによる情報の読み書きが制限された記憶領域である制限領域と
を備えたことを特徴とする記憶媒体。
【請求項４】
前記個人認証処理は、前記記憶媒体において実行される個人認証処理であり、
前記記憶媒体は、前記個人認証処理を実行する個人認証手段をさらに備えることを特徴とする請求項３に記載の記憶媒体。
【請求項５】
前記個人認証処理は、前記情報処理装置において実行される個人認証処理であり、
前記情報処理装置は、前記個人認証処理を実行する個人認証手段を備えることを特徴とする請求項３に記載の記憶媒体。
【請求項６】
前記情報処理装置は、
前記情報処理装置にログインしている複数のユーザをそれぞれ識別するための識別情報と、前記個人認証手段により認証されたローカルユーザの識別情報とを比較することで、ローカルユーザによる前記制限領域に対する情報の読み書き要求と、前記個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる前記制限領域に対する情報の読み書き要求とを検出する検出手段と、
前記検出手段が前記個人認証手段により認証されたローカルユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証手段により認証されたローカルユーザによる前記制限領域に対する情報の読み書きを許可し、前記検出手段が前記個人認証手段による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証手段による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書きを制限する読み書き制御手段と
を備えることを特徴とする請求項４または５に記載の記憶媒体。
【請求項７】
前記読み書き制御手段は、
前記個人認証手段により認証されたローカルユーザによって前記制限領域から読み出された情報を復号化する復号化手段と、
前記個人認証手段により認証されたローカルユーザによって前記制限領域へ書き込まれることになった情報を暗号化する暗号化手段と
をさらに備えることを特徴とする請求項６に記載の記憶媒体。
【請求項８】
前記復号化手段は、前記個人認証手段による個人認証に失敗したローカルユーザおよび前記リモートユーザによって読み出されようとしている前記制限領域に記憶された情報については復号せず、
前記暗号化手段は、前記個人認証手段による個人認証に失敗したローカルユーザおよび前記リモートユーザによって前記制限領域へ書き込まれるようとしている情報を暗号化しない
ことを特徴とする請求項７に記載の記憶媒体。
【請求項９】
前記記憶媒体は、前記情報処理装置において実行されるプロセスのうち、前記制限領域に対するアクセスを許可されたプロセスの識別情報を登録したホワイトリストを記憶したリスト記憶領域をさらに含み、
前記情報処理装置は、
前記情報処理装置において実行されているプロセスの識別情報が、前記ホワイトリストに登録されている識別情報と一致するか否かに応じて、前記制限領域に対するアクセスを制限するアクセス制限手段を備えることを特徴とする請求項３ないし４のいずれか１項に記載の記憶媒体。
【請求項１０】
前記アクセス制限手段は、
前記情報処理装置において実行されているプロセスの識別情報が、前記ホワイトリストに登録されている場合であって、かつ、該プロセスが前記個人認証処理により認証されたローカルユーザによって起動されたプロセスである場合に、前記記憶媒体の前記制限領域へのアクセスを許可することを特徴とする請求項９に記載の記憶媒体。
【請求項１１】
前記アクセス制限手段は、
前記情報処理装置において実行されているプロセスの識別情報が、前記ホワイトリストに登録されている場合であって、かつ、該プロセスが前記個人認証処理により認証されたローカルユーザによって起動されたプロセスでない場合に、前記記憶媒体の前記制限領域へに対する動作をキャンセルすることを特徴とする請求項１０に記載の記憶媒体。
【請求項１２】
前記リスト記憶領域は、前記情報処理装置において実行されるプロセスのうち、アクセス対象の如何にかかわらず、動作をキャンセルされるプロセスの識別情報を登録したブラックリストを記憶しており、
前記情報処理装置は、
前記情報処理装置において実行されているプロセスの識別情報が、前記ブラックリストに登録されている識別情報と一致すると、当該プロセスによる動作をキャンセルするキャンセル手段
をさらに備えることを特徴とする請求項９ないし１１のいずれか１項に記載の記憶媒体。
【請求項１３】
コンピュータプログラムを記憶したプログラム記憶領域をさらに備え、
前記コンピュータプログラムを前記情報処理装置が備えるプロセッサが実行することで、前記情報処理装置が備える各手段として前記情報処理装置が機能することを特徴とする請求項６ないし１２のいずれか１項に記載の記憶媒体。
【請求項１４】
複数のユーザが同時に使用可能な情報処理装置であって、
前記情報処理装置の筐体をあけることなく着脱可能な記憶媒体と、
前記情報処理装置または前記記憶媒体において実行される個人認証処理により認証された前記情報処理装置に対して直接的にログインしているローカルユーザによる前記記憶媒体へのアクセスを許可し、前記個人認証処理により認証されなかったローカルユーザおよび前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザによる前記記憶媒体へのアクセスを制限するアクセス制限手段と、
を備えることを特徴とする情報処理装置。
【請求項１５】
複数のユーザが同時に使用可能な情報処理装置であって、
前記情報処理装置に対して直接的にログインしているローカルユーザと、前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された自由領域と、前記情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、前記個人認証処理により認証されなかったローカルユーザおよび前記リモートユーザによる情報の読み書きが制限された制限領域とを備えた、前記情報処理装置の筐体をあけることなく前記情報処理装置に対して着脱可能な記憶媒体と、
前記情報処理装置にログインしている複数のユーザをそれぞれ識別するための識別情報と、前記個人認証処理により認証されたローカルユーザの識別情報とを比較することで、ローカルユーザによる前記制限領域に対する情報の読み書き要求と、前記個人認証処理による個人認証に失敗したローカルユーザおよびリモートユーザによる前記制限領域に対する情報の読み書き要求とを検出する検出手段と、
前記検出手段が前記個人認証処理により認証されたローカルユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証処理により認証されたローカルユーザによる前記制限領域に対する情報の読み書きを許可し、前記検出手段が前記個人認証処理による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証処理による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書きを制限する読み書き制御手段と
を備えることを特徴とする情報処理装置。
【請求項１６】
記憶媒体を接続し、複数のユーザが同時に使用可能な情報処理装置において実行されるコンピュータプログラムであって、
前記記憶媒体は、前記情報処理装置の筐体をあけることなく前記情報処理装置に対して着脱可能な記憶媒体であり、かつ、前記情報処理装置に対して直接的にログインしているローカルユーザと、前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された自由領域と、前記情報処理装置または前記記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、前記個人認証処理により認証されなかったローカルユーザおよび前記リモートユーザによる情報の読み書きが制限された制限領域とを備えており、
前記コンピュータプログラムは、
前記情報処理装置にログインしている複数のユーザをそれぞれ識別するための識別情報と、前記個人認証処理により認証されたローカルユーザの識別情報とを比較することで、ローカルユーザによる前記制限領域に対する情報の読み書き要求と、前記個人認証処理による個人認証に失敗したローカルユーザおよびリモートユーザによる前記制限領域に対する情報の読み書き要求とを検出する検出手段と、
前記検出手段が前記個人認証処理により認証されたローカルユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証処理により認証されたローカルユーザによる前記制限領域に対する情報の読み書きを許可し、前記検出手段が前記個人認証処理による個人認証に失敗したローカルユーザおよび前記リモートユーザによるによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証処理による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書きを制限する読み書き制御手段として前記情報処理装置を機能させることを特徴とするコンピュータプログラム。
【請求項１７】
前記コンピュータプログラムは、前記記憶媒体から読み出され実行されることを特徴とする請求項１６に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体、情報処理装置およびコンピュータプログラムに関し、特に、着脱可能な記憶媒体が関与した情報漏洩を抑制する技術に関する。
【背景技術】
【０００２】
現在、パーソナルコンピュータなどの情報処理装置の外部記憶装置として、持ち運びが可能なＵＳＢストレージデバイスが普及している。ＵＳＢストレージデバイスは利便性が高い反面、ユーザの使用方法次第では機密情報の漏洩の元となりうる。特許文献１には、自由にユーザが使用できる自由領域と、ユーザが認証に成功すると使用できる秘匿領域とが設けられているＵＳＢストレージデバイスが記載されている。
【０００３】
一方で、近年、ネットワークの普及によってターミナルサービスが利用されるようになってきている。ターミナルサービスとは、クライアントコンピュータがサーバコンピュータにリモート接続し、サーバコンピュータ上に生成された仮想デスクトップ環境を利用してサーバコンピュータ上でアプリケーションプログラムを実行できるようにするサービスである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３０１７７２号公報、図１ないし図３
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、秘匿領域へのアクセスをデバイスの物理的制御で行っている。もちろん、特許文献１に記載の技術ではリモートユーザの存在を考慮していない。よって、パーソナルコンピュータに直接ログインしているローカルユーザが秘匿領域に対する認証に成功した後は当該ローカルユーザだけでなく、ターミナルサービス等を利用して遠隔からログインしている他のリモートユーザも秘匿領域にアクセスできてしまう問題がある。たとえば、ローカルユーザの情報が他のリモートユーザに漏洩してしまったり、秘匿領域に格納されているソフトウエアがリモートユーザによって無断で使用されてしまったりするおそれがある。
【０００６】
そこで、本発明は、このような課題および他の課題のうち、少なくとも１つを解決することを目的とする。たとえば、本発明は、複数のユーザが同時に使用可能な情報処理装置に接続されるＵＳＢストレージデバイスを通じて、認証されたローカルユーザの情報等がリモートユーザによって不正利用されることを抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、たとえば、複数のユーザが同時に使用可能な情報処理装置に対して、情報処理装置の筐体をあけることなく着脱可能な記憶媒体に適用される。記憶媒体は、自由領域と制限領域とを備えている。自由領域は、情報処理装置に対して直接的にログインしているローカルユーザと、情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域である。制限領域は、情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、個人認証処理により認証されなかったローカルユーザおよびリモートユーザによる情報の読み書きが制限された記憶領域である。
【発明の効果】
【０００８】
本発明によれば、複数のユーザが同時に使用可能な情報処理装置に接続されるＵＳＢストレージデバイスを通じて、認証されたローカルユーザの情報等がリモートユーザによって不正利用されることを抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】複数ユーザ同時使用可能な情報処理システム（ターミナルサービス）の全体構成図である。
【図２】本発明に係る記憶装置の実施形態であるＵＳＢストレージデバイスとそれに接続される端末装置とを示す概略構成図である。
【図３】実施例に係る記憶装置の記憶内容と端末装置の記憶内容との一例を示す図である。
【図４】端末装置２０が実行する処理の一例を示したフローチャートである。
【図５】実施例に係るＵＳＢストレージデバイス１０が端末装置２０から外されたときに実行されるアンインストール処理の一例を示すフローチャートである。
【図６】実施例に係る領域変更処理の一例を示したフローチャートである。
【図７】実施例に係る端末装置が取得した記憶領域の管理情報の一例を示す図である。
【図８】実施例に係る端末装置が取得した記憶領域の管理情報の一例を示す図である。
【図９】実施例に係る端末装置によって認識された第１の記憶領域の一例を示す図である。
【図１０】実施例に係る端末装置によって認識された第２の記憶領域の一例を示す図である。
【図１１】利用制限機能の動作の一例を示したフローチャートである。
【図１２】端末装置１２０１と、それに接続される汎用のＵＳＢストレージデバイス１２１０とを示す概略構成図である。
【図１３】端末装置１２０１において、ＵＳＢストレージデバイス１２１０の初期化処理を示すフローチャートである。
【図１４】フォルダ階層の一例を示した図である。
【図１５】設定データの一例を示す図である。
【図１６】端末装置１２０１にＵＳＢストレージデバイス１２１０が挿入された際、端末装置１２０１の処理の流れを示すフローチャートである。
【図１７】ＵＳＢストレージデバイス１２１０へのデータの書き込みについて、端末装置１２０１における処理を示すフローチャートである。
【図１８】ＵＳＢストレージデバイス１２１０からのデータの読み込みについて、端末装置１２０１における処理を示すフローチャートである。
【図１９】端末装置１２０１と、それに接続される汎用のＵＳＢストレージデバイス１２１０とを示す概略構成図である。
【図２０】端末装置１２０１にＵＳＢストレージデバイス１２１０が挿入された際、端末装置１２０１の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１１】
［第１実施例］
（システム構成）
図１は、本発明に係る複数のユーザが同時に使用可能な情報処理システム（ターミナルサービス）の全体構成図である。本実施形態に係るシステムは、情報処理装置の一例である端末装置２０、２１０、２２０を備えており、これらはＬＡＮなどのネットワーク２３０を介して接続されている。端末装置２０には、ＵＳＢストレージデバイス１０を接続することができる。ＵＳＢストレージデバイス１０は、情報処理装置の筐体をあけることなく着脱可能な記憶媒体である。端末装置２０上では、ターミナルサービス提供部２０１を含むオペレーティングシステム（ＯＳ２０２）が動作している。ターミナルサービス提供部２０１は、たとえば、ターミナルサーバと呼ばれるプログラムによって実現される。端末装置２０は、認証情報記憶部２０３を有している。認証情報記憶部２０３には、たとえば、端末装置２１０、２２０の各利用者のログインユーザ情報（ログインユーザ名、セッションＩＤ等）等が格納されている。端末装置２１０、２２０のそれぞれは、ターミナルサービス提供部２０１から提供されるターミナルサービスを利用するためのターミナルサービス利用部２１１、２２１を備える。端末装置２１０、２２０のそれぞれは、不図示のキーボード等の入力部や、ディスプレイ装置などの表示部が接続されている。ターミナルサービス利用部２１１、２２１は、たとえば、リモート・デスクトップ接続（ＲＤＣ）と呼ばれるプログラムや、ターミナル・サービス・クライアント（ＴＳＣ）と呼ばれるプログラムによって実現される。ターミナルサービスは、Ｗｉｎｄｏｗｓ(登録商標)、ＭａｃＯＳおよびＬｉｎｕｘなどの一般的なオペレーティングシステム（ＯＳ）であれば一般に備えているサービスであるが、その名称はＯＳによって異なっている。リモートサービスは、第１のパーソナルコンピュータ（ＰＣ）に対して第２のＰＣからリモートログインし、第１のＰＣから情報を取得したり、第１のＰＣに情報を書き込んだり、第１のＰＣにインストールされているソフトウエアを第１のＰＣ上で実行したりするためのサービスである。なお、第１のＰＣに備えられている入力部を通じて直接ログインしているユーザをローカルユーザと呼び、第２のＰＣから第１のＰＣへリモートログインしているユーザをリモートユーザと呼んで区別することにする。
【００１２】
図１において、ＵＳＢストレージデバイス１０は、たとえば、非接触ＩＣカード、スマートメディア等、端末装置２０に対して筐体をあけることなく着脱可能な記憶媒体であればどのようなデバイスであってもかまわない。サーバとして機能する端末装置２０は、クライアントとして機能する端末装置２１０、２２０に仮想デスクトップ画面を表示するための情報を送信する。端末装置２１０、２２０は、端末装置２０から受信した情報にしたがって仮想デスクトップ画面をディスプレイ装置に表示したり、利用者が仮想デスクトップ画面上で行う操作に従って、コマンドやデータを端末装置２０に送信したりする。端末装置２０では、端末装置２１０、２２０から送信されてきたコマンドやデータに応じてアプリケーションプログラムを実行し、実行結果を端末装置２１０、２２０へ送信する。端末装置２１０、２２０では、端末装置２０から送信されてきた実行結果を仮想デスクトップ画面上に表示する。端末装置２０は、リモートユーザによって使用される一方で、同時並行的にローカルユーザによっても使用可能である。
【００１３】
このように、リモートユーザとローカルユーザとを含む複数のユーザが同時に使用可能な情報処理システム（ターミナルサービス）においては、アプリケーションプログラムが、端末装置２０で実行される。複数の端末装置２１０、２２０から端末装置２０に同時に接続してアプリケーションプログラムを実行することも可能である。この場合、リモートユーザ毎にセッションが分けられ、各利用者は別々の仮想デスクトップ環境を利用してアプリケーションプログラムを実行する。ターミナルサービス提供部２０１は、各セッションを区別するためにセッションＩＤを発行する。なお、同時に使用可能とは、同じ時間帯に複数のユーザがログインしている状態を含む。このようなターミナルサービスは一般的な技術であるため、これ以上の説明は省略する。
【００１４】
（ハードウエア構成）
図２は、本発明に係る記憶装置の実施形態であるＵＳＢストレージデバイスとそれに接続される端末装置とを示す概略構成図である。ここでは、汎用インターフェースであるＵＳＢインターフェースにメモリを一体化したＵＳＢストレージデバイスについて説明するが、本発明は、メモリ以外の記憶媒体を採用するＵＳＢストレージデバイスに適用できる。また、端末装置とのインターフェースもＵＳＢインターフェースに限定されることはなく、ＩＥＥＥ１３９４、ワイヤレスＵＳＢなどであってもよい。ここでは、端末装置２０について説明するが、端末装置２１０、２２０も同様の構成を備えている。
【００１５】
ＵＳＢストレージデバイス１０は、端末装置が備える汎用インターフェースに対して着脱可能な記憶装置の一例であり、コントローラ１２、ＵＳＢインターフェース１３、発光ダイオード（ＬＥＤ）１４、フラッシュメモリ１５、指紋認証デバイス１１を備えている。
【００１６】
コントローラ１２は、メモリ制御部１２１、メモリ情報記憶部１２２、ＵＳＢインターフェース制御部１２３、および、ＬＥＤ制御部１２４を備える。メモリ制御部１２１は、ＵＳＢインターフェース１３を介して受信した命令に従って、フラッシュメモリ１５に対してデータの読み出し、書き込みおよび削除を実行する。メモリ情報記憶部１２２は、フラッシュメモリ１５に確保された複数の記憶領域に関する情報（例：パーティションのサイズ、ドライブレターなど）を記憶する。ＵＳＢインターフェース制御部１２３は、後述するＵＳＢインターフェース１３の各部を制御する。ＬＥＤ制御部１２４は、後述するＬＥＤ１４の発光を制御する。
【００１７】
ＵＳＢインターフェース１３は、ＵＳＢバス３１を介して、パーソナルコンピュータなどの端末装置２０と通信を行う。ＵＳＢインターフェース１３は、パケット送受信部１３１、シリアルパラレル変換部１３２、パケット生成分解部１３３、および、ＵＳＢバスパワー制御部１３４とを備える。パケット送受信部１３１は、図示しないＵＳＢコネクタと接続され、ＵＳＢ規格に基づいたパケットを送受信する。シリアルパラレル変換部１３２は、シリアルデータとパラレルデータとを相互に変換する。パケット生成分解部１３３は、端末装置と通信を行うためのパケットの生成およびパケットを分解してデータの取り出しを行う。ＵＳＢバスパワー制御部１３４は、端末装置から供給される電力の管理およびＵＳＢストレージデバイス１０の各部への電力の配分を行う。
【００１８】
ＬＥＤ１４は、フラッシュメモリ１５に対してファイルの読み出し、書き込み、削除が実行されている際に点灯する発光体である。フラッシュメモリ１５に対してファイルの読み出し、書き込みおよび削除が実行中であることを利用者に示す。
【００１９】
フラッシュメモリ１５は、記憶保持動作が不要な半導体メモリであり、ファイルや情報を記憶することができる。記憶したデータは、メモリ制御部１２１によって読み出し、書き込み、削除をすることもできる。フラッシュメモリ１５は、記憶保持動作が必要な他の記憶素子に置換されてもよい。
【００２０】
指紋認証デバイス１１は、個人認証処理を実行する個人認証手段の一例であり、指紋を読み取ることで使用者認証を行うデバイスである。指紋認証デバイス１１は、他のバイオメトリクスを実行する認証デバイスに置換されてもよい。この指紋認証デバイス１１についてはいわゆるオプションであって、指紋認証を使用者認証に含めない場合には不要である。一方で、指紋認証デバイス１１がＵＳＢストレージデバイス１０に搭載されているからといって使用者認証が指紋認証に限定される必要もない。すなわち、指紋認証デバイス１１は認証機能を無効とされてもよいし、無効に加えて、他の認証方法が採用されてもよい。たとえば、ユーザを特定するための識別子、パスワード、暗証番号、バイオメトリクス情報のうち１つまたは複数を含むユーザ登録情報を予めフラッシュメモリ１５に記憶しておき、端末装置２０から受信した情報と比較することで、認証を実行してもよい。
【００２１】
端末装置２０は、ＵＳＢストレージデバイス１０の接続先であり、たとえば、パーソナルコンピュータである。端末装置２０は、たとえば、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ディスクコントローラ２４、ハードディスクドライブ（ＨＤＤ）２５、ＣＤ／ＤＶＤドライブ２６、モニタ２７、ポインティングデバイス２８、ＵＳＢインターフェース２９、ネットワークインタフェース４０、システムバス３０を備えている。
【００２２】
ＣＰＵ２１は、ＲＯＭ２２やＨＤＤ２５に記憶されているコンピュータプログラムに基づいて各部を制御するプロセッサである。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３は、ワークエリアとして機能する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２は、不揮発性の記憶素子であり、ファームウエアなどを記憶する。ディスクコントローラ２４は、ＨＤＤ２５、ＣＤ／ＤＶＤドライブ２６に対する読み書きを制御する。ＨＤＤ２５には、オペレーティングシステム、アプリケーションプログラムなどが記憶されている。なお、ＵＳＢストレージデバイス１０から転送される、記憶領域の切り替えプログラムや情報漏洩防止プログラムなどもＨＤＤ２５に格納される。ＣＰＵ２１と各部は、システムバス３０を介して命令やデータの送受信を実行する。
【００２３】
ＵＳＢインターフェース２９は、ＵＳＢバス３１を介してＵＳＢストレージデバイス１０内部のＵＳＢインターフェース１３と接続する。すなわち、ＵＳＢバス３１を介して端末装置２０とＵＳＢストレージデバイス１０とが双方向にデータの送受信を行う。ネットワークインタフェース４０は、他の端末装置とネットワークを介して通信するための通信回路である。
【００２４】
以降の説明では、端末装置２０がパーソナルコンピュータであることを前提にしているが、端末装置２０が一般的なパーソナルコンピュータと同等以上、若しくはそれに準ずる演算処理能力を有する機器であるならばその種類、機種は限定されるものではない。
【００２５】
図３は、フラッシュメモリ１５に確保された記憶領域および当該記憶領域へ記憶されているデータ、ソフトウエア、インストーラの一例を示した図である。なお、本発明では、端末装置２０に第１の記憶領域１６を認識させた後に、自動インストーラ１６２によってセキュリティソフトウエア部１６１を端末装置２０にインストールし、第２の記憶領域１７へと切り替える方法について説明するが、本発明はこれにのみ限定されるわけではない。端末装置２０による第１の記憶領域１６と第２の記憶領域１７との択一的に認識（切り替え）は不要であり、セキュリティソフトウエア部２５２がはじめから端末装置２０のハードディスクドライブ（ＨＤＤ２５）の記憶領域２５１にインストールされていてもよい。たとえば、第１の記憶領域１６及び第２の記憶領域１７ともに端末装置２０に認識させてから、セキュリティソフトウエアを端末装置２０にインストールすることも可能である。これにより、第１の記憶領域１６及び第２の記憶領域１７を端末装置２０に認識させる方法に係わらず、後述するセキュリティソフトウエアの様々な処理を実行可能とする。
【００２６】
本実施例では、フラッシュメモリ１５をソフトウエア上で制御することにより第１の記憶領域１６、第２の記憶領域１７、第３の記憶領域１８の三つの記憶領域に分割している。このように複数の記憶領域を確保する方法はいくつか存在する。たとえば、単一のデバイスであるフラッシュメモリ１５を、ソフトウエア上で三つの領域（第１の記憶領域１６、第２の記憶領域１７、第３の記憶領域１８）に分割する方法がある。なお、読み出しのみ可能な領域を第１の記憶領域１６とし、読み出し、書き込みが可能な領域を第２の記憶領域１７、コントローラ１２からデータを読み書きできるものの、端末装置２０からは読み書きも認識もできない秘匿領域を第３の記憶領域１８とする。
【００２７】
領域を分割する２つ目の方法は、複数のフラッシュメモリを必要に応じてソフトウエア上で分割して二つの記憶領域を確保する方法である。たとえば、４つのフラッシュメモリ素子がある場合、１つ目のフラッシュメモリ素子を第１の記憶領域１６とし、２つ目のフラッシュメモリ素子を第２の記憶領域１７とし、残りの２つのフラッシュメモリ素子を第３の記憶領域１８に割り当ててもよい。
【００２８】
なお、端末装置２０のＣＰＵ２１（オペレーティングシステム：ＯＳ）から複数の領域を選択的に認識する方法としては、ＬＵＮ（論理ユニット番号）を使用する方法がある。ＬＵＮは、１つのターゲットでありながら、複数のアクセス可能な論理装置を有するデバイスにおいて、各論理装置を識別するために付与されるアドレス（広義）のことである。ＯＳ（およびそのドライバ、以下同様）は、１つのＬＵＮを割り振った論理ドライブを、ドライブレターを付与した１つの物理ドライブとして認識する。単一のデバイスへ複数のＬＵＮを割り振ればその割り振られたＬＵＮの数だけ物理ドライブを作成できる。
【００２９】
本発明においては、複数のアクセス可能な論理装置（第１の記憶領域、第２の記憶領域、秘匿領域）にそれぞれＬＵＮを割り当てることで、一つのターゲットであるＵＳＢストレージデバイスを複数の論理ドライブ（物理ドライブ）を有するデバイスとしてＯＳに認識できるようにしている。
【００３０】
第１の記憶領域１６は、ＵＳＢストレージデバイス１０が端末装置２０に接続された際に自動的に読み込まれるセキュリティソフトウエア部１６１と自動インストーラ１６２を記憶している。
【００３１】
セキュリティソフトウエア部１６１は、情報漏洩防止手段を実現するために必要となるファイルをすべて備えたソフトウエアである。セキュリティソフトウエア部１６１は、端末装置２０のＣＰＵ２１によって実行されるソフトウエアであり、たとえば、情報処理装置または記憶媒体において実行される個人認証処理により認証された情報処理装置に対して直接的にログインしているローカルユーザによる前記記憶媒体へのアクセスを許可し、個人認証処理により認証されなかったローカルユーザおよび前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザによる記憶媒体へのアクセスを制限するアクセス制限手段として機能する。セキュリティソフトウエアとしては、たとえば、後述する情報漏洩防止プログラムがある。また、端末装置２０が認識する記憶領域を切り替える領域変更プログラムが含まれていてもよい。詳しくは後述するが、領域変更プログラムは、第１の記憶領域１６に記憶され、端末装置２０に認識される記憶領域を第１の記憶領域１６から第２の記憶領域１７へと切り替えるコンピュータプログラムである。自動インストーラ１６２は、セキュリティソフトウエア部１６１をインストールするためのソフトウエアである。
【００３２】
セキュリティソフトウエア部１６１と自動インストーラ１６２との組み合わせは、後述の動作を行えるものであればどんな組み合わせでもよい。また、インストール方式も本発明の実施に支障をきたすものでなければどのような方式が採用されてもよい。たとえば、セキュリティソフトウエア部１６１が書庫形式等で圧縮されていて、自動インストーラ１６２がセキュリティソフトウエア部１６１を解凍しながらディレクトリへ展開してもよい。一方、セキュリティソフトウエア部１６１が既にディレクトリに展開されている状態であれば、そのディレクトリをそのまま端末装置２０の記憶領域２５１にコピーするといったインストール方式でもよい。
【００３３】
一方、セキュリティソフトウエア部１６１が自己解凍形式のファイルであれば、自動インストーラ１６２を省略できよう。以下の実施例では、セキュリティソフトウエア部１６１のインストールに自動インストーラ１６２が採用されるものとする。なお、端末装置２０にインストールしたファイルのアンインストールについても、本発明の目的を達成できるかぎり、どのようなアンインストール方式が採用されてもよい。
【００３４】
第２の記憶領域１７には、使用者が接続した端末装置２０を操作し使用するデータ（例：文書ファイル、画像ファイル、プログラムファイル等）、すなわち情報漏洩防止の対象となるユーザ使用ファイル１７１が格納されている。なお、第２の記憶領域１７は、さらに自由領域と制限領域とに分割されていてもよい。自由領域は、情報処理装置に対して直接的にログインしているローカルユーザと、情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域である。制限領域は、情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、個人認証処理により認証されなかったローカルユーザおよびリモートユーザによる情報の読み書きが制限された記憶領域である。
【００３５】
第３の記憶領域１８には、ユーザ登録情報１８１、ホワイトリスト１８２およびブラックリスト１８３が格納されている。なお、これに限定されず、上述した登録情報およびリストは、単数または複数の組み合わせを第３の記憶領域１８に格納することも可能である。第３の記憶領域１８に制限領域が確保されてもよい。
【００３６】
なお、以下では、第３の記憶領域１８の全体が秘匿領域であるという設定の下で話を進める。しかし、この秘匿領域は端末装置２０から独立した第３の記憶領域１８に限定されるものではない。たとえば、第１の記憶領域１６、第２の記憶領域１７の一部に設けられたディレクトリを第３の記憶領域１８としてもよい。この場合、このディレクトリは暗号化されており、コントローラ１２が復号できるものとする。これにより、端末装置２０は、第３の記憶領域１８であるディレクトリの存在を知ることができても、そこに記憶されている情報を取得することができない。
【００３７】
ユーザ登録情報１８１は、登録された使用者（ユーザ）であるかどうかを認証するための認証情報である。ユーザ登録情報１８１は、たとえば、使用者が入力する暗証番号、パスワード、バイオメトリクスの情報などである。これらの情報は平文のまま記憶されていてもよいし、暗号化されていてもよい。また、ユーザ登録情報１８１は、複数の使用者の認証情報を含んでいてもよい。この場合、ＵＳＢストレージデバイス１０を複数のユーザ間で共用することが可能となる。
【００３８】
ホワイトリスト１８２は、たとえば、端末装置２０において実行されるプロセス（例：アプリケーション）のうち、第２の記憶領域１７に対するアクセスを許可されたプロセスの識別情報を登録したリストである。また、ホワイトリスト１８２は、たとえば、ＵＳＢストレージデバイス１０の接続中に動作が許可されるプロセスの一覧であってもよい。セキュリティソフトウエア部１６１は、端末装置２０において実行されているプロセスの識別情報が、ホワイトリストに登録されている識別情報と一致するか否かに応じて、第２の記憶領域１７に対するアクセスを制限するアクセス制限手段として、ＣＰＵ２１を機能させる。第３の記憶領域１８は、情報処理装置において実行されるプロセスのうち、制限領域に対するアクセスを許可されたプロセスの識別情報を登録したホワイトリストを記憶したリスト記憶領域としても機能する。
【００３９】
ブラックリスト１８３は、たとえば、端末装置２０において実行されるプロセスのうち、アクセス対象の如何にかかわらず、アクセスを禁止されるプロセスの識別情報を登録したリストである。なお、ブラックリスト１８３は、一切動作が許可されないプロセスの一覧であってもよい。セキュリティソフトウエア部１６１は、たとえば、端末装置において実行されているプロセスの識別情報が、ブラックリストに登録されている識別情報と一致すると、プロセスによるアクセスを禁止するアクセス禁止手段として、ＣＰＵ２１を機能させる。第３の記憶領域１８は、情報処理装置において実行されるプロセスのうち、アクセス対象の如何にかかわらず、動作をキャンセルされるプロセスの識別情報を登録したブラックリストを記憶したリスト記憶領域としても機能する。
【００４０】
なお、上述したホワイトリストやブラックリストへのプロセス名の追加や更新の手法はいくつか考えられる。たとえば、端末装置２０が、ＵＳＢストレージデバイス１０に記憶されているホワイトリストやブラックリストを直接編集する手法が考えられる。また、サーバからクライアント（端末装置２０）が受信した最新のホワイトリストやブラックリストを、ＵＳＢバスを介してコントローラ１２が受信し、それを第３の記憶領域に書き込むといった手法も考えられる。後者は、リモート更新と呼べるであろう。
【００４１】
ＨＤＤ内の記憶領域２５１は、端末装置２０に備えられたＨＤＤ２５の中の記憶領域である。セキュリティソフトウエア部２５２は、第１の記憶領域１６に記憶されているセキュリティソフトウエア部１６１がインストールされたものである。認証実行部２５３は、セキュリティソフトウエア部２５２の要素の一つで、端末装置や使用者の認証を行う。制御プログラム２５４は、情報漏洩防止機能や、使用者に応じたユーザ使用ファイルの選択および表示を実行するプログラムである。
（端末装置２０の処理）
図４は、端末装置２０が実行する処理の一例を示したフローチャートである。ここでは、ＵＳＢストレージデバイス１０を端末装置２０に接続し、使用者がＵＳＢストレージデバイス１０の第２の記憶領域に記憶されているファイルを操作できるようになるまでの手順の詳細について説明する。
【００４２】
ステップＳ４０１で、ＵＳＢストレージデバイス１０が端末装置２０に接続される。これにより、端末装置２０のＵＳＢインターフェース２９とＵＳＢストレージデバイス１０のＵＳＢインターフェース１３との間でＵＳＢ規格に従った接続処理が実行される。ＵＳＢレベルでの接続が確立されると、ステップＳ４０２へ進む。
【００４３】
ステップＳ４０２で、端末装置２０のＯＳ（ＣＰＵ２１）は、読み出しのみが可能なＣＤ−ＲＯＭ領域としてＵＳＢストレージデバイス１０の第１の記憶領域１６を認識する。なお、この時点で第２の記憶領域１７はＣＰＵ２１によって認識されてはいない。また、第３の記憶領域１８は秘匿領域であるため、ＣＰＵ２１によって認識されない。ＣＰＵ２１は、ａｕｔｏｒｕｎ．ｉｎｆなどの起動ファイルにしたがって自動インストーラ１６２を起動する。ＣＰＵ２１は、起動した自動インストーラ１６２にしたがって、第１の記憶領域１６に記憶されているセキュリティソフトウエア部１６１を端末装置２０へインストールする。
【００４４】
ステップＳ４０３で、ＣＰＵ２１は、端末装置２０にインストールされたセキュリティソフトウエア部１６１の一部である制御プログラム２５４（領域変更プログラム）を起動する。
【００４５】
ステップＳ４０４で、ＣＰＵ２１は、領域変更プログラムにしたがって、第３の記憶領域１８にユーザ登録情報１８１が記憶されているか否かを判定する。第３の記憶領域１８は秘匿領域であるため、ＣＰＵ２１や領域変更プログラムは第３の記憶領域１８を直接的に認識することができない。そこで、領域変更プログラムがコントローラ１２に対して所定の問い合せコマンドを送信する。ＵＳＢストレージデバイス１０のコントローラ１２は、受信した問い合せコマンドにしたがって、第３の記憶領域１８にアクセスし、ユーザ登録情報１８１が記憶されているか否かを確認する。コントローラ１２は、この確認結果をレスポンスとして端末装置２０へ返信する。ＣＰＵ２１は、このレスポンスの内容を解析することで、第３の記憶領域１８にユーザ登録情報１８１が記憶されているか否かを判定する。ユーザ登録情報が存在する場合には、ステップＳ４０５に進む。
【００４６】
ステップＳ４０５で、ＣＰＵ２１は、領域変更プログラムにしたがって、認証実行部２５３（認証プログラム）を起動し、使用者認証を実行する。たとえば、ポインティングデバイス２８やキーボード等の入力装置から入力されたパスワードや暗証番号などの認証情報をＣＰＵ２１がコントローラ１２へ転送し、コントローラ１２が受信した認証情報をユーザ登録情報１８１と比較する。あるいは、ＵＳＢストレージデバイス１０に設けられた指紋認証デバイス１１が読み取った指紋情報を、コントローラ１２が、ユーザ登録情報１８１の一部である指紋情報と比較する。なお、セキュリティ強度は低下するが、コントローラ１２が、ユーザ登録情報１８１を端末装置２０へ送信し、認証実行部２５３が、受信したユーザ登録情報１８１と入力された認証情報とを比較してもよい。指紋認証では、指紋認証デバイス１１が読み取った指紋情報も端末装置へ転送されることになる。なお、パスワードや暗証番号は秘匿性向上のための制限、たとえば文字数制限等が設けられてもよいし、照合、比較される認証情報が暗号アルゴリズム等により暗号化されていてもよい。認証に使用される認証情報は、たとえば、ユーザを特定するための識別子、パスワード、暗証番号、バイオメトリクス情報のうち１つまたは複数を含む使用者登録情報であってもよい。このように、ＣＰＵ２１は、情報処理装置に備えられ、個人認証処理を実行する個人認証手段の一例である。
【００４７】
ＣＰＵ２１は、使用者認証に成功したか否かを判定する。成功したのであれば、ステップＳ４１１で、ＣＰＵ２１は、認証に成功した使用者が使用しているログインユーザ情報を認証情報記憶部２０３から取得し、ステップＳ４１２に進む。一方、認証に失敗したのであれば、ステップＳ４０６に進む。なお、ＣＰＵ２１、コントローラ１２および認証実行部２５３は、記憶装置に予め記憶されている認証情報と、端末装置または記憶装置に設けられた入力手段から入力された認証情報とを用いて認証処理を実行する認証手段の一例である。
【００４８】
ここでログインユーザ情報とは、複数ユーザログイン可能情報処理装置において、ログインユーザを一意に特定するための情報であり、具体的にはログインユーザ名、セッションＩＤ等をさす。
【００４９】
ステップＳ４０６で、ＣＰＵ２１は、使用者認証に失敗した回数が規定回数以内か否かを判定する。規定回数以内であれば、ステップＳ４０５に戻り、再度、使用者認証が実行される。この規定回数はパスワードの制限や指紋認証デバイス１１の他人受入率や本人拒否率に基づいて設定されてもよい。なお、失敗回数が規定回数を超えると、ステップＳ４０７に進む。
【００５０】
ステップＳ４０７で、ＣＰＵ２１は、強制終了を実行する。たとえば、ＣＰＵ２１は、インストールされたプログラムやファイルをアンインストールする。この際に、ＣＰＵ２１は、ＵＳＢストレージデバイス１０の接続を解除したり、第１の記憶領域１６（認識されている場合は第２の記憶領域１７および第３の記憶領域１８）を認識されない状態へ移行させたりする。認識可能状態から認識不可能状態への変更方法は実施例１で説明した通りである。もちろん、ＣＰＵ２１は、第２の記憶領域１７からＨＤＤ２５へコピーされた漏洩防止の対象となる情報もＨＤＤ２５から消去する。さらに、ＣＰＵ２１は、ＨＤＤ２５に記憶されていた漏洩防止の対象となる情報が第２の記憶領域１７に記憶されているときは、その情報も削除することが望ましい。
【００５１】
ところで、ステップＳ４０４でユーザ登録データを確認できなかった場合、ステップＳ４０８に進む。ステップＳ４０８で、ＣＰＵ２１は、領域変更プログラムにしたがって、新規登録を行うかどうかの問い合わせをモニタ２７に表示する。ＣＰＵ２１は、端末装置２０の入力装置から入力された情報に基づいて、使用者が新規登録を希望しているか否かを判定する。新規登録を行う場合、ステップＳ４０９に進む。
【００５２】
ステップＳ４０９で、ＣＰＵ２１は、初期登録（新規登録）を実行する。新規登録とは、次回以降の認証時に使用されるユーザ登録情報１８１を第３の記憶領域１８へ書き込む動作である。なお、端末装置２０からは第３の記憶領域に直接書き込めないため、所定のコマンドをコントローラ１２に発行して、コントローラ１２が第３の記憶領域１８へユーザ登録情報１８１を記憶する。新規登録が完了すると、ステップＳ４１１に進む。このように、ＣＰＵ２１、コントローラ１２および関与するプログラムなどは、記憶装置に認証情報が予め記憶されていなければ認証情報の初期登録を実行する登録手段の一例である。
【００５３】
なお、新規登録を行わない場合はステップ１５１０に進む。ステップＳ４１０で、ＣＰＵ２１は、強制終了を実行する。強制終了処理は、ステップＳ４０７について説明した通りである。これにより、端末装置２０へインストールされたプログラムはアンインストールされ、ＵＳＢストレージデバイス１０は自動的に、認識されない状態となる。
【００５４】
ステップＳ４１２で、ＣＰＵ２１は、セキュリティソフトウエア部２５２に含まれる制御プログラム２５４の一機能である利用制限機能（情報漏洩防止プログラム）を起動する。この利用制限機能は、ログインユーザ情報を用いてファイルへのアクセスを制御する機能である。これらの機能の詳細については後述する。
【００５５】
ステップＳ４１３で、ＣＰＵ２１は、領域変更プログラムに従い、端末装置２０により認識可能な記憶領域を第１の記憶領域１６から第２の記憶領域１７に切り替える。すなわち、第１の記憶領域１６が端末装置２０上で認識されなくなると同時に第２の記憶領域１７が認識されることになる。
【００５６】
なお、現在認識されている記憶領域に応じてＬＥＤ１４の発光色を切り替えてもよい。たとえば、ＬＥＤ制御部１２４は、第１の記憶領域１６が認識されているときは赤色ＬＥＤを点灯させ、第２の記憶領域１７が認識されているときは緑色のＬＥＤを点灯させる。これにより、使用者は、ＵＳＢストレージデバイス１０の記憶領域のうちどの記憶領域が端末装置２０によって認識されているかを視覚的に認識できるようになる。これは、記憶領域が切り替えられてもドライブレターが同一の維持されるケースで特に有用であろう。
ステップＳ４１４で、ＣＰＵ２１は、第２の記憶領域１７に記憶されているファイルを端末装置２０の操作によって操作できるような待機状態に移行する。なお、利用制限機能が適用されている場合は、第２の記憶領域１７に対して利用制限が課される。また、使用者認証が適正の場合、制御プログラム２５４によって、使用者に応じたユーザ使用ファイル１７１のみを、端末装置２０上に画面表示させてもよい。これにより、他の使用者のユーザ使用ファイルへのアクセスが禁止されるため、機密情報の保護や情報漏洩を防止しながら、複数の使用者が同一のＵＳＢストレージデバイス１０を利用することができる。
【００５７】
なお、第３の記憶領域１８は秘匿領域である。そのため、情報漏洩プログラムが端末装置２０を通じて秘匿領域に記憶されている情報を読み出すための読み出し命令を送信すると、コントローラ１２は、秘匿領域から情報を読み出して、端末装置に対して情報を送信する。これにより、認証情報や極めて重要な情報を保護することが可能となる。
【００５８】
また、記憶装置に予め記憶されている認証情報と、端末装置または記憶装置に設けられた入力手段から入力された認証情報とを用いて認証処理を実行する認証手段を提供できる。すなわち、認証処理が成功すると、切り替えプログラムが、端末装置に認識される記憶領域を第１の記憶領域から第２の記憶領域へと切り替える。よって、認証処理に成功しない限り、第２の記憶領域１７からユーザ使用ファイル１７１が端末装置２０へ読み出されることは抑制できる。これは、認証処理が成功すると、情報漏洩防止プログラムは、記憶装置に対するアクセスの制限を解除する解除手段としてＣＰＵ２１を機能させる事を意味しよう。
【００５９】
ＵＳＢストレージデバイス１０が端末装置２０から外されたときはアンインストール処理が制御プログラム２５４によって実行される。
【００６０】
図５は、実施例に係るＵＳＢストレージデバイス１０が端末装置２０から外されたときに実行されるアンインストール処理の一例を示すフローチャートである。ここでは制御プログラム２５４がアンインストール処理を実行するものとする。
【００６１】
ステップＳ５０１で、制御プログラム２５４（ＣＰＵ２１）は、ＵＳＢストレージデバイス１０が端末装置２０から外されたか否かを監視する。外されたことを検出すると、ステップＳ５０２へ進む。このように、ＣＰＵ２１は、記憶装置が端末装置から取り外されたことを検出する取り外し検出手段の一例である。
【００６２】
ステップＳ５０２で、ＣＰＵ２１は、ＵＳＢストレージデバイス１０から端末装置２０へインストールされたプログラムやファイルをアンインストール（削除）する。アンインストールは、制御プログラム２５４が備える削除機能が利用されてもよい。また、ＵＳＢストレージデバイス１０から端末装置２０へコピーされたファイルもＣＰＵ２１が自動的に削除する。なお、ＲＡＭ２３に記憶されている第２の記憶領域１７からのファイルデータは編集されてＲＡＭ２３に記憶し直しがなされる。そしてユーザによりＵＳＢストレージデバイス１０への記憶を指示するとこの編集済みのデータがＵＳＢストレージデバイス１０の領域２に記憶され上書きもしくは新たに格納される。ＵＳＢストレージデバイス１０を外すとＲＡＭ２３のデータはクリアされる。また、ＲＡＭ２３のデータによる文書や画像は編集前・編集後、モニタ２７により閲覧ができる。
【００６３】
たとえば、必要なプログラムやファイルがすべて「Ｓｏｆｔ−ａ」というディレクトリに収められており、自動インストール作業がディレクトリ「Ｓｏｆｔ−ａ」を丸ごとコピーしたものであったとする。たとえば  Ｅ：￥Ｓｏｆｔ−ａ  ⇒  Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ｓｏｆｔ−ａ。この場合、ＣＰＵ２１は、このディレクトリ（Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ｓｏｆｔ−ａ）を削除する。これは自動解凍書庫（たとえば  Ｓｏｆｔ−ｂ．ｅｘｅ  を解凍してディレクトリＳｏｆｔ−ｂが生成され、Ｃ：￥Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ￥Ｓｏｆｔ−ｂへコピーされる等）の場合でも同様である。
【００６４】
なお、一部のファイルやプログラムについては、削除やアンインストールの対象から除外してもよい。たとえば、設定ファイルを除外することにより、次回、端末装置２０に接続する際にセキュリティソフトウエアをインストールする時間が短縮される。
【００６５】
（領域変更プログラムの処理）
図６は、実施例に係る領域変更処理の一例を示したフローチャートである。領域変更処理は、端末装置２０にＵＳＢストレージデバイス１０が接続されると開始される。フィルタドライバを用いても認識可能な記憶領域を変更することができる。フィルタドライバも、ＵＳＢストレージデバイス１０から端末装置２０へインストールされる領域変更プログラムの一例である。
【００６６】
ステップＳ６０１で、端末装置２０のＯＳ（ＣＰＵ２１）は、ＵＳＢバス３１を介して接続されたＵＳＢストレージデバイス１０のコントローラ１２と通信を開始する。ここでまずＯＳは、ＵＳＢストレージデバイス１０を制御するためのデバイスドライバが有するデバイス情報取得コマンドによって、ＵＳＢストレージデバイス１０のデバイス情報を取得する。たとえば、ＯＳからの指令はデバイスドライバを介してＳＣＳＩコマンド等に変換されてＵＳＢコントローラによって行われる。ＵＳＢストレージデバイス１０のコントローラ１２は、ＵＳＢインターフェース１３を介してこのコマンドを受け取り、コントローラ１２が記憶しているデバイス情報を返答する。
【００６７】
このデバイス情報取得コマンドは、たとえば、Ｇｅｔ＿Ｄｅｓｃｒｉｐｔｏｒコマンド（ＵＳＢ標準デバイスに含まれるＵＳＢ規格のコマンド）に代表されるコマンドである。ＵＳＢストレージデバイス１０から端末装置２０へ送信されるデバイス情報は、たとえば、接続されたＵＳＢ機器（ＵＳＢストレージデバイス１０）のディスクリプタである。ディスクリプタは、図示されないＵＳＢストレージデバイス１０の管理領域に格納されている。以降はＵＳＢ規格コマンドおよびＳＣＳＩコマンドを中心に話を進めるが、もちろんＡＴＡＰＩなど、サブクラスとして定義かつ使用可能なものであれば何でもよい。また、サブクラス毎に途中に公知の一つ以上のコマンド変換手段を介してコマンドの送受信を行ってもよい。
【００６８】
ステップＳ６０２で、ＯＳ（ＣＰＵ２１）は、ＳＥＴ  Ａｄｄｒｅｓｓコマンドに代表されるアドレス設定コマンド（ＵＳＢストレージデバイス１０のアドレスを問い合せるコマンド）をＵＳＢストレージデバイス１０に送信し、ＵＳＢストレージデバイス１０からアドレス設定を受信する。以降で、ＯＳは、受信したアドレス設定にしたがってフレームを送信する。
【００６９】
ステップＳ６０３で、ＯＳ（ＣＰＵ２１）は、「Ｇｅｔ  Ｍａｘ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ  ＡＰＩ」コマンドに代表される論理ドライブ数取得コマンドにて、論理ユニット番号（ＬＵＮ）の値をＵＳＢストレージデバイス１０から取得する。デフォルトで、ＵＳＢストレージデバイス１０のコントローラ１２は、第１の記憶領域１６の論理ユニット（ＬＵＮ）の値が１であることを示す情報を返信する。
【００７０】
ステップＳ６０４で、ＯＳ（ＣＰＵ２１）は、Ｉｎｑｕｉｒｙコマンド（これはＳＣＳＩのコマンド）に代表されるフォーマット情報取得コマンドを用いて第１の記憶領域１６のフォーマット情報を得る。ＵＳＢストレージデバイス１０のコントローラ１２は、フォーマット情報としてＣＤ−ＲＯＭであることを示すＩＳＯ  ９６６０を返信する。ＯＳは、受信したフォーマット情報（例：ＩＳＯ  ９６６０）により、第１の記憶領域１６がＣＤ−ＲＯＭドライブであることを認識する。
【００７１】
図７は、実施例に係る端末装置が取得した記憶領域の管理情報の一例を示す図である。図７によれば、第１の記憶領域のＬＵＮが０であり、フォーマットがＩＳＯ９６６０であり、ＯＳから認識可能であり、クラスがマスストレージであり、サブクラスがＳＣＳＩであることが示されている。図７によれば、第２の記憶領域１７にはＬＵＮが設定されていないため、ドライブとしてＯＳ側から認識されないようになっている。
【００７２】
ステップＳ６０５で、ＯＳ（ＣＰＵ２１）は、ドライブとして認識した第１の記憶領域１６から自動インストーラ１６２を起動し、起動した自動インストーラ１６２にしたがってセキュリティソフトウエア部１６１をＨＤＤ２５の記憶領域２５１へインストールする。たとえば、ＣＰＵ２１は、ＯＳにしたがってａｕｔｏｒｕｎ．ｉｎｆを読み出してそこに記述されている自動インストーラを起動する。ここでは自動インストールの例としてオートランインストールを用いたが、他の自動インストール技術を用いてもかまわない。
【００７３】
ステップＳ６０６で、ＯＳ（ＣＰＵ２１）は、起動した自動インストーラ１６２にしたがって、セキュリティソフトウエア部２５２に含まれる領域変更プログラム（制御プログラム２５４）を起動する。
【００７４】
ステップＳ６０７で、領域変更プログラム（ＣＰＵ２１）は、記憶領域の切り替えを開始する。たとえば、ＣＰＵ２１は、第１の記憶領域と第２の記憶領域の認識フラグ（認識可／不可）を書き換えるための認識フラグ書換命令をＵＳＢストレージデバイス１０へ送信する。ＵＳＢストレージデバイス１０のコントローラ１２は、認識フラグ書換命令を受信すると、第１の記憶領域１６の認識フラグを認識不可に書き換え、第２の記憶領域１７の認識フラグを認識可に書き換える。さらに、コントローラ１２は、第１の記憶領域１６のＬＵＮを「０」から「ｎｕｌｌ」に書き換えた後、第２の記憶領域１７のＬＵＮを「ｎｕｌｌ」から「０」へ書き換える。これによって、第１の記憶領域１６が開放され、第２の記憶領域１７が端末装置２０のＯＳから認識されるようになる。
【００７５】
図８は、実施例に係る端末装置が取得した記憶領域の管理情報の一例を示す図である。図８によれば、第２の記憶領域の認識フラグが「可」に変更され、ＬＵＮも「０」に割り当てられている。反対に、第１の記憶領域の認識フラグが「不可」に変更され、ＬＵＮも「ｎｕｌｌ」に割り当てられている。
【００７６】
ステップＳ６０８で、領域変更プログラム（ＣＰＵ２１）は、第１の記憶領域１６のドライブレターと第２の記憶領域１７とのドライブレターとを同一にするか否かを判定する。同一にするか否かは、予め設定ファイルなどに記憶されているものとする。たとえば、ＯＳ（ＣＰＵ２１）が管理しているＬＵＮの一覧に、同一のドライブレターとするか否かの設定項目を設け、その設定項目を予めユーザの希望に応じて設定する。
【００７７】
同一のドライブレターにする場合は、ステップＳ６０９に進み、異なるドライブレターにする場合は、ステップＳ６１０に進む。
【００７８】
ステップＳ６０９で、領域変更プログラム（ＣＰＵ２１）は、ドライブレターの同一化処理を実行する。たとえば、ＭＳ−ＤＯＳのコマンドである「Ｓｕｂｓｔ」コマンドを記述したバッチファイルでドライブレターを固定する。このバッチファイルもＵＳＢストレージデバイス１０に予め記憶されているものとする。一方で、領域変更プログラム（ＣＰＵ２１）がダイアログをモニタ２７に表示し、同一のドライブレターを記憶するか否かをユーザに問い合せ、その問い合せ結果に基づいて同一化処理を実行してもよい。
【００７９】
また、領域変更プログラム（ＣＰＵ２１）は、割り当てるドライブレターをユーザに問い合せ、キーボードなどの入力装置から入力されたドライブレターを第２の記憶領域１７に割り当ててもよい。この場合、ユーザは、第１の記憶領域１６に割り当てられていたドライブレターを入力してもよい。
【００８０】
ステップＳ６１０で、領域変更プログラム（ＣＰＵ２１）は、第１の記憶領域１６の認識を開放する。たとえば、ＣＰＵ２１も、ＯＳ側に記憶されている第１の記憶領域１６のＬＵＮを「０」から「ｎｕｌｌ」に書き換える。これにより、ＯＳは、第１の記憶領域１６の認識ができなくなる。
【００８１】
ステップＳ６１１で、領域変更プログラム（ＣＰＵ２１）は、第２の記憶領域１７の認識処理を開始する。たとえば、ＣＰＵ２１は、第２の記憶領域１７のＬＵＮを「ｎｕｌｌ」から「０」へ書き換える。これにより、ＯＳは、第２の記憶領域１６を認識できるようになる。
【００８２】
図８によれば、ＯＳは、第２の記憶領域１７をＦＡＴでフォーマットされたリムーバブルディスクドライブであると認識する。このリムーバブルディスク領域にはユーザ使用ファイル１７１が含まれている。ここで、ＣＤ−ＲＯＭ領域として認識されるフォーマット情報としてＩＳＯ９６６０を、リムーバブルディスク領域として認識されるフォーマット情報としてＦＡＴを挙げたが、もちろんこれらは一例にすぎない。
【００８３】
本実施例では、ＬＵＮおよび認識フラグを書き換えることで記憶領域の切り替えを実行しているが、ＵＳＢストレージデバイス１０の内部にある管理情報を直接的または間接的に用いて第１の記憶領域１６の認識を開放して第２の記憶領域１７を認識させてもよい。たとえば、ＵＳＢデバイスの解放コマンドを第１の記憶領域１６へ適用し、その直後に初期化コマンドを第２の記憶領域１７へ適用すれば、記憶領域を切り替えることができる。
【００８４】
また、管理情報を予め二つ用意しておいて、最初にＵＳＢストレージデバイス１０が端末装置２０に接続されたときは一つ目の管理情報が使用され、自動インストールにおいて二つ目の管理情報に変更されてもよい。なお、ＬＵＮの値、最初に読み込まれる管理情報は毎回リセットされるものとする。これは、ＯＳが取得した第一の記憶領域１６および第二の記憶領域１７に関する情報が、このＵＳＢストレージデバイス１０が端末装置２０から外されたときにアンインストールされ、その後の再接続の際にＯＳが再びＵＳＢストレージデバイス１０の情報を取得するからである。
【００８５】
以上説明したように、本実施例によれば、端末装置２０において擬似的にＣＤ−ＲＯＭドライブとリムーバブルディスク等が入れ替わる形となる。つまり、ＵＳＢストレージデバイス含まれるＣＤ−ＲＯＭ領域とリムーバブル領域は同時に認識されることはない。また、ＣＤ−ＲＯＭ領域とリムーバブル領域のドライブレターが同一であれば、一つの追加されたドライブがＣＤ−ＲＯＭ領域からリムーバブル領域に入れ替わったように、ユーザには擬似的に認識させることができる。
【００８６】
したがって、記憶領域を切り替えることにより、ドライブレターの枯渇を防止することができる。また、たとえばどの記憶領域に所望のファイルが格納されているか等、ユーザは理解しておく必要がない為、ユーザの負担を軽減することができる。
【００８７】
なお、図９は、実施例に係る端末装置によって認識された第１の記憶領域の一例を示す図である。図１０は、実施例に係る端末装置によって認識された第２の記憶領域の一例を示す図である。両者を比較すると、実際の記憶領域が切り替わっているにもかかわらず、ドライブレターが一致していることがわかる。記憶領域が切り替わっていることは、記憶されているファイルの内容が異なっているため、理解できよう。
【００８８】
（情報漏洩防止プログラムの処理）
情報漏洩防止プログラムとして機能する制御プログラム２５４の利用制限機能は、任意のプロセスから第２の記憶領域へのアクセスが発生する度に、図４のステップＳ４１１で取得したログインユーザ情報と、アクセスを行ったプロセスのログインユーザ情報を比較し、アクセス制御を行う。なお、フィルタドライバを用いてもＵＳＢストレージデバイスの記憶領域へのアクセス制御を行うことができる。フィルタドライバも、ＵＳＢストレージデバイス１０から端末装置２０へインストールされる情報漏洩防止プログラムの一例である。
【００８９】
図１１は、利用制限機能の動作の一例を示したフローチャートである。ステップＳ１１０１で、ＣＰＵ２１は、起動している情報漏洩防止プログラムにしたがって、アクセス要求（読み書き要求）を発生したプロセスの名称がブラックリスト１８３に登録されているかを判定する。ブラックリスト１８３が第３の記憶領域１８に記憶されている場合、ＣＰＵ２１がブラックリスト１８３を直接的に読み取れない。そこで、認証処理と同様に、ＣＰＵ２１は、発生したプロセスの名称をコントローラ１２に転送し、コントローラ１２が、この名称とブラックリスト１８３とを比較し、比較結果をＣＰＵ２１に返送する。あるいは、ブラックリスト１８３をコントローラ１２がＣＰＵ２１に転送し、ＣＰＵ２１が、比較処理を実行してもよい。ブラックリスト１８３に登録されたプロセスであれば、ステップＳ１１０８に進む。
【００９０】
ステップＳ１１０８で、ＣＰＵ２１は、そのプロセスの動作そのものをキャンセルする。これにより、既知のウイルスやワームによる予期せぬ動作をストップさせることができる。また、印刷またはそれに関連するプロセス、ネットワーク接続に関連するプロセス、画面を画像として取り込むプロセス（プリントスクリーン等）も動作を禁止される。このように、ＣＰＵ２１は、情報処理装置において実行されているプロセスの識別情報が、ブラックリストに登録されている識別情報と一致すると、当プロセスによる動作をキャンセルするキャンセル手段として機能することになる。
【００９１】
発生したプロセスの名称がブラックリスト１８３に登録されていない場合（ステップＳ１１０１のＮＯ）、ステップＳ１１０２に進む。ステップＳ１１０２で、ＣＰＵ２１は、発生したプロセスの名称がホワイトリスト１８２に登録されているかどうかを判定する。この判定処理もブラックリストに関する判定処理と同様の処理となる。ホワイトリスト１８２に登録されているプロセスである場合（ステップＳ１１０２のＹＥＳ）、ステップＳ１１０３に進む。一方、ブラックリスト１８３にもホワイトリスト１８２にも登録されていないプロセスであれば、ステップＳ１１０７に進む。
【００９２】
ステップＳ１１０３で、ＣＰＵ２１は、発生したプロセスのログインユーザ情報が、認証に成功したユーザのログインユーザ情報（図４のステップＳ４１１で取得したログインユーザ情報）とを比較し、両者が同一かを判定する。発生したプロセスのログインユーザ情報は、情報処理装置にログインしている複数のユーザをそれぞれ識別するための識別情報である。認証に成功したユーザのログインユーザ情報は、個人認証手段により認証されたローカルユーザの識別情報である。プロセスのログインユーザ情報は、一般にＯＳによって管理されている。よって、ＣＰＵ２１は、発生したプロセスのログインユーザ情報をＯＳから取得する。両者が同一でない場合、判定対象のプロセスはリモートユーザが使用しているプロセスであるため、ステップＳ１１０７に進む。両者同一の場合は、判定対象のプロセスはローカルユーザが使用しているプロセスであるため、ステップＳ１１０４に進む。このように、ＣＰＵ２１は、ローカルユーザによる制限領域に対する情報の読み書き要求と、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書き要求とを検出する検出手段として機能する。
【００９３】
ステップＳ１１０７で、そのプロセスのアクセス先は、ＵＳＢストレージデバイス１０内か否かを判定する。アクセス先がＵＳＢストレージデバイス１０以外の場合（ステップＳ１１０７のＮＯ）、ＣＰＵ２１は、何も行わない（ステップＳ１１０６）。すなわち、端末装置２０が備える記憶装置への書き込み要求であれば、ＣＰＵ２１は、通常どおり許可し、制限処理は行わない。一方、アクセス先がＵＳＢストレージデバイス１０内の場合（ステップＳ１１０７のＹＥＳ）、ステップＳ１１０８で、ＣＰＵ２１は、そのプロセスの動作そのものをキャンセルする。すなわち、そのプロセスによる第２の記憶領域１７へのファイルのアクセスを防止する。このように、ＣＰＵ２１は、情報処理装置において実行されているプロセスの識別情報が、ホワイトリストに登録されている場合であって、かつ、プロセスが個人認証処理により認証されたローカルユーザによって起動されたプロセスでない場合に、記憶媒体の制限領域へに対する動作をキャンセルするアクセス制限手段として機能する。
【００９４】
このように、ＣＰＵ２１は、情報処理装置において実行されているプロセスの識別情報が、ホワイトリストに登録されている識別情報と一致するか否かに応じて、制限領域に対するアクセスを制限するアクセス制限手段として機能する。これにより、ホワイトリスト１８２に登録されていない未知のアプリケーションによるフラッシュメモリ１５へのアクセスや、認証に成功していないユーザ、とりわけリモートユーザによるフラッシュメモリ１５へのアクセスをストップさせることができる。つまり、ホワイトリスト１８２に登録されていないプロセスや、認証に成功していないユーザはフラッシュメモリ１５内の記憶領域にアクセスすることができない。
【００９５】
ステップＳ１１０４で、ＣＰＵ２１は、そのプロセスのアクセス先がＵＳＢストレージデバイス１０内か否かを判定する。アクセス先がＵＳＢストレージデバイス１０以外の場合、ＣＰＵ２１は、何も行わない（ステップＳ１１０６）。アクセス先がＵＳＢストレージデバイス１０内の場合、ステップＳ１１０５で、ＣＰＵ２１は、そのプロセスによる第２の記憶領域１７へのファイルのアクセスを許可する。すなわち、認証された指紋認証デバイス１１によって認証されたローカルユーザによって使用されているプロセスによる第２の記憶領域１７のファイルに対する読み書きが許可される。このように、ＣＰＵ２１は、情報処理装置において実行されているプロセスの識別情報が、ホワイトリストに登録されている場合であって、かつ、プロセスが個人認証処理により認証されたローカルユーザによって起動されたプロセスである場合に、記憶媒体の制限領域へのアクセスを許可するアクセス制限手段として機能する。
【００９６】
このように、ＣＰＵ２１は、検出手段が個人認証手段により認証されたローカルユーザによる制限領域（USBストレージデバイス内）に対する情報の読み書き要求を検出すると、個人認証手段により認証されたローカルユーザによる制限領域に対する情報の読み書きを許可し、検出手段が個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書き要求を検出すると、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書きを制限する読み書き制御手段として機能する。情報漏洩防止プログラムは、端末装置２０において実行されているプロセスのログインユーザ情報が、認証に成功したローカルユーザのログインユーザ情報と一致するか否かに応じて、第２の記憶領域１７に対するアクセスを制限するアクセス制限手段として、端末装置２０を機能させる。また、情報漏洩防止プログラムは、端末装置２０において実行されているプロセスの識別情報がホワイトリスト、ブラックリストに登録されている識別情報と一致するか否かに応じて、第２の記憶領域１７に対するアクセスを制限するアクセス制限手段として、端末装置２０を機能させる。
【００９７】
また、認証に成功したローカルユーザのログインユーザ情報に依存して、ＣＰＵ２１は、読み書きの許可や読み込みのみの許可などのアクセス権限を変更してもよい。なお、発生したプロセスと、ブラックリストとの比較（ステップＳ１１０１）、ホワイトリストとの比較（Ｓ１１０２）は、発生したプロセスのログインユーザ情報が、認証に成功したユーザのログインユーザ情報と同一か否かの判定処理（ステップＳ１１０３）の後に行ってもよい。
【００９８】
以上説明したように、複数ユーザ同時使用可能な情報処理装置においても情報の漏洩を抑制するためのセキュリティ機能を実現する。
【００９９】
［第２実施例］
第２実施例は、ブラックリストやホワイトリストを用いないよりシンプルな実施例である。なお、認証に成功したローカルユーザのみが秘匿領域にアクセスでき、認証に失敗したローカルユーザやリモートユーザが秘匿領域（セキュリティ領域）へアクセスを制限される点で、第２実施例と第１実施例とは共通している。
（ハードウエア構成）
図１２は、端末装置１２０１と、それに接続される汎用のＵＳＢストレージデバイス１２１０とを示す概略構成図である。端末装置１２０１は、パーソナルコンピュータなど、汎用のインターフェースを介して外部記憶装置を接続可能なコンピュータである。端末装置１２０１は、上述した端末装置２０とほぼ同様の構成を備えており、ＯＳ２０２およびターミナルサービス提供部２０１も備えている。ＵＳＢストレージデバイス１２１０は、上述したＵＳＢストレージデバイス１０と同様の記憶装置であり、端末装置１２０１が備えるインターフェース１２０８に対して着脱可能な記憶媒体の一例である。なお、記憶媒体は、ＦＤ（フレキシブルディスク）やＳＤカードなど、記憶領域を備えた他の種類の記憶装置であってもよい。すなわち、セキュリティプログラムを記憶しておくプログラム記憶領域と、本発明に係る読み書きの制限されるセキュリティ領域とを確保できる記憶装置であれば、どのような種類の記憶装置であってもよい。
【０１００】
ここでは説明をわかりやすくするために、ＵＳＢストレージデバイス１２１０を接続するためのインターフェース１２０８がＵＳＢインターフェースであるものと仮定する。しかし、本発明のインターフェースは、これに限定されず、ＩＥＥＥ１３９４、ワイヤレスＵＳＢ、ｅＳＡＴＡなど、他の種類のインターフェースであってもよい。インターフェース１２０８には、他の端末装置と２１０、２２０とネットワークを介して通信するための通信回路である。
【０１０１】
端末装置１２０１は、たとえば、ＣＰＵ１２０２、ＲＯＭ１２０３、ＲＡＭ１２０４、ハードディスクドライブ（ＨＤＤ）１２０５、入力装置１２０６、表示装置１２０７、インターフェース１２０８及びシステムバス１２０９を備えている。ＣＰＵ１２０２は、ＲＯＭ１２０３やＨＤＤ１２０５に記憶されているコンピュータプログラムに基づいて各部を制御するプロセッサである。本発明のＣＰＵ１２０２は、ＵＳＢストレージデバイス１２１０から読み出した自動インストールプログラム１２１４やセキュリティプログラム１２１５を実行する。これにより、ＣＰＵ１２０２は、ＵＳＢストレージデバイス１２１０に確保されたセキュリティ領域へのデータの書き込みとセキュリティ領域からのデータの読み出しを許可する読み書き制御手段として機能する。
【０１０２】
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０４は、ワークエリアとして機能する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２０３は、不揮発性の記憶素子であり、ファームウエアなどを記憶する。ＨＤＤ１２０５には、ＯＳ（オペレーティングシステム）、アプリケーションプログラムなどが記憶されている。なお、ＣＰＵ１２０２は、自動インストールプログラム１２１４を実行することで、セキュリティプログラム１２１５をＨＤＤ１２０５に格納及びインストールする。ＣＰＵ１２０２と各部は、システムバス１２０９を介して命令やデータの送受信を実行する。
【０１０３】
入力装置１２０６は、ユーザが端末装置１２０１に対して指示を入力するための装置であり、キーボードやマウスなどにより構成されている。入力装置１２０６は、たとえば、認証データ（パスワード）やセキュリティ領域の設定情報を入力する際に使用される。入力された情報はＣＰＵ１２０２よって受け付けられる。表示装置１２０７は、たとえば、ＣＲＴや液晶表示装置により構成されており、ＣＰＵ１２０２による処理結果を画像や文字などによって表示する。インターフェース１２０８は、ＵＳＢバス１２２０を介してＵＳＢストレージデバイス１２１０が備えるＵＳＢインターフェース１２１１と接続する。すなわち、ＵＳＢバス１２２０を介して端末装置１２０１とＵＳＢストレージデバイス１２１０とが双方向にデータの送受信を行う。
【０１０４】
以降では、端末装置１２０１がパーソナルコンピュータであることを前提にして説明する。ただし、演算処理能力を有する機器であるならばその種類や機種は限定されることはなく、端末装置１２０１として本発明を適用できる。
【０１０５】
一方、ＵＳＢストレージデバイス１２１０は、ＵＳＢインターフェース１２１１、コントローラ１２１２、発光ダイオード（ＬＥＤ）１２０８、不揮発性記憶手段であるフラッシュメモリ１２１３を備えている。コントローラ１２１２は、端末装置１２０１からＵＳＢインターフェース１２１１を介して受信した命令に従って、フラッシュメモリ１２１３に対してデータの読み出し、書き込みおよび削除を実行する。ＵＳＢインターフェース１２１１は、ＵＳＢバス１２２０を介して、端末装置１２０１と通信を行う。すなわち、ＵＳＢ規格に基づいたパケットが送受信される。ＬＥＤ１２１８は、フラッシュメモリ１２１３に対してファイルの読み出し、書き込み、削除が実行されている際に点灯する発光体である。ＬＥＤ１２１８は、フラッシュメモリ１２１３に対してファイルの読み出し、書き込みおよび削除が実行中であることをユーザに示す。
【０１０６】
フラッシュメモリ１２１３は、記憶保持動作が不要な半導体メモリであり、ファイルや情報を記憶することができる。フラッシュメモリ１２１３に代えて、他の種類の不揮発性記憶装置が採用されてもよい。フラッシュメモリ１２１３には、たとえば、プログラム格納領域、自由領域及び秘匿領域とが存在する。この点は、図３に示したフラッシュメモリ１５と同様である。プログラム格納領域には、自動インストールプログラム１２１４、セキュリティプログラム１２１５及び設定データ１２１６などが記憶される。なお、プログラム格納領域は自由領域そのものまたはその一部であってもよい。
【０１０７】
自動インストールプログラム１２１４は、ＵＳＢストレージデバイス１２１０が端末装置１２０１に接続されたときに実行されるコンピュータプログラムまたはスクリプトである（例：ａｕｔｏｒｎ．ｉｎｆ）。ここでは、自動インストールプログラム１２１４は、セキュリティプログラム１２１５を端末装置１２０１へとインストールするために使用される。セキュリティプログラム１２１５は、自身が情報処理装置で実行されている場合に限り、ＵＳＢストレージデバイス１２１０に確保されたセキュリティ領域へのデータの書き込みとセキュリティ領域からのデータの読み出しを許可する。セキュリティ領域に対するデータの読み書きは、実行中のセキュリティプログラム１２１５が許可しなければ、実行できない。ただし、セキュリティプログラム１２１５が実行中でない場合は、セキュリティ領域（秘匿領域）への書き込みがＯＳを通じて許可されてもよい。一方、非セキュリティ領域である自由領域に対するデータの読み書きは、セキュリティプログラム１２１５が実行中であるか否かとは無関係に許可される。すなわち、通常のＯＳの制御にしたがって自由にデータの読み書きが実行可能である。
【０１０８】
本実施形態においては、データの読み書きの制限（セキュリティ機能）を暗号化処理、復号化処理及び認証処理によって実現するものとして説明する。すなわち、セキュリティ領域である秘匿領域へ書き込まれるデータは基本的に暗号化される。一方、認証の成功したユーザが、秘匿領域から暗号化されたデータを読み出すことを指示した場合には、暗号化されたデータの復号化が実行される。
【０１０９】
（記憶媒体の初期化処理）
図１３は、端末装置１２０１において、ＵＳＢストレージデバイス１２１０の初期化処理を示すフローチャートである。ここでは、ＵＳＢストレージデバイス１２１０には、セキュリティプログラム１２１５が導入済みでないものとする。よって、初期化処理は、端末装置１２０１内のＨＤＤ１２０５に記憶されているセキュリティプログラム１２１５をＵＳＢストレージデバイス１２１０へインストールする処理となる。端末装置１２０１内のＨＤＤ１２０５に記憶されているセキュリティプログラム１２１５をＣＰＵ１２０２が起動し、ＣＰＵ１２０２はセキュリティプログラム１２１５にしたがってＵＳＢストレージデバイス１２１０の初期化処理を実行する。
【０１１０】
ステップＳ１３０１で、ＣＰＵ１２０２は、フラッシュメモリ１２１３に特定の使用者のみがアクセスできる秘匿領域（セキュリティ領域）と、第三者も自由に使用できる自由領域（非セキュリティ領域）領域とを、入力装置１２０６から入力された情報にしたがって定義及び設定する。最も簡単な例としては、秘匿領域と自由領域とを異なるフォルダによって実現することであろう。ＣＰＵ１２０２は、秘匿領域にすべきフォルダの名称（例：秘匿領域）やファイルパスを入力することを促すためのメッセージを表示装置１２０７から出力する。ユーザは、秘匿領域にすべきフォルダの名称やファイルパスを入力装置１２０６から入力する。なお、自由領域は本来なくてもよいが、ユーザが任意で設定してもよい。つまり、秘匿領域として明示的に指定されていない他のフォルダは自由領域として黙示的に指定されたことになる。さらに、秘匿領域と自由領域の記憶容量を設定できるようにしてもよい。記憶容量の設定は、たとえば、フラッシュメモリ１２１３を論理フォーマットした後で、記憶容量を指定した複数の基本領域や拡張領域を確保することで実現される。このように、ＣＰＵ１２０２は、記憶媒体にセキュリティ領域を定義する定義手段として機能する。
【０１１１】
図１４は、フォルダ階層の一例を示した図である。フォルダ階層１４０１によれば、ローカルディスク（Ｃドライブ）と、リムーバブルディスク１４０２（Ｄドライブ）とが端末装置１２０１に内蔵ないしは接続されていることがわかる。さらに、リムーバブルディスク１４０２には、秘匿領域１４０３と自由領域１４０４とがフォルダとして設定されている。なお、自動インストールプログラム１２１４、セキュリティプログラム１２１５及び設定データ１２１６は、ルートディレクトリに記憶されているものとする。秘匿領域１４０３は、情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、個人認証処理により認証されなかったローカルユーザおよびリモートユーザによる情報の読み書きが制限された記憶領域である制限領域の一例である。自由領域１４０４は、情報処理装置に対して直接的にログインしているローカルユーザと、情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域の一例である。
【０１１２】
図１５は、設定データの一例を示す図である。ＣＰＵ１２０２は、セキュリティ領域として設定されたフォルダの名称（ファイルパス）１５０１を設定データ１２１６に保存する。なお、複数のセキュリティ領域が設定されてもよい。さらに、ユーザＩＤとパスワードとを複数のセキュリティ領域に関連付けて設定データ１２１６に記憶しておけば、複数のユーザ間でＵＳＢストレージデバイス１２１０を共用する際にもセキュリティを維持できる。設定データ１２１６には、後述する認証データ１５０２も保存される。設定データ１２１６は、フラッシュメモリ１２１３に記憶されてもよいし、ＨＤＤ１２０５に記憶されてもよい。
【０１１３】
ここで、秘匿領域や自由領域をフォルダにより実現しているが、本発明はこれにのみ限定されるわけではない。たとえば、フラッシュメモリ１２１３の物理メモリアドレスを利用して各領域が区別されてもよい。つまり、秘匿領域を物理メモリアドレスのうちＡからＢまでとし、自由領域を物理メモリアドレスのうちＣからＤまでとするが如くである。
【０１１４】
ステップＳ１３０２で、ＣＰＵ１２０２は、認証処理で使用するための認証データ（例：パスワード）を決定し、設定データ１２１６に保存する。パスワードは、入力装置１２０６からユーザによって指定されたものであってもよいし、ＣＰＵ１２０２が一定のルールに基づいて決定してもよい。後者の場合、ＣＰＵ１２０２は、決定したパスワードを表示装置１２０７に表示することで、ユーザにパスワードを覚えてもらうことになる。また、パスワードは、ユーザの生体認証（例：指紋認証、虹彩認証、声紋認証）データであってもよい。この場合は、生体認証データの入力装置が端末装置１２０１またはＵＳＢストレージデバイスに必要となる。いずれの場合もセキュリティプログラム１２１５にしたがってＣＰＵ１２０２は入力装置から入力された生体情報を生体認証データとしてフラッシュメモリ１２１３に設定する。このように、ＣＰＵ１２０２は、セキュリティ領域に対するデータの読み出し書き込みを許可するための認証データを設定する設定手段として機能する。
【０１１５】
なお、ＣＰＵ１２０２は、セキュリティ領域（すなわちフォルダ）ごと、または、情報処理装置ごとに異なる暗号鍵を生成する暗号鍵生成手段として機能してもよい。これにより、ある端末装置１２０１において暗号化されたＵＳＢストレージデバイス１２１０内のデータは、他の端末装置１２０１では復号できなくなる。なお、暗号機能と復号機能はソフトウエアとＣＰＵ１２０２によって実現されてもよいし、ＡＳＩＣなどの専用のハードウエアによって実現されてもよいし、これらを組み合わせて実現されてもよい。
【０１１６】
ステップＳ１３０３で、ＣＰＵ１２０２は、ＨＤＤ１２０５に記憶されているセキュリティプログラム１２１５、自動インストールプログラム１２１４及び設定データ１２１６をＵＳＢストレージデバイス１２１０のフラッシュメモリ１２１３にインストールし、初期化処理を終了する。このような初期化処理により、ユーザの事情に合わせて、各領域の容量やパスワードの設定・変更を行うことができる。
【０１１７】
（端末装置の処理）
図１６は、端末装置１２０１にＵＳＢストレージデバイス１２１０が挿入された際、端末装置１２０１の処理の流れを示すフローチャートである。なお、ＣＰＵ１２０２は、ＯＳにしたがってＵＳＢストレージデバイス１２１０が端末装置１２０１に接続されたか否か、ＵＳＢストレージデバイス１２１０が端末装置１２０１から取り外されたか否かを監視しているものとする。このように、ＣＰＵ１２０２は、インターフェースに記憶媒体が接続されたか、または、インターフェースから取り外されたかを検出する検出手段として機能する。
【０１１８】
ステップＳ１６０１で、初期化処理が終了したＵＳＢストレージデバイス１２１０が端末装置１２０１に挿入（接続）される。ＣＰＵ１２０２は、ＵＳＢストレージデバイス１２１０が端末装置１２０１に接続されたことを検出すると、ステップＳ１６０２に進む。なお、この際に、ＣＰＵ１２０２は、ＯＳにしたがってＵＳＢストレージデバイス１２１０をリムーバブルティスクとして認識し、ドライブレターを割り当てたり、フォルダの構成などを認識したりする。
【０１１９】
ステップＳ１６０２で、ＣＰＵ１２０２は、ＯＳにしたがってＵＳＢストレージデバイス１２１０内の自動インストールプログラム１２１４を読み出して実行し、自動インストールプログラム１２１４にしたがってセキュリティプログラム１２１５を端末装置１２０１のＨＤＤ１２０５にインストールする。このように、ＣＰＵ１２０２は、インターフェースに記憶媒体が接続されると、セキュリティプログラムを情報処理装置にインストールするインストール手段として機能する。ＣＰＵ１２０２は、インストールしたセキュリティプログラム１２１５を自動インストールプログラム１２１４にしたがって起動する。ＣＰＵ１２０２は、認証処理を開始する。たとえば、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって表示装置１２０７を介してユーザにパスワードの入力を促すためのダイアログなどを表示する。このように、ＣＰＵ１２０２は、セキュリティプログラムが起動されたときに認証データを受け付ける受付手段として機能する。
【０１２０】
ステップＳ１６０３で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、入力装置１２０６から入力されたパスワードと、フラッシュメモリ１２１３またはＨＤＤ１２０５に記憶されているパスワードとに基づいて認証処理を実行する。このように、ＣＰＵ１２０２は、受け付けられた認証データと設定手段により設定された認証データとを比較することで認証処理を実行する認証手段として機能する。ＣＰＵ１２０２は、両者を比較し、両者が一致すれば、認証成功と判定し、両者が一致しなければ認証失敗と判定する。認証が失敗すると、ステップＳ１６０７に進む。ステップＳ１６０７で、ＣＰＵ１２０２は、セキュリティプログラム１２１５を終了させ、セキュリティプログラム１２１５を端末装置１２０１からアンインストールする。
【０１２１】
一方、ステップＳ１６０３で、認証が成功すると、ステップＳ１６０４に進む。ステップＳ１６０４で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、端末装置１２０１において認証者が使用しているログインユーザ情報を取得し、ＲＡＭ１２０４の内部に設けられた認証情報記憶部２０３に格納して保存する。ログインユーザ情報とは端末装置１２０１において、操作ユーザを特定するための、識別子であり、ユーザ名、セッションＩＤなどが考えられる。ここでは、セキュリティプログラム１２１５は端末装置１２０１に直接的にログインしているローカルユーザによって実行されるプログラムである。そのため、認証処理の対象者も当然にローカルユーザである。ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、このローカルユーザの識別情報（ログインＩＤ）などをＯＳから取得する。また、ＣＰＵ１２０２は、ローカルユーザの識別情報と関連付けて、ＵＳＢストレージデバイス１２１０の秘匿領域を使用するための認証処理に成功したことを示すフラグなどの情報もＲＡＭなどに記憶しておいてもよい。
【０１２２】
ステップＳ１６０４で、ログインユーザ情報が取得されると、ステップＳ１６０５に進む。ステップＳ１６０５で、ＣＰＵ１２０２は、セキュリティプログラム１２１５が備える機能の一つである秘匿領域モードをＯＮに切り替える。ＣＰＵ１２０２は、秘匿領域モード情報をＲＡＭ１２０４に記憶する。秘匿領域モード情報は、秘匿領域モードがＯＮかＯＦＦかを示すフラグのようなデータである。秘匿領域モードがＯＮになると、セキュリティプログラム１２１５は、その後も常駐しつづける。すなわち、ＣＰＵ１２０２は、セキュリティプログラム１２１５及び設定データ１２１６にしたがって秘匿領域１４０３を特定し、秘匿領域１４０３に対するデータの読み書きを監視する。これは、ＣＰＵ１２０２が、秘匿領域１４０３へ書き込まれるデータを暗号化し、秘匿領域１４０３から読み出されるデータを復号化するためである。また、セキュリティプログラム１２１５は、リモートユーザや認証に失敗したローカルユーザによる秘匿領域へのアクセスを拒絶する必要がある。ＯＳは、その時点でログインしているユーザがローカルユーザであるのか、リモートユーザであるのかを把握している。よって、ＣＰＵ１２０２は、秘匿領域１４０３に対して読み書き要求を発行したユーザがローカルユーザであるのか、リモートユーザであるのかをＯＳに問い合せ、このどちらであるかを特定する。リモートユーザであった場合、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、秘匿領域１４０３へのアクセスを拒絶することになる。
【０１２３】
ステップＳ１６０６で、ＣＰＵ１２０２は、ＵＳＢストレージデバイス１２１０が端末装置１２０１から取り外されたか否かを判定する。ＵＳＢストレージデバイス１２１０が端末装置１２０１から取り外されると、ステップＳ１６０７に進む。ステップＳ１６０７では、セキュリティプログラム１２１５の終了と、自動アンインストールが実行される。このように、ＣＰＵ１２０２は、インターフェースから記憶媒体が取り外されると、セキュリティプログラムを情報処理装置からアンインストールするアンインストール手段として機能する。
【０１２４】
図１７は、ＵＳＢストレージデバイス１２１０へのデータの書き込みについて、端末装置１２０１における処理を示すフローチャートである。ステップＳ１７０１で、ＣＰＵ１２０２は、アプリケーションプログラムにしたがってデータ（情報）の書き込み要求を発生する。ＣＰＵ１２０２は、常駐しているセキュリティプログラム１２１５にしたがって、データ（情報）の書き込み要求を監視しており、書き込み要求の発生を検出すると、ステップＳ１７０２へ進む。
【０１２５】
ステップＳ１７０２で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがってＲＡＭ１２０４から秘匿領域モード情報を読み出し、秘匿領域モードがＯＮであるか否か判定する。秘匿領域モードがＯＮであれば、ステップＳ１７０３に進む。
【０１２６】
ステップＳ１７０３で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、データが書き込まれる領域が秘匿領域１４０３であるか否かを判定する。データが書き込まれる領域を特定するための情報は、ＯＳから受け取るものとする。秘匿領域１４０３がターゲットフォルダである場合、ステップＳ１７０４に進む。
【０１２７】
ステップＳ１７０４で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、データの書き込みの発生したプロセスが、認証を行ったユーザと同一のセッションからのプロセスであるか否かを判定する。セキュリティプログラム１２１５にしたがって認証に成功したローカルユーザのログインユーザ情報は、ＲＡＭ１２０４の内部に設けられた認証情報記憶部２０３に記憶されている。一方、プロセスを実行しているユーザのログインユーザ情報はＯＳから取得できる。したがって、ＣＰＵ１２０２は、認証情報記憶部２０３から読み出したログインユーザ情報と、ＯＳから取得したログインユーザ情報とを比較し、両者が一致するかどうか（すなわち、秘匿領域へのアクセスを禁止されるべきリモートユーザまたは認証に失敗したローカルユーザかどうか）を判定する。あるいは、秘匿領域に対するアクセスを要求したプロセスのセッションが、認証済みのユーザに関連付けられたセッションとが同一かどうかを判定してもよい。セッションごとに付与された識別情報であるセッションＩＤがログインユーザ情報になりうる。よって、セッションＩＤを比較した結果、秘匿領域に対するアクセスを要求したプロセスのセッションが、認証済みのユーザに関連付けられたセッションと同一である場合、ステップＳ１７０５に進む。両者が一致しなければ、判定対象のプロセスはリモートユーザまたは認証に失敗したローカルユーザのプロセスであるため、Ｓ１７０６に進む。なお、この場合、アクセスを完全に禁止するために、書き込み要求を拒絶してもよい。
【０１２８】
ステップＳ１７０５で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、書き込み対象データを暗号化する。このように、ＣＰＵ１２０２は、個人認証手段により認証されたローカルユーザによって制限領域へ書き込まれることになった情報を暗号化する暗号化手段として機能する。
【０１２９】
ステップＳ１７０６で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、フラッシュメモリ１２１３内の秘匿領域１４０３に暗号化されたデータを書き込む。このように、フラッシュメモリ１２１３に格納する前に暗号化が実行されるため、ユーザによる機密情報の暗号化のし忘れを防止できる。
【０１３０】
一方、ステップＳ１７０３で、データの書き込みターゲットフォルダが秘匿領域１４０３でなければ（例：データの書き込みターゲットフォルダが自由領域１４０４）、ステップＳ１７０４をスキップして、ステップＳ１７０６に進む。ステップＳ１７０６で、ＣＰＵ１２０２は、暗号化せずに、データを自由領域１４０４に書き込む。このように、ＣＰＵ１２０２は、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによって制限領域へ書き込まれるようとしている情報を暗号化しない暗号化手段として機能する。
【０１３１】
また、ステップＳ１７０４で、データが書き込みの発生したプロセスが認証済みユーザが起動したプロセスでなければ、Ｓ１７０５をスキップして、ステップＳ１７０６に進む。ステップＳ１７０６で、ＣＰＵ１２０２は、暗号化せずに、データを秘匿領域に書き込む。
【０１３２】
また、ステップＳ１７０２で、秘匿領域モードがＯＮでない場合、ステップＳ１７０３及びステップＳ１７０４をスキップして、ステップＳ１７０６に進む。ステップＳ１７０６で、ＣＰＵ１２０２は、データを書き込むターゲットとなる領域が秘匿領域１４０３であるか自由領域１４０４であるかとは無関係に、データを暗号化することなくそのまま書き込む。
【０１３３】
図１８は、ＵＳＢストレージデバイス１２１０からのデータの読み込みについて、端末装置１２０１における処理を示すフローチャートである。
【０１３４】
ステップＳ１８０１で、ＣＰＵ１２０２は、任意のアプリケーションプログラムにしたがって、ＵＳＢストレージデバイス１２１０に対するデータの読み込み要求を発生する。ステップＳ１８０２で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがってＲＡＭ１２０４から秘匿領域モード情報を読み出し、秘匿領域モードがＯＮであるか否か判定する。秘匿領域モードがＯＮであれば、ステップＳ１８０３に進む。
【０１３５】
ステップＳ１８０３で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、データを読み出される対象の領域が秘匿領域１４０３か否かを判定する。ＣＰＵ１２０２は、データを読み出される対象となっている領域（読み出し対象領域）を特定するための情報もＯＳから取得する。読み出し対象領域が秘匿領域１４０３であれば、ステップＳ１８０４に進む。ＣＰＵ１２０２は、読み出しのターゲットとなっているデータが暗号化データであるか否かを判定する。暗号化データか否かは、たとえば、暗号化データの先頭部分に特有の情報が存在するか否かなどにしたがって判定される。暗号化データであれば、ステップＳ１８０５に進む。
【０１３６】
ステップＳ１８０５で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、データへの読込みが発生したプロセスのセッションが認証済みユーザのセッションと一致するか否かを判定する。上述したように、認証情報記憶部２０３に記憶されているログインユーザ情報と、データへの読込みが発生したプロセスにリンクされているログインユーザ情報とを比較することで、この判定は実行可能である。この判定処理も、秘匿領域へのアクセスを禁止されるべきリモートユーザまたは認証に失敗したローカルユーザかどうかを判定する処理である。秘匿領域へのアクセスを禁止されるべきリモートユーザまたは認証に失敗したローカルユーザによるプロセスからの読み出し要求でなければ（すなわち、認証済みのローカルユーザによる読み出し要求であれば）、ステップＳ１８０６に進む。このように、ＣＰＵ１２０２は、ローカルユーザによる制限領域に対する情報の読み書き要求と、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書き要求とを検出する検出手段として機能する。
【０１３７】
ステップＳ１８０６で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、読み出し要求により指定された暗号化データを復号化する。このように、ＣＰＵ１２０２は、個人認証手段により認証されたローカルユーザによって制限領域から読み出された情報を復号化する復号化手段として機能する。
【０１３８】
ステップＳ１８０７で、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって、読み出し要求を発行したプロセスであるアプリケーションプログラムにデータを渡し、ＲＡＭ１２０４にデータを書き込む。すなわち、復号化されたデータは、フラッシュメモリ１２１３に格納されない。よって、復号化処理後にＵＳＢストレージデバイス１２１０が端末装置１２０１から抜かれた場合でも、復号化されたデータをＵＳＢストレージデバイス１２１０から読み込むことはできない。その結果、機密情報の漏洩を防ぐことができる。このように、ＣＰＵ１２０２は、復号化したデータを記憶媒体に記憶せずに、情報処理装置が備えている揮発性の記憶手段に記憶させる読み書き制御手段として機能する。
【０１３９】
一方、ステップＳ１８０３で、秘匿領域１４０３ではない領域（例：自由領域１４０４）が読み出し対象と判別されると、ステップＳ１８０４及びＳ１８０５及びＳ１８０６をスキップして、ステップＳ１８０７に進む。同様に、ステップＳ１８０４で、読み出し対象データが暗号化データでないと判定された場合は、ステップＳ１８０５及びＳ１８０６をスキップして、ステップＳ１８０７に進む。ステップＳ１８０５で、ＣＰＵ１２０２が、アクセスが発生したプロセスが認証済みのユーザが起動したプロセスでないと判定した場合、Ｓ１８０６をスキップして、ステップＳ１８０７に進む。ステップＳ１８０７で、ＣＰＵ１２０２は、データを復号化処理せずにデータをアプリケーションプログラムに渡す。このように、ＣＰＵ１２０２は、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによって読み出されようとしている制限領域に記憶された情報については復号しない復号化手段として機能する。
【０１４０】
なお、ステップＳ１８０２で、秘匿領域モードがＯＮでないと判定された場合、ステップＳ１８０３ないしＳ１８０５ないしＳ１８０６をスキップし、ステップＳ１８０７に進む。ステップＳ１８０７で、ＣＰＵ１２０２は、読み出し対象領域が秘匿領域１４０３であるか自由領域１４０４であるかとは無関係に、読み出し対象データを復号化処理せずに読み出す。
【０１４１】
このように、ＣＰＵ１２０２は、検出手段が個人認証手段により認証されたローカルユーザによる制限領域に対する情報の読み書き要求を検出すると、個人認証手段により認証されたローカルユーザによる制限領域に対する情報の読み書きを許可し、検出手段が個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによるによる制限領域に対する情報の読み書き要求を検出すると、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書きを制限する読み書き制御手段として機能する。
【０１４２】
上述した自動インストールプログラム１２１４やセキュリティプログラム１２１５が実行する処理のうち、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などがその処理の一部または全部を行ってもよい。その処理によって前述した実施形態の機能が実現される場合も本発明の技術的範囲に含まれることは言うまでもない。
【０１４３】
以上より、秘匿領域１４０３に格納されていたデータの読み込みと秘匿領域１４０３への書き込みは、セキュリティプログラム１２１５にしたがってＣＰＵ１２０２により制御される。つまり、ＣＰＵ１２０２は、セキュリティプログラムが情報処理装置で実行されている場合に認証処理に成功すると、認証処理を行ったユーザのセッションと同一のセッションに属したプロセスからのセキュリティ領域に対するデータの読み出し書き込みに対して暗号化及び復号化が実行される。よって、秘匿領域１４０３に書き込まれるべきデータは、認証済みのローカルユーザが意図することなく、自動で暗号化されて書き込まれる。秘匿領域１４０３から読み込まれるべきデータも、ユーザが意図することなく、自動で復号化される。よって、認証に成功したローカルユーザであれば、暗号化や復号化の処理を意図して指示する必要はない。
【０１４４】
また、認証に成功したことで秘匿領域モードがＯＮになっているときは、秘匿領域１４０３に書き込まれたデータは暗号化されている。よって、認証に失敗したなど、秘匿領域モードがＯＦＦのとき、または認証を行ったユーザのセッションと同一のセッションに属したプロセスでないとき、そのユーザは、そのデータを復号化することができない。すなわち、認証されていないローカルユーザやリモートユーザは、暗号化されたデータを復号して利用することができない。これは、セキュリティプログラム１２１５が実行中であれば認証に成功した特定のローカルユーザのみが、ＵＳＢストレージデバイス１２１０の秘匿領域に保護・秘匿すべきデータを保存・消去できることを意味する。なお、認証の必要がない自由領域１４０４も用意すれば、第三者はこの自由領域１４０４を使用すればよい。これは、記憶媒体に確保された非セキュリティ領域に対するデータの読み書きは、ユーザ認証の成否やローカルユーザかリモートユーザかの区別とは無関係に、ＣＰＵ１２０２が許可するからである。よって、単一のＵＳＢストレージデバイス１２１０を特定のユーザと第三者とで安全に共用することもできる。
【０１４５】
フラッシュメモリ１２１３から暗号化されたデータを読み込む場合、復号化されたデータはＵＳＢストレージデバイス１２１０のフラッシュメモリ１２１３ではなく端末装置１２０１のＲＡＭ１２０４に書き込まれる。すなわち、復号化されたデータはＵＳＢストレージデバイス１２１０には書き込まれない。よって、復号化処理後にＵＳＢストレージデバイス１２１０が端末装置１２０１から抜かれた場合でも、秘匿領域１４０３に格納されているデータは依然として暗号化されたままである。よって、秘匿領域１４０３に格納されている機密情報の漏洩を防ぐことができる。
【０１４６】
ところで、上述の実施形態では、ＵＳＢストレージデバイス１２１０のフラッシュメモリ１２１３にセキュリティプログラム１２１５を記憶して持ち歩き、それを起動することを想定していた。しかし、セキュリティプログラム１２１５等をＵＳＢストレージデバイス１２１０に記憶して持ち歩く必要はない。すなわち、端末装置１２０１のＨＤＤ１２０５にセキュリティプログラム１２１５を記憶しておき、それをユーザによる入力装置１２０６からの起動指示に基づいて、または、ＵＳＢストレージデバイス１２１０に記憶してある自動起動プログラム（ａｕｔｏｒｕｎ．ｉｎｆなど）に基づいて、ＣＰＵ１２０２がセキュリティプログラム１２１５を起動する。
【０１４７】
図１９は、端末装置１２０１と、それに接続される汎用のＵＳＢストレージデバイス１２１０とを示す概略構成図である。すでに説明した箇所には同一の参照符号を付与している。図１２と比較すると、図１９では、セキュリティプログラム１２１５と設定データ１２１６が端末装置１２０１のＨＤＤ１２０５に記憶されている。すなわち、上述した初期化処理のステップＳ１３０３では、ＣＰＵ１２０２が、設定データ１２１６をＨＤＤ１２０５に記憶したものとする。また、設定データ１２１６はフラッシュメモリ１２１３に記憶されていてもよい。
【０１４８】
なお、ＵＳＢストレージデバイス１２１０ごと、または、フォルダごとに暗号鍵を生成し、設定データ１２１６に保存しておいてもよい。また、端末装置１２０１が異なれば、暗号鍵も異なるようにＣＰＵ１２０２が生成してもよい。これにより、ある端末装置１２０１において暗号化されたＵＳＢストレージデバイス１２１０内のデータは、他の端末装置１２０１では復号できなくなる。
【０１４９】
図１９によれば、自動起動プログラム１９０１がフラッシュメモリ１２１３に記憶されている。なお、セキュリティプログラム１２１５をユーザに起動させる実施形態では、自動起動プログラム１９０１は必ずしも必要ではない。
【０１５０】
図２０は、端末装置１２０１にＵＳＢストレージデバイス１２１０が挿入された際、端末装置１２０１の処理の流れを示すフローチャートである。すでに説明した箇所には同一の参照符号を付与している。図１６と比較すると、図２０では、ステップＳ１６０２とＳ１６０７が、それぞれステップＳ２００２とＳ２００７に置換されている。ステップＳ１６０１で、ＵＳＢストレージデバイス１２１０がインターフェース１２０８に接続されたことをＣＰＵ１２０２が検出すると、ステップＳ２００２へ進む。なお、ＣＰＵ１２０２は、インターフェースに記憶媒体が接続されたか否かを検出する検出手段として機能する。
【０１５１】
ステップＳ２００２で、ＣＰＵ１２０２は、ＵＳＢストレージデバイス１２１０内の自動起動プログラム１９０１を読み出して実行し、自動起動プログラム１９０１にしたがって、ＨＤＤ１２０５に記憶されているセキュリティプログラム１２１５を起動する。なお、自動起動プログラム１９０１をａｕｔｏｒｕｎ．ｉｎｆで実行する場合は、セキュリティプログラム１２１５のファイルパスがどの端末装置１２０１でも同一となるように、端末装置１２０１にセキュリティプログラム１２１５をインストールすることが前提となる。このように、ＣＰＵ１２０２は、インターフェースに記憶媒体が接続されたことを検出手段が検出すると、記憶装置（ＨＤＤ１２０５）に記憶されているセキュリティプログラムを実行する制御手段として機能する。その後、ＣＰＵ１２０２は、セキュリティプログラム１２１５にしたがって表示装置１２０７を介してユーザにパスワードの入力を促すためのダイアログなどを表示する。その後、ステップＳ１６０３ないし、Ｓ１６０４、Ｓ１６０５を実行し、ステップＳ２００７に進む。ステップＳ２００７で、ＣＰＵ１２０２は、セキュリティプログラム１２１５をクローズ（終了）させる。
【０１５２】
以上説明したように、セキュリティプログラム１２１５が端末装置１２０１に記憶されていたとしても、記憶媒体の仕様に依存することなく、情報の漏洩を抑制するためのセキュリティ機能を追加できる。よって、セキュリティプログラム１２１５やＵＳＢストレージデバイス１２１０のコストを低下させやすくなろう。
【０１５３】
とりわけ、本発明によれば、ＵＳＢストレージデバイスの記憶領域がローカルユーザとリモートユーザとの双方が使用できる自由領域とローカルユーザのみが使用できる制限領域とに分割される。よって、複数のユーザが同時に使用可能な情報処理装置にＵＳＢストレージデバイスが接続されたとしても、ＵＳＢストレージデバイスの制限領域に格納されているローカルユーザの情報やソフトウエア等がリモートユーザによって不正に利用されないようになる。
【０１５４】
また、端末装置のプロセッサであるＣＰＵがコンピュータプログラムを実行することによって各種の機能が実現されるものとして説明したが、これらの機能はＡＳＩＣなどのハードウエアリソースによって実現されてもよい。また、各機能を一部がＣＰＵによって実現され、残りが他のハードウエアリソースによって実現されてもよい。
【図１】
2011248474.tif 000003
【図２】
2011248474.tif 000004
【図３】
2011248474.tif 000005
【図４】
2011248474.tif 000006
【図５】
2011248474.tif 000007
【図６】
2011248474.tif 000008
【図７】
2011248474.tif 000009
【図８】
2011248474.tif 000010
【図９】
2011248474.tif 000011
【図１０】
2011248474.tif 000012
【図１１】
2011248474.tif 000013
【図１２】
2011248474.tif 000014
【図１３】
2011248474.tif 000015
【図１４】
2011248474.tif 000016
【図１５】
2011248474.tif 000017
【図１６】
2011248474.tif 000018
【図１７】
2011248474.tif 000019
【図１８】
2011248474.tif 000020
【図１９】
2011248474.tif 000021
【図２０】
2011248474.tif 000022