(本発明の基礎となった知見)
発明者においては、次の携帯電話が知られている。その携帯電話では、ユーザが、機器(携帯電話)を購入した後に、購入した機器に、機能を新たに追加することがある。その携帯電話では、この追加のために、アプリケーションソフトウェア(以下、「アプリ」という)をダウンロードし、利用することが可能である。
この様なアプリでは、機器内の各種リソースに対するアクセスが制限されることが考えられる。制限されるアクセスは、GPS(Global Positioning System)で取得された位置情報などの位置情報へのアクセス、ダイヤル機能へのアクセス、並びに、電話帳、ブックマークへのアクセスなどである。
しかし、近年、多種多様なアプリを開発可能にするために、アクセス制限を緩和し、これらの、位置情報、ダイヤル機能、及び、電話帳などのデータへのアクセスを可能にした機器が登場してきている。
例えば、グーグル社(Google Inc.)が提供するAndroid(アンドロイド:登録商標)では、アプリ配信サイトであるAndroid Marketからダウンロードしたアプリがある。このアプリが、電話帳やブックマーク、GPS情報、ネットワーク機能などにアクセス可能である。
上記のような状況の中、携帯電話に格納された個人情報(氏名、住所、電話番号、メールアドレス、クレジットカード番号等)や、個人コンテンツ(写真、動画、メール、位置情報)などのデータの漏洩が問題になっている。
Androidでは、インターネットなどの、オープンなネットワークから、不正なアプリがダウンロードされる。
不正なダウンロードアプリは、メールを利用するなどして、その不正なダウンロードアプリ自体を、ユーザにダウンロードさせたり、Android上で動作するアプリの脆弱性を衝いて、ダウンロードさせたりする。
このような、不正なダウンロードアプリによって、機器の記憶装置に格納されている個人情報や、個人コンテンツなどのデータが読み取られる。これにより、読み取られたデータが、ユーザの意図に反して、ネットワークを介して、機器外部に送付されて、データの漏洩が生じることが問題になっている。
記憶装置に格納されているデータを保護する方法としては、次のような方法がある。その方法では、ユーザごとに、異なる識別子(ユーザID)を割り当て、他のユーザが記憶装置に格納したデータへのアクセス制御を行う(例えば非特許文献1の1.5.5節を参照)。
また、Androidでは、Android Marketからダウンロードしたアプリごとに、異なるユーザIDを割り当てる。このことで、ユーザ間のアクセス制御の仕組みを、アプリ間のアクセス制御に利用していた(詳細は非特許文献2を参照)。
このため、Androidでは、アプリAが保存した、写真などのファイルを、アプリBがアクセス出来なくなっている。
更に、Androidでは、Manifestファイルと呼ばれる設定ファイルが利用される。GPSや、ダイヤル機能へのアクセスを行うアプリは、事前に、このManifestファイルに、アクセスする機能を記載する必要がある。つまり、この記載をして、インストール時に、ユーザに許可を得る必要がある。
Androidでは、Manifestファイルに記載されていない機能へのアクセスは禁止される(詳細は非特許文献2を参照)。
しかしながら、前記非特許文献1、または、前記非特許文献2の構成では、全てのデータにアクセスできる特権を持った、特権ユーザIDがある。
このため、Androidなどに脆弱性があり、その脆弱性を利用して、特権ユーザIDを不正に奪取可能な場合、不正なダウンロードアプリが、特権ユーザIDを取得し、他のアプリが保存したファイルにアクセス可能になるという課題を有していた。
そこで、本技術は、上記従来の課題を解決するものであって、たとえ、不正なダウンロードアプリ(図3のアプリ1002wを参照)が、特権ユーザIDを不正に取得したとしても、次のような問題が生じないような情報処理装置(図1等のコンテンツ表示装置1002を参照)を提供することを目的とする。その問題とは、不正なダウンロードアプリが、保護する必要がある、個人情報や、個人コンテンツなどの保護情報(図1のデータ1001dを参照)にアクセス出来てしまうことである。
前記の問題を解決するために、本発明の一態様に係る情報処理装置は、保護情報(情報7aを参照)を処理する情報処理装置(図1等のコンテンツ表示装置1002を参照)であって、前記情報処理装置内で動作するプロセスを管理するプロセス管理部(図6等のプロセス管理部1502を参照)と、前記保護情報へのアクセスを検出するアクセス検出部(保護情報アクセス検出部501参照)とを備え、前記プロセス管理部は、前記アクセス検出部が、前記保護情報へのアクセスを検出した時に、前記保護情報へのアクセスをするプロセス(プロセス1002pを参照)以外のその他の各プロセス(1つ以上のその他のプロセス)の動作を一時的に停止させる実行制御部(プリ実行制御部1512参照)を備える情報処理装置である。
この情報処理装置(図1等のコンテンツ表示装置1002を参照)によれば、不正なアプリ(図3の不正なアプリ1002wを参照)が持つユーザIDが特権ユーザIDであって、他のアプリ(例えば、図3のビューアアプリ1112)のファイルにアクセス可能になったとしても、保護情報(図1のデータ1001dを参照)へのアクセスを防止することができる。
なお、例えば、前記プロセス管理部が管理するプロセスのリストであるプロセスリストを管理するプロセスリスト管理部を備え、前記実行制御部は、さらに、前記アクセス検出部が、前記保護情報へのアクセスを検出した時に、管理される前記プロセスリストを、前記保護情報へのアクセスをする前記プロセスのみが含まれるプロセスリストに変更させることで、前記その他の各プロセスの動作を、一時的に停止させてもよい。
これにより、単に、プロセスリストが変更されるだけで済んで、構成が比較的簡単にできる。
なお、例えば、前記保護情報にアクセスする前記プロセスは、前記その他の各プロセスが停止される間に、前記その他の各プロセスに含まれる通信先のプロセスとの間での通信を行い、前記通信を検出して、検出した時に、前記通信先のプロセスを識別するプロセス識別子を前記実行制御部へ通知する通信検出部を備え、前記実行制御部は、通知される前記プロセス識別子により識別される前記通信先のプロセスを、通知される前にのみ停止させ、通知された後には動作させてもよい。
これにより、保護情報へのアクセスが検出される時に、通信先のプロセスが動作されて、通信先のプロセスとの通信がされ、保護情報へのアクセスが検出される時に可能な処理が、より多様にできる。
なお、例えば、前記情報処理装置は、さらに、プロセスによる、リソースへのアクセスを制限するアクセス制限部を備え、前記通信検出部は、前記通信を検出した時に、前記通信先のプロセスを識別する前記プロセス識別子を、前記アクセス制限部へ通知して、前記通信先のプロセスによる、前記リソースへのアクセスを制限させてもよい。
なお、リソースへのアクセスが制限されるとは、例えば、通信を行うためのリソースへのアクセスが制限されて、通信が不能にされることでもよい。また、リソースへのアクセスが制限されるとは、ファイルが書き込まれる記憶領域などであるリソースへの書き込みが制限されて、ファイルの書き込みが不能にされることでもよい。また、このような、書き込みの制限では、所定のフラグが付いてないファイルの書き込みが不能にされ、付いているファイルの書き込みのみが可能にされてもよい。
これにより、通信先のプロセスが動作されることでの弊害が少なくできる。
なお、例えば、前記アプリ実行制御部は、さらに、前記アクセス検出部が、前記保護情報へのアクセスを検出した時に、管理される前記プロセスリストを、前記その他の各プロセスを何れも含まないプロセスリストに変更させることで、前記その他の各プロセスの動作を一時的に停止させてもよい。
これにより、単に、プロセスリストが変更されるだけで済んで、構成が比較的簡単にできる。
なお、例えば、前記情報処理装置は、さらに、不揮発性記憶装置を備え、前記実行制御部は、さらに、前記アクセス検出部が、前記保護情報へのアクセスを検出した時に、検出される前記アクセスが開始する際に、前記その他の各プロセスの状態を、前記不揮発性記憶装置へ退避し、前記その他の各プロセスの動作を停止させると共に、検出される前記アクセスが終了する際に、前記不揮発性記憶装置へ退避した前記状態を復帰することで、前記その他の各プロセスの動作を、再び起動させてもよい。
これにより、単に、プロセスの状態の退避、復帰がされるだけで済んで、行われる処理が比較的簡単にできる。
なお、例えば、前記プロセス管理部は、1つ以上の第1のプロセスと、バックグラウンドで動作する第2のプロセスとを管理し、前記実行制御部は、前記アクセスが検出された時に、前記その他の各プロセスとして、前記1つ以上の第1のプロセスを停止させ、前記アクセスが検出された時でも、前記アクセスを行う前記プロセスと共に、前記第2のプロセスを動作させてもよい。
なお、第2のプロセスは、例えば、音楽のデータを再生するアプリのプロセスなどである。
これにより、音楽の再生のアプリのプロセスなどは停止されず、停止されるべきないプロセスまで停止されてしまうことが回避できる。
なお、例えば、前記実行制御部は、前記アクセスが検出されない時には、前記情報処理装置に、マルチプロセス(マルチタスク)での動作をさせ、検出される時には、シングルプロセス(シングルタスク)での動作をさせてもよい。
これにより、保護情報へのアクセスが検出されない時には、保護情報が暗号化されるなどして、保護情報が不正に取得され難い。しかも、検出される時にも、シングルプロセスの動作がされて、不正な取得がされ難い。このため、検出されない時だけでなく、検出される時にも、不正な取得がされ難くされて、より確実に、不正な取得がし難くできる。
しかも、上述のように、アクセスが検出されない時には、マルチプロスでの動作がされる。これにより、マルチプロスでの動作が可能であることが維持できる。
これにより、マルチプロスでの動作が可能であることと、保護情報の不正な取得が困難であることとが両立できる。
なお、シングルプロセスでの動作では、1つのプロセスのみが実行される。この1つのプロセスは、検出されるアクセスを行う先述のプロセスである。
なお、この全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたは記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下本発明の実施の形態について、図面を参照しながら説明する。
実施形態の情報処理装置(コンテンツ表示装置1002)は、OSとして、Androidが実装された装置などであり、不正なプログラム(図3の不正なアプリ1002w)からのアクセスから保護されることが必要な情報(図1のデータ1001d)である保護情報を処理する情報処理装置(コンテンツ表示装置1002(図1、図3、図4、図6))であって、情報処理装置内で動作する2以上のプロセスを管理するプロセス管理部1502(図6)と、保護情報(データ1001d)へのアクセスを検出する保護情報アクセス検出部1501と、保護情報アクセス検出部1501が、保護情報へのアクセスを検出した時に(図9のS1001の「保護必要」)、保護情報へのアクセスが許可されていないプロセス(図7の第2のデータ1521bにより特定されるアプリ(アプリA)以外の他のアプリ(不正なアプリ1002wなど)のプロセス)の動作を、一時的に(図9のS1002〜S1009の期間の間)停止させ、その期間の間においては、プロセスを、CPU1201に実行させないアプリ実行制御部1512とを備える情報処理装置である。
なお、アプリ実行制御部1512は、例えば、図6に示されるように、プロセス管理部1502の一部として、コンテンツ表示装置1002に設けられてもよいし、プロセス管理部1502の外部などに設けられてもよい。
これにより、不正なダウンロードアプリ(例えば、図3に示される、不正なアプリ1002w)が、特権ユーザIDを取得し、他のアプリ(例えば、図3のビューアアプリ1112)が保存したファイルにアクセス可能になる恐れがあるにも関わらず、次の通りである。
すなわち、この情報処理装置(図1等のコンテンツ表示装置1002を参照)によれば、不正なアプリ(図3の不正なアプリ1002wを参照)が持つユーザIDが、特権ユーザIDであって、他のアプリ(例えば、図3のビューアアプリ1112)が保存したファイルにアクセス可能になったとしても、上述の期間には、不正なアプリは停止される。これにより、不正なアプリにより、保護情報(図1のデータ1001dを参照)へ不正なアクセスがされてしまうのを防止することができる。
(実施の形態1)
本発明の実施の形態1に係る情報処理装置は、ユーザの要求に応じて、写真データを蓄積するコンテンツ蓄積装置から、写真データを取得し、写真データを表示するコンテンツ表示装置である。コンテンツ蓄積装置は、カメラやPCなどの機器から、写真データを取り込み、蓄積する。
<コンテンツ蓄積・表示システム1000の構成>
図1は、本発明の実施の形態1におけるコンテンツ蓄積・表示システム1000の構成図である。
図1において、コンテンツ蓄積・表示システム1000は、コンテンツ蓄積装置1001(図2)と、コンテンツ表示装置1002(図3、図4、図6)と、カメラ1010と、PC 1011と、アプリ配信サーバ1020(図5)とを含む。なお、コンテンツ表示装置1002は、以降では、情報処理装置とも呼ばれる。
コンテンツ蓄積装置1001は、カメラ1010やPC1011などから、写真データを取り込み、蓄積する。
更に、コンテンツ蓄積装置1001は、取り出し可能な記録媒体(図示しない)を読み取るための読み取り部を持ち、ユーザ以外が撮影した写真データを取り込むことも可能である。
また、コンテンツ蓄積装置1001は、コンテンツ表示装置1002と、ネットワークを介して接続し、このコンテンツ表示装置1002に対して、カメラ1010やPC(Personal Computer)1011などから取り込んだ写真データ(データ1001d)を提供する。
コンテンツ表示装置1002は、コンテンツ蓄積装置1001や、アプリ配信サーバ1020と、ネットワークを介して接続される。
コンテンツ表示装置1002は、ユーザの要求に応じて、コンテンツ蓄積装置1001から、写真データ(データ1001d)を取得し、取得された写真データを表示する。
また、コンテンツ表示装置1002は、ユーザの要求に応じて、アプリ配信サーバ1020から、アプリ(そのアプリのプログラム1020p)をダウンロードし、実行する。
カメラ1010は、コンテンツ蓄積装置1001と、USB(Universal Serial Bus)や、無線LAN(Local Area Network)などを用いて接続される。
カメラ1010は、ユーザが、旅行などのイベントで写真を撮影した写真データを、カメラ1010に内蔵された不揮発メモリや、取り出し可能な記録媒体へ記録する。
そして、カメラ1010は、コンテンツ蓄積装置1001と接続された時に、記録した写真データを、コンテンツ蓄積装置1001へ転送する。
また、カメラ1010から記録媒体を取り出し、その記録媒体を、コンテンツ蓄積装置1001へ装着し、その記録媒体に記録した写真データを、カメラ1010から、コンテンツ蓄積装置1001へ転送することも可能である。
PC1011は、ネットワークに接続され、ユーザが、メールを受信したり、Webブラウジングを行う際に、ユーザにより使用される計算機である。
また、PC 1011は、コンテンツ蓄積装置1001とも、ネットワークで接続される。
メールに添付された写真データや、Webブラウジング時にダウンロードした写真データなどは、ネットワークを介して、PC 1011から、コンテンツ蓄積装置1001へ取り込まれる。
アプリ配信サーバ1020は、コンテンツ表示装置1002と、ネットワークを介して接続される。
このアプリ配信サーバ1020は、開発者(図示しない)がアップロードしたアプリ(図1に示されるプログラム1020p)の管理、及び、コンテンツ表示装置1002への、そのアプリのダウンロード処理を行う。
<コンテンツ蓄積装置1001のソフトウェア構成>
図2は、本発明の実施の形態1におけるコンテンツ蓄積装置1001(図1)のソフトウェア構成図である。
図2において、コンテンツ蓄積装置1001は、OS(オペレーティングシステム:Operating System)1101と、コンテンツ収集アプリ1102と、コンテンツ共有アプリ1103とを備える。
OS 1101は、OS 1101上で動作するアプリ(例えば、コンテンツ収集アプリ1102やコンテンツ共有アプリ1103など)を、メモリ上にロードして実行する。
また、OS 1101が管理するリソースに対して、OS 1101上で動作する上述のアプリから利用要求があった時に、OS 1101は、要求してきたアプリが、そのリソースを利用する権限があるかを確認する。そして、OS 1101は、あると確認された場合には、そのアプリに、そのリソースを提供する。
アプリから、OS 1101への要求としては、ファイルの読み込み要求や、書き込み要求、また、ネットワークで接続された他の機器への接続要求などがある。
コンテンツ収集アプリ1102は、カメラ1010やPC 1011に記録された写真データを収集し、収集された写真データを、コンテンツ蓄積装置1001内に蓄積させるアプリである。
また、コンテンツ収集アプリ1102は、カメラ1010などの機器が、USB(universal serial bus)や有線/無線LANなどで、このコンテンツ蓄積装置1001へと接続されるかを監視する。そして、コンテンツ収集アプリ1102は、接続されたことを検出した場合には、その機器内や、その機器に装着された記録メディアに記録されている写真データを収集する。
また、コンテンツ収集アプリ1102は、ネットワーク接続を監視し、PC 1011などの機器が接続されたことを検出した場合には、その機器内に記録されている写真データを収集する。
コンテンツ収集アプリ1102は、収集した写真データを、コンテンツ蓄積装置1001内の不揮発性記憶装置へ保存し、その不揮発性記憶装置に、蓄積させる。
コンテンツ共有アプリ1103は、コンテンツ蓄積装置1001内に蓄積している写真データを、ネットワークを介して接続したコンテンツ表示装置1002と共有する。
なお、写真データが共有される際には、例えば、その写真データが、コンテンツ表示装置1002により取得される。
コンテンツ蓄積装置1001は、コンテンツ表示装置1002からの要求に応じて、蓄積している写真データや、蓄積している写真データのリストを、コンテンツ表示装置1002へと送信することで、写真データの共有を行う。
<コンテンツ表示装置1002のソフトウェア構成>
図3は、本発明の実施の形態1におけるコンテンツ表示装置1002のソフトウェア構成図である。
図3において、コンテンツ表示装置1002は、OS 1111(図6)と、ビューアアプリ1112と、ダウンロード制御アプリ1113と、DLアプリA(第1のアプリ)1114と、DLアプリB(第2のアプリ)1115とを備える。
なお、ここで、「OS」は「オペレーティングシステム」であり、「DLアプリ」は「ダウンロードアプリ」である。
OS 1111は、OS 1111上で動作するアプリ(ビューアアプリ1112、ダウンロード制御アプリ1113、DLアプリA 1114、DLアプリB 1115など)を、メモリ上にロードして、実行する。
また、OS 1111が管理するリソースに対して、アプリから利用要求があった時に、OS 1111は、要求してきたアプリが、そのリソースを利用する権限があるかを確認する。
そして、OS 1111は、権限があると確認された場合には、そのアプリに、そのリソースを提供する。
なお、アプリからOS 1111への要求としては、ファイルの読み込み要求や、書き込み要求、また、ネットワークで接続された他の機器への接続要求などがある。
ビューアアプリ1112は、コンテンツ表示装置10002のユーザからの要求に応じて、コンテンツ蓄積装置1001から写真データ(図1のデータ1001d)を取得し、その写真データを表示する。
更に、ビューアアプリ1112は、コンテンツ蓄積装置1001から、コンテンツ蓄積装置1001が蓄積している写真データのリストを取得し、写真データの一覧を表示する。
ユーザは、一覧表示された写真データのリストから、表示したい写真を選択する。
また、ユーザが、一覧表示された写真データのリストから、複数の写真データを選択した場合には、その複数の写真データを、一定時間間隔で順番に表示する、スライドショー形式の表示が行われる。
ビューアアプリ1112は、ユーザから、アプリの終了を指示された時や、コンテンツ蓄積装置1001との接続の切断を指示された時に、それまで表示していた写真データ(図1のデータ1001d)を消去する。
ダウンロード制御アプリ1113は、コンテンツ表示装置1002に、ネットワークを介して接続されているアプリ配信サーバ1020(図1)と通信する。そして、ダウンロード制御アプリ1113は、コンテンツ表示装置1002への、アプリ(図1に示されるプログラム1020p)のダウンロード処理と、コンテンツ表示装置1002への、そのアプリのインストール処理とを行う。
DLアプリA 1114と、DLアプリB 1115とのそれぞれのアプリは、アプリ配信サーバ1020からダウンロードされたアプリ(ダウンロードされたプログラム1020p(図1の)によるアプリ1002a)である。
これらのDLアプリA 1114及びDLアプリB 1115のそれぞれは、アドレス管理機能、Webブラウズ機能、及び電子メール機能などの機能を有し、ユーザに対してこれらの機能を提供する。
<コンテンツ表示装置1002のハードウェア構成>
図4は、本発明の実施の形態1におけるコンテンツ表示装置1002(図1、図3)のハードウェア構成図である。
図4において、コンテンツ表示装置1002は、システムLSI1200と、メモリ1210と、不揮発性記憶装置1220とを含む。
システムLSI 1200は、CPU(Central Processing Unit)1201と、ネットワークI/F(Interface)1202と、入出力I/F 1203とを含む。
CPU 1201は、メモリ1210に格納されたOS 1111や、各アプリに含まれる命令コードを実行することにより、コンテンツ表示装置1002全体の動作を制御する。
また、CPU1201は、特権モードと、非特権モードとの2つのモードを持つ。
OS 1111(図3を参照)は、特権モードで動作し、メモリ1210や、ネットワークI/F 1202、入出力I/F 1203などの各種リソースに、自由にアクセスできる。
また、ビューアアプリ1112と、ダウンロード制御アプリ1113と、DLアプリA1114と、DLアプリB 1115とのそれぞれ(図3を参照)は、非特権モードで動作し、OS 1111が設定した範囲内のリソースに対してのみ、アクセス可能である。
メモリ1210は、OS 1111と、ビューアアプリ1112と、ダウンロード制御アプリ1113と、DLアプリA 1114と、DLアプリB 1115とを、それぞれ格納する。
なお、図4においては、図3の各構成要素のプログラムを、メモリ1210にロードした様子を示している。
不揮発性記憶装置1220(図4)は、保護情報アクセス許可リスト1221(後述の図7を参照)を格納する。
また、図示しないが、不揮発性記憶装置1220は、図3の各構成要素のプログラムを、そのプログラムが、メモリ1210へとロードされる前に格納する。すなわち、第1の状態では、不揮発性記憶装置1220にプログラムが格納してある。第2の状態では、不揮発性記憶装置1220からメモリ1210へ、そのプログラムをロードする。第3の状態では、そのプログラムを実行する。これら第1〜第3の状態のうちで、第3の状態だけがあるのではなく、第3の状態よりも前に、第1の状態もある。つまり、プログラムが、不揮発性記憶装置1220に事前に格納されていて、そこからロードされる。
図3の各構成要素は、図4に示す、メモリ1210に格納された各構成要素に対応する。
これらの各構成要素を実現するためのソフトウェアが、CPU1201上で実行されることにより、各機能が実現される。
なお、コンテンツ表示装置1002は、さらに、入出力I/F 1203を介して接続された、図4に図示されていない液晶ディスプレイなどの入出力装置を備えている。これらについては、本発明の本質部分ではないので、詳しい説明を省略する。
また、システムLSI 1200は、さらに、図4に図示されていない周辺回路などを備えているが、これらも、本発明の本質部分ではないので、詳しい説明を省略する。
また、メモリ1210は、さらに、図3や図4に図示されていないアプリや、写真データを処理するための作業領域を格納していてもよい。
また、同様に、不揮発性記憶装置1220も、さらに、図3や図4に図示されていないアプリや、コンテンツを格納していてもよい。
<アプリ配信サーバ1020の構成>
図5は、本発明の実施の形態1に係るアプリ配信サーバ1020(図1)の構成図である。
図5に示すアプリ配信サーバ1020は、アプリ保持部2000と、アプリ受信処理部2001と、アプリ送信処理部2002とを含む。
アプリ保持部2000は、アプリ配信サーバ1020が管理するアプリ(図1のプログラム1020p)を格納する。
アプリ受信処理部2001は、アプリの開発者が、アプリを開発する開発装置(図示しない)と、ネットワークを介して通信し、開発者がアップロードするアプリ(プログラム1020p)を受信する。
また、アプリ受信処理部2001は、受信したアプリを、アプリ保持部2000へ送信し、送信されたアプリの保持及び管理を、アプリ保持部2000に依頼する。
アプリ送信処理部2002は、コンテンツ表示装置1002と通信する。先述の通り、このコンテンツ表示装置1002は、アプリ配信サーバ1020と、ネットワークを介して接続される。そして、アプリ送信処理部2002は、コンテンツ表示装置1002が、アプリ配信サーバ1020に対して要求したアプリを、アプリ保持部2000から取得する。そして、アプリ送信処理部2002は、取得されたアプリを、その要求をしたコンテンツ表示装置1002へ送信する。
また、アプリ送信処理部2002は、アプリ保持部2000が保持しているアプリのリストを作成し、コンテンツ表示装置1002へ送信する。
<OS 1111の構成>
図6は、本発明の実施の形態1における、コンテンツ表示装置1002に実装されたOS 1111(図3、図4を参照)の構成図である。
図6において、OS 1111は、保護情報アクセス検出部1501と、プロセス管理部1502と、プロセス間通信検出部1503と、アクセス制御部1504とを含む。
保護情報アクセス検出部1501は、OS 1111が管理するリソースに対して、アプリからアクセス要求があった時に、そのアプリがアクセス要求したリソースが、保護情報(図1のデータ1001dを参照)であるかをチェックする。
図7は、保護情報アクセス許可リスト1221の構成図である。
なお、例えば、図7に示される保護情報アクセス許可リスト1221は、ある局面などにおいて、不揮発性記憶装置1220により、先述の保護情報アクセス許可リスト1221(図4)として記憶されてもよい。
保護情報アクセス検出部1501は、保護情報であるかどうかのチェックに、図7に示す保護情報アクセス許可リスト1221を使用する。
保護情報アクセス許可リスト1221は、保護情報を識別するための保護情報識別子(第1のデータ1521a)と、その保護情報へのアクセス時に動作可能なアプリ識別子(第2のデータ1521b)とを対応付けて格納している。
保護情報アクセス検出部1501(図6)は、保護情報アクセス許可リスト1221に含まれる保護情報識別子(第1のデータ1521a)により特定されるリソースと一致するリソース(同じリソース)へのアクセス要求があった時に、次の処理をする。その処理とは、その保護情報識別子に対応付けられたアプリ識別子(第2のデータ1521b)を、プロセス管理部1502へ通知する処理である(図6の通知1501aを参照)。
なお、こうして、リソースに対してアプリが対応付けられる。対応付けられるアプリは、そのリソースを特定する第1のデータ1521aに対応付けられた第2のデータ1521bにより特定されるアプリである。このような対応付けが、保護情報アクセス許可リスト1221によりされる。
以下では、このような、リソースに対して、保護情報アクセス許可リスト1221により対応付けられるアプリが、適宜、単に、そのリソースに対応するアプリと、略称される。
また、アプリ(例えば、図3のビューアアプリ1112)による、保護情報(例えば、図1に示される、受信されたデータ1001d)へのアクセスが終了した時に、次の通知がされる。つまり、その時には、保護情報アクセス検出部1501は、保護情報へのアクセス終了を、プロセス管理部1502(図6)へ通知する(図6の通知1501a)。
なお、更に、保護情報アクセス検出部1501は、保護情報へのアクセス開始・終了時に、プロセス間通信検出部1503(図6)へも、アクセス開始・終了を通知する(図6の通知1501c、1501d)。なお、この点については、後で詳しく説明される。
続けて、更に図6を参照する。プロセス管理部1502は、OS 1111上で動作しているアプリを管理する。
ここで、OS 1111上では、複数のアプリが動作可能である。
しかし、コンテンツ表示装置1002は、CPU1201を1つしか持たない。このため、同時に実行可能なアプリは、1つである。
そこで、OS 1111は、切換タイミングで、CPU1201が実行するアプリを切り換えることにより、複数のアプリを動作させる。
なお、ここで、上記「切換タイミング」とは、アプリが、OS 1111へ、処理を依頼したタイミングや、コンテンツ表示装置1002内のハードウェアから、割り込みが入ったタイミングなどである。
プロセス管理部1502は、プロセスリスト管理部1510と、プロセス切替部1511と、アプリ実行制御部1512とを含む。
プロセスリスト管理部1510は、OS 1111上で動作しているプロセスの一覧(後述される、図8A〜図8Cのプロセスリストを参照)を管理する。
ここで、プロセスとは、OS 1111上で動作しているアプリであり、1つのアプリが複数動作する場合(複数のプロセスのそれぞれで、その1つのアプリが動作する場合など)には、それぞれ異なるプロセスとして、管理する。
プロセスリスト管理部1510は、プロセスの管理に、図8Aや図8B、図8Cに示す複数のプロセスリスト(プロセスリスト1522x)を用いる。
つまり、通常時プロセスリスト(第1のプロセスリスト)1522、保護情報アクセス時プロセスリスト(第2のプロセスリスト)1523、および、プロセス間通信時プロセスリスト(第3のプロセスリスト)1524が用いられる。
なお、図8Cのプロセス間通信時プロセスリスト1524の詳細な点については、後で詳しく述べられる。
プロセスリスト1522や1523、1524のそれぞれは、アプリを識別するアプリ識別子と、実際に動作しているアプリ(プロセス)を識別するためのプロセス識別子とを含む。
なお、それぞれの図で示されるように、例えば、1つのプロセス識別子には、1つのアプリ識別子が対応付けられる。
なお、同じアプリが複数起動している場合も考えられる。この場合には、同じアプリ識別子と対応付けられた、複数のプロセス識別子が存在する。つまり、この場合には、例えば、プロセスリストが、アプリ識別子と、そのアプリ識別子に対応付けられた第1のプロセス識別子とが含まれる第1の組合わせを含むと共に、そのアプリ識別子と同じアプリ識別子と、第1のプロセス識別子とは別の第2のプロセス識別子とが含まれる第2の組合わせも含んでもよい。
プロセスリスト管理部1510は、アプリ実行制御部1512から、プロセスリストの切り換え依頼を受けた時に、次の処理をする。その処理では、その時点で管理していたプロセスリスト(例えば、図8Aの第1のプロセスリスト1522)を退避し、新しいプロセスリスト(例えば、図8Bのプロセスリスト1523)へ切り換える。
更に、プロセスリスト管理部1510は、アプリ実行制御部1512から、プロセスリストの更新依頼を受けた時に、その時点で管理していたプロセスリストを、新しいプロセスリストに更新する。
再度、図6を参照する。プロセス切替部1511は、CPU1201が実行するプロセスを、切換タイミングの度に、一方のプロセスから他方のプロセスへと切り換える。
なお、切り換える方法としては、プロセスリストに並んでいる順番に、切り換えを実行する方法や、それぞれのプロセスに優先順位を付け、その優先順位に沿って、実行する方法などがある。
なお、このような、切り換えの処理は、より詳細には、非特許文献1の第7章に詳しく記載されている技術などの、公知の技術が流用された処理などでもよい。
アプリ実行制御部1512は、プロセス管理部1502が、先述の保護情報アクセス検出部1501から、アプリ識別子(図7の第2のデータ1521bを参照)を受け取った時に、次の処理をする。その処理では、OS 1111上で動作しているアプリの動作を制限する。
具体的には、アプリ実行制御部1512は、プロセス識別子を取得する。つまり、保護情報アクセス検出部1501から通知されたアプリ識別子がある。このアプリ識別子に対して、先述された、その時点で管理されているプロセスリスト(図8Aの第1のプロセスリスト1522)により対応付けられた、プロセスのプロセス識別子がある。上述の取得では、このプロセス識別子を、プロセスリスト管理部1510(図8Aなどを参照)から取得する。
アプリ実行制御部1512は、プロセスリスト管理部1510から取得したプロセス識別子を用いて、プロセスリスト1523(図8B)を作成する。なお、後で詳しく説明されるように、作成される、図8Bのプロセスリスト1523は、アプリ識別子と、そのアプリ識別子に対応付けられたプロセス識別子との組合わせ(図8B、図8Aなどの表の各列を参照)として、次の組み合わせを含まない。その組み合わせとは、上述された、通知されたアプリ識別子を、プロセス識別子に対応付ける組合わせである。
アプリ実行制御部1512は、プロセスリスト管理部1510に対して、次のことを依頼する。依頼されることとは、プロセスリスト1522(図8A)から、作成されたプロセスリスト1523(図8B)へと、管理しているプロセスリストの入れ替え(変更)をすることである。
また、プロセス管理部1502が、保護情報アクセス検出部1501から、保護情報へのアクセス終了の通知を受けた時に、アプリ実行制御部1512は、プロセスリスト管理部1510へ、管理しているプロセスリストを、図8Aのプロセスリスト1522へ復帰するように依頼する。
なお、後で詳しく説明されるように、プロセス間通信検出部1503による、次のような処理が行われてもよい。
プロセス間通信検出部1503は、OS 1111上で動作している第1のアプリが、保護情報へアクセスしている間に、その第1のアプリが、次の依頼をしたことを検出する。その依頼とは、他の第2のアプリと連携するために、OS 1111へされる、それら第1、第2のアプリの間におけるプロセス間通信の依頼である。プロセス間通信検出部1503は、この依頼が行われた場合に、それを検出する。
そして、プロセス間通信検出部1503は、この検出がされた場合に、プロセス管理部1502と、アクセス制御部1504とへ、それぞれ、プロセス間通信の依頼を検出したことを通知する。プロセス間通信検出部1503は、これらの、プロセス管理部1502と、アクセス制御部1504とへの通知の際、次のような通知をする。つまり、この際には、通信相手である、上述された第2のアプリのアプリ識別子を、これらのプロセス管理部1502等へと通知する。
ここで、プロセス間通信検出部1503は、次のような処理をする。その処理とは、保護情報アクセス検出部1501から、保護情報へのアクセス開始の通知を受けた時から、保護情報へのアクセス終了の通知を受けるまでの間を、「保護情報へアクセスしている間」として扱う処理である。そして、プロセス間通信検出部1503は、このような「保護情報へアクセスしている間」において、プロセス間通信の検出を行う。また、プロセス間通信検出部1503は、保護情報アクセス検出部1501から、保護情報へのアクセス終了の通知を受けた時に、アクセス制御部1504へ、保護情報へのアクセス終了の通知を行う。
アクセス制御部1504は、プロセス間通信検出部1503から通知されたアプリ識別子を持つプロセスが、ネットワークへのアクセスや、ファイルへの書込処理を行う時に、それを検出する。アクセス制御部1504は、この検出がされた時に、コンテンツ表示装置1002の液晶ディスプレイへ、表示を行い、ネットワークへのアクセスや、ファイルへの書込処理を行ってもよいかを、ユーザへ問い合わせる。そして、アクセス制御部1504は、ユーザが許可した場合には、処理を継続し、ユーザが許可しなかった場合には、エラーが発生したことを示す情報を、そのプロセスへ返す。
<保護情報アクセス処理>
OS 1111は、保護情報アクセス検出部1501(図6)を用いて、保護情報として定められた情報へのアクセスを検出する。
更に、OS 1111は、検出された、保護情報へのアクセスがされている間、その保護情報へのアクセスが許可されているアプリのみを動作させる。つまり、OS 1111は、そのアプリのみが動作するように、プロセス管理部1502が管理するプロセスリストを切り換える。
なお、上述された、許可がされているアプリは、例えば、次のようなアプリである。つまり、その保護情報を特定(識別)する保護情報識別子(図7の第1のデータ1521a)がある。この保護情報識別子に対して、保護情報アクセス許可リスト1221(図7)が対応付けるアプリ識別子(第2のデータ1521b)がある。許可がされているアプリは、このアプリ識別子が特定(識別)するアプリである。
保護情報へのアクセスが終了すると、プロセスリストを、元のリスト(例えば、図8Aの第1のプロセスリスト1522)に戻し、保護情報へのアクセスが開始される以前の状態に復帰する。
これにより、保護情報へアクセスしている間には、許可されているアプリ以外のアプリである、許可がされていないアプリの動作を、一時的に停止する。これにより、その間には、許可されているアプリのみが動作する。
このため、その間においては、許可されていないアプリが、保護情報へ、アクセス出来なくなる。
また、許可されていないアプリは、状態を保持したまま、一時停止する。
このため、保護情報へのアクセスが終了した後には、保持された状態が用いられて、そのアクセスの前後で、許可されていないアプリを、連続して使用することが可能となる。
ここで、例えば、先述の図3(及び図4)で示されたビューアアプリ1112のアプリ識別子は、「アプリA」とする(図8A、図8B、図7の第2行第2列を参照)。そして、コンテンツ蓄積装置1001の写真データへアクセスする際の接続先を示す情報は、「http://192.168.1.1/」とする(図7の第2行第2列を参照)。
図9は、本発明の実施の形態1における保護情報アクセス処理のフローチャートである。
以下、ビューアアプリ1112が、OS 1111へ、保護情報へのアクセスを依頼した時の処理について、この図9のフローチャートを用いて説明する。
ここで、「保護情報」は、コンテンツ蓄積装置1001が蓄積している写真データ(図1のデータ1001d)であるとする。そして、コンテンツ表示装置1002が、コンテンツ蓄積装置1001と、この写真データを共有するために、コンテンツ蓄積装置1001へ接続する処理を、「保護情報へのアクセス」の処理と呼ぶこととする。
なお、図9の左側、中央、右側のうち、左側では、コンテンツ蓄積装置1001において、コンテンツ共有アプリ1103により行われる処理が示される。中央及び右側では、コンテンツ表示装置1002により行われる処理が示される。中央では、コンテンツ表示装置1002のOS1111による処理が示され、右側では、ビューアアプリ1112による処理が示される。なお、OS111により行われる、中央の処理は、OS1111が有する、図6の保護情報アクセス検出部1501等のうちの1つにより行われる。
まず、コンテンツ表示装置1002のビューアアプリ1112(図3)は、OS 1111(図3)へ、コンテンツ蓄積装置1001と、写真データを共有するための共有接続依頼(S1000)を行う。
OS 1111の保護情報アクセス検出部1501(図6)は、上述のステップS1000での、上述の共有接続依頼が、保護情報(図1のデータ1001d)へのアクセスをするための依頼であるかを判定する(S1001)。
具体的には、共有接続依頼における、接続先を示す情報(上述)と、図7の保護情報アクセス許可リスト1221の保護情報識別子(第1のデータ1521a)とを比較する。
そして、図7の保護情報アクセス許可リスト1221内にある1以上の保護情報識別子(図7の各行を参照)のうちに、上述された、接続先を示す情報に一致する保護情報識別子があるかをチェックする。
保護情報アクセス検出部1501は、ステップS1001における上述のチェックで、一致する保護情報識別子があると判定されて、「保護必要」と判定した場合には(S1001の「保護必要」)、次の処理をする。その処理では、プロセス管理部1502のアプリ実行制御部1512へ、アプリ識別子を通知する。通知されるアプリ識別子は、例えば、一致するとの判定がされた保護情報識別子(第1列)に対して、保護情報アクセス許可リスト1221(図7)が対応付けるアプリ識別子(第2列)である。なお、この通知の処理は、例えば、下記で説明されるS1002の処理の一部でもよい。
アプリ実行制御部1512は、次の処理をする。つまり、上述の通知により、保護情報アクセス検出部1501から通知されたアプリ識別子に対応付けられたプロセスのプロセス識別子がある。その処理では、このプロセス識別子を、プロセスリスト管理部1510(図8A〜図8Bなどを参照)から取得し、取得されたそのプロセス識別子のみで構成されるプロセスリスト1523(図8B)を作成する。
アプリ実行制御部1512は、プロセスリスト管理部1510へ、作成されたプロセスリスト1523(図8B)への、管理されるプロセスリストの切換を依頼する。
プロセスリスト管理部1510は、アプリ実行制御部1512から、プロセスリストの切換を依頼された時に、プロセスリストの切換を行う。その切換では、その時に設定されていたプロセスリスト1522(図8A)を退避して、アプリ実行制御部1512から依頼されたプロセスリスト1523(図8B)へ、管理される(利用される)プロセスリストを切り換える(S1002)。
保護情報アクセス検出部1501が、ステップS1001で、「保護不要」と判定した場合(S1001の「保護不要」)、及び、ステップS1002の処理後において、OS 1111は、それぞれ、次の処理をする。その処理では、コンテンツ蓄積装置1001のコンテンツ共有アプリ1103(図2)へ、共有接続依頼を行う(S1003)。
コンテンツ蓄積装置1001のコンテンツ共有アプリ1103は、この共有接続依頼で依頼された共有接続に必要な処理を行う(S1004)。
なお、この処理は、具体的には、例えば、共有接続依頼(S1003)がされた時に、コンテンツ表示装置1002から、パスワードなどの認証情報を受信して、その認証情報が、予め登録されていた認証情報と同じであるかをチェックするなどの処理である。
コンテンツ共有アプリ1103は、このような共有接続処理の終了後、その共有接続処理の結果を、コンテンツ表示装置1002へ通知する(S1005)。なお、通知される結果の少なくとも一部は、例えば、共有接続処理が成功したか否かなどを示してもよい。
コンテンツ表示装置1002のOS 1111は、コンテンツ共有アプリ1103から取得した、通知された結果(共有接続結果)を、ビューアアプリ1112へ通知する(S1006)。
その後、ビューアアプリ1112は、OS 1111を介して、コンテンツ共有アプリ1103と通信を行い、その通信で、写真データ(図1のデータ1001d)を受信して、表示するなどの処理を、ユーザの要求に応じて行う(S1007)。
ビューアアプリ1112は、ユーザから、共有終了の要求があった場合には、ステップS1007で、コンテンツ共有アプリ1103と共有した写真データ(図1のデータ1001d)を削除する。そして、この場合には、共有切断依頼を、OS 1111へ行う(S1008)。
OS 1111の保護情報アクセス検出部1501は、先述された、ステップS1000の共有接続依頼があった時に、プロセスリストを切り換えたかを確認する(S1009)。
保護情報アクセス検出部1501は、ステップS1009で、「切り換えた」と判定した場合には(S1009の「切り替えた」)、プロセス管理部1502のアプリ実行制御部1512へ、保護情報へのアクセスの終了を通知する(図6の通知1501b)。
アプリ実行制御部1512は、この通知がされると、プロセスリスト管理部1510へ、プロセスリスト1522(図8A)への復帰を依頼する。
プロセスリスト管理部1510は、アプリ実行制御部1512から、プロセスリストの復帰を依頼された時に、ステップS1002で退避しておいたプロセスリスト1522(図8A)へ、プロセスリストを切り換える(S1010)。
保護情報アクセス検出部1501が、ステップS1009で、「否」と判定した場合(S1009の「否」)、及び、ステップS1010の処理後においては、それぞれ、OS 1111は、コンテンツ蓄積装置1001のコンテンツ共有アプリ1103へ、共有切断依頼を行う(S1011)。
コンテンツ共有アプリ1103は、共有切断依頼を受けた時に、写真データの共有を終了する。
本発明の実施の形態1では、ビューアアプリ1112(図3)が、コンテンツ蓄積装置1001(図1)へ、写真データの共有依頼を行う。このため、接続先を示す情報は、「http://192.168.1.1/」である。
また、保護情報アクセス許可リスト1221は、先述された図7の通りである。このため、保護情報アクセス許可リスト1221内に、接続先を示す情報と一致する保護情報識別子が含まれる。
そのため、保護情報アクセス検出部1501は、ステップS1001で、「保護必要」と判定する。そして、保護情報アクセス検出部1501は、次の通知をする。つまり、アプリ識別子として、上述された、一致する保護情報識別子に対して、保護情報アクセス許可リスト1221が対応付けるアプリ識別子がある。その通知では、このアプリ識別子により特定(識別)される「アプリA」(先述の説明を参照)を、アプリ実行制御部1512へ通知する。なお、上述の説明は、先述の説明に書かれた通り、「一致する保護情報識別子」は、保護情報アクセス許可リスト1221内に含まれるケースが想定されている。
アプリ実行制御部1512は、通知されたアプリ(「アプリA」)に対応付けられたプロセスのみからなるプロセスリスト1523(図8B)を生成する。そして、プロセスリスト管理部1510は、プロセスリストを、生成された、通知されたアプリ(アプリA)に対応付けられたプロセスのみからなるプロセスリスト1523(図8B)へと切り換える。
なお、ステップS1001では、共有接続依頼時に、保護情報へのアクセスかを判定するとしたが、これに限定されるものではない。すなわち、コンテンツ蓄積装置1001内のデータであっても、保護の必要のあるデータ(図1のデータ1001d)ではなく、保護の必要のないその他のデータへアクセスする場合もある。
このため、共有接続依頼時に、判定を行うのではなく(図9のS1001などを参照)、ステップS1007のような、実際にデータにアクセスを行う処理時に、保護情報へのアクセスかを判定してもよい。
これにより、共有接続依頼と、保護情報へのアクセスとのタイミングが異なる場合でも、保護情報への不正なアクセスを防止出来る。
なお、ステップS1008では、ビューアアプリ1112が、コンテンツ共有アプリ1103と共有した写真データを削除するとしたが、これに限定されない。つまり、例えば、削除するのではなく、暗号化して、不揮発性記憶装置1220へ保存してもよい。
こうして、例えば、S1008では、写真データが削除されたり、暗号化されて、利用することが不可能にされる。
<アプリ連携処理>
なお、先述のように、例えば、プロセス間通信検出部1503も、設けられてもよい。そして、例えば、以下のような処理が行われてもよい。
OS 1111は、プロセス間通信検出部1503を用いて、保護情報へアクセスしている一方のアプリが、他方のアプリと連携するために、それら一方および他方のアプリの間でのプロセス間通信を要求したことを検出する。
OS 1111は、この検出により、プロセス間通信が行われることを検出すると、通信先のアプリである、上述の他方のアプリが、動作をできるように、プロセスリストを、更新後のプロセスリスト(例えば、図8Cのプロセスリスト1524)へと更新する。
この時、OS 1111は、通信先の、他方のアプリに対して、アクセス制御部1504を用いて、ネットワークへのアクセスや、ファイルへの書込処理の制御をする。
そして、OS 1111は、プロセス間通信が終了すると、通信先の、他方のアプリが動作しないように、プロセスリストを再び、更新する。
これにより、許可されていないアプリ(他方のアプリ)であっても、保護情報へアクセスしているアプリ(一方のアプリ)と連携することが可能となる。
また、許可されていないアプリを動作させる時に、アクセス制御を行うことで、不正なアプリが動作したとしても、写真データの漏洩を防止出来る。
図10は、本発明の実施の形態1におけるアプリ連携処理のフローチャートである。
以下、ビューアアプリ1112が、OS 1111へ、アプリ連携処理を依頼した時の処理について、図10のフローチャートを用いて説明する。
ここで、「保護情報」は、コンテンツ蓄積装置1001が蓄積している写真データ(図1のデータ1001d)であるとする。また、「通知先のアプリ」は、DLアプリA 1114(図3)とする。
まず、ビューアアプリ1112は、OS 1111へ、DLアプリA 1114とのアプリ連携依頼を行う(S1100)。
OS 1111のプロセス間通信検出部1503は、OS 1111上で動作しているアプリが、保護情報へアクセス中か判定する(S1101)。
具体的には、プロセス間通信検出部1503は、保護情報アクセス検出部1501から、保護情報へのアクセス開始の通知を受けた後であり、かつ、保護情報への、アクセス終了の通知をまだ受けていない間であれば、「アクセス中」と判定する。そして、保護情報への、アクセス開始の通知を受けていない場合や、保護情報へのアクセス終了の通知を受けた後であれば、「否」と判定する。
プロセス間通信検出部1503は、ステップS1100で、「アクセス中」と判定した場合には、プロセス管理部1502と、アクセス制御部1504とのそれぞれへ、アプリ識別子を通知する。なお、通知されるアプリ識別子により特定されるアプリは、そのアプリとの間でのプロセス間通信が要求された、先述の他方のアプリである。
アクセス制御部1504は、プロセス間通信検出部1503から受信したアプリ識別子を記憶し、アクセス制御を行うように設定する(S1102)。
プロセス間通信検出部1503が、ステップS1101で、「否」と判定した場合、又は、ステップS1102の処理後において、OS 1111のプロセス管理部1502は、通知先のアプリであるDLアプリA 1114(他方のアプリ)を起動し、アプリ連携依頼を通知する(S1103)。
プロセス管理部1502は、DLアプリA 1114を起動した時に、プロセスリスト管理部1510へ、起動したDLアプリA 1114のプロセス識別子を通知し、プロセスリストへの、そのDLアプリA 1114のデータの追加を依頼する。
DLアプリA 1114と、ビューアアプリ1112とは、互いに通信をしながら、連携処理を行う(S1104)。
この連携処理の中で、DLアプリA 1114が、OS 1111へ、ネットワークへのアクセス依頼や、ファイルへの書込処理を依頼した時に、アクセス制御部1504は、次の処理をする。その処理とは、DLアプリA 1114のプロセス識別子に対応付けられたアプリ識別子から、アクセス制御対象であることを判断し、アクセス制御を行う。
DLアプリA 1114は、連携処理が終了すると、アプリ連携終了通知を、OS 1111へ通知する(S1105)。
OS 1111のプロセス間通信検出部1503は、OS 1111上で動作しているアプリが、保護情報へアクセス中か判定する(S1106)。
なお、判定方法としては、例えば、上述のステップS1101と同じ方法を用いる。
プロセス間通信検出部1503は、ステップS1106で、「アクセス中」と判定した場合には、プロセス管理部1502と、アクセス制御部1504とのそれぞれへ、アプリ連携終了を通知する。
アクセス制御部1504は、プロセス間通信検出部1503から受信したアプリ識別子を、アクセス制御を行わないように設定する(S1107)。
プロセス間通信検出部1503が、ステップS1106で、「否」と判定した場合、又は、ステップS1107の処理後においては、OS 1111のプロセス管理部1502は、通知先であったアプリDLアプリA 1114を終了し、ビューアアプリ1112へ、アプリ連携終了を通知する(S1108)。
以上説明したように、本発明の実施の形態1によれば、プロセス切替部1511が、プロセスを切り換えるタイミングになった時でも、プロセスリストには、ビューアアプリ1112のプロセスのプロセス識別子しかない。このため、ビューアアプリ1112以外のアプリの動作が一時的に停止することになる。この時、ビューアアプリ1112以外のアプリが新たに起動しようとしても、起動しようとした瞬間に、動作が停止させられるため、起動することが出来ない。そのため、コンテンツ表示装置1002の内部で、不正なアプリが動作していたとしても、又は、起動しようとしても、ビューアアプリ1112が、写真データを表示中には、不正なアプリの動作が一時的に停止する。このため、不正なアプリが、ビューアアプリ1112が表示している写真データに、不正にアクセスすることが出来ない。
更に、ビューアアプリ1112(一方のアプリ)が、コンテンツ蓄積装置1001と通信し、コンテンツ蓄積装置1001に蓄積されている写真データにアクセスしている時であっても、ビューアアプリ1112と連携して動作する他のアプリ(他方のアプリ)を起動することが出来る。
例えば、DLアプリA 1114(他方のアプリ)として、写真データを加工するアプリがあった時が考えられる。この時に、ビューアアプリ1112(一方のアプリ)で表示している写真データを、ユーザが、DLアプリA 1114(他方のアプリ)を使用して、加工したいと思った場合に、DLアプリA 1114を起動することが出来る。
また、ビューアアプリ1112から、連携処理を依頼されたアプリ(他方のアプリ)に対して、アクセス制御を行っている。
このため、不正なアプリに対して、連携処理を依頼した場合においても、ビューアアプリ1112が表示している写真データを、ネットワークを使用して、コンテンツ表示装置1002の外部へ送信するなどの、不正な行為を行う事を防止出来る。
なお、こうして、先述の通り、不正なダウンロードアプリ(例えば、図3のアプリ1002w)が、特権ユーザIDを取得し、他のアプリ(例えば、図3のビューアアプリ1112)が保存したファイルにアクセス可能になる恐れがあるにも関わらず、次の通りである。すなわち、不正なダウンロードアプリが、特権ユーザIDを不正に取得して、他のアプリにより保存されたファイルにアクセス可能になったとしても、保護する必要がある保護情報(個人情報や、個人コンテンツなど、例えば図1のデータ1001d)に、不正なアクセスがされないようにできる。
すなわち、一例としては、次の動作が行われてもよい。
この情報処理装置は、例えば、写真などのコンテンツを表示するコンテンツ表示装置(図1のコンテンツ表示装置1002)などである。
なお、このコンテンツ表示装置は、例えば、先述された、AndroidのOSがインストールされた装置等である。
そして、コンテンツ表示装置において、予め定められた期間(図9のS1007の期間、または、S1003〜S1011の期間)が開始される時刻と、終了される時刻とがそれぞれ特定されて、その期間が特定されてもよい。なお、この点について、詳しくは、先述された保護情報アクセス検出部1501、図9のS1000、S1011などの説明も参照されたい。
特定される期間は、予め定められた情報(保護情報、例えば図1のデータ1001d)が、第1のアプリ(例えば、図3のビューアアプリ1112)により保存される(ことがある)期間である。
保護情報は、先述の通り、例えば、携帯電話のユーザの氏名等の個人情報などであり、その情報が、第3者により知られたときに、その個人情報の悪用などの、(比較的大きな)弊害が生じる情報である(図1のデータ1001dを参照)。
そして、保護情報を保存する第1のアプリ(ビューアアプリ1112)を、複数のアプリのうちから特定するデータが記憶されてもよい。なお、このデータは、例えば、図7の保護情報アクセス許可リスト1221でもよいし、この保護情報アクセス許可リスト1221に含まれるアプリ識別子である第1のデータ1521bでもよい(図4の不揮発性記憶装置1220の説明などを参照)。
そして、特定された期間においては、特定される第1のアプリ以外の他の第2のアプリ(例えば、先述のダウンロードアプリである、図3のアプリ1002a)を実行させず、その他の期間にのみ実行させる制御がされてもよい(図9のS1002、S1010)。
ここで、他の第2のアプリは、図1のアプリ配信サーバ1020などからダウンロードされて、このコンテンツ表示装置により実行されるアプリなどである。
そして、このような他の第2のアプリは、例えば、インターネットなどの、オープンなネットワークを介して、図1のアプリ配信サーバ1020などからダウンロード(受信)されたアプリ1002a(図3)などである。
すなわち、他の第2のアプリ(アプリ1002a)は、例えば、ある局面などにおいては、第3者が不正に、このコンテンツ表示装置にダウンロードさせて、このコンテンツ表示装置に実行させる、不正なアプリ1002w(図3)である。
そして、先述のように、このような不正なアプリ1002wは、特権ユーザIDを取得して、上述された第1のアプリなどの、その他のアプリにより保存されたファイルに、アクセス可能になってしまうことが考えられるアプリである。
これにより、他の第2のアプリ(アプリ1002a)が、不正なアプリ1002wであり、かつ、この不正なアプリ1002wが、特権ユーザIDを取得してしまうことも考えられるにも関わらず、次の通りである。すなわち、特定された、保護情報が保存される期間(S1007の期間)には、第2のアプリ(アプリ1002a)が実行されず、不正なアプリ1002wが実行されない。このため、不正なアプリ1002wにより、保存される保護情報(データ1001d)へのアクセスがされるのが防がれる。これにより、保護情報への、不正なアクセスがされてしまうことが防がれ、行われるアクセスが、より確実に、適切なアクセスにできる。
なお、これにより、例えば、不正なアプリ1002wを実行させる第3者により、保護情報が取得されて、知られてしまうことが回避され、(大きな)弊害が生じてしまうことが回避できる。
なお、上述のデータ(保護情報アクセス許可リスト1221)は、保護情報を保存する第1のアプリ(ビューアアプリ1112)を特定する第2のデータ1521b(図7のアプリ識別子)と、保存される保護情報を、複数の情報のうちから特定する第1のデータ1521a(保護情報識別子)とを含んでもよい。
そして、保存される情報(データ1001d)が、含まれる第1のデータ1521a(保護情報識別子)により特定(識別)される情報(保護情報)であるか否かが判定されてもよい(図9のS1001)。
そして、第2のデータにより特定される情報と判定される場合にのみ(図9のS1001の「保護必要」、S1009の「切り替えた」)、上述された、第2のアプリ(不正なアプリ1002wなど)を実行させない制御(S1002、S1010など)がされてもよい。
つまり、第2のデータにより特定される情報(保護情報)でないと判定される場合には(S1001の「保護不要」、S1009の「否」)、この制御がされず、第2のアプリ(例えば、図3のDLアプリA 1114など)も実行されてもよい。
なお、プロセスリスト1522x(図8A〜図8C)が利用されてもよい。
そして、利用されるプロセスリスト1522xにより、1以上のアプリ(図8A〜図8Cのそれぞれにおける表の第2行を参照)が特定されてもよい。
そして、利用されるプロセスリスト1522xにより特定される1以上のアプリに含まれるアプリのみが実行され、含まれないアプリが実行されなくてもよい。
そして、先述された、第2のアプリを実行させない制御では、利用されるプロセスリスト1522xを、第1のプロセスリスト1522(図8A)から、第2のプロセスリスト1523(図8B)へと変更させてもよい。
ここで、例えば、第1のプロセスリスト1522(図8A)は、保存情報を保存する第1のアプリ(ビューアアプリ1112、図8AのアプリA)以外の他の第2のアプリ(図8AのアプリB〜E)も特定してもよい。
そして、他方の第2のプロセスリスト1523(図8B)は、他の第2のアプリ(アプリB〜E)を特定せず、第1のアプリ(ビューアアプリ1112、アプリA)のみを特定してもよい。
これにより、利用されるプロセスリストが、第2のプロセスリスト1523である期間においては、他の第2のアプリが実行されないことにより、上述された、第2のアプリを実行させない制御がされてもよい(図9のS1002、S1010の説明などを参照)。
なお、保存される保護情報は、例えば、コンテンツ表示装置の外部にあるコンテンツ蓄積装置(コンテンツ蓄積装置1001)により蓄積されてもよい。そして、蓄積された保護情報が、第1のアプリ(ビューアアプリ1112)により取得されて、このコンテンツ表示装置に保存されてもよい。
なお、例えば、このような動作が行われるのに際して、その動作の細部が、後述される、変形例での通りなどでもよい。
(実施の形態2)
本発明の実施の形態1では、アプリ実行制御部1512が、プロセスリスト管理部1510に、プロセスリストの切替を依頼することで、保護情報と関係のないアプリの動作を停止した。
実施の形態2では、アプリ実行制御部1512が、保護情報と関係のないアプリを終了させる処理を行う構成について説明する。
以下、本発明の実施の形態2に係るOS 1111の構成と、保護情報アクセス処理とを説明する。
なお、以下では、実施形態1と同様の点については、詳しい説明が適宜、省略される。
<OS 1111の構成>
図11は、本発明の実施の形態2におけるOS 1111の構成図である。
図11において、図6と同じ構成要素については、適宜、図6での符号と同じ符号を用い、詳しい説明を省略する。
図11において、OS 1111は、保護情報アクセス検出部1501と、プロセス管理部1502とを含む。
保護情報アクセス検出部1501の動作等は、本発明の実施の形態1での動作等と同じである。
プロセス管理部1502は、アプリ実行制御部1512と、プロセス状態管理部1513とを含む。
アプリ実行制御部1512は、プロセス管理部1502が、保護情報アクセス検出部1501から、アプリ識別子を受け取った時に、OS 1111上で動作しているアプリの動作を制限する。
具体的には、アプリ実行制御部1512は、保護情報アクセス検出部1501から通知されたアプリ識別子に対応付けられたプロセスの状態(状態を特定する情報1513s)の退避を、プロセス状態管理部1513へ依頼する。
この時、保護情報アクセス検出部1501から通知されたアプリ識別子に対応付けられたプロセスのプロセス識別子を通知する。
プロセス状態管理部1513は、アプリ実行制御部1512から通知されたプロセス識別子を持つプロセスの状態を、一時的に退避し、プロセスを終了させる。
また、プロセス管理部1502が、保護情報アクセス検出部1501から、保護情報へのアクセス終了の通知を受けた時に、プロセス状態管理部1513は、上記のようにして退避した、プロセスの状態を復帰し、終了させたプロセスを、再び起動する。
<保護情報アクセス処理>
本発明の実施の形態2に係る保護情報アクセス処理は、本発明の実施の形態1に係る保護情報アクセス処理(図9)と、多くの点では、同じ処理となる。よって、図9を参照して、処理の異なる部分を中心に説明する。
図9を参照して、以下説明する。つまり、本発明の実施の形態2に係るOS 1111のプロセス管理部1502は、ビューアアプリ1112からの共有接続依頼における接続先が、保護情報アクセス許可リスト1221内の保護情報識別子と一致するか判定する(S1001)。
ステップS1001の判定が、「保護必要」の判定であった場合、アプリ実行制御部1512は、プロセス状態管理部1513へ、プロセスの状態の退避と、プロセスの終了処理とを依頼する。
また、OS 1111が、ビューアアプリ1112から、共有切断依頼を受けた時に、図9におけるステップS1009では、ステップS1002で、プロセスの状態を退避したかを判定し、退避していた場合に、ステップS1010で、プロセスの状態を復帰し、プロセスを再び起動する。
以上説明したように、本発明の実施の形態2によれば、通常のプロセス管理機能に、プロセス状態を退避・復帰する機能を追加するだけでよく、既存のプロセス管理機能への変更の影響を少なくできる。
(実施の形態3)
本発明の実施の形態1〜2では、OS 1111が、保護情報アクセス検出部1501と、プロセス管理部1502と、プロセス間通信検出部1503と、アクセス制御部1504とを含むことで、保護情報と関係のないアプリの動作を停止した。
実施の形態3では、仮想化技術を利用する。そして、仮想化ソフトウェア上で、複数の仮想マシンを実行する環境が利用される。つまり、この環境で、実施の形態1〜2におけるOS 1111の代わりに、仮想化ソフトウェアを用い、ビューアアプリ1112や、DLアプリA 1114、DLアプリB 1115の代わりに、それぞれ、仮想マシンを用いる構成について説明する。
<コンテンツ表示装置1002のソフトウェア構成>
図12は、本発明の実施の形態3におけるコンテンツ表示装置1002のソフトウェア構成図である。
図12において、コンテンツ表示装置1002は、仮想化ソフトウェア3001(図13)と、仮想マシン3002、3003、3004、3005とを含む。
仮想化ソフトウェア3001は、その上で動作する仮想マシン3002〜3005を管理する仮想マシン管理機能と、その仮想マシン3002〜3005のそれぞれに対して、メモリなどのハードウェアリソースを割り当てると共に、そのハードウェアリソースを管理するリソース管理機能と、仮想マシン3002〜3005からの要求に従って、デバイスへアクセスするデバイスアクセス機能とを有する。なお、仮想化ソフトウェア3001の詳細は、後述する。
仮想マシン3002、3003、3004、3005のそれぞれは、仮想ハードウェア(例えば仮想ハードウェア3010)と、OS(例えばOSA3011)と、1個以上のアプリ(アプリ3012及び3013)とを含む。それぞれの仮想マシンは、仮想化ソフトウェア3001により、それぞれのその他の仮想マシンとは独立に実行される。
実施の形態3においては、仮想マシン3002は、仮想ハードウェア3010と、OSA 3011と、アプリA 3012と、アプリB 3013とを含む。
仮想マシン3003は、仮想ハードウェア3020と、OSB 3021と、アプリC 3022と、アプリD 3023とを含む。
仮想マシン3004は、仮想ハードウェア3030と、OSC 3031と、アプリE 3032と、アプリF 3033とを含む。
仮想マシン3005は、仮想ハードウェア3040と、OSD 3041と、アプリG 3042と、アプリH 3043とを含む。
仮想ハードウェア3010、3020、3030、3040のそれぞれの仮想ハードウェアは、その仮想ハードウェアの仮想マシンに、仮想的に、ハードウェアの機能を提供する。
また、例えば、仮想ハードウェア3010、3020、3030及び3040のそれぞれの仮想ハードウェアは、IPL(Initial Program Loader)及びBIOS(Basic Input/Output System)も含む。
なお、仮想ハードウェア3010、3020、3030及び3040の1つまたは2つ以上のうちのそれぞれは、仮想化ソフトウェア3001の構成によっては、例えば、仮想化ソフトウェア3001、又は、各仮想マシンのOSに統合される場合もある。
OSA 3011と、OSB 3021と、OSC 3031とOSD 3041とのそれぞれは、そのOS上で動作するアプリを、メモリ上にロードして実行する。
また、それぞれのOSが管理するリソースに対して、アプリから利用要求があった時に、そのOSは、要求してきたアプリが、そのリソースを利用する権限があるかを確認し、アプリにリソースを提供する。
アプリから、それぞれのOSへの要求としては、ファイルへの読み込み要求や、書き込み要求、また、ネットワークで接続された他の機器への接続要求などがある。
アプリA 3012と、アプリB 3013と、アプリC 3022と、アプリD 3023と、アプリE 3032と、アプリF 3033と、アプリG 3042と、アプリH 3043とのそれぞれは、アドレス管理機能、Webブラウズ機能、及び電子メール機能などの機能を有し、ユーザに対して、これらの機能を提供する。
これらのソフトウェアは、予め、不揮発性記憶装置1220へ記録され、実行時に、メモリ1210上へ展開され、CPU1201を用いて実行する。
なお、本発明の実施の形態3では、仮想化ソフトウェア3001上で、4つの仮想マシンが動作する場合を説明するが、これに限定されるものではなく、複数の仮想マシンが動作していればよい。
また、それぞれの仮想マシン内で、2つのアプリが動作する場合を説明するが、これに限定されるものではなく、1つでもよいし、2より多くてもよいし、それぞれの仮想マシンごとに、異なる数を実行していてもよい。
また、それぞれのアプリは、本発明の実施の形態1で説明した、DLアプリA 1114や、DLアプリB 1115のように、アプリ配信サーバ1020からダウンロードしたアプリであってもよい。
<仮想化ソフトウェア3001の構成>
図13は、本発明の実施の形態3における仮想化ソフトウェア3001(図12)の構成図である。
図13において、仮想化ソフトウェア3001は、保護情報アクセス検出部3501と、仮想マシン間通信検出部3503と、アクセス制御部3504とを含む。
保護情報アクセス検出部3501は、仮想化ソフトウェア3001が管理するリソースに対して、仮想マシンからアクセス要求があった時に、その仮想マシンがアクセス要求したリソースが、保護情報であるかをチェックする。
基本的な動作は、本発明の実施の形態1の保護情報アクセス検出部1501における動作と同じである。
チェック方法としては、例えば、本発明の実施の形態1の保護情報アクセス検出部1501における方法と同様の方法を用いる。
この時、保護情報アクセス許可リスト1221(図7を参照)は、アプリ識別子の代わりに仮想マシン識別子を含む。
また、保護情報アクセス検出部3501は、保護情報へのアクセスの検出時に、仮想マシン管理部3502へ、仮想マシン識別子を通知し、保護情報へのアクセスが終了した時に、保護情報へのアクセス終了を、仮想マシン管理部3502へ通知する。
更に、保護情報アクセス検出部3501は、保護情報へのアクセス開始・終了時に、仮想マシン間通信検出部3503へ、アクセスの開始・終了を通知する。
仮想マシン管理部3502は、仮想化ソフトウェア3001上で動作している仮想マシンを管理する。
ここで、仮想化ソフトウェア3001上では、複数の仮想マシンが動作可能である。
しかし、コンテンツ表示装置1002は、CPU1201を1つしか持たないため、同時に実行可能な仮想マシンは1つである。
そこで、仮想化ソフトウェア3001は、切り替えタイミングで、CPU1201が実行する仮想マシンを切り替えることにより、複数の仮想マシンを動作させる。
なお、基本的な動作は、例えば、本発明の実施の形態1のプロセス管理部1502の動作と同じである。
仮想マシン管理部3502は、図12で示されるように、仮想マシンリスト管理部3510と、仮想マシン切替部3511と、仮想マシン実行制御部3512とを含む。
仮想マシンリスト管理部3510は、仮想化ソフトウェア3001上で動作している仮想マシンの一覧を、仮想マシンリストとして、リスト形式で管理する。
仮想マシンリスト管理部3510は、仮想マシン実行制御部3512から、仮想マシンリストの切り替え依頼を受けた時に、その時点で管理していた仮想マシンリストを退避し、新しい仮想マシンリストへ切り替える。
更に、仮想マシンリスト管理部3510は、仮想マシン実行制御部3512から、仮想マシンリストの更新依頼を受けた時に、その時点で管理していた仮想マシンリストを、新しい仮想マシンリストに更新する。
仮想マシン切替部3511は、CPU1201が実行する仮想マシンを、切り替えタイミングの度に、一方の仮想マシンから、他方の仮想マシンへと切り替える。切り替える方法は、例えば、本発明の実施の形態1におけるプロセス切替部1511における、プロセスの切り替え方法と同じ方法などである。
仮想マシン実行制御部3512は、仮想マシン管理部3502が、保護情報アクセス検出部3501から、仮想マシン識別子を受け取った時に、仮想化ソフトウェア3001上で動作している仮想マシンの動作を制限する。
具体的には、仮想マシン実行制御部3512は、保護情報アクセス検出部3501から通知された仮想マシン識別子を用いて、仮想マシンリストを作成する。
仮想マシン実行制御部3512は、仮想マシンリスト管理部3510に対して依頼をする。その依頼では、仮想マシンリスト管理部3510が管理している仮想マシンリストを、仮想マシン実行制御部3512が作成した仮想マシンリストと入れ替えることを依頼する。
また、仮想マシン管理部3502が、保護情報アクセス検出部3501から、保護情報へのアクセス終了の通知を受けた時に、仮想マシン実行制御部3512は、仮想マシンリスト管理部3510へ、仮想マシンリストの復帰を依頼する。
仮想マシン間通信検出部3503は、仮想化ソフトウェア3001上で動作している仮想マシンが、保護情報へアクセスしている間、他の仮想マシンと連携するために、仮想化ソフトウェア3001へ、仮想マシン間通信の依頼を行った場合に、それを検出し、仮想マシン管理部3502と、アクセス制御部3504とへ、それぞれ、仮想マシン間通信の依頼を検出したことを通知する。
仮想マシン間通信検出部3503は、仮想マシン管理部3502と、アクセス制御部3504への通知の際、通信相手の仮想マシン識別子を通知する。
仮想マシン間通信検出部3503は、保護情報アクセス検出部3501から、保護情報へのアクセス開始の通知を受けた時から、保護情報へのアクセス終了の通知を受けるまでの間を、「保護情報へアクセスしている間」として、仮想マシン間通信の検出を行う。
また、仮想マシン間通信検出部3503は、保護情報アクセス検出部3501から、保護情報へのアクセス終了の通知を受けた時に、アクセス制御部3504へ、保護情報へのアクセス終了の通知を行う。
アクセス制御部3504は、仮想マシン間通信検出部3503から通知された仮想マシン識別子を持つ仮想マシンが、ネットワークへのアクセスや、HDDへの書込処理を行う時に、それを検出する。
検出時に、コンテンツ表示装置1002の液晶ディスプレイへ表示を行い、ネットワークへのアクセスや、HDDへの書込処理を行ってもよいかを、ユーザへ問い合わせる。
ユーザが許可した場合には、処理を継続し、ユーザが許可しなかった場合には、エラーを、仮想マシンへ返す。
なお、上記実施の形態1〜3におけるコンテンツ表示装置1002は、OS 1111や、仮想化ソフトウェア3001が、改ざんされてしまうと、保護情報への不正なアクセスを防止するための機能が無効化されてしまう可能性がある。
そこで、電源投入時の起動処理において、セキュアブートと呼ばれる仕組みにより、OS 1111や仮想化ソフトウェア3001が改ざんされると、その改ざんを検出し、起動処理を停止する仕組みを持っていてもよい。
具体的な処理としては、電源投入時に、LSI内部の書き換え不可能な、安全なROM(Read Only Memory)から起動し、そのROMが、IPL(Initial Program Loader)が改ざんされていないかチェックし、改ざんされていない場合のみ、IPLを、メモリ1210へロードし、IPLへ、制御を移す。
IPLは、OS 1111や、仮想化ソフトウェア3001が改ざんされていないかチェックし、改ざんされていない場合のみ、OS 1111や、仮想化ソフトウェア3001を、メモリ1210へロードし、OS 1111や、仮想化ソフトウェア3001へ、制御を移すという処理を行う。
なお、より詳細には、例えば、TCG(Trusted Computing グループ)のMPWG(Mobile Phone Work グループ)で規定する方式がある。
なお、本発明は、上記の実施の形態1〜3に限定されないのはもちろんである。例えば、以下のような場合も、本発明に含まれる。
なお、こうして、検出されるアクセスを行うプロセス以外のその他の各プロセスが停止される。
しかしながら、実施形態の情報処理装置は、タブレット端末、スマートフォンなどであり、より具体的には、例えば、Android端末である。このため、多くの場合には、最前面に表示されているウインドウの1つのプロセスが実行されているだけで、適切な動作がされる。つまり、多くの場合には、その他の各プロセスが停止されても、弊害(問題)が生じない。
これにより、保護情報の不正な取得が回避されるにも関わらず、多くの場合には、弊害が生じず、弊害が生じ難いようにできる。
なお、アクセスが検出される保護情報は、サーバ(図1等のコンテンツ蓄積装置1001を参照)により蓄積されてもよい。つまり、蓄積されるこの保護情報は、アクセスがされない時には、この情報処理装置により記憶されず、アクセスがされる時にのみ、この情報処理装置により記憶されてもよい。このために、アクセスがされない時には、保護情報が不正に取得され難く、アクセスがされる時には、保護情報が不正に取得され易くでもよい。
なお、先述のプロセス管理部は、マルチプロセスでの動作をさせるためのスケジューラと、シングルプロセスでの動作をさせるためのスケジューラとを備えてもよい。これら2つのスケジューラのうちから、利用されるスケジューラが選択されてもよい。これにより、選択されたスケジューラに対応する方の動作が行われてもよい。
なお、この情報処理装置は、保護情報へのアクセスが検出されない時には、マルチプロセスでの動作をする第1のモードで動作し、検出される時には、シングルプロセスでの動作をする第2モードで動作してもよい。
なお、プロセスを特定するための予め定められた識別子(例えば、図7のアプリ識別子1521b)が記憶されてもよい。特定されるプロセスによっては、保護情報が不正に取得されないことが、比較的確実でもよい。
例えば、特定されるプロセスのアプリは、この情報処理装置に対して、製造時などにプリインストールがされたアプリでもよい。
また、特定されるアプリは、署名が付されたアプリでもよい。
また、特定されるアプリは、所定のサイト(例えば、Android Marketのサイト)からダウンロードされたアプリでもよいし、所定のサイト(例えば、いわゆる勝手サイト)以外のサイトからダウンロードされたアプリでもよい。
これにより、検出されるアクセスをするプロセスにより、保護情報が不正に取得されることも回避されて、保護情報の不正な取得が、より確実に防げる。
しかも、単に、記憶される識別子が用いられるなどだけの処理で済んで、行われる処理が比較的簡単にできる。
(1)上記実施の形態における保護情報は、写真データであるとしたが、これに限定されるものではない。
つまり、保護情報は、例えば、氏名や性別、生年月日、住所、電話番号などの個人情報であってもよいし、写真以外の、動画や音声などのコンテンツであってもよいし、会社などで扱われる秘情報などの機密情報であってもよいし、機器の設定情報など、機器内で保護したいデータであってもよい。また、どの情報が保護情報になるかは、設計時や、商品出荷時に決定し、商品出荷前に、機器に記憶しておいてもよいし、どの情報が保護情報であるかを、ユーザが設定できてもよい。
(2)上記実施の形態におけるコンテンツ蓄積装置1001と、コンテンツ表示装置1002とは、写真データを共有し、コンテンツ表示装置1002は、コンテンツ蓄積装置1001と、写真データを共有する時に、ビューアアプリ1112以外の動作を停止するとしたが、これに限定されるものではない。
つまり、コンテンツ蓄積装置1001は、複数のコンテンツ表示装置1002と接続してもよいし、コンテンツ表示装置1002は、複数のコンテンツ蓄積装置1001と接続してもよい。
また、コンテンツ蓄積装置1001は、何らかのデータを格納している装置であればよく、コンテンツ表示装置1002は、何らかのデータを処理する装置であればよい。
また、コンテンツ蓄積装置1001が、コンテンツ表示装置1002の機能を持ってもよいし、コンテンツ表示装置1002が、コンテンツ蓄積装置1001の機能を持ってもよい。
この時、複数の装置間での共有処理時に、関係のないアプリの動作を停止してもよいし、機器単体で、保護情報を処理する時に、関係のないアプリの動作を停止してもよい。
(3)上記実施の形態におけるOS 1111は、保護情報アクセス検出部1501と、プロセス管理部1502と、プロセス間通信検出部1503と、アクセス制御部1504とを含むとしたが、これに限定されるものではない。
つまり、例えば、図14に示すように、保護情報アクセス検出部1501と、プロセス管理部1502とを含むとしてもよい。この時、保護情報へのアクセス時に、プロセス間通信により、他のアプリとの連携が行えないため、不正なアプリが、保護情報を入手することが一切出来なくなる。
また、プロセス管理部1502は、プロセスリスト管理部1510と、プロセス切替部1511と、アプリ実行制御部1512とを含むとしたが、これに限定されるものではなく、例えば、図15に示すように、アプリ実行制御部1512を含むとしてもよい。
上記の構成によれば、保護情報へのアクセスを検出し、保護情報にアクセスする必要のないアプリの実行を停止する事が出来る。
これにより、保護情報へのアクセス時に、不正なアプリの実行が停止する。このため、不正なアプリによる、保護情報への不正アクセスを防止出来る。
(4)上記実施の形態における保護情報アクセス検出部1501は、保護情報へのアクセスであるかどうかの検出に、保護情報アクセス許可リスト1221を使用し、保護情報アクセス許可リスト1221に含まれる保護情報識別子と一致するかどうかで、保護情報へのアクセスを検出するとしたが、これに限定されるものではない。
つまり、例えば、コンテンツ表示装置1002が、予め指定された通信方式(例えば、Bluetooth(登録商標)や、Wi-Fi:Wireless Fidelity(登録商標)など)で、他の機器と接続した時に、保護情報へのアクセスであると検出してもよいし、VPN(Virtual Private Network)で、他の機器と接続した時に、保護情報へのアクセスであると検出してもよい。
また、接続した時に検出するのではなく、これらの接続を利用してデータ通信を行う時に、検出してもよい。
これにより、例えば、個人のモバイル機器から、会社のサーバへ、VPN接続し、会社の機密情報にアクセスする場合にも、会社へのアクセス専用のアプリ以外のアプリによる、会社の機密情報への不正アクセスを防止することが出来る。
更に、特定のアプリ(例えば、ビューアアプリ1112)が起動した時に、保護情報へのアクセスであると検出してもよい。
この時、「特定のアプリ」は、予め指定された、商品出荷時などに、不揮発性記憶装置に記録されたアプリでもよいし、アプリをダウンロードした時に、アプリに付属する設定ファイルに、「保護情報へアクセスする」と記載されているアプリでもよいし、特定の証明書で署名されたアプリでもよい。
また、保護情報を示すフラグや、保護情報であると定義されたファイルや、フォルダへアクセスしたことにより、保護情報へのアクセスであると検出してもよい。
更に、これらのファイルやフォルダが、コンテンツ蓄積装置1001のように、他の端末内にあってもよいし、コンテンツ表示装置1002の内部にあるファイルやフォルダであってもよい。
(5)上記実施の形態における保護情報アクセス許可リスト1221は、保護情報識別子と、アプリ識別子とを対応付けて格納したリストであるとしたが、これに限定されるものではない。
つまり、保護情報アクセス許可リスト1221においては、1つの保護情報識別子に、複数のアプリ識別子が対応付けられていてもよい。
また、保護情報へアクセスする間に実行するアプリのアプリ識別子ではなく、保護情報へアクセスしている間に停止するアプリのアプリ識別子であってもよい。
この時、アプリ実行制御部1512は、保護情報アクセス検出部1501から通知されたアプリ識別子に対応付けられていないプロセスのプロセス識別子を、プロセスリスト管理部1510から取得し、新しいプロセスリストを作成する。
また、アプリ識別子とは対応付けを行わず、保護情報へアクセスを行ったアプリのみを実行し、他のアプリを停止するとしてもよい。
この時の保護情報アクセス許可リスト1221は、保護情報識別子のみになる。
保護情報アクセス検出部1501は、保護情報識別子に対応付けられたアプリ識別子ではなく、保護情報へアクセスしたアプリのアプリ識別子を、プロセス管理部1502へ通知する。
(6)上記実施の形態における保護情報アクセス検出部1501は、保護情報へのアクセスであるかどうかの検出を行うとしたが、これに限定されるものではなく、保護情報へアクセスしたアプリが、保護情報へのアクセスを許可されたアプリであるかの判定を行ってもよい。
(7)上記実施の形態におけるCPU1201では、同時に実行可能なアプリは、1つであるとしたが、これに限定されるものではない。
つまり、例えば、CPU1201は、1つのCPUに、複数の実行部(コア)を搭載したマルチコアCPUで、搭載したコアの数以下のアプリが、同時に実行可能であってもよい。また、CPU1201は、複数のCPUを搭載し、搭載したCPUの数以下のアプリが同時に実行可能であってよい。
この時、プロセス管理部1502は、それぞれのコアやCPU上で動作するアプリを、同時に、又は、それぞれのコアやそれぞれのCPUごとに個別のタイミングで、切り替える。
(8)上記実施の形態におけるプロセスリスト1522や1523、1524のそれぞれは、アプリ識別子と、プロセス識別子とを含むとしたが、これに限定されるものではなく、アプリ識別子と、プロセス識別子と、実行可否フラグとを含んでもよい。
実行が許可されたプロセスには、実行可否フラグに、「可」を設定し、実行が許可されていないプロセスには、「否」を設定する。この時、アプリ実行制御部1512は、プロセスリスト管理部1510へ、新しいプロセスリストを通知するのではなく、実行を停止するアプリ識別子、又は、プロセス識別子を、プロセスリスト管理部1510へ通知し、プロセスリスト管理部1510が、通知されたアプリ識別子やプロセス識別子に対応した実行可否フラグを、「否」に設定してもよい。逆に、アプリ実行制御部1512は、実行を継続するアプリ識別子、又は、プロセス識別子を、プロセスリスト管理部1510へ通知し、プロセスリスト管理部1510が、通知されたアプリ識別子やプロセス識別子以外の実行可否フラグを、「否」に設定してもよい。
(9)上記実施の形態におけるプロセス間通信検出部1503は、OS 1111上で動作しているアプリが、保護情報へアクセスしている間、他のアプリと連携するために、OS 1111へ、プロセス間通信の依頼を行った場合に、それを検出し、プロセス管理部1502とアクセス制御部1504とへ、それぞれ、プロセス間通信の依頼を検出したことを通知するとしたが、これに限定されるものではない。
つまり、その依頼が許可されているかを判定し、許可されている場合にのみ、プロセス間通信の依頼を検出したことを通知してもよい。
なお、許可されているかどうかの判定方法は、例えば、通知されるデータの種類によって判定する方法でもよいし、通知先のアプリによって判定する方法などでもよい。
なお、データの種類による判定方法としては、例えば、写真データであれば、通知を許可しないとの方法や、写真データは許可するが、個人情報は許可しないなどでの方法等がある。
通知先のアプリによる判定方法としては、例えば、商品出荷時に、既にインストール済みのアプリへの通知は許可する方法や、アプリに付加された署名の署名者によって、許可するか判定する方法や、通知先のアプリがアクセス出来るリソースの種類に応じて、判定する方法などの各種の方法がある。
(10)上記実施の形態におけるアクセス制御部1504は、プロセス間通信検出部1503から通知されたアプリ識別子を持つプロセスが、ネットワークへのアクセスや、ファイルへの書込処理を行う時に、それを検出し、ネットワークへのアクセスや、ファイルへの書込処理を行ってもよいかを、ユーザへ問い合わせるとしたが、これに限定されるものではない。
つまり、アクセスを禁止してもよいし、ネットワークアクセスは、禁止し、ファイルへの書込処理は、許可するなど、アクセスの種類によって分けてもよい。
検出後の処理方法は、商品出荷時に設定するとしてもよいし、設定メニューを準備し、ユーザが設定可能にしてもよいし、プロセス間通信で通信される、データの種類に応じて、処理方法を変えてもよい。また、ユーザへ問い合わせるのではなく、予め指定されたサーバへ問い合わせるとしてもよい。
(11)上記実施の形態におけるアプリ実行制御部1512は、プロセスリスト管理部1510から取得したプロセス識別子を用いて、プロセスリスト1523を作成するとしたが、これに限定されるものではない。
つまり、プロセスリスト1523には、プロセスリスト管理部1510から取得した保護情報へのアクセスを依頼したプロセスのプロセス識別子だけでなく、他のプロセスのプロセス識別子が含まれてもよい。
例えば、音楽プレーヤなど、連続して動作が必要なアプリに関しては、保護情報へアクセスしている間にも、動作をさせるために、プロセスリスト1523に含めてもよい。
なお、連続して動作させるアプリは、ユーザが指定したアプリでもよいし、音楽プレーヤなどでは、連続して動作させるなどして、アプリの種類によって、連続して動作させてもよいし、アプリに付加された署名によって、連続して動作させるかを判断してもよい。
更に、保護情報へのアクセスを依頼したプロセス以外の、動作させるプロセスに関しては、保護情報へアクセスしている間には、アクセス制御部1504により、アクセス制御を行ってもよい。
この時、アプリ実行制御部1512は、連続して動作させるプロセスのプロセス識別子を、アクセス制御部1504へ通知する。
(12)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAM又はハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組合わせされて構成されたものである。
(13)上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていてもよいし、一部又は全てを含むように1チップ化されてもよい。
また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
(14)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパー性を有するとしてもよい。
(15)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標)Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(16)上記実施の形態及び上記変形例をそれぞれ組合わせるとしてもよい。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の画像復号化装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、情報処理装置が、保護情報を処理する情報処理方法であって、前記情報処理装置内で動作するプロセスを管理するプロセス管理ステップと、前記保護情報へのアクセスを検出するアクセス検出ステップとを含み、前記プロセス管理ステップでは、前記アクセス検出ステップで、前記保護情報へのアクセスを検出した時に、前記保護情報へのアクセスをするプロセス以外のその他の各プロセスの動作を一時的に停止させる実行制御ステップを含む情報処理方法の各ステップを実行させる。