JP2005250649A - プロセス間通信アクセス制御方式及び方法 - Google Patents

プロセス間通信アクセス制御方式及び方法 Download PDF

Info

Publication number
JP2005250649A
JP2005250649A JP2004057594A JP2004057594A JP2005250649A JP 2005250649 A JP2005250649 A JP 2005250649A JP 2004057594 A JP2004057594 A JP 2004057594A JP 2004057594 A JP2004057594 A JP 2004057594A JP 2005250649 A JP2005250649 A JP 2005250649A
Authority
JP
Japan
Prior art keywords
proxy object
access control
server
event
communication
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.)
Pending
Application number
JP2004057594A
Other languages
English (en)
Inventor
Yoshitaka Nakayama
義孝 中山
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 JP2004057594A priority Critical patent/JP2005250649A/ja
Publication of JP2005250649A publication Critical patent/JP2005250649A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】サーバを仲介者とするプロセス間通信において、通信元のプロセスが通信先のプロセスに対してアクセス権限があるかを検証して、アクセスの許可/不許可の判断を簡便な方式で実現する、プロセス間通信アクセス制御方式及び方法を提供する。
【解決手段】複数のプロセスがサーバを介して通信を行うプロセス間通信システムにおいて、前記プロセスは通信に先立って前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に保存する代理オブジェクト設定装置を備え、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定するアクセス制御装置を備える。
【選択図】 図1

Description

