以下、図面を参照しながら、本発明の一実施形態を説明する。
(第1の実施形態)
図1は情報操作装置1からネットワーク2経由で機器操作命令を送信して情報出力装置(第2通信装置)3を遠隔操作する情報処理システム4の全体構成の一例を示すブロック図である。図1の情報処理システム4は、ウェブアプリケーションをサーバから受信して遠隔機器操作命令を含むプログラムを実行する情報操作装置1と、映像等を表示する情報出力装置3と、アプリケーションを配布するWebアプリ配布サーバ(第1通信装置)5とを備えている。情報操作装置1とWebアプリ配布サーバ5はインターネット等のネットワーク2で接続され、同様に、情報操作装置1と情報出力装置3もネットワーク2で接続され、ネットワークインタフェースを介して情報の送受を行う。ここで、ウェブアプリケーションの構成部品であるページファイルやメディアファイルは、サーバ(Webアプリ配布サーバ5)上で管理され、URL(Uniform Resource Locator)と呼ばれる位置識別子で格納位置が特定される。
情報操作装置1は、共通のバス11に接続された、CPU12、主記憶13、ディスプレイ14、入力機器15、ネットワークインタフェース部16、およびストレージ部17を有する。入力機器15は、マウス、キーボード、およびタッチパネル等である。ストレージ部17は、ウェブアプリケーション(Webアプリ)とプラットホームアプリケーション(以下、PFアプリ)を格納している。WebアプリはWebアプリ実行部21で実行され、PFアプリはPFアプリ実行部(アプリ認証処理部22)で実行される。Webアプリの内部には、ソフトウエアモジュールである、IPコネクション管理部24、入力受信部25、HTTP処理部26およびアプリ出所付与部27が含まれている。
情報出力装置3は、ネットワークインタフェース部31と、情報操作装置1から送信された機器操作命令を処理する機器操作命令処理部32とを有する。
Webアプリ配布サーバ5は、ネットワークインタフェース部41と、ストレージ部42とを有する。ストレージ部42には、後述するように、ページファイル42aとメディアファイル42bが格納される。
情報操作装置1でWebアプリを実行する際には、下準備として、Webアプリの実行環境であるアプリ実行部プログラムの実行を行う。この際、情報操作装置1のCPU12で実行されているOSなどのシェルプログラムがユーザの要求等に従い、アプリ実行部プログラムを情報操作装置1内のストレージ部から読み取る。また、CPU12は読み取ったアプリ実行部プログラムを主記憶13に保存し、アプリ実行部プログラムを実行する。
Webアプリは、ユーザもしくはプログラムにてページファイルのURLを指定することにより実行開始される。その際、CPU12はネットワークインタフェース部16に対して指定URLのページファイルの取得命令を出す。ネットワークインタフェース部16は指定URLのサーバに接続し、該当ファイルのダウンロード命令を発行する。
Webアプリ配布サーバ5のネットワークインタフェース部41はストレージ部42から該当ファイルを読み取って情報操作装置1に返信する。情報操作装置1のネットワークインタフェース部16は該当ファイルを主記憶13に配置する。ページファイルにはアプリケーションが利用するメディアファイルのURLが列挙されており、ページファイルと同様にCPU12はネットワークインタフェース部16にこれらのファイルについてもダウンロード命令を発行し、ダウンロードされたファイルを主記憶13やストレージ部17に配置する。
実行に必要なファイルが用意された時点で、アプリ実行部プログラムは主記憶13やストレージ部17に配置されたページファイルをCPU12が解釈できる命令に変換してCPU12で実行する。ページファイルに含まれる配置データに従い、実行結果は情報操作装置1のディスプレイ14に出力される。配置データには別のページファイルを表示および実行するためのボタン(リンク)が存在し、そのページファイルのURL情報が含まれる。ユーザ要求などによりそのボタンが選択されると、アプリ実行部プログラムは新たにページファイルのダウンロード要求を出し、そのページファイルで利用するメディアファイルも含めて、必要なファイルがそろった時点で新しいページファイルの表示および実行を開始する。
このページファイルなどに含まれるJavaScript(登録商標)と呼ばれるスクリプト言語を介して、HTTPやWebSocketプロトコルと呼ばれるプロトコルでHTTPサーバもしくはWebSocketサーバと通信することができる。すなわち、Webアプリ配布サーバ5側でHTTPやWebSocketを介した操作機能を提供する場合には、JavaScriptプログラムを用いて遠隔操作を行うことができる。Webアプリによりアプリケーション開発者は遠隔操作アプリケーションを簡単に作成できるが、このとき何もWebアプリ配布サーバ5側でアクセス制御を行わなければ、不正なWebアプリから遠隔操作が行われてしまうという危険性もある。このため、Webアプリを識別する情報として、WebSocketヘッダやHTTPヘッダに含まれるURL情報(Origin情報)がある。このURL情報を用いて情報出力装置3側でアクセス制御を行うことで、特定のサーバ上にあるWebアプリにのみ遠隔操作を許可することが出来るようになる。
しかしながら、HTTPやWebSocketプロトコルは公開情報であるため、HTTPやWebSocketプロトコルのURL情報を偽装するWebアプリの実行環境(以下、プラットホーム)が出現した場合には対処することが出来ない。このため、何らかの情報を用いてWebアプリが正しいプラットホーム上で動作していることをHTTPサーバやWebSocketサーバに伝える必要がある。正しいプラットホームであれば、そのプラットホームが付与したURL情報は信用できるためである。この情報として例えば、Webアプリ側で共通鍵を用いて機器操作命令を暗号化して送るといった解決策が考えられるが、Webアプリのページファイルはプレーンテキストで記述されており、機密情報を格納することはできないため、共通鍵の格納方法が問題になる。
また、Webアプリの難読化処理を行うことにより共通鍵を取得できにくくする手法もあるが、最終的にはブラウザが解釈可能な形式に変換されるため、比較的容易に共通鍵を取得できてしまい、セキュリティ強度に問題がある。
別の手法として、プラットホーム側で機器操作命令を暗号化することも考えられるが、プラットホームの実体であるブラウザに機器操作命令の暗号化機能を加えると、既存ブラウザへの変更が大規模になってしまい、得策でない。
HTTPやWebSocketプロトコルを用いて情報出力装置3の遠隔操作を行う際、操作を要求しているWebアプリの出所情報(URL情報)を用いてアクセス制御を行うことも考えられるが、HTTPやWebSocketプロトコルのヘッダに含まれるURL情報は信頼できない場合がある。なぜなら、HTTPやWebSocketプロトコルは仕様が公開されたプロトコルであり、詐称したURL情報を送るプラットホーム(偽ブラウザ)を開発することは比較的容易なためである。正しくアクセス制御を行うためには、操作を要求しているWebアプリが正しいプラットホーム上で動作し、URL情報が信頼できることを情報出力装置3に対して保証する必要がある。
以上の観点から、図1の情報処理システム4は、情報操作装置1が実行するWebアプリのURL情報が信頼できることを情報出力装置3に対して保証できるようにしている。
図2は第1の実施形態における情報操作装置1の内部構成を示すブロック図である。図2の情報操作装置1は、Webアプリを実行するWebアプリ実行部21と、PFアプリを実行するPFアプリ実行部22と、このPFアプリ実行部22の内部に設けられるアプリ認証処理部23と、情報出力装置3に機器操作命令と認証トークン(プラットホーム認証子)を送信する制御を行うIPコネクション管理部24と、ユーザ入力を受け付ける入力受信部25と、Webアプリ配布サーバ5からWebアプリを取得するHTTP処理部26と、Webアプリの出所情報を認証トークンに付与するアプリ出所付与部27と、情報出力装置3を検索する処理を行う機器検索処理部28と、ウェブアプリケーションを取得するための第1のコネクションの確立処理を行い、ウェブアプリケーションを受信する第1コネクション部33と、情報出力装置3との第2のコネクションを確立して認証要求を送信するとともに認証要求子を受信する第2コネクション部34と、情報処理装置3との第3のコネクションを確立して機器操作命令と出所情報が付与されたプラットホーム認証子を送信する第3コネクション部35と、機器検索を行うための第4のコネクションを確立して機器検索命令の送信を行うとともに検索結果を受信する第4コネクション部36とを有する。
アプリ認証処理部23は、Webアプリが正しいプラットホーム上で動作していることを保証する認証子(認証トークン)を生成する。
Webアプリ実行部21は、ブラウザ上で動作するWebアプリを実行するための実行環境であるブラウザ機能を有する。PFアプリ実行部22が実行するPFアプリは、直接計算機が実行できる命令形式で構成されるネイティブアプリケーションである。一方、Webアプリは、一般にプレーンテキスト形式で記述されたHTMLやJavaScriptファイル、これらから利用される各種メディアファイルなどである。
Webアプリ実行部21が実行するWebアプリとPFアプリ実行部22が実行するPFアプリは別々に開発できるが、Webアプリ実行部21は一般に仕組みが複雑で新たな機能追加は困難である。何らかの特有の機能を実現したい場合には、アプリ認証処理部23で目的機能を実現することができれば、ブラウザ内部を変更するよりも開発コストを下げて開発を行うことができる。また、Webアプリの記述言語であるHTMLやJavaScriptには秘密情報を含ませることは困難だが、PFアプリはネイティブアプリケーションであるため、秘密情報の保護強度を高くできる。
一方、PFアプリは、ブラウザの内部データ(例えばコネクションのデータや通信するデータ)を操作することが原則できず、ブラウザにより外部操作用インタフェースが公開されていない場合のみ、ブラウザの内部データを操作できるため、自由度は低くなる。
Webアプリ実行部21は、HTMLやJavaScriptで記述されたWebアプリおよびWebアプリが参照する動画像や音声などのメディアファイルを取得し、実行および表示を行う機能を有する。Webアプリ実行部21は、ユーザ入力を受け付ける入力受信部25や後述する認証要求部からのアプリ実行要求を契機として、Webアプリの取得をHTTP処理部26に要求し、取得したWebアプリの実行を開始する。
加えて、Webアプリ実行部21は、WebアプリのJavaScript等で記述されたプログラムに遠隔機器操作命令が含まれる場合には、アプリ認証処理部23に対して正規プラットホーム上でアプリが実行されていることを保証する認証子(認証トークン)の取得を依頼する機能を有する。アプリ認証処理部23は、取得した認証トークンを、情報出力装置3の位置を識別するための情報(例えばFully Qualified Domain Name(FQDN)やIPアドレス)とともにアプリ出所付与部27に渡す。アプリ出所付与部27は、認証トークンにアプリの出所の位置識別子(例えばURL情報やOrigin情報)を付与する。ここで、Origin情報とはURLのドメイン部分であり、例えばhttp://www.toshiba.com/application_1/から取得したアプリケーションであればOriginはwww.toshiba.comとなる。
アプリ出所付与部27は、アプリの出所の位置識別子を付与した認証トークンを情報出力装置3とのコネクションを管理する第3コネクション部35を用いて情報出力装置3に送信するよう、IPコネクション管理部24に指示する。IPコネクション管理部24は、第3コネクション部35に認証トークンを送るための第3のコネクション確立を指示して第3のコネクションを確立させて、その後に、第3コネクション部35は認証トークンを情報出力装置3に送る。これにより、情報出力装置3は認証トークンが送られてきた第3のコネクションが正規のプラットホームにより確立されたコネクションであることを判別できる。また、情報出力装置3は、アプリの出所についても正規プラットホームにより付与されたものであることを判別できる。情報出力装置3側にいったん認証トークンが送信されると、再度別のコネクションで同一の認証トークンが送信されると、認証無効とされる(ワンタイムパスワードとする)。これにより、情報セキュリティを向上できる。
Webアプリ実行部21はさらに機器操作命令を生成する機能を有し、IPコネクション管理部24に対して第3コネクション部35を利用して送信することを依頼する機能を有する。このため、IPコネクション管理部24は第3コネクション部35を利用して機器操作命令を情報出力装置3に対して送る機能を有する。情報出力装置3は既に第3コネクション部35により認証トークンが送られているため、第3のコネクションが正規プラットホームにより確立されたコネクションであることが判別できているため、同じコネクションにより送られた機器操作命令についても正規プラットホーム上で動作するアプリケーションから送られていると判断でき、アプリケーションの出所についても正しく判別することが出来る。
アプリ認証処理部23は、Webアプリ実行部21からの認証トークン生成要求に対して、認証トークンを生成してWebアプリ実行部21に渡す機能を有する。情報出力装置3が操作元のプラットホームが正しいことを検証するためには、情報出力装置3とアプリ認証処理部23が認証を行う必要がある。このため、アプリ認証処理部23は情報出力装置3と第2のコネクションが確立されていない場合にはIPコネクション管理部24を通じて第2コネクション部34に対して第2のコネクションの確立要求を出してコネクションを確立し、認証を要求する機能を有する。認証方式としてはパスワード認証、チャレンジ・アンド・レスポンスなど一般によく知られた方式を用いればよい。例えば認証方式としてチャレンジ・アンド・レスポンスを利用する場合には、アプリ認証処理部23はIPコネクション管理部24を通じて第2コネクション部34を指定して第2のコネクションにより認証要求を送り、情報出力装置3から認証要求子であるチャレンジを受け取り、レスポンスを生成して認証子(認証トークン)としてWebアプリ実行部21に渡す機能を有する。この後、Webアプリ実行部21が第3コネクション部35を指定してIPコネクション管理部24から当該レスポンスを送れば、認証完了となる。また、通常のパスワード認証を用いる場合には、アプリ認証処理部23が情報出力装置3に対して第2コネクション部34を指定してIPコネクション管理部24からパスワードを送信し、認証結果として情報出力装置3から受け取ったランダムな文字列をWebアプリ実行部21に渡し、Webアプリ実行部21が第3コネクション部35を指定してIPコネクション管理部24により当該文字列を送り、情報出力装置3が送った文字列と受け取った文字列が一致すれば第3のコネクションが正当なものであることが証明できる。
このように、第2のコネクションと第3のコネクションを分離することにより、情報出力装置3にWebアプリケーションに対して秘匿すべき情報、もしくは改ざんされては困る情報を送る際に、第2のコネクションを用いて秘匿すべきもしくは改ざんされて困る情報を送ることで、Webアプリケーションは第1のコネクションで送受信されるデータのみにアクセスできるため、情報を秘匿し、改ざんを防止することができる。
IPコネクション管理部24は、上述した第1乃至第4コネクション部33〜36を含む複数のコネクション部を識別し、IPコネクション管理部24の呼出し元から指定されたコネクション部を利用してデータを送信する。
第1コネクション部33はIPコネクション管理部24から呼び出され、IPコネクション管理部24から指定されたWebアプリ配布サーバの位置情報とアプリケーションの位置情報を受け取り、Webアプリ配布サーバ5とのコネクションである第1のコネクションを確立したのち、Webアプリケーションを取得してIPコネクション管理部24に返す機能を有する。
第2コネクション部34はIPコネクション管理部24から呼び出され、IPコネクション管理部24から指定された情報出力装置3の位置情報を受け取り、第2のコネクションが確立されていない場合には確立を行い、情報出力装置3に認証要求を送信し、さらに情報出力装置3から認証要求子を受信してIPコネクション管理部24に返却する機能を有する。
第3コネクション部35はIPコネクション管理部24から呼び出され、IPコネクション管理部24から指定された情報出力装置3の位置情報を受け取り、第3のコネクションが確立されていない場合には確立を行い、IPコネクション管理部24から渡された認証トークンや機器操作命令を送信する機能を有する。
第4コネクション部36はIPコネクション管理部24から呼び出され、IPコネクション管理部24から受け取った機器検索命令を第4のコネクションを確立して送信し、受信した機器検索結果をIPコネクション管理部24に返す機能を有する。
図3は図2の情報操作装置1内のWebアプリ実行部21とアプリ認証処理部23の内部構成を示すブロック図である。図3では、PFアプリ実行部22を省略しているが、図2と同様に、アプリ認証処理部23はPFアプリ実行部22の内部に設けられている。以下、図3を用いて情報処理装置の詳細構成を説明する。
Webアプリ実行部21は、Webアプリを表示および実行する機能を有するページ実行部51(いわゆるウェブブラウザ)と、Webアプリから自分自身が正規プラットホーム上で動作していることを証明する認証子(認証トークン)を要求する機能を有する認証要求部52と、遠隔機器操作命令を生成する機能を有する操作命令生成部53と、機器操作命令を送信する機能を有する操作命令送信部54と、認証トークンを送信する機能を有する認証トークン送信部55とを有する。
ウェブブラウザからなるページ実行部51以外の認証要求部52、操作命令生成部53、操作命令送信部54および認証トークン送信部55は、Webアプリ内のソフトウエアモジュールである。
アプリ認証処理部23は、正しいプラットホームであることを証明するための認証トークンを生成する機能を有する認証トークン生成部61と、アプリケーションが最初に表示するページのURLを管理する機能を有する開始アプリURL管理部62と、認証トークンを生成するための鍵を管理する機能を有する鍵管理部63と、HTTPサーバやWebSocketサーバに対して認証要求を行う機能を有する認証処理部64とを有する。
アプリ認証処理部23とWebアプリ実行部21を分離することにより、Webアプリ実行部21側に秘密の情報を格納することなく、安全にプラットホームの正当性を保証するための認証トークンを生成できるようになる。
Webアプリ実行部21内のページ実行部51は、入力受信部25や開始アプリURL管理部62からWebアプリの開始要求と開始位置情報(開始URL情報)を受け取り、Webアプリの実行を行う機能を有する。ページ実行部51は、開始要求を受け取った場合には、HTTP処理部26に対して開始URL情報を渡し、当該Webアプリの取得を行う。さらに習得したWebアプリに記述された処理内容を元にWebアプリの実行を行う機能を有する。さらに認証要求がWebアプリに含まれる場合に、情報出力装置3の位置情報(例えばIPアドレス)を指定して認証要求部52を呼び出して認証トークンを取得した後、認証トークン送信部55に認証要求部52から取得した認証トークンを渡して呼び出す機能を有する。また、操作要求がWebアプリに含まれる場合に、機器操作命令の識別子を指定して操作命令生成部53を呼び出して機器操作命令を生成し、操作命令送信部54に機器操作命令を指定して呼び出す機能を有する。また、ページ実行部51は実行中のアプリの出所の位置情報をアプリ出所付与部27からの要求に従って渡す機能を有する。
認証要求部52は、ページ実行部51から情報出力装置3の位置情報を受け取り、アプリ認証処理部23の認証トークン生成部61を呼び出す機能を有する。また、認証トークン生成部61から認証子(認証トークン)を受け取り、ページ実行部51に渡す機能を有する。後述するように、認証子を多重に暗号化する場合にはユーザにパスワードを入力させ、そのパスワードを認証トークン生成部61に渡してもよい。
認証トークン送信部55は、ページ実行部51から情報出力装置3の位置情報と認証トークンを受け取り、情報出力装置3の位置情報と認証トークンをアプリ出所付与部27に渡して呼び出す機能を有する。また、認証トークン送信部55はアプリ出所付与部27からコネクション部の識別子(第3コネクション部35の識別子)を受け取って、主記憶13等に保存する機能を有する。
操作命令生成部53は、ページ実行部51から機器操作命令の種別を受け取って、特定のフォーマットで機器操作命令を生成し、ページ実行部51に渡す機能を有する。このフォーマットは情報出力装置3と操作命令生成部53の間で予め取り決めておけばフォーマットの詳細形式は問わない。
操作命令送信部54はページ実行部51から機器操作命令を受け取って、認証トークン送信部55が主記憶13等に保存したコネクション部の識別子を取得し、機器操作命令を送信メッセージ、送信先を第3コネクション部35としてIPコネクション管理部24に渡して呼び出す機能を有する。このとき、当該コネクションが切断されない限り、複数回の機器操作命令を認証トークンを再送することなく送信することができる。
アプリ出所付与部27は、認証トークン送信部55から認証トークンと情報出力装置3の位置情報を受け取って、認証トークンにアプリの出所の位置情報(URL情報)をページ実行部51から取得して付与する。また、認証トークンにアプリ出所情報を付与したものを送信メッセージ、送信先を情報出力装置3の位置情報としてIPコネクション管理部24に渡して呼び出す機能を有する。アプリ出所付与部27により、情報出力装置3はどのアプリケーションが機器操作命令を発行したかを把握できる。
認証トークン生成部61は、Webアプリ実行部21の認証要求部52からの認証要求を情報出力装置3の位置情報とともに受け取って、認証用コネクションである第2のコネクションが確立されていない場合にはIPコネクション管理部24に対して認証用コネクションの確立を依頼する機能を有する。すなわち、認証要求命令を送信メッセージ、情報出力装置3の位置情報を送信先として渡し、第2コネクション部34を呼び出して第2のコネクションの確立要求を行う機能を有する。第2のコネクションが既に確立されている場合には認証要求メッセージのみを送る。また、IPコネクション管理部24からコネクション確立結果(コネクション確立を行った場合のみ)と認証先からのメッセージを受け取り、これらをアプリ認証処理部23に渡して認証の実行を要求し、その結果を認証要求部52に渡す。例えば、チャレンジ・アンド・レスポンスによる認証の場合には、IPコネクション管理部24から認証要求命令の返答であるチャレンジを受け取ってアプリ認証処理部23に渡す機能と、アプリ認証処理部23からレスポンスを受け取って認証要求部52に認証トークンとして返す機能とを有する。認証要求部52からパスワードを受け取った場合には、アプリ認証処理部23に認証の実行を要求する場合に、受け取ったパスワードもアプリ認証処理部23に渡す。
アプリ認証処理部23は、認証トークン生成部61から認証要求を認証先から受け取ったメッセージと共に受け取って、鍵管理部63に対して鍵取得命令を出し、受け取った鍵と認証先から受け取ったメッセージから認証トークンを生成する機能を有する。例えばチャレンジ・アンド・レスポンスでは、認証先から受け取ったメッセージ(チャレンジ)と鍵により、HMAC-SHA1、HMAC-MD5などの方式を用いてレスポンスを生成する。このレスポンスを認証トークンとして、認証トークン生成部61に対して渡す機能を有する。このレスポンスを生成する前に、チャレンジを別の鍵でさらに暗号化してからレスポンスを生成してもよい。すなわち、レスポンスを多重に暗号化してもよい。この鍵としてはユーザが入力したパスワードを認証要求部52から受け取って利用する方法等がある。暗号化の方法としては、AES等の共通鍵暗号やXOR演算など、一般に知られた方法を使えばよい。また同様にレスポンスを生成するための鍵を前記ユーザが入力したパスワードで暗号化してからその暗号化した鍵でレスポンスを生成してもよいし、生成したレスポンスをさらに前記ユーザが入力したパスワードで暗号化してもよい。
鍵管理部63は、アプリ認証処理部23からの鍵取得要求に対して鍵を渡す機能を有する。この鍵については、鍵管理部63以外が読み取り不可能、もしくは読み取り困難な場所に格納し、その場所から取得する機能を有する。
開始アプリURL管理部62は、アプリケーションの起動時に開始URL情報を二次記憶などから読み込んでページ実行部51に渡してWebアプリの起動を要求する機能を有する。
IPコネクション管理部24は、WebSocketプロトコルやHTTPなどの通信プロトコルを用いて、サーバとのコネクションの確立とデータの送受信を行う機能を有する。送信先サーバの指定としては、位置識別子(FQDN情報やIPアドレス情報)もしくは既に接続されたコネクション識別子情報を受け取り、位置識別子が指定された場合にはまず位置識別子情報を元に対応するサーバとのコネクションを確立する。その後、位置識別子が指定された場合には接続したコネクションを、既に接続されたコネクション識別子情報を受け取った場合には指定されたコネクションを用いて、呼出し元から指定された送信メッセージを送る機能を有する。また、サーバからの返答を受信し、呼出し元にコネクション情報と共に返す機能を有する。IPコネクション管理部24は、第3コネクション部35を介して認証トークンと機器操作命令を、第2コネクション部34を介して認証要求を送ることができる。また、アプリケーションを取得する第1コネクション部33を管理する機能も有する。このために複数コネクション部を同時に管理でき、呼出し元やコネクション識別子によって利用するコネクション部を分別する機能を有することを特徴とする。
また、IPコネクション管理部24は、コネクション接続断や接続失敗が発生した場合に、接続断や接続失敗が発生したコネクション部を判別後に、そのコネクション部の確立要求元ブロックを判別してエラーを返す機能を備えていてもよい。加えて、情報操作装置1に後述の機器検索処理部28を備える場合には、IPコネクション管理部24は機器検索用コネクションである第4のコネクションを管理する第4コネクション部36を別途管理する機能も有する。
機器検索処理部28は、情報出力装置3の検索命令を受け取って機器検索命令を生成し、IPコネクション管理部24とIPコネクション管理部24から呼び出される第4コネクション部36を用いて情報出力装置3を検索し、見つかった情報出力装置3の位置識別子のリストを返す機能を有する。この機器発見のプロトコルとしては、UPnP、NetBIOSなど一般に知られたプロトコルを用いればよい。Webアプリ実行部21が情報出力装置3の位置識別子が予め分かっている場合など、必ずしも機器検索処理部28は必須ではない。機器検索処理部28により、予めネットワーク2内にどの被操作機器が存在するかといった情報を操作機器側に設定する必要がなくなる。機器検索処理部28が存在しない場合には、第4コネクション部36は必須ではない。
アプリ認証処理部23は、機器検索処理部28により取得した情報出力装置3の位置識別子を用いて、当該情報出力装置3との間で第2コネクション部34を介して認証要求および認証トークンの送受を行う。
入力受信部25は、ユーザ入力を受け取り、その入力に応じてページ実行部51に対して入力内容を渡す機能を有する。例えば、ページに含まれるリンクのマウスやキーボードなどの外部入力装置による選択時にはページ実行部51に選択情報を伝え、ページ実行部51は受け取った選択情報に基づいてリンク先のページ取得、実行を行う。
HTTP処理部26はサーバ上のデータ取得要求とともに取得データの位置識別子(URL情報)を受け取り、IPコネクション管理部24および第1コネクション部33を介してURL情報に対応するサーバに接続し、データ取得を行う機能を有する。受け取ったデータはデータ取得要求元に渡す機能を有する。
図4は第1の実施形態における情報出力装置3の内部構成を示すブロック図である。図4の情報出力装置3は、IPコネクション管理部70、メッセージ分析部71、認証用チャレンジ生成部72、認証トークン検査部73、機器操作命令処理部74、アプリ出所検査部75、機器検索応答部76、第1〜第4コネクション部78、34〜36を有する。本明細書では、情報操作装置1内の第2〜第4コネクション部34〜36と、情報操作装置1内の第2〜第4コネクション部34〜36に同一の符号を付している。すなわち、同一の符号の付されたコネクション部同士で、接続確立処理を行う。
IPコネクション管理部70は、WebSocketプロトコルやHTTPなどの通信プロトコルを用いて、情報操作装置1とのコネクションの確立、データの送受信を行う機能を有する。IPコネクション管理部70は、第2コネクション部34と第3コネクション部35を別々に管理し、第3コネクション部35にて認証トークンや出所情報、機器操作命令を受信する機能と、第2コネクション部34にて認証要求を受信して認証要求子である認証用チャレンジを送信する機能とを有する。このために、IPコネクション管理部70は、複数コネクション部を同時に管理でき、呼出し元やコネクション識別子によって利用するコネクション部を分別する機能を有することを特徴とする。加えて、情報出力装置3が後述の機器検索応答部を備える場合には、IPコネクション管理部70は機器検索用コネクションの確立や検索命令の受信と検索命令への応答送信を行う第4コネクション部36を別途管理する機能も有する。また、IPコネクション管理部70は許可出所リストを取得する第1コネクション部78を別途管理する機能を有してもよい。
メッセージ分析部71は、第3コネクション部35を介して受信した命令を、機器操作命令、認証トークンおよび出所情報に分割し、認証トークンは認証トークン検査部73に渡し、出所情報はアプリ出所検査部75に渡す機能を有する。機器操作命令については、アプリ出所検査部75や認証トークン検査部73からの検査結果を受け取り、出所情報および認証トークンが適正と判断された場合にのみ、機器操作命令処理部74に渡す機能を有する。
認証用チャレンジ生成部72は、IPコネクション管理部70から第2コネクション部34を介して認証要求が渡された場合に、認証用チャレンジを生成して第2コネクション部34を介して要求元に返す機能を有する。このチャレンジの生成方法はランダムな文字列の生成などで良い。また、認証用チャレンジに対するレスポンスを情報出力装置3に格納される鍵情報(共通鍵)を用いて生成して、検証用認証トークン情報として保存する機能を有する。
認証トークン検査部73は、第2コネクション部34を介して渡された認証トークンを検査する機能を有する。認証用チャレンジ生成部72が保存した検証用認証トークン情報の中に渡された認証トークンが存在するかどうかを確認し、存在する場合には認証トークンが適正という結果を返し、存在しない場合には認証トークンが不正という結果を返す。認証トークンが適正な場合には、保存された検証用認証トークン情報を削除する機能を有する。これにより、一回の認証でのみ有効なパスワード(ワンタイムパスワード)を生成できる。
機器操作命令処理部74は、情報操作装置1から受信した機器操作命令を処理し、不図示のチューナー部を制御したり、不図示の画面出力部に表示する映像等を切り替える指示を送ったりする機能を有する。
アプリ出所検査部75は、第3のコネクションの確立時のヘッダ情報を分析し、コネクション確立要求を行ったアプリケーションの出所を判定し、許可出所リストにその出所が含まれるか否かを判定して、含まれる場合には出所が適正という結果を返し、含まれない場合に不正という結果を返す機能を有する。ここで、許可出所リストとは、認証トークンの発行を行うことが可能なWebアプリの取得先をリストアップしたものであり、Webアプリごとに設けられる。許可出所リストは、例えばWebアプリ配布サーバ5が管理する。
機器検索応答部76は、後述する情報操作装置1からの装置検索要求に応答して、自装置の名前やIPアドレスを返信する処理を行う。装置検索のプロトコルとしてUPnP規格で定められた方式や、NetBIOSによる名前検索方式を用いてもよい。なお、この機器検索応答部76は必須の構成ではない。
図5は第1の実施形態におけるWebアプリ配布サーバ5の内部構成を示すブロック図である。図5の情報出力装置3は、HTTPサーバ処理部43と、コンテンツ・メディアファイル取得部44とを有する。HTTPサーバ処理部43の内部には図1に示したネットワークインタフェース部41が設けられ、コンテンツ・メディアファイル取得部44の内部には図1に示したストレージ部42が設けられている。
HTTPサーバ処理部43は、情報操作装置1から渡されたURL情報をコンテンツ・メディアファイル取得部44に渡してファイル取得を要求し、受け取ったファイルを情報操作装置1に渡す機能を有する。
コンテンツ・メディアファイル取得部44はHTTPサーバ処理部43から渡されたURL情報をWebアプリ配布サーバ5が備える不図示のストレージ内のファイル位置に変換し、ストレージ部からファイルを読み込んで、HTTPサーバ処理部43に渡す機能を有する。
図6は情報操作装置1内のWebアプリ実行部21とアプリ認証処理部23の起動時の処理手順の一例を示すフローチャートである。起動時にはアプリ(装置)毎に設定された最初に表示するページをWebアプリ配布サーバ5から取得して実行する。以下はその詳細である。
アプリ認証処理部23内の開始アプリURL管理部62は、ストレージ等の開始アプリURL管理部62の管理する領域からアプリケーション起動時に最初に表示するページのURL情報をロードし、ページ実行部51に対してURL情報を渡してページ表示を要求する(ステップS1)。
ページ実行部51はURL情報を受信し、HTTP処理部26に対してURL情報が指すページデータの取得を要求する(ステップS2)。
HTTP処理部26は、URLが指すサーバに接続し、URL情報に基づいてページ取得命令を出して、ページのデータ取得後、ページ実行部51にデータを返す(ステップS3)。ページ実行部51は取得したデータを元にWebアプリの実行を開始する(ステップS4)。
情報操作装置1毎に管理するURL情報を変えることで、サーバ上から取得するページデータが変わるため、処理内容を変更することができる。例えばチャンネル変更アプリ(装置)と、録画視聴アプリ(装置)を別のアプリケーションとして実現することが可能となる。
Webアプリの実行中に認証要求命令が現れた場合には、プラットホームの正当性を示す認証トークンの認証用コネクション(第2のコネクション)の確立と、情報出力装置3との機器操作用コネクション(第3のコネクション)の確立とを行う。
図7はチャレンジ・アンド・レスポンスによる認証を行う際の認証要求命令検知時の処理手順の一例を示すフローチャートである。
ページ実行部51はWebアプリの実行中に認証要求命令を検知すると(ステップS11)、認証要求部52に対して情報出力装置3の位置情報を渡して認証要求を行う。この際にユーザにパスワード入力を要求して受け取ったパスワードを認証要求部52に渡してもよい。次に認証要求部52は認証トークン生成部61に対して情報出力装置3の位置情報とパスワードを受け取った場合にはパスワードを渡して認証トークンの生成を要求する(ステップS12)。
認証トークン生成部61は、第2コネクション部34の情報を取得し(ステップS13)、第2のコネクションが既に確立されているか確認する(ステップS14)。まだ確立されていない場合には情報出力装置3の位置情報からIPコネクション管理部24に対して情報出力装置3とのコネクション(認証用コネクション、第2のコネクション)の確立を要求する(ステップS15)。IPコネクション管理部24は第2コネクション部34を用いて情報出力装置3との第2のコネクションを確立させる。第2のコネクションの確立後、認証トークン生成部61は第2コネクション部34の識別子情報を主記憶13等に保存する(ステップS16)。
ステップS16の処理が終了した場合か、あるいは既に第2のコネクションが確立されていた場合は、情報出力装置3にIPコネクション管理部24に対して第2コネクション部34を通じて認証要求を送信する(ステップS17)。
IPコネクション管理部24は、第2コネクション部34を通じて情報出力装置3からのチャレンジを受信して(ステップS18)、第2コネクション部34は認証トークン生成部61にチャレンジを返す。この際に第2のコネクションの確立を破棄してもよい。次に認証トークン生成部61はアプリ認証処理部23に対して受信したチャレンジを渡し、レスポンスの依頼を生成する(ステップS19)。
アプリ認証処理部23は、情報出力装置3からのチャレンジを受けると、レスポンスを生成するための鍵の取得を鍵管理部63に対して要求する。鍵管理部63はアプリ認証処理部23からの要求に従い、ストレージ等から鍵を取得して、アプリ認証処理部23に対して鍵を返す(ステップS20)。その後、アプリ認証処理部23は、取得した鍵とチャレンジからレスポンスを生成して認証トークン生成部61に対して返す(ステップS21)。レスポンスを生成するためのアルゴリズムとしてはHMAC-SHA1、HMAC-MD5など、一般に知られた方法を使えばよい。この際に、チャレンジやレスポンス、チャレンジ生成に用いる鍵をさらにページ実行部51から受け取ったパスワードで暗号化してもよい。
認証トークン生成部61は、認証トークン送信部55に対して、認証要求部52に対する認証トークンを返す。このとき、認証トークンを送信メッセージとし、情報出力装置3の位置情報を接続先情報として、認証トークン送信部55に認証トークンの送信を依頼する(ステップS22)。
認証トークン送信部55は、出所情報付与部に対してコネクション確立要求を認証トークンと共に渡し、出所情報付与部はアプリの出所の位置情報(URL情報)をページ実行部51から取得して送信データに付与し(ステップS23)、送信データと接続先情報をIPコネクション管理部24に渡す。
IPコネクション管理部24は、受け取った接続先情報を元に情報出力装置3との第の3コネクション(操作用コネクション)を第3コネクション部35を介して確立させる(ステップS24)。
その後、IPコネクション管理部24は、第3コネクション部35を介して情報出力装置3へ認証トークンを送信し(ステップS25)、第3コネクション部35の識別子情報を認証トークン送信部55に返す。最後に、認証トークン送信部55は受け取った第3コネクション部35の識別子情報を主記憶13などに保存する(ステップS26)。この際に第3コネクション部35は第3のコネクションを切断しないことにより、第3コネクション部35を用いて何度でも機器操作命令を送信できる。
第3のコネクションは、WebSocketプロトコルではページ実行部51によるページ移動、すなわち別ページの実行開始時や、Webアプリ自身による明示的なコネクション切断によりコネクションが切断される。その際には図7に示される認証処理が再度行われる。HTTPでは一般に通信の度にコネクションが切断されるため、認証トークンと機器操作命令を同時に送信する。
Webアプリの実行中に機器操作命令が現れた場合には、第3コネクション部35を介して機器操作命令を送信する。
図8は情報操作装置1から情報出力装置3への機器操作命令の送信手順の一例を示すフローチャートである。ページ実行部51はWebアプリの実行中に機器操作命令が現れると、操作命令生成部53に対して操作要求内容を通知して、機器操作要求の生成依頼を行う(ステップS31)。
操作命令生成部53は第3コネクション部35を介して第3のコネクションで送ることのできる形の機器操作命令を特定のフォーマットで生成し、ページ実行部51に返す(ステップS32)。ページ実行部51は操作命令生成部53から受け取った機器操作命令を操作命令送信部54に対して渡し、機器操作命令の送信を依頼する。操作命令送信部54は、主記憶13等から第3のコネクション確立時に認証トークン送信部55が保存した第3コネクション部35の識別子情報を取得する(ステップS33)。
識別子情報が取得出来ない場合には(ステップS34)、操作命令送信部54は第3のコネクションが確立されていないものと見なしてエラーをページ実行部51に対して返す(ステップS35)。識別子情報がある場合には操作命令送信部54はIPコネクション管理部24に対して、ページ実行部51から受け取った機器操作命令と主記憶13等から取得した第3コネクション部35の識別子情報を渡し、機器操作命令の送信を依頼する。IPコネクション管理部24は第1コネクション部の識別子情報からコネクションを特定し、第3コネクション部35に機器操作命令を渡して機器操作命令を送信する(ステップS36)。ここでも、第3のコネクションについては切断しないことにより、第3コネクション部35を用いて何度も機器操作命令を送信することが可能となる。
図9は認証要求受信時の情報出力装置3の処理手順の一例を示すフローチャートである。情報出力装置3のIPコネクション管理部70は、第2コネクション部34により第2のコネクションが確立されて認証要求を受信すると(ステップS41)、認証用チャレンジ生成部72に対して認証要求子(チャレンジ)の生成を要求する(ステップS42)。認証用チャレンジ生成部72はその要求に対して、例えばランダム文字列を生成してチャレンジとする。また、情報出力装置3の不図示のストレージなどの格納領域に保存されている認証用鍵を取得し(ステップS43)、チャレンジに対応する認証子(レスポンス)を生成し、認証子リスト(レスポンスリスト)に登録する(ステップS44)。この際に、パスワードでさらにチャレンジもしくはレスポンス、もしくはチャレンジを生成するための認証用鍵で暗号化してもよい。さらに、生成した認証要求子(チャレンジ)をIPコネクション管理部70に返し、IPコネクション管理部70は情報操作装置1に対して第2コネクション部34を介して認証要求子を返す(ステップS45)。
図10は第3のコネクション確立要求時の情報出力装置3の処理手順の一例を示すフローチャートである。情報出力装置3のIPコネクション管理部70は、第3コネクション部35を通じて第3のコネクションの確立要求を受信した場合に(ステップS51)、メッセージ分析部71を呼び出す。メッセージ分析部71はコネクション確立要求のメッセージに含まれる確立要求元のWebアプリの出所情報を取得し(ステップS52)、アプリ出所検査部75に渡す。
アプリ出所検査部75は不図示の情報出力装置3のストレージ等の格納領域から許可出所リストを取得し、取得した出所情報が許可出所リストに含まれるかどうか判定する(ステップS53)。含まれない場合には、エラーを発生させ(ステップS54)、第3のコネクションを切断する。一方、含まれた場合には、メッセージ分析部71は同じくコネクション確立要求のメッセージに含まれる認証トークン(認証子)情報を取得し(ステップS55)、認証トークン検査部73に渡す。
認証トークン検査部73は認証用チャレンジ生成部72から認証子リスト(レスポンスリスト)を取得し、受信した認証トークン情報がレスポンスリストに含まれるかどうか判定する(ステップS56)。含まれた場合には、正しい認証子が送られてきたと判定し、第3のコネクション確立を完了する(ステップS57)。一方、レスポンスリストに受信した認証トークン情報がない場合には、不正なコネクションが張られたものとしてコネクションを切断する(ステップS54)。
図11は第1の実施形態における認証トークンの生成と機器操作命令の送信を含む情報操作装置1と情報出力装置3の処理手順の一例を示すシーケンス図である。
情報操作装置1は初回の認証要求時にまず、情報出力装置3に対して第2コネクション部34により第2のコネクションの確立を要求する(ステップS61)。次に、情報操作装置1は情報出力装置3で生成した認証用チャレンジを受け取り(ステップS62、S63)、レスポンスを生成して認証トークンとする(ステップS64)。
次に、第3コネクション部35による第3のコネクションの確立要求に先立ち、情報操作装置1は送信メッセージにWebアプリの出所情報の付与を行い(ステップS65)、情報出力装置3に対して第3のコネクションの確立要求と共に出所情報を送信する(ステップS66)。
情報出力装置3は、第3のコネクションを介して渡された認証トークンの検証を行い(ステップS67)、正しい場合には処理を続行する。また、情報操作装置1は情報出力装置3への機器操作命令送信を第3コネクション部35を介して行う(ステップS68)。ページ遷移などによって第3のコネクションが切断された場合には、情報操作装置1は第2コネクション部34を介して再度認証要求を行う(ステップS69)。その後に、情報操作装置1は第3のコネクションを切断する(ステップS70)。
第2のコネクションが切断されていなければ、再度第2コネクション部34により第2のコネクションの確立要求を行う必要はない。認証要求を行った(ステップS71)後は、ステップS62以降の処理を繰り返す。
このように、本実施形態によれば、プラットホームの正当性を保証する認証トークンを機器操作命令の送信用セッションの通信に付与することができる。すなわち、従来は出所情報が信頼できないため困難だったHTTPやWebSocketなどにおけるWebアプリの出所情報を用いた情報出力装置3の機器アクセス制御を情報出力装置3側で確実に行えるようになる。これにより、Webアプリによって可能な機器操作の内容を変えるといった柔軟な遠隔操作時のアクセス制御の実現が可能になる。
例えば、被操作機器の録画コンテンツの削除機能についてWebSocketプロトコルを介してwww.toshiba.comで配布するWebアプリに公開したとする。WebSocketに含まれるヘッダのチェックのみの場合、アプリケーションの実際の出所にかかわらず出所情報としてwww.toshiba.comを付加するような情報操作装置1にもコンテンツ削除を許してしまい、www.toshiba.com以外のサーバ、特に誰でもWebアプリが自由に置けるようなサーバに置かれた悪意あるWebアプリからコンテンツ削除が行われてしまう可能性がある。
本実施形態は、Webアプリ実行部21とアプリ認証処理部23が分離されていることに大きな特徴がある。一般にWebアプリの処理内容を記述するための言語であるJavaScriptに秘密情報を持たせることは困難であり(JavaScript等のWebアプリ実行部21の一部に相当)、プラットホームの正当性を保証するための鍵などを格納するには不適当である。そこで本実施形態では、Webアプリ実行部21とアプリ認証処理部23を分離し、解析が困難なアプリ認証処理部23側に秘密情報である鍵情報を持たせ、認証の一部や認証トークン生成処理を実行することで、同等の動作すなわち、本実施形態のエミュレートを行うプラットホームの作成を困難にしている。Webアプリ実行部21とアプリ認証処理部23が分離されている本実施形態では、認証要求部52と認証トークン生成部61が両モジュールを結びつける機能を有する。
認証トークン生成用の共通鍵を取得できないと、情報出力装置3との認証が通らないため、情報出力装置3は正しいプラットホームからの機器操作命令かどうかを正しく判別できる。
また、Webアプリの実行環境自体(ブラウザ)には手を加えられないことが多いが、本実施形態ではアプリ認証処理部23とブラウザ部分(Webアプリ実行部21の一部)が明確に分離されており、アプリ認証処理部23をプラグインなどとして実装することができる利点もある。
さらに、アプリ認証処理部23とWebアプリ実行部21側ではモジュールが分離されることや、実装に使用する言語などが異なる可能性があり、同じコネクションを共有できないことも多いと考えられる。このため、本実施形態では、Webアプリ実行部21が利用する操作用のコネクション(第3のコネクション)を管理する第3コネクション部35とアプリ認証処理部23が利用する認証用のコネクション(第2のコネクション)を管理する第2コネクション部34を分離していることも大きな特徴である。
コネクションを分離した場合、同一の情報操作装置1との間で第2のコネクションと第3のコネクションとが確立されたことを情報出力装置3側で確認できる必要がある。すなわち、第3のコネクションがプロトコルを模倣する悪意あるアプリケーションから張られたものか、正規アプリケーションから張られたものかを区別する必要がある。これを解決するために、本実施形態では秘密情報を格納できないWebアプリ実行部21から確立された第3のコネクションを管理する第3コネクション部35では、第2コネクション部34を介してアプリ認証処理部23で生成した認証トークンをアプリ認証処理部23から受け取って送ることにより正しいプラットホーム上から確立された操作コネクションであることを情報出力装置3に対して証明するための仕組みを持つ。本機能を実現するために第3コネクション部35と第2コネクション部34を独立して管理するためのIPコネクション管理部24を備えることが本実施形態の特徴的な点である。
関連する技術としてモバイルエージェント向けのセキュリティに関する研究や特許、例えばモバイルエージェントが移動する先のプラットホームでモバイルエージェントの正しさの検証を行う研究や特許が存在する。特許文献1では移動元のプラットホームでモバイルエージェントに署名を付与し、移動先でモバイルエージェントが改ざんされていないことを検証することにより、改ざんされた不正なモバイルエージェントの動作を防止できる。しかしながら、本実施形態で前提とするシステムでは機器操作コードを含むアプリケーションに署名したとしても情報出力装置3が受信するのは機器操作命令のみであるため、アプリケーションの署名検証はできず、そのアプリケーションの正しさは保証できない。また、機器操作命令のみに署名することも考えられるが、機器操作プロトコルを模倣するプラットホーム上で署名された機器操作命令全体をコピーされて別のアプリケーションに流用される可能性がある。本実施形態によれば、機器操作命令をコピーされても、ネイティブコードで記述されるコード中に含まれて抜き出し困難な認証鍵(共通鍵)がコピーされない限り、認証トークンを生成できず、機器の不正な操作を行うプラットホームは作成できない。
このように、第1の実施形態では、情報操作装置1が実行したWebアプリに従って、情報出力装置3に対して第2コネクション部34により第2のコネクションの確立と認証要求を行い、これを受けて情報出力装置3は、認証要求子(チャレンジ)を生成して、情報操作装置1に送信する。
この認証要求子を受信した情報操作装置1は、鍵管理部63で管理する共通鍵を用いて認証要求子を暗号化し、認証トークンを生成する。この認証トークンは、認証要求子を送信した情報出力装置3に送信され、認証トークンを受信した情報出力装置3は、自身が所持する共通鍵で認証要求子を暗号化して、受信したものと一致するかどうかにより認証トークンが正規の情報操作装置1から送信されたものかどうかを検証できる。
また、情報操作装置1は、認証トークンを情報出力装置3に送信する前に、認証トークンと機器操作命令を送信するための第3のコネクションの確立要求を情報出力装置3に送信する。その際、第3のコネクションの確立要求のヘッダ情報として、Webアプリの出所情報を含める。第3のコネクションの確立要求を受信した情報出力装置3は、この確立要求に含まれるWebアプリの出所が、自身が有する許可出所リストに登録されているか否かを検証し、登録されている場合のみ、第3のコネクションの確立処理を行う。これにより、意図しないWebアプリから送信された機器操作命令で、情報出力装置3が勝手に操作されてしまうことを防止できる。
さらに、情報操作装置1は、Webアプリ配布サーバ5からWebアプリを取得するための第1のコネクションを管理する第1コネクション部33と、認証子および認証要求子の送受を行うための第2のコネクションを管理する第2コネクション部34と、認証トークンおよび機器操作命令を送信するための第3のコネクションを管理する第3コネクション部35とを別個に設けて、これらコネクション部の管理をIPコネクション管理部24で行うため、各コネクションで送受される各種情報を統一的に管理できる。
また、認証トークンの生成等に用いる共通鍵をPFアプリ実行部22内のアプリ認証処理部23に保持し、HTMLやJavaScript等の汎用言語で記述されるWebアプリを実行するWebアプリ実行部21内では共通鍵を管理しないようにしたため、共通鍵を安全に管理することができる。
(第2の実施形態)
第1の実施形態では、アプリ認証処理部23はページ実行部51で実行しているWebアプリの出所について検査を行っていなかった。このため、例えば悪意あるWebアプリが動作し、認証要求を行った場合にも認証トークンを渡してしまうという欠点が存在した。このため、悪意あるWebアプリが認証トークンを外部に渡すような場合、第3コネクション部35で送受信される情報を模倣する悪意あるプラットホームと連携して情報出力装置3の不正な操作が可能になってしまう。このため、第2の実施形態では、Webアプリの出所チェックを行うことで、例えば信頼できるWebアプリ配布サーバ5から取得したWebアプリにのみ認証トークンを渡すようにでき、認証トークンの不正利用を防ぐことが可能となる。
図12は第2の実施形態における情報操作装置1の内部構成の一例を示すブロック図である。図3のアプリ認証処理部23に、アプリ出所検査部65と許可出所リスト検査部66を追加した点で異なる。このうち、許可出所リスト検査部66は必須の構成ではない。なお、図12では、PFアプリ実行部22を省略しているが、図2と同様に、アプリ認証処理部23はPFアプリ実行部22の内部に設けられている。
アプリ出所検査部65は現在実行中のページの出所情報から、その出所に認証トークンを渡して良いかどうか判定する機能を有する。このためにアプリ出所検査部65は、認証要求部52から認証トークン生成部61に対して認証トークンの生成要求があった際に、ページ実行部51から現在実行中のページの出所情報を取得する。また、情報操作装置1内のストレージ部17、主記憶13などデータ格納領域からトークンを渡しても良い出所情報のリスト(以下、許可出所リスト)を取得し、そのリストの中に現在実行中のページの出所情報が含まれるかどうかを判定する。出所情報が含まれる場合には、認証トークンを渡して良いと判定して処理を続行し、出所情報が含まれない場合には認証トークンを渡してはいけないと判定してページ実行部51に対してエラーを返す機能を有する。例えば、www.toshiba.com、www.toshiba.co.jpドメインが許可出所リストに含まれる場合には、実行中のWebアプリがwww.toshiba.comドメインから取得したWebアプリの場合には認証トークンを渡すが、www.toshiba.co.ukドメインから取得したWebアプリの場合には認証トークンを渡さない。また本情報操作装置1が許可出所リスト検査部66を備える場合には、許可出所リストを渡して、許可出所リストの正当性検証を依頼する機能を有する。
また、許可出所リストが改ざんされると想定していない情報出力装置3に対して認証トークンを渡してしまう危険性がある。このため、第2の実施形態における情報操作装置1には許可出所リストの改ざん検証を行う許可出所リスト検査部66を備えても良い。アプリ出所リストをリードオンリーメモリなど改ざんが困難な格納領域に保存できる場合には、許可出所リスト検査部66は必須の構成ではない。許可出所リスト検査部66は、許可出所リストに付与された署名を許可出所リスト検査部66が持つ公開鍵を用いて検証して改ざんの検証を行い、改ざんが検出された場合にはエラーを返す機能を有する。署名検証の方法としては、RSA署名、DSA署名など一般に知られた方式を使えばよい。
図13は許可出所リスト10のデータ構造の一例を示す図である。許可出所リスト10は許可出所リスト部10aと署名部10bとに分かれ、許可出所リスト部10aには(1)許可する出所の数、(2)許可する出所のリスト(要素数は(1)で指定したもの)が含まれる。このとき許可する出所情報には、例えばPOSIX規格により定められる、文字列の集合を一つの文字列で表現する方法の一つである正規表現を使った情報を含んでも良い。一方、署名部10bには、許可出所リスト部10aに対する改ざんを検証するための署名が含まれる。この署名は許可出所リスト検査部66が持つ公開鍵に対する秘密鍵により署名されている。
図14は認証要求命令検出時の処理手順の一例を示すフローチャートである。図14のフローチャートは、図7と比較して、(1)〜(4)のアプリ出所検証処理が入る点が異なる。ここでは(1)〜(4)の処理のみを説明する。
認証トークン生成部61は認証要求部52から認証要求があった際に、アプリ出所検査部65にアプリ出所検査を依頼する。アプリ出所検査部65は、ページ実行部51から現在実行中の認証要求があったWebアプリの出所を取得する(ステップS81)。すなわち、ページ実行部51は現在実行中のWebアプリの出所を取得し、要求に応じて出所データを返す機能を有する。
次に、アプリ出所検査部65はストレージ等の記憶装置から許可出所リストを取得する(ステップS82)。また、情報操作装置1が許可出所検査部を備える場合には、アプリ出所検査部65は許可出所リスト検査部66に対して許可出所リストを渡し、許可出所リストの改ざん検証を依頼する。許可出所リスト検査部66は自身が管理する許可出所リスト検査部66に付与された署名を検証するための公開鍵を取得する(ステップS83)。許可リスト検査部はこの公開鍵を用いて許可出所リストの署名を検証する(ステップS84)。検証の結果、改ざんが検出されなければ、アプリの出所が許可出所リストに含まれるか否かを判定する(ステップS85、S86)。
ステップS84で改ざんが検出された場合、またはステップS85で許可出所リストに含まれないと判定された場合は、ページ実行部51にエラーを返し(ステップS85、S87)、許可出所リストに含まれる場合は、図7のステップS13以降の処理を行う。
本実施形態により、許可出所リストの制作者が想定した以外のWebアプリ配布サーバ5上に置かれたWebアプリに対して認証トークンを生成することを防止でき、認証トークンを不正なWebアプリに対して生成するリスクを下げることができる。認証トークンの不正利用のリスク、すなわち不正なWebアプリによる遠隔操作を防ぐことが出来るようになる。
このように、第2の実施形態では、情報出力装置3に認証要求を行う際に、認証要求を行ったWebアプリの出所が許可出所リストに登録されているか否かを情報操作装置1の内部で検証するようにしたため、意図しないWebアプリからの認証要求を情報出力装置3に送信するおそれがなくなる。
(第3の実施形態)
第2の実施形態では許可出所リストの更新を行っていなかった。このため許可出所リストは固定で、遠隔操作を許可するWebアプリが置かれるWebアプリ配布サーバ5の追加や削除ができない。これに対して第3の実施形態では許可出所リストの更新を行い、Webアプリ配布サーバ5の追加や削除が可能となる。
図15は第3の実施形態における情報操作装置1の内部構成の一例を示すブロック図である。図15は図3のアプリ認証処理部23内に許可出所リスト取得部67を追加した点で異なる。なお、図15では、PFアプリ実行部22を省略しているが、図2と同様に、アプリ認証処理部23はPFアプリ実行部22の内部に設けられている。
許可出所リスト取得部67は、HTTP処理部26を利用してIPコネクション管理部24とIPコネクション管理部24から呼び出される第1コネクション部33を介してWebアプリ配布サーバ5から許可出所リストを取得し、更新されていた場合には、許可出所リスト検査部66に取得した許可出所リストを渡して検証依頼を出す機能を有する。例えば更新されているかどうかの判定は、情報操作装置1内に保存されている許可出所リストとの比較や、リストファイルの最終更新日時との比較を行えばよい。さらに許可出所リスト検査部66の検証結果を取得し、改ざんが検出されなかった場合に情報操作装置1のストレージ内部に保存されている許可出所リストをWebアプリ配布サーバ5から取得した許可出所リストに置き換える機能を有する。
図16は第3の実施形態におけるWebアプリ配布サーバ5の内部構造を示すブロック図である。図5のWebアプリ配布サーバ5に許可リスト取得部45を追加した点で異なる。
許可リスト取得部45は情報操作装置1もしくは情報出力装置3からの要求に従い、不図示のストレージから最新の許可出所リストを取得し、HTTPサーバ処理部43を介して要求元に返す機能を有する。Webアプリ配布サーバ5が管理する許可出所リストを更新することにより、情報操作装置1や情報出力装置3は許可出所リストを最新の情報に保つことができる。
図17は許可出所リスト更新の処理手順の一例を示すフローチャートである。許可リスト取得部45は、情報操作装置1の起動時もしくは、一定期間ごとに定期的に呼び出され、最新の許可出所リストをHTTP処理部26とHTTP処理部26から呼び出されるIPコネクション管理部24とIPコネクション管理部24から呼び出される第1コネクション部33を介してWebアプリ配布サーバ5から取得(ダウンロード)する(ステップS91)。そして、情報操作装置1内に保存された許可出所リストとの比較を行う(ステップS92)。更新がなかったと判定された場合は処理を終了し、更新があったと判定された場合には、署名検証用の公開鍵を情報操作装置1内から取得し(ステップS93)、Webアプリ配布サーバ5から取得した許可出所リストの署名を検証する(ステップS94)。改ざんがあった場合にはエラーを発生させ(ステップS95、S96)、改ざんが検出されなかった場合には情報操作装置1内に保存されていた許可出所リストをWebアプリ配布サーバ5から取得した許可出所リストで上書きする(ステップS95、S97)。
このように、第3の実施形態では、Webアプリ配布サーバ5で許可出所リストの更新を行うことから、情報操作装置1から定期的にWebアプリ配布サーバ5にアクセスして、許可出所リストの最新版を取得することで、情報操作装置1が保持する許可出所リストを常に最新のものに維持できる。
(第4の実施形態)
以下に説明する第4の実施形態では、アプリケーション毎に信頼できるサーバが発行する利用許可証に許可出所リストを付与し、そのリストを元に認証トークンを渡して良いか判断する機能を有する。Webアプリ単位で許可出所情報を変更することが可能になる。ここで、利用許可証とは、機器操作命令を送信するWebアプリが正規のWebアプリ配布サーバ5から配布されたものであることを証明する情報であり、利用許可証はWebアプリごとに発行される。すべてのWebアプリに対応して利用許可証が発行されるわけではなく、利用許可証を利用できるWebアプリは制限されている。
図18は第4の実施形態における情報操作装置1の内部構成の一例を示すブロック図である。図18は図3のアプリ認証処理部23内に利用許可証分析部68を追加し、かつ図3のWebアプリ実行部21内に利用許可証管理部56を追加した点で異なる。なお、図18では、PFアプリ実行部22を省略しているが、図2と同様に、アプリ認証処理部23はPFアプリ実行部22の内部に設けられている。
利用許可証管理部56はIPコネクション管理部24とIPコネクション管理部24から呼び出される第1コネクション部33を介して信頼できるサーバからWebアプリ毎にWebアプリ配布サーバ5から利用許可証を取得し、利用許可証分析部68に渡す機能を有する。この際にはアプリケーションの識別情報を渡す。利用許可証には、機器操作の許可情報と共に、許可出所リスト情報、署名情報が含まれる。この署名は公開鍵暗号で署名される。公開鍵暗号方式としてはRSA暗号など、一般に知られた方法を用いればよい。
利用許可証分析部68は利用許可証管理部56から取得した利用許可証を分析し、許可出所リストを取り出す機能を有する。
図19は第4の実施形態におけるWebアプリ配布サーバ5の内部構造を示すブロック図である。図5のWebアプリ配布サーバ5に利用許可証生成部46を追加した点で異なる。
利用許可証生成部46は情報操作装置1からの利用許可証の取得要求に従って、Webアプリ毎の利用許可証を生成して返す機能を有する。利用許可証生成部46はWebアプリの識別情報を受け取り、Webアプリに対応する許可出所リスト情報や機器操作の許可情報を不図示のストレージから取得して、署名してHTTPサーバ処理部43を介して要求元に返す機能を有する。利用許可証生成部46は利用許可証を取得要求時に動的に生成するのではなく、あらかじめ利用許可証を生成して非図示のストレージに格納しておき、利用許可証の取得要求時にストレージから利用許可証を読み取って返す機能を有しても良い。
図20は認証要求命令検出時の処理手順の一例を示すフローチャートである。図14とは(1)〜(2)の許可出所リスト取得方法が異なる。ここでは(1)〜(2)の処理についてのみ述べる。
利用許可証管理部56はアプリ出所検査部65から呼び出され、IPコネクション管理部24から呼び出される第1コネクション部33を介してアプリ毎の利用許可証をWebアプリ配布サーバ5から取得する(ステップS101)。次に、取得した利用許可証を利用許可証分析部68に渡す。利用許可証分析部68は受け取った利用許可証を分析し、利用許可証の中から許可出所リストを取り出す(ステップS102)。さらに許可出所リスト検査部66に渡して、改ざんの有無の検査を依頼する。
Webアプリ配布サーバ5から取得した利用許可証は、機器操作命令とともに、情報出力装置3に送られる。利用許可証と機器操作命令を受けた情報出力装置3は、利用許可証の内容に基づいて、機器操作命令を受け付けるかどうかを判断する。
このように、第4の実施形態では、情報操作装置1がWebアプリ配布サーバ5から利用許可証を取得し、この利用許可証に含まれる許可出所リストに基づいて、認証要求を行ったWebアプリの出所を検証するため、意図しないWebアプリからの認証要求を情報出力装置3に送信するおそれがなくなる。また、情報操作装置1は、利用許可証によって、Webアプリが正規のWebアプリ配布サーバ5から送信されたものであることを検証できる。
(第5の実施形態)
第1の実施形態ではアプリ認証処理部23の呼出し元の検証を行っていなかった。アプリ認証処理部23の実装形態によっては、アプリ認証処理部23のみを取り出し、アプリ出所情報を偽った不正な情報操作装置1に流用できてしまう。これに対して第5の実施形態では、アプリ認証処理部23の呼出し元の検証を行い、想定する呼出し元情報と一致するか判定することにより、不正な流用を防ぐことができる。
図21は第5の実施形態における情報操作装置1の内部構成を示すブロック図である。図21は図3のアプリ認証処理部23に呼出し元検出部81とプラットホーム検証部82を追加したものである。
呼出し元検出部81は認証要求時にアプリ認証処理部23がWebアプリの中のどこから呼び出されたかを判別し、識別子を得る機能を有する。Webアプリは、多数のソフトウエアモジュール(以下、単にモジュールと呼ぶ)の集合体であり、呼出し元検出部81は、呼出し元モジュール識別子をプラットホーム検証部82に渡して呼出し、呼出し元が正しいものであるかどうかの判定を依頼する機能を有する。
プラットホーム検証部82は呼出し元が想定したモジュールか否かを判定する機能を有する。呼出し元検出部81から呼出し元モジュールの識別子を受け取り、プラットホーム検証部82は自身が管理する想定する呼出し元情報および実際の呼出し元モジュールの情報を取得して、一致するかどうかの検証を行う。この際の検証方法としては、呼出し元モジュールのハッシュ値を計算して想定するものと一致するかどうかを判定する方法や、モジュールの呼出しの流れ(呼出し元アドレス)を参照し、想定するものと一致するかどうかを判定する方法、呼出し元モジュールのファイル名と一致するかどうかを判定する方法などがある。
本実施形態では、呼出し側、すなわちWebアプリ実行部21に秘密を格納することなく、不正な呼出し元を排除することが可能となる。
図22は第5の実施形態における認証要求命令検出時の処理手順を示すフローチャートである。図22のフローチャートは、図7と比較して、(1)〜(2)のプラットホーム検証処理が入る点が異なる。ここでは(1)〜(2)の処理のみを説明する。
認証要求部52が認証トークン生成部61を呼び出した際に、認証トークン生成部61は呼出し元検出部81に対して呼出し元の検出を依頼する(ステップS12)。呼出し元検出部81は、認証トークン生成部61を呼び出したモジュールを判別し(ステップS111)、モジュールの識別子を認証トークン生成部61に対して返す。認証トークン生成部61はさらに、プラットホーム検証部82に対して呼出し元検出部81から受け取ったモジュールの識別子を渡して呼出し元の検証を依頼し(ステップS112)、プラットホーム検証部82はモジュールの識別子からモジュールの固有情報(a)を取得する(ステップS113)。この固有情報としては、モジュールのプログラムのハッシュ値、モジュールが存在する主記憶13上の呼出し元アドレス、ファイル名などが考えられる。さらにプラットホーム検証部82は改ざんが困難な領域に予め格納されている固有情報(b)を取得する。さらに呼出し元から取得した固有情報(a)と想定する固有情報(b)が一致するか判定する(ステップS114)。一致した場合には正しい呼出し元と判定して図7のステップS13〜S26の処理を続行し、一致しない場合には不正な呼出し元と判定してエラーを発生させる(ステップS115)。
このように、第5の実施形態では、認証トークンを生成するアプリ認証処理部23を偽った不正な情報操作装置1を防止するために、アプリ認証処理部23がどこから呼び出されたかを検証するプラットホーム検証部82を設けている。これにより、Webアプリの中のどこからアプリ認証処理部23が呼び出されたかを特定でき、アプリ認証処理部23を偽るような不正を防止できる。
(第6の実施形態)
第5の実施形態ではWebアプリ実行部21に秘密を持たせないことを前提としていたが、Webアプリ実行部21が秘密情報を持たせることができる場合には、認証によるアプリ認証処理部23の不正利用防止が実現できる。
図23は第6の実施形態における情報処理装置の内部構成を示すブロック図である。図23は図21と比較して、Webアプリ実行部21内にプラットホーム検証認証部57を追加した点で異なる。なお、図23では、PFアプリ実行部22を省略しているが、図2と同様に、アプリ認証処理部23はPFアプリ実行部22の内部に設けられている。
プラットホーム検証認証部57は鍵情報を有し、その鍵を用いてプラットホーム検証部82と認証を行う機能を有する。この認証方法としては例えばチャレンジ・アンド・レスポンスなど、一般によく知られた方法を使えばよい。認証に用いる鍵情報が盗み取られない限り、プラットホーム検証認証部57を模倣する操作機器を作ることは困難である。一般に第5の実施形態で述べた完全性検証よりも認証の方が実装コストが低いという特徴があり、Webアプリ実行部21に秘密を持たせることが出来る、すなわちWebアプリ実行部21に鍵情報を第三者から読み取り困難に格納できる場合には第6の実施形態を利用する利点がある。
図24は第6の実施形態における認証要求命令検出時の処理手順を示すフローチャートである。図24のフローチャートは、図22と比較して、(1)〜(2)のプラットホーム検証処理が異なる。ここでは(1)〜(2)の処理のみを説明する。
認証要求部52が認証トークン生成部61を呼び出した際に認証トークン生成部61は呼出し元検出部81に対して呼出し元の検出を依頼する(ステップS12)。呼出し元検出部81は、認証トークン生成部61を呼び出したモジュールを判別し(ステップS111)、モジュールの識別子を認証トークン生成部61に対して返す。認証トークン生成部61はまた、モジュールの識別子をプラットホーム検証部82に渡して、認証要求を出す。プラットホーム検証部82は渡されたモジュールの識別子で識別されるモジュールのプラットホーム検証認証部57に対して認証要求を出す(ステップS121)。プラットホーム検証認証部57は認証要求に対して自身の持つ鍵を用いて認証に対する返答を実施する(ステップS122)。この認証方法としては例えばチャレンジ・アンド・レスポンスなど、一般によく知られた方法を使えばよい。プラットホーム検証部82は認証結果を検査し(ステップS123)、認証が成功した場合には図7の第2コネクション部34情報取得以降の処理(ステップS13〜S26)を続ける一方、認証が失敗した場合にはエラーを発生させる(ステップS124)。
このように、第6の実施形態では、Webアプリ実行部21に秘密情報を持たせることができる場合には、Webアプリ実行部21内にプラットホーム検証認証部57を設けることで、認証要求を行ったWebアプリの中のどこからアプリ認証処理部23が呼び出されたかを特定でき、アプリ実行部21を偽るような不正を防止できる。
(第7の実施形態)
第1の実施形態では認証トークン生成に用いる鍵の有効性の確認を行っていなかった。認証トークン生成用鍵が盗まれてしまうと、認証トークンの不正生成が可能になり、不正なプラットホームにより情報出力装置3の遠隔操作が可能になってしまう。これに対して第7の実施形態では、認証トークン生成用の鍵の有効性の確認および、不正な鍵のリボーク(無効化)処理を行い、鍵盗用時の脅威に対処することが可能となる。
図25は第7の実施形態における情報処理装置の内部構成を示すブロック図である。図25は、図3と比較して、アプリ認証処理部23内にリボーク検出部83、鍵無効化部84および鍵更新部85を追加した点で異なる。なお、図25では、PFアプリ実行部22を省略しているが、図2と同様に、アプリ認証処理部23はPFアプリ実行部22の内部に設けられている。
本実施形態においては、鍵管理部63は図26に示すように複数の鍵を管理し、鍵番号で区別する。鍵データとして、例えば鍵番号、鍵有効性および鍵情報の情報を持つ。
リボーク検出部83は鍵の無効(リボーク)を検出する機能を有する。この方法として例えば、情報出力装置3と連携して認証要求時に情報出力装置3は第2コネクション部34を介してチャレンジとともに、認証に用いる鍵番号を送信し、リボーク検出部83が与えられた鍵番号未満の鍵を無効と判断する方法や、Webアプリ配布サーバ5に無効化された鍵の番号を問い合わせる機能を有する。
鍵無効化部84はリボーク検出部83からリボークされた鍵番号情報を受け取り、実際に鍵を無効にする機能を有する。例えば、図26は、鍵管理部63が管理する鍵番号、鍵有効性および鍵情報の対応関係を登録したテーブルを示している。図26の鍵情報では初期状態として鍵番号0が無効、1,2…Nが有効であるが、リボーク検出部83から3未満の鍵情報が無効という情報が与えられた場合には、鍵番号1、2の鍵有効性情報について無効という情報を書き込む。
鍵更新部85はIPコネクション管理部24とIPコネクション管理部24から呼び出される第1コネクション部33を介してWebアプリ配布サーバ5から最新の鍵情報をダウンロードして、署名検証を行い、改ざんが検出されなかった場合には、操作機器に保存される鍵情報を上書きする機能を有する。鍵更新部85は必須の構成ではない。
図27は第7の実施形態におけるWebアプリ配布サーバ5の内部構造を示すブロック図である。図27のWebアプリ配布サーバ5は、図5と比較して、鍵情報提供部47を追加した点で異なる。
鍵情報提供部47は、情報操作装置1もしくは情報出力装置3からの鍵情報の取得要求に従って、最新の鍵情報を不図示のWebアプリ配布サーバ5が備えるストレージから取得し、HTTPサーバ処理部43を介して要求元に送信する機能を有する。
図28は第7の実施形態における情報出力装置3の内部構造を示すブロック図である。図4の情報出力装置3に鍵更新部77を備える点が異なる。
鍵更新部77はIPコネクション管理部70とIPコネクション管理部70から呼び出される第1コネクション部78を介してWebアプリ配布サーバ5に対して最新の鍵情報の取得要求を送信する機能を有する。鍵更新部77は鍵情報を受け取ると、情報出力装置3の不図示のストレージに格納される鍵情報を受け取った鍵情報で上書きする。鍵更新部77は情報出力装置3の起動時もしくは定期的に実行され、鍵情報を最新に保つことができる。
図29は第7の実施形態におけるリボーク処理を含む認証要求時の処理手順を示すフローチャートである。図29のフローチャートは、図7と比較して、レスポンス生成依頼からレスポンス(認証トークン)生成までの処理が異なるため、異なる処理を中心に説明する。
認証トークン生成部61はチャレンジ情報に対応するレスポンスの生成依頼を出した(ステップS131)後、リボーク検出部83は第2コネクション部34を介して情報出力装置3から伝えられた鍵番号(Nとする)を取得し(ステップS132)、その鍵番号未満(0….N-1)の鍵を無効と判定し、鍵無効化部84を呼び出す。鍵無効化部84は図26に示されるような鍵情報について、与えられた鍵番号0….N-1の鍵の鍵有効性情報を無効に書き換える(ステップS133)。その後、鍵管理部63は鍵番号Nの鍵情報を取得する(ステップS134)。アプリ認証処理部23は取得した鍵情報と受け取ったチャレンジ情報からレスポンスを生成し、認証トークンとして返す(ステップS135)。
図30は第7の実施形態における鍵更新時の処理手順を示すフローチャートである。鍵更新部77は、情報操作装置1の起動時や一定期間ごとに鍵更新処理を行う。鍵更新部77はまず、IPコネクション管理部70とIPコネクション管理部70から呼び出される第1コネクション部78を介してWebアプリ配布サーバ5から最新鍵データのダウンロードを行う(ステップS141)。次に、情報操作装置1内に保存されている署名検証用公開鍵を読み込み(ステップS142)、ダウンロードした鍵データの署名検証を行う(ステップS143)。改ざんが検出された場合にはエラーを発生させ(ステップS144、S145)、検出されなかった場合にはダウンロードした鍵データで情報操作装置1内に保存されている図30に示される形式の鍵データを上書き保存する(ステップS144、S146)。
このように、第7の実施形態では、Webアプリ配布サーバ5から取得した鍵データを情報操作装置1が所持する署名検証用公開鍵を利用して検証し、検証に成功したら、認証トークン生成用の鍵を更新するようにしたため、安全に鍵の更新作業を行うことができる。
ここで、上述した実施形態に係る発明の利用場面について、説明する。
近年、HTMLやJavaScriptでリッチなクライアントアプリケーション(ウェブアプリケーション)を記述することが一般的になりつつある。これに伴い、デジタルTVや携帯電話、スマートフォン等のデジタル機器でも、実行させるアプリケーションソフトウェアをウェブアプリケーションで記述する例が出てきている。デジタルTVにおけるIPTVなどはその端的な例であり、ウェブアプリケーションの技術を用いてメニュー画面や動画再生画面を表示する規格が登場している。
このウェブアプリケーションはHTMLやJavaScriptなどが解釈できるブラウザベースの実行環境で実行される。このウェブアプリケーションは、一般に複数のページファイルとメディアファイルとで構成される。ここでいうメディアファイルとは、JPEG、GIF、MPEGなどの動画像データを格納するファイルや、MP3などの音声データを格納するファイルのことをいう。一方、ページファイルには、HTMLなどで記述される文字や画像等の配置情報と表示文字データなどに加えて、JavaScriptのような制御プログラム情報が格納される場合がある。また、JavaScriptは、HTTP(XMLHTTPRequest)やWebSocketと呼ばれるプロトコルで、HTTPサーバやWebSocketサーバと通信することができる。
HTTPサーバやWebSocketサーバは、サーバ上の機器が備える各種機能を操作するインタフェースを搭載することにより、機器の遠隔操作を行えるようになる。例えばデジタルTVにWebSocketサーバを搭載し、そのWebSocketプロトコルを介してチャンネル変更や録画予約機能を行えるようにした場合には、例えばタブレット端末のブラウザで動作するウェブアプリケーションからチャンネル変更や録画予約などの遠隔操作を行えるようになる。
タブレット端末等の情報操作装置から、デジタルTV等の情報出力装置の各種機能を操作するための機器操作命令を無線送信して、情報出力装置を遠隔操作する場合、情報操作装置は、ウェブサーバにアクセスして、機器操作命令が記述されたウェブアプリケーションを取得して実行し、その実行結果に基づいて、機器操作命令を情報出力装置に送信することになる。
したがって、情報操作装置が実行するウェブアプリケーションが信頼のおけるものでないと、情報出力装置が勝手に操作されてしまうことになる。そのような場合に、上述した実施形態に係る発明は、ユーザの許諾なしに情報出力装置が勝手に操作されることを防止しつつ、情報操作装置から情報出力装置を操作できるようにして利便性を向上させることができる。
上述した実施形態で説明した情報操作装置1および情報出力装置3の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、情報操作装置1および情報出力装置3の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
また、情報操作装置1および情報出力装置3の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。