説明

記憶媒体、情報処理装置およびコンピュータプログラム

【課題】複数のユーザが同時に使用可能な情報処理装置に接続されるUSBストレージデバイスを通じて、認証されたローカルユーザの情報等がリモートユーザによって不正利用されることを抑制する。
【解決手段】情報処理装置の筐体をあけることなく着脱可能な記憶媒体は、自由領域と制限領域を備える。自由領域は、情報処理装置に対して直接的にログインしているローカルユーザと、情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域である。制限領域は、情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、個人認証処理により認証されなかったローカルユーザおよびリモートユーザによる情報の読み書きが制限された記憶領域である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶媒体、情報処理装置およびコンピュータプログラムに関し、特に、着脱可能な記憶媒体が関与した情報漏洩を抑制する技術に関する。
【背景技術】
【0002】
現在、パーソナルコンピュータなどの情報処理装置の外部記憶装置として、持ち運びが可能なUSBストレージデバイスが普及している。USBストレージデバイスは利便性が高い反面、ユーザの使用方法次第では機密情報の漏洩の元となりうる。特許文献1には、自由にユーザが使用できる自由領域と、ユーザが認証に成功すると使用できる秘匿領域とが設けられているUSBストレージデバイスが記載されている。
【0003】
一方で、近年、ネットワークの普及によってターミナルサービスが利用されるようになってきている。ターミナルサービスとは、クライアントコンピュータがサーバコンピュータにリモート接続し、サーバコンピュータ上に生成された仮想デスクトップ環境を利用してサーバコンピュータ上でアプリケーションプログラムを実行できるようにするサービスである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−301772号公報、図1ないし図3
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の技術では、秘匿領域へのアクセスをデバイスの物理的制御で行っている。もちろん、特許文献1に記載の技術ではリモートユーザの存在を考慮していない。よって、パーソナルコンピュータに直接ログインしているローカルユーザが秘匿領域に対する認証に成功した後は当該ローカルユーザだけでなく、ターミナルサービス等を利用して遠隔からログインしている他のリモートユーザも秘匿領域にアクセスできてしまう問題がある。たとえば、ローカルユーザの情報が他のリモートユーザに漏洩してしまったり、秘匿領域に格納されているソフトウエアがリモートユーザによって無断で使用されてしまったりするおそれがある。
【0006】
そこで、本発明は、このような課題および他の課題のうち、少なくとも1つを解決することを目的とする。たとえば、本発明は、複数のユーザが同時に使用可能な情報処理装置に接続されるUSBストレージデバイスを通じて、認証されたローカルユーザの情報等がリモートユーザによって不正利用されることを抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、たとえば、複数のユーザが同時に使用可能な情報処理装置に対して、情報処理装置の筐体をあけることなく着脱可能な記憶媒体に適用される。記憶媒体は、自由領域と制限領域とを備えている。自由領域は、情報処理装置に対して直接的にログインしているローカルユーザと、情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域である。制限領域は、情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、個人認証処理により認証されなかったローカルユーザおよびリモートユーザによる情報の読み書きが制限された記憶領域である。
【発明の効果】
【0008】
本発明によれば、複数のユーザが同時に使用可能な情報処理装置に接続されるUSBストレージデバイスを通じて、認証されたローカルユーザの情報等がリモートユーザによって不正利用されることを抑制することができる。
【図面の簡単な説明】
【0009】
【図1】複数ユーザ同時使用可能な情報処理システム(ターミナルサービス)の全体構成図である。
【図2】本発明に係る記憶装置の実施形態であるUSBストレージデバイスとそれに接続される端末装置とを示す概略構成図である。
【図3】実施例に係る記憶装置の記憶内容と端末装置の記憶内容との一例を示す図である。
【図4】端末装置20が実行する処理の一例を示したフローチャートである。
【図5】実施例に係るUSBストレージデバイス10が端末装置20から外されたときに実行されるアンインストール処理の一例を示すフローチャートである。
【図6】実施例に係る領域変更処理の一例を示したフローチャートである。
【図7】実施例に係る端末装置が取得した記憶領域の管理情報の一例を示す図である。
【図8】実施例に係る端末装置が取得した記憶領域の管理情報の一例を示す図である。
【図9】実施例に係る端末装置によって認識された第1の記憶領域の一例を示す図である。
【図10】実施例に係る端末装置によって認識された第2の記憶領域の一例を示す図である。
【図11】利用制限機能の動作の一例を示したフローチャートである。
【図12】端末装置1201と、それに接続される汎用のUSBストレージデバイス1210とを示す概略構成図である。
【図13】端末装置1201において、USBストレージデバイス1210の初期化処理を示すフローチャートである。
【図14】フォルダ階層の一例を示した図である。
【図15】設定データの一例を示す図である。
【図16】端末装置1201にUSBストレージデバイス1210が挿入された際、端末装置1201の処理の流れを示すフローチャートである。
【図17】USBストレージデバイス1210へのデータの書き込みについて、端末装置1201における処理を示すフローチャートである。
【図18】USBストレージデバイス1210からのデータの読み込みについて、端末装置1201における処理を示すフローチャートである。
【図19】端末装置1201と、それに接続される汎用のUSBストレージデバイス1210とを示す概略構成図である。
【図20】端末装置1201にUSBストレージデバイス1210が挿入された際、端末装置1201の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【0011】
[第1実施例]
(システム構成)
図1は、本発明に係る複数のユーザが同時に使用可能な情報処理システム(ターミナルサービス)の全体構成図である。本実施形態に係るシステムは、情報処理装置の一例である端末装置20、210、220を備えており、これらはLANなどのネットワーク230を介して接続されている。端末装置20には、USBストレージデバイス10を接続することができる。USBストレージデバイス10は、情報処理装置の筐体をあけることなく着脱可能な記憶媒体である。端末装置20上では、ターミナルサービス提供部201を含むオペレーティングシステム(OS202)が動作している。ターミナルサービス提供部201は、たとえば、ターミナルサーバと呼ばれるプログラムによって実現される。端末装置20は、認証情報記憶部203を有している。認証情報記憶部203には、たとえば、端末装置210、220の各利用者のログインユーザ情報(ログインユーザ名、セッションID等)等が格納されている。端末装置210、220のそれぞれは、ターミナルサービス提供部201から提供されるターミナルサービスを利用するためのターミナルサービス利用部211、221を備える。端末装置210、220のそれぞれは、不図示のキーボード等の入力部や、ディスプレイ装置などの表示部が接続されている。ターミナルサービス利用部211、221は、たとえば、リモート・デスクトップ接続(RDC)と呼ばれるプログラムや、ターミナル・サービス・クライアント(TSC)と呼ばれるプログラムによって実現される。ターミナルサービスは、Windows(登録商標)、MacOSおよびLinuxなどの一般的なオペレーティングシステム(OS)であれば一般に備えているサービスであるが、その名称はOSによって異なっている。リモートサービスは、第1のパーソナルコンピュータ(PC)に対して第2のPCからリモートログインし、第1のPCから情報を取得したり、第1のPCに情報を書き込んだり、第1のPCにインストールされているソフトウエアを第1のPC上で実行したりするためのサービスである。なお、第1のPCに備えられている入力部を通じて直接ログインしているユーザをローカルユーザと呼び、第2のPCから第1のPCへリモートログインしているユーザをリモートユーザと呼んで区別することにする。
【0012】
図1において、USBストレージデバイス10は、たとえば、非接触ICカード、スマートメディア等、端末装置20に対して筐体をあけることなく着脱可能な記憶媒体であればどのようなデバイスであってもかまわない。サーバとして機能する端末装置20は、クライアントとして機能する端末装置210、220に仮想デスクトップ画面を表示するための情報を送信する。端末装置210、220は、端末装置20から受信した情報にしたがって仮想デスクトップ画面をディスプレイ装置に表示したり、利用者が仮想デスクトップ画面上で行う操作に従って、コマンドやデータを端末装置20に送信したりする。端末装置20では、端末装置210、220から送信されてきたコマンドやデータに応じてアプリケーションプログラムを実行し、実行結果を端末装置210、220へ送信する。端末装置210、220では、端末装置20から送信されてきた実行結果を仮想デスクトップ画面上に表示する。端末装置20は、リモートユーザによって使用される一方で、同時並行的にローカルユーザによっても使用可能である。
【0013】
このように、リモートユーザとローカルユーザとを含む複数のユーザが同時に使用可能な情報処理システム(ターミナルサービス)においては、アプリケーションプログラムが、端末装置20で実行される。複数の端末装置210、220から端末装置20に同時に接続してアプリケーションプログラムを実行することも可能である。この場合、リモートユーザ毎にセッションが分けられ、各利用者は別々の仮想デスクトップ環境を利用してアプリケーションプログラムを実行する。ターミナルサービス提供部201は、各セッションを区別するためにセッションIDを発行する。なお、同時に使用可能とは、同じ時間帯に複数のユーザがログインしている状態を含む。このようなターミナルサービスは一般的な技術であるため、これ以上の説明は省略する。
【0014】
(ハードウエア構成)
図2は、本発明に係る記憶装置の実施形態であるUSBストレージデバイスとそれに接続される端末装置とを示す概略構成図である。ここでは、汎用インターフェースであるUSBインターフェースにメモリを一体化したUSBストレージデバイスについて説明するが、本発明は、メモリ以外の記憶媒体を採用するUSBストレージデバイスに適用できる。また、端末装置とのインターフェースもUSBインターフェースに限定されることはなく、IEEE1394、ワイヤレスUSBなどであってもよい。ここでは、端末装置20について説明するが、端末装置210、220も同様の構成を備えている。
【0015】
USBストレージデバイス10は、端末装置が備える汎用インターフェースに対して着脱可能な記憶装置の一例であり、コントローラ12、USBインターフェース13、発光ダイオード(LED)14、フラッシュメモリ15、指紋認証デバイス11を備えている。
【0016】
コントローラ12は、メモリ制御部121、メモリ情報記憶部122、USBインターフェース制御部123、および、LED制御部124を備える。メモリ制御部121は、USBインターフェース13を介して受信した命令に従って、フラッシュメモリ15に対してデータの読み出し、書き込みおよび削除を実行する。メモリ情報記憶部122は、フラッシュメモリ15に確保された複数の記憶領域に関する情報(例:パーティションのサイズ、ドライブレターなど)を記憶する。USBインターフェース制御部123は、後述するUSBインターフェース13の各部を制御する。LED制御部124は、後述するLED14の発光を制御する。
【0017】
USBインターフェース13は、USBバス31を介して、パーソナルコンピュータなどの端末装置20と通信を行う。USBインターフェース13は、パケット送受信部131、シリアルパラレル変換部132、パケット生成分解部133、および、USBバスパワー制御部134とを備える。パケット送受信部131は、図示しないUSBコネクタと接続され、USB規格に基づいたパケットを送受信する。シリアルパラレル変換部132は、シリアルデータとパラレルデータとを相互に変換する。パケット生成分解部133は、端末装置と通信を行うためのパケットの生成およびパケットを分解してデータの取り出しを行う。USBバスパワー制御部134は、端末装置から供給される電力の管理およびUSBストレージデバイス10の各部への電力の配分を行う。
【0018】
LED14は、フラッシュメモリ15に対してファイルの読み出し、書き込み、削除が実行されている際に点灯する発光体である。フラッシュメモリ15に対してファイルの読み出し、書き込みおよび削除が実行中であることを利用者に示す。
【0019】
フラッシュメモリ15は、記憶保持動作が不要な半導体メモリであり、ファイルや情報を記憶することができる。記憶したデータは、メモリ制御部121によって読み出し、書き込み、削除をすることもできる。フラッシュメモリ15は、記憶保持動作が必要な他の記憶素子に置換されてもよい。
【0020】
指紋認証デバイス11は、個人認証処理を実行する個人認証手段の一例であり、指紋を読み取ることで使用者認証を行うデバイスである。指紋認証デバイス11は、他のバイオメトリクスを実行する認証デバイスに置換されてもよい。この指紋認証デバイス11についてはいわゆるオプションであって、指紋認証を使用者認証に含めない場合には不要である。一方で、指紋認証デバイス11がUSBストレージデバイス10に搭載されているからといって使用者認証が指紋認証に限定される必要もない。すなわち、指紋認証デバイス11は認証機能を無効とされてもよいし、無効に加えて、他の認証方法が採用されてもよい。たとえば、ユーザを特定するための識別子、パスワード、暗証番号、バイオメトリクス情報のうち1つまたは複数を含むユーザ登録情報を予めフラッシュメモリ15に記憶しておき、端末装置20から受信した情報と比較することで、認証を実行してもよい。
【0021】
端末装置20は、USBストレージデバイス10の接続先であり、たとえば、パーソナルコンピュータである。端末装置20は、たとえば、CPU21、ROM22、RAM23、ディスクコントローラ24、ハードディスクドライブ(HDD)25、CD/DVDドライブ26、モニタ27、ポインティングデバイス28、USBインターフェース29、ネットワークインタフェース40、システムバス30を備えている。
【0022】
CPU21は、ROM22やHDD25に記憶されているコンピュータプログラムに基づいて各部を制御するプロセッサである。RAM(Random Access Memory)23は、ワークエリアとして機能する。ROM(Read Only Memory)22は、不揮発性の記憶素子であり、ファームウエアなどを記憶する。ディスクコントローラ24は、HDD25、CD/DVDドライブ26に対する読み書きを制御する。HDD25には、オペレーティングシステム、アプリケーションプログラムなどが記憶されている。なお、USBストレージデバイス10から転送される、記憶領域の切り替えプログラムや情報漏洩防止プログラムなどもHDD25に格納される。CPU21と各部は、システムバス30を介して命令やデータの送受信を実行する。
【0023】
USBインターフェース29は、USBバス31を介してUSBストレージデバイス10内部のUSBインターフェース13と接続する。すなわち、USBバス31を介して端末装置20とUSBストレージデバイス10とが双方向にデータの送受信を行う。ネットワークインタフェース40は、他の端末装置とネットワークを介して通信するための通信回路である。
【0024】
以降の説明では、端末装置20がパーソナルコンピュータであることを前提にしているが、端末装置20が一般的なパーソナルコンピュータと同等以上、若しくはそれに準ずる演算処理能力を有する機器であるならばその種類、機種は限定されるものではない。
【0025】
図3は、フラッシュメモリ15に確保された記憶領域および当該記憶領域へ記憶されているデータ、ソフトウエア、インストーラの一例を示した図である。なお、本発明では、端末装置20に第1の記憶領域16を認識させた後に、自動インストーラ162によってセキュリティソフトウエア部161を端末装置20にインストールし、第2の記憶領域17へと切り替える方法について説明するが、本発明はこれにのみ限定されるわけではない。端末装置20による第1の記憶領域16と第2の記憶領域17との択一的に認識(切り替え)は不要であり、セキュリティソフトウエア部252がはじめから端末装置20のハードディスクドライブ(HDD25)の記憶領域251にインストールされていてもよい。たとえば、第1の記憶領域16及び第2の記憶領域17ともに端末装置20に認識させてから、セキュリティソフトウエアを端末装置20にインストールすることも可能である。これにより、第1の記憶領域16及び第2の記憶領域17を端末装置20に認識させる方法に係わらず、後述するセキュリティソフトウエアの様々な処理を実行可能とする。
【0026】
本実施例では、フラッシュメモリ15をソフトウエア上で制御することにより第1の記憶領域16、第2の記憶領域17、第3の記憶領域18の三つの記憶領域に分割している。このように複数の記憶領域を確保する方法はいくつか存在する。たとえば、単一のデバイスであるフラッシュメモリ15を、ソフトウエア上で三つの領域(第1の記憶領域16、第2の記憶領域17、第3の記憶領域18)に分割する方法がある。なお、読み出しのみ可能な領域を第1の記憶領域16とし、読み出し、書き込みが可能な領域を第2の記憶領域17、コントローラ12からデータを読み書きできるものの、端末装置20からは読み書きも認識もできない秘匿領域を第3の記憶領域18とする。
【0027】
領域を分割する2つ目の方法は、複数のフラッシュメモリを必要に応じてソフトウエア上で分割して二つの記憶領域を確保する方法である。たとえば、4つのフラッシュメモリ素子がある場合、1つ目のフラッシュメモリ素子を第1の記憶領域16とし、2つ目のフラッシュメモリ素子を第2の記憶領域17とし、残りの2つのフラッシュメモリ素子を第3の記憶領域18に割り当ててもよい。
【0028】
なお、端末装置20のCPU21(オペレーティングシステム:OS)から複数の領域を選択的に認識する方法としては、LUN(論理ユニット番号)を使用する方法がある。LUNは、1つのターゲットでありながら、複数のアクセス可能な論理装置を有するデバイスにおいて、各論理装置を識別するために付与されるアドレス(広義)のことである。OS(およびそのドライバ、以下同様)は、1つのLUNを割り振った論理ドライブを、ドライブレターを付与した1つの物理ドライブとして認識する。単一のデバイスへ複数のLUNを割り振ればその割り振られたLUNの数だけ物理ドライブを作成できる。
【0029】
本発明においては、複数のアクセス可能な論理装置(第1の記憶領域、第2の記憶領域、秘匿領域)にそれぞれLUNを割り当てることで、一つのターゲットであるUSBストレージデバイスを複数の論理ドライブ(物理ドライブ)を有するデバイスとしてOSに認識できるようにしている。
【0030】
第1の記憶領域16は、USBストレージデバイス10が端末装置20に接続された際に自動的に読み込まれるセキュリティソフトウエア部161と自動インストーラ162を記憶している。
【0031】
セキュリティソフトウエア部161は、情報漏洩防止手段を実現するために必要となるファイルをすべて備えたソフトウエアである。セキュリティソフトウエア部161は、端末装置20のCPU21によって実行されるソフトウエアであり、たとえば、情報処理装置または記憶媒体において実行される個人認証処理により認証された情報処理装置に対して直接的にログインしているローカルユーザによる前記記憶媒体へのアクセスを許可し、個人認証処理により認証されなかったローカルユーザおよび前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザによる記憶媒体へのアクセスを制限するアクセス制限手段として機能する。セキュリティソフトウエアとしては、たとえば、後述する情報漏洩防止プログラムがある。また、端末装置20が認識する記憶領域を切り替える領域変更プログラムが含まれていてもよい。詳しくは後述するが、領域変更プログラムは、第1の記憶領域16に記憶され、端末装置20に認識される記憶領域を第1の記憶領域16から第2の記憶領域17へと切り替えるコンピュータプログラムである。自動インストーラ162は、セキュリティソフトウエア部161をインストールするためのソフトウエアである。
【0032】
セキュリティソフトウエア部161と自動インストーラ162との組み合わせは、後述の動作を行えるものであればどんな組み合わせでもよい。また、インストール方式も本発明の実施に支障をきたすものでなければどのような方式が採用されてもよい。たとえば、セキュリティソフトウエア部161が書庫形式等で圧縮されていて、自動インストーラ162がセキュリティソフトウエア部161を解凍しながらディレクトリへ展開してもよい。一方、セキュリティソフトウエア部161が既にディレクトリに展開されている状態であれば、そのディレクトリをそのまま端末装置20の記憶領域251にコピーするといったインストール方式でもよい。
【0033】
一方、セキュリティソフトウエア部161が自己解凍形式のファイルであれば、自動インストーラ162を省略できよう。以下の実施例では、セキュリティソフトウエア部161のインストールに自動インストーラ162が採用されるものとする。なお、端末装置20にインストールしたファイルのアンインストールについても、本発明の目的を達成できるかぎり、どのようなアンインストール方式が採用されてもよい。
【0034】
第2の記憶領域17には、使用者が接続した端末装置20を操作し使用するデータ(例:文書ファイル、画像ファイル、プログラムファイル等)、すなわち情報漏洩防止の対象となるユーザ使用ファイル171が格納されている。なお、第2の記憶領域17は、さらに自由領域と制限領域とに分割されていてもよい。自由領域は、情報処理装置に対して直接的にログインしているローカルユーザと、情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域である。制限領域は、情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、個人認証処理により認証されなかったローカルユーザおよびリモートユーザによる情報の読み書きが制限された記憶領域である。
【0035】
第3の記憶領域18には、ユーザ登録情報181、ホワイトリスト182およびブラックリスト183が格納されている。なお、これに限定されず、上述した登録情報およびリストは、単数または複数の組み合わせを第3の記憶領域18に格納することも可能である。第3の記憶領域18に制限領域が確保されてもよい。
【0036】
なお、以下では、第3の記憶領域18の全体が秘匿領域であるという設定の下で話を進める。しかし、この秘匿領域は端末装置20から独立した第3の記憶領域18に限定されるものではない。たとえば、第1の記憶領域16、第2の記憶領域17の一部に設けられたディレクトリを第3の記憶領域18としてもよい。この場合、このディレクトリは暗号化されており、コントローラ12が復号できるものとする。これにより、端末装置20は、第3の記憶領域18であるディレクトリの存在を知ることができても、そこに記憶されている情報を取得することができない。
【0037】
ユーザ登録情報181は、登録された使用者(ユーザ)であるかどうかを認証するための認証情報である。ユーザ登録情報181は、たとえば、使用者が入力する暗証番号、パスワード、バイオメトリクスの情報などである。これらの情報は平文のまま記憶されていてもよいし、暗号化されていてもよい。また、ユーザ登録情報181は、複数の使用者の認証情報を含んでいてもよい。この場合、USBストレージデバイス10を複数のユーザ間で共用することが可能となる。
【0038】
ホワイトリスト182は、たとえば、端末装置20において実行されるプロセス(例:アプリケーション)のうち、第2の記憶領域17に対するアクセスを許可されたプロセスの識別情報を登録したリストである。また、ホワイトリスト182は、たとえば、USBストレージデバイス10の接続中に動作が許可されるプロセスの一覧であってもよい。セキュリティソフトウエア部161は、端末装置20において実行されているプロセスの識別情報が、ホワイトリストに登録されている識別情報と一致するか否かに応じて、第2の記憶領域17に対するアクセスを制限するアクセス制限手段として、CPU21を機能させる。第3の記憶領域18は、情報処理装置において実行されるプロセスのうち、制限領域に対するアクセスを許可されたプロセスの識別情報を登録したホワイトリストを記憶したリスト記憶領域としても機能する。
【0039】
ブラックリスト183は、たとえば、端末装置20において実行されるプロセスのうち、アクセス対象の如何にかかわらず、アクセスを禁止されるプロセスの識別情報を登録したリストである。なお、ブラックリスト183は、一切動作が許可されないプロセスの一覧であってもよい。セキュリティソフトウエア部161は、たとえば、端末装置において実行されているプロセスの識別情報が、ブラックリストに登録されている識別情報と一致すると、プロセスによるアクセスを禁止するアクセス禁止手段として、CPU21を機能させる。第3の記憶領域18は、情報処理装置において実行されるプロセスのうち、アクセス対象の如何にかかわらず、動作をキャンセルされるプロセスの識別情報を登録したブラックリストを記憶したリスト記憶領域としても機能する。
【0040】
なお、上述したホワイトリストやブラックリストへのプロセス名の追加や更新の手法はいくつか考えられる。たとえば、端末装置20が、USBストレージデバイス10に記憶されているホワイトリストやブラックリストを直接編集する手法が考えられる。また、サーバからクライアント(端末装置20)が受信した最新のホワイトリストやブラックリストを、USBバスを介してコントローラ12が受信し、それを第3の記憶領域に書き込むといった手法も考えられる。後者は、リモート更新と呼べるであろう。
【0041】
HDD内の記憶領域251は、端末装置20に備えられたHDD25の中の記憶領域である。セキュリティソフトウエア部252は、第1の記憶領域16に記憶されているセキュリティソフトウエア部161がインストールされたものである。認証実行部253は、セキュリティソフトウエア部252の要素の一つで、端末装置や使用者の認証を行う。制御プログラム254は、情報漏洩防止機能や、使用者に応じたユーザ使用ファイルの選択および表示を実行するプログラムである。
(端末装置20の処理)
図4は、端末装置20が実行する処理の一例を示したフローチャートである。ここでは、USBストレージデバイス10を端末装置20に接続し、使用者がUSBストレージデバイス10の第2の記憶領域に記憶されているファイルを操作できるようになるまでの手順の詳細について説明する。
【0042】
ステップS401で、USBストレージデバイス10が端末装置20に接続される。これにより、端末装置20のUSBインターフェース29とUSBストレージデバイス10のUSBインターフェース13との間でUSB規格に従った接続処理が実行される。USBレベルでの接続が確立されると、ステップS402へ進む。
【0043】
ステップS402で、端末装置20のOS(CPU21)は、読み出しのみが可能なCD−ROM領域としてUSBストレージデバイス10の第1の記憶領域16を認識する。なお、この時点で第2の記憶領域17はCPU21によって認識されてはいない。また、第3の記憶領域18は秘匿領域であるため、CPU21によって認識されない。CPU21は、autorun.infなどの起動ファイルにしたがって自動インストーラ162を起動する。CPU21は、起動した自動インストーラ162にしたがって、第1の記憶領域16に記憶されているセキュリティソフトウエア部161を端末装置20へインストールする。
【0044】
ステップS403で、CPU21は、端末装置20にインストールされたセキュリティソフトウエア部161の一部である制御プログラム254(領域変更プログラム)を起動する。
【0045】
ステップS404で、CPU21は、領域変更プログラムにしたがって、第3の記憶領域18にユーザ登録情報181が記憶されているか否かを判定する。第3の記憶領域18は秘匿領域であるため、CPU21や領域変更プログラムは第3の記憶領域18を直接的に認識することができない。そこで、領域変更プログラムがコントローラ12に対して所定の問い合せコマンドを送信する。USBストレージデバイス10のコントローラ12は、受信した問い合せコマンドにしたがって、第3の記憶領域18にアクセスし、ユーザ登録情報181が記憶されているか否かを確認する。コントローラ12は、この確認結果をレスポンスとして端末装置20へ返信する。CPU21は、このレスポンスの内容を解析することで、第3の記憶領域18にユーザ登録情報181が記憶されているか否かを判定する。ユーザ登録情報が存在する場合には、ステップS405に進む。
【0046】
ステップS405で、CPU21は、領域変更プログラムにしたがって、認証実行部253(認証プログラム)を起動し、使用者認証を実行する。たとえば、ポインティングデバイス28やキーボード等の入力装置から入力されたパスワードや暗証番号などの認証情報をCPU21がコントローラ12へ転送し、コントローラ12が受信した認証情報をユーザ登録情報181と比較する。あるいは、USBストレージデバイス10に設けられた指紋認証デバイス11が読み取った指紋情報を、コントローラ12が、ユーザ登録情報181の一部である指紋情報と比較する。なお、セキュリティ強度は低下するが、コントローラ12が、ユーザ登録情報181を端末装置20へ送信し、認証実行部253が、受信したユーザ登録情報181と入力された認証情報とを比較してもよい。指紋認証では、指紋認証デバイス11が読み取った指紋情報も端末装置へ転送されることになる。なお、パスワードや暗証番号は秘匿性向上のための制限、たとえば文字数制限等が設けられてもよいし、照合、比較される認証情報が暗号アルゴリズム等により暗号化されていてもよい。認証に使用される認証情報は、たとえば、ユーザを特定するための識別子、パスワード、暗証番号、バイオメトリクス情報のうち1つまたは複数を含む使用者登録情報であってもよい。このように、CPU21は、情報処理装置に備えられ、個人認証処理を実行する個人認証手段の一例である。
【0047】
CPU21は、使用者認証に成功したか否かを判定する。成功したのであれば、ステップS411で、CPU21は、認証に成功した使用者が使用しているログインユーザ情報を認証情報記憶部203から取得し、ステップS412に進む。一方、認証に失敗したのであれば、ステップS406に進む。なお、CPU21、コントローラ12および認証実行部253は、記憶装置に予め記憶されている認証情報と、端末装置または記憶装置に設けられた入力手段から入力された認証情報とを用いて認証処理を実行する認証手段の一例である。
【0048】
ここでログインユーザ情報とは、複数ユーザログイン可能情報処理装置において、ログインユーザを一意に特定するための情報であり、具体的にはログインユーザ名、セッションID等をさす。
【0049】
ステップS406で、CPU21は、使用者認証に失敗した回数が規定回数以内か否かを判定する。規定回数以内であれば、ステップS405に戻り、再度、使用者認証が実行される。この規定回数はパスワードの制限や指紋認証デバイス11の他人受入率や本人拒否率に基づいて設定されてもよい。なお、失敗回数が規定回数を超えると、ステップS407に進む。
【0050】
ステップS407で、CPU21は、強制終了を実行する。たとえば、CPU21は、インストールされたプログラムやファイルをアンインストールする。この際に、CPU21は、USBストレージデバイス10の接続を解除したり、第1の記憶領域16(認識されている場合は第2の記憶領域17および第3の記憶領域18)を認識されない状態へ移行させたりする。認識可能状態から認識不可能状態への変更方法は実施例1で説明した通りである。もちろん、CPU21は、第2の記憶領域17からHDD25へコピーされた漏洩防止の対象となる情報もHDD25から消去する。さらに、CPU21は、HDD25に記憶されていた漏洩防止の対象となる情報が第2の記憶領域17に記憶されているときは、その情報も削除することが望ましい。
【0051】
ところで、ステップS404でユーザ登録データを確認できなかった場合、ステップS408に進む。ステップS408で、CPU21は、領域変更プログラムにしたがって、新規登録を行うかどうかの問い合わせをモニタ27に表示する。CPU21は、端末装置20の入力装置から入力された情報に基づいて、使用者が新規登録を希望しているか否かを判定する。新規登録を行う場合、ステップS409に進む。
【0052】
ステップS409で、CPU21は、初期登録(新規登録)を実行する。新規登録とは、次回以降の認証時に使用されるユーザ登録情報181を第3の記憶領域18へ書き込む動作である。なお、端末装置20からは第3の記憶領域に直接書き込めないため、所定のコマンドをコントローラ12に発行して、コントローラ12が第3の記憶領域18へユーザ登録情報181を記憶する。新規登録が完了すると、ステップS411に進む。このように、CPU21、コントローラ12および関与するプログラムなどは、記憶装置に認証情報が予め記憶されていなければ認証情報の初期登録を実行する登録手段の一例である。
【0053】
なお、新規登録を行わない場合はステップ1510に進む。ステップS410で、CPU21は、強制終了を実行する。強制終了処理は、ステップS407について説明した通りである。これにより、端末装置20へインストールされたプログラムはアンインストールされ、USBストレージデバイス10は自動的に、認識されない状態となる。
【0054】
ステップS412で、CPU21は、セキュリティソフトウエア部252に含まれる制御プログラム254の一機能である利用制限機能(情報漏洩防止プログラム)を起動する。この利用制限機能は、ログインユーザ情報を用いてファイルへのアクセスを制御する機能である。これらの機能の詳細については後述する。
【0055】
ステップS413で、CPU21は、領域変更プログラムに従い、端末装置20により認識可能な記憶領域を第1の記憶領域16から第2の記憶領域17に切り替える。すなわち、第1の記憶領域16が端末装置20上で認識されなくなると同時に第2の記憶領域17が認識されることになる。
【0056】
なお、現在認識されている記憶領域に応じてLED14の発光色を切り替えてもよい。たとえば、LED制御部124は、第1の記憶領域16が認識されているときは赤色LEDを点灯させ、第2の記憶領域17が認識されているときは緑色のLEDを点灯させる。これにより、使用者は、USBストレージデバイス10の記憶領域のうちどの記憶領域が端末装置20によって認識されているかを視覚的に認識できるようになる。これは、記憶領域が切り替えられてもドライブレターが同一の維持されるケースで特に有用であろう。
ステップS414で、CPU21は、第2の記憶領域17に記憶されているファイルを端末装置20の操作によって操作できるような待機状態に移行する。なお、利用制限機能が適用されている場合は、第2の記憶領域17に対して利用制限が課される。また、使用者認証が適正の場合、制御プログラム254によって、使用者に応じたユーザ使用ファイル171のみを、端末装置20上に画面表示させてもよい。これにより、他の使用者のユーザ使用ファイルへのアクセスが禁止されるため、機密情報の保護や情報漏洩を防止しながら、複数の使用者が同一のUSBストレージデバイス10を利用することができる。
【0057】
なお、第3の記憶領域18は秘匿領域である。そのため、情報漏洩プログラムが端末装置20を通じて秘匿領域に記憶されている情報を読み出すための読み出し命令を送信すると、コントローラ12は、秘匿領域から情報を読み出して、端末装置に対して情報を送信する。これにより、認証情報や極めて重要な情報を保護することが可能となる。
【0058】
また、記憶装置に予め記憶されている認証情報と、端末装置または記憶装置に設けられた入力手段から入力された認証情報とを用いて認証処理を実行する認証手段を提供できる。すなわち、認証処理が成功すると、切り替えプログラムが、端末装置に認識される記憶領域を第1の記憶領域から第2の記憶領域へと切り替える。よって、認証処理に成功しない限り、第2の記憶領域17からユーザ使用ファイル171が端末装置20へ読み出されることは抑制できる。これは、認証処理が成功すると、情報漏洩防止プログラムは、記憶装置に対するアクセスの制限を解除する解除手段としてCPU21を機能させる事を意味しよう。
【0059】
USBストレージデバイス10が端末装置20から外されたときはアンインストール処理が制御プログラム254によって実行される。
【0060】
図5は、実施例に係るUSBストレージデバイス10が端末装置20から外されたときに実行されるアンインストール処理の一例を示すフローチャートである。ここでは制御プログラム254がアンインストール処理を実行するものとする。
【0061】
ステップS501で、制御プログラム254(CPU21)は、USBストレージデバイス10が端末装置20から外されたか否かを監視する。外されたことを検出すると、ステップS502へ進む。このように、CPU21は、記憶装置が端末装置から取り外されたことを検出する取り外し検出手段の一例である。
【0062】
ステップS502で、CPU21は、USBストレージデバイス10から端末装置20へインストールされたプログラムやファイルをアンインストール(削除)する。アンインストールは、制御プログラム254が備える削除機能が利用されてもよい。また、USBストレージデバイス10から端末装置20へコピーされたファイルもCPU21が自動的に削除する。なお、RAM23に記憶されている第2の記憶領域17からのファイルデータは編集されてRAM23に記憶し直しがなされる。そしてユーザによりUSBストレージデバイス10への記憶を指示するとこの編集済みのデータがUSBストレージデバイス10の領域2に記憶され上書きもしくは新たに格納される。USBストレージデバイス10を外すとRAM23のデータはクリアされる。また、RAM23のデータによる文書や画像は編集前・編集後、モニタ27により閲覧ができる。
【0063】
たとえば、必要なプログラムやファイルがすべて「Soft−a」というディレクトリに収められており、自動インストール作業がディレクトリ「Soft−a」を丸ごとコピーしたものであったとする。たとえば E:¥Soft−a ⇒ C:¥Program Files¥Soft−a。この場合、CPU21は、このディレクトリ(C:¥Program Files¥Soft−a)を削除する。これは自動解凍書庫(たとえば Soft−b.exe を解凍してディレクトリSoft−bが生成され、C:¥Program Files¥Soft−bへコピーされる等)の場合でも同様である。
【0064】
なお、一部のファイルやプログラムについては、削除やアンインストールの対象から除外してもよい。たとえば、設定ファイルを除外することにより、次回、端末装置20に接続する際にセキュリティソフトウエアをインストールする時間が短縮される。
【0065】
(領域変更プログラムの処理)
図6は、実施例に係る領域変更処理の一例を示したフローチャートである。領域変更処理は、端末装置20にUSBストレージデバイス10が接続されると開始される。フィルタドライバを用いても認識可能な記憶領域を変更することができる。フィルタドライバも、USBストレージデバイス10から端末装置20へインストールされる領域変更プログラムの一例である。
【0066】
ステップS601で、端末装置20のOS(CPU21)は、USBバス31を介して接続されたUSBストレージデバイス10のコントローラ12と通信を開始する。ここでまずOSは、USBストレージデバイス10を制御するためのデバイスドライバが有するデバイス情報取得コマンドによって、USBストレージデバイス10のデバイス情報を取得する。たとえば、OSからの指令はデバイスドライバを介してSCSIコマンド等に変換されてUSBコントローラによって行われる。USBストレージデバイス10のコントローラ12は、USBインターフェース13を介してこのコマンドを受け取り、コントローラ12が記憶しているデバイス情報を返答する。
【0067】
このデバイス情報取得コマンドは、たとえば、Get_Descriptorコマンド(USB標準デバイスに含まれるUSB規格のコマンド)に代表されるコマンドである。USBストレージデバイス10から端末装置20へ送信されるデバイス情報は、たとえば、接続されたUSB機器(USBストレージデバイス10)のディスクリプタである。ディスクリプタは、図示されないUSBストレージデバイス10の管理領域に格納されている。以降はUSB規格コマンドおよびSCSIコマンドを中心に話を進めるが、もちろんATAPIなど、サブクラスとして定義かつ使用可能なものであれば何でもよい。また、サブクラス毎に途中に公知の一つ以上のコマンド変換手段を介してコマンドの送受信を行ってもよい。
【0068】
ステップS602で、OS(CPU21)は、SET Addressコマンドに代表されるアドレス設定コマンド(USBストレージデバイス10のアドレスを問い合せるコマンド)をUSBストレージデバイス10に送信し、USBストレージデバイス10からアドレス設定を受信する。以降で、OSは、受信したアドレス設定にしたがってフレームを送信する。
【0069】
ステップS603で、OS(CPU21)は、「Get Max Logical Unit Number API」コマンドに代表される論理ドライブ数取得コマンドにて、論理ユニット番号(LUN)の値をUSBストレージデバイス10から取得する。デフォルトで、USBストレージデバイス10のコントローラ12は、第1の記憶領域16の論理ユニット(LUN)の値が1であることを示す情報を返信する。
【0070】
ステップS604で、OS(CPU21)は、Inquiryコマンド(これはSCSIのコマンド)に代表されるフォーマット情報取得コマンドを用いて第1の記憶領域16のフォーマット情報を得る。USBストレージデバイス10のコントローラ12は、フォーマット情報としてCD−ROMであることを示すISO 9660を返信する。OSは、受信したフォーマット情報(例:ISO 9660)により、第1の記憶領域16がCD−ROMドライブであることを認識する。
【0071】
図7は、実施例に係る端末装置が取得した記憶領域の管理情報の一例を示す図である。図7によれば、第1の記憶領域のLUNが0であり、フォーマットがISO9660であり、OSから認識可能であり、クラスがマスストレージであり、サブクラスがSCSIであることが示されている。図7によれば、第2の記憶領域17にはLUNが設定されていないため、ドライブとしてOS側から認識されないようになっている。
【0072】
ステップS605で、OS(CPU21)は、ドライブとして認識した第1の記憶領域16から自動インストーラ162を起動し、起動した自動インストーラ162にしたがってセキュリティソフトウエア部161をHDD25の記憶領域251へインストールする。たとえば、CPU21は、OSにしたがってautorun.infを読み出してそこに記述されている自動インストーラを起動する。ここでは自動インストールの例としてオートランインストールを用いたが、他の自動インストール技術を用いてもかまわない。
【0073】
ステップS606で、OS(CPU21)は、起動した自動インストーラ162にしたがって、セキュリティソフトウエア部252に含まれる領域変更プログラム(制御プログラム254)を起動する。
【0074】
ステップS607で、領域変更プログラム(CPU21)は、記憶領域の切り替えを開始する。たとえば、CPU21は、第1の記憶領域と第2の記憶領域の認識フラグ(認識可/不可)を書き換えるための認識フラグ書換命令をUSBストレージデバイス10へ送信する。USBストレージデバイス10のコントローラ12は、認識フラグ書換命令を受信すると、第1の記憶領域16の認識フラグを認識不可に書き換え、第2の記憶領域17の認識フラグを認識可に書き換える。さらに、コントローラ12は、第1の記憶領域16のLUNを「0」から「null」に書き換えた後、第2の記憶領域17のLUNを「null」から「0」へ書き換える。これによって、第1の記憶領域16が開放され、第2の記憶領域17が端末装置20のOSから認識されるようになる。
【0075】
図8は、実施例に係る端末装置が取得した記憶領域の管理情報の一例を示す図である。図8によれば、第2の記憶領域の認識フラグが「可」に変更され、LUNも「0」に割り当てられている。反対に、第1の記憶領域の認識フラグが「不可」に変更され、LUNも「null」に割り当てられている。
【0076】
ステップS608で、領域変更プログラム(CPU21)は、第1の記憶領域16のドライブレターと第2の記憶領域17とのドライブレターとを同一にするか否かを判定する。同一にするか否かは、予め設定ファイルなどに記憶されているものとする。たとえば、OS(CPU21)が管理しているLUNの一覧に、同一のドライブレターとするか否かの設定項目を設け、その設定項目を予めユーザの希望に応じて設定する。
【0077】
同一のドライブレターにする場合は、ステップS609に進み、異なるドライブレターにする場合は、ステップS610に進む。
【0078】
ステップS609で、領域変更プログラム(CPU21)は、ドライブレターの同一化処理を実行する。たとえば、MS−DOSのコマンドである「Subst」コマンドを記述したバッチファイルでドライブレターを固定する。このバッチファイルもUSBストレージデバイス10に予め記憶されているものとする。一方で、領域変更プログラム(CPU21)がダイアログをモニタ27に表示し、同一のドライブレターを記憶するか否かをユーザに問い合せ、その問い合せ結果に基づいて同一化処理を実行してもよい。
【0079】
また、領域変更プログラム(CPU21)は、割り当てるドライブレターをユーザに問い合せ、キーボードなどの入力装置から入力されたドライブレターを第2の記憶領域17に割り当ててもよい。この場合、ユーザは、第1の記憶領域16に割り当てられていたドライブレターを入力してもよい。
【0080】
ステップS610で、領域変更プログラム(CPU21)は、第1の記憶領域16の認識を開放する。たとえば、CPU21も、OS側に記憶されている第1の記憶領域16のLUNを「0」から「null」に書き換える。これにより、OSは、第1の記憶領域16の認識ができなくなる。
【0081】
ステップS611で、領域変更プログラム(CPU21)は、第2の記憶領域17の認識処理を開始する。たとえば、CPU21は、第2の記憶領域17のLUNを「null」から「0」へ書き換える。これにより、OSは、第2の記憶領域16を認識できるようになる。
【0082】
図8によれば、OSは、第2の記憶領域17をFATでフォーマットされたリムーバブルディスクドライブであると認識する。このリムーバブルディスク領域にはユーザ使用ファイル171が含まれている。ここで、CD−ROM領域として認識されるフォーマット情報としてISO9660を、リムーバブルディスク領域として認識されるフォーマット情報としてFATを挙げたが、もちろんこれらは一例にすぎない。
【0083】
本実施例では、LUNおよび認識フラグを書き換えることで記憶領域の切り替えを実行しているが、USBストレージデバイス10の内部にある管理情報を直接的または間接的に用いて第1の記憶領域16の認識を開放して第2の記憶領域17を認識させてもよい。たとえば、USBデバイスの解放コマンドを第1の記憶領域16へ適用し、その直後に初期化コマンドを第2の記憶領域17へ適用すれば、記憶領域を切り替えることができる。
【0084】
また、管理情報を予め二つ用意しておいて、最初にUSBストレージデバイス10が端末装置20に接続されたときは一つ目の管理情報が使用され、自動インストールにおいて二つ目の管理情報に変更されてもよい。なお、LUNの値、最初に読み込まれる管理情報は毎回リセットされるものとする。これは、OSが取得した第一の記憶領域16および第二の記憶領域17に関する情報が、このUSBストレージデバイス10が端末装置20から外されたときにアンインストールされ、その後の再接続の際にOSが再びUSBストレージデバイス10の情報を取得するからである。
【0085】
以上説明したように、本実施例によれば、端末装置20において擬似的にCD−ROMドライブとリムーバブルディスク等が入れ替わる形となる。つまり、USBストレージデバイス含まれるCD−ROM領域とリムーバブル領域は同時に認識されることはない。また、CD−ROM領域とリムーバブル領域のドライブレターが同一であれば、一つの追加されたドライブがCD−ROM領域からリムーバブル領域に入れ替わったように、ユーザには擬似的に認識させることができる。
【0086】
したがって、記憶領域を切り替えることにより、ドライブレターの枯渇を防止することができる。また、たとえばどの記憶領域に所望のファイルが格納されているか等、ユーザは理解しておく必要がない為、ユーザの負担を軽減することができる。
【0087】
なお、図9は、実施例に係る端末装置によって認識された第1の記憶領域の一例を示す図である。図10は、実施例に係る端末装置によって認識された第2の記憶領域の一例を示す図である。両者を比較すると、実際の記憶領域が切り替わっているにもかかわらず、ドライブレターが一致していることがわかる。記憶領域が切り替わっていることは、記憶されているファイルの内容が異なっているため、理解できよう。
【0088】
(情報漏洩防止プログラムの処理)
情報漏洩防止プログラムとして機能する制御プログラム254の利用制限機能は、任意のプロセスから第2の記憶領域へのアクセスが発生する度に、図4のステップS411で取得したログインユーザ情報と、アクセスを行ったプロセスのログインユーザ情報を比較し、アクセス制御を行う。なお、フィルタドライバを用いてもUSBストレージデバイスの記憶領域へのアクセス制御を行うことができる。フィルタドライバも、USBストレージデバイス10から端末装置20へインストールされる情報漏洩防止プログラムの一例である。
【0089】
図11は、利用制限機能の動作の一例を示したフローチャートである。ステップS1101で、CPU21は、起動している情報漏洩防止プログラムにしたがって、アクセス要求(読み書き要求)を発生したプロセスの名称がブラックリスト183に登録されているかを判定する。ブラックリスト183が第3の記憶領域18に記憶されている場合、CPU21がブラックリスト183を直接的に読み取れない。そこで、認証処理と同様に、CPU21は、発生したプロセスの名称をコントローラ12に転送し、コントローラ12が、この名称とブラックリスト183とを比較し、比較結果をCPU21に返送する。あるいは、ブラックリスト183をコントローラ12がCPU21に転送し、CPU21が、比較処理を実行してもよい。ブラックリスト183に登録されたプロセスであれば、ステップS1108に進む。
【0090】
ステップS1108で、CPU21は、そのプロセスの動作そのものをキャンセルする。これにより、既知のウイルスやワームによる予期せぬ動作をストップさせることができる。また、印刷またはそれに関連するプロセス、ネットワーク接続に関連するプロセス、画面を画像として取り込むプロセス(プリントスクリーン等)も動作を禁止される。このように、CPU21は、情報処理装置において実行されているプロセスの識別情報が、ブラックリストに登録されている識別情報と一致すると、当プロセスによる動作をキャンセルするキャンセル手段として機能することになる。
【0091】
発生したプロセスの名称がブラックリスト183に登録されていない場合(ステップS1101のNO)、ステップS1102に進む。ステップS1102で、CPU21は、発生したプロセスの名称がホワイトリスト182に登録されているかどうかを判定する。この判定処理もブラックリストに関する判定処理と同様の処理となる。ホワイトリスト182に登録されているプロセスである場合(ステップS1102のYES)、ステップS1103に進む。一方、ブラックリスト183にもホワイトリスト182にも登録されていないプロセスであれば、ステップS1107に進む。
【0092】
ステップS1103で、CPU21は、発生したプロセスのログインユーザ情報が、認証に成功したユーザのログインユーザ情報(図4のステップS411で取得したログインユーザ情報)とを比較し、両者が同一かを判定する。発生したプロセスのログインユーザ情報は、情報処理装置にログインしている複数のユーザをそれぞれ識別するための識別情報である。認証に成功したユーザのログインユーザ情報は、個人認証手段により認証されたローカルユーザの識別情報である。プロセスのログインユーザ情報は、一般にOSによって管理されている。よって、CPU21は、発生したプロセスのログインユーザ情報をOSから取得する。両者が同一でない場合、判定対象のプロセスはリモートユーザが使用しているプロセスであるため、ステップS1107に進む。両者同一の場合は、判定対象のプロセスはローカルユーザが使用しているプロセスであるため、ステップS1104に進む。このように、CPU21は、ローカルユーザによる制限領域に対する情報の読み書き要求と、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書き要求とを検出する検出手段として機能する。
【0093】
ステップS1107で、そのプロセスのアクセス先は、USBストレージデバイス10内か否かを判定する。アクセス先がUSBストレージデバイス10以外の場合(ステップS1107のNO)、CPU21は、何も行わない(ステップS1106)。すなわち、端末装置20が備える記憶装置への書き込み要求であれば、CPU21は、通常どおり許可し、制限処理は行わない。一方、アクセス先がUSBストレージデバイス10内の場合(ステップS1107のYES)、ステップS1108で、CPU21は、そのプロセスの動作そのものをキャンセルする。すなわち、そのプロセスによる第2の記憶領域17へのファイルのアクセスを防止する。このように、CPU21は、情報処理装置において実行されているプロセスの識別情報が、ホワイトリストに登録されている場合であって、かつ、プロセスが個人認証処理により認証されたローカルユーザによって起動されたプロセスでない場合に、記憶媒体の制限領域へに対する動作をキャンセルするアクセス制限手段として機能する。
【0094】
このように、CPU21は、情報処理装置において実行されているプロセスの識別情報が、ホワイトリストに登録されている識別情報と一致するか否かに応じて、制限領域に対するアクセスを制限するアクセス制限手段として機能する。これにより、ホワイトリスト182に登録されていない未知のアプリケーションによるフラッシュメモリ15へのアクセスや、認証に成功していないユーザ、とりわけリモートユーザによるフラッシュメモリ15へのアクセスをストップさせることができる。つまり、ホワイトリスト182に登録されていないプロセスや、認証に成功していないユーザはフラッシュメモリ15内の記憶領域にアクセスすることができない。
【0095】
ステップS1104で、CPU21は、そのプロセスのアクセス先がUSBストレージデバイス10内か否かを判定する。アクセス先がUSBストレージデバイス10以外の場合、CPU21は、何も行わない(ステップS1106)。アクセス先がUSBストレージデバイス10内の場合、ステップS1105で、CPU21は、そのプロセスによる第2の記憶領域17へのファイルのアクセスを許可する。すなわち、認証された指紋認証デバイス11によって認証されたローカルユーザによって使用されているプロセスによる第2の記憶領域17のファイルに対する読み書きが許可される。このように、CPU21は、情報処理装置において実行されているプロセスの識別情報が、ホワイトリストに登録されている場合であって、かつ、プロセスが個人認証処理により認証されたローカルユーザによって起動されたプロセスである場合に、記憶媒体の制限領域へのアクセスを許可するアクセス制限手段として機能する。
【0096】
このように、CPU21は、検出手段が個人認証手段により認証されたローカルユーザによる制限領域(USBストレージデバイス内)に対する情報の読み書き要求を検出すると、個人認証手段により認証されたローカルユーザによる制限領域に対する情報の読み書きを許可し、検出手段が個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書き要求を検出すると、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書きを制限する読み書き制御手段として機能する。情報漏洩防止プログラムは、端末装置20において実行されているプロセスのログインユーザ情報が、認証に成功したローカルユーザのログインユーザ情報と一致するか否かに応じて、第2の記憶領域17に対するアクセスを制限するアクセス制限手段として、端末装置20を機能させる。また、情報漏洩防止プログラムは、端末装置20において実行されているプロセスの識別情報がホワイトリスト、ブラックリストに登録されている識別情報と一致するか否かに応じて、第2の記憶領域17に対するアクセスを制限するアクセス制限手段として、端末装置20を機能させる。
【0097】
また、認証に成功したローカルユーザのログインユーザ情報に依存して、CPU21は、読み書きの許可や読み込みのみの許可などのアクセス権限を変更してもよい。なお、発生したプロセスと、ブラックリストとの比較(ステップS1101)、ホワイトリストとの比較(S1102)は、発生したプロセスのログインユーザ情報が、認証に成功したユーザのログインユーザ情報と同一か否かの判定処理(ステップS1103)の後に行ってもよい。
【0098】
以上説明したように、複数ユーザ同時使用可能な情報処理装置においても情報の漏洩を抑制するためのセキュリティ機能を実現する。
【0099】
[第2実施例]
第2実施例は、ブラックリストやホワイトリストを用いないよりシンプルな実施例である。なお、認証に成功したローカルユーザのみが秘匿領域にアクセスでき、認証に失敗したローカルユーザやリモートユーザが秘匿領域(セキュリティ領域)へアクセスを制限される点で、第2実施例と第1実施例とは共通している。
(ハードウエア構成)
図12は、端末装置1201と、それに接続される汎用のUSBストレージデバイス1210とを示す概略構成図である。端末装置1201は、パーソナルコンピュータなど、汎用のインターフェースを介して外部記憶装置を接続可能なコンピュータである。端末装置1201は、上述した端末装置20とほぼ同様の構成を備えており、OS202およびターミナルサービス提供部201も備えている。USBストレージデバイス1210は、上述したUSBストレージデバイス10と同様の記憶装置であり、端末装置1201が備えるインターフェース1208に対して着脱可能な記憶媒体の一例である。なお、記憶媒体は、FD(フレキシブルディスク)やSDカードなど、記憶領域を備えた他の種類の記憶装置であってもよい。すなわち、セキュリティプログラムを記憶しておくプログラム記憶領域と、本発明に係る読み書きの制限されるセキュリティ領域とを確保できる記憶装置であれば、どのような種類の記憶装置であってもよい。
【0100】
ここでは説明をわかりやすくするために、USBストレージデバイス1210を接続するためのインターフェース1208がUSBインターフェースであるものと仮定する。しかし、本発明のインターフェースは、これに限定されず、IEEE1394、ワイヤレスUSB、eSATAなど、他の種類のインターフェースであってもよい。インターフェース1208には、他の端末装置と210、220とネットワークを介して通信するための通信回路である。
【0101】
端末装置1201は、たとえば、CPU1202、ROM1203、RAM1204、ハードディスクドライブ(HDD)1205、入力装置1206、表示装置1207、インターフェース1208及びシステムバス1209を備えている。CPU1202は、ROM1203やHDD1205に記憶されているコンピュータプログラムに基づいて各部を制御するプロセッサである。本発明のCPU1202は、USBストレージデバイス1210から読み出した自動インストールプログラム1214やセキュリティプログラム1215を実行する。これにより、CPU1202は、USBストレージデバイス1210に確保されたセキュリティ領域へのデータの書き込みとセキュリティ領域からのデータの読み出しを許可する読み書き制御手段として機能する。
【0102】
RAM(Random Access Memory)1204は、ワークエリアとして機能する。ROM(Read Only Memory)1203は、不揮発性の記憶素子であり、ファームウエアなどを記憶する。HDD1205には、OS(オペレーティングシステム)、アプリケーションプログラムなどが記憶されている。なお、CPU1202は、自動インストールプログラム1214を実行することで、セキュリティプログラム1215をHDD1205に格納及びインストールする。CPU1202と各部は、システムバス1209を介して命令やデータの送受信を実行する。
【0103】
入力装置1206は、ユーザが端末装置1201に対して指示を入力するための装置であり、キーボードやマウスなどにより構成されている。入力装置1206は、たとえば、認証データ(パスワード)やセキュリティ領域の設定情報を入力する際に使用される。入力された情報はCPU1202よって受け付けられる。表示装置1207は、たとえば、CRTや液晶表示装置により構成されており、CPU1202による処理結果を画像や文字などによって表示する。インターフェース1208は、USBバス1220を介してUSBストレージデバイス1210が備えるUSBインターフェース1211と接続する。すなわち、USBバス1220を介して端末装置1201とUSBストレージデバイス1210とが双方向にデータの送受信を行う。
【0104】
以降では、端末装置1201がパーソナルコンピュータであることを前提にして説明する。ただし、演算処理能力を有する機器であるならばその種類や機種は限定されることはなく、端末装置1201として本発明を適用できる。
【0105】
一方、USBストレージデバイス1210は、USBインターフェース1211、コントローラ1212、発光ダイオード(LED)1208、不揮発性記憶手段であるフラッシュメモリ1213を備えている。コントローラ1212は、端末装置1201からUSBインターフェース1211を介して受信した命令に従って、フラッシュメモリ1213に対してデータの読み出し、書き込みおよび削除を実行する。USBインターフェース1211は、USBバス1220を介して、端末装置1201と通信を行う。すなわち、USB規格に基づいたパケットが送受信される。LED1218は、フラッシュメモリ1213に対してファイルの読み出し、書き込み、削除が実行されている際に点灯する発光体である。LED1218は、フラッシュメモリ1213に対してファイルの読み出し、書き込みおよび削除が実行中であることをユーザに示す。
【0106】
フラッシュメモリ1213は、記憶保持動作が不要な半導体メモリであり、ファイルや情報を記憶することができる。フラッシュメモリ1213に代えて、他の種類の不揮発性記憶装置が採用されてもよい。フラッシュメモリ1213には、たとえば、プログラム格納領域、自由領域及び秘匿領域とが存在する。この点は、図3に示したフラッシュメモリ15と同様である。プログラム格納領域には、自動インストールプログラム1214、セキュリティプログラム1215及び設定データ1216などが記憶される。なお、プログラム格納領域は自由領域そのものまたはその一部であってもよい。
【0107】
自動インストールプログラム1214は、USBストレージデバイス1210が端末装置1201に接続されたときに実行されるコンピュータプログラムまたはスクリプトである(例:autorn.inf)。ここでは、自動インストールプログラム1214は、セキュリティプログラム1215を端末装置1201へとインストールするために使用される。セキュリティプログラム1215は、自身が情報処理装置で実行されている場合に限り、USBストレージデバイス1210に確保されたセキュリティ領域へのデータの書き込みとセキュリティ領域からのデータの読み出しを許可する。セキュリティ領域に対するデータの読み書きは、実行中のセキュリティプログラム1215が許可しなければ、実行できない。ただし、セキュリティプログラム1215が実行中でない場合は、セキュリティ領域(秘匿領域)への書き込みがOSを通じて許可されてもよい。一方、非セキュリティ領域である自由領域に対するデータの読み書きは、セキュリティプログラム1215が実行中であるか否かとは無関係に許可される。すなわち、通常のOSの制御にしたがって自由にデータの読み書きが実行可能である。
【0108】
本実施形態においては、データの読み書きの制限(セキュリティ機能)を暗号化処理、復号化処理及び認証処理によって実現するものとして説明する。すなわち、セキュリティ領域である秘匿領域へ書き込まれるデータは基本的に暗号化される。一方、認証の成功したユーザが、秘匿領域から暗号化されたデータを読み出すことを指示した場合には、暗号化されたデータの復号化が実行される。
【0109】
(記憶媒体の初期化処理)
図13は、端末装置1201において、USBストレージデバイス1210の初期化処理を示すフローチャートである。ここでは、USBストレージデバイス1210には、セキュリティプログラム1215が導入済みでないものとする。よって、初期化処理は、端末装置1201内のHDD1205に記憶されているセキュリティプログラム1215をUSBストレージデバイス1210へインストールする処理となる。端末装置1201内のHDD1205に記憶されているセキュリティプログラム1215をCPU1202が起動し、CPU1202はセキュリティプログラム1215にしたがってUSBストレージデバイス1210の初期化処理を実行する。
【0110】
ステップS1301で、CPU1202は、フラッシュメモリ1213に特定の使用者のみがアクセスできる秘匿領域(セキュリティ領域)と、第三者も自由に使用できる自由領域(非セキュリティ領域)領域とを、入力装置1206から入力された情報にしたがって定義及び設定する。最も簡単な例としては、秘匿領域と自由領域とを異なるフォルダによって実現することであろう。CPU1202は、秘匿領域にすべきフォルダの名称(例:秘匿領域)やファイルパスを入力することを促すためのメッセージを表示装置1207から出力する。ユーザは、秘匿領域にすべきフォルダの名称やファイルパスを入力装置1206から入力する。なお、自由領域は本来なくてもよいが、ユーザが任意で設定してもよい。つまり、秘匿領域として明示的に指定されていない他のフォルダは自由領域として黙示的に指定されたことになる。さらに、秘匿領域と自由領域の記憶容量を設定できるようにしてもよい。記憶容量の設定は、たとえば、フラッシュメモリ1213を論理フォーマットした後で、記憶容量を指定した複数の基本領域や拡張領域を確保することで実現される。このように、CPU1202は、記憶媒体にセキュリティ領域を定義する定義手段として機能する。
【0111】
図14は、フォルダ階層の一例を示した図である。フォルダ階層1401によれば、ローカルディスク(Cドライブ)と、リムーバブルディスク1402(Dドライブ)とが端末装置1201に内蔵ないしは接続されていることがわかる。さらに、リムーバブルディスク1402には、秘匿領域1403と自由領域1404とがフォルダとして設定されている。なお、自動インストールプログラム1214、セキュリティプログラム1215及び設定データ1216は、ルートディレクトリに記憶されているものとする。秘匿領域1403は、情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、個人認証処理により認証されなかったローカルユーザおよびリモートユーザによる情報の読み書きが制限された記憶領域である制限領域の一例である。自由領域1404は、情報処理装置に対して直接的にログインしているローカルユーザと、情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域の一例である。
【0112】
図15は、設定データの一例を示す図である。CPU1202は、セキュリティ領域として設定されたフォルダの名称(ファイルパス)1501を設定データ1216に保存する。なお、複数のセキュリティ領域が設定されてもよい。さらに、ユーザIDとパスワードとを複数のセキュリティ領域に関連付けて設定データ1216に記憶しておけば、複数のユーザ間でUSBストレージデバイス1210を共用する際にもセキュリティを維持できる。設定データ1216には、後述する認証データ1502も保存される。設定データ1216は、フラッシュメモリ1213に記憶されてもよいし、HDD1205に記憶されてもよい。
【0113】
ここで、秘匿領域や自由領域をフォルダにより実現しているが、本発明はこれにのみ限定されるわけではない。たとえば、フラッシュメモリ1213の物理メモリアドレスを利用して各領域が区別されてもよい。つまり、秘匿領域を物理メモリアドレスのうちAからBまでとし、自由領域を物理メモリアドレスのうちCからDまでとするが如くである。
【0114】
ステップS1302で、CPU1202は、認証処理で使用するための認証データ(例:パスワード)を決定し、設定データ1216に保存する。パスワードは、入力装置1206からユーザによって指定されたものであってもよいし、CPU1202が一定のルールに基づいて決定してもよい。後者の場合、CPU1202は、決定したパスワードを表示装置1207に表示することで、ユーザにパスワードを覚えてもらうことになる。また、パスワードは、ユーザの生体認証(例:指紋認証、虹彩認証、声紋認証)データであってもよい。この場合は、生体認証データの入力装置が端末装置1201またはUSBストレージデバイスに必要となる。いずれの場合もセキュリティプログラム1215にしたがってCPU1202は入力装置から入力された生体情報を生体認証データとしてフラッシュメモリ1213に設定する。このように、CPU1202は、セキュリティ領域に対するデータの読み出し書き込みを許可するための認証データを設定する設定手段として機能する。
【0115】
なお、CPU1202は、セキュリティ領域(すなわちフォルダ)ごと、または、情報処理装置ごとに異なる暗号鍵を生成する暗号鍵生成手段として機能してもよい。これにより、ある端末装置1201において暗号化されたUSBストレージデバイス1210内のデータは、他の端末装置1201では復号できなくなる。なお、暗号機能と復号機能はソフトウエアとCPU1202によって実現されてもよいし、ASICなどの専用のハードウエアによって実現されてもよいし、これらを組み合わせて実現されてもよい。
【0116】
ステップS1303で、CPU1202は、HDD1205に記憶されているセキュリティプログラム1215、自動インストールプログラム1214及び設定データ1216をUSBストレージデバイス1210のフラッシュメモリ1213にインストールし、初期化処理を終了する。このような初期化処理により、ユーザの事情に合わせて、各領域の容量やパスワードの設定・変更を行うことができる。
【0117】
(端末装置の処理)
図16は、端末装置1201にUSBストレージデバイス1210が挿入された際、端末装置1201の処理の流れを示すフローチャートである。なお、CPU1202は、OSにしたがってUSBストレージデバイス1210が端末装置1201に接続されたか否か、USBストレージデバイス1210が端末装置1201から取り外されたか否かを監視しているものとする。このように、CPU1202は、インターフェースに記憶媒体が接続されたか、または、インターフェースから取り外されたかを検出する検出手段として機能する。
【0118】
ステップS1601で、初期化処理が終了したUSBストレージデバイス1210が端末装置1201に挿入(接続)される。CPU1202は、USBストレージデバイス1210が端末装置1201に接続されたことを検出すると、ステップS1602に進む。なお、この際に、CPU1202は、OSにしたがってUSBストレージデバイス1210をリムーバブルティスクとして認識し、ドライブレターを割り当てたり、フォルダの構成などを認識したりする。
【0119】
ステップS1602で、CPU1202は、OSにしたがってUSBストレージデバイス1210内の自動インストールプログラム1214を読み出して実行し、自動インストールプログラム1214にしたがってセキュリティプログラム1215を端末装置1201のHDD1205にインストールする。このように、CPU1202は、インターフェースに記憶媒体が接続されると、セキュリティプログラムを情報処理装置にインストールするインストール手段として機能する。CPU1202は、インストールしたセキュリティプログラム1215を自動インストールプログラム1214にしたがって起動する。CPU1202は、認証処理を開始する。たとえば、CPU1202は、セキュリティプログラム1215にしたがって表示装置1207を介してユーザにパスワードの入力を促すためのダイアログなどを表示する。このように、CPU1202は、セキュリティプログラムが起動されたときに認証データを受け付ける受付手段として機能する。
【0120】
ステップS1603で、CPU1202は、セキュリティプログラム1215にしたがって、入力装置1206から入力されたパスワードと、フラッシュメモリ1213またはHDD1205に記憶されているパスワードとに基づいて認証処理を実行する。このように、CPU1202は、受け付けられた認証データと設定手段により設定された認証データとを比較することで認証処理を実行する認証手段として機能する。CPU1202は、両者を比較し、両者が一致すれば、認証成功と判定し、両者が一致しなければ認証失敗と判定する。認証が失敗すると、ステップS1607に進む。ステップS1607で、CPU1202は、セキュリティプログラム1215を終了させ、セキュリティプログラム1215を端末装置1201からアンインストールする。
【0121】
一方、ステップS1603で、認証が成功すると、ステップS1604に進む。ステップS1604で、CPU1202は、セキュリティプログラム1215にしたがって、端末装置1201において認証者が使用しているログインユーザ情報を取得し、RAM1204の内部に設けられた認証情報記憶部203に格納して保存する。ログインユーザ情報とは端末装置1201において、操作ユーザを特定するための、識別子であり、ユーザ名、セッションIDなどが考えられる。ここでは、セキュリティプログラム1215は端末装置1201に直接的にログインしているローカルユーザによって実行されるプログラムである。そのため、認証処理の対象者も当然にローカルユーザである。CPU1202は、セキュリティプログラム1215にしたがって、このローカルユーザの識別情報(ログインID)などをOSから取得する。また、CPU1202は、ローカルユーザの識別情報と関連付けて、USBストレージデバイス1210の秘匿領域を使用するための認証処理に成功したことを示すフラグなどの情報もRAMなどに記憶しておいてもよい。
【0122】
ステップS1604で、ログインユーザ情報が取得されると、ステップS1605に進む。ステップS1605で、CPU1202は、セキュリティプログラム1215が備える機能の一つである秘匿領域モードをONに切り替える。CPU1202は、秘匿領域モード情報をRAM1204に記憶する。秘匿領域モード情報は、秘匿領域モードがONかOFFかを示すフラグのようなデータである。秘匿領域モードがONになると、セキュリティプログラム1215は、その後も常駐しつづける。すなわち、CPU1202は、セキュリティプログラム1215及び設定データ1216にしたがって秘匿領域1403を特定し、秘匿領域1403に対するデータの読み書きを監視する。これは、CPU1202が、秘匿領域1403へ書き込まれるデータを暗号化し、秘匿領域1403から読み出されるデータを復号化するためである。また、セキュリティプログラム1215は、リモートユーザや認証に失敗したローカルユーザによる秘匿領域へのアクセスを拒絶する必要がある。OSは、その時点でログインしているユーザがローカルユーザであるのか、リモートユーザであるのかを把握している。よって、CPU1202は、秘匿領域1403に対して読み書き要求を発行したユーザがローカルユーザであるのか、リモートユーザであるのかをOSに問い合せ、このどちらであるかを特定する。リモートユーザであった場合、CPU1202は、セキュリティプログラム1215にしたがって、秘匿領域1403へのアクセスを拒絶することになる。
【0123】
ステップS1606で、CPU1202は、USBストレージデバイス1210が端末装置1201から取り外されたか否かを判定する。USBストレージデバイス1210が端末装置1201から取り外されると、ステップS1607に進む。ステップS1607では、セキュリティプログラム1215の終了と、自動アンインストールが実行される。このように、CPU1202は、インターフェースから記憶媒体が取り外されると、セキュリティプログラムを情報処理装置からアンインストールするアンインストール手段として機能する。
【0124】
図17は、USBストレージデバイス1210へのデータの書き込みについて、端末装置1201における処理を示すフローチャートである。ステップS1701で、CPU1202は、アプリケーションプログラムにしたがってデータ(情報)の書き込み要求を発生する。CPU1202は、常駐しているセキュリティプログラム1215にしたがって、データ(情報)の書き込み要求を監視しており、書き込み要求の発生を検出すると、ステップS1702へ進む。
【0125】
ステップS1702で、CPU1202は、セキュリティプログラム1215にしたがってRAM1204から秘匿領域モード情報を読み出し、秘匿領域モードがONであるか否か判定する。秘匿領域モードがONであれば、ステップS1703に進む。
【0126】
ステップS1703で、CPU1202は、セキュリティプログラム1215にしたがって、データが書き込まれる領域が秘匿領域1403であるか否かを判定する。データが書き込まれる領域を特定するための情報は、OSから受け取るものとする。秘匿領域1403がターゲットフォルダである場合、ステップS1704に進む。
【0127】
ステップS1704で、CPU1202は、セキュリティプログラム1215にしたがって、データの書き込みの発生したプロセスが、認証を行ったユーザと同一のセッションからのプロセスであるか否かを判定する。セキュリティプログラム1215にしたがって認証に成功したローカルユーザのログインユーザ情報は、RAM1204の内部に設けられた認証情報記憶部203に記憶されている。一方、プロセスを実行しているユーザのログインユーザ情報はOSから取得できる。したがって、CPU1202は、認証情報記憶部203から読み出したログインユーザ情報と、OSから取得したログインユーザ情報とを比較し、両者が一致するかどうか(すなわち、秘匿領域へのアクセスを禁止されるべきリモートユーザまたは認証に失敗したローカルユーザかどうか)を判定する。あるいは、秘匿領域に対するアクセスを要求したプロセスのセッションが、認証済みのユーザに関連付けられたセッションとが同一かどうかを判定してもよい。セッションごとに付与された識別情報であるセッションIDがログインユーザ情報になりうる。よって、セッションIDを比較した結果、秘匿領域に対するアクセスを要求したプロセスのセッションが、認証済みのユーザに関連付けられたセッションと同一である場合、ステップS1705に進む。両者が一致しなければ、判定対象のプロセスはリモートユーザまたは認証に失敗したローカルユーザのプロセスであるため、S1706に進む。なお、この場合、アクセスを完全に禁止するために、書き込み要求を拒絶してもよい。
【0128】
ステップS1705で、CPU1202は、セキュリティプログラム1215にしたがって、書き込み対象データを暗号化する。このように、CPU1202は、個人認証手段により認証されたローカルユーザによって制限領域へ書き込まれることになった情報を暗号化する暗号化手段として機能する。
【0129】
ステップS1706で、CPU1202は、セキュリティプログラム1215にしたがって、フラッシュメモリ1213内の秘匿領域1403に暗号化されたデータを書き込む。このように、フラッシュメモリ1213に格納する前に暗号化が実行されるため、ユーザによる機密情報の暗号化のし忘れを防止できる。
【0130】
一方、ステップS1703で、データの書き込みターゲットフォルダが秘匿領域1403でなければ(例:データの書き込みターゲットフォルダが自由領域1404)、ステップS1704をスキップして、ステップS1706に進む。ステップS1706で、CPU1202は、暗号化せずに、データを自由領域1404に書き込む。このように、CPU1202は、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによって制限領域へ書き込まれるようとしている情報を暗号化しない暗号化手段として機能する。
【0131】
また、ステップS1704で、データが書き込みの発生したプロセスが認証済みユーザが起動したプロセスでなければ、S1705をスキップして、ステップS1706に進む。ステップS1706で、CPU1202は、暗号化せずに、データを秘匿領域に書き込む。
【0132】
また、ステップS1702で、秘匿領域モードがONでない場合、ステップS1703及びステップS1704をスキップして、ステップS1706に進む。ステップS1706で、CPU1202は、データを書き込むターゲットとなる領域が秘匿領域1403であるか自由領域1404であるかとは無関係に、データを暗号化することなくそのまま書き込む。
【0133】
図18は、USBストレージデバイス1210からのデータの読み込みについて、端末装置1201における処理を示すフローチャートである。
【0134】
ステップS1801で、CPU1202は、任意のアプリケーションプログラムにしたがって、USBストレージデバイス1210に対するデータの読み込み要求を発生する。ステップS1802で、CPU1202は、セキュリティプログラム1215にしたがってRAM1204から秘匿領域モード情報を読み出し、秘匿領域モードがONであるか否か判定する。秘匿領域モードがONであれば、ステップS1803に進む。
【0135】
ステップS1803で、CPU1202は、セキュリティプログラム1215にしたがって、データを読み出される対象の領域が秘匿領域1403か否かを判定する。CPU1202は、データを読み出される対象となっている領域(読み出し対象領域)を特定するための情報もOSから取得する。読み出し対象領域が秘匿領域1403であれば、ステップS1804に進む。CPU1202は、読み出しのターゲットとなっているデータが暗号化データであるか否かを判定する。暗号化データか否かは、たとえば、暗号化データの先頭部分に特有の情報が存在するか否かなどにしたがって判定される。暗号化データであれば、ステップS1805に進む。
【0136】
ステップS1805で、CPU1202は、セキュリティプログラム1215にしたがって、データへの読込みが発生したプロセスのセッションが認証済みユーザのセッションと一致するか否かを判定する。上述したように、認証情報記憶部203に記憶されているログインユーザ情報と、データへの読込みが発生したプロセスにリンクされているログインユーザ情報とを比較することで、この判定は実行可能である。この判定処理も、秘匿領域へのアクセスを禁止されるべきリモートユーザまたは認証に失敗したローカルユーザかどうかを判定する処理である。秘匿領域へのアクセスを禁止されるべきリモートユーザまたは認証に失敗したローカルユーザによるプロセスからの読み出し要求でなければ(すなわち、認証済みのローカルユーザによる読み出し要求であれば)、ステップS1806に進む。このように、CPU1202は、ローカルユーザによる制限領域に対する情報の読み書き要求と、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書き要求とを検出する検出手段として機能する。
【0137】
ステップS1806で、CPU1202は、セキュリティプログラム1215にしたがって、読み出し要求により指定された暗号化データを復号化する。このように、CPU1202は、個人認証手段により認証されたローカルユーザによって制限領域から読み出された情報を復号化する復号化手段として機能する。
【0138】
ステップS1807で、CPU1202は、セキュリティプログラム1215にしたがって、読み出し要求を発行したプロセスであるアプリケーションプログラムにデータを渡し、RAM1204にデータを書き込む。すなわち、復号化されたデータは、フラッシュメモリ1213に格納されない。よって、復号化処理後にUSBストレージデバイス1210が端末装置1201から抜かれた場合でも、復号化されたデータをUSBストレージデバイス1210から読み込むことはできない。その結果、機密情報の漏洩を防ぐことができる。このように、CPU1202は、復号化したデータを記憶媒体に記憶せずに、情報処理装置が備えている揮発性の記憶手段に記憶させる読み書き制御手段として機能する。
【0139】
一方、ステップS1803で、秘匿領域1403ではない領域(例:自由領域1404)が読み出し対象と判別されると、ステップS1804及びS1805及びS1806をスキップして、ステップS1807に進む。同様に、ステップS1804で、読み出し対象データが暗号化データでないと判定された場合は、ステップS1805及びS1806をスキップして、ステップS1807に進む。ステップS1805で、CPU1202が、アクセスが発生したプロセスが認証済みのユーザが起動したプロセスでないと判定した場合、S1806をスキップして、ステップS1807に進む。ステップS1807で、CPU1202は、データを復号化処理せずにデータをアプリケーションプログラムに渡す。このように、CPU1202は、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによって読み出されようとしている制限領域に記憶された情報については復号しない復号化手段として機能する。
【0140】
なお、ステップS1802で、秘匿領域モードがONでないと判定された場合、ステップS1803ないしS1805ないしS1806をスキップし、ステップS1807に進む。ステップS1807で、CPU1202は、読み出し対象領域が秘匿領域1403であるか自由領域1404であるかとは無関係に、読み出し対象データを復号化処理せずに読み出す。
【0141】
このように、CPU1202は、検出手段が個人認証手段により認証されたローカルユーザによる制限領域に対する情報の読み書き要求を検出すると、個人認証手段により認証されたローカルユーザによる制限領域に対する情報の読み書きを許可し、検出手段が個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによるによる制限領域に対する情報の読み書き要求を検出すると、個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる制限領域に対する情報の読み書きを制限する読み書き制御手段として機能する。
【0142】
上述した自動インストールプログラム1214やセキュリティプログラム1215が実行する処理のうち、コンピュータ上で稼働しているオペレーティングシステム(OS)などがその処理の一部または全部を行ってもよい。その処理によって前述した実施形態の機能が実現される場合も本発明の技術的範囲に含まれることは言うまでもない。
【0143】
以上より、秘匿領域1403に格納されていたデータの読み込みと秘匿領域1403への書き込みは、セキュリティプログラム1215にしたがってCPU1202により制御される。つまり、CPU1202は、セキュリティプログラムが情報処理装置で実行されている場合に認証処理に成功すると、認証処理を行ったユーザのセッションと同一のセッションに属したプロセスからのセキュリティ領域に対するデータの読み出し書き込みに対して暗号化及び復号化が実行される。よって、秘匿領域1403に書き込まれるべきデータは、認証済みのローカルユーザが意図することなく、自動で暗号化されて書き込まれる。秘匿領域1403から読み込まれるべきデータも、ユーザが意図することなく、自動で復号化される。よって、認証に成功したローカルユーザであれば、暗号化や復号化の処理を意図して指示する必要はない。
【0144】
また、認証に成功したことで秘匿領域モードがONになっているときは、秘匿領域1403に書き込まれたデータは暗号化されている。よって、認証に失敗したなど、秘匿領域モードがOFFのとき、または認証を行ったユーザのセッションと同一のセッションに属したプロセスでないとき、そのユーザは、そのデータを復号化することができない。すなわち、認証されていないローカルユーザやリモートユーザは、暗号化されたデータを復号して利用することができない。これは、セキュリティプログラム1215が実行中であれば認証に成功した特定のローカルユーザのみが、USBストレージデバイス1210の秘匿領域に保護・秘匿すべきデータを保存・消去できることを意味する。なお、認証の必要がない自由領域1404も用意すれば、第三者はこの自由領域1404を使用すればよい。これは、記憶媒体に確保された非セキュリティ領域に対するデータの読み書きは、ユーザ認証の成否やローカルユーザかリモートユーザかの区別とは無関係に、CPU1202が許可するからである。よって、単一のUSBストレージデバイス1210を特定のユーザと第三者とで安全に共用することもできる。
【0145】
フラッシュメモリ1213から暗号化されたデータを読み込む場合、復号化されたデータはUSBストレージデバイス1210のフラッシュメモリ1213ではなく端末装置1201のRAM1204に書き込まれる。すなわち、復号化されたデータはUSBストレージデバイス1210には書き込まれない。よって、復号化処理後にUSBストレージデバイス1210が端末装置1201から抜かれた場合でも、秘匿領域1403に格納されているデータは依然として暗号化されたままである。よって、秘匿領域1403に格納されている機密情報の漏洩を防ぐことができる。
【0146】
ところで、上述の実施形態では、USBストレージデバイス1210のフラッシュメモリ1213にセキュリティプログラム1215を記憶して持ち歩き、それを起動することを想定していた。しかし、セキュリティプログラム1215等をUSBストレージデバイス1210に記憶して持ち歩く必要はない。すなわち、端末装置1201のHDD1205にセキュリティプログラム1215を記憶しておき、それをユーザによる入力装置1206からの起動指示に基づいて、または、USBストレージデバイス1210に記憶してある自動起動プログラム(autorun.infなど)に基づいて、CPU1202がセキュリティプログラム1215を起動する。
【0147】
図19は、端末装置1201と、それに接続される汎用のUSBストレージデバイス1210とを示す概略構成図である。すでに説明した箇所には同一の参照符号を付与している。図12と比較すると、図19では、セキュリティプログラム1215と設定データ1216が端末装置1201のHDD1205に記憶されている。すなわち、上述した初期化処理のステップS1303では、CPU1202が、設定データ1216をHDD1205に記憶したものとする。また、設定データ1216はフラッシュメモリ1213に記憶されていてもよい。
【0148】
なお、USBストレージデバイス1210ごと、または、フォルダごとに暗号鍵を生成し、設定データ1216に保存しておいてもよい。また、端末装置1201が異なれば、暗号鍵も異なるようにCPU1202が生成してもよい。これにより、ある端末装置1201において暗号化されたUSBストレージデバイス1210内のデータは、他の端末装置1201では復号できなくなる。
【0149】
図19によれば、自動起動プログラム1901がフラッシュメモリ1213に記憶されている。なお、セキュリティプログラム1215をユーザに起動させる実施形態では、自動起動プログラム1901は必ずしも必要ではない。
【0150】
図20は、端末装置1201にUSBストレージデバイス1210が挿入された際、端末装置1201の処理の流れを示すフローチャートである。すでに説明した箇所には同一の参照符号を付与している。図16と比較すると、図20では、ステップS1602とS1607が、それぞれステップS2002とS2007に置換されている。ステップS1601で、USBストレージデバイス1210がインターフェース1208に接続されたことをCPU1202が検出すると、ステップS2002へ進む。なお、CPU1202は、インターフェースに記憶媒体が接続されたか否かを検出する検出手段として機能する。
【0151】
ステップS2002で、CPU1202は、USBストレージデバイス1210内の自動起動プログラム1901を読み出して実行し、自動起動プログラム1901にしたがって、HDD1205に記憶されているセキュリティプログラム1215を起動する。なお、自動起動プログラム1901をautorun.infで実行する場合は、セキュリティプログラム1215のファイルパスがどの端末装置1201でも同一となるように、端末装置1201にセキュリティプログラム1215をインストールすることが前提となる。このように、CPU1202は、インターフェースに記憶媒体が接続されたことを検出手段が検出すると、記憶装置(HDD1205)に記憶されているセキュリティプログラムを実行する制御手段として機能する。その後、CPU1202は、セキュリティプログラム1215にしたがって表示装置1207を介してユーザにパスワードの入力を促すためのダイアログなどを表示する。その後、ステップS1603ないし、S1604、S1605を実行し、ステップS2007に進む。ステップS2007で、CPU1202は、セキュリティプログラム1215をクローズ(終了)させる。
【0152】
以上説明したように、セキュリティプログラム1215が端末装置1201に記憶されていたとしても、記憶媒体の仕様に依存することなく、情報の漏洩を抑制するためのセキュリティ機能を追加できる。よって、セキュリティプログラム1215やUSBストレージデバイス1210のコストを低下させやすくなろう。
【0153】
とりわけ、本発明によれば、USBストレージデバイスの記憶領域がローカルユーザとリモートユーザとの双方が使用できる自由領域とローカルユーザのみが使用できる制限領域とに分割される。よって、複数のユーザが同時に使用可能な情報処理装置にUSBストレージデバイスが接続されたとしても、USBストレージデバイスの制限領域に格納されているローカルユーザの情報やソフトウエア等がリモートユーザによって不正に利用されないようになる。
【0154】
また、端末装置のプロセッサであるCPUがコンピュータプログラムを実行することによって各種の機能が実現されるものとして説明したが、これらの機能はASICなどのハードウエアリソースによって実現されてもよい。また、各機能を一部がCPUによって実現され、残りが他のハードウエアリソースによって実現されてもよい。

