(57)【特許請求の範囲】
【請求項１】
手続き型言語により作成されたコンピュータプログラムのコードを読み込み、解釈して実行する第１のプログラム実行部を備え、
前記第１のプログラム実行部は、少なくとも１つのポートを含み、該ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て実行する、情報処理装置。
【請求項２】
前記第１のプログラム実行部は複数の認証モードを有し、
前記第１のプログラム実行部は、コンピュータプログラムで定義される変数及び関数の実行に際して、自装置からの指示で実行する場合と、他装置から前記ポートを介して実行を指示される場合とで異なる認証モードによる認証を経て実行する、請求項１に記載の情報処理装置。
【請求項３】
前記第１のプログラム実行部は、前記第２のプログラム実行部と相互に認証されている場合に、前記第２のプログラム実行部が第３のプログラム実行部との間で相互に認証されているときは、前記第３のプログラム実行部との認証無しに、該第３のプログラム実行部が実行する第３のコンピュータプログラムのコードを読み出して実行できる、請求項１または２に記載の情報処理装置。
【請求項４】
前記第１のプログラム実行部は、自装置に備えられる前記第２のプログラム実行部と前記ポートを通じて認証する、請求項１〜３のいずれかに記載の情報処理装置。
【請求項５】
前記第１のプログラム実行部は、他装置に備えられる前記第２のプログラム実行部と前記ポートを通じて認証する、請求項１〜３のいずれかに記載の情報処理装置。
【請求項６】
前記第１のプログラム実行部が実行する前記コンピュータプログラムは電子マネーシステムのプログラムである、請求項１〜５のいずれかに記載の情報処理装置。
【請求項７】
手続き型言語により作成されたコンピュータプログラムのコードを、少なくとも１つのポートを含む第１のプログラム実行部によって読み込み、解釈して実行することを含み、
前記実行することは、
前記ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て前記第１のプログラム実行部で実行する、情報処理方法。
【請求項８】
コンピュータに、
手続き型言語により作成されたコンピュータプログラムのコードを、少なくとも１つのポートを含む第１のプログラム実行部によって読み込み、解釈して実行することを実行させ、
前記実行することは、
前記ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て前記第１のプログラム実行部で実行する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
ＬＩＳＰやＲｕｂｙ、Ｐｙｔｈｏｎ等の手続き型プログラミング言語では、変数や関数の定義情報がプログラムの実行時に読み込まれて、読み込まれた関数定義や変数の値に基づいてプログラムが実行される。このような手続き型プログラミング言語を解釈して実行するソフトウェア（逐次実行型データ処理モジュール）は、起動時に、毎回手続き型プログラミング言語で記述されたアプリケーションプログラムを読み込み、その後は読み込んだアプリケーションプログラムに従って、入力データを処理し、また処理結果を出力する。【０００３】
手続き型プログラミング言語を解釈して実行するソフトウェアの特徴としては、定義した変数名を入力すると、その変数の内容を読み出すことができ、また定義した関数を読み出す関数を入力すると、その関数コードを出力することができる。【０００４】
従来は、コンピュータシステムの構築において、要求仕様から機能モジュールをその目的毎に分解し、そのモジュール制御命令や通信手段も最初から定義して、コンパイラを用いて構築を実現している。機能モジュールの開発においては、そのモジュールの振る舞いを最初から機能モジュールにプリグラミングコードを用いて記述するか、既に記述されたコードを利用して、コンパイルし、リンクし、デバッグするという手順を踏んでシステムに組み込んでいた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１１−５１３８２４号公報
【特許文献２】国際公開第２００５／１２１９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のコンピュータシステムの構築においては、生成される機能モジュールは特性も通信手段も指示命令形態も独自に決定されおり、デバッグや修正に時間がかかっていた。例えば、データ処理を担う機能モジュールを複数に分けてネットワークを介した通信を利用して開発する場合でも、各機能モジュールの振る舞いを変えるには再プログラミングが必要であり、かつモジュールのセキュリティ実装も慎重に行う必要があり、開発コストがなかなか低下しない。【０００７】
そして、機能モジュールにセキュリティ機能を実装するにはそのコードを秘密にすることでセキュリティを保っている場合があるが、独立して実行される別々の逐次実行型データ処理モジュール間で認証処理は実行されておらず、コードの変更に関わる多くの人がコードを知ることができ、セキュリティの確保が困難であるという問題があった。【０００８】
そこで、本開示は、上記問題に鑑みてなされたものであり、本開示の目的とするところは、独立して実行される別々の逐次実行型データ処理モジュールを安全に連携させることが可能な、新規かつ改良された情報処理装置、情報処理方法およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本開示によれば、手続き型言語により作成されたコンピュータプログラムのコードを読み込み、解釈して実行する第１のプログラム実行部を備え、前記第１のプログラム実行部は、少なくとも１つのポートを含み、該ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て実行する、情報処理装置が提供される。【００１０】
また本開示によれば、手続き型言語により作成されたコンピュータプログラムのコードを、少なくとも１つのポートを含む第１のプログラム実行部によって読み込み、解釈して実行することを含み、前記実行することは、前記ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て前記第１のプログラム実行部で実行する、情報処理方法が提供される。【００１１】
また本開示によれば、コンピュータに、手続き型言語により作成されたコンピュータプログラムのコードを、少なくとも１つのポートを含む第１のプログラム実行部によって読み込み、解釈して実行することを実行させ、前記実行することは、前記ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て前記第１のプログラム実行部で実行する、コンピュータプログラムが提供される。
【発明の効果】
【００１２】
以上説明したように本開示によれば、独立して実行される別々の逐次実行型データ処理モジュールを安全に連携させることが可能な、新規かつ改良された情報処理装置、情報処理方法およびコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本開示の一実施形態にかかる情報処理システム１０の機能構成を示す説明図である。
【図２】本発明の一実施形態にかかる情報処理装置１００で実行される、コンピュータプログラムの構造例を示す説明図である。
【図３】本発明の一実施形態にかかる情報処理装置１００で実行される、コンピュータプログラムの構造例を示す説明図である。
【図４】本発明の一実施形態にかかる情報処理装置１００で実行される、コンピュータプログラムの構造例を示す説明図である。
【図５】本発明の一実施形態にかかる情報処理装置１００で実行される、コンピュータプログラムの構造例を示す説明図である。
【図６】図２に示したシンボルと、図３に示したコンスセルと、図４に示した名前格納テーブルと、図５に示した認証鍵テーブルとの対応関係を示す説明図である。
【図７】本開示の一実施形態にかかる情報処理装置１００、２００で実行されるコンピュータプログラムの概念について示す説明図である。
【図８】本開示の一実施形態にかかる逐次実行型データ処理モジュールが組み込まれた機器の構成例を示す説明図である。
【図９】機器間の相互認証の際の相互認証構造の例を示す説明図である。
【図１０】別々の機器で動作する同一の逐次実行型データ処理モジュールによる連携を概念的に示す説明図である。
【図１１】本開示の一実施形態にかかる逐次実行型データ処理モジュールが組み込まれた機器の構成例を示す説明図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１５】
なお、説明は以下の順序で行うものとする。
＜１．従来技術とその問題点＞
＜２．本開示の一実施形態＞
［情報処理システムの機能構成］
［プログラム構造例］
［ユースケース例］
＜３．まとめ＞
【００１６】
＜１．従来技術とその問題点＞
まず、本開示の好適な実施の形態について詳細に説明する前に、本開示の従来技術とその問題点について説明する。上述したように、従来のコンピュータシステムの構築においては、要求仕様から機能モジュールをその目的毎に分解し、そのモジュールの制御命令や通信手段も最初から定義しておき、コンパイラを用いてコンパイルすることで、システムの構築を実現している。機能モジュールの開発においては、その機能モジュールの振る舞いを最初から機能モジュールにプログラミングコードを用いて記述し、または、既に記述されたコードを利用して、コンパイルし、リンクし、デバッグするという手順を踏んでシステムに組み込んでいた。
【００１７】
このとき生成される機能モジュールは、特性も通信手段も指示命令形態も独自に決定されているため、同様にテストを何度も行う必要があり、システムのデバッグや修正に時間がかかっていた。
【００１８】
また、実行モジュールを複数に分けて、ネットワークを介して通信する方式で開発する場合でも、各機能モジュールの振る舞いを変えるには再度プログラミングし直すところから始めなければならず、かつ、実行モジュールへ、後述するセキュリティ機能を実装する際には、そのセキュリティ機能の実装も慎重に行う必要があり、開発コストがなかなか下がらないという問題があった。
【００１９】
また、セキュリティ機能を組み込むにあたっては、そのコードを秘密にすることでセキュリティを保っている場合があるが、コードの修正が必要な場合は、その実行モジュールの変更に関わる多くの開発者が、セキュリティ機能についての情報を知ってしまう問題が有った。
【００２０】
近年、スクリプト言語を用いてこのような問題点を改善する仕組みが出来つつあるが、スクリプトの読み込みは、キーボードを用いて、システムに備わったハードディスクなどに記録されたファイルから読み込む事で実現しており、ネットワーク越しにスクリプトを安全に読み込み、複数のデータ処理モジュールと安全に連携させる機能を持ったスクリプト処理モジュールは存在していなかった。
【００２１】
スクリプトを実行するスクリプト処理モジュールで実現されたコードを実行させて、ネットワーク通信を行いながら協調して動作するシステムは存在するが、ネットワークに接続し、接続されたネットワーク経由で接続先の別のスクリプト処理モジュールにスクリプトプログラムを組み込むなどの、高度にリモート制御可能なスクリプト処理モジュールは存在せず、プログラムの変更を安全にリモートで行うことが出来なかった。
【００２２】
コンパイラ型言語で１つの実行モジュールを初期化ファイルの変更だけで自由にその振る舞いを変えるように構築することは、冗長性が多くなり無駄が多く、かつ必要なものが備わっていないなどの不備が発生しやすかった。そして、セキュアなアプリケーションの開発時には、相互認証などのセキュリティアルゴリズムを隠蔽しながらも互換性を維持したい場合に、アプリケーションの数だけそのセキュリティアルゴリズムの開示が必要となり、セキュリティを高く保つことが難しかった。
【００２３】
そこで以下で説明する本開示の好適な実施の形態では、逐次実行型データ処理モジュールの機能を拡張し、処理単位を複数のモジュールに分散しながらも、そのモジュール間で認証処理を実行することで責任を分散して実行できる逐次実行型データ処理モジュールを示す。
【００２４】
＜２．本開示の一実施形態＞
［情報処理システムの機能構成］
まず、本開示の一実施形態にかかる情報処理システムの機能構成について説明する。図１は、本開示の一実施形態にかかる情報処理システム１０の機能構成を示す説明図である。以下、図１を用いて本開示の一実施形態にかかる情報処理システム１０の機能構成について説明する。
【００２５】
図１に示したように、本開示の一実施形態にかかる情報処理システム１０は、プログラムを実行する情報処理装置１００と、ＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  Ｒｏｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１５０と、入力部１６０と、表示部１７０と、外部記憶装置１８０と、インタフェース（Ｉ／Ｆ）１９０と、を含んで構成される。
【００２６】
情報処理装置１００は、手続き型プログラミング言語を解釈して実行することができるよう構成されているものであり、そのようなプログラミング言語として、例えばＬＩＳＰ、Ｓｃｈｅｍｅ、Ｒｕｂｙ、Ｐｙｔｈｏｎ等がある。
【００２７】
図１に示したように、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｓｅｓｓｉｎｇ  Ｕｎｉｔ）１１０と、暗号化／復号部１２０と、ＲＯＭ１３０と、ＲＡＭ１４０と、を含んで構成される。
【００２８】
ＣＰＵ１１０は、情報処理装置１００の動作を制御するものであり、ＲＯＭ１３０に予め記録されているオペレーティングシステムソフトの読み出し命令を実行することで、当該オペレーティングシステムを実行することができる。ＣＰＵ１１０は、オペレーティングシステムの実行に際しては、ＲＡＭ１４０をワークエリアとして用いることができる。ここで、ＲＯＭ１３０に記録されているオペレーティングシステムソフトとしては、例えば、上述したような手続き型プログラミング言語を解釈して実行できるものである。なお本開示においては、外部記憶装置１８０から手続き型プログラムを読み込み実行する形でも良い。
【００２９】
本実施形態にかかる情報処理装置１００のＲＯＭ１３０から読み込まれるプログラムは、インタプリタとして処理する上記手続き型プログラミング言語の基本機能に加え、セキュリティ機能が付加されたものが格納される。これにより、情報処理装置１００にアプリケーションプログラムを組み込む際に、事前にコンパイルする必要がなく、またセキュリティ機能が付加されているので、アプリケーションが利用される情報処理装置１００そのものでデバッグが可能となる。従って、開発ステップの短縮に繋がって、短期間でのアプリケーションプログラムの開発が可能となる。
【００３０】
暗号化／復号部１２０は、入力されてくるデータに対して、指定された鍵を用いて暗号化処理を施して出力したり、入力されてくる暗号化データに対して、指定された鍵を用いて復号処理を施して出力したりするものである。本実施形態では、ソースコードを外部記憶装置１８０に保存する際にソースコードを暗号化したり、暗号化された状態で外部記憶装置１８０に記憶されているソースコードを復号したりするものである。暗号化／復号部１２０がソースコードの暗号化及び復号に用いる鍵は、ＮＶＲＡＭ１５０に格納される。
【００３１】
入力部１６０は、情報処理装置１００に接続され、情報処理装置１００に対するユーザの入力操作を受け付けるものである。入力部１６０は、例えばキーボードやマウス、タッチパネル等で構成されていてもよい。また表示部１７０は、情報処理装置１００に接続され、情報処理装置１００のＣＰＵ１１０における情報処理結果を、ＣＰＵ１１０の処理に基づいて表示するものである。表示部１７０は、例えば液晶ディスプレイ、有機ＥＬディスプレイその他の平板表示装置で構成されていてもよい。
【００３２】
外部記憶装置１８０は、情報処理装置１００に接続され、情報処理装置１００に用いられる各種データは格納するものである。表示部１７０は、例えばハードディスクで構成されていてもよい。
【００３３】
本実施形態では、外部記憶装置１８０には、手続き型プログラミング言語を解釈して実行することができる逐次実行型データ処理モジュール（「リスト処理モジュール」とも称する）と、その逐次実行型データ処理モジュールが読み込んで実行するソースコードが格納される。このソースコードは、暗号化／復号部１２０で暗号化された状態で格納される。暗号化／復号部１２０で暗号化された状態でソースコードが外部記憶装置１８０に記憶されることで、ソースコードの機密性を高めることが可能になる。
【００３４】
インタフェース１９０は、情報処理装置１００を他の装置や機器と接続するためのインタフェースであり、例えばシリアルインタフェースやパラレルインタフェース等で構成される。図１では、情報処理装置１００がインタフェース１９０を介して、ＩＣカードリーダライタ２０や、ネットワーク３０に接続されている情報処理装置２００と接続されている状態を図示している。
【００３５】
本実施形態では、情報処理装置２００も図１に示した情報処理装置１００の構成と同様の構成を有しており、リスト処理モジュールがソースコードを読み込んでスクリプトを実行することができる。
【００３６】
なお、図１では、ＮＶＲＡＭ１５０と、入力部１６０と、表示部１７０とは、情報処理装置１００の外部に設けられているように図示されているが、本開示はかかる例に限定されるものではない。すなわち、ＮＶＲＡＭ１５０、入力部１６０、表示部１７０の少なくともいずれかは情報処理装置１００の内部に設けられる構成を有していてもよい。以上、図１を用いて、本発明の一実施形態にかかる情報処理装置１００のハードウェア構成について説明した。次に、図１に示した情報処理装置１００で実行される、コンピュータプログラムの構造について説明する。
【００３７】
［プログラム構造例］
図２〜図５は、本発明の一実施形態にかかる情報処理装置１００で実行される、コンピュータプログラムの構造例を示す説明図である。以下、図２〜図５を用いて、本発明の一実施形態にかかる情報処理装置１００で実行される、コンピュータプログラムの構造例について説明する。
【００３８】
なお、以下においては、情報処理装置１００で実行されるコンピュータプログラムの言語として、特に断りが無ければＬＩＳＰを前提として説明するが、本開示においては、プログラミング言語として使用可能である言語はかかる例に限定されず、拡張機能または標準機能において、変数毎及び関数毎にそれぞれ独立してセキュリティが設定できるように構成することが可能な、手続き型のプログラミング言語であればいかなるものであっても良い。
【００３９】
ＣＰＵ１２０は、コンピュータプログラムの実行に際しては、情報処理装置１００で開発され、情報処理装置１００に組み込まれたプログラムのソースコードを解釈して実行するためのリスト処理モジュールをロードする。図２は、リスト処理モジュールが定義できる、シンボルと呼ぶデータ構造を示す説明図である。
【００４０】
図２に示したように、リスト処理モジュールが定義できるシンボル４００は、名前領域４０１と、変数定義領域４０２と、関数定義領域４０３と、セキュリティ属性領域４０４と、で構成される。
【００４１】
名前領域４０１は、印刷可能な文字テーブルを指し示すものである。名前領域４０１には、そのシンボルが変数を規定するものであればその変数名が格納され、関数を規定するものであればその関数名が格納されるものである。図２では、名前領域４０１を「ｐｎａｍｅ」で指し示している。
【００４２】
変数定義領域４０２は、そのシンボルが単純変数を規定するものであればその値を格納し、リスト変数を規定するものであればそのリストを指し示す値が格納されるものである。図２では、変数定義領域４０２を「ｖａｌｕｅ」で指し示している。
【００４３】
関数定義領域４０３は、そのシンボルが関数を規定するものであれば、その関数実態が格納されるものである。図３では、関数定義領域４０３を「ｆｕｎｃｔｉｏｎ」で指し示している。
【００４４】
セキュリティ属性領域４０４は、そのシンボルについてのセキュリティ属性に関する情報が格納されるものである。セキュリティ属性としては、例えば変数の読み出し属性、変数の変更属性、関数の実行属性がある。セキュリティ属性領域４０４には、そのシンボルへのアクセス権限を示すアクセスフラグと、そのシンボルへアクセスするための認証鍵を格納するテーブルを指し示す値とが格納される。
【００４５】
図２に示したシンボル４００に加えて、リスト構造を構成するためのコンスセルと呼ぶセルが連続的に定義されている。図３は、リスト構造を構成するためのコンスセル４１０の構成例を示す説明図である。コンスセル４１０は、図３に示したように、ＣＡＲスロット４１１およびＣＤＲスロット４１２と呼ばれる２つのポインタからなるオブジェクトである。図３では、ＣＡＲスロット４１１としてｃａｒ０〜ｃａｒ９、ＣＤＲスロット４１２としてｃｄｒ０〜ｃｄｒ９を示している。もちろん、それぞれのスロットの数はかかる例に限定されないことは言うまでもない。
【００４６】
シンボル４００の名前領域４０１に格納される名前を格納するためのテーブルも設けられる。図４はシンボル４００の名前領域４０１に格納される名前を格納するための名前格納テーブル４２０の構造例を示す説明図である。図４に示した名前格納テーブル４２０には、「ｅｖａｌ」、「ｓｅｔｑ」、「ｃｏｎｓ」、「ｄｅｆｕｎ」、「ｏｓａｉｆｕ」といった名称が格納されており、その実態であるシンボルと１対１に対応している。符号４２１は名称「ｅｖａｌ」が格納される領域であり、符号４２２は名称「ｓｅｔｑ」が格納される領域であり、符号４２３は名称「ｃｏｎｓ」が格納される領域であり、符号４２４は名称「ｄｅｆｕｎ」が格納される領域であり、符号４２５は名称「ｏｓａｉｆｕ」が格納される領域である。名前格納テーブル４２０の外部からシンボル名が名前格納テーブル４２０に対して入力されると、名前格納テーブル４２０に格納されているその入力されたシンボル名に対するシンボルが指し示されて評価される。なお、「ｏｓａｉｆｕ」は、情報処理装置１００に電子マネー機能を組み込む際にその電子マネーの残高を表す変数であるとする。
【００４７】
そして、シンボル４００のセキュリティ属性領域４０４に格納される、認証鍵を格納するテーブルを指し示す値に対応するテーブルも設けられる。図５は、認証鍵を格納する認証鍵テーブル４３０の構造例を示す説明図である。図５は、認証鍵テーブル４３０において、認証鍵がバージョン番号（ｋｖ１〜ｋｖ５）で管理されている状態を示すものである。符号４３１は鍵「ｋｅｙ１」が格納される領域であり、符号４３２は鍵「ｋｅｙ２」が格納される領域であり、符号４３３は鍵「ｋｅｙ３」が格納される領域であり、符号４３４は鍵「ｋｅｙ４」が格納される領域であり、符号４３５は鍵「ｋｅｙ５」が格納される領域である。
【００４８】
図６は、図２に示したシンボルと、図３に示したコンスセルと、図４に示した名前格納テーブルと、図５に示した認証鍵テーブルとの対応関係を示す説明図である。上述したように、シンボルは、印刷可能な名前のテーブルを指し示す領域と、値若しくは値のリストを指し示す領域と、関数属性と、セキュリティ属性とを持つ。関数属性は、関数のタイプ及びその関数の実態を指し示すポインタを持ち、セキュリティ属性は、セキュリティフラグと、鍵バージョンと、鍵を指し示すポインタとを持つ。なお、図６では、図５に示した認証鍵テーブル４３０において、符号４３１で示した鍵「ｋｅｙ１」及び符号４３２で示した鍵「ｋｅｙ２」が使用される様子が図示されている。
【００４９】
このように、リスト処理モジュールの一般的構造はシンボルと呼ばれ、数値若しくは数値を保持したリストへのポインタと、関数定義であれば関数へのポインタと、印刷可能な文字列を格納したテーブルを指し示すポインタと、で構成されている
【００５０】
そして本実施形態では、これに加えて、セキュリティ属性と２種類の暗号化鍵情報を保持するテーブルへのポインタをシンボルに付加している。一方の鍵へのポインタはマスター鍵を指し、もう一方の鍵へのポインタは、当該シンボルのアクセス鍵（認証鍵）を指している。マスター鍵は当該シンボルのセキュリティ属性やアクセス鍵を変更する場合に、前もって相互認証機能により認証されているべき鍵を指している。シンボルに保持した情報の内容評価、内容変更、関数実行においてそのシンボルに設定されたセキュリティフラグが立っている場合は、シンボルに付加された一方の鍵で認証してあることがそのシンボル利用の条件となる。もう一方の鍵は、当該シンボルの鍵を変更する場合に、その権限を確認する権限認証鍵を示している。アクセス情報の変更には、その権限認証鍵で認証された状態でなければならない。
【００５１】
また、図３に示したような、コンスセルと呼ばれる、シンボルとシンボルの関係を表す２組のポインタがあり。それぞれのポインタは、シンボル又は他のシンボルを指すコンスセルを指し示す構造となっている。
【００５２】
組み込み関数はＲＯＭ１３０に書き込まれており、情報処理装置１００の最初の電源投入で、ＲＯＭ１３０に書き込まれている組み込み関数を、ＲＡＭ１４０に作成したシンボルに定義する。その後の電源投入では、既に登録済みのシンボルは初期化されない。
【００５３】
上記の構成は、ユーザにより新たな関数が登録される場合においても、同様に機能する構造となっている。
【００５４】
ＣＰＵ１１０が実行するリスト処理モジュールは、シンボルを自由に登録し、そのシンボルに数値やリスト、関数を自由に登録できる構成となっている。そして、登録されるシンボルにセキュリティ機能を生かすために、そのシンボルに暗号鍵とアクセスフラグを登録しておく。ＣＰＵ１１０が実行するリスト処理モジュールには、システム鍵と呼ぶ暗号化鍵が最初に設定されている。そのシステム鍵で相互認証されたモードになっている状態でのみ、新たに登録されたシンボルは、そのシンボル独自の鍵とアクセスフラグが設定されることができる。また、ＣＰＵ１１０が実行するリスト処理モジュールで実行されるコンピュータプログラムは、システム鍵で相互認証されたモードになっている状態に限り、使用される変数や関数の定義を変更可能な構成となっている。
【００５５】
ＣＰＵ１１０が実行するリスト処理モジュールは、関数シンボルの登録に際しては、その関数で利用するシンボルの全ての鍵で認証済みであることが登録条件となっている。そしてその後、リスト処理モジュールは、その登録された関数を利用する場合は、単にその関数実行鍵で認証されていれば良い構造になっている。
【００５６】
以上、図１に示した情報処理装置１００で実行される、コンピュータプログラムの構造について説明した。次に、情報処理装置１００、２００で実行されるコンピュータプログラムについて詳細に説明する。
【００５７】
図７は、本開示の一実施形態にかかる情報処理装置１００、２００で実行されるコンピュータプログラムの概念について示す説明図である。以下、図７を用いて本開示の一実施形態にかかる情報処理装置１００、２００で実行されるコンピュータプログラムの概念について説明する。
【００５８】
逐次解釈型言語はインタラクティブモードとしてＴＯＰ  ＬＥＶＥＬと呼ばれるＲｅａｄ  Ｅｖａｌ  Ｐｒｉｎｔ  Ｌｏｏｐ（ＲＥＰＬ）がある。情報処理装置１００に接続された入力装置１７０から命令が入力されると、このＲＥＰＬにより、命令が読み込み（Ｒｅａｄ）され、評価（Ｅｖａｌ）され、出力（Ｐｒｉｎｔ）される。
【００５９】
本実施形態では、情報処理装置１００で入力された関数は、情報処理装置２００へのスクリプトを出力とし、情報処理装置２００での評価（Ｅｖａｌ）結果を受け取り、情報処理装置１００の結果として出力（Ｐｒｉｎｔ）する。情報処理装置２００に接続された外部機器が、同様の逐次解釈型言語の入力となっていた場合は、そのＲＥＰＬが繰り返される。
【００６０】
逐次解釈型言語の関数や定義変数は、例えば、上述したようなアクセスコントロールフラグを持った構造であり、例えば、外部機器で定義された変数や関数を読み出したり、変数や関数の定義を変更したりする場合には、認証が要求されるものとする。例えば、情報処理装置２００に格納されているスクリプトＢで定義されている変数や関数を、情報処理装置１００の逐次解釈型機能モジュールで実行しようとする場合は、情報処理装置１００と情報処理装置２００との間で相互認証を要するものとする。その逆も同様である。
【００６１】
情報処理装置１００と情報処理装置２００とは、同一の構造を有するものであるとし、通信Ｉ／Ｆ１はローカルポートとネットワーク通信ポートの切り替え及び認証モードを持つ。図７では、情報処理装置１００はローカルポートに接続された状態を示していて、情報処理装置２００はネットワーク通信ポートに接続された状態を示している。
【００６２】
例えば、上述した「ｏｓａｉｆｕ」という変数は、電子マネーの残高が格納される変数であるが、この変数が定義されたスクリプトが例えば情報記憶装置２００に保存されている場合に、情報処理装置１００の逐次解釈型機能モジュールから参照しようとする場合は、情報処理装置１００と情報処理装置２００との間で相互認証を要してからでないと、情報処理装置１００の逐次解釈型機能モジュールからは参照できないようにする。
【００６３】
通信Ｉ／Ｆ１のモードは、後述する関数ａｕｔｈ１の成功でモード０からモード１に遷移し、同じく後述する関数ａｕｔｈ２の成功でモード１からモード２に遷移する。また通信Ｉ／Ｆ２は後述する関数ｅｘ−ａｕｔｈ１の成功でモード０からモード１に遷移し、同じく後述する関数ｅｘ−ａｕｔｈ２の成功でモード１からモード２に遷移する。ここで、関数ｅｘ−ａｕｔｈ１はＥＶＡＬにより関数ａｕｔｈ１が生成され、関数ｅｘ−ａｕｔｈ２は同じように関数ａｕｔｈ２が生成され通信Ｉ／Ｆ２を介してネットワーク通信ポートに送られる。
【００６４】
情報処理装置１００の通信Ｉ／Ｆ２は、関数ｅｘ−ａｕｔｈ２の成功でモード１からモード２に遷移すると、情報処理装置２００の通信Ｉ／Ｆ１との間で暗号通信セッションが張られる。情報処理装置１００の通信Ｉ／Ｆ２と情報処理装置２００の通信Ｉ／Ｆ１との間で暗号通信セッションが張られると、ＥＶＡＬより送られる送信文は暗号化され、また受信文は復号される。また同様に、情報処理装置２００の通信Ｉ／Ｆ１も関数ｅｘ−ａｕｔｈ２の成功でモード２になると、情報処理装置１００の通信Ｉ／Ｆ２との間で暗号通信セッションが確立する。情報処理装置２００の通信Ｉ／Ｆ１に情報処理装置１００の通信Ｉ／Ｆ２との間で暗号通信セッションが確立されると、受信文を復号し、送信文を暗号化することで、情報処理装置１００の通信Ｉ／Ｆ２との暗号化通信が可能となる。
【００６５】
本実施形態では、情報処理装置２００のように通信Ｉ／Ｆ１がネットワークに接続された状態をｍｉｎｉｏｎモードと呼ぶ。ｍｉｎｉｏｎモードでは、通常のモード（ｎｏｒｍａｌモードと称する）の機器から手続き関数ｒｅｑｕｅｓｔを用いてスクリプトが送られ、ｎｏｒｍａｌモードの機器は、ｍｉｎｉｏｎモードの機器から結果を得ることが出来る。またｍｉｎｉｏｎモードとなった機器は、機器に接続されたキーボードでなく、ネットワークを介してどの機器からでも接続可能である。従ってｍｉｎｉｏｎモードは、逐次解釈型機能モジュール上の手続き関数の振る舞いを制限している。
【００６６】
通信Ｉ／Ｆ１、２は、認証モード０、１の時は平文で通信し合い、認証モード２になると、相互認証で交換して得られた乱数を、１つはセッション鍵、もう１つは初期値として暗号通信に利用する。なお、認証方式は上述の構成を利用し、同時に複数のシンボルを対象に認証する方式を用いている。
【００６７】
データ構造は、例えば１６ｂｙｔｅをブロックとする構造を定義する。データ入力は、Ｈｅｘａ入力では例えば「＃＿ｎｎｎｎ．．．」と表記し、ｂａｓｅ６４の場合は「＃〜ｎｎｎｎ．．．．」と表記する。
【００６８】
シンボルへは、例えば３ビットのセキュリティフラグを追加し、関数ｅｖａｌ，ｍｏｄ，ｅｘｅの機能を制限する。そして、上述の１６ｂｙｔｅのブロックデータを認証鍵とし、その鍵へのポインタデータをシンボルへ追加する。
【００６９】
認証条件は、セキュリティロックされた変数・関数の利用・評価では、それぞれのシンボルが内部相互認証（ａｕｔｈ１，ａｕｔｈ２）によるモード２か、外部認証（ｅｘ−ａｕｔｈ１）によるモード１で無ければならないとする。
【００７０】
標準コマンドの機能制限は、ｄｅｆｉｎｅ関数により定義する関数で利用するグローバル変数及び関数は、定義済みでかつ必要な認証済みでなければ実行できないものとする。また、セキュリティロックされた引数への関数・変数利用では、その変数は認証済みで無ければ利用できないものとする。ネットワーク通信経由の場合は、Ｔｏｐ  Ｌｅｖｅｌにおけるｄｅｆｉｎｅ関数の利用では、通信Ｉ／Ｆ１のモードがモード２で無ければならないとする。セキュリティフラグがセットされている関数・変数は、実行・評価時には、認証済みで無ければ利用できないものとする。
【００７１】
本実施形態では、装置間でのスクリプトの実行に関する機能コマンドは、例えば以下のように定義する。もちろん、コマンドの名称や機能は以下で示したものに限定されないことは言うまでもない。
ｕｎｄｅｆ：ｄｅｆｉｎｅ関数で定義した関数・変数を削除する
ｓｔａｒｔ−ｍｉｎｉｏｎ：特定のネットアドレスのポートのソケットを、スクリプトのＲｅａｄ入力及びＰｒｉｎｔ出力として接続する
ｃｏｎｎ−ｍｉｎｉｏｎ：特定のネットアドレスのポートを、他の機器の通信ソケットに接続する
ｒｅｑｕｅｓｔ：ｍｉｎｉｏｎモードの機器にスクリプトを送信し、その結果を受信する
ｓｅｔｓｙｍ：シンボルにセキュリティ属性を付加する
ａｕｔｈ１：シンボルに付属する認証鍵と、乱数によるメッセージコードとを用いて認証する
ａｕｔｈ２：ａｕｔｈ１で交換したデータを基に再度データ交換し相互認証する
ｅｘ−ａｕｔｈ１：ａｕｔｈ１関数を生成し、ｍｉｎｉｏｎモードの機器に送信し、その結果を受信・解析して内部で保持する
ｅｘ−ａｕｔｈ２：ｅｘ−ａｕｔｈ１コマンドで受信し解析した内容を利用し、更にｍ４を生成してａｕｔｈ２コマンドに組み込み、ｍｉｎｉｏｎモードの機器に送信する
ｂａｃｋｕｐ：読み込み定義された変数・関数・セキュリティ属性を、初期化ファイルとしてファイルに書き出す
【００７２】
関数の機能制限は、上記関数ｅｘ−ａｕｔｈ１，２の利用は、ｍｉｎｉｏｎモードではシステム鍵による認証を必要とする。なおｎｏｒｍａｌモードの場合は、関数ｅｘ−ａｕｔｈ１，２の利用に際して認証の必要はないものとする。このように関数ｅｘ−ａｕｔｈ１，２の利用を制限することより、勝手にネットワーク経由で外部から設定された鍵を用いて認証されるのを防ぐことができる。
【００７３】
また、関数ｌｏａｄの利用は、ｍｉｎｉｏｎモードではシステム鍵による認証を必要とする。なおｎｏｒｍａｌモードの場合は、関数ｌｏａｄの利用に際して認証の必要はないものとする。このように関数ｌｏａｄの利用を制限することより、勝手にネットワーク経由で外部から他の初期化ファイルにより変更されるのを防ぐことができる。
【００７４】
また、関数ｂａｃｋｕｐの利用は、ｍｉｎｉｏｎモードではシステム鍵による認証を必要とする。このように関数ｂａｃｋｕｐの利用を制限することより、リモートで勝手にバックアップされてしまうことを防ぐことができる。
【００７５】
ファイルの利用制限は、関数ｌｏａｄで読み込んだ初期化ファイルは、リスト処理モジュールの実行中はロックされ続けるものとする。これにより、同一の初期化ファイルを複数のモジュールから読み込まれ、変更されることで内容が競合することを防ぐことができる。
【００７６】
本実施形態にかかる実行モジュールが組み込まれた情報処理装置において、外部機器に接続するための外部接続ポートが２つ以上存在する場合には、例えば、１つのポートは認証鍵を保持したセキュリティカードを想定し、もう１つのポートはセキュリティカードで認証された関数を用いて暗号化通信しながら制御する外部機器に繋がることを想定できる。このように、本実施形態にかかる実行モジュールが組み込まれた情報処理装置において、外部機器に接続するための外部接続ポートが２つ以上存在する場合にも、外部に認証鍵が暴露される危険性を排除することが出来る。
【００７７】
図８は、本開示の一実施形態にかかる逐次実行型データ処理モジュールが組み込まれた機器の構成例を示す説明図である。図８には、ＩＣカード５０１、リーダライタ（Ｒ／Ｗ）５０２、コントローラ５１０、５２０、サーバ５３０、５４０が図示されている。
【００７８】
ＩＣカード５０１は、リーダライタ（Ｒ／Ｗ）５０２との間でＲＦ近接触通信を実行する。ＩＣカード５０１の内部のメモリ（図示せず）にはリソースを限定した逐次実行型データ処理モジュールが組み込まれており、例えば、ＩＣカード５０１が電子マネー機能を有するＩＣカードであれば、内部のメモリには、電子マネープログラムと、プログラムを実行するための操作鍵とが設定されている。
【００７９】
リーダライタ（Ｒ／Ｗ）５０２は、コントローラ５１０と接続され、ＩＣカード５０１との間でＲＦ近接触通信を実行する。リーダライタ（Ｒ／Ｗ）５０２に接続されたコントローラ５１０には逐次実行型データ処理モジュールが組み込まれ、ＩＣカード５０１に設定された、プログラムにおいて定義されている変数と関数を操作する鍵と、ＩＣカード５０１の処理履歴とを保持している
【００８０】
コントローラ５１０は、リーダライタ（Ｒ／Ｗ）５０２の動作を制御する。コントローラ５１０には、入力部５１２と、表示部５１３と、ＨＤＤ５１４と、が接続されている。コントローラ５１０には、逐次実行型データ処理モジュールが組み込まれ、リーダライタ（Ｒ／Ｗ）５０２の初期化や起動、及びリーダライタ（Ｒ／Ｗ）５０２に保存された電子マネー処理記録をコントローラ５１０へアップロードする機能がスクリプト言語で設定されている。
【００８１】
コントローラ５１０は２つ以上の通信ポートを有し、図８では、ポート０がリーダライタ（Ｒ／Ｗ）５０２に、ポート１がコントローラ５２０に、それぞれ接続されている状態を示している。コントローラ５１０はイニシエータでリーダライタ５０２はターゲットとなり、リーダライタ５０２はＲＦ近接触通信でイニシエータとして機能し、接続先のＩＣカード５０１がターゲットとなる。
【００８２】
図８に示したように、コントローラ５２０は、入力部５２２と、表示部５２３と、ＨＤＤ５２４と、を備えている。コントローラ５２０は３つ以上の通信ポートを有し、図８では、ポート０がコントローラ５１０に、ポート１がサーバ５３０に、ポート２がサーバ５４０に、それぞれ接続されている状態を示している。
【００８３】
図８に示したように、サーバ５３０は、入力部５３２と、表示部５３３と、ＨＤＤ５３４と、を備えている。同様に、図８に示したように、サーバ５４０は、入力部５４２と、表示部５４３と、ＨＤＤ５４４と、を備えている。サーバ５３０、５４０はそれぞれ１つ以上のポートを有し、図８では、それぞれポート０がコントローラ５２０に接続されている状態を示している。
【００８４】
図８では、コントローラ５１０がｎｏｒｍａｌモードで、コントローラ５２０、サーバ５３０、５４０がｍｉｎｉｏｎモードで動作している状態が示されている。コントローラ５１０がｎｏｒｍａｌモードで、コントローラ５２０がｍｉｎｉｏｎモードで動作しており、コントローラ５１０とコントローラ５２０との間で相互認証が完了した状態であれば、コントローラ５２０に組み込まれた関数をコントローラ５１０から実行したり、コントローラ５２０に組み込まれたスクリプトをコントローラ５１０から変更したりすることが可能となる。
【００８５】
そして、コントローラ５１０とコントローラ５２０との間で相互認証が完了した状態で、さらにコントローラ５２０とサーバ５３０との間で相互認証が完了した状態であれば、サーバ５３０に組み込まれた関数をコントローラ５１０から実行したり、サーバ５３０に組み込まれたスクリプトをコントローラ５１０から変更したりすることが可能となる。同様に、コントローラ５１０とコントローラ５２０との間で相互認証が完了した状態で、さらにコントローラ５２０とサーバ５４０との間で相互認証が完了した状態であれば、サーバ５４０に組み込まれた関数をコントローラ５１０から実行したり、サーバ５４０に組み込まれたスクリプトをコントローラ５１０から変更したりすることが可能となる。
【００８６】
このように、機器間で相互認証することで、ｎｏｒｍａｌモードで動作する機器からｍｉｎｉｏｎモードで動作する機器に組み込まれたスクリプトを実行したり、そのスクリプトを書き換えたりすることができる。
【００８７】
図９は、機器間の相互認証の際の相互認証構造の例を示す説明図である。図９では、情報処理装置１００と情報処理装置２００との間の相互認証の際の相互認証構造について図示されている。情報処理装置１００と情報処理装置２００のそれぞれで暗号化鍵を生成すると共に、その暗号化鍵でお互いに情報を暗号化および復号することで、情報処理装置１００と情報処理装置２００との間で相互認証する例を示している。
【００８８】
例えば、情報処理装置１００のデータ“＿ｒａ”は、情報処理装置１００の暗号化鍵で暗号化されて情報処理装置２００に送られ、情報処理装置２００の暗号化鍵で復号され取り出されると共に、再び報処理装置２００の暗号化鍵で暗号化されて情報処理装置１００に送られる。同様に、情報処理装置２００のデータ“＿ｒｂ”は、情報処理装置２００の暗号化鍵で暗号化されて情報処理装置１００に送られ、情報処理装置１００の暗号化鍵で復号され取り出されると共に、再び報処理装置１００の暗号化鍵で暗号化されて情報処理装置２００に送られる。
【００８９】
図９に示した構造は、情報処理装置１００と情報処理装置２００がそれぞれ有している情報をお互いに暗号化して授受し合うことで、情報処理装置１００と情報処理装置２００とを相互認証させるよう構成されたものであるが、もちろん、本開示においては、機器間の相互認証の構造はかかる例に限定されるものではない。
【００９０】
別々の機器で動作する同一のデータ処理モジュールが、それぞれの機器に格納されている初期化ファイルを読み込むことにより、内部に持つ変数や関数及び認証鍵が変わるので、機器別に振る舞いが変わり、かつその定義関数の実行も、接続された他のデータ処理モジュールの持つ鍵で認証されて動作可能となるように、権限を分離させることが可能となる。
【００９１】
図１０は、別々の機器で動作する同一のデータ処理モジュールによる連携を概念的に示す説明図である。図１０には、機器Ａ、Ｂ、Ｃの３つの機器が図示されており、機器Ａ、Ｂ、Ｃのそれぞれで動作するデータ処理モジュールによる連携について図示されている。
【００９２】
機器Ａは、ＮＩＬ（Ｎｏ  ｉｎｔｅｒａｃｔ  Ｌｉｎｋ）モードと称するモードで動作する。このモードは、キーボードからの入力を内部で評価処理し、その結果を表示装置に出力するモードである。機器Ａは、起動時には特に何も指定しないことによってＮＩＬモードで動作し、機器Ｂと連携したい場合には、機器Ｂのアドレスおよびポートを指定して機器Ｂに接続する。
【００９３】
機器Ａは、鍵Ｓ１を用いて、ハードディスクから実行プログラムを復号し読み込む。そして機器Ａは、機器Ｂに接続して機器Ｂのスクリプトを使用する際には、鍵Ａで機器Ｂと認証し、プログラム実行指示を機器Ｂに送る。機器Ａは、機器Ｂとの認証が完了すると、ＴＯＰ  ＬＥＶＥＬでの変数定義、関数定義を自由に実行することができる。
【００９４】
機器Ｂおよび機器Ｃは、ＭＩＬ（Ｍｉｎｉｏｎ  Ｉｎｔｅｒａｃｔ  Ｌｉｎｋ）モードと称するモードで動作する。このモードは、起動時にサーバとして接続されるアドレスとポートを指定し、クライアントの指示により他の機器への接続と認証を行うモードである。ＭＩＬモードでは、クライアントからの入力を内部のデータ処理モジュール評価処理し、その結果をクライアントに返信する。備わっている入出力装置は、自装置の内部に組み込まれているプログラムの入出力に使用される。
【００９５】
機器Ｂは、鍵Ｓ２を用いて、ハードディスクから実行プログラムを復号し読み込む。そして機器Ｂは、機器Ａと鍵Ａで認証し、認証が完了すると、機器Ａからのプログラム実行指示を許可する。
【００９６】
機器Ｃは、鍵Ｓ３を用いて、ハードディスクから実行プログラムを復号し読み込む。機器Ｂは、機器Ａの指示により、鍵Ｂで機器Ｃと認証し、機器Ｃは、プログラム実行指示を機器Ｂに送る。機器Ａと機器Ｂとが相互認証され、機器Ｂと機器Ｃとが相互認証されると、機器Ａと機器Ｃとが相互認証されたものとみなされる。
【００９７】
相互認証が無い場合は、接続された機器からの変数定義や関数定義の追加や変更は制限されるが、相互に認証された暗号化通信モードでは、変数定義や関数定義の追加や変更も行うことができる。
【００９８】
図１１は、本開示の一実施形態にかかる逐次実行型データ処理モジュールが組み込まれた機器の構成例を示す説明図である。図１１には、ＩＣカード６１０、リーダライタ（Ｒ／Ｗ）６２０、およびコントローラ６３０が図示されている。コントローラ６３０には、リーダライタ６２０と相互認証するための鍵Ｓ１が格納されている。
【００９９】
図１１に示した各機器は、コントローラ６３０がＮＩＬモードで動作し、ＩＣカード６１０およびリーダライタ（Ｒ／Ｗ）６２０がＭＩＬモードで動作する。この場合は、コントローラ６３０とリーダライタ（Ｒ／Ｗ）６２０とが鍵Ｓ１で相互認証されていれば、コントローラ６３０はリーダライタ（Ｒ／Ｗ）６２０に組み込まれたスクリプトを、リーダライタ（Ｒ／Ｗ）６２０に組み込まれた逐次実行型データ処理モジュールに実行させることができ、またリーダライタ（Ｒ／Ｗ）６２０に組み込まれたスクリプトの変数定義や関数定義の追加や変更も行うことができる。上記スクリプトは、例えば商品代金の決済に電子マネーを用いる電子マネーシステムを実現するためのスクリプトであってもよい。
【０１００】
また、コントローラ６３０とリーダライタ（Ｒ／Ｗ）６２０とが鍵Ｓ１で相互認証され、リーダライタ（Ｒ／Ｗ）６２０とＩＣカード６１０とが相互認証されていれば、コントローラ６３０はＩＣカード６１０に組み込まれたスクリプトを、ＩＣカード６１０に組み込まれた逐次実行型データ処理モジュールに実行させることができ、またＩＣカード６１０に組み込まれたスクリプトの変数定義や関数定義の追加や変更も行うことができる。
【０１０１】
［ユースケース例］
本開示の一実施形態にかかる情報処理装置１００で実行される逐次実行型データ処理モジュールは、以下のような用途に適用することができる。もちろん、本開示の一実施形態にかかる情報処理装置１００で実行される逐次実行型データ処理モジュールの適用例は以下に示すものに限られないことは言うまでもない。
【０１０２】
・セキュアーマルチ無線ルータ用途
それぞれの機器間を接続する無線ルータと接続機器に本機能を組み込みルータにより接続を管理するスクリプトプログラムにより接続条件をダイナミックに変更したり、接続機器同士が共通認証鍵を持たなくても認証を肩代わりしたりする仕組みの構築が可能となる。
【０１０３】
・電子マネーとそのサーバ
電子マネー用途のＩＣカードに、逐次実行型データ処理モジュールを組み込みまたそのＩＣカードと認証するサーバにも同様な仕組みを組み込み、決済を行う。
【０１０４】
・表示装置付きＩＣカード
ＩＣカードの内部データ表示やキーパッドによる入力処理を、逐次実行型データ処理モジュールに読み込ませるスクリプトで制御する。
【０１０５】
・クラウドサーバとクライアント端末
クラウドサーバとクライアント端末に逐次実行型データ処理モジュールを組み込み、クライアントよりサーバ認証してスクリプトプログラムを読み込ませ、クラウドサーバにプログラムをアップロードすることで、プログラムを安全に稼動させることが出来る。
【０１０６】
・トラステッドリンク
複数の装置（例えば端末Ａ、サーバＢ、サーバＣ、端末Ｄとする）のそれぞれに逐次実行型データ処理モジュールを組み込み、それぞれの２者間で交換した認証鍵でセッションを張り、端末間をセキュアに通信させる仕組みを実現する。例えば端末ＡとサーバＢ、サーバＢとサーバＣ、サーバＣと端末Ｄの間で認証鍵を交換してセッションを張ることで、端末Ａと端末Ｄとの間をセキュアに通信させることができる。
【０１０７】
・シナリオベースシステム
シナリオを分解しスクリプトとして逐次実行型データ処理モジュールで構成したアクターに割り振ることで、複雑なシステムを実現する。
【０１０８】
・セキュアデータベース
データベースと逐次実行型データ処理モジュールを接続し、スクリプトを用いたダイナミックなデータベースアクセスコントロールを実現する。
【０１０９】
もちろん、本開示の一実施形態にかかる情報処理装置１００で実行される逐次実行型データ処理モジュールの適用例は、上述したものに限られないことは言うまでもない。また、機器間の連携だけでなく、同一機器内の別々の領域（別ディレクトリ、別フォルダなど）にそれぞれ逐次実行型データ処理モジュールを組み込むことで同様の動作を実現できる。
【０１１０】
＜３．まとめ＞
以上説明したように本開示によれば、逐次実行型データ処理モジュールの機能を拡張し、処理単位を複数のモジュールに分散しながらも、そのモジュール間を同一のプロトコルを用いて標準化されたネットワーク通信で責任を分散して実行できる新たな逐次実行型データ処理モジュールが提供される。
【０１１１】
逐次実行型データ処理モジュールの実行コードと初期化ファイルの組み合わせで独自の機能を持つ複数のセキュアデータベースを設定でき、それらのデータベースを相互に認証しながら通信することが可能で、かつその通信ネットワークを介してそれぞれのデータベースに追加スクリプトを安全に組み込むことが可能となる。
【０１１２】
変数や関数にアクセスコントロール属性を付加すると同時に認証鍵も設定するが、その認証鍵をそれぞれのモジュールに一度設定してしまえばその後認証して変数関数を利用しようとするときにもうひとつの鍵を設定したモジュールとの認証で関数、変数が利用可能と成り、認証鍵そのものを他に記録しておく必要も無くなるため安全度が増す。
【０１１３】
本モジュールに組み込まれた関数はインタラクティブモードでの入出力ポートがキーボードとディスプレイの場合は何も制限無く利用できるが、通信ポートを介した利用においては勝手なスクリプトの変更や削除、初期化ファイルの変更などが出来ないよう制限されているため勝手な改ざんなどの脅威から守ることができる。
【０１１４】
本モジュールを複数連結し暗号通信をする場合接続されたモジュール間のみが知る鍵が設定されていれば、その鍵を用いて相互に認証し、それぞれの暗号通信セッションを通して通信が可能となり自由度を増すことができる。
【０１１５】
なお、上述した本開示の一実施形態では、情報処理装置１００と情報処理装置２００との間で相互に認証して、一方の情報処理装置に格納されているスクリプトを他方の情報処理装置から読み出して実行する例を示したが、本開示はかかる例に限定されない。例えば、同一の装置内の別領域（別ドライブ、別ディレクトリ等）に格納されているスクリプトを、それぞれ、他の領域に格納されている逐次実行型データ処理モジュールを相互認証し、ある逐次実行型データ処理モジュールから読み出して実行するような場合にも適用可能である。
【０１１６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１１７】
なお、本技術は以下のような構成も取ることができる。
（１）
手続き型言語により作成されたコンピュータプログラムのコードを読み込み、解釈して実行する第１のプログラム実行部を備え、
前記第１のプログラム実行部は、少なくとも１つのポートを含み、該ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て実行する、情報処理装置。
（２）
前記第１のプログラム実行部は複数の認証モードを有し、
前記第１のプログラム実行部は、コンピュータプログラムで定義される変数及び関数の実行に際して、自装置からの指示で実行する場合と、前記他装置から前記ポートを介して実行を指示される場合とで異なる認証モードによる認証を経て実行する、前記（１）に記載の情報処理装置。
（３）
前記第１のプログラム実行部は、前記第２のプログラム実行部と相互に認証されている場合に、前記第２のプログラム実行部が第３のプログラム実行部との間で相互に認証されているときは、前記第３のプログラム実行部との認証無しに、該第３のプログラム実行部が実行する第３のコンピュータプログラムのコードを読み出して実行できる、前記（１）または（２）に記載の情報処理装置。
（４）
前記第１のプログラム実行部は、自装置に備えられる前記第２のプログラム実行部と前記ポートを通じて認証する、前記（１）から（３）のいずれかに記載の情報処理装置。
（５）
前記第１のプログラム実行部は、他装置に備えられる前記第２のプログラム実行部と前記ポートを通じて認証する、前記（１）から（３）のいずれかに記載の情報処理装置。
（６）
前記第１のプログラム実行部が実行する前記コンピュータプログラムは電子マネーシステムのプログラムである、前記（１）から（５）のいずれかに記載の情報処理装置。
（７）
手続き型言語により作成されたコンピュータプログラムのコードを、少なくとも１つのポートを含む第１のプログラム実行部によって読み込み、解釈して実行することを含み、
前記実行することは、
前記ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て前記第１のプログラム実行部で実行する、情報処理方法。
（８）
コンピュータに、
手続き型言語により作成されたコンピュータプログラムのコードを、少なくとも１つのポートを含む第１のプログラム実行部によって読み込み、解釈して実行することを実行させ、
前記実行することは、
前記ポートを介して、第２のプログラム実行部が実行する手続き型言語により作成された第２のコンピュータプログラムを、前記第２のプログラム実行部との間の認証を経て前記第１のプログラム実行部で実行する、コンピュータプログラム。
【符号の説明】
【０１１８】
１００、２００    情報処理装置
１１０    ＣＰＵ
１２０    暗号化／復号部
１３０    ＲＯＭ
１４０    ＲＡＭ
１５０    ＮＶＲＡＭ
１６０    入力部
１７０    表示部
【図１】
0005962671.tif 000002
【図２】
0005962671.tif 000003
【図３】
0005962671.tif 000004
【図４】
0005962671.tif 000005
【図５】
0005962671.tif 000006
【図６】
0005962671.tif 000007
【図７】
0005962671.tif 000008
【図８】
0005962671.tif 000009
【図９】
0005962671.tif 000010
【図１０】
0005962671.tif 000011
【図１１】
0005962671.tif 000012