JP5347263B2 - Client device and communication method - Google Patents
Client device and communication method Download PDFInfo
- 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
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
すなわち、クライアント装置が任意の対象に対して通信を行いたい場合は、一度、サーバ装置内で動作しているリダイレクタに接続し、リダイレクタがクライアント装置の代わりに通信を行う。つまり、通信はリダイレクタを仲介者として経由することで行われる。 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.
上述した技術における第一の問題点は、リダイレクタを経由することが、サーバ装置の負荷になり、また通信遅延の原因になるということである。その理由は、必ずサーバ装置上で動作しているリダイレクタを経由して通信する必要があるためである。 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)と携帯電話装置との間のような距離的に近い場所にあり、特定の機器間の通信を想定しており、その効果は「情報漏洩が行われない」というところにある。
これに対し、本発明は、インターネット等のネットワークを介して任意の機器に対して通信を行おうとする機器群が対象であり、その上で動作するプログラムに悪意があり、システムとは無関係の機器に対してセキュリティホールを突くような不正アクセスを行う可能性がある場合に、これを回避する効果がある。 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
(発明の効果)
第一の効果は、ダウンロードした悪意があるかも知れないプログラム間で、セキュリティを保ちながら、サーバを介さず直接通信できるシステムを提供できることにある。
(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
サンドボックス112は、その内部で動作するプログラム117と、通信管理部113とから構成される。通信管理部113は、サンドボックス相互認証部114、データ暗号化・変換部115、データ送受信部116から構成される。マルチキャスト管理部108は、マルチキャスト網参加受付部109、マルチキャスト通信先管理部110、生死データ送出部111から構成される。
The
サーバ装置101は、マッチング処理部102、生死監視部103、マルチキャスト網構造管理部104、プログラム配布部105から構成される。
The
これらは次のように動作する。 These operate as follows.
対象となるプログラム117は、プログラム配布部105を用いてクライアント装置106に配布される。プログラム117はサンドボックス112内で実行することで、その動作を制限する。
The target program 117 is distributed to the
まず、クライアント装置106間の直接通信について説明する。従来、プログラムがダウンロードしたサーバ装置101に対してしか通信を許可しなかったのは、悪意のあるプログラムが、ネットワークを介して他のPC等に不正アクセスを行う可能性があるためである。
First, direct communication between the
そこで、クライアント装置106が他のクライアント装置106に対して通信を行う際は、通信相手が同じ組織の管理下にあるプログラム(典型的には同じプログラム)117である場合に限ることで、不正アクセスができないようにする。
Therefore, when the
これを実現するため、サンドボックス112下で動作しているプログラム117が通信を行う際は、まずその要求を通信管理部113で捕捉する。そして、通信相手先のサンドボックス112に対し、同じ組織の管理下にあるプログラム117が動作中であるかどうか確認する。確認後、サンドボックス112間で通信路を確立し、要求された通信をその通信路を通じて行う。
In order to realize this, when the program 117 operating under the
次に、マルチキャストの実現について説明する。 Next, implementation of multicast will be described.
サーバ装置101に負荷をかけずに多数のクライアント装置106に対して同じデータを送信するため、クライアント装置106同士でネットワークを構成する。ネットワークのトポロジとしては、例えば木構造が考えられる。クライアント装置106が、最初にマルチキャスト網に参加する際、以下のように動作する。
In order to transmit the same data to a large number of
プログラム117は、マルチキャスト網を管理するサーバ装置101に接続し、参加を要求する。この際、サーバ装置101がプログラム117をダウンロードしたものと同じである場合は、認証不要で通信可能とできる。そうでない場合は、クライアント装置106間の直接通信の場合と同様に、サンドボックス112間で認証を行う。
The program 117 connects to the
サーバ装置101は、アプリケーションに依存する何らかのマッチング処理を行う。アプリケーションとしては、複数人が参加するテレビ会議やゲームなどが考えられる。サーバ装置101は、参加すべきマルチキャスト網のIDをプログラムに返す。
The
プログラム117は、このIDをマルチキャスト網参加受付部109に渡し、マルチキャスト網への参加を要求する。マルチキャスト網参加受付部109は、サーバ装置101のマルチキャスト網構造管理部104に依頼し、参加を要求する。マルチキャスト網構造管理部104は、現在のマルチキャスト網の構造から、新たにクライアント装置106を参加させるのに適切な場所を選ぶ。そして、網の変化に伴って、既に参加しているクライアント装置106に対し、マルチキャストデータの転送要求を送る。この様子を図2に示す。
The program 117 passes this ID to the multicast network
図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
サーバ装置101は、クライアント装置106の生死を監視し、離脱するクライアント装置106があった場合は、マルチキャスト網の再構成を行う。
The
ここで「クライアント装置106の生死」とは、クライアント装置106がマルチキャスト網に参加している状態を「生」と表現し、クライアント装置106がマルチキャスト網から離脱している状態を「死」と表現したものである。
Here, “the life and death of the
次に、図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
次に、クライアント間の直接通信について説明する。まず、図4のステップ401でプログラム117が通信管理部113に対し、通信の開始を依頼する。次にステップ402で、その内容として、接続先について確認する。ステップ403で、その接続先が既に接続済みの通信相手かどうかを確認する。もし接続済みでなければ(ステップ403のNo)、ステップ404に進み、サンドボックス112間の認証を行う。このステップについては図5で詳しく説明する。
Next, direct communication between clients will be described. First, in
そして、ステップ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-
受信側はステップ410でサンドボックス112間の認証受付を行う。ステップ411で通信可能な相手かどうかを判断し、そうでなければ(ステップ411のNo)、ステップ412に進み通信を拒否する。通信可能な相手であれば(ステップ411のYes)、ステップ413で通信路を確立する。そして、ステップ414で確立済みの通信路でデータを受信する。既に通信路が確立済みであった場合は、このステップ414からスタートする。そして、ステップ415において、ステップ408で行った通信内容の暗号化および変換を復号する。そして、ステップ416で、その内容をプログラム117に転送する。
The receiving side accepts authentication between the
確立された通信路は、プログラム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
次に、ステップ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
お互いが正規のサンドボックス112であることを確認するためには、サンドボックス112内に、それを確認する鍵データを埋め込んでおき、チャレンジレスポンス法など方法を用いることで実現できる。
Confirming that each other is a
次に、ステップ503でお互いが実行中のプログラム117の情報を交換する。これには、ステップ302でプログラム管理部107に保存しておいた情報を利用する。そして、ステップ504でこの情報を用いて、現在お互いのサンドボックス112内で実行中のプログラム117が、同じ組織の管理下にあるプログラムであることを確認する。もし、そうであれば(ステップ504のYes)、通信可能な相手と判断し、ステップ505に進む。そうでなければ(ステップ504のNo)、ステップ506に進み、通信可能な相手ではないと判断する。
Next, in
ここで、プログラム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
あるいは、別の方法として、プログラム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
なお、不正アクセスを回避するためだけであれば、ステップ502「サンドボックス自身の正当性を確認」の処理は省略可能である。例えば、サンドボックスX内のプログラムAが、別のサンドボックスY内のプログラムBへの通信を要求したときに、サンドボックスXは、サンドボックスYに「プログラムBがプログラムAと同じ組織の管理下にあるものかどうか」を尋ねる。もし、同じであれば、サンドボックスXは、プログラムAの通信要求を許可し、パケットを送出する。
Note that the process of
ここで、たとえサンドボックス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
次に、マルチキャストの実現について説明する。まず図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
また、このステップ601ではクライアント装置106からサーバ装置101への通信が行われている。この通信は、プログラム117をダウンロードしたサーバ装置101と同じ(あるいは同じドメイン)のサーバ装置101に対してのものであるとデータ送受信部116が認識することで許可される。このため、接続先の確認と実行中のプログラム117の情報の確認を行う。
In
あるいは、クライアント装置106で実行しているサンドボックス112と同じ機能を持つものをサーバ装置101で実行してもよい。この場合には、サーバ装置101の各モジュールはサンドボックス112内で実行され、サーバ装置101とクライアント装置106との間の通信は、クライアント装置106間の通信と同様、サンドボックス112間の認証を行った後に行われる。
Alternatively, the
以上のクライアント装置106とサーバ装置101との間の通信に関しては、後のステップ604でも同様である。
The communication between the
次にステップ602で、マッチング処理部102から参加すべきマルチキャスト網を示すIDを受け取る。そして、ステップ603で、このIDを用い、マルチキャスト網参加受付部に対し、マルチキャスト網への参加を依頼する。
Next, in
次にステップ604で、マルチキャスト網参加受付部109が、サーバ装置101のマルチキャスト網構造管理部104に対し、先に取得したIDを用い、マルチキャスト網への参加を要求する。ここで、参加要求受付後もこの接続を切断せずに保持しておき、サーバ装置101からの網情報変更通知や生死監視に用いる。
Next, in
ここで、ステップ603から604では、ステップ601、602でサーバ装置101から受け取ったマルチキャスト網のIDを用い、再度ステップ603でサーバ装置101に要求を行っている。これを、ステップ603でプログラム117からマルチキャスト網参加受付部109に参加を要求するのではなく、サーバ装置101からクライアント装置106に対して接続を行うというやり方で実現することも可能である。ただしこの場合には、クライアント装置106は正しいサーバ装置101からの接続であることを何らかの方法で認証する必要がある。
Here, in
次にステップ605で、サーバ装置101は参加要求を行ったクライアント装置106をマルチキャスト網に参加させるため、網の構造を変化させる。そして、その変化に応じて必要なクライアント装置106に必要な情報を伝える。例えば、図2のようにマルチキャスト網に木構造を用い、新たに参加するクライアント装置106を木構造の葉の部分に接続する場合は、新たに参加するクライアント装置106が接続されたクライアント装置106に対し「新たな通信先」としてそのクライアント装置106のIPアドレス等を伝える。
In step 605, the
次に、ステップ606で、新規参加のクライアント装置106にも必要な網情報を通知する。これには、例えばマルチキャスト網が木構造の場合には、木の根に当たるクライアント装置106のIPアドレス等が含まれる。これは、データをマルチキャストで送る場合に、まず、木構造の根のクライアント装置106に対してデータを送る必要があるためである。
Next, in
次に図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
ステップ703では、マルチキャスト通信先管理部110を参照し、適切なクライアント装置106に通信を行う。ここで、適切なクライアント装置106とは、例えば図2のようにマルチキャスト網が木構造の場合には、根に当たるクライアント装置106になる。この情報は、図6のステップ606でクライアント装置106に対して渡されている。
In
そして、ステップ704では図4で説明したクライアント装置106間の直接通信と同様に通信を行う。ここで、ステップ408ではマルチキャスト通信に応じた通信内容の変換を行う。例えば、送信元がどこかという情報や、場合によってはデータのIDを追加する。
In
マルチキャスト通信の場合もサンドボックス112間の認証などは行う必要がある。これは、サーバ装置101が指定する通信先が正しいものであるかどうかは、必ずしも信用できないためである。
In the case of multicast communication, authentication between the
次に図8で、マルチキャスト通信を受信する際の動作について説明する。 Next, referring to FIG. 8, an operation when receiving multicast communication will be described.
ステップ801で、データ送受信部116がマルチキャスト通信を受信し、マルチキャスト通信であることを確認する。
In step 801, the data transmitting / receiving
次にステップ802でデータの中身を確認し、自分が送出したデータか、あるいはマルチキャスト網の実現によっては複数回同じデータを受け取る可能性があるので、既に受信したデータであるかどうかを確認する。これには、ステップ704で説明したような、データに追加された送信元情報や、データのIDを利用する。
Next, in
もし、自分が送出したデータではなく、既に受け取ったデータではない場合は(ステップ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
もし、自分が送出したデータあるいは既に受け取ったデータの場合は(ステップ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
そして、ステップ805で図4で説明したクライアント装置106間の直接通信と同様に通信を行う。この場合もステップ704と同様、サンドボックス112間の認証は必要となる。
In
次に、図9で生死監視について説明する。サーバ装置101の生死監視部103は、ステップ603で確立したクライアント装置106とサーバ装置101との間の接続を利用し、例えば一定の時間間隔を置いて、クライアント装置106の生死を確認している。
Next, life and death monitoring will be described with reference to FIG. The life /
ステップ901で離脱したクライアント装置106を生死監視部103が認識する。すると、ステップ902でサーバ装置101はマルチキャスト網の変更を行い、影響のあるクライアント装置106に対してマルチキャスト網情報の変更を通知する。これは、例えば図2のような木構造でマルチキャスト網が構成されている場合には、離脱したクライアント装置106の上位のクライアント装置106に対し、離脱したクライアント装置106の下位のクライアント装置106に対してもマルチキャストデータを転送するように依頼する。
The life /
(第二の実施形態)
次に、本発明の第二の実施形態について図面を参照して説明する。
(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
本実施形態のコンピュータプログラムは記録媒体1002および1005に記録されることにより、コンピュータ1003および1006は、この記録媒体1002および1005を用いて本実施形態のコンピュータプログラムをインストールすることができる。
The computer program of the present embodiment is recorded on the
あるいは、記録媒体1002および1005を用いずに、本実施形態のコンピュータプログラムを保持するサーバ装置からネットワークを介してコンピュータ1003および1006に本実施形態のコンピュータプログラムをインストールすることもできる。
Alternatively, the computer program of this embodiment can be installed in the
これにより、コンピュータ1003および1006を用いて、第一の実施形態のサーバ装置101およびクライアント装置106の機能に相応する機能を実現することができる。
Accordingly, functions corresponding to the functions of the
なお、本実施形態のコンピュータプログラムは、コンピュータ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
(実施例)
次に、具体的な実施例を用いて本発明の実施形態の動作を説明する。まず、サンドボックス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
言語処理系ランタイム1104は、通信ライブラリ1106および補助ライブラリ1105を含む。これらのライブラリはプログラム1108からは保護されており、変更できないものとする。通信ライブラリ1106は通信管理部1107を含み、これが図1のデータ送受信部116に相当する。
The language
プログラム管理部1102は、言語処理系ランタイム1104を経由してプログラム1108を起動する。
The
プログラム1108は、通信を行う際、通信ライブラリ1106を経由する必要がある。ここで、言語処理系ランタイム1104の通信ライブラリ1106を、通信管理部1107を含み、またプログラム1108からの通信要求を捕捉するように変更することで、実施形態で述べた動作を実現することができる。
The
また、プログラム1108、言語処理系ランタイム1104は、マルチキャスト管理部1103やプログラム管理部1102と通信する必要がある。これは、例えば言語処理系ランタイム1104と、マルチキャスト管理部1103とを別のプロセスで実現し、これらを共有メモリやソケットなどのプロセス間通信を用いて接続することで実現することができる。
The
プログラム1108がマルチキャスト管理部1103にマルチキャスト網参加を要求する際は(図6のステップ603)、言語処理系ランタイム1104内部にそのための補助ライブラリ1105を用意しておき、これを経由して行うことで実現できる。あるいは、マルチキャスト管理部1103自身を、言語処理系ランタイム1104内のライブラリとして実現してもよい。この場合には、補助ライブラリ1105は不要となる。
When the
別の実施例として、サンドボックス112としてプロセスを用いた場合を図12に示す。プロセスは、サンドボックス112としての隔離機能に制限があるため、例えばchrootを用いてファイルシステムレベルでの隔離機能を向上するなどの手法と併用することも考えられる。
As another embodiment, a case where a process is used as the
対象となるプログラム1207は、プログラム管理部1202によって実行が開始される。そして、OSカーネル1204内部の通信関連システムコール1205を、通信管理部1206を含み、また、プログラム1207からの通信要求を捕捉するように変更することで、実施形態で述べた動作を実現することができる。
Execution of the
OSカーネル1204はプログラム管理部1202と連携し、対象とするプログラム1207が要求した通信であることを認識する。この連携には、例えば、プログラム管理部1202がプログラム1207を起動する際に、対象とするプログラム1207のIDをOSカーネル1204に登録する、などの方法が考えられる。
The
通信管理部1206およびプログラム1207とマルチキャスト管理部1203との通信は、マルチキャスト管理部1203を別プロセスで実現することで、プロセス間通信を用いることにより実現できる。あるいは、マルチキャスト管理部1203をOSカーネル1204の中に取り込み、システムコールとして実現することもできる。
Communication between the communication management unit 1206 and the
また、別の実施例として、サンドボックス112として仮想マシン1304を用いた場合を図13に示す。この場合には、プログラム1307は仮想マシン1304上で動作するため、OSを含むものとなる。
As another example, FIG. 13 shows a case where a
プログラム管理部1302は、OSを含むプログラム1307を仮想マシン1304上に起動する。そして、仮想マシン1304内に構成された仮想通信ハードウェア1305を、通信管理部1306を含むように変更する。そして、OSを含むプログラム1307からの通信要求をここで捕捉する。
The
プログラム1307からマルチキャスト管理部1303との通信は、ホストOSへのネットワーク通信として実現できる。この通信は通信管理部1306によって捕捉されるが、マルチキャスト管理部1303との通信か、外部への通信要求かの判別は、ネットワークパケットの内容を見て、その宛先によって判断することができる。
Communication from the
仮想通信ハードウェア1305とプログラム管理部1302およびマルチキャスト管理部1303との通信は、プロセス間通信として実現できる。
Communication between the
本発明によれば、インターネット経由でダウンロードしたプログラム間で通信またはマルチキャストするプログラムに適用できる。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.
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
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.
請求項3記載の通信方法。 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.
請求項5記載のコンピュータプログラム。 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 .
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)
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)
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 |
-
2007
- 2007-11-22 JP JP2007302975A patent/JP5347263B2/en not_active Expired - Fee Related
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 |