【特許請求の範囲】
【請求項1】
複数のユーザが同時に使用可能な情報処理装置に対して、前記情報処理装置の筐体をあけることなく着脱可能な記憶媒体であって、
前記情報処理装置または前記記憶媒体において実行される個人認証処理により認証された前記情報処理装置に対して直接的にログインしているローカルユーザによる前記記憶媒体へのアクセスを許可し、前記個人認証処理により認証されなかったローカルユーザおよび前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザによる前記記憶媒体へのアクセスを制限するアクセス制限手段
を備えることを特徴とする記憶媒体。
【請求項2】
前記個人認証処理は、複数のユーザをそれぞれ識別するための識別情報と、前記ローカルユーザの識別情報を比較し判定することを含む
ことを特徴とする請求項1に記載の記憶媒体。
【請求項3】
複数のユーザが同時に使用可能な情報処理装置に対して、前記情報処理装置の筐体をあけることなく着脱可能な記憶媒体であって、
前記情報処理装置に対して直接的にログインしているローカルユーザと、前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された記憶領域である自由領域と、
前記情報処理装置または前記記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、前記個人認証処理により認証されなかったローカルユーザおよび前記リモートユーザによる情報の読み書きが制限された記憶領域である制限領域と
を備えたことを特徴とする記憶媒体。
【請求項4】
前記個人認証処理は、前記記憶媒体において実行される個人認証処理であり、
前記記憶媒体は、前記個人認証処理を実行する個人認証手段をさらに備えることを特徴とする請求項3に記載の記憶媒体。
【請求項5】
前記個人認証処理は、前記情報処理装置において実行される個人認証処理であり、
前記情報処理装置は、前記個人認証処理を実行する個人認証手段を備えることを特徴とする請求項3に記載の記憶媒体。
【請求項6】
前記情報処理装置は、
前記情報処理装置にログインしている複数のユーザをそれぞれ識別するための識別情報と、前記個人認証手段により認証されたローカルユーザの識別情報とを比較することで、ローカルユーザによる前記制限領域に対する情報の読み書き要求と、前記個人認証手段による個人認証に失敗したローカルユーザおよびリモートユーザによる前記制限領域に対する情報の読み書き要求とを検出する検出手段と、
前記検出手段が前記個人認証手段により認証されたローカルユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証手段により認証されたローカルユーザによる前記制限領域に対する情報の読み書きを許可し、前記検出手段が前記個人認証手段による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証手段による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書きを制限する読み書き制御手段と
を備えることを特徴とする請求項4または5に記載の記憶媒体。
【請求項7】
前記読み書き制御手段は、
前記個人認証手段により認証されたローカルユーザによって前記制限領域から読み出された情報を復号化する復号化手段と、
前記個人認証手段により認証されたローカルユーザによって前記制限領域へ書き込まれることになった情報を暗号化する暗号化手段と
をさらに備えることを特徴とする請求項6に記載の記憶媒体。
【請求項8】
前記復号化手段は、前記個人認証手段による個人認証に失敗したローカルユーザおよび前記リモートユーザによって読み出されようとしている前記制限領域に記憶された情報については復号せず、
前記暗号化手段は、前記個人認証手段による個人認証に失敗したローカルユーザおよび前記リモートユーザによって前記制限領域へ書き込まれるようとしている情報を暗号化しない
ことを特徴とする請求項7に記載の記憶媒体。
【請求項9】
前記記憶媒体は、前記情報処理装置において実行されるプロセスのうち、前記制限領域に対するアクセスを許可されたプロセスの識別情報を登録したホワイトリストを記憶したリスト記憶領域をさらに含み、
前記情報処理装置は、
前記情報処理装置において実行されているプロセスの識別情報が、前記ホワイトリストに登録されている識別情報と一致するか否かに応じて、前記制限領域に対するアクセスを制限するアクセス制限手段を備えることを特徴とする請求項3ないし4のいずれか1項に記載の記憶媒体。
【請求項10】
前記アクセス制限手段は、
前記情報処理装置において実行されているプロセスの識別情報が、前記ホワイトリストに登録されている場合であって、かつ、該プロセスが前記個人認証処理により認証されたローカルユーザによって起動されたプロセスである場合に、前記記憶媒体の前記制限領域へのアクセスを許可することを特徴とする請求項9に記載の記憶媒体。
【請求項11】
前記アクセス制限手段は、
前記情報処理装置において実行されているプロセスの識別情報が、前記ホワイトリストに登録されている場合であって、かつ、該プロセスが前記個人認証処理により認証されたローカルユーザによって起動されたプロセスでない場合に、前記記憶媒体の前記制限領域へに対する動作をキャンセルすることを特徴とする請求項10に記載の記憶媒体。
【請求項12】
前記リスト記憶領域は、前記情報処理装置において実行されるプロセスのうち、アクセス対象の如何にかかわらず、動作をキャンセルされるプロセスの識別情報を登録したブラックリストを記憶しており、
前記情報処理装置は、
前記情報処理装置において実行されているプロセスの識別情報が、前記ブラックリストに登録されている識別情報と一致すると、当該プロセスによる動作をキャンセルするキャンセル手段
をさらに備えることを特徴とする請求項9ないし11のいずれか1項に記載の記憶媒体。
【請求項13】
コンピュータプログラムを記憶したプログラム記憶領域をさらに備え、
前記コンピュータプログラムを前記情報処理装置が備えるプロセッサが実行することで、前記情報処理装置が備える各手段として前記情報処理装置が機能することを特徴とする請求項6ないし12のいずれか1項に記載の記憶媒体。
【請求項14】
複数のユーザが同時に使用可能な情報処理装置であって、
前記情報処理装置の筐体をあけることなく着脱可能な記憶媒体と、
前記情報処理装置または前記記憶媒体において実行される個人認証処理により認証された前記情報処理装置に対して直接的にログインしているローカルユーザによる前記記憶媒体へのアクセスを許可し、前記個人認証処理により認証されなかったローカルユーザおよび前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザによる前記記憶媒体へのアクセスを制限するアクセス制限手段と、
を備えることを特徴とする情報処理装置。
【請求項15】
複数のユーザが同時に使用可能な情報処理装置であって、
前記情報処理装置に対して直接的にログインしているローカルユーザと、前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された自由領域と、前記情報処理装置または記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、前記個人認証処理により認証されなかったローカルユーザおよび前記リモートユーザによる情報の読み書きが制限された制限領域とを備えた、前記情報処理装置の筐体をあけることなく前記情報処理装置に対して着脱可能な記憶媒体と、
前記情報処理装置にログインしている複数のユーザをそれぞれ識別するための識別情報と、前記個人認証処理により認証されたローカルユーザの識別情報とを比較することで、ローカルユーザによる前記制限領域に対する情報の読み書き要求と、前記個人認証処理による個人認証に失敗したローカルユーザおよびリモートユーザによる前記制限領域に対する情報の読み書き要求とを検出する検出手段と、
前記検出手段が前記個人認証処理により認証されたローカルユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証処理により認証されたローカルユーザによる前記制限領域に対する情報の読み書きを許可し、前記検出手段が前記個人認証処理による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証処理による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書きを制限する読み書き制御手段と
を備えることを特徴とする情報処理装置。
【請求項16】
記憶媒体を接続し、複数のユーザが同時に使用可能な情報処理装置において実行されるコンピュータプログラムであって、
前記記憶媒体は、前記情報処理装置の筐体をあけることなく前記情報処理装置に対して着脱可能な記憶媒体であり、かつ、前記情報処理装置に対して直接的にログインしているローカルユーザと、前記情報処理装置に対してネットワークを介して他の情報処理装置から間接的にログインしているリモートユーザとの双方に情報の読み書きを許可された自由領域と、前記情報処理装置または前記記憶媒体において実行される個人認証処理により認証されたローカルユーザに情報の読み書きが許可され、前記個人認証処理により認証されなかったローカルユーザおよび前記リモートユーザによる情報の読み書きが制限された制限領域とを備えており、
前記コンピュータプログラムは、
前記情報処理装置にログインしている複数のユーザをそれぞれ識別するための識別情報と、前記個人認証処理により認証されたローカルユーザの識別情報とを比較することで、ローカルユーザによる前記制限領域に対する情報の読み書き要求と、前記個人認証処理による個人認証に失敗したローカルユーザおよびリモートユーザによる前記制限領域に対する情報の読み書き要求とを検出する検出手段と、
前記検出手段が前記個人認証処理により認証されたローカルユーザによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証処理により認証されたローカルユーザによる前記制限領域に対する情報の読み書きを許可し、前記検出手段が前記個人認証処理による個人認証に失敗したローカルユーザおよび前記リモートユーザによるによる前記制限領域に対する情報の読み書き要求を検出すると、前記個人認証処理による個人認証に失敗したローカルユーザおよび前記リモートユーザによる前記制限領域に対する情報の読み書きを制限する読み書き制御手段として前記情報処理装置を機能させることを特徴とするコンピュータプログラム。
【請求項17】
前記コンピュータプログラムは、前記記憶媒体から読み出され実行されることを特徴とする請求項16に記載のコンピュータプログラム。

【図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

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2011−248474(P2011−248474A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−118743(P2010−118743)
【出願日】平成22年5月24日(2010.5.24)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000104652)キヤノン電子株式会社 (876)
【Fターム(参考)】