JP5347263B2 - Client device and communication method - Google Patents

Client device and communication method Download PDF

Info

Publication number
JP5347263B2
JP5347263B2 JP2007302975A JP2007302975A JP5347263B2 JP 5347263 B2 JP5347263 B2 JP 5347263B2 JP 2007302975 A JP2007302975 A JP 2007302975A JP 2007302975 A JP2007302975 A JP 2007302975A JP 5347263 B2 JP5347263 B2 JP 5347263B2
Authority
JP
Japan
Prior art keywords
program
communication
sandbox
client device
multicast
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007302975A
Other languages
Japanese (ja)
Other versions
JP2009129157A (en
Inventor
拓也 荒木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007302975A priority Critical patent/JP5347263B2/en
Publication of JP2009129157A publication Critical patent/JP2009129157A/en
Application granted granted Critical
Publication of JP5347263B2 publication Critical patent/JP5347263B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、クライアント装置に関し、クライアント装置が保持するプログラム間での通信に利用する。 The present invention also relates to the client equipment, is used for communication between programs that the client device has.

近年のインターネットの普及に伴い、WWW(World Wide Web)のような分散システムが広く利用されている。それに伴い、単純にサーバ装置に保存された文書をダウンロードして表示するだけではなく、サーバ装置からプログラムをダウンロードしてクライアント装置で実行する形態も普及している。   With the spread of the Internet in recent years, distributed systems such as WWW (World Wide Web) are widely used. Accordingly, not only simply downloading and displaying a document stored in the server apparatus but also downloading a program from the server apparatus and executing it on the client apparatus has become widespread.

これには、例えばWebブラウザ内でJava(登録商標)プログラムを実行するJava Appletや、Webブラウザ内でスクリプトを実行するJava Script、またFlashのようなプラグインがある。   These include, for example, Java Applet that executes a Java (registered trademark) program in a Web browser, Java Script that executes a script in a Web browser, and a plug-in such as Flash.

これらのダウンロードしたプログラムは悪意を持たないことが保証できない。そのため、プログラムを実行する環境で、その動作を制限している。前述の例の場合は、プログラムからアクセスできるファイルを制限したり、通信できる相手を、プログラムをダウンロードしたサーバ装置に限定したりしている。   These downloaded programs cannot be guaranteed not to be malicious. Therefore, the operation is restricted in the environment where the program is executed. In the case of the above-described example, the files that can be accessed from the program are limited, or the parties that can communicate are limited to the server device that downloaded the program.

ここで、通信できる相手を、プログラムをダウンロードしたサーバ装置に限定することは、プログラムを実行する際の大きな制約となる。この制約を緩和する従来のシステムの一例が特許文献1に記載されている。この従来のシステムは、サーバ装置内にリダイレクタと呼ばれる部分を持ち、次のように動作する。   Here, limiting the parties with whom communication is possible to the server device that has downloaded the program is a major limitation when the program is executed. An example of a conventional system that relaxes this restriction is described in Patent Document 1. This conventional system has a part called a redirector in the server device, and operates as follows.

すなわち、クライアント装置が任意の対象に対して通信を行いたい場合は、一度、サーバ装置内で動作しているリダイレクタに接続し、リダイレクタがクライアント装置の代わりに通信を行う。つまり、通信はリダイレクタを仲介者として経由することで行われる。   That is, when a client device wants to communicate with an arbitrary target, it connects to a redirector operating in the server device once, and the redirector performs communication instead of the client device. In other words, communication is performed through the redirector as an intermediary.

特許第3966487号Japanese Patent No. 3966487 特開2005−100440号公報JP 2005-100440 A

上述した技術における第一の問題点は、リダイレクタを経由することが、サーバ装置の負荷になり、また通信遅延の原因になるということである。その理由は、必ずサーバ装置上で動作しているリダイレクタを経由して通信する必要があるためである。   The first problem in the above-described technique is that passing through the redirector causes a load on the server device and causes a communication delay. This is because it is necessary to communicate via a redirector operating on the server device.

第二の問題点は、複数のクライアント装置に同じデータを配布するマルチキャスト通信が効率良く実現できないということである。その理由は、必ずサーバ装置を経由して通信を行うため、サーバ装置にデータ配布のための負荷が集中するためである。   The second problem is that multicast communication for distributing the same data to a plurality of client devices cannot be realized efficiently. The reason is that communication is always performed via the server device, and the load for data distribution is concentrated on the server device.

本発明は、このような課題を解決するために行われたものであって、ダウンロードしたプログラム間で、セキュリティを保ちながら、サーバ装置を介さず直接通信することができ、また、ダウンロードしたプログラム間で、セキュリティを保ちながら、データを配布しあうことで、サーバ装置に負荷をかけずに、マルチキャスト通信を効率よく実現することができるクライアント装置および通信方法を提供することを目的とする。 The present invention has been made to solve such a problem, and can directly communicate between downloaded programs without using a server device while maintaining security, and between downloaded programs. An object of the present invention is to provide a client device and a communication method capable of efficiently realizing multicast communication without distributing the load by distributing data while maintaining security.

本発明は、実行中のプログラムの情報を保持するプログラム管理部と、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うデータ送受信部とを備えたクライアント装置において、通信要求の他プログラムが、自装置が実行中のプログラムと同じ組織の管理下にあることを確認する相互認証手段を備えたことを特徴とする。 The present invention provides a client device, comprising: a program management unit for holding information of a program being executed, and a data transceiver unit for performing acquisition of communication requests from other programs in other client devices, a communication requesting other The program includes a mutual authentication unit for confirming that the program is under the control of the same organization as the program being executed.

また、本発明を通信方法としての観点から観ると、本発明は、実行中のプログラムの情報を保持し、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うクライアント装置が実行する通信方法において、相互認証手段が、通信要求の他プログラムが自装置が実行中のプログラムと同じ組織の管理下にあることを確認することを特徴とする。 Further, when the present invention is viewed from the viewpoint of a communication method, the present invention is a communication that is executed by a client device that holds information about a program being executed and captures a communication request from another program in another client device. The method is characterized in that the mutual authentication means confirms that the other program of the communication request source is under the control of the same organization as the program being executed by the own apparatus.

また、本発明をコンピュータプログラムとしての観点から観ると、本発明は、コンピュータ装置にインストールすることにより、そのコンピュータ装置に、実行中のプログラムの情報を保持するプログラム管理機能と、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うデータ送受信機能とを備えたクライアント装置の機能に相応する機能を実現させるコンピュータプログラムにおいて、通信要求の他プログラムが、自装置が実行中のプログラムと同じ組織の管理下にあることを確認する相互認証機能を実現させることを特徴とする。 When the present invention is viewed from the viewpoint of a computer program, the present invention can be installed in a computer device so that the computer device retains information on the program being executed, and in other client devices. In a computer program for realizing a function corresponding to the function of a client device having a data transmission / reception function for capturing a communication request from another program , the other program of the communication request source is the same as the program being executed by the own device It is characterized by realizing a mutual authentication function to confirm that it is under the management of the organization.

本発明によれば、ダウンロードしたプログラム間で、セキュリティを保ちながら、サーバ装置を介さず直接通信することができ、また、ダウンロードしたプログラム間で、セキュリティを保ちながら、データを配布しあうことで、サーバ装置に負荷をかけずに、マルチキャスト通信を効率良く実現することができる。   According to the present invention, it is possible to communicate directly between downloaded programs without using a server device while maintaining security, and by distributing data while maintaining security between downloaded programs, Multicast communication can be efficiently realized without imposing a load on the server device.

本発明の実施形態は、ネットワークからダウンロードした悪意のある可能性を含むプログラム間でも安全に直接通信を行うことができる。   The embodiment of the present invention can securely communicate directly even between programs including a malicious possibility downloaded from a network.

本発明の一実施形態に係る通信システムは、クライアント装置にプログラムの実行開始および実行中のプログラム情報の保持を行うプログラム管理部と、サンドボックスの中で動作するプログラムと、サンドボックス内の通信管理部と、マルチキャスト管理部とを備え、サーバ装置にマルチキャスト網構造管理部を備える。   A communication system according to an embodiment of the present invention includes: a program management unit that starts program execution in a client device and retains program information being executed; a program that operates in a sandbox; and communication management in the sandbox And a multicast management unit, and the server device includes a multicast network structure management unit.

ここで、サンドボックスとは、プログラムが行う通信要求を許可または拒否する処理を行う手段である。   Here, the sandbox is a means for performing processing for permitting or rejecting a communication request made by a program.

プログラムが他のクライアント装置と通信しようとする際に、通信管理部が、相手側クライアント装置も同じ組織の管理下にあるプログラムを実行しているかどうかを確認し、そうである場合のみ通信を許可する。このように動作することで、不正アクセスを排除した上で、クライアント装置間の直接通信を実現する。   When a program tries to communicate with another client device, the communication management unit checks whether the other client device is also executing a program under the same organization's management, and if so, only allows communication To do. By operating in this way, direct communication between client devices is realized while eliminating unauthorized access.

また、サーバ装置のマルチキャスト網構造管理部が、各クライアント装置で構成されるマルチキャスト網の構造を把握し、クライアント装置に対し、マルチキャスト通信をどのクライアント装置に転送すればよいかを指定する。クライアント装置の通信管理部はマルチキャスト通信を受け取ると、指定された他のクライアント装置に通信を転送する。ここで、クライアント装置間の通信は、先ほどと同様に、同じ組織の管理下にあるプログラムを実行しているかどうかを確認し、そうである場合のみ通信を許可する。   In addition, the multicast network structure management unit of the server apparatus grasps the structure of the multicast network composed of each client apparatus, and designates to which client apparatus the multicast communication should be transferred to the client apparatus. Upon receiving the multicast communication, the communication management unit of the client device transfers the communication to another designated client device. Here, in the communication between the client apparatuses, it is confirmed whether or not the program under the management of the same organization is being executed, and the communication is permitted only in such a case.

以上のように動作することにより本発明の実施形態における目的を達成することができる。   By operating as described above, the object in the embodiment of the present invention can be achieved.

なお、特許文献2には「プログラムは出所由来を表す公開鍵および秘密鍵を含み、プログラム間の相互認証が成功し、公開鍵が一致した場合にのみプログラム間の通信を許可する」という提案が開示されているが、この提案はPOS(Point of Sales)と携帯電話装置との間のような距離的に近い場所にあり、特定の機器間の通信を想定しており、その効果は「情報漏洩が行われない」というところにある。   Patent Document 2 proposes that “a program includes a public key and a secret key representing the origin, and that mutual authentication between programs succeeds and communication between programs is permitted only when the public keys match”. Although disclosed, this proposal is located at a close distance, such as between a POS (Point of Sales) and a mobile phone device, and assumes communication between specific devices. There is no leakage.

これに対し、本発明は、インターネット等のネットワークを介して任意の機器に対して通信を行おうとする機器群が対象であり、その上で動作するプログラムに悪意があり、システムとは無関係の機器に対してセキュリティホールを突くような不正アクセスを行う可能性がある場合に、これを回避する効果がある。   On the other hand, the present invention is intended for a device group that attempts to communicate with an arbitrary device via a network such as the Internet, a program that operates on the device group is malicious, and a device that is not related to the system. When there is a possibility of unauthorized access such as through a security hole, there is an effect of avoiding this.

すなわち、特許文献2の提案が「特定の機器間の通信において、情報漏洩が行われない」ことが効果であるのに対し、本発明では「ネットワークを介して任意の機器間で行われる通信において、セキュリティホールを突くような、不正アクセスがプログラムから行われることを回避する」ことが効果であり、この二者間には明らかな相違がある。   That is, while the proposal of Patent Document 2 is effective in that “information is not leaked in communication between specific devices”, in the present invention, in “communication between arbitrary devices via a network”. It is effective to avoid unauthorized access from a program, such as through a security hole, and there is a clear difference between the two.

(発明の効果)
第一の効果は、ダウンロードした悪意があるかも知れないプログラム間で、セキュリティを保ちながら、サーバを介さず直接通信できるシステムを提供できることにある。
(Effect of the invention)
The first effect is that it is possible to provide a system that can directly communicate between downloaded programs that may be malicious while maintaining security.

その理由は、通信相手のプログラムを確認し、通信相手が同じ組織の管理下にあるプログラムである場合に限ることで、不正アクセスができないようにするためである。   The reason for this is to prevent unauthorized access by checking the program of the communication partner and only if the communication partner is a program under the control of the same organization.

例えば、ボットやウィルスのように、他の機器の脆弱性を突いて乗っ取ろうとする不正アクセスを考えた場合に、通信可能な相手が同じ組織の管理下にあるプログラムのみであれば、乗っ取ろうとする試みができる対象が自分の管理下にあるプログラムだけに限定されるため、結果的に乗っ取りという行為が成立しないので、不正アクセスは回避される。   For example, if you consider unauthorized access that attempts to take over the vulnerability of other devices, such as bots and viruses, and if the only party that can communicate is the program under the same organization's control, then Since the target that can be attempted is limited to only the programs under its control, the act of hijacking is not established as a result, so that unauthorized access is avoided.

第二の効果は、ダウンロードした悪意があるかも知れないプログラム間で、セキュリティを保ちながら、マルチキャスト通信を提供できることにある。   The second effect is that multicast communication can be provided while maintaining security between downloaded malicious programs.

その理由は、通信相手が同じ組織の管理下にあるプログラムであることを確認したプログラム間でマルチキャリア網を構築し、不正アクセスを行わないようにした上でマルチキャスト通信を行うためである。   The reason is that a multi-carrier network is constructed between programs that are confirmed to be programs managed by the same organization, and multicast communication is performed after preventing unauthorized access.

以上のようにマルチキャスト通信を実現することができる。このように実現することで、プログラム自身はマルチキャスト網の構造やその管理を意識する必要はない、という利点がある。   As described above, multicast communication can be realized. Implementing in this way has the advantage that the program itself does not need to be aware of the structure and management of the multicast network.

(本発明の実施形態)
次に、本発明の実施形態について図面を参照して説明する。
(Embodiment of the present invention)
Next, embodiments of the present invention will be described with reference to the drawings.

図1を参照すると、本発明の実施形態は、マルチキャスト網の管理およびプログラムを配布するサーバ装置101と、クライアント装置106とから構成される。クライアント装置106は、さらに、プログラム管理部107、サンドボックス112、マルチキャスト管理部108から構成される。   Referring to FIG. 1, an embodiment of the present invention includes a server device 101 that distributes a multicast network and distributes a program, and a client device 106. The client device 106 further includes a program management unit 107, a sandbox 112, and a multicast management unit 108.

サンドボックス112は、その内部で動作するプログラム117と、通信管理部113とから構成される。通信管理部113は、サンドボックス相互認証部114、データ暗号化・変換部115、データ送受信部116から構成される。マルチキャスト管理部108は、マルチキャスト網参加受付部109、マルチキャスト通信先管理部110、生死データ送出部111から構成される。   The sandbox 112 includes a program 117 that operates therein and a communication management unit 113. The communication management unit 113 includes a sandbox mutual authentication unit 114, a data encryption / conversion unit 115, and a data transmission / reception unit 116. The multicast management unit 108 includes a multicast network participation reception unit 109, a multicast communication destination management unit 110, and a life / death data transmission unit 111.

サーバ装置101は、マッチング処理部102、生死監視部103、マルチキャスト網構造管理部104、プログラム配布部105から構成される。   The server apparatus 101 includes a matching processing unit 102, a life / death monitoring unit 103, a multicast network structure management unit 104, and a program distribution unit 105.

これらは次のように動作する。   These operate as follows.

対象となるプログラム117は、プログラム配布部105を用いてクライアント装置106に配布される。プログラム117はサンドボックス112内で実行することで、その動作を制限する。   The target program 117 is distributed to the client device 106 using the program distribution unit 105. The program 117 is executed in the sandbox 112 to restrict its operation.

まず、クライアント装置106間の直接通信について説明する。従来、プログラムがダウンロードしたサーバ装置101に対してしか通信を許可しなかったのは、悪意のあるプログラムが、ネットワークを介して他のPC等に不正アクセスを行う可能性があるためである。   First, direct communication between the client devices 106 will be described. Conventionally, communication is permitted only to the server apparatus 101 downloaded by the program because a malicious program may illegally access another PC or the like via the network.

そこで、クライアント装置106が他のクライアント装置106に対して通信を行う際は、通信相手が同じ組織の管理下にあるプログラム(典型的には同じプログラム)117である場合に限ることで、不正アクセスができないようにする。   Therefore, when the client device 106 communicates with another client device 106, unauthorized access is limited only when the communication partner is a program (typically the same program) 117 under the management of the same organization. I can't do it.

これを実現するため、サンドボックス112下で動作しているプログラム117が通信を行う際は、まずその要求を通信管理部113で捕捉する。そして、通信相手先のサンドボックス112に対し、同じ組織の管理下にあるプログラム117が動作中であるかどうか確認する。確認後、サンドボックス112間で通信路を確立し、要求された通信をその通信路を通じて行う。   In order to realize this, when the program 117 operating under the sandbox 112 performs communication, the communication management unit 113 first captures the request. Then, it is confirmed whether or not the program 117 under the management of the same organization is operating with respect to the sandbox 112 of the communication partner. After confirmation, a communication path is established between the sandboxes 112, and the requested communication is performed through the communication path.

次に、マルチキャストの実現について説明する。   Next, implementation of multicast will be described.

サーバ装置101に負荷をかけずに多数のクライアント装置106に対して同じデータを送信するため、クライアント装置106同士でネットワークを構成する。ネットワークのトポロジとしては、例えば木構造が考えられる。クライアント装置106が、最初にマルチキャスト網に参加する際、以下のように動作する。   In order to transmit the same data to a large number of client devices 106 without imposing a load on the server device 101, the client devices 106 constitute a network. As a network topology, for example, a tree structure can be considered. When the client device 106 first joins the multicast network, it operates as follows.

プログラム117は、マルチキャスト網を管理するサーバ装置101に接続し、参加を要求する。この際、サーバ装置101がプログラム117をダウンロードしたものと同じである場合は、認証不要で通信可能とできる。そうでない場合は、クライアント装置106間の直接通信の場合と同様に、サンドボックス112間で認証を行う。   The program 117 connects to the server apparatus 101 that manages the multicast network and requests participation. At this time, if the server apparatus 101 is the same as the one that downloaded the program 117, communication can be performed without authentication. Otherwise, authentication is performed between the sandboxes 112 as in the case of direct communication between the client devices 106.

サーバ装置101は、アプリケーションに依存する何らかのマッチング処理を行う。アプリケーションとしては、複数人が参加するテレビ会議やゲームなどが考えられる。サーバ装置101は、参加すべきマルチキャスト網のIDをプログラムに返す。   The server apparatus 101 performs some kind of matching process depending on the application. Possible applications include video conferencing and games with multiple participants. The server apparatus 101 returns the ID of the multicast network to join to the program.

プログラム117は、このIDをマルチキャスト網参加受付部109に渡し、マルチキャスト網への参加を要求する。マルチキャスト網参加受付部109は、サーバ装置101のマルチキャスト網構造管理部104に依頼し、参加を要求する。マルチキャスト網構造管理部104は、現在のマルチキャスト網の構造から、新たにクライアント装置106を参加させるのに適切な場所を選ぶ。そして、網の変化に伴って、既に参加しているクライアント装置106に対し、マルチキャストデータの転送要求を送る。この様子を図2に示す。   The program 117 passes this ID to the multicast network participation reception unit 109 and requests participation in the multicast network. The multicast network participation reception unit 109 requests the multicast network structure management unit 104 of the server apparatus 101 to participate. The multicast network structure management unit 104 selects an appropriate location for newly joining the client device 106 from the current multicast network structure. As the network changes, a multicast data transfer request is sent to the client devices 106 that have already participated. This is shown in FIG.

図2の場合は、木構造の右下に新たにクライアント装置が参加している。そして、新たに参加したクライアント装置の上位のクライアント装置に対し、マルチキャストデータが到着した際は、新たに参加したクライアント装置に対してデータを転送するように依頼する。   In the case of FIG. 2, a client device newly participates in the lower right of the tree structure. Then, when multicast data arrives, the client device at the higher rank of the newly joined client device is requested to transfer the data to the newly joined client device.

プログラム117がデータをマルチキャストする際は、例えば図2のような木構造の場合は、木の根に当たるクライアント装置に対してマルチキャストデータを送る。データを受け取ったクライアント装置は、その下位にあるクライアント装置に対してデータを転送する。この際、クライアント装置間の直接通信の場合と同様に、サンドボックス112間での認証が行われる。   When the program 117 multicasts data, for example, in the case of a tree structure as shown in FIG. 2, multicast data is sent to the client device corresponding to the root of the tree. The client device that has received the data transfers the data to the client device below it. At this time, authentication is performed between the sandboxes 112 as in the case of direct communication between client devices.

サーバ装置101は、クライアント装置106の生死を監視し、離脱するクライアント装置106があった場合は、マルチキャスト網の再構成を行う。   The server apparatus 101 monitors the life and death of the client apparatus 106. If there is a client apparatus 106 that leaves, the server apparatus 101 reconfigures the multicast network.

ここで「クライアント装置106の生死」とは、クライアント装置106がマルチキャスト網に参加している状態を「生」と表現し、クライアント装置106がマルチキャスト網から離脱している状態を「死」と表現したものである。   Here, “the life and death of the client device 106” is expressed as “life” when the client device 106 is participating in the multicast network, and “death” when the client device 106 is disconnected from the multicast network. It is a thing.

次に、図3から図9のフローチャートを参照して本実施形態の全体の動作について説明する。まず、図3でプログラム117のダウンロードと実行について説明する。まずステップ301で、プログラム管理部107が、サーバ装置101のプログラム配布部105よりプログラムをダウンロードする。ここで、プログラム管理部107は、このプログラム117がどのサーバ装置101からダウンロードしたかを記録しておく。そして、ステップ302でプログラム管理部107はプログラム117をサンドボックス112内で実行する。プログラム管理部107は、どのプログラムが実行中であるかを把握しておく。この情報は後で利用する。   Next, the overall operation of this embodiment will be described with reference to the flowcharts of FIGS. First, download and execution of the program 117 will be described with reference to FIG. First, in step 301, the program management unit 107 downloads a program from the program distribution unit 105 of the server apparatus 101. Here, the program management unit 107 records from which server apparatus 101 the program 117 is downloaded. In step 302, the program management unit 107 executes the program 117 in the sandbox 112. The program management unit 107 keeps track of which program is being executed. This information will be used later.

次に、クライアント間の直接通信について説明する。まず、図4のステップ401でプログラム117が通信管理部113に対し、通信の開始を依頼する。次にステップ402で、その内容として、接続先について確認する。ステップ403で、その接続先が既に接続済みの通信相手かどうかを確認する。もし接続済みでなければ(ステップ403のNo)、ステップ404に進み、サンドボックス112間の認証を行う。このステップについては図5で詳しく説明する。   Next, direct communication between clients will be described. First, in step 401 of FIG. 4, the program 117 requests the communication management unit 113 to start communication. Next, in step 402, the connection destination is confirmed as its contents. In step 403, it is confirmed whether or not the connection destination is an already connected communication partner. If not connected (No in Step 403), the process proceeds to Step 404, where authentication between the sandboxes 112 is performed. This step will be described in detail with reference to FIG.

そして、ステップ405で通信可能な相手かどうかを確認し、そうでなければ(ステップ405のNo)、ステップ406に進み、プログラム117にエラーを返す。通信可能な相手であれば(ステップ405のYes)、ステップ407に進み、相手側サンドボックス112との間に通信路を確立する。この通信路は、以降そのまま保持するものとする。そして、ステップ403で既に接続済みの通信相手であった場合(ステップ403のYes)と共に、ステップ408に進む。ここでは、通信内容を暗号化したり、後述するマルチキャスト通信のために付加情報を加えるなどの変換を行う。そして、ステップ409において、確立済みの通信路を用いてその内容を送信する。   In step 405, it is confirmed whether or not the communication partner is communicable. If not (No in step 405), the process proceeds to step 406, and an error is returned to the program 117. If it is a communicable partner (Yes in Step 405), the process proceeds to Step 407, and a communication path is established with the partner-side sandbox 112. This communication channel will be held as it is thereafter. If the communication partner is already connected in step 403 (Yes in step 403), the process proceeds to step 408. Here, conversion is performed such as encrypting communication contents or adding additional information for multicast communication to be described later. In step 409, the contents are transmitted using the established communication path.

受信側はステップ410でサンドボックス112間の認証受付を行う。ステップ411で通信可能な相手かどうかを判断し、そうでなければ(ステップ411のNo)、ステップ412に進み通信を拒否する。通信可能な相手であれば(ステップ411のYes)、ステップ413で通信路を確立する。そして、ステップ414で確立済みの通信路でデータを受信する。既に通信路が確立済みであった場合は、このステップ414からスタートする。そして、ステップ415において、ステップ408で行った通信内容の暗号化および変換を復号する。そして、ステップ416で、その内容をプログラム117に転送する。   The receiving side accepts authentication between the sandboxes 112 in step 410. In step 411, it is determined whether or not the other party is communicable. If not (No in step 411), the process proceeds to step 412 and communication is rejected. If it is a communicable partner (Yes in Step 411), a communication path is established in Step 413. In step 414, the data is received through the established communication path. If the communication path has already been established, the process starts from step 414. In step 415, the communication content encryption and conversion performed in step 408 are decrypted. In step 416, the contents are transferred to the program 117.

確立された通信路は、プログラム117の終了等で破棄される。この場合は、それを認識し、再度同じクライアント装置106に通信する場合でも、ステップ403からステップ404に進み、サンドボックス112間の認証および通信路の確立を行う。   The established communication path is discarded when the program 117 ends. In this case, even when recognizing it and communicating with the same client device 106 again, the process proceeds from step 403 to step 404 to perform authentication between the sandboxes 112 and establish a communication path.

次に、ステップ404の内容について、図5を用いて詳しく説明する。まずステップ501でサンドボックス112間の認証を開始する。次のステップ502では、サンドボックス112自身の正当性をお互い確認する。これはデータ受信側が、偽物のサンドボックス112から悪意のあるデータを受信しないようにし、また、送信側が偽物のサンドボックス112に対して情報を漏洩させないようにするためである。   Next, the contents of step 404 will be described in detail with reference to FIG. First, in step 501, authentication between the sandboxes 112 is started. In the next step 502, the correctness of the sandbox 112 itself is mutually confirmed. This is to prevent the data receiving side from receiving malicious data from the fake sandbox 112 and to prevent the transmitting side from leaking information to the fake sandbox 112.

お互いが正規のサンドボックス112であることを確認するためには、サンドボックス112内に、それを確認する鍵データを埋め込んでおき、チャレンジレスポンス法など方法を用いることで実現できる。   Confirming that each other is a regular sandbox 112 can be realized by embedding key data for confirming it in the sandbox 112 and using a method such as a challenge response method.

次に、ステップ503でお互いが実行中のプログラム117の情報を交換する。これには、ステップ302でプログラム管理部107に保存しておいた情報を利用する。そして、ステップ504でこの情報を用いて、現在お互いのサンドボックス112内で実行中のプログラム117が、同じ組織の管理下にあるプログラムであることを確認する。もし、そうであれば(ステップ504のYes)、通信可能な相手と判断し、ステップ505に進む。そうでなければ(ステップ504のNo)、ステップ506に進み、通信可能な相手ではないと判断する。   Next, in step 503, information on the programs 117 being executed is exchanged. For this purpose, the information stored in the program management unit 107 in step 302 is used. In step 504, this information is used to confirm that the program 117 currently being executed in each other's sandbox 112 is a program managed by the same organization. If so (Yes in step 504), it is determined that the other party can communicate, and the process proceeds to step 505. If not (No in step 504), the process proceeds to step 506, and it is determined that the communication partner is not communicable.

ここで、プログラム117が同じ組織の管理下にあることを確認するには、単純には同じサーバ装置101からダウンロードしたプログラムであることを確認すればよい。これには、プログラム管理部107がプログラム117をダウンロードしたサーバ装置101を記録しておき、ステップ504ではそのサーバ名が同じであるかどうかを確認すればよい。   Here, in order to confirm that the program 117 is under the management of the same organization, it is only necessary to confirm that the program is a program downloaded from the same server apparatus 101. For this purpose, the server 101 that has downloaded the program 117 by the program management unit 107 is recorded, and in step 504, it can be confirmed whether the server names are the same.

あるいは、別の方法として、プログラム117に電子署名を添付する方法も考えられる。すなわち、同じ組織によって署名されたプログラムであることが確認できれば、その通信相手のプログラムが同じ組織の管理下にあることが保証できる。この場合には、プログラム管理部107が電子署名を確認し、署名した組織の名前を抽出する。そして、ステップ504ではその組織名を確認する。この場合に、プログラム117を配布するサーバ装置101は、マルチキャスト網を管理するサーバ装置101と別でもよい。   Alternatively, as another method, a method of attaching an electronic signature to the program 117 can be considered. That is, if it can be confirmed that the program is signed by the same organization, it can be guaranteed that the program of the communication partner is under the control of the same organization. In this case, the program management unit 107 confirms the electronic signature and extracts the name of the signed organization. In step 504, the organization name is confirmed. In this case, the server apparatus 101 that distributes the program 117 may be different from the server apparatus 101 that manages the multicast network.

なお、不正アクセスを回避するためだけであれば、ステップ502「サンドボックス自身の正当性を確認」の処理は省略可能である。例えば、サンドボックスX内のプログラムAが、別のサンドボックスY内のプログラムBへの通信を要求したときに、サンドボックスXは、サンドボックスYに「プログラムBがプログラムAと同じ組織の管理下にあるものかどうか」を尋ねる。もし、同じであれば、サンドボックスXは、プログラムAの通信要求を許可し、パケットを送出する。   Note that the process of step 502 “confirming the legitimacy of the sandbox itself” can be omitted if it is only to avoid unauthorized access. For example, when the program A in the sandbox X requests communication to the program B in another sandbox Y, the sandbox X sends a request to the sandbox Y that “Program B is under the control of the same organization as the program A. Ask if it is. If they are the same, the sandbox X permits the communication request of the program A and sends out the packet.

ここで、たとえサンドボックスYが正当なものでないとしても、サンドボックスXがプログラムAからのパケット送出を許可して問題はない。これによる影響は、虚偽を行ったサンドボックスY内のプログラムBがプログラムAからの攻撃を受けるだけであるが、そのようなことは起こり得ない。   Here, even if the sandbox Y is not valid, there is no problem because the sandbox X permits the packet transmission from the program A. The effect of this is that only the program B in the sandbox Y that has made a false attack is attacked by the program A, but such a situation cannot occur.

なぜならば、もし、サンドボックスYがプログラムBに対して攻撃したいのであれば、プログラムAに攻撃させる必要はなく、サンドボックスY自身で攻撃可能だからである。   This is because if the sandbox Y wants to attack the program B, the program A does not need to be attacked, and the sandbox Y itself can attack.

一方、ステップ503を省略すると、別の組織の管理下にあるプログラムに対して通信要求が可能となり、脆弱性を探してそのプログラムを乗っ取るなどの攻撃が可能となるため、ステップ503は省略不可である。   On the other hand, if step 503 is omitted, a communication request can be made to a program under the control of another organization, and an attack such as searching for a vulnerability and hijacking the program becomes possible. Therefore, step 503 cannot be omitted. is there.

次に、マルチキャストの実現について説明する。まず図6でクライアントがマルチキャスト網に新規に参加する際の手順を説明する。まず、ステップ601で、プログラムがマルチキャスト網への参加をサーバ装置101のマッチング処理部102に対して行う。これは、アプリケーションレベルの要求であり、マッチング処理部102は一般にはアプリケーションを配布する組織が用意する。例えば、ビデオ会議アプリケーションで、会議への参加を要求したり、オンラインゲームアプリケーションで、パーティへの参加を要求したりなどが考えられる。認証については、アプリケーションレベルで行われる。   Next, implementation of multicast will be described. First, a procedure when a client newly joins a multicast network will be described with reference to FIG. First, in step 601, the program joins the multicast network to the matching processing unit 102 of the server apparatus 101. This is an application level request, and the matching processing unit 102 is generally prepared by an organization that distributes applications. For example, a video conference application may request participation in a conference, or an online game application may request participation in a party. Authentication is performed at the application level.

また、このステップ601ではクライアント装置106からサーバ装置101への通信が行われている。この通信は、プログラム117をダウンロードしたサーバ装置101と同じ(あるいは同じドメイン)のサーバ装置101に対してのものであるとデータ送受信部116が認識することで許可される。このため、接続先の確認と実行中のプログラム117の情報の確認を行う。   In step 601, communication from the client device 106 to the server device 101 is performed. This communication is permitted when the data transmitting / receiving unit 116 recognizes that the communication is for the server apparatus 101 having the same (or the same domain) as the server apparatus 101 that downloaded the program 117. For this reason, the connection destination is confirmed and the information of the program 117 being executed is confirmed.

あるいは、クライアント装置106で実行しているサンドボックス112と同じ機能を持つものをサーバ装置101で実行してもよい。この場合には、サーバ装置101の各モジュールはサンドボックス112内で実行され、サーバ装置101とクライアント装置106との間の通信は、クライアント装置106間の通信と同様、サンドボックス112間の認証を行った後に行われる。   Alternatively, the server apparatus 101 may execute a function having the same function as the sandbox 112 executed in the client apparatus 106. In this case, each module of the server apparatus 101 is executed in the sandbox 112, and the communication between the server apparatus 101 and the client apparatus 106 is performed by the authentication between the sandboxes 112 as in the communication between the client apparatuses 106. Done after going.

以上のクライアント装置106とサーバ装置101との間の通信に関しては、後のステップ604でも同様である。   The communication between the client device 106 and the server device 101 described above is the same in the later step 604.

次にステップ602で、マッチング処理部102から参加すべきマルチキャスト網を示すIDを受け取る。そして、ステップ603で、このIDを用い、マルチキャスト網参加受付部に対し、マルチキャスト網への参加を依頼する。   Next, in step 602, an ID indicating a multicast network to join from the matching processing unit 102 is received. In step 603, this ID is used to request the multicast network participation acceptance unit to participate in the multicast network.

次にステップ604で、マルチキャスト網参加受付部109が、サーバ装置101のマルチキャスト網構造管理部104に対し、先に取得したIDを用い、マルチキャスト網への参加を要求する。ここで、参加要求受付後もこの接続を切断せずに保持しておき、サーバ装置101からの網情報変更通知や生死監視に用いる。   Next, in step 604, the multicast network participation reception unit 109 requests the multicast network structure management unit 104 of the server apparatus 101 to participate in the multicast network using the previously acquired ID. Here, even after accepting the participation request, this connection is held without disconnection, and is used for network information change notification and life / death monitoring from the server apparatus 101.

ここで、ステップ603から604では、ステップ601、602でサーバ装置101から受け取ったマルチキャスト網のIDを用い、再度ステップ603でサーバ装置101に要求を行っている。これを、ステップ603でプログラム117からマルチキャスト網参加受付部109に参加を要求するのではなく、サーバ装置101からクライアント装置106に対して接続を行うというやり方で実現することも可能である。ただしこの場合には、クライアント装置106は正しいサーバ装置101からの接続であることを何らかの方法で認証する必要がある。   Here, in steps 603 to 604, the ID of the multicast network received from the server apparatus 101 in steps 601 and 602 is used, and a request is made to the server apparatus 101 again in step 603. It is also possible to realize this by a method in which connection is made from the server apparatus 101 to the client apparatus 106 instead of requesting participation from the program 117 in step 603 to the multicast network participation reception unit 109. However, in this case, the client device 106 needs to authenticate by some method that the connection is from the correct server device 101.

次にステップ605で、サーバ装置101は参加要求を行ったクライアント装置106をマルチキャスト網に参加させるため、網の構造を変化させる。そして、その変化に応じて必要なクライアント装置106に必要な情報を伝える。例えば、図2のようにマルチキャスト網に木構造を用い、新たに参加するクライアント装置106を木構造の葉の部分に接続する場合は、新たに参加するクライアント装置106が接続されたクライアント装置106に対し「新たな通信先」としてそのクライアント装置106のIPアドレス等を伝える。   In step 605, the server apparatus 101 changes the network structure in order to cause the client apparatus 106 that has requested to participate to participate in the multicast network. Then, necessary information is transmitted to the necessary client device 106 in accordance with the change. For example, when a tree structure is used in the multicast network as shown in FIG. 2 and a newly participating client device 106 is connected to a leaf portion of the tree structure, the client device 106 to which the newly participating client device 106 is connected is connected. For the “new communication destination”, the IP address of the client device 106 is transmitted.

次に、ステップ606で、新規参加のクライアント装置106にも必要な網情報を通知する。これには、例えばマルチキャスト網が木構造の場合には、木の根に当たるクライアント装置106のIPアドレス等が含まれる。これは、データをマルチキャストで送る場合に、まず、木構造の根のクライアント装置106に対してデータを送る必要があるためである。   Next, in step 606, necessary network information is also notified to the newly participating client device 106. For example, when the multicast network has a tree structure, the IP address of the client device 106 corresponding to the root of the tree is included. This is because when data is sent by multicast, it is necessary to send data to the client device 106 at the root of the tree structure.

次に図7で、マルチキャスト網を用いてデータを送信する際の動作について説明する。まず、ステップ701でプログラム117がマルチキャスト通信を通信管理部113に要求する。次にステップ702でその要求がマルチキャスト通信要求であることを、データ送受信部116が認識する。   Next, referring to FIG. 7, the operation when data is transmitted using the multicast network will be described. First, in step 701, the program 117 requests the communication management unit 113 for multicast communication. In step 702, the data transmitting / receiving unit 116 recognizes that the request is a multicast communication request.

ステップ703では、マルチキャスト通信先管理部110を参照し、適切なクライアント装置106に通信を行う。ここで、適切なクライアント装置106とは、例えば図2のようにマルチキャスト網が木構造の場合には、根に当たるクライアント装置106になる。この情報は、図6のステップ606でクライアント装置106に対して渡されている。   In step 703, the multicast communication destination management unit 110 is referred to communicate with an appropriate client device 106. Here, for example, when the multicast network has a tree structure as shown in FIG. 2, the appropriate client device 106 is the client device 106 corresponding to the root. This information is passed to the client device 106 in step 606 of FIG.

そして、ステップ704では図4で説明したクライアント装置106間の直接通信と同様に通信を行う。ここで、ステップ408ではマルチキャスト通信に応じた通信内容の変換を行う。例えば、送信元がどこかという情報や、場合によってはデータのIDを追加する。   In step 704, communication is performed in the same manner as the direct communication between the client apparatuses 106 described in FIG. Here, in step 408, communication contents are converted according to multicast communication. For example, information indicating where the transmission source is, and data ID are added depending on circumstances.

マルチキャスト通信の場合もサンドボックス112間の認証などは行う必要がある。これは、サーバ装置101が指定する通信先が正しいものであるかどうかは、必ずしも信用できないためである。   In the case of multicast communication, authentication between the sandboxes 112 must be performed. This is because it is not always reliable whether the communication destination designated by the server apparatus 101 is correct.

次に図8で、マルチキャスト通信を受信する際の動作について説明する。   Next, referring to FIG. 8, an operation when receiving multicast communication will be described.

ステップ801で、データ送受信部116がマルチキャスト通信を受信し、マルチキャスト通信であることを確認する。   In step 801, the data transmitting / receiving unit 116 receives multicast communication and confirms that it is multicast communication.

次にステップ802でデータの中身を確認し、自分が送出したデータか、あるいはマルチキャスト網の実現によっては複数回同じデータを受け取る可能性があるので、既に受信したデータであるかどうかを確認する。これには、ステップ704で説明したような、データに追加された送信元情報や、データのIDを利用する。   Next, in step 802, the contents of the data are confirmed, and it is possible to receive the same data a plurality of times depending on the realization of the multicast network, or whether it is already received data. For this purpose, the transmission source information added to the data or the data ID as described in step 704 is used.

もし、自分が送出したデータではなく、既に受け取ったデータではない場合は(ステップ802のNo)、ステップ803に進む。そして、その内容をサンドボックス112内で実行中のプログラム117に転送する。   If it is not the data sent by itself but the data already received (No in step 802), the process proceeds to step 803. Then, the contents are transferred to the program 117 being executed in the sandbox 112.

もし、自分が送出したデータあるいは既に受け取ったデータの場合は(ステップ802のYes)、ステップ803を飛ばし、ステップ804に進む。   If it is the data sent by itself or the data already received (Yes in step 802), step 803 is skipped and the process proceeds to step 804.

ステップ804では、マルチキャスト通信先管理部110を参照し、適切なクライアント装置106に通信内容を転送する。例えば図2のような木構造でマルチキャスト網が構成されている場合は、自クライアント装置106の下位に当たるクライアント装置106に相当する。この情報は、ステップ605で伝えられる。   In step 804, the communication contents are transferred to an appropriate client device 106 with reference to the multicast communication destination management unit 110. For example, when a multicast network is configured with a tree structure as shown in FIG. 2, it corresponds to the client device 106 corresponding to the lower level of the own client device 106. This information is conveyed in step 605.

そして、ステップ805で図4で説明したクライアント装置106間の直接通信と同様に通信を行う。この場合もステップ704と同様、サンドボックス112間の認証は必要となる。   In step 805, communication is performed in the same manner as the direct communication between the client apparatuses 106 described with reference to FIG. In this case as well, authentication between the sandboxes 112 is required as in step 704.

次に、図9で生死監視について説明する。サーバ装置101の生死監視部103は、ステップ603で確立したクライアント装置106とサーバ装置101との間の接続を利用し、例えば一定の時間間隔を置いて、クライアント装置106の生死を確認している。   Next, life and death monitoring will be described with reference to FIG. The life / death monitoring unit 103 of the server apparatus 101 uses the connection between the client apparatus 106 and the server apparatus 101 established in step 603 to check the life / death of the client apparatus 106 at regular intervals, for example. .

ステップ901で離脱したクライアント装置106を生死監視部103が認識する。すると、ステップ902でサーバ装置101はマルチキャスト網の変更を行い、影響のあるクライアント装置106に対してマルチキャスト網情報の変更を通知する。これは、例えば図2のような木構造でマルチキャスト網が構成されている場合には、離脱したクライアント装置106の上位のクライアント装置106に対し、離脱したクライアント装置106の下位のクライアント装置106に対してもマルチキャストデータを転送するように依頼する。   The life / death monitoring unit 103 recognizes the client device 106 that has left in step 901. In step 902, the server apparatus 101 changes the multicast network and notifies the affected client apparatus 106 of the change of the multicast network information. For example, when a multicast network is configured with a tree structure as shown in FIG. 2, the client device 106 that is higher than the client device 106 that has left the client device 106 is the client device 106 that is lower than the client device 106 that has left the client device 106. Even ask to transfer multicast data.

(第二の実施形態)
次に、本発明の第二の実施形態について図面を参照して説明する。
(Second embodiment)
Next, a second embodiment of the present invention will be described with reference to the drawings.

図10は、第一の実施形態をコンピュータプログラムにより構成した場合に、そのコンピュータプログラムにより動作するコンピュータの構成図である。   FIG. 10 is a configuration diagram of a computer that operates according to a computer program when the first embodiment is configured by the computer program.

当該コンピュータプログラムは、記録媒体1002および1005に保存され、コンピュータ1003および1006に読み込まれ、その動作を制御する。それにより、コンピュータ1003は第一の実施形態のサーバ装置101と同じ動作を行い、コンピュータ1006は第一の実施形態のクライアント装置106と同じ動作を行う。   The computer program is stored in the recording media 1002 and 1005, read into the computers 1003 and 1006, and controls its operation. Thereby, the computer 1003 performs the same operation as the server apparatus 101 of the first embodiment, and the computer 1006 performs the same operation as the client apparatus 106 of the first embodiment.

本実施形態のコンピュータプログラムは記録媒体1002および1005に記録されることにより、コンピュータ1003および1006は、この記録媒体1002および1005を用いて本実施形態のコンピュータプログラムをインストールすることができる。   The computer program of the present embodiment is recorded on the recording media 1002 and 1005, so that the computers 1003 and 1006 can install the computer program of the present embodiment using the recording media 1002 and 1005.

あるいは、記録媒体1002および1005を用いずに、本実施形態のコンピュータプログラムを保持するサーバ装置からネットワークを介してコンピュータ1003および1006に本実施形態のコンピュータプログラムをインストールすることもできる。   Alternatively, the computer program of this embodiment can be installed in the computers 1003 and 1006 via a network from a server apparatus that holds the computer program of this embodiment without using the recording media 1002 and 1005.

これにより、コンピュータ1003および1006を用いて、第一の実施形態のサーバ装置101およびクライアント装置106の機能に相応する機能を実現することができる。   Accordingly, functions corresponding to the functions of the server apparatus 101 and the client apparatus 106 of the first embodiment can be realized using the computers 1003 and 1006.

なお、本実施形態のコンピュータプログラムは、コンピュータ1003および1006によって直接実行可能なものだけでなく、コンピュータ1003および1006のハードディスクなどにインストールすることによって実行可能となるものも含む。また、圧縮されたり、暗号化されたりしたものも含む。   Note that the computer program of this embodiment includes not only a computer program that can be directly executed by the computers 1003 and 1006 but also a program that can be executed by being installed in the hard disks of the computers 1003 and 1006. Also included are those that are compressed or encrypted.

(実施例)
次に、具体的な実施例を用いて本発明の実施形態の動作を説明する。まず、サンドボックス112として、言語処理系のランタイム1104を用いた場合を図11に示す。これは、例えばJavaScriptやJavaAppletを用いた場合に相当する。
(Example)
Next, the operation of the embodiment of the present invention will be described using specific examples. First, FIG. 11 shows a case where a language processing runtime 1104 is used as the sandbox 112. This corresponds to the case where, for example, JavaScript or Java Applet is used.

言語処理系ランタイム1104は、通信ライブラリ1106および補助ライブラリ1105を含む。これらのライブラリはプログラム1108からは保護されており、変更できないものとする。通信ライブラリ1106は通信管理部1107を含み、これが図1のデータ送受信部116に相当する。   The language processing system runtime 1104 includes a communication library 1106 and an auxiliary library 1105. These libraries are protected from the program 1108 and cannot be changed. The communication library 1106 includes a communication management unit 1107, which corresponds to the data transmission / reception unit 116 in FIG.

プログラム管理部1102は、言語処理系ランタイム1104を経由してプログラム1108を起動する。   The program management unit 1102 starts the program 1108 via the language processing runtime 1104.

プログラム1108は、通信を行う際、通信ライブラリ1106を経由する必要がある。ここで、言語処理系ランタイム1104の通信ライブラリ1106を、通信管理部1107を含み、またプログラム1108からの通信要求を捕捉するように変更することで、実施形態で述べた動作を実現することができる。   The program 1108 needs to go through the communication library 1106 when performing communication. Here, by changing the communication library 1106 of the language processing system runtime 1104 to include the communication management unit 1107 and capture the communication request from the program 1108, the operation described in the embodiment can be realized. .

また、プログラム1108、言語処理系ランタイム1104は、マルチキャスト管理部1103やプログラム管理部1102と通信する必要がある。これは、例えば言語処理系ランタイム1104と、マルチキャスト管理部1103とを別のプロセスで実現し、これらを共有メモリやソケットなどのプロセス間通信を用いて接続することで実現することができる。   The program 1108 and the language processing system runtime 1104 need to communicate with the multicast management unit 1103 and the program management unit 1102. This can be realized, for example, by realizing the language processing system runtime 1104 and the multicast management unit 1103 by separate processes and connecting them using inter-process communication such as a shared memory or a socket.

プログラム1108がマルチキャスト管理部1103にマルチキャスト網参加を要求する際は(図6のステップ603)、言語処理系ランタイム1104内部にそのための補助ライブラリ1105を用意しておき、これを経由して行うことで実現できる。あるいは、マルチキャスト管理部1103自身を、言語処理系ランタイム1104内のライブラリとして実現してもよい。この場合には、補助ライブラリ1105は不要となる。   When the program 1108 requests the multicast management unit 1103 to participate in the multicast network (step 603 in FIG. 6), an auxiliary library 1105 for that purpose is prepared in the language processing system runtime 1104, and the program is executed via this. realizable. Alternatively, the multicast management unit 1103 itself may be realized as a library in the language processing system runtime 1104. In this case, the auxiliary library 1105 is not necessary.

別の実施例として、サンドボックス112としてプロセスを用いた場合を図12に示す。プロセスは、サンドボックス112としての隔離機能に制限があるため、例えばchrootを用いてファイルシステムレベルでの隔離機能を向上するなどの手法と併用することも考えられる。   As another embodiment, a case where a process is used as the sandbox 112 is shown in FIG. Since the process has a limited isolation function as the sandbox 112, for example, it is conceivable to use the process together with a technique of improving the isolation function at the file system level using a root.

対象となるプログラム1207は、プログラム管理部1202によって実行が開始される。そして、OSカーネル1204内部の通信関連システムコール1205を、通信管理部1206を含み、また、プログラム1207からの通信要求を捕捉するように変更することで、実施形態で述べた動作を実現することができる。   Execution of the target program 1207 is started by the program management unit 1202. Then, the communication-related system call 1205 in the OS kernel 1204 includes the communication management unit 1206, and is changed so as to capture a communication request from the program 1207, thereby realizing the operation described in the embodiment. it can.

OSカーネル1204はプログラム管理部1202と連携し、対象とするプログラム1207が要求した通信であることを認識する。この連携には、例えば、プログラム管理部1202がプログラム1207を起動する際に、対象とするプログラム1207のIDをOSカーネル1204に登録する、などの方法が考えられる。   The OS kernel 1204 recognizes that the communication is requested by the target program 1207 in cooperation with the program management unit 1202. For example, a method of registering the ID of the target program 1207 in the OS kernel 1204 when the program management unit 1202 starts the program 1207 can be considered for this cooperation.

通信管理部1206およびプログラム1207とマルチキャスト管理部1203との通信は、マルチキャスト管理部1203を別プロセスで実現することで、プロセス間通信を用いることにより実現できる。あるいは、マルチキャスト管理部1203をOSカーネル1204の中に取り込み、システムコールとして実現することもできる。   Communication between the communication management unit 1206 and the program 1207 and the multicast management unit 1203 can be realized by using interprocess communication by realizing the multicast management unit 1203 as a separate process. Alternatively, the multicast management unit 1203 can be incorporated into the OS kernel 1204 and realized as a system call.

また、別の実施例として、サンドボックス112として仮想マシン1304を用いた場合を図13に示す。この場合には、プログラム1307は仮想マシン1304上で動作するため、OSを含むものとなる。   As another example, FIG. 13 shows a case where a virtual machine 1304 is used as the sandbox 112. In this case, since the program 1307 operates on the virtual machine 1304, the program 1307 includes an OS.

プログラム管理部1302は、OSを含むプログラム1307を仮想マシン1304上に起動する。そして、仮想マシン1304内に構成された仮想通信ハードウェア1305を、通信管理部1306を含むように変更する。そして、OSを含むプログラム1307からの通信要求をここで捕捉する。   The program management unit 1302 starts a program 1307 including an OS on the virtual machine 1304. Then, the virtual communication hardware 1305 configured in the virtual machine 1304 is changed to include the communication management unit 1306. Then, the communication request from the program 1307 including the OS is captured here.

プログラム1307からマルチキャスト管理部1303との通信は、ホストOSへのネットワーク通信として実現できる。この通信は通信管理部1306によって捕捉されるが、マルチキャスト管理部1303との通信か、外部への通信要求かの判別は、ネットワークパケットの内容を見て、その宛先によって判断することができる。   Communication from the program 1307 to the multicast management unit 1303 can be realized as network communication to the host OS. This communication is captured by the communication management unit 1306. Whether the communication is with the multicast management unit 1303 or a communication request to the outside can be determined based on the destination of the network packet.

仮想通信ハードウェア1305とプログラム管理部1302およびマルチキャスト管理部1303との通信は、プロセス間通信として実現できる。   Communication between the virtual communication hardware 1305, the program management unit 1302, and the multicast management unit 1303 can be realized as inter-process communication.

本発明によれば、インターネット経由でダウンロードしたプログラム間で通信またはマルチキャストするプログラムに適用できる。WWWページに埋め込まれたプログラム間で通信またはマルチキャストする用途にも適用可能である。   The present invention can be applied to a program for communicating or multicasting between programs downloaded via the Internet. The present invention can also be applied to communication or multicasting between programs embedded in a WWW page.

本発明の実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of embodiment of this invention. マルチキャスト網へ参加する状況を説明する図である。It is a figure explaining the condition which participates in a multicast network. プログラムを配布する際の流れ図である。It is a flowchart at the time of distributing a program. プログラム同士で通信を行う際の流れ図である。It is a flowchart at the time of communicating between programs. サンドボックス間で認証を行う際の流れ図である。It is a flowchart at the time of performing authentication between sandboxes. クライアントがマルチキャスト網に参加する際の流れ図である。6 is a flowchart when a client joins a multicast network. マルチキャスト通信で送信を行う際の流れ図である。It is a flowchart at the time of transmitting by multicast communication. マルチキャスト通信で受信を行う際の流れ図である。It is a flowchart at the time of performing reception by multicast communication. 離脱したノードがある際の動作を示す流れ図である。It is a flowchart which shows operation | movement when there exists the detached node. 第二の実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of 2nd embodiment. サンドボックスとして言語処理系のランタイムを用いた具体例のブロック図である。It is a block diagram of the specific example which used the runtime of the language processing system as a sandbox. サンドボックスとしてプロセスを用いた具体例のブロック図である。It is a block diagram of the specific example which used the process as a sandbox. サンドボックスとして仮想マシンを用いた具体例のブロック図である。It is a block diagram of the specific example using a virtual machine as a sandbox.

符号の説明Explanation of symbols

101、1001 サーバ装置
102 マッチング処理部
103 生死監視部
104 マルチキャスト網構造管理部
105 プログラム配布部
106、1004、1101、1201、1301 クライアント装置
107 プログラム管理部
108、1103、1203、1303 マルチキャスト管理部
109 マルチキャスト網参加受付部
110 マルチキャスト通信先管理部
111 生死データ送出部
112 サンドボックス
113、1107、1206、1306 通信管理部
114 サンドボックス間相互認証部
115 データ暗号化・変換部
116 データ送受信部
117、1108、1207、1307 プログラム
1002、1005 記録媒体
1003、1006 コンピュータ
1102、1202、1302 プログラム管理部
1104 言語処理系ランタイム
1105 補助ライブラリ
1106 通信ライブラリ
1204 OSカーネル
1205 通信関連システムコール
1304 仮想マシン
1305 仮想通信ハードウェア
101, 1001 Server device 102 Matching processing unit 103 Life / death monitoring unit 104 Multicast network structure management unit 105 Program distribution unit 106, 1004, 1101, 1201, 1301 Client device 107 Program management unit 108, 1103, 1203, 1303 Multicast management unit 109 Multicast Network participation reception unit 110 Multicast communication destination management unit 111 Life / death data transmission unit 112 Sandbox 113, 1107, 1206, 1306 Communication management unit 114 Inter-sandbox mutual authentication unit 115 Data encryption / conversion unit 116 Data transmission / reception units 117, 1108, 1207, 1307 Program 1002, 1005 Recording medium 1003, 1006 Computer 1102, 1202, 1302 Program management unit 1104 Language processing system Ntaimu 1105 auxiliary library 1106 communication library 1204 OS kernel 1205 communications-related system call 1304 virtual machine 1305 virtual communication hardware

Claims (6)

実行中のプログラムの情報を保持するプログラム管理部と、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うデータ送受信部とを備えたクライアント装置において、
前記実行中のプログラムは、前記他プログラムが行う通信要求を許可または拒否する処理を行うサンドボックス内で動作し、
前記サンドボックスは、通信要求の他プログラムが、自サンドボックス内で実行中のプログラムと同じ組織に属するプログラムであることを認証する相互認証手段を備え、
前記相互認証手段は、通信要求他プログラムが属する他のサンドボックスとの間でサンドボックスの正当性を認証した後、当該通信要求の他プログラムが同一のサーバ装置からダウンロードされたプログラムまたは同じ組織によって電子署名されたプログラムであるかの認証を行う手段を備える、
ことを特徴とするクライアント装置。
In a client device including a program management unit that holds information of a program being executed and a data transmission / reception unit that captures a communication request from another program in another client device,
The running program operates in a sandbox that performs a process of permitting or denying a communication request made by the other program,
The sandbox includes mutual authentication means for authenticating that the other program of the communication request source is a program belonging to the same organization as the program being executed in the own sandbox,
The mutual authentication means, after authenticating the validity of the sandbox with other sandbox communication requesting other programs belongs, program the communication requesting another program has been downloaded from the same server Or a means for authenticating whether the program is digitally signed by the same organization,
A client device.
前記クライアント装置は、複数のクライアント装置がプログラムをマルチキャストでダウンロードするマルチキャスト網におけるクライアント装置である
請求項1記載のクライアント装置。
The client device according to claim 1 , wherein the client device is a client device in a multicast network in which a plurality of client devices download a program by multicast .
実行中のプログラムの情報を保持し、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うクライアント装置が実行する通信方法において、
前記実行中のプログラムは、前記他プログラムが行う通信要求を許可または拒否する処理を行うサンドボックス内で動作し、
前記サンドボックスが、通信要求の他プログラムが、自サンドボックス内で実行中のプログラムと同じ組織に属するプログラムであることを認証する相互認証ステップを実行し、
前記相互認証ステップは、通信要求他プログラムが属する他のサンドボックスとの間でサンドボックスの正当性を認証した後、当該通信要求元の他プログラムが同一のサーバ装置からダウンロードされたプログラムまたは同じ組織によって電子署名されたプログラムであるかの認証を行う、
ことを特徴とする通信方法。
In a communication method executed by a client device that holds information of a program being executed and captures a communication request from another program in another client device,
The running program operates in a sandbox that performs a process of permitting or denying a communication request made by the other program,
The sandbox executes a mutual authentication step for authenticating that the other program of the communication request source belongs to the same organization as the program being executed in the own sandbox,
The mutual authentication step, after authenticating the validity of the sandbox with other sandbox communication requesting other programs belongs, the communication requesting another program has been downloaded from the same server program Or authenticate that the program is digitally signed by the same organization,
A communication method characterized by the above.
複数のクライアント装置がプログラムをマルチキャストでダウンロードするマルチキャスト網におけるクライアント装置の通信方法である
請求項記載の通信方法
The communication method according to claim 3, wherein the communication method of a client device in a multicast network in which a plurality of client devices to download the program in multicast.
コンピュータ装置にインストールすることにより、そのコンピュータ装置に、実行中のプログラムの情報を保持するプログラム管理機能と、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うデータ送受信機能とを備えたクライアント装置の機能に相応する機能を実現させるコンピュータプログラムにおいて、
前記実行中のプログラムは、前記他プログラムが行う通信要求を許可または拒否する処理を行うサンドボックス内で動作するものであって、
前記サンドボックスに、通信要求の他プログラムが、自サンドボックス内で実行中のプログラムと同じ組織に属するプログラムであることを認証する相互認証機能を実現させ、
前記相互認証手段に、通信要求他プログラムが属する他のサンドボックスとの間でサンドボックスの正当性を認証した後、当該通信要求の他プログラムが同一のサーバ装置からダウンロードされたプログラムまたは同じ組織によって電子署名されたプログラムであるかの認証を行う機能を実現させる、
ことを特徴とするコンピュータプログラム。
When installed in a computer device, the computer device has a program management function for holding information about a program being executed, and a data transmission / reception function for capturing a communication request from another program in another client device . In a computer program for realizing a function corresponding to the function of a client device,
The running program operates in a sandbox that performs processing for permitting or denying a communication request made by the other program,
The sandbox realizes a mutual authentication function for authenticating that the other program of the communication request source belongs to the same organization as the program being executed in the own sandbox,
The mutual authentication means, after authenticating the validity of the sandbox with other sandbox communication requesting other programs belongs, program the communication requesting another program has been downloaded from the same server Or realize the function to authenticate whether the program is digitally signed by the same organization,
A computer program characterized by the above.
複数のクライアント装置がプログラムをマルチキャストでダウンロードするマルチキャスト網のクライアント装置の機能を実現させる
請求項記載のコンピュータプログラム。
6. The computer program according to claim 5, wherein a plurality of client devices realize a function of a client device of a multicast network in which the program is downloaded by multicast .
JP2007302975A 2007-11-22 2007-11-22 Client device and communication method Expired - Fee Related JP5347263B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007302975A JP5347263B2 (en) 2007-11-22 2007-11-22 Client device and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007302975A JP5347263B2 (en) 2007-11-22 2007-11-22 Client device and communication method

Publications (2)

Publication Number Publication Date
JP2009129157A JP2009129157A (en) 2009-06-11
JP5347263B2 true JP5347263B2 (en) 2013-11-20

Family

ID=40820013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007302975A Expired - Fee Related JP5347263B2 (en) 2007-11-22 2007-11-22 Client device and communication method

Country Status (1)

Country Link
JP (1) JP5347263B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3040870A4 (en) 2013-08-29 2017-03-15 Seiko Epson Corporation Transmission system, transmission device, and data transmission method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3513324B2 (en) * 1996-04-26 2004-03-31 キヤノン株式会社 Digital signature processing method
US8656161B2 (en) * 2004-11-30 2014-02-18 Nec Corporation Information sharing system, information sharing method, group management program and compartment management program
JP2007228064A (en) * 2006-02-21 2007-09-06 Mitsubishi Electric Corp Network system, and communication unit

Also Published As

Publication number Publication date
JP2009129157A (en) 2009-06-11

Similar Documents

Publication Publication Date Title
CN108901022B (en) Micro-service unified authentication method and gateway
Niruntasukrat et al. Authorization mechanism for MQTT-based Internet of Things
Wang et al. Censorspoofer: asymmetric communication using ip spoofing for censorship-resistant web browsing
US8646104B2 (en) Stateless challenge-response broadcast protocol
RU2542911C2 (en) Low-latency peer-to-peer session establishment
US6148402A (en) Apparatus and method for remotely executing commands using distributed computing environment remote procedure calls
CN102047262B (en) Authentication for distributed secure content management system
US8250631B2 (en) Protecting against denial of service attacks using trust, quality of service, personalization, and hide port messages
CN105229987B (en) Actively united mobile authentication
US20060282662A1 (en) Proxy authentication network
US20090265777A1 (en) Collaborative and proactive defense of networks and information systems
US20050144441A1 (en) Presence validation to assist in protecting against Denial of Service (DOS) attacks
JP5239341B2 (en) Gateway, relay method and program
CN104767731A (en) Identity authentication protection method of Restful mobile transaction system
JP2007293760A (en) Single sign-on cooperation method and system using individual authentication
JP5864598B2 (en) Method and system for providing service access to a user
WO2009093308A1 (en) Connection control method, connection control server device, connection control client device, and program
Kayas et al. An overview of UPnP-based IoT security: threats, vulnerabilities, and prospective solutions
KR101858207B1 (en) System for security network
US8676998B2 (en) Reverse network authentication for nonstandard threat profiles
CN116846614A (en) Trusted computing-based MQTT protocol message security processing method and system
JP5347263B2 (en) Client device and communication method
TWI356624B (en)
KR20100063886A (en) Remote access system and method for controlling terminal between different networks
CN109684818A (en) A kind of server log method for the cross-terminal formula for preventing owner's login password from revealing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130702

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130805

R150 Certificate of patent or registration of utility model

Ref document number: 5347263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees