JP5347263B2 - クライアント装置および通信方法 - Google Patents

クライアント装置および通信方法 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
English (en)
Other versions
JP2009129157A (ja
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/ja
Publication of JP2009129157A publication Critical patent/JP2009129157A/ja
Application granted granted Critical
Publication of JP5347263B2 publication Critical patent/JP5347263B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、クライアント装置に関し、クライアント装置が保持するプログラム間での通信に利用する。
近年のインターネットの普及に伴い、WWW(World Wide Web)のような分散システムが広く利用されている。それに伴い、単純にサーバ装置に保存された文書をダウンロードして表示するだけではなく、サーバ装置からプログラムをダウンロードしてクライアント装置で実行する形態も普及している。
これには、例えばWebブラウザ内でJava(登録商標)プログラムを実行するJava Appletや、Webブラウザ内でスクリプトを実行するJava Script、またFlashのようなプラグインがある。
これらのダウンロードしたプログラムは悪意を持たないことが保証できない。そのため、プログラムを実行する環境で、その動作を制限している。前述の例の場合は、プログラムからアクセスできるファイルを制限したり、通信できる相手を、プログラムをダウンロードしたサーバ装置に限定したりしている。
ここで、通信できる相手を、プログラムをダウンロードしたサーバ装置に限定することは、プログラムを実行する際の大きな制約となる。この制約を緩和する従来のシステムの一例が特許文献1に記載されている。この従来のシステムは、サーバ装置内にリダイレクタと呼ばれる部分を持ち、次のように動作する。
すなわち、クライアント装置が任意の対象に対して通信を行いたい場合は、一度、サーバ装置内で動作しているリダイレクタに接続し、リダイレクタがクライアント装置の代わりに通信を行う。つまり、通信はリダイレクタを仲介者として経由することで行われる。
特許第3966487号 特開2005−100440号公報
上述した技術における第一の問題点は、リダイレクタを経由することが、サーバ装置の負荷になり、また通信遅延の原因になるということである。その理由は、必ずサーバ装置上で動作しているリダイレクタを経由して通信する必要があるためである。
第二の問題点は、複数のクライアント装置に同じデータを配布するマルチキャスト通信が効率良く実現できないということである。その理由は、必ずサーバ装置を経由して通信を行うため、サーバ装置にデータ配布のための負荷が集中するためである。
本発明は、このような課題を解決するために行われたものであって、ダウンロードしたプログラム間で、セキュリティを保ちながら、サーバ装置を介さず直接通信することができ、また、ダウンロードしたプログラム間で、セキュリティを保ちながら、データを配布しあうことで、サーバ装置に負荷をかけずに、マルチキャスト通信を効率よく実現することができるクライアント装置および通信方法を提供することを目的とする。
本発明は、実行中のプログラムの情報を保持するプログラム管理部と、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うデータ送受信部とを備えたクライアント装置において、通信要求の他プログラムが、自装置が実行中のプログラムと同じ組織の管理下にあることを確認する相互認証手段を備えたことを特徴とする。
また、本発明を通信方法としての観点から観ると、本発明は、実行中のプログラムの情報を保持し、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うクライアント装置が実行する通信方法において、相互認証手段が、通信要求の他プログラムが自装置が実行中のプログラムと同じ組織の管理下にあることを確認することを特徴とする。
また、本発明をコンピュータプログラムとしての観点から観ると、本発明は、コンピュータ装置にインストールすることにより、そのコンピュータ装置に、実行中のプログラムの情報を保持するプログラム管理機能と、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うデータ送受信機能とを備えたクライアント装置の機能に相応する機能を実現させるコンピュータプログラムにおいて、通信要求の他プログラムが、自装置が実行中のプログラムと同じ組織の管理下にあることを確認する相互認証機能を実現させることを特徴とする。
本発明によれば、ダウンロードしたプログラム間で、セキュリティを保ちながら、サーバ装置を介さず直接通信することができ、また、ダウンロードしたプログラム間で、セキュリティを保ちながら、データを配布しあうことで、サーバ装置に負荷をかけずに、マルチキャスト通信を効率良く実現することができる。
本発明の実施形態は、ネットワークからダウンロードした悪意のある可能性を含むプログラム間でも安全に直接通信を行うことができる。
本発明の一実施形態に係る通信システムは、クライアント装置にプログラムの実行開始および実行中のプログラム情報の保持を行うプログラム管理部と、サンドボックスの中で動作するプログラムと、サンドボックス内の通信管理部と、マルチキャスト管理部とを備え、サーバ装置にマルチキャスト網構造管理部を備える。
ここで、サンドボックスとは、プログラムが行う通信要求を許可または拒否する処理を行う手段である。
プログラムが他のクライアント装置と通信しようとする際に、通信管理部が、相手側クライアント装置も同じ組織の管理下にあるプログラムを実行しているかどうかを確認し、そうである場合のみ通信を許可する。このように動作することで、不正アクセスを排除した上で、クライアント装置間の直接通信を実現する。
また、サーバ装置のマルチキャスト網構造管理部が、各クライアント装置で構成されるマルチキャスト網の構造を把握し、クライアント装置に対し、マルチキャスト通信をどのクライアント装置に転送すればよいかを指定する。クライアント装置の通信管理部はマルチキャスト通信を受け取ると、指定された他のクライアント装置に通信を転送する。ここで、クライアント装置間の通信は、先ほどと同様に、同じ組織の管理下にあるプログラムを実行しているかどうかを確認し、そうである場合のみ通信を許可する。
以上のように動作することにより本発明の実施形態における目的を達成することができる。
なお、特許文献2には「プログラムは出所由来を表す公開鍵および秘密鍵を含み、プログラム間の相互認証が成功し、公開鍵が一致した場合にのみプログラム間の通信を許可する」という提案が開示されているが、この提案はPOS(Point of Sales)と携帯電話装置との間のような距離的に近い場所にあり、特定の機器間の通信を想定しており、その効果は「情報漏洩が行われない」というところにある。
これに対し、本発明は、インターネット等のネットワークを介して任意の機器に対して通信を行おうとする機器群が対象であり、その上で動作するプログラムに悪意があり、システムとは無関係の機器に対してセキュリティホールを突くような不正アクセスを行う可能性がある場合に、これを回避する効果がある。
すなわち、特許文献2の提案が「特定の機器間の通信において、情報漏洩が行われない」ことが効果であるのに対し、本発明では「ネットワークを介して任意の機器間で行われる通信において、セキュリティホールを突くような、不正アクセスがプログラムから行われることを回避する」ことが効果であり、この二者間には明らかな相違がある。
(発明の効果)
第一の効果は、ダウンロードした悪意があるかも知れないプログラム間で、セキュリティを保ちながら、サーバを介さず直接通信できるシステムを提供できることにある。
その理由は、通信相手のプログラムを確認し、通信相手が同じ組織の管理下にあるプログラムである場合に限ることで、不正アクセスができないようにするためである。
例えば、ボットやウィルスのように、他の機器の脆弱性を突いて乗っ取ろうとする不正アクセスを考えた場合に、通信可能な相手が同じ組織の管理下にあるプログラムのみであれば、乗っ取ろうとする試みができる対象が自分の管理下にあるプログラムだけに限定されるため、結果的に乗っ取りという行為が成立しないので、不正アクセスは回避される。
第二の効果は、ダウンロードした悪意があるかも知れないプログラム間で、セキュリティを保ちながら、マルチキャスト通信を提供できることにある。
その理由は、通信相手が同じ組織の管理下にあるプログラムであることを確認したプログラム間でマルチキャリア網を構築し、不正アクセスを行わないようにした上でマルチキャスト通信を行うためである。
以上のようにマルチキャスト通信を実現することができる。このように実現することで、プログラム自身はマルチキャスト網の構造やその管理を意識する必要はない、という利点がある。
(本発明の実施形態)
次に、本発明の実施形態について図面を参照して説明する。
図1を参照すると、本発明の実施形態は、マルチキャスト網の管理およびプログラムを配布するサーバ装置101と、クライアント装置106とから構成される。クライアント装置106は、さらに、プログラム管理部107、サンドボックス112、マルチキャスト管理部108から構成される。
サンドボックス112は、その内部で動作するプログラム117と、通信管理部113とから構成される。通信管理部113は、サンドボックス相互認証部114、データ暗号化・変換部115、データ送受信部116から構成される。マルチキャスト管理部108は、マルチキャスト網参加受付部109、マルチキャスト通信先管理部110、生死データ送出部111から構成される。
サーバ装置101は、マッチング処理部102、生死監視部103、マルチキャスト網構造管理部104、プログラム配布部105から構成される。
これらは次のように動作する。
対象となるプログラム117は、プログラム配布部105を用いてクライアント装置106に配布される。プログラム117はサンドボックス112内で実行することで、その動作を制限する。
まず、クライアント装置106間の直接通信について説明する。従来、プログラムがダウンロードしたサーバ装置101に対してしか通信を許可しなかったのは、悪意のあるプログラムが、ネットワークを介して他のPC等に不正アクセスを行う可能性があるためである。
そこで、クライアント装置106が他のクライアント装置106に対して通信を行う際は、通信相手が同じ組織の管理下にあるプログラム(典型的には同じプログラム)117である場合に限ることで、不正アクセスができないようにする。
これを実現するため、サンドボックス112下で動作しているプログラム117が通信を行う際は、まずその要求を通信管理部113で捕捉する。そして、通信相手先のサンドボックス112に対し、同じ組織の管理下にあるプログラム117が動作中であるかどうか確認する。確認後、サンドボックス112間で通信路を確立し、要求された通信をその通信路を通じて行う。
次に、マルチキャストの実現について説明する。
サーバ装置101に負荷をかけずに多数のクライアント装置106に対して同じデータを送信するため、クライアント装置106同士でネットワークを構成する。ネットワークのトポロジとしては、例えば木構造が考えられる。クライアント装置106が、最初にマルチキャスト網に参加する際、以下のように動作する。
プログラム117は、マルチキャスト網を管理するサーバ装置101に接続し、参加を要求する。この際、サーバ装置101がプログラム117をダウンロードしたものと同じである場合は、認証不要で通信可能とできる。そうでない場合は、クライアント装置106間の直接通信の場合と同様に、サンドボックス112間で認証を行う。
サーバ装置101は、アプリケーションに依存する何らかのマッチング処理を行う。アプリケーションとしては、複数人が参加するテレビ会議やゲームなどが考えられる。サーバ装置101は、参加すべきマルチキャスト網のIDをプログラムに返す。
プログラム117は、このIDをマルチキャスト網参加受付部109に渡し、マルチキャスト網への参加を要求する。マルチキャスト網参加受付部109は、サーバ装置101のマルチキャスト網構造管理部104に依頼し、参加を要求する。マルチキャスト網構造管理部104は、現在のマルチキャスト網の構造から、新たにクライアント装置106を参加させるのに適切な場所を選ぶ。そして、網の変化に伴って、既に参加しているクライアント装置106に対し、マルチキャストデータの転送要求を送る。この様子を図2に示す。
図2の場合は、木構造の右下に新たにクライアント装置が参加している。そして、新たに参加したクライアント装置の上位のクライアント装置に対し、マルチキャストデータが到着した際は、新たに参加したクライアント装置に対してデータを転送するように依頼する。
プログラム117がデータをマルチキャストする際は、例えば図2のような木構造の場合は、木の根に当たるクライアント装置に対してマルチキャストデータを送る。データを受け取ったクライアント装置は、その下位にあるクライアント装置に対してデータを転送する。この際、クライアント装置間の直接通信の場合と同様に、サンドボックス112間での認証が行われる。
サーバ装置101は、クライアント装置106の生死を監視し、離脱するクライアント装置106があった場合は、マルチキャスト網の再構成を行う。
ここで「クライアント装置106の生死」とは、クライアント装置106がマルチキャスト網に参加している状態を「生」と表現し、クライアント装置106がマルチキャスト網から離脱している状態を「死」と表現したものである。
次に、図3から図9のフローチャートを参照して本実施形態の全体の動作について説明する。まず、図3でプログラム117のダウンロードと実行について説明する。まずステップ301で、プログラム管理部107が、サーバ装置101のプログラム配布部105よりプログラムをダウンロードする。ここで、プログラム管理部107は、このプログラム117がどのサーバ装置101からダウンロードしたかを記録しておく。そして、ステップ302でプログラム管理部107はプログラム117をサンドボックス112内で実行する。プログラム管理部107は、どのプログラムが実行中であるかを把握しておく。この情報は後で利用する。
次に、クライアント間の直接通信について説明する。まず、図4のステップ401でプログラム117が通信管理部113に対し、通信の開始を依頼する。次にステップ402で、その内容として、接続先について確認する。ステップ403で、その接続先が既に接続済みの通信相手かどうかを確認する。もし接続済みでなければ(ステップ403のNo)、ステップ404に進み、サンドボックス112間の認証を行う。このステップについては図5で詳しく説明する。
そして、ステップ405で通信可能な相手かどうかを確認し、そうでなければ(ステップ405のNo)、ステップ406に進み、プログラム117にエラーを返す。通信可能な相手であれば(ステップ405のYes)、ステップ407に進み、相手側サンドボックス112との間に通信路を確立する。この通信路は、以降そのまま保持するものとする。そして、ステップ403で既に接続済みの通信相手であった場合(ステップ403のYes)と共に、ステップ408に進む。ここでは、通信内容を暗号化したり、後述するマルチキャスト通信のために付加情報を加えるなどの変換を行う。そして、ステップ409において、確立済みの通信路を用いてその内容を送信する。
受信側はステップ410でサンドボックス112間の認証受付を行う。ステップ411で通信可能な相手かどうかを判断し、そうでなければ(ステップ411のNo)、ステップ412に進み通信を拒否する。通信可能な相手であれば(ステップ411のYes)、ステップ413で通信路を確立する。そして、ステップ414で確立済みの通信路でデータを受信する。既に通信路が確立済みであった場合は、このステップ414からスタートする。そして、ステップ415において、ステップ408で行った通信内容の暗号化および変換を復号する。そして、ステップ416で、その内容をプログラム117に転送する。
確立された通信路は、プログラム117の終了等で破棄される。この場合は、それを認識し、再度同じクライアント装置106に通信する場合でも、ステップ403からステップ404に進み、サンドボックス112間の認証および通信路の確立を行う。
次に、ステップ404の内容について、図5を用いて詳しく説明する。まずステップ501でサンドボックス112間の認証を開始する。次のステップ502では、サンドボックス112自身の正当性をお互い確認する。これはデータ受信側が、偽物のサンドボックス112から悪意のあるデータを受信しないようにし、また、送信側が偽物のサンドボックス112に対して情報を漏洩させないようにするためである。
お互いが正規のサンドボックス112であることを確認するためには、サンドボックス112内に、それを確認する鍵データを埋め込んでおき、チャレンジレスポンス法など方法を用いることで実現できる。
次に、ステップ503でお互いが実行中のプログラム117の情報を交換する。これには、ステップ302でプログラム管理部107に保存しておいた情報を利用する。そして、ステップ504でこの情報を用いて、現在お互いのサンドボックス112内で実行中のプログラム117が、同じ組織の管理下にあるプログラムであることを確認する。もし、そうであれば(ステップ504のYes)、通信可能な相手と判断し、ステップ505に進む。そうでなければ(ステップ504のNo)、ステップ506に進み、通信可能な相手ではないと判断する。
ここで、プログラム117が同じ組織の管理下にあることを確認するには、単純には同じサーバ装置101からダウンロードしたプログラムであることを確認すればよい。これには、プログラム管理部107がプログラム117をダウンロードしたサーバ装置101を記録しておき、ステップ504ではそのサーバ名が同じであるかどうかを確認すればよい。
あるいは、別の方法として、プログラム117に電子署名を添付する方法も考えられる。すなわち、同じ組織によって署名されたプログラムであることが確認できれば、その通信相手のプログラムが同じ組織の管理下にあることが保証できる。この場合には、プログラム管理部107が電子署名を確認し、署名した組織の名前を抽出する。そして、ステップ504ではその組織名を確認する。この場合に、プログラム117を配布するサーバ装置101は、マルチキャスト網を管理するサーバ装置101と別でもよい。
なお、不正アクセスを回避するためだけであれば、ステップ502「サンドボックス自身の正当性を確認」の処理は省略可能である。例えば、サンドボックスX内のプログラムAが、別のサンドボックスY内のプログラムBへの通信を要求したときに、サンドボックスXは、サンドボックスYに「プログラムBがプログラムAと同じ組織の管理下にあるものかどうか」を尋ねる。もし、同じであれば、サンドボックスXは、プログラムAの通信要求を許可し、パケットを送出する。
ここで、たとえサンドボックスYが正当なものでないとしても、サンドボックスXがプログラムAからのパケット送出を許可して問題はない。これによる影響は、虚偽を行ったサンドボックスY内のプログラムBがプログラムAからの攻撃を受けるだけであるが、そのようなことは起こり得ない。
なぜならば、もし、サンドボックスYがプログラムBに対して攻撃したいのであれば、プログラムAに攻撃させる必要はなく、サンドボックスY自身で攻撃可能だからである。
一方、ステップ503を省略すると、別の組織の管理下にあるプログラムに対して通信要求が可能となり、脆弱性を探してそのプログラムを乗っ取るなどの攻撃が可能となるため、ステップ503は省略不可である。
次に、マルチキャストの実現について説明する。まず図6でクライアントがマルチキャスト網に新規に参加する際の手順を説明する。まず、ステップ601で、プログラムがマルチキャスト網への参加をサーバ装置101のマッチング処理部102に対して行う。これは、アプリケーションレベルの要求であり、マッチング処理部102は一般にはアプリケーションを配布する組織が用意する。例えば、ビデオ会議アプリケーションで、会議への参加を要求したり、オンラインゲームアプリケーションで、パーティへの参加を要求したりなどが考えられる。認証については、アプリケーションレベルで行われる。
また、このステップ601ではクライアント装置106からサーバ装置101への通信が行われている。この通信は、プログラム117をダウンロードしたサーバ装置101と同じ(あるいは同じドメイン)のサーバ装置101に対してのものであるとデータ送受信部116が認識することで許可される。このため、接続先の確認と実行中のプログラム117の情報の確認を行う。
あるいは、クライアント装置106で実行しているサンドボックス112と同じ機能を持つものをサーバ装置101で実行してもよい。この場合には、サーバ装置101の各モジュールはサンドボックス112内で実行され、サーバ装置101とクライアント装置106との間の通信は、クライアント装置106間の通信と同様、サンドボックス112間の認証を行った後に行われる。
以上のクライアント装置106とサーバ装置101との間の通信に関しては、後のステップ604でも同様である。
次にステップ602で、マッチング処理部102から参加すべきマルチキャスト網を示すIDを受け取る。そして、ステップ603で、このIDを用い、マルチキャスト網参加受付部に対し、マルチキャスト網への参加を依頼する。
次にステップ604で、マルチキャスト網参加受付部109が、サーバ装置101のマルチキャスト網構造管理部104に対し、先に取得したIDを用い、マルチキャスト網への参加を要求する。ここで、参加要求受付後もこの接続を切断せずに保持しておき、サーバ装置101からの網情報変更通知や生死監視に用いる。
ここで、ステップ603から604では、ステップ601、602でサーバ装置101から受け取ったマルチキャスト網のIDを用い、再度ステップ603でサーバ装置101に要求を行っている。これを、ステップ603でプログラム117からマルチキャスト網参加受付部109に参加を要求するのではなく、サーバ装置101からクライアント装置106に対して接続を行うというやり方で実現することも可能である。ただしこの場合には、クライアント装置106は正しいサーバ装置101からの接続であることを何らかの方法で認証する必要がある。
次にステップ605で、サーバ装置101は参加要求を行ったクライアント装置106をマルチキャスト網に参加させるため、網の構造を変化させる。そして、その変化に応じて必要なクライアント装置106に必要な情報を伝える。例えば、図2のようにマルチキャスト網に木構造を用い、新たに参加するクライアント装置106を木構造の葉の部分に接続する場合は、新たに参加するクライアント装置106が接続されたクライアント装置106に対し「新たな通信先」としてそのクライアント装置106のIPアドレス等を伝える。
次に、ステップ606で、新規参加のクライアント装置106にも必要な網情報を通知する。これには、例えばマルチキャスト網が木構造の場合には、木の根に当たるクライアント装置106のIPアドレス等が含まれる。これは、データをマルチキャストで送る場合に、まず、木構造の根のクライアント装置106に対してデータを送る必要があるためである。
次に図7で、マルチキャスト網を用いてデータを送信する際の動作について説明する。まず、ステップ701でプログラム117がマルチキャスト通信を通信管理部113に要求する。次にステップ702でその要求がマルチキャスト通信要求であることを、データ送受信部116が認識する。
ステップ703では、マルチキャスト通信先管理部110を参照し、適切なクライアント装置106に通信を行う。ここで、適切なクライアント装置106とは、例えば図2のようにマルチキャスト網が木構造の場合には、根に当たるクライアント装置106になる。この情報は、図6のステップ606でクライアント装置106に対して渡されている。
そして、ステップ704では図4で説明したクライアント装置106間の直接通信と同様に通信を行う。ここで、ステップ408ではマルチキャスト通信に応じた通信内容の変換を行う。例えば、送信元がどこかという情報や、場合によってはデータのIDを追加する。
マルチキャスト通信の場合もサンドボックス112間の認証などは行う必要がある。これは、サーバ装置101が指定する通信先が正しいものであるかどうかは、必ずしも信用できないためである。
次に図8で、マルチキャスト通信を受信する際の動作について説明する。
ステップ801で、データ送受信部116がマルチキャスト通信を受信し、マルチキャスト通信であることを確認する。
次にステップ802でデータの中身を確認し、自分が送出したデータか、あるいはマルチキャスト網の実現によっては複数回同じデータを受け取る可能性があるので、既に受信したデータであるかどうかを確認する。これには、ステップ704で説明したような、データに追加された送信元情報や、データのIDを利用する。
もし、自分が送出したデータではなく、既に受け取ったデータではない場合は(ステップ802のNo)、ステップ803に進む。そして、その内容をサンドボックス112内で実行中のプログラム117に転送する。
もし、自分が送出したデータあるいは既に受け取ったデータの場合は(ステップ802のYes)、ステップ803を飛ばし、ステップ804に進む。
ステップ804では、マルチキャスト通信先管理部110を参照し、適切なクライアント装置106に通信内容を転送する。例えば図2のような木構造でマルチキャスト網が構成されている場合は、自クライアント装置106の下位に当たるクライアント装置106に相当する。この情報は、ステップ605で伝えられる。
そして、ステップ805で図4で説明したクライアント装置106間の直接通信と同様に通信を行う。この場合もステップ704と同様、サンドボックス112間の認証は必要となる。
次に、図9で生死監視について説明する。サーバ装置101の生死監視部103は、ステップ603で確立したクライアント装置106とサーバ装置101との間の接続を利用し、例えば一定の時間間隔を置いて、クライアント装置106の生死を確認している。
ステップ901で離脱したクライアント装置106を生死監視部103が認識する。すると、ステップ902でサーバ装置101はマルチキャスト網の変更を行い、影響のあるクライアント装置106に対してマルチキャスト網情報の変更を通知する。これは、例えば図2のような木構造でマルチキャスト網が構成されている場合には、離脱したクライアント装置106の上位のクライアント装置106に対し、離脱したクライアント装置106の下位のクライアント装置106に対してもマルチキャストデータを転送するように依頼する。
(第二の実施形態)
次に、本発明の第二の実施形態について図面を参照して説明する。
図10は、第一の実施形態をコンピュータプログラムにより構成した場合に、そのコンピュータプログラムにより動作するコンピュータの構成図である。
当該コンピュータプログラムは、記録媒体1002および1005に保存され、コンピュータ1003および1006に読み込まれ、その動作を制御する。それにより、コンピュータ1003は第一の実施形態のサーバ装置101と同じ動作を行い、コンピュータ1006は第一の実施形態のクライアント装置106と同じ動作を行う。
本実施形態のコンピュータプログラムは記録媒体1002および1005に記録されることにより、コンピュータ1003および1006は、この記録媒体1002および1005を用いて本実施形態のコンピュータプログラムをインストールすることができる。
あるいは、記録媒体1002および1005を用いずに、本実施形態のコンピュータプログラムを保持するサーバ装置からネットワークを介してコンピュータ1003および1006に本実施形態のコンピュータプログラムをインストールすることもできる。
これにより、コンピュータ1003および1006を用いて、第一の実施形態のサーバ装置101およびクライアント装置106の機能に相応する機能を実現することができる。
なお、本実施形態のコンピュータプログラムは、コンピュータ1003および1006によって直接実行可能なものだけでなく、コンピュータ1003および1006のハードディスクなどにインストールすることによって実行可能となるものも含む。また、圧縮されたり、暗号化されたりしたものも含む。
(実施例)
次に、具体的な実施例を用いて本発明の実施形態の動作を説明する。まず、サンドボックス112として、言語処理系のランタイム1104を用いた場合を図11に示す。これは、例えばJavaScriptやJavaAppletを用いた場合に相当する。
言語処理系ランタイム1104は、通信ライブラリ1106および補助ライブラリ1105を含む。これらのライブラリはプログラム1108からは保護されており、変更できないものとする。通信ライブラリ1106は通信管理部1107を含み、これが図1のデータ送受信部116に相当する。
プログラム管理部1102は、言語処理系ランタイム1104を経由してプログラム1108を起動する。
プログラム1108は、通信を行う際、通信ライブラリ1106を経由する必要がある。ここで、言語処理系ランタイム1104の通信ライブラリ1106を、通信管理部1107を含み、またプログラム1108からの通信要求を捕捉するように変更することで、実施形態で述べた動作を実現することができる。
また、プログラム1108、言語処理系ランタイム1104は、マルチキャスト管理部1103やプログラム管理部1102と通信する必要がある。これは、例えば言語処理系ランタイム1104と、マルチキャスト管理部1103とを別のプロセスで実現し、これらを共有メモリやソケットなどのプロセス間通信を用いて接続することで実現することができる。
プログラム1108がマルチキャスト管理部1103にマルチキャスト網参加を要求する際は(図6のステップ603)、言語処理系ランタイム1104内部にそのための補助ライブラリ1105を用意しておき、これを経由して行うことで実現できる。あるいは、マルチキャスト管理部1103自身を、言語処理系ランタイム1104内のライブラリとして実現してもよい。この場合には、補助ライブラリ1105は不要となる。
別の実施例として、サンドボックス112としてプロセスを用いた場合を図12に示す。プロセスは、サンドボックス112としての隔離機能に制限があるため、例えばchrootを用いてファイルシステムレベルでの隔離機能を向上するなどの手法と併用することも考えられる。
対象となるプログラム1207は、プログラム管理部1202によって実行が開始される。そして、OSカーネル1204内部の通信関連システムコール1205を、通信管理部1206を含み、また、プログラム1207からの通信要求を捕捉するように変更することで、実施形態で述べた動作を実現することができる。
OSカーネル1204はプログラム管理部1202と連携し、対象とするプログラム1207が要求した通信であることを認識する。この連携には、例えば、プログラム管理部1202がプログラム1207を起動する際に、対象とするプログラム1207のIDをOSカーネル1204に登録する、などの方法が考えられる。
通信管理部1206およびプログラム1207とマルチキャスト管理部1203との通信は、マルチキャスト管理部1203を別プロセスで実現することで、プロセス間通信を用いることにより実現できる。あるいは、マルチキャスト管理部1203をOSカーネル1204の中に取り込み、システムコールとして実現することもできる。
また、別の実施例として、サンドボックス112として仮想マシン1304を用いた場合を図13に示す。この場合には、プログラム1307は仮想マシン1304上で動作するため、OSを含むものとなる。
プログラム管理部1302は、OSを含むプログラム1307を仮想マシン1304上に起動する。そして、仮想マシン1304内に構成された仮想通信ハードウェア1305を、通信管理部1306を含むように変更する。そして、OSを含むプログラム1307からの通信要求をここで捕捉する。
プログラム1307からマルチキャスト管理部1303との通信は、ホストOSへのネットワーク通信として実現できる。この通信は通信管理部1306によって捕捉されるが、マルチキャスト管理部1303との通信か、外部への通信要求かの判別は、ネットワークパケットの内容を見て、その宛先によって判断することができる。
仮想通信ハードウェア1305とプログラム管理部1302およびマルチキャスト管理部1303との通信は、プロセス間通信として実現できる。
本発明によれば、インターネット経由でダウンロードしたプログラム間で通信またはマルチキャストするプログラムに適用できる。WWWページに埋め込まれたプログラム間で通信またはマルチキャストする用途にも適用可能である。
本発明の実施形態の構成を示すブロック図である。 マルチキャスト網へ参加する状況を説明する図である。 プログラムを配布する際の流れ図である。 プログラム同士で通信を行う際の流れ図である。 サンドボックス間で認証を行う際の流れ図である。 クライアントがマルチキャスト網に参加する際の流れ図である。 マルチキャスト通信で送信を行う際の流れ図である。 マルチキャスト通信で受信を行う際の流れ図である。 離脱したノードがある際の動作を示す流れ図である。 第二の実施形態の構成を示すブロック図である。 サンドボックスとして言語処理系のランタイムを用いた具体例のブロック図である。 サンドボックスとしてプロセスを用いた具体例のブロック図である。 サンドボックスとして仮想マシンを用いた具体例のブロック図である。
符号の説明
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 仮想通信ハードウェア

Claims (6)

  1. 実行中のプログラムの情報を保持するプログラム管理部と、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うデータ送受信部とを備えたクライアント装置において、
    前記実行中のプログラムは、前記他プログラムが行う通信要求を許可または拒否する処理を行うサンドボックス内で動作し、
    前記サンドボックスは、通信要求の他プログラムが、自サンドボックス内で実行中のプログラムと同じ組織に属するプログラムであることを認証する相互認証手段を備え、
    前記相互認証手段は、通信要求他プログラムが属する他のサンドボックスとの間でサンドボックスの正当性を認証した後、当該通信要求の他プログラムが同一のサーバ装置からダウンロードされたプログラムまたは同じ組織によって電子署名されたプログラムであるかの認証を行う手段を備える、
    ことを特徴とするクライアント装置。
  2. 前記クライアント装置は、複数のクライアント装置がプログラムをマルチキャストでダウンロードするマルチキャスト網におけるクライアント装置である
    請求項1記載のクライアント装置。
  3. 実行中のプログラムの情報を保持し、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うクライアント装置が実行する通信方法において、
    前記実行中のプログラムは、前記他プログラムが行う通信要求を許可または拒否する処理を行うサンドボックス内で動作し、
    前記サンドボックスが、通信要求の他プログラムが、自サンドボックス内で実行中のプログラムと同じ組織に属するプログラムであることを認証する相互認証ステップを実行し、
    前記相互認証ステップは、通信要求他プログラムが属する他のサンドボックスとの間でサンドボックスの正当性を認証した後、当該通信要求元の他プログラムが同一のサーバ装置からダウンロードされたプログラムまたは同じ組織によって電子署名されたプログラムであるかの認証を行う、
    ことを特徴とする通信方法。
  4. 複数のクライアント装置がプログラムをマルチキャストでダウンロードするマルチキャスト網におけるクライアント装置の通信方法である
    請求項記載の通信方法
  5. コンピュータ装置にインストールすることにより、そのコンピュータ装置に、実行中のプログラムの情報を保持するプログラム管理機能と、他のクライアント装置内の他プログラムからの通信要求の捕捉を行うデータ送受信機能とを備えたクライアント装置の機能に相応する機能を実現させるコンピュータプログラムにおいて、
    前記実行中のプログラムは、前記他プログラムが行う通信要求を許可または拒否する処理を行うサンドボックス内で動作するものであって、
    前記サンドボックスに、通信要求の他プログラムが、自サンドボックス内で実行中のプログラムと同じ組織に属するプログラムであることを認証する相互認証機能を実現させ、
    前記相互認証手段に、通信要求他プログラムが属する他のサンドボックスとの間でサンドボックスの正当性を認証した後、当該通信要求の他プログラムが同一のサーバ装置からダウンロードされたプログラムまたは同じ組織によって電子署名されたプログラムであるかの認証を行う機能を実現させる、
    ことを特徴とするコンピュータプログラム。
  6. 複数のクライアント装置がプログラムをマルチキャストでダウンロードするマルチキャスト網のクライアント装置の機能を実現させる
    請求項記載のコンピュータプログラム。
JP2007302975A 2007-11-22 2007-11-22 クライアント装置および通信方法 Expired - Fee Related JP5347263B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007302975A JP5347263B2 (ja) 2007-11-22 2007-11-22 クライアント装置および通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007302975A JP5347263B2 (ja) 2007-11-22 2007-11-22 クライアント装置および通信方法

Publications (2)

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

Family

ID=40820013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007302975A Expired - Fee Related JP5347263B2 (ja) 2007-11-22 2007-11-22 クライアント装置および通信方法

Country Status (1)

Country Link
JP (1) JP5347263B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2016111141A (ru) 2013-08-29 2017-10-02 Сейко Эпсон Корпорейшн Передающая система, передающее устройство и способ передачи данных

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3513324B2 (ja) * 1996-04-26 2004-03-31 キヤノン株式会社 ディジタル署名処理方法
WO2006059639A1 (ja) * 2004-11-30 2006-06-08 Nec Corporation 情報共有システム、情報共有方法、グループ管理プログラム及びコンパートメント管理プログラム
JP2007228064A (ja) * 2006-02-21 2007-09-06 Mitsubishi Electric Corp ネットワークシステムおよび通信装置

Also Published As

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

Similar Documents

Publication Publication Date Title
CN108901022B (zh) 一种微服务统一鉴权方法及网关
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 (ru) Установление однорангового сеанса с малым временем ожидания
CN102047262B (zh) 用于分布式安全内容管理***的认证
US8250631B2 (en) Protecting against denial of service attacks using trust, quality of service, personalization, and hide port messages
CN105229987B (zh) 主动联合的移动认证
EP0947925A2 (en) Apparatus and method for remotely executing commands using distributed computing environment remote procedure calls
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 (ja) ゲートウェイ、中継方法及びプログラム
CN104767731A (zh) 一种Restful移动交易***身份认证防护方法
JP2007293760A (ja) 個別認証を用いたシングルサインオン連携方法およびシステム
JP5864598B2 (ja) ユーザにサービスアクセスを提供する方法およびシステム
JP2011070513A (ja) アクセス制御システム、認証サーバシステムおよびアクセス制御プログラム
WO2009093308A1 (ja) 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム
Kayas et al. An overview of UPnP-based IoT security: threats, vulnerabilities, and prospective solutions
KR101858207B1 (ko) 국군 여가복지전용 보안망 시스템
US8676998B2 (en) Reverse network authentication for nonstandard threat profiles
JP5347263B2 (ja) クライアント装置および通信方法
TWI356624B (ja)
KR20100063886A (ko) 이종 네트워크 간의 원격 접속 제어 시스템 및 방법
CN109684818A (zh) 一种防止机主登录密码泄露的跨终端式的服务器登录方法

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