本発明はプロセス間通信アクセス制御方式及び方法に関し、特に、サーバを仲介者とするプロセス間通信において、通信元のプロセスが通信先のプロセスに対してアクセス権限があるかを検証して、アクセスの許可/不許可の判断を簡便な方式で実現することを可能とする、プロセス間通信アクセス制御方式及び方法に関する。
近年の通信ネットワークや情報処理装置の進展に伴い、1つの情報処理装置上の複数のプロセス間、或いは、通信ネットワークを介して接続された複数の情報処理装置上のプロセス間において、多量のデータ交換が行なわれるようになってきている。
しかしながら、これらプロセス間で交換されるデータ量があまりにも多量になってきたため、データ交換を行なう上での通信負荷を軽減する必要性が増大してきている。そして、プロセス間の通信負荷を軽減するための情報処理装置も提案されるようになってきている(例えば、特許文献1参照。)。
上述した特許文献1の「プロセス間通信処理装置」には、以下のような計算機システムが記載されている。
すなわち、いずれかのプロセスオブジェクトが、他の計算機上で動作するプロセスオブジェクトに所定の手続依頼を行なう場合、予め同一計算機内に通信代理オブジェクトを生成する。この通信代理オブジェクトは、プロセスオブジェクトとは独立にプロセスオブジェクトに代わってメッセージ通信を実行する。その際のメッセージ通信処理は、相手のプロセスオブジェクトが同一計算機上に存在すれば、共有メモリ空間を利用した高速な通信を行なう。一方、相手のプロセスオブジェクトが異なった計算機上に存在すれば、ネットワークを介した通信を行なう。この結果、メッセージの送信元プロセスオブジェクトでは、そのメッセージの受信を行うプロセスオブジェクトの存在場所を意識することなく、同一のプロセス間通信記述を行うことができる。
このことにより、通信負荷の軽減及び通信処理のプログラミングの効率化を図ることができるようになる、としている。
また、プロセス間でのデータ送受信を、サーバを仲介して行うシステムも提案されるようになっている(例えば、特許文献2参照。)。
上述した特許文献2の「データ受信制御装置」には、以下のような問題点を解消するデータ受信制御装置が記載されている。
すなわち、通常、アプリケーションプログラム内の特定のプロセス間でデータを送受信する場合には、送信側プロセスと受信側プロセスとの間でデータを共有するための共有格納領域を用意し、そこでデータの受け渡しを行うようにしている。このとき、従来の装置では、データを受信する側のプロセスで共有格納領域にデータが書き込まれているかどうかを常に監視していた。あるいは、送信側プロセスで共有格納領域にデータを書き込んだとき、そのことを受信側プロセスに通知していた。このような従来の方式では、受信側プロセスにおいて又は送信側プロセス及び受信側プロセスにおいて、データ送受信に付随する余分な作業を実行しなければならないという問題があった。そこで、特許文献2のデータ受信制御装置においては、共有記憶領域にデータが書き込まれることを入力イベントとして認識するように、Xサーバに指示しておく。そして、この入力イベントが発生したとき、Xサーバはこれを受信側プロセスに通知し、この通知を受けた受信側プロセスは共通記憶領域からデータを読み出して処理することとしている。
このことにより、Xウィンドウシステム上で動作するアプリケーションプログラムの二つのプロセス間でのデータ送受信を、簡単かつ迅速に行えるようになる、としている。
一方、最近の情報処理装置に実装されるソフトウェアは、その機能の多様化によって大規模化・複雑化してきており、それに伴ってソフトウェアのセキュリティの重要性が唱えられるようになってきている。
例えば、悪意のあるアプリケーション・ソフトウェアが、他のアプリケーション・ソフトウェアやプロセスに対して処理しきれないほどの大量のイベントを送りつづけることによって、他のアプリケーション・ソフトウェアやプロセスの処理作業を妨害する、といった事態を挙げることができる。
上述したような事態を回避するための一手段として、アクセス制御を行うことも重要となってきており、通信ネットワーク内のセキュリティを確保するためのアクセス制御装置なども提案されるようになってきている(例えば、特許文献3参照。)。
上述した特許文献3の「アクセス制御装置、ネットワークシステム、アクセス制御方法およびプログラム」には、以下のようなシステムが記載されている。
すなわち、クライアント端末からLAN(Local Area Network:ラン)を介してサーバに送信データを送信しようとする場合、LANとサーバの間に位置するアクセス制御装置のアクセス制御用ソフトウェアは、受信した送信データ(データパケット)を解析し、発信アドレス(MACアドレス(物理アドレス))及びIDを抽出する。そして、アクセス管理データベースを参照して、発信アドレス及びIDの組合せが、アクセスを許可されているデータ(許可データ)であるか否かを判別する。許可データである場合に、アクセス制御用ソフトウェアは、送信データをサーバに向けて送信するようにし、許可データでない場合には、送信データ(データパケット)を破棄する。
このように、アクセス制御装置によってサーバへのアクセス制御を行なうことにより、ネットワーク内のセキュリティが確保できるようになる、としている。
特開平8−212180号公報(第3−5頁、図1−5) 特開平7−006042号公報(第2−3頁、図1−2) 特開2003−162505号公報(第7−10頁、図1−8)
上述したように、悪意のあるアプリケーション・ソフトウェアからの他のプロセスに対する攻撃を回避するため、或いは、ソフトウェアのバグなどにより他のプロセスに対する不正なアクセスを行わせないようにして、ソフトウェアのセキュリティを向上させるためには、プロセス間通信のアクセス制御を行うことが重要となってくる。しかし、上述の特許文献3に記載のアクセス制御装置は、プロセス間通信のアクセス制御を行うものではなく、また、上述の特許文献2に記載のデータ受信制御装置は、アクセス制御を行っていない。特許文献2に記載のデータ受信制御装置においてアクセス制御を行おうとする場合には、Xサーバに対して多大な修正を行うことが必要となってしまう。さらに、上述の特許文献1に記載のプロセス間通信処理装置においても、アクセス制御は行っていない。
本発明は上述した事情を改善するために成されたものであり、従って本発明の目的は、サーバを仲介者とするプロセス間通信において、通信元のプロセスが通信先のプロセスに対してアクセス権限があるかを検証して、アクセスの許可/不許可の判断を簡便な方式で実現することを可能とする、プロセス間通信アクセス制御方式及び方法を提供することにある。
本発明のプロセス間通信アクセス制御方式は、複数のプロセスがサーバを介して通信を行うプロセス間通信システムにおいて、前記プロセスは通信に先立って前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に保存する代理オブジェクト設定装置を備え、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定するアクセス制御装置を備える、ことを特徴とする。
また、前記アクセス制御装置は前記プロセスのアクセス権限を示す情報であるところのパーミッション情報を前記プロセスの代理オブジェクトから取得してイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能か否かを判定する、ことを特徴とする。
さらに、前記アクセス制御装置はイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能と判定した場合に前記イベントを前記送信先のプロセスに送信する、ことを特徴とする。
また、前記アクセス制御装置は前記プロセスの代理オブジェクトを前記プロセスのプロセスIDによって特定する、ことを特徴とする。
さらに、複数のプロセスがサーバを介して通信を行うプロセス間通信システムにおいて、前記プロセス間通信システムは前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に予め保存する代理オブジェクト事前設定装置を備え、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定する第2のアクセス制御装置を備える、ことを特徴とする。
また、前記第2のアクセス制御装置は前記プロセスのアクセス権限を示す情報であるところのパーミッション情報を前記プロセスの代理オブジェクトから取得してイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能か否かを判定する、ことを特徴とする。
さらに、前記第2のアクセス制御装置はイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能と判定した場合に前記イベントを前記送信先のプロセスに送信する、ことを特徴とする。
また、前記第2のアクセス制御装置は前記プロセスの代理オブジェクトを前記プロセスのプロセスIDによって特定する、ことを特徴とする。
本発明のプロセス間通信アクセス制御方法は、複数のプロセスがサーバを介して通信を行うプロセス間通信方法において、前記プロセスは通信に先立って前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に保存する保存ステップを実行し、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定する判定ステップを実行する、ことを特徴とする。
また、前記判定ステップにおいては前記プロセスのアクセス権限を示す情報であるところのパーミッション情報を前記プロセスの代理オブジェクトから取得してイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能か否かを判定する、ことを特徴とする。
さらに、前記判定ステップにおいてイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能と判定した場合に前記イベントを前記送信先のプロセスに送信する、ことを特徴とする。
また、前記判定ステップにおいては前記プロセスの代理オブジェクトを前記プロセスのプロセスIDによって特定する、ことを特徴とする。
さらに、複数のプロセスがサーバを介して通信を行うプロセス間通信方法において、前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に予め保存する代理オブジェクト事前設定ステップを実行し、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定する第2の判定ステップを実行する、ことを特徴とする。
また、前記第2の判定ステップにおいては前記プロセスのアクセス権限を示す情報であるところのパーミッション情報を前記プロセスの代理オブジェクトから取得してイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能か否かを判定する、ことを特徴とする。
さらに、前記第2の判定ステップにおいてイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能と判定した場合に前記イベントを前記送信先のプロセスに送信する、ことを特徴とする。
また、前記第2の判定ステップにおいては前記プロセスの代理オブジェクトを前記プロセスのプロセスIDによって特定する、ことを特徴とする。
本発明のプロセス間通信アクセス制御方式及び方法は、プロセス毎に代理オブジェクトを生成して一時記憶領域に置き、サーバは、この代理オブジェクトを参照することにより、送信元プロセスが送信先プロセスに対してアクセス権限を有するかを検証して、アクセスの許可/不許可の判断を行っているので、プロセス間通信におけるアクセス制御を簡便な方式で実現できる、という効果を有している。
次に、本発明の実施の形態について図面を参照して説明する。
図1は、本発明のプロセス間通信アクセス制御方式の一実施形態を示すブロック図である。
図1に示す本実施の形態は、情報処理装置10上にXサーバシステムが構築されている様子を示している。
すなわち、図1において、情報処理装置10は、図示を省略するOS(Operating System:オペレーティングシステム)上で動作する、複数のプロセス40と、プロセス40間の通信を仲介するXサーバ30と、から構成され、かつ、各プロセス40の代理オブジェクトを記憶する一時記憶領域20を備えている。なお、本実施形態におけるOSは、UNIX(登録商標)系のOSであるものとする。
プロセス40は、情報処理装置10上に複数存在するが、その一例としてプロセスA40−1及びプロセスB40−2が図示されている。
ここで、本実施形態の概要について予め説明を行っておく。
本実施形態の各プロセス40はXサーバ30を介して相互に通信を行うようになっており、各プロセス40は通信を開始する前に自身のプロセス情報をXサーバ30に通知する。そして、本実施形態では、そのプロセス情報に、プロセス40を識別することが可能なユニークな値(以下、プロセスIDと呼ぶ)を付加してXサーバ30に通知し、同時に、プロセスIDを元に生成する、プロセス40の属性を保持するファイル(以下、代理オブジェクトと呼ぶ)を生成して一時記憶領域20に置く。
以上の準備に成功したプロセス40が他のプロセス40に対してXサーバ30を介して通信を行う際、Xサーバ30は通信元と通信先のプロセス情報からプロセスIDを検索し、さらに代理オブジェクトを検索することが可能である。
本実施形態においては、この代理オブジェクトのパーミッション情報(アクセス権限を示す情報であり、UNIX(登録商標)系OSを基盤とするシステムでは、User、Group 、Other それぞれに対して、読み出し、書き込み、実行のパーミッションが適用される。)を比較し、送信元プロセス40が送信先プロセス40に対してアクセス権限があるかを検証することでアクセス制御を行う。これにより、Xサーバ30を介したプロセス間通信のアクセス制御を行うことが可能となる。
これらの作業は、OSが既に保持する機能を使用し、ソースファイルに数十行の追加/改造を行うだけで容易に実現することが可能である。
図1に戻り、各プロセス40は代理オブジェクト設定装置41を備えている。代理オブジェクトは、上述したように、プロセス40の属性を保持するファイルであり、かつ、テンポラリファイルである。代理オブジェクトは各プロセス40ごとに生成され、そのプロセス40にあったパーミッション情報を保持する。そして、各プロセス40の代理オブジェクト設定装置41は、自身の代理オブジェクトを生成し、これを、一時記憶領域20内に代理オブジェクト21として置くようになっている。具体的には、プロセスA40−1の代理オブジェクト設定装置41−1は、プロセスA40−1の代理オブジェクトを生成し、これを一時記憶領域20内にプロセスAの代理オブジェクト21−1として置き、プロセスB40−2の代理オブジェクト設定装置41−2は、プロセスB40−2の代理オブジェクトを生成し、これを一時記憶領域20内にプロセスBの代理オブジェクト21−2として置く。
Xサーバ30は、クライアント管理テーブル31とアクセス制御装置32とを備えている。
クライアント管理テーブル31は、Xサーバ30が従来から保持するクライアント情報(各プロセス40の情報)を管理するテーブルである。そして、本実施形態では、そのクライアント情報にクライアント(プロセス40)が送信するプロセスIDも管理するようにしてある。
アクセス制御装置32は、送信元プロセス40がXSendEvent関数を用いてイベントを送信するときに、送信先プロセス40に対してアクセス権限があるかを検証し、アクセス権限がなければイベント送信を中断し、アクセス権限があればイベントを送信先プロセス40に送信する。アクセス権限の判断は、代理オブジェクト21のパーミッション情報をもとに判定する。このパーミッション情報は、クライアント管理テーブル31で管理しているプロセスIDから代理オブジェクト21を求め、その代理オブジェクト21のパーミッション情報をもとに判断する。
次に、図2を参照して、図1に示した本実施形態の動作概要について説明する。
図2は、図1の実施形態の動作概要を説明する図である。なお、図2において図1に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略する。
図2において、プロセスA40−1の代理オブジェクト設定装置41−1は、プロセスA40−1がXサーバ30に対して接続を確立するためにXOpenDisplay関数を呼び出すとき、プロセスA40−1のプロセスID(図中においては、PIDと記す。)を元に代理オブジェクトを生成し、これを、creat 関数により一時記憶領域20に代理オブジェクト21−1として置く(図2のステップS1)。さらに、Xサーバ30に送信するデータに自身のプロセスIDを付加している(図2のステップS2)。なお、プロセスB40−2の代理オブジェクト21−2も一時記憶領域20に生成されている。
プロセスA40−1は、プロセスB40−2に対する通信を行うため、XSendEvent関数を用いてイベントをXサーバ30へ送信する(図2のステップS3)。
Xサーバ30のアクセス制御装置32は、送信元のプロセスA40−1のプロセスIDをクライアント管理テーブル31から取得すると共に、送信先のプロセスB40−2のプロセスIDをも取得する。ここで、図2中においては、送信元のプロセスA40−1のプロセスIDを「PIDA」と記載し、送信先のプロセスB40−2のプロセスIDを「PIDB」と記載する。
Xサーバ30のアクセス制御装置32は、取得したプロセスA40−1のプロセスID、すなわち「PIDA」から一時記憶領域20内の代理オブジェクト21−1を参照すると共に、プロセスB40−2のプロセスID、すなわち「PIDB」から一時記憶領域20内の代理オブジェクト21−2を参照する(図2のステップS4)。そして、代理オブジェクト21−1と代理オブジェクト21−2のパーミッション情報から、プロセスA40−1がプロセスB40−2に対して、アクセス権限があるかを判定する(図2のステップS5)。
プロセスA40−1がプロセスB40−2に対するアクセス権限を有しない場合には、プロセスB40−2へのイベントの送信を中断する。アクセス権限を有する場合には、プロセスB40−2へイベントを送信し(図2のステップS6)、プロセスB40−2はXNextEvent関数により該イベントを受信する。
以上の処理はすべてOSやXサーバ30がすでに保持している機能を利用することで実装可能であり、さらにその作業は非常に容易であるため、実装も工数をあまり必要としない。
次に、図3を参照して、図1に示した本実施形態の動作について詳細に説明する。
図3は、図1の実施形態の動作を説明するフローチャートである。なお、図3において、プロセス40はクライアントプロセスとも称し、Xサーバ30はサーバプロセスとも称するものとする。また、説明の便宜上、イベントの送信元のプロセス40を、プロセス40−1と記載し、イベントの送信先のプロセス40を、プロセス40−2と記載するものとする。
図3において、任意のプロセス40−1が他のプロセス40−2宛てにイベントを送信するために、Xサーバ30へのコネクションを開始する(図3のステップS401)。これは、XOpenDisplay関数を呼び出すことにより行われる。
次に、プロセス40の代理オブジェクト設定装置41において、OSが提供するgetpid関数を使用して、自プロセス40のプロセスIDを取得する(図3のステップS402)。
そして、ステップS402で取得したプロセスIDをファイル名として、一時記憶領域20内の/tmpディレクトリ階層に代理オブジェクト21を生成する(図3のステップS403)。これは、OSが提供するcreat 関数を使用して行われる。
次に、ステップS403で生成した代理オブジェクト21のパーミッション情報を設定する(図3のステップS404)。これは、OSが提供するchmod 関数を使用して設定する。
また、コネクションを行う際にXサーバ30に通知するプロセス情報の中に、プロセスIDを付加する(図3のステップS405)。これは、bind関数やconnect 関数の引数に指定するstruct sockaddr 構造体のメンバsun_pathに設定する。
そして、プロセス40は実際にXサーバ30に対してコネクションを行う(図3のステップS406)。これは、OSが提供するconnect 関数を使用して設定する。このとき、ステップS405で指定したstruct sockaddr 構造体型変数を指定する。
次に、ステップS406でのコネクションに成功した後、他プロセス40−2に対してイベントを送信する(図3のステップS407)。これは、XSendEvent関数を使用して送信する。
そして、ステップS407で送信したイベントの結果を受信する(図3のステップS408)。これはXSendEvent関数の実行結果であり、送信先のプロセス40−2に対してアクセス権限がなかった場合、エラーとなり、アクセス権限がある場合は、送信成功となる。
Xサーバ30においては、プロセス40(クライアントプロセス)がステップS406で依頼してきたコネクションの処理を行う(図3のステップS411)。これはOSが提供するaccept関数を使用し、このときプロセス40がステップS405で付加したプロセスIDを取得し、クライアント管理テーブル31に保存する。
Xサーバ30のアクセス制御装置32は、プロセス40がステップS407で行ったイベント送信の依頼を処理する。すなわち、クライアント管理テーブル31から該当する情報を検索し、そのクライアント管理テーブル31に格納されている送信元のプロセス40−1のプロセスIDを取得する。同時に、送信先プロセス40−2のプロセスIDも取得する(図3のステップS412)。
そして、ステップS412で取得したプロセスIDから、一時記憶領域20内の代理オブジェクト21を求める(図3のステップS413)。次に、ステップS413で求めた代理オブジェクト21のパーミッション情報を取得する(図3のステップS414)。これは、OSが提供するstat関数を使用して取得する。
次に、ステップS414で取得したパーミッション情報をもとに、プロセス40−1がプロセス40−2に対し、アクセス権限があるかを検証する(図3のステップS415)。
図3のステップS416では、ステップS415での検証結果により、以降の処理を分岐する。
すなわち、アクセス権限があった場合に(ステップS416でアクセス権限あり)、送信元プロセス40−1が送信しようとしているイベントを、送信先プロセス40−2に送信する(図3のステップS417)。
そして、送信先プロセス40−2への送信結果をイベントの送信元プロセス40−1に通知する(図3のステップS418)。ステップS418では、イベントの送信元プロセス40−1にアクセス権限がなかった場合の処理も行うが(ステップS416でアクセス権限なし)、この場合はエラーを通知することになる。ステップS418での送信結果は、プロセス40のステップS408で受信される。
次に、図4を参照して、図3で説明した本実施形態の動作の総括を行っておく。
図4は、図1の実施形態の動作を総括する図である。そして、図4は、図1に示した実施形態のプロセスA40−1とプロセスB40−2に加えて、プロセスC40−3も図示したものとなっている。従って、図4の一時記憶領域20内には、プロセスAの代理オブジェクト21−1とプロセスBの代理オブジェクト21−2に加えて、プロセスCの代理オブジェクト21−3が図示されている。なお、図4において図1に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略するものとする。
図4において、プロセスA40−1が他のプロセス40、すなわち、プロセスB40−2及びプロセスC40−3に対してイベントを送信しようとしたものとする。
Xサーバ30は、該イベントの送信権限を判定するために、先ず、プロセスA40−1のプロセスIDを取得し、また、イベントの送信先であるプロセスB40−2とプロセスC40−3のプロセスIDを取得する。そして、取得したプロセスIDを元にプロセスAの代理オブジェクト21−1、プロセスBの代理オブジェクト21−2、プロセスCの代理オブジェクト21−3を参照する。次に、プロセスAの代理オブジェクト21−1とプロセスBの代理オブジェクト21−2のパーミッション情報を参照し、プロセスA40−1がプロセスB40−2に対するアクセス権限を有するかを判定する。ここで、アクセス権限が無いと判定されたものとすると、プロセスA40−1からのイベントは、プロセスB40−2には送信されない。また、プロセスAの代理オブジェクト21−1とプロセスCの代理オブジェクト21−3のパーミッション情報を参照し、プロセスA40−1がプロセスC40−3に対するアクセス権限を有するかを判定する。ここで、アクセス権限があると判定されたものとすると、プロセスA40−1からのイベントは、プロセスC40−3に送信される。
以上説明したように、本実施形態のプロセス間通信アクセス制御方式によれば、プロセス40毎に代理オブジェクト21を生成して一時記憶領域20に置き、この代理オブジェクト21のパーミッションを比較して、送信元プロセス40が送信先プロセス40に対するアクセス権限を有するかを検証して、アクセスの許可/不許可の判断を行っているので、プロセス間通信におけるアクセス制御を簡便な方式で実現できる、という効果を有している。
次に、図5を参照して、本発明の第2の実施形態について説明する。
図5は、本発明のプロセス間通信アクセス制御方式の第2の実施形態の動作概要を説明する図である。
本発明の第2の実施形態の基本的構成は、図1、図2に示した第1の実施形態とほぼ同様であるが、プロセス40の代理オブジェクト設定装置41と、Xサーバ30のアクセス制御装置32についてさらに工夫したものとなっている。第1の実施形態においては、任意のプロセス40がXサーバ30と接続するつど、動的に代理オブジェクト21を生成していたが、第2の実施形態では、あらかじめプログラムごとに対応する代理オブジェクト21を静的に用意しておくことを前提としたものである。そして、代理オブジェクト21は、そのファイル名として、プロセス40の元になっているプログラム名を使用するものとする。この構成を図5に示す。
すなわち、図5において、プロセス40としては、mailerプロセス40−4と、browserプロセス40−5が存在しており、mailer及びbrowserがプログラム名となっている。そして、mailerプロセス40−4は、代理オブジェクト設定装置41−4を備えており、その代理オブジェクト21−4が予め一時記憶領域20に置かれている。代理オブジェクト21−4のファイル名はmailerである。また、browserプロセス40−5の代理オブジェクト21−5も予め一時記憶領域20に置かれており、代理オブジェクト21−5のファイル名はbrowserである。
mailerプロセス40−4の代理オブジェクト設定装置41−4は、mailerプロセス40−4がXサーバ30に対して接続を確立するためにXOpenDisplay関数を呼び出すとき、Xサーバ30に送信するデータに自身のプロセスIDを付加している。
Xサーバ30のクライアント管理テーブル31は、Xサーバ30が従来から保持するクライアント情報を管理するテーブルであるが、第1の実施形態と同様に、その情報にクライアント(プロセス40)が送信するプロセスIDも管理するようにしてある。
Xサーバ30のアクセス制御装置32は、送信元プロセスがXSendEvent関数を用いてイベントを送信するときに、送信先プロセスに対してアクセス権限があるかを検証し、アクセス権限がなければイベント送信を中断し、アクセス権限があればイベントを送信する。アクセス権限の判断は、代理オブジェクト21のパーミッション情報をもとに判定する。このパーミッション情報は、クライアント管理テーブル31で管理しているプロセスIDを/proc/プロセスID/cmdlineに適用し、そのcmdlineの内容を参照することで得られるプログラム名から代理オブジェクト21を求め、その代理オブジェクト21のパーミッション情報をもとに判断する。
次に、図5を再度参照して、第2の実施形態の動作概要について説明する。
図5は、本発明のプロセス間アクセス制御方式の第2の実施形態の動作概要を説明する図である。なお、図5において図2に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略する。
図5において、mailerプロセス40−4の代理オブジェクト21−4と、browserプロセス40−5の代理オブジェクト21−5を、予め一時記憶領域20に用意しておく(図5のステップS1−1)。
そして、mailerプロセス40−4の代理オブジェクト設定装置41−4は、Xサーバ30に送信するデータに自身のプロセスIDを付加して通知する(図5のステップS2)。
mailerプロセス40−4は、browserプロセス40−5に対する通信を行うため、XSendEvent関数を用いてイベントをXサーバ30へ送信する(図5のステップS3)。
Xサーバ30のアクセス制御装置32は、送信元のmailerプロセス40−4のプロセスIDをクライアント管理テーブル31から取得すると共に、送信先のbrowserプロセス40−5のプロセスIDをも取得する。そして、取得したmailerプロセス40−4のプロセスIDからプログラム名を得て一時記憶領域20内の代理オブジェクト21−4を参照すると共に、browserプロセス40−5のプロセスIDからプログラム名を得て一時記憶領域20内の代理オブジェクト21−5を参照する(図5のステップS4)。そして、代理オブジェクト21−4と代理オブジェクト21−5のパーミッション情報から、mailerプロセス40−4がbrowserプロセス40−5に対して、アクセス権限があるかを判定する(図5のステップS5)。
mailerプロセス40−4がbrowserプロセス40−5に対するアクセス権限を有しない場合には、browserプロセス40−5へのイベントの送信を中断する。アクセス権限を有する場合には、browserプロセス40−5へイベントを送信し(図5のステップS6)、browserプロセス40−5はXNextEvent関数により該イベントを受信する。
以上の処理は第1の実施形態で述べた利点を踏まえた上で、さらに組み込みなどの、すでに実行するプログラムが決まっている環境などで有効である。また、代理オブジェクト21のパーミッションをあらかじめ設定するためその設定の自由度が増し、代理オブジェクト21を生成する仕組みが不要となる利点も挙げられる。
本発明のプロセス間通信アクセス制御方式の一実施形態を示すブロック図である。 図1の実施形態の動作概要を説明する図である。 図1の実施形態の動作を説明するフローチャートである。 図1の実施形態の動作を総括する図である。 本発明のプロセス間通信アクセス制御方式の第2の実施形態の動作概要を説明する図である。
符号の説明
10 情報処理装置
20 一時記憶領域
21 代理オブジェクト
30 Xサーバ
31 クライアント管理テーブル
32 アクセス制御装置
40 プロセス
41 代理オブジェクト設定装置

