以下、図面に基づいて、本願の開示する記憶制御プログラム、取得制御プログラム、記憶制御方法、取得制御方法、記憶制御装置および取得制御装置の実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
図1は、実施例の記憶制御システムの構成の一例を示すブロック図である。図1に示す記憶制御システム1は、携帯端末10と、装着型端末20と、情報処理装置100と、クラウド200とを有する。なお、携帯端末10、装着型端末20および情報処理装置100の数は限定されず、任意の数の携帯端末10、装着型端末20および情報処理装置100を有してもよい。携帯端末10と情報処理装置100との間、および、装着型端末20と情報処理装置100との間は、例えば、Bluetooth(登録商標)(以下、BTという。)等の無線通信にて、相互に通信可能に接続される。また、情報処理装置100とクラウド200との間は、ネットワークNを介して相互に通信可能に接続される。かかるネットワークNには、有線または無線を問わず、インターネットを始め、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。
記憶制御システム1は、情報処理装置100で処理される業務データの記憶領域を制御することで、情報処理装置100からの情報漏洩を抑止するシステムの一例である。情報処理装置100のユーザは、例えば、携帯端末10と装着型端末20とを1つずつ所持するものとする。携帯端末10は、例えば、スマートフォン等の移動体通信端末等であり、ユーザ認証や離席検知に用いる端末である。携帯端末10は、例えば、情報処理装置100とBTを用いてペアリングされ、携帯端末10の携帯端末ID(Identifier)を情報処理装置100に登録する。携帯端末10は、例えば、図示しない指紋センサやカメラを用いて、指紋認証、虹彩認証、顔認証等によりユーザ認証を行う。携帯端末10は、ユーザ認証が完了し、解錠アプリにおいてデータ結合の指示が入力されると、データ結合を指示する解錠データを、自身の識別情報である携帯端末IDとともに情報処理装置100に送信する。
装着型端末20は、例えば、ユーザの腕に装着するスマートウォッチ等のウェアラブルデバイスである。装着型端末20は、情報処理装置100で処理される業務データが分割されたデータの一部である第1のデータを受信して記憶する。また、装着型端末20は、情報処理装置100から第1のデータの取得要求を受信すると、取得要求に対応する第1のデータを情報処理装置100に送信する。なお、装着型端末20は、携帯端末10と同様に、例えば、情報処理装置100とBTを用いてペアリングされ、装着型端末20の装着型端末IDが情報処理装置100に登録されているものとする。
情報処理装置100は、例えば、ユーザが社内や社外で作業を行う情報処理装置であり、可搬型のパーソナルコンピュータやタブレット端末等を用いることができる。情報処理装置100は、持ち運び可能なコンピュータであって記憶制御を実行する。すなわち、情報処理装置100は、データの書き込みの要求と、データの書き込み元の識別情報とを受け付ける。情報処理装置100は、データの書き込み元の実行権限を、該書き込み元の識別情報に対応付けて記憶する記憶部を参照して、受け付けた書き込み元の識別情報に対応付けられた実行権限を特定する。情報処理装置100は、特定した実行権限が特定の実行権限に対応する場合、データを第1の記憶部に記憶させる。情報処理装置100は、特定した実行権限が特定の実行権限に対応しない場合、データをコンピュータ(情報処理装置100)の外部に備えられた第2の記憶部(クラウド200)に記憶させる。これにより、情報処理装置100は、書き込み先のコントロールを容易に行うことができる。
また、情報処理装置100は、デバイス(携帯端末10)から特定の指示データと該デバイスの識別情報とを受け付ける。情報処理装置100は、データの所在をデバイスの識別情報に対応付けて記憶する記憶部を参照して、受け付けた識別情報に対応付けられたデータの所在(装着型端末20)を特定する。情報処理装置100は、特定した所在に格納されたデータの取得要求を出力する。これにより、情報処理装置100は、情報漏洩リスクを低減できる。
ここで、図2および図3を用いて社内運用および社外作業における利用イメージについて説明する。図2は、社内運用イメージの一例を示す図である。図2の例では、ユーザは社内において情報処理装置100を用いて各種の作業を行っている。情報処理装置100の記憶部は、一般領域122aと秘密分散領域122bとを有する。情報処理装置100は、一般領域122aへのファイルのオープンや書き込み操作について、ドライバレベルで監視して、そのまま一般領域122aに対して行うか、外部の記憶部、例えばクラウド200の記憶部210に対して行うかを振り分ける。このとき、情報処理装置100は、アプリケーション(以下、アプリともいう。)の実行権限に基づいて、記憶先を振り分ける。
例えば、情報処理装置100で動作するOS(Operating System)は、実行権限が管理者権限であるアプリと考え、個人情報等を含む業務データを情報処理装置100に残さないと想定する。このため、管理者権限のアプリの一般領域122aへのファイルのオープン(読み込み)や書き込み操作は、そのまま一般領域122aに対して行う。一方、一般ユーザ権限のアプリの一般領域122aへのファイルのオープンや書き込み操作は、当該操作の処理をフックすることでクラウド200の記憶部210に対して行うようにする。図2の例では、データ30に対する書き込み操作はフックされ、クラウド200にリダイレクトされ、クラウド200の記憶部210にデータ30aとして記憶される。
これに対し、秘密分散領域122bは、例えば、データの持ち出し用のフォルダであり、秘密分散領域122bに書き込まれたデータは、秘密分散されて記憶される。情報処理装置100は、例えば、秘密分散領域122bにデータ31を書き込む操作が行われると、データ31を暗号化し、暗号化したデータ31をデータ31a,31bの2つのデータに分割する。情報処理装置100は、データ31aを装着型端末20に送信して記憶させ、データ31bを秘密分散領域122bに記憶する。
図3は、社外作業イメージの一例を示す図である。図3は、ユーザが社外において情報処理装置100を用いて各種の作業を行う場合の一例である。ユーザは、情報処理装置100のロックを、例えばユーザIDとパスワードを用いて解除する。次に、ユーザは、携帯端末10のロックを指紋、虹彩、顔等の生体認証を用いて解除する。ユーザは、携帯端末10の解錠アプリを用いて秘密分散されたデータの結合を指示する。情報処理装置100は、データの結合が指示されると、装着型端末20にデータ31aの取得要求を送信し、装着型端末20からデータ31aを取得する。また、情報処理装置100は、秘密分散領域122bに記憶されているデータ31bを取得して、RAM領域124で結合してデータ31を復元する。なお、情報処理装置100は、復元したデータ31に変更を加えて再度記憶する際には、図2に示す秘密分散領域122bへの書き込みと同様に、再度データ31を暗号化して分割する。また、情報処理装置100は、社外作業時にOSによるシステムファイルへの書き込み等があった場合には、管理者権限でのデータ操作であるので、一般領域122aに対して書き込み等を行う。
次に、情報処理装置100の構成について説明する。図1に示すように、情報処理装置100は、第1通信部110と、第2通信部111と、表示部112と、操作部113と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、図1に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
第1通信部110は、例えば、BT等の通信モジュール等によって実現される。第1通信部110は、例えば、BTにより携帯端末10および装着型端末20と無線で接続され、携帯端末10および装着型端末20との間で情報の通信を司る通信インタフェースである。第1通信部110は、制御部130から第1のデータの取得要求が入力されると、装着型端末20に対して第1のデータの取得要求を送信する。また、第1通信部110は、携帯端末10から解錠データを受信し、装着型端末20から第1のデータを受信する。第1通信部110は、受信した解錠データと、第1のデータとを制御部130に出力する。
第2通信部111は、例えば、無線LAN等の通信モジュールやNIC(Network Interface Card)等によって実現される。第2通信部111は、ネットワークNを介してクラウド200と有線または無線で接続され、クラウド200との間で情報の通信を司る通信インタフェースである。第2通信部111は、制御部130から入力されたデータをクラウド200に送信する。また、第2通信部111は、クラウド200から受信したデータを制御部130に出力する。
表示部112は、各種情報を表示するための表示デバイスである。表示部112は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部112は、制御部130から入力された表示画面等の各種画面を表示する。
操作部113は、情報処理装置100のユーザから各種操作を受け付ける入力デバイスである。操作部113は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部113は、ユーザによって入力された操作を操作情報として制御部130に出力する。なお、操作部113は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部112の表示デバイスと、操作部113の入力デバイスとは、一体化されるようにしてもよい。
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、実行権限記憶部121と、データ記憶部122と、分散先記憶部123と、RAM領域124とを有する。また、データ記憶部122は、一般領域122aと、秘密分散領域122bとを有する。さらに、記憶部120は、制御部130での処理に用いる情報を記憶する。
実行権限記憶部121は、データの読み込みまたは書き込み元の実行権限を、当該読み込みまたは書き込み元の識別情報に対応付けて記憶する。図4は、実行権限記憶部の一例を示す図である。図4に示すように、実行権限記憶部121は、「プロセス名」、「実行権限」といった項目を有する。実行権限記憶部121は、例えば、プロセス名ごとに1レコードとして記憶する。
「プロセス名」は、データの読み込みまたは書き込み元のプロセスを識別する識別情報である。「実行権限」は、対応するプロセスが有する実行権限を示す情報である。「実行権限」は、例えば、スーパーユーザと呼ばれる特権的機能を実行できる管理者権限と、一般ユーザが通常の作業を行う一般ユーザ権限とが挙げられる。管理者権限は、例えば、OSがWindows(登録商標)であれば、administratorと、各種のサービスプログラム等を実行するためのsystemとが挙げられる。一般ユーザ権限は、例えば、OSがWindowsであれば、userが挙げられる。
図1の説明に戻って、データ記憶部122は、OSやユーザデータを記憶する。データ記憶部122は、一般領域122aと、秘密分散領域122bとを有する。一般領域122aは、第1の領域の一例であり、例えば、Windowsでは、Cドライブに相当し、OSや各種のプログラムを記憶するとともに、ユーザが各種のプログラムを用いて作成したデータを記憶する。秘密分散領域122bは、第2の領域の一例であり、例えば、秘密分散を行うためのフォルダである。つまり、秘密分散領域122bに記憶されるデータは、秘密分散の対象となる。秘密分散領域122bは、例えば、WindowsのCドライブ内の特定のフォルダとしてもよいし、Cドライブと異なるパーテーションとしてもよい。また、秘密分散領域122bは、例えば、Cドライブと異なるパーテーションを、シンボリックリンク等を用いてCドライブ内のフォルダにマウントするようにしてもよい。
分散先記憶部123は、秘密分散領域122bに記憶されるデータの分割片である第1のデータの分散先(所在)を、ユーザが所持する携帯端末10の携帯端末IDと対応付けて記憶する。図5は、分散先記憶部の一例を示す図である。図5に示すように、分散先記憶部123は、「携帯端末ID」、「装着型端末ID」といった項目を有する。分散先記憶部123は、例えば、携帯端末IDごとに1レコードとして記憶する。
「携帯端末ID」は、ユーザが所持する携帯端末10を識別する識別情報である。「装着型端末ID」は、ユーザが装着する装着型端末20を識別する識別情報である。分散先記憶部123は、例えば、秘密分散により第1のデータと第2のデータとに分割されたデータのうち、第1のデータを記憶する装着型端末20の装着型端末IDをユーザが所持する携帯端末10の携帯端末IDと対応付けて記憶する。
RAM領域124は、秘密分散されたデータを結合する際に、結合したデータを記憶する記憶領域である。また、RAM領域124は、データを秘密分散する際に、秘密分散の対象データを一時的に記憶する。RAM領域124は、例えば、メインメモリに確保され、情報処理装置100の電源が落とされると、記憶内容は消去される。
図1の説明に戻って、制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。
制御部130は、受付部131と、第1特定部132と、記憶制御部133と、第2特定部134と、取得部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図1に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。以下の説明では、制御部130でOSが動作し、受付部131と、第1特定部132と、記憶制御部133と、第2特定部134と、取得部135とは、OSにフィルタドライバとして組み込まれるものとして説明する。
ここで、図6を用いてフィルタドライバについて説明する。図6は、フィルタドライバの一例を示す図である。図6に示すように、ブロック図40は、Windowsの各機能を表すものである。Windowsは、OSカーネルやカーネルモードドライバ等が動作するカーネルモード41と、アプリケーションやユーザモードドライバが動作するユーザモード42とを有する。なお、カーネルモード41には、ドライバ用ルーチンやハードウェア抽象化レイヤ(HAL)が含まれ、カーネルやドライバは、これらを介してハードウェアにアクセスすることができる。ユーザモード42で動作するアプリケーションは、WindowsAPI43を用いてカーネルモード41の各ドライバ等にアクセスする。ファイルアクセスでは、WindowsAPI43と、ファイルシステムドライバ44との間で命令やデータ等がやり取りされる。本実施例では、WindowsAPI43と、ファイルシステムドライバ44との間にフィルタドライバ45を設ける。フィルタドライバ45は、アプリケーションからのI/O(Input/Output)要求(I/O Request Packet,IRP)をフックしてファイルシステムドライバ44を制御する。すなわち、フィルタドライバ45は、ファイルシステムドライバ44の上位にロードされ、ファイルシステムドライバ44に対する命令やデータ等をフックする。
図1の説明に戻って、受付部131は、ファイルシステムドライバ44に対するアクセス要求をフックする。受付部131は、フックしたアクセス要求がデータの書き込みの要求であるか否かを判定する。受付部131は、フックしたアクセスがデータの書き込みの要求でないと判定した場合には、データの読み込み要求と、データの読み込み元の識別情報であるプロセス名とを受け付ける。受付部131は、フックしたアクセスがデータの書き込みの要求であると判定した場合には、データの書き込み要求と、データの書き込み元の識別情報であるプロセス名とを受け付ける。受付部131は、受け付けたデータの読み込み要求およびプロセス名、または、書き込み要求およびプロセス名を第1特定部132に出力する。
また、受付部131は、装着型端末20に記憶された第1のデータを取得する場合には、まず、情報処理装置100のロック解除をOSから受け付ける。受付部131は、情報処理装置100のロックが解除されると、携帯端末10から送信される解錠データの監視を開始する。受付部131は、解錠データを受信したか否かを判定する。受付部131は、解錠データを受信していないと判定した場合には、解錠データの監視を継続する。受付部131は、解錠データを受信したと判定した場合には、解錠データと携帯端末10の携帯端末IDとを受け付ける。すなわち、受付部131は、デバイス(携帯端末10)から特定の指示データと該デバイスの識別情報とを受け付ける。受付部131は、受け付けた解錠データと携帯端末IDとを第2特定部134に出力する。
なお、受付部131は、第1通信部110を用いて携帯端末10の存在を、例えば1秒間隔でポーリングし、情報処理装置100の近傍に携帯端末10があるか否かを判定する離席検知も行う。受付部131は、携帯端末10がポーリングに応答しなくなると、ユーザが情報処理装置100の近傍を離れた、つまり離席したと検知し、情報処理装置100をロックするようにOSに指示する。離席検知には、携帯端末10の代わりに、装着型端末20やNFC(Near Field Communication)に対応するIDカードを用いてもよい。
第1特定部132は、受付部131からデータの読み込み要求およびプロセス名、または、書き込み要求およびプロセス名が入力されると、実行権限記憶部121を参照し、データの読み込み元または書き込み元のプロセスの実行権限を特定する。すなわち、第1特定部132は、データの書き込み元の実行権限を、該書き込み元の識別情報に対応付けて記憶する記憶部を参照して、受け付けた書き込み元の識別情報に対応付けられた実行権限を特定する。第1特定部132は、データの読み込み要求または書き込み要求、プロセス名、および、特定した当該プロセスの実行権限を記憶制御部133に出力する。
記憶制御部133には、第1特定部132からデータの読み込み要求または書き込み要求、プロセス名、および、当該プロセスの実行権限が入力される。記憶制御部133は、読み込み要求または書き込み要求の対象が一般領域122aであるか否かを判定する。記憶制御部133は、読み込み要求または書き込み要求の対象が一般領域122aであると判定した場合には、プロセスの実行権限が管理者権限であるか否かを判定する。記憶制御部133は、プロセスの実行権限が管理者権限であると判定した場合には、データの読み込み要求または書き込み要求をそのままファイルシステムドライバ44に出力し、データを一般領域122aから読み込ませ、または、記憶させる。
記憶制御部133は、プロセスの実行権限が管理者権限でないと判定した場合には、データの読み込み要求または書き込み要求を、外部の記憶部、例えばクラウド200の記憶部210にリダイレクトするように修正する。記憶制御部133は、修正したデータの読み込み要求または書き込み要求をファイルシステムドライバ44に出力する。つまり、記憶制御部133は、第2通信部111およびネットワークNを介して、データを外部の記憶部、例えばクラウド200の記憶部210から読み込ませ、または、記憶させる。なお、記憶制御部133は、情報処理装置100がネットワークNに接続していない等、クラウド200の記憶部210にアクセスできない場合には、データの読み込み要求または書き込み要求をRAM領域124にリダイレクトするように修正してもよい。また、一般領域122aに対するシステムファイルのアクセスについては、後述する図7にて説明する。
一方、記憶制御部133は、読み込み要求または書き込み要求の対象が一般領域122aでないと判定した場合には、データの読み込み要求または書き込み要求を、例えばRAM領域124にリダイレクトするように修正する。記憶制御部133は、書き込み要求の場合、修正したデータの書き込み要求をファイルシステムドライバ44に出力し、データを一旦RAM領域124に記憶させる。記憶制御部133は、書き込み要求の場合、RAM領域124に記憶されたデータを暗号化して第1のデータと第2のデータに分割することで、秘密分散を行う。なお、暗号化は、例えばAES(Advanced Encryption Standard)や3DES(Triple Data Encryption Standard)等を用いることができる。また、秘密分散におけるデータの分割は、例えば、装着型端末20に記憶させる第1のデータの大きさを小さくするように分割することができる。例えば、第1のデータと第2のデータとの分割の比率は、1:1000程度にすることができる。
記憶制御部133は、第1通信部110を介して、分割した第1のデータを装着型端末20に送信して記憶させる。また、記憶制御部133は、分割した第2のデータを秘密分散領域122bに記憶する。さらに、記憶制御部133は、第1のデータを送信した装着型端末20の装着型端末IDと、携帯端末10の携帯端末IDとを対応付けて分散先記憶部123に記憶する。
記憶制御部133は、秘密分散領域122bに対する読み込み要求の場合、修正したデータの読み込み要求をファイルシステムドライバ44に出力し、第1通信部110を介して、装着型端末20に第1のデータの取得要求を送信する。なお、ここでは、装着型端末20と情報処理装置100とは、既に対応付けられているものとする。記憶制御部133は、第1通信部110を介して、装着型端末20から取得要求に応じた第1のデータを取得する。記憶制御部133は、第1のデータを取得すると、取得した第1のデータに対応する第2のデータを秘密分散領域122bから取得する。記憶制御部133は、第1のデータと第2のデータとを結合して復号し、分割前のデータをRAM領域124に復元する。記憶制御部133は、復元したデータを読み込み元のプロセスに読み込ませる。
言い換えると、記憶制御部133は、特定した実行権限が特定の実行権限に対応する場合、データを第1の記憶部に記憶させる。また、記憶制御部133は、特定した実行権限が特定の実行権限に対応しない場合、データをコンピュータ(情報処理装置100)の外部に備えられた第2の記憶部(記憶部210)に記憶させる。また、第1の記憶部は、第1の領域と第2の領域とを有する。記憶制御部133は、データの書き込みの要求が第1の領域に対する要求であって、特定した実行権限が特定の実行権限に対応する場合、データを第1の領域に記憶させ、特定した実行権限が特定の実行権限に対応しない場合、データを第2の記憶部に記憶させる。また、記憶制御部133は、データの書き込みの要求が第2の領域に対する要求である場合、データを分割し、分割したデータの一方を第2の領域に記憶させ、分割したデータの他方をコンピュータの外部に備えられたデバイス(装着型端末20)に記憶させる。
ここで、図7を用いて一般領域122aに対する読み書きのアクセス制御、つまり記憶制御について説明する。図7は、記憶制御の一例を示す図である。図7の例では、アプリケーションが一般領域122a、例えばCドライブのデータにアクセスする場合、WindowsAPI43を介したアクセス要求は、フィルタドライバ45でフックされる。フィルタドライバ45は、フックしたアクセス要求の発行元のプロセスが管理者権限である場合には、アクセス要求をそのままファイルシステムドライバ44に出力する。この場合、アプリケーションは、データの読み込みおよび書き込みを一般領域122aに対して行う。
一方、フィルタドライバ45は、フックしたアクセス要求の発行元のプロセスが管理者権限でない場合には、アクセス先のデータの所有者を参照する。フィルタドライバ45は、データの所有者が管理者権限であるデータ、例えばシステムファイル32である場合には、アクセス要求をそのままファイルシステムドライバ44に出力し、一般領域122aに対してデータの読み書きを行わせる。これは、一般ユーザ権限のアプリケーションがシステムファイル32にアクセスしたい場合に、フックしたアクセス要求の発行元のプロセスが管理者権限でないからといって、全てクラウド200の記憶部210にリダイレクトすると、正常に動作しないためである。なお、システムファイル32等は、個人情報を含む業務データではないので、一般領域122aに書き込まれても情報漏洩は発生しない。
これに対し、フィルタドライバ45は、データの所有者が一般ユーザ権限であるデータ、例えば表計算ソフト等のデータ30である場合には、アクセス要求をクラウド200の記憶部210にリダイレクトするように修正する。フィルタドライバ45は、修正したアクセス要求をファイルシステムドライバ44に出力し、クラウド200の記憶部210に対してデータ30aの読み書きを行わせる。このとき、アプリケーションからは、データ30がCドライブにあるように見えるが、実際にはクラウド200の記憶部210にデータ30aとして記憶されている。
図1の説明に戻って、第2特定部134は、受付部131から解錠データと携帯端末IDとが入力されると、分散先記憶部123を参照し、携帯端末IDに対応する装着型端末IDを特定する。すなわち、第2特定部134は、第1のデータが記憶されている装着型端末20を特定する。言い換えると、第2特定部134は、データの所在をデバイスの識別情報に対応付けて記憶する記憶部を参照して、受け付けた識別情報に対応付けられたデータの所在を特定する。第2特定部134は、特定した装着型端末IDを解錠データとともに取得部135に出力する。
取得部135は、第2特定部134から特定した装着型端末IDと解錠データとが入力されると、第1通信部110を介して、特定した装着型端末IDに対応する装着型端末20に第1のデータの取得要求を送信する。すなわち、取得部135は、特定した所在に格納されたデータの取得要求を出力する。取得部135は、第1通信部110を介して、特定した装着型端末20から取得要求に応じた第1のデータを取得する。
取得部135は、第1のデータを取得すると、取得した第1のデータに対応する第2のデータを秘密分散領域122bから取得する。取得部135は、解錠データに基づいて、第1のデータと第2のデータとを結合して復号し、分割前のデータをRAM領域124に復元する。
言い換えると、所在(装着型端末20)に格納されたデータは、分割されたデータの一方である第1のデータであり、分割されたデータの他方である第2のデータは、コンピュータの記憶部(秘密分散領域122b)に記憶されたデータである。取得部135は、取得要求に対応する第1のデータを特定した所在から取得し、取得した第1のデータと、第2のデータと結合することで分割前のデータを復元する。なお、所在(装着型端末20)は、デバイス(携帯端末10)と異なるデバイスであって、コンピュータ(情報処理装置100)のユーザが装着するウェアラブルデバイスである。
次に、実施例の情報処理装置100の動作について説明する。まず、データの書き込み要求に関する記憶制御処理について説明する。図8は、実施例の記憶制御処理の一例を示すフローチャートである。
情報処理装置100の受付部131は、ファイルシステムドライバ44に対するアクセスをフックする。受付部131は、フックしたアクセスがデータの書き込みの要求であると判定した場合には、データの書き込み要求と、データの書き込み元の識別情報であるプロセス名とを受け付ける(ステップS1)。受付部131は、受け付けたデータの書き込み要求と、プロセス名とを第1特定部132に出力する。
第1特定部132は、受付部131からデータの書き込み要求と、プロセス名(識別情報)とが入力されると、実行権限記憶部121を参照し、受け付けた識別情報に基づいて、データの書き込み元のプロセスの実行権限を特定する(ステップS2)。第1特定部132は、データの書き込み要求と、プロセス名と、特定した当該プロセスの実行権限とを記憶制御部133に出力する。
記憶制御部133は、第1特定部132からデータの書き込み要求と、プロセス名と、プロセスの実行権限とが入力されると、書き込み要求の対象が一般領域122aであるか否かを判定する(ステップS3)。記憶制御部133は、書き込み要求の対象が一般領域122aであると判定した場合には(ステップS3:肯定)、プロセスの実行権限が管理者権限であるか否かを判定する(ステップS4)。記憶制御部133は、プロセスの実行権限が管理者権限であると判定した場合には(ステップS4:肯定)、データの書き込み要求をそのままファイルシステムドライバ44に出力し、データを一般領域122aに記憶させる(ステップS5)。
記憶制御部133は、プロセスの実行権限が管理者権限でないと判定した場合には(ステップS4:否定)、データの書き込み要求を、外部の記憶部にリダイレクトするように修正する。記憶制御部133は、修正したデータの書き込み要求をファイルシステムドライバ44に出力し、データを外部の記憶部に記憶させる(ステップS6)。
一方、記憶制御部133は、書き込み要求の対象が一般領域122aでないと判定した場合には(ステップS3:否定)、データの書き込み要求を、例えばRAM領域124にリダイレクトするように修正する。記憶制御部133は、修正したデータの書き込み要求をファイルシステムドライバ44に出力し、データを一旦RAM領域124に記憶させる。記憶制御部133は、RAM領域124に記憶されたデータを暗号化して第1のデータと第2のデータに分割する(ステップS7)。
記憶制御部133は、分割した第1のデータを装着型端末20に送信して記憶させる(ステップS8)。また、記憶制御部133は、分割した第2のデータを秘密分散領域122bに記憶する(ステップS9)。さらに、記憶制御部133は、装着型端末IDと携帯端末IDとを対応付けて分散先記憶部123に記憶する(ステップS10)。これにより、情報処理装置100は、書き込み先のコントロールを容易に行うことができる。
なお、装着型端末20と情報処理装置100とが既に対応付けられているときのデータの読み込み要求の場合は、ステップS1〜S6の処理は書き込み要求の場合と同様である。また、当該読み込み要求の場合は、ステップS7〜S10の処理に代えて、装着型端末20から第1のデータを取得し、秘密分散領域122bに記憶されている第2のデータと結合してRAM領域124にデータを復元する。その後、記憶制御部133は、復元したデータを読み込み元のプロセスに読み込ませる。これにより、情報処理装置100は、読み込み先のコントロールを容易に行うことができる。
続いて、ユーザ認証を行って分割したデータを結合する取得制御処理について説明する。図9は、実施例の取得制御処理の一例を示すフローチャートである。
情報処理装置100の受付部131は、情報処理装置100のロック解除を受け付ける(ステップS21)。受付部131は、情報処理装置100のロックが解除されると、携帯端末10から送信される解錠データの監視を開始する(ステップS22)。受付部131は、解錠データを受信したか否かを判定する(ステップS23)。受付部131は、解錠データを受信していないと判定した場合には(ステップS23:否定)、ステップS23の判定に戻る。受付部131は、解錠データを受信したと判定した場合には(ステップS23:肯定)、解錠データと携帯端末10の携帯端末IDとを受け付ける(ステップS24)。受付部131は、受け付けた解錠データと携帯端末IDとを第2特定部134に出力する。
第2特定部134は、受付部131から解錠データと携帯端末IDとが入力されると、分散先記憶部123を参照し、携帯端末IDに対応する装着型端末IDを特定する(ステップS25)。第2特定部134は、特定した装着型端末IDを解錠データとともに取得部135に出力する。
取得部135は、第2特定部134から特定した装着型端末IDと解錠データとが入力されると、特定した装着型端末IDに対応する装着型端末20に第1のデータの取得要求を送信する(ステップS26)。取得部135は、特定した装着型端末20から取得要求に応じた第1のデータを取得する(ステップS27)。
取得部135は、第1のデータを取得すると、取得した第1のデータに対応する第2のデータを秘密分散領域122bから取得する(ステップS28)。取得部135は、解錠データに基づいて、第1のデータと第2のデータとを結合して復号し、分割前のデータをRAM領域124に復元する(ステップS29)。これにより、情報処理装置100は、情報漏洩リスクを低減できる。すなわち、記憶制御システム1は、情報処理装置100を持ち出したユーザ、携帯端末10および装着型端末20が揃った場合にのみ、秘密分散領域122bに記憶されたデータにアクセスすることができる。また、記憶制御システム1は、装着型端末20をユーザが装着するので、装着型端末20と情報処理装置100とを同時紛失するリスクを低減できる。また、記憶制御システム1は、情報処理装置100を紛失しても情報漏洩を抑止できる。また、記憶制御システム1は、携帯端末10における生体認証による強固なセキュリティと近距離無線通信を利用した利便性とを実現することができる。
なお、上記実施例では、携帯端末10および装着型端末20と、情報処理装置100との通信にBTを用いたが、これに限定されない。例えば、Wi−Fi Direct(登録商標)等の無線LANや他の近距離無線通信規格を用いてもよい。
また、上記実施例では、秘密分散領域122bに記憶されたデータは、ユーザが操作を行わずに秘密分散するようにしたが、これに限定されない。例えば、ファイル操作画面に持ち出し用のボタンを設け、当該ボタンがユーザにより押下されることで、秘密分散領域122bに記憶されたデータに対して秘密分散が行われるようにしてもよい。
このように、情報処理装置100は、持ち運び可能なコンピュータであって記憶制御を実行する。すなわち、情報処理装置100は、データの書き込みの要求と、データの書き込み元の識別情報とを受け付ける。また、情報処理装置100は、データの書き込み元の実行権限を、該書き込み元の識別情報に対応付けて記憶する実行権限記憶部121を参照して、受け付けた書き込み元の識別情報に対応付けられた実行権限を特定する。また、情報処理装置100は、特定した実行権限が特定の実行権限に対応する場合、データを第1の記憶部であるデータ記憶部122に記憶させる。また、情報処理装置100は、特定した実行権限が特定の実行権限に対応しない場合、データをコンピュータの外部に備えられた第2の記憶部である記憶部210に記憶させる。その結果、情報処理装置100は、書き込み先のコントロールを容易に行うことができる。
また、情報処理装置100の第1の記憶部であるデータ記憶部122は、第1の領域である一般領域122aと第2の領域である秘密分散領域122bとを有する。また、情報処理装置100は、データの書き込みの要求が第1の領域である一般領域122aに対する要求であって、特定した実行権限が特定の実行権限に対応する場合、データを第1の領域である一般領域122aに記憶させる。また、情報処理装置100は、特定した実行権限が特定の実行権限に対応しない場合、データを第2の記憶部である記憶部210に記憶させる。また、情報処理装置100は、データの書き込みの要求が第2の領域である秘密分散領域122bに対する要求である場合、データを分割する。また、情報処理装置100は、分割したデータの一方を第2の領域である秘密分散領域122bに記憶させ、分割したデータの他方をコンピュータ(情報処理装置100)の外部に備えられたデバイス(装着型端末20)に記憶させる。その結果、情報処理装置100は、持ち出し用のデータについても書き込み先のコントロールを容易に行うことができる。
また、デバイス(装着型端末20)は、コンピュータ(情報処理装置100)のユーザが装着するウェアラブルデバイスである。その結果、装着型端末20と情報処理装置100とを同時紛失するリスクを低減できる。
また、情報処理装置100は、デバイス(携帯端末10)から特定の指示データと該デバイスの識別情報とを受け付ける。また、情報処理装置100は、データの所在(装着型端末20)をデバイス(携帯端末10)の識別情報に対応付けて記憶する分散先記憶部123を参照して、受け付けた識別情報に対応付けられたデータの所在を特定する。また、情報処理装置100は、特定した所在に格納されたデータの取得要求を出力する。その結果、ユーザは、携帯端末10、装着型端末20および情報処理装置100が揃った場合にのみ、秘密分散領域122bに記憶されたデータにアクセスすることができる。
また、所在(装着型端末20)に格納されたデータは、分割されたデータの一方である第1のデータであり、分割されたデータの他方である第2のデータは、コンピュータの記憶部(秘密分散領域122b)に記憶されたデータである。また、情報処理装置100は、取得要求に対応する第1のデータを特定した所在から取得し、取得した第1のデータと、第2のデータと結合することで分割前のデータを復元する。その結果、ユーザが情報処理装置100を紛失しても情報漏洩を抑止できる。
また、所在(装着型端末20)は、デバイス(携帯端末10)と異なるデバイスであって、コンピュータ(情報処理装置100)のユーザが装着するウェアラブルデバイスである。その結果、装着型端末20と情報処理装置100とを同時紛失するリスクを低減できる。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第2特定部134と取得部135とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図10は、記憶制御プログラムおよび取得制御プログラムを実行するコンピュータの一例を示す図である。
図10に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、データ入力を受け付ける入力装置302と、モニタ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る媒体読取装置304と、各種装置と接続するためのインタフェース装置305と、他の情報処理装置等と有線または無線により接続するための通信装置306とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM307と、ハードディスク装置308とを有する。また、各装置301〜308は、バス309に接続される。
ハードディスク装置308には、図1に示した受付部131、第1特定部132、記憶制御部133、第2特定部134および取得部135の各処理部と同様の機能を有する記憶制御プログラムおよび取得制御プログラムが記憶される。また、ハードディスク装置308には、実行権限記憶部121、データ記憶部122、分散先記憶部123、RAM領域124、および、記憶制御プログラムおよび取得制御プログラムを実現するための各種データが記憶される。入力装置302は、例えば、コンピュータ300のユーザから操作情報等の各種情報の入力を受け付ける。モニタ303は、例えば、コンピュータ300のユーザに対して出力画面等の各種画面を表示する。媒体読取装置304は、例えばNFCに対応したIDカードからユーザの認証情報を読み取る。インタフェース装置305は、例えば印刷装置等が接続される。通信装置306は、例えば、携帯端末10および装着型端末20と接続され、携帯端末10および装着型端末20と各種情報をやりとりする。また、通信装置306は、例えば、ネットワークNと接続され、クラウド200等や他の情報処理装置と各種情報をやりとりする。
CPU301は、ハードディスク装置308に記憶された各プログラムを読み出して、RAM307に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ300を図1に示した受付部131、第1特定部132、記憶制御部133、第2特定部134および取得部135として機能させることができる。
なお、上記の記憶制御プログラムおよび取得制御プログラムは、必ずしもハードディスク装置308に記憶されている必要はない。例えば、コンピュータ300が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ300が読み出して実行するようにしてもよい。コンピュータ300が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの記憶制御プログラムおよび取得制御プログラムを記憶させておき、コンピュータ300がこれらから記憶制御プログラムおよび取得制御プログラムを読み出して実行するようにしてもよい。