(57)【特許請求の範囲】
【請求項１】
証明書が付された、画面を複製する機能を制限するためのデータを組込むと、自身の前記機能を制限し、組込んだ前記データが正規のデータであるか否かの検査結果を要求されると、当該要求に応じて当該検査結果を応答するオペレーティングシステムにおいて実行されるプログラムであって、
前記オペレーティングシステムによって制御されるコンピュータを、
起動時またはバックグラウンド処理からの復帰時に、前記オペレーティングシステムに対して当該オペレーティングシステムが組込んだ前記データの前記検査結果を要求する要求手段と、
表示手段に所定の画面を表示させる表示制御手段と、
前記要求手段の要求に応じて前記オペレーティングシステムから応答された検査結果が、前記データが正規ではないことを示す場合に、前記表示制御手段による前記所定の画面の表示を禁止して、正規のデータを前記オペレーティングシステムに組込むことを指示する指示手段
として機能させるためのアプリケーションプログラム。
【請求項２】
前記コンピュータを、
当該コンピュータにおいて実行されているクライアントプログラムから要求されたときに、前記データを供給する供給手段
として機能させるとともに、
前記指示手段が、前記オペレーティングシステムに対して、前記クライアントプログラムを起動することを指示するように、当該コンピュータを機能させるための請求項１に記載のアプリケーションプログラム。
【請求項３】
前記コンピュータを、
前記オペレーティングシステムが、当該コンピュータに前記表示手段と異なる１つ以上の表示装置が接続されている接続状態を検知した場合に、前記表示制御手段による前記所定の画面の表示を禁止するように当該オペレーティングシステムに要求する接続時要求手段
として機能させるための請求項１または２に記載のアプリケーションプログラム。
【請求項４】
第１の機能を制限するための、証明書が付されたデータを組込むと、自身の前記第１の機能を制限し、組込んだ前記データが正規のデータであるか否かの検査結果を要求されると、当該要求に応じて当該検査結果を応答するオペレーティングシステムにおいて実行されるプログラムであって、
前記オペレーティングシステムによって制御されるコンピュータを、
起動時またはバックグラウンド処理からの復帰時に、前記オペレーティングシステムに対して当該オペレーティングシステムが組込んだ前記データの前記検査結果を要求する要求手段と、
第２の機能を提供する提供手段と、
前記要求手段の要求に応じて前記オペレーティングシステムから応答された検査結果が、前記データが正規ではないことを示す場合に、前記提供手段による前記第２の機能の提供を制限して、正規のデータを前記オペレーティングシステムに組込むことを指示する指示手段
として機能させるためのアプリケーションプログラム。
【請求項５】
所定の設定をするための、証明書が付されたデータを組込むと、前記設定をし、組込んだ前記データが正規のデータであるか否かの検査結果を要求されると、当該要求に応じて当該検査結果を応答するオペレーティングシステムにおいて実行されるプログラムであって、
前記オペレーティングシステムによって制御されるコンピュータを、
起動時またはバックグラウンド処理からの復帰時に、前記オペレーティングシステムに対して当該オペレーティングシステムが組込んだ前記データの前記検査結果を要求する要求手段と、
所定の機能を提供する提供手段と、
前記要求手段の要求に応じて前記オペレーティングシステムから応答された検査結果が、前記データが正規ではないことを示す場合に、前記提供手段による前記機能の提供を制限して、正規のデータを前記オペレーティングシステムに組込むことを指示する指示手段
として機能させるためのアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステムに画面を複製する機能を制限させるアプリケーションプログラムに関するものである。
【背景技術】
【０００２】
アプリケーションプログラムの不正使用を防止するための技術が検討されている。例えば、特許文献１の請求項１には、実行ファイル内の証明書データを、アクセス制限がかかった第１の記憶領域に証明書ファイルとして格納しておき、証明書データが内蔵されていない更新用実行ファイルが配布された場合、その更新用実行ファイルを実行することによってアプリケーションを利用する際に、第１の記憶領域に格納された証明書ファイルを用いる端末が記載されている。
また、特許文献２の請求項１には、起動時に記憶手段に記憶された２つの固有情報を比較することで認証を行い、両者が一致しなかった場合には起動しないソフトウェア起動システムが記載されている。
特許文献３の請求項１には、取得した属性情報と、読み出した属性情報とが合致した場合はアプリケーションプログラムの起動を許可し、合致しなかった場合は許可しない、アプリケーション起動判定ステップを有するプログラム起動制御方法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−３８１９３号公報
【特許文献２】特開２００９−８０７７２号公報
【特許文献３】特開２０１２−８８７６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、オペレーティングシステムには、表示装置により表示されている画面を複製し記憶装置に保存する、いわゆる「スクリーンショット」と呼ばれる機能を提供するものがある。しかし、アプリケーションプログラムによっては、その起動中の画面を複製させたくない場合がある。【０００５】
起動中の画面を複製させないためには、スクリーンショットを指示する操作をアプリケーションに監視させることが考えられるが、セキュリティ上の要請によりこの監視を許可しない代わりに、構成プロファイルなどと呼ばれるデータを用いて上述した機能を制限するオペレーティングシステムがある。このオペレーティングシステムでは、構成プロファイルを組込むと、その構成プロファイルの内容に応じて機能を制限するので、アプリケーションの起動中の画面は複製されない。しかし、アプリケーション側からオペレーティングシステムに上記機能を制限させる手段がないため、アプリケーション起動中の画面が複製されない確実な保証はない。また、組込まれた構成プロファイルを削除できないようにすると、そのアプリケーションを起動しているときの機能を制限できるが、他のアプリケーションを実行しているときにも機能が制限されるため、利用者の利便性が損なわれることがある。【０００６】
本発明は、画面を複製する機能を制限するためのデータが組込まれているときにその機能を制限するオペレーティングシステムにおいて起動され、起動中の画面をオペレーティングシステムに複製させないアプリケーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決するため、本発明に係るアプリケーションプログラムは、証明書が付された、画面を複製する機能を制限するためのデータを組込むと、自身の前記機能を制限し、組込んだ前記データが正規のデータであるか否かの検査結果を要求されると、当該要求に応じて当該検査結果を応答するオペレーティングシステムにおいて実行されるプログラムであって、前記オペレーティングシステムによって制御されるコンピュータを、起動時またはバックグラウンド処理からの復帰時に、前記オペレーティングシステムに対して当該オペレーティングシステムが組込んだ前記データの前記検査結果を要求する要求手段と、表示手段に所定の画面を表示させる表示制御手段と、前記要求手段の要求に応じて前記オペレーティングシステムから応答された検査結果が、前記データが正規ではないことを示す場合に、前記表示制御手段による前記所定の画面の表示を禁止して、正規のデータを前記オペレーティングシステムに組込むことを指示する指示手段として機能させるアプリケーションプログラムである。【０００８】
本発明に係るアプリケーションプログラムは、前記コンピュータを、当該コンピュータにおいて実行されているクライアントプログラムから要求されたときに、前記データを供給する供給手段として機能させるとともに、前記指示手段が、前記オペレーティングシステムに対して、前記クライアントプログラムを起動することを指示するように、当該コンピュータを機能させてもよい。【０００９】
本発明に係るアプリケーションプログラムは、前記コンピュータを、前記オペレーティングシステムが、当該コンピュータに前記表示手段と異なる１つ以上の表示装置が接続されている接続状態を検知した場合に、前記表示制御手段による前記所定の画面の表示を禁止するように当該オペレーティングシステムに要求する接続時要求手段として機能させてもよい。
本発明に係るアプリケーションプログラムは、第１の機能を制限するための、証明書が付されたデータを組込むと、自身の前記第１の機能を制限し、組込んだ前記データが正規のデータであるか否かの検査結果を要求されると、当該要求に応じて当該検査結果を応答するオペレーティングシステムにおいて実行されるプログラムであって、前記オペレーティングシステムによって制御されるコンピュータを、起動時またはバックグラウンド処理からの復帰時に、前記オペレーティングシステムに対して当該オペレーティングシステムが組込んだ前記データの前記検査結果を要求する要求手段と、第２の機能を提供する提供手段と、前記要求手段の要求に応じて前記オペレーティングシステムから応答された検査結果が、前記データが正規ではないことを示す場合に、前記提供手段による前記第２の機能の提供を制限して、正規のデータを前記オペレーティングシステムに組込むことを指示する指示手段として機能させるためのアプリケーションプログラムである。
本発明に係るアプリケーションプログラムは、所定の設定をするための、証明書が付されたデータを組込むと、前記設定をし、組込んだ前記データが正規のデータであるか否かの検査結果を要求されると、当該要求に応じて当該検査結果を応答するオペレーティングシステムにおいて実行されるプログラムであって、前記オペレーティングシステムによって制御されるコンピュータを、起動時またはバックグラウンド処理からの復帰時に、前記オペレーティングシステムに対して当該オペレーティングシステムが組込んだ前記データの前記検査結果を要求する要求手段と、所定の機能を提供する提供手段と、前記要求手段の要求に応じて前記オペレーティングシステムから応答された検査結果が、前記データが正規ではないことを示す場合に、前記提供手段による前記機能の提供を制限して、正規のデータを前記オペレーティングシステムに組込むことを指示する指示手段として機能させるためのアプリケーションプログラムである。
【発明の効果】
【００１０】
本発明によれば、画面を複製する機能を制限するためのデータが組込まれているときにその機能を制限するオペレーティングシステムに、起動中の画面を複製させないようにすることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る配布システムの構成を示す図。
【図２】端末の構成を示す図。
【図３】構成プロファイルの一例を示す図である。
【図４】端末の機能的構成を示す図。
【図５】アプリの状態遷移について説明するための図。
【図６】端末で実行されるオペレーティングシステムの動作を示すフロー図。
【図７】端末で実行されるアプリの動作を示すフロー図。
【符号の説明】
【００１２】
１…端末、１１…制御部、１１０…オペレーティングシステム、１１０１…組込部、１１０２…複製部、１１０３…検査部、１１０４…起動部、１１１…アプリ、１１１１…要求部、１１１２…表示制御部、１１１３…指示部、１１１４…供給部、１１３…ブラウザ、１１３１…構成プロファイル要求部、１２…記憶部、１２１…構成プロファイル領域、１２２…画像データ領域、１２３…アプリデータ、１２３１…構成プロファイル、１２３２…起動証明書、１２３３…プロファイル用署名、１３…通信部、１４…操作部、１５…表示部、１５１…ＶＲＡＭ、２…サーバ装置、３…通信回線、９…配布システム、Ｄ１…設定、Ｄ２…公開鍵証明書、Ｄ２１…主体者名、Ｄ２２…第１公開鍵、Ｄ２３…鍵用署名、Ｄ３…メッセージ用署名、Ｅ…コード証明書、Ｍ…メッセージ。
【発明を実施するための形態】
【００１３】
１．実施形態
１−１．配布システムの構成
図１は、本実施形態に係る配布システム９の構成を示す図である。配布システム９は、アプリケーションプログラム（以下、アプリという）を配布するシステムである。通信回線３は、端末１ａ、１ｂ、１ｃ（以下、特に区別の必要がない場合は、これらを総称して「端末１」と記す）と、サーバ装置２とを接続する回線であり、これら各装置間の情報の遣り取りを仲介する。通信回線３は、例えばインターネットである。
【００１４】
サーバ装置２は、端末１にアプリを配布するための装置である。サーバ装置２は、例えば端末１の要求に応じてアプリをダウンロードさせる。端末１は、サーバ装置２にアプリを要求してそのアプリを取得し実行する情報処理装置であり、例えば、タブレット端末、携帯電話機、ＰＤＡ（Personal Digital Assistant）、携帯音楽再生機、携帯動画再生機、ゲーム機、電子書籍の閲覧装置、ナビゲーション装置、パーソナルコンピュータなどのコンピュータ装置である。
【００１５】
１−２．端末の構成
図２は、端末１の構成を示す図である。制御部１１は、端末１の各部の動作を制御する手段である。制御部１１は、ＣＰＵ（Central Processing Unit）などの演算処理装置や、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記憶装置を備え、これら記憶装置に記憶されたプログラムを実行する。通信部１３は、通信回線３を介してサーバ装置２とアプリなどを通信するインターフェイスである。
【００１６】
表示部１５は、液晶などの表示画面を使用したディスプレイ装置であり、制御部１１からの指示に応じて画像を表示する。表示部１５は、ＶＲＡＭ（Video Random Access Memory）１５１を備え、表示画面に表示する画像を示す画像データをこのＶＲＡＭ１５１に保存する。
【００１７】
操作部１４は各種の指示を入力するためのタッチパネルやボタンなどを有しており、ユーザによる操作を受け付けてその操作内容に応じた信号を制御部１１に供給する。
【００１８】
記憶部１２はソリッドステートドライブ（ＳＳＤ：Solid State Drive）やフラッシュメモリなどの記憶手段であり、制御部１１に読み込まれるプログラムを記憶する。なお、記憶部１２は、いわゆるリムーバブルディスク、すなわち着脱可能な記録媒体を含んでもよい。
【００１９】
記憶部１２は、オペレーティングシステムを記憶する領域のほか、構成プロファイル１２３１を記憶することによってオペレーティングシステムに組込む記憶領域である構成プロファイル領域１２１と、ＶＲＡＭ１５１に保存された画像データを複製して記憶する記憶領域である画像データ領域１２２とを有する。また、記憶部１２は、アプリデータ１２３を記憶する。アプリデータ１２３は、制御部１１に読み込まれてアプリ１１１として機能する命令コード群に加え、構成プロファイル１２３１、起動証明書１２３２、およびプロファイル用署名１２３３をリソースとして含むデータファイルである。
【００２０】
構成プロファイルとは、オペレーティングシステムに組込まれることにより、端末１の機能を制限するデータである。構成プロファイル１２３１は、構成プロファイルであり、画面を複製する機能を制限するための設定を含んでいる。
【００２１】
図３は、構成プロファイル１２３１、起動証明書１２３２およびこれらと鍵との関係の一例を示す図である。図３（ａ）に示すように構成プロファイル１２３１は、設定Ｄ１と、公開鍵証明書Ｄ２とを含む。
設定Ｄ１には、「スクリーンショットを禁止する」といった端末１の機能を制限する情報が記述されている。
公開鍵証明書Ｄ２には、主体者名Ｄ２１と、第１公開鍵Ｄ２２と、鍵用署名Ｄ２３とが含まれている。
【００２２】
主体者名Ｄ２１は、この構成プロファイル１２３１を作成した組織（以下、「主体者」という）の名称（識別情報）である。第１公開鍵Ｄ２２は、主体者の公開鍵である。鍵用署名Ｄ２３は、図３（ｃ）に示すように主体者の第１公開鍵Ｄ２２と対をなす（ペアである）第１私有鍵を用いて第１公開鍵Ｄ２２から生成した署名である。すなわち、署名の発行元と、署名の対象である公開鍵の主体者とが同一であるため、この公開鍵証明書Ｄ２は、自己署名証明書として機能する。
【００２３】
なお、図３（ｃ）に二点鎖線で示した範囲Ｂ内の情報は主体者のみが知り得る情報であり、範囲Ｃ内の情報は認証局のみが知り得る情報である。
【００２４】
起動証明書１２３２は、オペレーティングシステムが、アプリ１１１の起動を許可すべき状態か否か決定するためのデータである。具体的には、図３（ｂ）に示すように起動証明書１２３２は、所定のメッセージＭと、このメッセージＭから一意に導き出される固有情報（メッセージＭ自身やそのハッシュ値など）を主体者の第１私有鍵で暗号化した暗号文、すなわちメッセージ用署名Ｄ３とを含む。起動証明書１２３２のメッセージ用署名Ｄ３を、オペレーティングシステムに組込まれた構成プロファイルの公開鍵証明書に含まれる公開鍵で復号し、メッセージＭの固有情報と比較して一致していれば、その公開鍵は、主体者の第１公開鍵Ｄ２２であることが証明され、アプリ１１１の起動が許可される。
【００２５】
なお、メッセージＭはどのような情報であってもよいが、例えば、第１公開鍵Ｄ２２および第２公開鍵のいずれとも異なる、主体者の第３公開鍵であってもよい。この場合、この第３公開鍵とペアである第３私有鍵は、この配布システム９において使用されなくてもよい。
【００２６】
プロファイル用署名１２３３は、構成プロファイル１２３１とともにオペレーティングシステムに供給され、構成プロファイル１２３１と対応付けて記憶される。プロファイル用署名１２３３は、対応付けられた構成プロファイル１２３１が主体者によって作成され、改ざんされていないことを証明するための署名であり、図３（ｃ）に示すように主体者の第２私有鍵によって署名されている。主体者の第２私有鍵は、第２公開鍵とペアである。第２公開鍵は、コード証明書Ｅによって主体者の公開鍵であることが保証されている。具体的には、所定の認証局の私有鍵を用いて、第２公開鍵から一意に導き出される情報（第２公開鍵自身やハッシュ値など、第２公開鍵固有情報という）を暗号化した暗号文を生成し、これをコード用署名として第２公開鍵と対応付けることで、コード証明書Ｅが作成される。
【００２７】
コード用署名は、認証局の公開鍵で復号すると、第２公開鍵固有情報と一致するので、認証局の私有鍵を知る者にしか生成することができない。認証局の公開鍵とコード証明書Ｅを入手した者は、その認証局の公開鍵によってコード用署名を検証し、第２公開鍵が主体者の公開鍵である保証を得る。そして、その者は、コード証明書Ｅに含まれる保証された第２公開鍵を用いてプロファイル用署名１２３３を検証することにより、プロファイル用署名１２３３が第２公開鍵とペアである第２私有鍵によって署名されたものであることの保証を得る。
なお、第２私有鍵は、ペアである第２公開鍵が、信頼できる第三者機関としての認証局によって証明されているので、プロファイル用署名１２３３のほか、アプリデータ１２３に含まれる命令コード群の作成元を証明する証明書、すなわち、コードサイニング証明書の生成に用いられてもよい。
【００２８】
１−３．端末の機能的構成
図４は、端末１の機能的構成を示す図である。制御部１１は、オペレーティングシステム１１０を実行する。また、オペレーティングシステム１１０が実行されている環境下において、制御部１１は記憶部１２からアプリデータ１２３を読み込み、アプリ１１１を実行する。オペレーティングシステム１１０は、組込部１１０１、複製部１１０２、および検査部１１０３として機能する。
【００２９】
操作部１４などが操作され、端末１に電源が供給されると、制御部１１は、ＲＯＭに予め記憶されたブートローダーにしたがって記憶部１２からオペレーティングシステム１１０を読み出す。組込部１１０１は、記憶部１２の構成プロファイル領域１２１を検査し、組込みが指示されている構成プロファイルがあれば、その構成プロファイルをオペレーティングシステム１１０に組込む。
【００３０】
複製部１１０２は、利用者の操作部１４に対する操作が画面の複製を指示するものである場合に、表示部１５のＶＲＡＭ１５１から表示部１５において表示されている画像を示す画像データを読み出し、記憶部１２の画像データ領域１２２に複製する。ただし、複製部１１０２は、組込部１１０１でオペレーティングシステム１１０に組込まれた構成プロファイルが画像の複製を禁じている場合には、上述した画像データの複製を行わない。
【００３１】
検査部１１０３は、アプリ１１１から、起動証明書１２３２のメッセージ用署名Ｄ３を構成プロファイルの公開鍵証明書に含まれる公開鍵で検証するように要求されると、その要求に応じてその検証結果を応答する。オペレーティングシステム１１０が構成プロファイルを１つも組込んでいない場合や、組込んだ構成プロファイルに公開鍵証明書が含まれていない場合、また、組込んだ構成プロファイルに含まれた公開鍵証明書の検証に失敗した場合などには、この検証結果は、不一致を示すものとなる。一方、組込んだ構成プロファイルに含まれた公開鍵証明書の検証に成功した場合には、この検証結果は、一致を示すものとなる。
【００３２】
アプリ１１１は、要求部１１１１、表示制御部１１１２、および指示部１１１３として機能する。要求部１１１１は、アプリ１１１が起動時またはバックグラウンド処理からの復帰時に、オペレーティングシステム１１０に対して、このオペレーティングシステム１１０が組込んだ構成プロファイルが正規の構成プロファイルであるか否かを確かめるために、起動証明書１２３２のメッセージ用署名Ｄ３を、オペレーティングシステム１１０に検証するようにオペレーティングシステム１１０に対して要求する。この検証は、（１）起動証明書１２３２の発行者を特定し、（２）オペレーティングシステム１１０内から特定したその発行者の公開鍵を探して、（３）見つかった公開鍵で問題の起動証明書１２３２のメッセージ用署名Ｄ３を検証する、という手順で行われる。オペレーティングシステム１１０は、組込まれた構成プロファイルの公開鍵証明書から上述した公開鍵を見つけ出し、その公開鍵で上述したメッセージ用署名Ｄ３を復号させ、メッセージＭの固有情報と比較して一致しているか否か判断する。
【００３３】
オペレーティングシステム１１０は、組込まれた構成プロファイルが存在し、かつ、その構成プロファイルが公開鍵証明書を有している場合には、その公開鍵証明書から公開鍵を抽出して、抽出した公開鍵で起動証明書１２３２のメッセージ用署名Ｄ３を検証する。そして、その検証結果をアプリ１１１に応答する。この検証結果が、一致を示すものである場合、すなわち、その検証が成功している場合、アプリ１１１は、この検証結果に基づいて、アプリ１１１に組込まれていた構成プロファイル１２３１が正常にオペレーティングシステム１１０に組込まれていると解釈する。一方、この検証結果が、一致を示すものでない場合、すなわち、その検証が失敗している場合、アプリ１１１は、この検証結果に基づいて、構成プロファイルが正規のものでないと解釈する。この際、起動証明書１２３２は第１公開鍵Ｄ２２と対をなす第１私有鍵で署名されているので、構成プロファイルとして供給されている第１公開鍵Ｄ２２がオペレーティングシステム１１０に組込まれていれば、すなわち、スクリーンショットを禁止している設定がオペレーティングシステム１１０に組込まれていれば、起動証明書１２３２が正規のものとして判定されることになる。一方、第１公開鍵Ｄ２２がオペレーティングシステム１１０に組込まれていない場合は、起動証明書１２３２は正規のものとして判定されない。
【００３４】
ここで、アプリの状態遷移について説明する。以下、フォアグラウンドおよびバックグラウンドとは、制御部１１におけるアプリのステータスである。オペレーティングシステム１１０は、実行中のアプリの中から１つのアプリをフォアグラウンドにし、その他のアプリをバックグラウンドにする。そして、オペレーティングシステム１１０は、フォアグラウンドにあるそのアプリに対し、端末１に１つしか存在しないリソースのうち、決められたものを占有させる。例えば、オペレーティングシステム１１０は、フォアグラウンドにあるアプリに表示部１５を占有させる。一方、オペレーティングシステム１１０は、バックグラウンドにあるアプリに対して使用させるリソースに制約を課す。
【００３５】
図５は、アプリの状態遷移について説明するための図である。オペレーティングシステム１１０によって起動されるアプリは、アプリ１１１を含めて、例えば図５に示す５つの状態のいずれかになる。
「非実行状態」とは、アプリが起動されていないか、オペレーティングシステム１１０によって終了されている状態を示す。
「非アクティブ状態」とは、アプリがフォアグラウンドで実行中であり、かつ、イベントを受信していない状態を示す。アプリが起動されると、矢印ｔ１に示すように、アプリは「非実行状態」から「非アクティブ状態」に遷移する。イベントとは、例えば、利用者による操作部１４への操作があったときや、割り込み要求が発生したとき、端末１が電話である場合に着呼したとき、など種々の事象であり、これらの事象が生じたときには、各事象に応じて制御部１１に決められた制御信号が送られる。
【００３６】
「アクティブ状態」とは、アプリがフォアグラウンドで実行中であり、イベントを受信している状態を示す。アプリが起動され、「非アクティブ状態」に遷移してから例えば決められた時間が経過すると、矢印ｔ２に示すように、アプリは「非アクティブ状態」から「アクティブ状態」に遷移する。また、受信したイベントによりアプリが他の状態に遷移する際に、矢印ｔ３に示すように、アプリは、まず「アクティブ状態」から「非アクティブ状態」に遷移して、「非アクティブ状態」を経由してから他の状態に遷移する。
【００３７】
「バックグラウンド実行状態」とは、アプリがバックグラウンドで実行中である状態を示す。例えば、割り込みイベントが発生しているとき、オペレーティングシステム１１０は、発生したその割り込みイベントに対応する他のアプリをフォアグラウンドに移動させ、フォアグラウンドにあったアプリ１１１をバックグラウンドに移動させる。このとき、アプリ１１１は、「非アクティブ状態」を経由した後、矢印ｔ４に示すように、「非アクティブ状態」から「バックグラウンド実行状態」に遷移する。そして、上述した他のアプリは、矢印ｔ５に示すように「バックグラウンド実行状態」から「非アクティブ状態」に遷移する。
【００３８】
「一時停止状態」とは、アプリがバックグラウンドにあり、かつ、実行されていない状態を示す。例えば、「バックグラウンド状態」になってから決められた時間が経過すると、アプリは、矢印ｔ６に示すように、「バックグラウンド実行状態」から「一時停止状態」に遷移する。一方、割り込みイベントなどによりアプリの実行を再開する指示があった場合に、アプリは、矢印ｔ７に示すように、「一時停止状態」から「バックグラウンド実行状態」に遷移する。
【００３９】
さらに、例えばメモリ不足の検知などのイベントが発生したとき、オペレーティングシステム１１０は、フォアグラウンドにあるアプリの実行状態を確保するため、「一時停止状態」に遷移したアプリを制御部１１のＲＡＭから消去する。これにより、アプリは、矢印ｔ８に示すように「一時停止状態」から「非実行状態」に遷移する。すなわち、アプリは終了する。
【００４０】
図５の矢印ｔ１により示される状態遷移が生じたときとは、アプリの起動時である。また、図５の矢印ｔ５により示される状態遷移が生じたときとは、アプリのバックグラウンド処理からの復帰時である。図４に示す要求部１１１１は、図５の矢印ｔ１または矢印ｔ５により示される状態遷移が生じたときに、上述した起動証明書１２３２のメッセージ用署名Ｄ３を構成プロファイルの公開鍵証明書に含まれる公開鍵で検証するように要求する。これは、構成プロファイルの削除や組込みが、オペレーティングシステム１１０上で動く他のアプリがフォアグラウンドにあるときにのみ行われるからである。
【００４１】
つまり、アプリ１１１が起動されるときには、起動前に構成プロファイルが組込まれたり、削除されたりする機会がある。また、一度起動した後であっても、アプリ１１１がバックグラウンドに移動すると、アプリ１１１がバックグラウンドにある間に、フォアグラウンドにある他のアプリなどによって構成プロファイルが組込まれたり、削除されたりする機会がある。したがって、これらのタイミングで、アプリ１１１は、正規の構成プロファイル１２３１がオペレーティングシステム１１０に組込まれているか否かを判断する。
【００４２】
図４に示す表示制御部１１１２は、表示部１５に所定の画面を表示させる。所定の画面とは、アプリ１１１そのものによって提供される情報や、アプリ１１１が通信回線３を介してサーバ装置２などから取得する情報などであり、機密情報が含まれていてもよい。
【００４３】
指示部１１１３は、オペレーティングシステム１１０から応答された検証結果が、公開鍵証明書が正規でないことを示すものである場合に、表示制御部１１１２による所定の画面の表示を禁止する。そして、この場合に、指示部１１１３は、オペレーティングシステム１１０に正規の構成プロファイル１２３１を組込むことを指示する。
【００４４】
１−４．端末の動作
図６は、端末１で実行されるオペレーティングシステム１１０の動作を示すフロー図である。オペレーティングシステム１１０を実行する制御部１１は、アプリ１１１から起動証明書１２３２の検証結果（構成プロファイルの検査結果）を要求されたか否かを判断する（ステップＳ１０１）。検証結果（検査結果）を要求されていないと判断する間（ステップＳ１０１；ＮＯ）、制御部１１は、この判断を続ける。検証結果を要求されたと判断したとき（ステップＳ１０１；ＹＥＳ）、制御部１１は、起動証明書１２３２の検証処理（検査処理）を実行する（ステップＳ１０２）。
【００４５】
検証処理は以下の手順に従って行う。
アプリ１１１は検証結果を要求する際に、起動証明書１２３２を提示する。制御部１１は、オペレーティングシステム１１０に組込まれている公開鍵証明書の中から起動証明書１２３２の発行者の公開鍵を抽出し、この公開鍵と起動証明書１２３２とを用いて公開鍵自体を検証する。
【００４６】
制御部１１は、例えば、起動証明書１２３２に含まれるメッセージ用署名Ｄ３を上述した公開鍵を用いて復号して平文Ｐを生成し、この平文Ｐと、起動証明書１２３２に含まれるメッセージＭの固有情報とを比較して一致するか否か判断することによって、公開鍵自体の検証を行う。
【００４７】
検証が成功した場合に、この公開鍵は、第１公開鍵Ｄ２２であり、制御部１１は、起動証明書１２３２についての成功した検証結果を応答する。一方、検証が失敗した場合に、制御部１１は、起動証明書１２３２についての失敗した検証結果を応答する（ステップＳ１０３）。
【００４８】
図７は、端末１で実行されるアプリ１１１の動作を示すフロー図である。アプリ１１１を実行する制御部１１は、アプリ１１１が最初に起動されたか否か、すなわち、アプリ１１１が起動直後であるか否かを判断する。アプリ１１１が起動直後であると判断する場合（ステップＳ２０１；ＹＥＳ）、制御部１１は、処理をステップＳ２０３に進める。アプリ１１１が起動直後でないと判断する場合（ステップＳ２０１；ＮＯ）、制御部１１は、アプリ１１１がバックグラウンド処理から復帰したか否か、すなわち、アプリ１１１が復帰直後であるか否かを判断する（ステップＳ２０２）。アプリ１１１が起動直後でもなく、バックグラウンド処理からの復帰直後でもないと判断する場合（ステップＳ２０２；ＮＯ）、制御部１１は、処理をステップＳ２０１に戻す。アプリ１１１がバックグラウンド処理からの復帰直後であると判断する場合（ステップＳ２０２；ＹＥＳ）、制御部１１は、処理をステップＳ２０３に進める。
【００４９】
ステップＳ２０３において、制御部１１は、オペレーティングシステム１１０に対し、アプリ１１１に組込まれていた構成プロファイル１２３１が正常にオペレーティングシステム１１０に組込まれているか否かを確かめるために、起動証明書１２３２を検証した検証結果（検査結果）を要求する（ステップＳ２０３）。そして、オペレーティングシステム１１０から検証結果が応答されると、制御部１１は、その検証結果（検査結果）を取得し（ステップＳ２０４）、構成プロファイル１２３１が正常にオペレーティングシステム１１０に組込まれているか否かを判断する（ステップＳ２０５）。
【００５０】
構成プロファイル１２３１が正常にオペレーティングシステム１１０に組込まれていると判断する場合（ステップＳ２０５；ＹＥＳ）、制御部１１は、所定の画面を表示部１５により表示することを許可する（ステップＳ２０６）。一方、構成プロファイル１２３１が正常にオペレーティングシステム１１０に組込まれていないと判断する場合（ステップＳ２０５；ＮＯ）、制御部１１は、所定の画面を表示部１５により表示することを禁止し（ステップＳ２０７）、オペレーティングシステム１１０に対して、正規の構成プロファイルを組込むことを指示する（ステップＳ２０８）。
【００５１】
以上により、アプリ１１１は、証明書が付された正規の構成プロファイルがオペレーティングシステム１１０に組込まれていない限り、所定の画面を表示部１５に表示させることを禁じるので、その起動中の画面が複製されないことが保証される。
【００５２】
２．変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組み合わせてもよい。
【００５３】
２−１．変形例１
上述した実施形態において、構成プロファイルが正規でないと判断する場合に、制御部１１は、所定の画面を表示部１５により表示することを禁止し、オペレーティングシステム１１０に対して、正規の構成プロファイルを組込むことを指示していたが、さらに、この正規の構成プロファイルを要求するクライアントプログラムを起動するように、オペレーティングシステム１１０に対して指示してもよい。
【００５４】
この場合、図４に示す指示部１１１３は、検査部１１０３から応答された検証結果が、構成プロファイルが正規ではないことを示すとき、オペレーティングシステム１１０に対して、例えば、ＵＲＩ（Uniform Resource Identifier）を指定してそのＵＲＩで所在が示されるサイトにアクセスするためのブラウザ１１３を起動するように指示する。
【００５５】
なお、アプリ１１１に上述したＵＲＩがそのまま記述されていると、端末１で起動されている他のアプリからそのＵＲＩが盗まれる可能性がある。そこで、アプリ１１１は、アプリ１１１の実行時に生成される値を少なくとも一部に組込んだＵＲＩをオペレーティングシステム１１０に指定してもよい。例えば、アプリ１１１は、その実行時に例えば「ｈｔｔｐｓ：／／ｌｏｃａｌｈｏｓｔ：２３４／ＤＳＰ／ｐｒｏｆｉｌｅ．ｈｔｍｌ」といった文字列で表されるＵＲＩをオペレーティングシステム１１０に対して指定してブラウザ１１３の起動を促す。この文字列のうち「２３４」はポート番号を表しているが、このポート番号は、例えば、日時などを種とした擬似乱数を基に生成される。これにより、起動前のアプリ１１１を参照してこのアプリ１１１が指定するＵＲＩを他のアプリが盗もうとしても、ＵＲＩの少なくとも一部が組込まれていないため失敗する可能性が高い。
【００５６】
ブラウザ１１３を起動するように指示されると、オペレーティングシステム１１０は、図４に破線で示す起動部１１０４として機能する。起動部１１０４は、指示されたブラウザ１１３を記憶部１２から読み出して起動する。
【００５７】
ブラウザ１１３は、アプリ１１１に対して正規の構成プロファイルを要求するクライアントプログラムである。ブラウザ１１３は、例えば、ウェブブラウザであり、指示部１１１３によって指定されたＵＲＩによりデータの所在を特定し、ｈｔｔｐ（Hypertext Transfer Protocol）リクエストなどによってそのデータを要求する。ブラウザ１１３が制御部１１により実行されると、制御部１１は、図４に破線で示す構成プロファイル要求部１１３１として機能する。構成プロファイル要求部１１３１は、正規の構成プロファイル１２３１をアプリ１１１に要求する。
【００５８】
アプリ１１１は、ウェブサーバとしての機能を内蔵しており、上述したとおり内部に正規の構成プロファイル１２３１を記憶している。ブラウザ１１３から、例えば、上述したＵＲＩを用いて正規の構成プロファイル１２３１が要求されると、アプリ１１１は、図４に破線で示す供給部１１１４として機能する。供給部１１１４は、ブラウザ１１３の要求に応じて、正規の構成プロファイル１２３１とプロファイル用署名１２３３との組をブラウザ１１３に供給する。供給された正規の構成プロファイル１２３１およびプロファイル用署名１２３３は、ブラウザ１１３によって記憶部１２の構成プロファイル領域１２１に対応付けて記憶され、組込部１１０１によりオペレーティングシステム１１０に組込まれる。なお、アプリ１１１の上述したウェブサーバとしての機能は、アプリ１１１が実行されている端末１において実行されているクライアントプログラムからの要求のみを受け付ける機能に限定されていてもよい。なお、アプリ１１１は、オペレーティングシステム１１０に対してＵＲＩを指定する一方、オペレーティングシステム１１０が起動したブラウザ１１３からそのＵＲＩを用いて正規の構成プロファイル１２３１を要求されるので、例えば、ＵＲＩに擬似乱数を組込んだときに、その擬似乱数を含むＵＲＩを正規の構成プロファイル１２３１を供給する正しいＵＲＩと決定すればよい。
【００５９】
この変形例において、オペレーティングシステム１１０を実行する制御部１１の動作は、図６に破線で示したステップを含む。すなわち、検証結果を要求されていないと判断する場合（ステップＳ１０１；ＮＯ）、制御部１１は、ブラウザ１１３の起動を要求されたか否か判断する（ステップＳ１０４）。ブラウザ１１３の起動を要求されていないと判断する間（ステップＳ１０１；ＮＯ）、制御部１１は、処理をステップＳ１０１に戻す。ブラウザ１１３の起動を要求されていると判断する場合（ステップＳ１０１；ＹＥＳ）、制御部１１は、要求されたブラウザ１１３を起動し、アプリ１１１が正規の構成プロファイル１２３１を供給するためのＵＲＩにアクセスさせる（ステップＳ１０５）。
【００６０】
この変形例において、アプリ１１１を実行する制御部１１の動作は、図７に破線で示したステップを含む。すなわち、構成プロファイルが正規でないと判断する場合（ステップＳ２０５；ＮＯ）、制御部１１は、所定の画面を表示部１５により表示することを禁止し（ステップＳ２０７）、オペレーティングシステム１１０に対して、正規の構成プロファイル１２３１を組込むことを指示する（ステップＳ２０８）。そして、さらに、制御部１１は、上述したブラウザ１１３の起動をオペレーティングシステム１１０に要求する（ステップＳ２０９）。なお、この場合におけるステップＳ２０７からステップＳ２０９までの順序はこれに限られない。
【００６１】
この変形例の構成によれば、端末１は、アプリ１１１から直接、正規の構成プロファイル１２３１を取得するので、正規の構成プロファイル１２３１が通信回線３を介して接続されたサーバ装置２など外部装置に見つからない場合であっても、アプリ１１１が管理する所定の画面を表示部１５に表示させることが可能である。また、この構成によれば、通信回線３に接続できない状況においても、オペレーティングシステム１１０に正規の構成プロファイル１２３１を組込むことが可能である。
【００６２】
２−２．変形例２
例えば、記憶部１２の構成プロファイル領域１２１は、利用者に対してアクセス制限がかけられていてもよい。具体的には、利用者が構成プロファイル領域１２１に構成プロファイルを記憶させるための操作をすると、オペレーティングシステム１１０は、コード証明書Ｅから得られる第２公開鍵によって、構成プロファイルが改ざんされているか否か判断してもよい。そして、構成プロファイルが改ざんされていないと判断された場合にのみ、この構成プロファイルを正規の構成プロファイルとして構成プロファイル領域１２１へ記憶する。さらに、オペレーティングシステム１１０は、正規の構成プロファイルとして構成プロファイル領域１２１に記憶されたその構成プロファイルを組込むようにすればよい。これにより、上述したアクセス制限が解除されていない限り、構成プロファイルが構成プロファイル領域１２１に記憶されていることを以って、その構成プロファイルが改ざんされていないこと、およびその構成プロファイルがオペレーティングシステム１１０に組込まれていることが保証される。
【００６３】
この場合、オペレーティングシステム１１０は、組込んだ構成プロファイルを除外する際に、この構成プロファイルを構成プロファイル領域１２１から削除または移動するようにすればよい。そして、アプリ１１１から起動証明書１２３２の検証結果を要求されたとき、制御部１１は、構成プロファイル領域１２１から構成プロファイルを読み出して、その構成プロファイルに含まれる公開鍵証明書から抽出した公開鍵と、起動証明書１２３２とを用いて公開鍵自体を検証するだけでよい。公開鍵が正規のものであると判断されたときに、制御部１１は、その旨の検証結果を応答すればよい。また、削除または移動により上記の構成プロファイルが記憶されていなければ、制御部１１は、その構成プロファイルが正規のものではないとする検証結果を応答すればよい。要するに、制御部１１は、構成プロファイルの検証結果を要求されたと判断したとき、その要求に応じてその検証結果を応答すればよい。
【００６４】
２−３．変形例３
上述した実施形態において、端末１の制御部１１によって実行されるアプリは、通信回線３を介してサーバ装置２から配布されていたが、アプリは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な媒体に記憶された状態で提供されてもよい。この場合、配布システム９はなくてもよく、端末１は、これらの媒体に記憶されたアプリを記憶部１２に複製することができればよい。なお、上記の制御部１１によって例示した制御手段としてはＣＰＵ以外にも種々の装置が適用される場合があり、例えば、専用のプロセッサなどが用いられる。
【００６５】
２−４．変形例４
上述した実施形態において、アプリ１１１は、オペレーティングシステム１１０が組込んだ構成プロファイルが正規の構成プロファイルであるか否かを確かめるために、起動証明書１２３２のメッセージ用署名Ｄ３を、オペレーティングシステム１１０に組込まれた構成プロファイルの公開鍵証明書に含まれる公開鍵で検証するように要求していたが、構成プロファイルが正規の構成プロファイルであるか否かを、オペレーティングシステム１１０により検査することができる場合には、直接、この検査をオペレーティングシステム１１０に対して要求してもよい。ここでいう「構成プロファイルの検査」とは、オペレーティングシステム１１０が正規の構成プロファイルを組込んでいるか否かを判断する検査である。
【００６６】
なお、上述した実施形態において、この「構成プロファイルの検査」は、オペレーティングシステム１１０により直接行うことができないため、アプリデータ１２３に含まれる起動証明書１２３２が、第１公開鍵Ｄ２２と対をなす第１私有鍵によって生成されたものであるか否かを判断することにより行われている。
【００６７】
上述した実施形態では、起動証明書１２３２が、第１公開鍵Ｄ２２と対をなす私有鍵によって生成されたものであると判断されるとき、この第１公開鍵Ｄ２２を含む構成プロファイル１２３１は、正規の構成プロファイルであると判断される。この際、起動証明書１２３２は第１公開鍵Ｄ２２と対をなす第１私有鍵で署名されているので、構成プロファイルとして供給されている第１公開鍵Ｄ２２がオペレーティングシステムに組込まれていれば、起動証明書１２３２が第１公開鍵Ｄ２２と対をなす私有鍵によって生成されたものであると判断され、すなわち構成プロファイルが正規のものとして判定されることになる。
【００６８】
一方、第１公開鍵Ｄ２２を含む構成プロファイルがオペレーティングシステム１１０に組込まれていない場合は、その構成プロファイルは非正規のもの（または、オペレーティングシステム１１０が正規の構成プロファイルを組込んでいない）と判断される。また、オペレーティングシステム１１０が構成プロファイルを１つも組込んでいない場合や、組込んだ構成プロファイルに公開鍵証明書が含まれていない場合、組込んだ構成プロファイルに含まれた公開鍵証明書の検証に失敗した場合などにおいても、オペレーティングシステム１１０の検査部１１０３は、アプリ１１１に対して、構成プロファイルが正規ではないことを示す検査結果を応答する。
【００６９】
２−５．変形例５
端末１には、外部の装置を接続するインターフェイスが設けられていてもよい。この場合、端末１と外部の表示装置との接続状態を、オペレーティングシステム１１０が検知してアプリ１１１に通知するようにしてもよい。
【００７０】
この場合、例えば、アプリ１１１は、オペレーティングシステム１１０に対して、端末１に外部の表示装置が接続したり、既に接続している外部の表示装置が切断されたりしたときに、これらを検知して通知するよう要求する。オペレーティングシステム１１０は、この要求に応じて、上述したインターフェイスを監視し、端末１と外部の表示装置との接続状態をアプリ１１１に通知する。アプリ１１１は、端末１と外部の表示装置との接続状態の通知を受け、例えば端末１に１つ以上、外部の表示装置が接続されている場合に、画面の表示を禁止するようオペレーティングシステム１１０に要求すればよい。この要求を受けたオペレーティングシステム１１０は、アプリ１１１によって生成される画面の表示を禁止する。この場合、禁止した画面に代えて「アプリを正常に実行するため、接続されている表示装置を全て外して下さい」などの警告を表示させてもよい。
【００７１】
一方、接続されている外部の表示装置が全て外され、端末１の制御下の表示デバイスが表示部１５のみになったときに、アプリ１１１は、上述した画面の表示を禁止する要求を解除すればよい。これにより、表示部１５以外の表示デバイスにアプリ１１１で生成される画面が表示される可能性が低減される。
【００７２】
２−６．変形例６
上述した実施形態で、構成プロファイル１２３１は、「スクリーンショットを禁止する」といった画面を複製する機能を制限するための設定Ｄ１を含んでいたが、これ以外の所定の機能（以下、第１の機能という）を制限するための設定を含んでいてもよい。すなわち、構成プロファイルは、オペレーティングシステムに組込まれることにより、端末１の第１の機能を制限するための、証明書が付されたデータであればよい。端末１で実行されるオペレーティングシステムは、この構成プロファイルを組込むと、端末１自身の上述した第１の機能を制限し、組込んだ構成プロファイルが正規のデータであるか否かの検査結果を要求されると、その要求に応じてその検査結果を応答すればよい。
【００７３】
この場合、制御部１１により実現される指示部１１１３は、オペレーティングシステム１１０から応答された検査結果が、公開鍵証明書が正規でないことを示すものであるとき、アプリ１１１を実行することによって提供される端末１の機能（以下、第２の機能という）を制限するようにしてもよい。この第２の機能は、上述した表示制御部１１１２による所定の画面の表示のほか、例えば、所定の音声の出力や、所定の演算の実行などが挙げられる。つまり、表示制御部１１１２は、第２の機能を提供する提供手段の一例である。そして、例えば、所定の音声を出力する機能を第２の機能とする場合、スピーカシステムを制御してその音声を出力させる音声制御部は、第２の機能を提供する提供手段に該当する。
【００７４】
なお、設定Ｄ１により制限される「第１の機能」には、例えば、特定のネットワークやサーバ装置へのアクセス機能、音声などの再生機能、特定のアプリやウィジェットなどの起動機能、有線または無線通信インターフェイスによる通信機能、などが挙げられる。
【００７５】
また、上述した実施形態で指示部１１１３は、構成プロファイル１２３１に含まれる設定Ｄ１に従って第１の機能を制限していたが、設定Ｄ１は特定の設定をするものであればよい。この場合「特定の設定」には、無線ＬＡＮへの接続の設定、プリンタへの接続の設定、電子メールアカウントの設定、仮想プライベートネットワークへの接続情報の設定、パスワード制限の設定、特定の電子証明書を導入するための設定、などが挙げられる。これにより端末１は、公開鍵証明書が正規でないことを示すものであるとき、オペレーティングシステム１１０に正規の構成プロファイル１２３１を組込むことを指示して、上述した特定の設定を組込むように強制することができる。
【要約】
オペレーティングシステム１１０は、証明書が付された、画面を複製する機能を制限するためのデータを組込むと自身のその機能を制限し、組込んだそのデータが正規のデータであるか否かの検査結果を要求されるとその検査結果を応答する。アプリ１１１は、起動時またはバックグラウンド処理からの復帰時にオペレーティングシステム１１０に対して組込んだデータの検査結果を要求する。アプリ１１１は応答された検査結果が、データが正規ではないことを示す場合に、表示制御手段による所定の画面の表示を禁止して、正規のデータをオペレーティングシステムに組込むことを指示する。検査結果が、データが正規であることを示す場合に、アプリ１１１は表示手段に所定の画面を表示させる。【図１】
0005899384.tif 000002
【図２】
0005899384.tif 000003
【図３】
0005899384.tif 000004
【図４】
0005899384.tif 000005
【図５】
0005899384.tif 000006
【図６】
0005899384.tif 000007
【図７】
0005899384.tif 000008