Claims (16)

  1. 複数のプロセスがサーバを介して通信を行うプロセス間通信システムにおいて、前記プロセスは通信に先立って前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に保存する代理オブジェクト設定装置を備え、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定するアクセス制御装置を備える、ことを特徴とするプロセス間通信アクセス制御方式。
  2. 前記アクセス制御装置は前記プロセスのアクセス権限を示す情報であるところのパーミッション情報を前記プロセスの代理オブジェクトから取得してイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能か否かを判定する、ことを特徴とする請求項1に記載のプロセス間通信アクセス制御方式。
  3. 前記アクセス制御装置はイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能と判定した場合に前記イベントを前記送信先のプロセスに送信する、ことを特徴とする請求項2に記載のプロセス間通信アクセス制御方式。
  4. 前記アクセス制御装置は前記プロセスの代理オブジェクトを前記プロセスのプロセスIDによって特定する、ことを特徴とする請求項1から請求項3の何れか1項に記載のプロセス間通信アクセス制御方式。
  5. 複数のプロセスがサーバを介して通信を行うプロセス間通信システムにおいて、前記プロセス間通信システムは前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に予め保存する代理オブジェクト事前設定装置を備え、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定する第2のアクセス制御装置を備える、ことを特徴とするプロセス間通信アクセス制御方式。
  6. 前記第2のアクセス制御装置は前記プロセスのアクセス権限を示す情報であるところのパーミッション情報を前記プロセスの代理オブジェクトから取得してイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能か否かを判定する、ことを特徴とする請求項5に記載のプロセス間通信アクセス制御方式。
  7. 前記第2のアクセス制御装置はイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能と判定した場合に前記イベントを前記送信先のプロセスに送信する、ことを特徴とする請求項6に記載のプロセス間通信アクセス制御方式。
  8. 前記第2のアクセス制御装置は前記プロセスの代理オブジェクトを前記プロセスのプロセスIDによって特定する、ことを特徴とする請求項5から請求項7の何れか1項に記載のプロセス間通信アクセス制御方式。
  9. 複数のプロセスがサーバを介して通信を行うプロセス間通信方法において、前記プロセスは通信に先立って前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に保存する保存ステップを実行し、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定する判定ステップを実行する、ことを特徴とするプロセス間通信アクセス制御方法。
  10. 前記判定ステップにおいては前記プロセスのアクセス権限を示す情報であるところのパーミッション情報を前記プロセスの代理オブジェクトから取得してイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能か否かを判定する、ことを特徴とする請求項9に記載のプロセス間通信アクセス制御方法。
  11. 前記判定ステップにおいてイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能と判定した場合に前記イベントを前記送信先のプロセスに送信する、ことを特徴とする請求項10に記載のプロセス間通信アクセス制御方法。
  12. 前記判定ステップにおいては前記プロセスの代理オブジェクトを前記プロセスのプロセスIDによって特定する、ことを特徴とする請求項9から請求項11の何れか1項に記載のプロセス間通信アクセス制御方法。
  13. 複数のプロセスがサーバを介して通信を行うプロセス間通信方法において、前記プロセスの属性を保持するファイルであるところの代理オブジェクトを前記サーバが参照可能な一時記憶領域に予め保存する代理オブジェクト事前設定ステップを実行し、前記サーバは前記プロセスからのイベントの送信依頼が有った際に前記一時記憶領域の送信元のプロセスの代理オブジェクトと送信先のプロセスの代理オブジェクトを参照して前記送信元のプロセスが前記送信先のプロセスに対しアクセス可能か否かを判定する第2の判定ステップを実行する、ことを特徴とするプロセス間通信アクセス制御方法。
  14. 前記第2の判定ステップにおいては前記プロセスのアクセス権限を示す情報であるところのパーミッション情報を前記プロセスの代理オブジェクトから取得してイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能か否かを判定する、ことを特徴とする請求項13に記載のプロセス間通信アクセス制御方法。
  15. 前記第2の判定ステップにおいてイベントの送信元のプロセスが送信先のプロセスに対しアクセス可能と判定した場合に前記イベントを前記送信先のプロセスに送信する、ことを特徴とする請求項14に記載のプロセス間通信アクセス制御方法。
  16. 前記第2の判定ステップにおいては前記プロセスの代理オブジェクトを前記プロセスのプロセスIDによって特定する、ことを特徴とする請求項13から請求項15の何れか1項に記載のプロセス間通信アクセス制御方法。
JP2004057594A 2004-03-02 2004-03-02 プロセス間通信アクセス制御方式及び方法 Pending JP2005250649A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004057594A JP2005250649A (ja) 2004-03-02 2004-03-02 プロセス間通信アクセス制御方式及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004057594A JP2005250649A (ja) 2004-03-02 2004-03-02 プロセス間通信アクセス制御方式及び方法

Publications (1)

Publication Number Publication Date
JP2005250649A true JP2005250649A (ja) 2005-09-15

Family

ID=35031094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004057594A Pending JP2005250649A (ja) 2004-03-02 2004-03-02 プロセス間通信アクセス制御方式及び方法

Country Status (1)

Country Link
JP (1) JP2005250649A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193812A (ja) * 2006-01-19 2007-08-02 Internatl Business Mach Corp <Ibm> ホスト間通信のためのシステム及び方法
JP2008186357A (ja) * 2007-01-31 2008-08-14 Renesas Technology Corp データ処理装置
JP2009530714A (ja) * 2006-03-14 2009-08-27 ユニバーシティ・オブ・ユタ・リサーチ・ファウンデイション 分散アプリケーション及びデータのための拡張可能なフレームワーク
JP5387584B2 (ja) * 2008-12-08 2014-01-15 日本電気株式会社 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム
WO2015019421A1 (ja) * 2013-08-06 2015-02-12 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器
CN110879886A (zh) * 2018-09-05 2020-03-13 西门子股份公司 用于运行网络服务器的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193812A (ja) * 2006-01-19 2007-08-02 Internatl Business Mach Corp <Ibm> ホスト間通信のためのシステム及び方法
JP2009530714A (ja) * 2006-03-14 2009-08-27 ユニバーシティ・オブ・ユタ・リサーチ・ファウンデイション 分散アプリケーション及びデータのための拡張可能なフレームワーク
US8719816B2 (en) 2006-03-14 2014-05-06 University Of Utah Research Foundation Extendable framework for distributed applications and data
JP2008186357A (ja) * 2007-01-31 2008-08-14 Renesas Technology Corp データ処理装置
JP5387584B2 (ja) * 2008-12-08 2014-01-15 日本電気株式会社 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム
WO2015019421A1 (ja) * 2013-08-06 2015-02-12 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器
JPWO2015019421A1 (ja) * 2013-08-06 2017-03-02 株式会社アイ・エル・シー 組み込みソフトウェアのプログラム開発方法、プログラミング装置および組み込み機器
CN110879886A (zh) * 2018-09-05 2020-03-13 西门子股份公司 用于运行网络服务器的方法

Similar Documents

Publication Publication Date Title
US11824962B2 (en) Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks
US9659169B2 (en) Dividing a data processing device into separate security domains
US7257815B2 (en) Methods and system of managing concurrent access to multiple resources
US6976174B2 (en) Secure multiprotocol interface
US20130055347A1 (en) Hardware interface access control for mobile applications
JP4087428B2 (ja) データ処理システム
JP2000174807A (ja) ストリ―ムにおけるマルチレベルセキュリティの属性パス方法、装置及びコンピュ―タプログラム製品
US9438629B2 (en) Sensitive information leakage prevention system, sensitive information leakage prevention method, and computer-readable recording medium
US20070162909A1 (en) Reserving resources in an operating system
WO2009097776A1 (zh) 一种实现业务升级的系统、装置及方法
WO2011086787A1 (ja) 機密情報漏洩防止システム、機密情報漏洩防止方法及び機密情報漏洩防止プログラム
US20040030801A1 (en) Method and system for a client to invoke a named service
US11616853B2 (en) Dynamic domain discovery and proxy configuration
US11269700B2 (en) System call interception for file providers
JP7194212B2 (ja) 認証方法及び装置、コンピューティング機器、並びに媒体
JP2005250649A (ja) プロセス間通信アクセス制御方式及び方法
US10242174B2 (en) Secure information flow
US9363290B2 (en) Access control information generating system
JP2006277633A (ja) セキュリティ保証機能を備えたコンピュータネットワーク、セキュリティの保証方法、及び、プログラム
US7363383B2 (en) Running a communication protocol state machine through a packet classifier
WO2022151736A1 (zh) 一种确定信任终端的方法及相关装置
US20050100034A1 (en) Reducing memory accesses in processing TCP/IP packets
JP4878480B2 (ja) 一方向性を確保したファイル転送方法及びシステム並びにプログラム
EP4167523A1 (en) Network gateway and method for transferring data from a first network to a second network
JP7264767B2 (ja) パケット中継装置及びパケット中継システム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070528

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071106