JP2002505477A - スタックベースのセキュリティ要求 - Google Patents

スタックベースのセキュリティ要求

Info

Publication number
JP2002505477A
JP2002505477A JP2000533821A JP2000533821A JP2002505477A JP 2002505477 A JP2002505477 A JP 2002505477A JP 2000533821 A JP2000533821 A JP 2000533821A JP 2000533821 A JP2000533821 A JP 2000533821A JP 2002505477 A JP2002505477 A JP 2002505477A
Authority
JP
Japan
Prior art keywords
security
request
call
computer
server
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
JP2000533821A
Other languages
English (en)
Inventor
ロバート シェフラー
Original Assignee
サンマイクロシステムズ インコーポレーテッド
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
Priority claimed from US09/044,944 external-priority patent/US6226746B1/en
Application filed by サンマイクロシステムズ インコーポレーテッド filed Critical サンマイクロシステムズ インコーポレーテッド
Publication of JP2002505477A publication Critical patent/JP2002505477A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】コンピュータ上で実行するスレッドによって要求される動作のセキュリティ要求を達成することによって、通信システム中のセキュリティ要求の表示を改善すること。 【解決手段】スレッドを実行時に、このスレッドから呼び出される複数のメソッドそれぞれに関する識別子及びセキュリティ要求が呼び出しスタック中に記憶される。呼び出しスタックに記憶されたメソッドのセキュリティ要求を決定ユニットにより組み合わせることによって要求される動作に関するセキュリティ要求を達成する。

Description

【発明の詳細な説明】
【0001】 (関連出願) 以下に示した米国特許出願は、その全ての記載事項が本特許出願の記載事項に
ついての参照となり且つ本特許出願の内容の一部をなすものとする。 1997年11月11日出願の米国特許出願No.08/988,431、発明の名称「資源へのア クセス制御」。 1997年11月11日出願の米国特許出願No. 、発明の名称「コンピュー タシステム中のセキュリティを提供するドメインの保護」。 1997年11月11日出願の米国特許出願No. 、発明の名称「セキュアク ラスの解決、ローディングおよび定義」。 1997年11月11日出願の米国特許出願No. 、発明の名称「型付けされ 、パラメータ表示され、且つ拡張可能なアクセス制御許可」。 1997年11月11日出願の米国特許出願No. 、発明の名称「通信チャン ネルの階層依存のセキュリティ」。 1998年2月26日出願の米国特許仮出願No.60/076,048、発明の名称「分散コンピ
ュータ処理システム」。 1998年3月20日出願の米国特許出願No.09/044,923、発明の名称「記憶装置の割
当てのための方法及びシステム」。 1998年3月20日出願の米国特許出願No.09/044,838、発明の名称「分散型システ
ムにおける委任証明の割当てのための方法、装置及び製品」。 1998年3月20日出願の米国特許出願No.09/044,834、発明の名称「分散型システ
ムにおけるグループ帰属関係の割当てのための方法、装置及び製品」。 1998年3月20日出願の米国特許出願No.09/044,916、発明の名称「失敗表示のた
めの割当て」。 1998年3月20日出願の米国特許出願No.09/044,933、発明の名称「イベント指向
システムにおける転送動作の方法」。 1998年3月20日出願の米国特許出願No.09/044,919、発明の名称「分散型システ
ムにおけるイベント通知のための遠隔ロード及びオブジェクトの繰延べ再構築」
。 1998年3月20日出願の米国特許出願No.09/044,938、発明の名称「リモート方法
の実施のための方法及び装置」。 1998年3月20日出願の米国特許出願No.09/045,652、発明の名称「リモート方法
を識別する決定論的ハッシュのための方法及び装置」。 1998年3月20日出願の米国特許出願No.09/044,790、発明の名称「分散型システ
ムにおけるリモートオブジェクトのステータスを決定するための方法及び装置」
。 1998年3月20日出願の米国特許出願No.09/044,930、発明の名称「分散型システ
ムにおけるリモート手続きコールに関連して処理を実行するためのダウンロード
可能なスマートな委任」。 1998年3月20日出願の米国特許出願No.09/044,917、発明の名称「リモート方法
の中止及び及び継続」。 1998年3月20日出願の米国特許出願No.09/044,835、発明の名称「データベース
におけるマルチ・エントリーとマルチ・テンプレートとの対照のための方法及び
システム」。 1998年3月20日出願の米国特許出願No.09/044,839、発明の名称「データベース
の内部で変更するための方法及びシステム」。 1998年3月20日出願の米国特許出願No.09/044,945、発明の名称「データベース
における型を問わない属性対照のための方法及びシステム」。 1998年3月20日出願の米国特許出願No.09/044,931、発明の名称「分散型システ
ムにおける動的探索サービス」。 1998年3月20日出願の米国特許出願No.09/044,939、発明の名称「分散型システ
ムにおけるデバイスとの通信に用いるダウンロード可能なコードの供給のための
装置及び方法」。 1998年3月20日出願の米国特許出願No.09/044,826、発明の名称「探索サービス
へのアクセスを容易にするための方法及びシステム」。 1998年3月20日出願の米国特許出願No.09/044,932、発明の名称「分散型システ
ムにおける情報の動的証明のための装置及び方法」。 1998年2月26日出願の米国特許出願No.09/030,840、発明の名称「ネットワーク
をまたぐ動的分散コンピュータ処理のための方法及び装置」。 1998年3月20日出願の米国特許出願No.09/044,936、発明の名称「持続的な共有
メモリー空間のためのインタラクティブ・デザイン・ツール」。 1998年3月20日出願の米国特許出願No.09/044,934、発明の名称「多様性を有す
るトークン指向制御」。 1998年3月20日出願の米国特許出願No.09/044,915、発明の名称「スタック指向
のアクセス制御」。 同日出願の米国特許出願No.09/044,837、発明の名称「セキュリティ要求の方 法毎の指定」。
【0002】 (発明の背景) 本発明はコンピュータシステムにおけるセキュリティ測定に関するものであり
、更に詳しくは、コンピュータ上で実行するスレッドの呼び出し階層におけるメ
ソッドのセキュリティ要求を組み合わせるシステム及び方法に関するものである
【0003】 分散システムは、通常、通信ネットワークで相互に接続された多数の異なるコ
ンピュータから構成される。クライアント−サーバ関係は通信するコンピュータ
間で確立されることが多い。一般に、「クライアント」は、「サーバ」プロセス
によって設置または管理される資源を要求するために呼び出すプロセスとして定
義される。これに関連して、要求するプロセス及びサーバプロセスを実行するコ
ンピュータもそれぞれクライアント及びサーバと呼ばれる。しかし、これらの役
割は情報と生じる特定の処理状況に応じて変化しうる。
【0004】 クライアント−サーバ関係を促す機構が、遠隔手続呼び出し(RPC)であり
、ここではクライアントがサーバの機能を呼び出す。このRPCは、同一あるい
は異種のコンピュータ上で操作する2つのプロセス間の同期化した通信を提供す
る機構である。このRPC機構は通常2つのパートで実行される。1つはクライ
アント側でもう1つはサーバ側である。
【0005】 セキュリティはクライアントとサーバのコンピュータが通信するときに常に生
じる問題である。セキュリティが破られるとクライアント及びサーバのコンピュ
ータの操作が著しく阻害される。このように、コンピュータシステムを使用する
構成は、故意であるなしに関わらずコンピュータシステムを誤動作させる者や、
あるいは構成の機密情報を盗む者に対して無防備である。
【0006】 システム操作者は一般に3つのタイプのセキュリティ問題に取り組む。すなわ
ち、(1)メッセージの傍受および変更を防止すること、(2)サーバへのアク
セスを管理すること、および(3)クライアントによってサーバを認証すること
である。システム操作者は従来、通信要求を設定するメソッドを与えるセキュリ
ティクラスを規定することによって、オブジェクト指向プログラミング環境にお
けるこれらの問題に取り組んでいる。このオブジェクト指向プログラミング環境
の1つがサンマイクロシステムズTMのJavaTMオブジェクト指向プログラ
ミング環境であり、これについてはJaworski、Java1.1開発者ガ
イド、Sams.net、1997に記述しており、本願の参照となっている。
【0007】 セキュリティクラスには5つの通信要求がある。すなわち、機密性、完全性、
匿名性、サーバ認証、および非委託である。機密性はメッセージの内容が公開さ
れないことを保証するものである。システム操作者は、暗号化技術を用い適正解
読キーを有するパーティだけがメッセージを解読できるようする。完全性は、メ
ッセージの内容(要求および応答)が部分的に変えられると検出して、メッセー
ジを変更するプロセスを拒絶する。システム操作者は、クライアント、サーバ両
方の位置でチェックサム、またはこれに類似するものを使用することで完全性を
確保する。
【0008】 匿名性はクライアントが匿名を維持することを希望することを表す。言い換え
れば、クライアントはサーバに認証されることを望まない。サーバ認証は、クラ
イアントが遠隔メソッドを呼び出す前にサーバを認証することを必要とすること
を示す。この通信要求の間中、クライアントは適切なサーバを使って通信するこ
とを保証するのである。非委託は、サーバが呼び出し時においてクライアントの
識別子により委託することを認めないことをいう。言い換えれば、サーバがクラ
イアントであることを装って他のコンピュータシステムを呼び出すことは認めら
れない。
【0009】 クライアントの位置では、セキュリティクラスは各通信要求に関する1つのビ
ットで表される。機密性、完全性、匿名性、サーバ認証、および非委託に対応す
るビットを設定することによって、クライアントは機密性の保証、完全性の保証
、クライアントの匿名の維持、サーバの認証、および委託を認めないことがそれ
ぞれ担保される。
【0010】 従来、クライアントが大域コンテキストあるいはパーリファレンスベースに関
するセキュリティクラスの優先度を表示する。従来のRPCシステムでは、クラ
イアントは通常サーバへの参照をもっている。この「サーバ参照」には一般にサ
ーバのホストのネットワークアドレスのようなネットワーク情報や、接続するホ
スト上のポートへのプロトコル情報、呼び出しの主体となるサーバオブジェクト
を識別するオブジェクト識別子が含まれる。従って、「パーリファレンス」は通
信要求がサーバ参照のインスタンス上で設定され、そのサーバ参照で作られた全
ての呼び出しで用いられることを意味する。
【0011】 もしクライアントがあるメソッドを実行時に大域コンテキストに関する通信要
求を設定するならば、これらの通信要求は、大域コンテキストを上書きする後続
のメソッド、あるいはパーリレファレンスベース上の通信要求を設定することに
よって後続のメソッドに置き換えられる。たとえクライアントがあるメソッドを
実行時にパーリファレンスベースに関する通信要求を設定しても、これらの通信
要求は後続のメソッドが同じサーバ参照上の通信要求を上書きすることにより、
この後続のメソッドで置き換えられる。
【0012】 例えば、クライアントが第1メソッド、第2メソッドの順に呼び出して第2メ
ソッドをサーバ参照へ送信すると仮定する。この第2メソッドはそのサーバ参照
を使用する遠隔サーバ上の関数Xを実行すると仮定する。さらに第1メソッドは
機密性及び完全性の通信要求を有し、これらの要求を大域コンテキスト上、ある
いは参照を第2メソッドに送信する前のサーバ参照上のどちらにも設定すると仮
定する。さらに第2メソッドはサーバを認証するためだけに通信要求と置き換え
て、送信した参照に関する通信要求を上書きすると仮定する。従来のシステムで
は、サーバを呼び出すとサーバが認証されるだけで、第1メソッドの通信要求は
第2メソッドの通信要求に置き換えられる。その結果、第1メソッドで要求され
る機密性及び完全性は保証されない。
【0013】 従来のセキュリティクラスの優先度表示では、メソッドの個々の通信要求が以
下に示すような呼び出し階層に含まれることは保証できない。よって、通信シス
テム中のセキュリティ要求の表示の改善が望まれる。
【0014】 (発明の概要) 本発明に係るシステム及び方法は、呼び出し階層におけるメソッドの通信要求
を組み合わせることによってこの要求に取り組むものである。すなわち、呼び出
しに関するごく厳密な通信要求適正を得るためにメソッドの個々の通信要求を組
み合わせるものである。
【0015】 本発明に係るシステムは、コンピュータ上で実行するスレッドから要求される
動作に関するセキュリティ要求を取得することである。このスレッドを実行時に
スレッドから多数のメソッドが呼び出される。このシステムには呼び出しスタッ
クと決定ユニットが含まれる。この呼び出しスタックには、スレッドによりメソ
ッドを呼び出す順にメソッドのそれぞれの識別子とセキュリティ要求が記憶され
る。この呼び出しスタックに記憶されたメソッドのセキュリティ要求を決定ユニ
ットによって組み合わせることで要求される動作に関するセキュリティ要求が取
得される。
【0016】 (詳細な説明) 以下の発明の詳細な説明で添付した図について言及する。異なる図中の同じ参
照番号は同一あるいは類似の要素を表している。また、以下の詳細な説明では発
明を限定しない。その代わりに、発明の趣旨は添付した請求項及びそれに相当す
る記述で定義する。
【0017】 本発明に係るシステム及び方法は、資源にアクセスする動作を要求するスレッ
ドの各ルーチン(すなわち、関数、メソッド)の通信要求を組み合わせることを
特徴とする。動作要求が検出されると、スレッドと関連する呼び出し階層中のル
ーチンと関連する通信要求に基づいてこの動作の通信要求が決定される。呼び出
し階層は、スレッドによって、もしくは、スレッドに代わって、呼び出されたが
終了していないルーチンを示す。
【0018】 (分散システムの概要) 本発明に係る方法及びシステムは、ハードウェア及びソフトウェアを含む種々
の構成要素をもった分散システム(実施例の分散システム)で実行する。実施例
の分散システムは、(1)システムのユーザーが多くのデバイスからなるネット
ワーク上のサービス及び資源を共有することを可能にし、(2)プログラマーに
頑強で保護された分散システムを開発するためのツールやプログラム見本を提供
し、(3)分散システムを処理するタスクが簡略化するものである。これらの目
的を達成するために、実施例の分散システムはコードとデータの両方をシームレ
ス式にデバイス間を移動させることができるJavaTMプログラミング環境を
利用する。従って、実施例の分散システムはJavaプログラミング環境の最上
位に重ねられ、提供される安全性および強い型付けを含んだこの環境の特徴を活
用する。このJavaプログラミング環境はJaworski、Java1.1
開発者ガイド、Sams.net、1997により明確に説明している。
【0019】 実施例の分散システムでは、ユーザーには、異なるコンピュータ及びデバイス
が単一のシステムであるかのように見えてくる。単一のシステムと見えることに
よって、この分散システムでは単一のシステムのようにアクセスが簡略になり、
電力源が共有されるため、パーソナルコンピュータやワークステーションの順応
性と個別応答性を損なうことがない。分散システムは地理的に分散しているがユ
ーザー同士によって操作される多数のデバイスを有する。ユーザーはシステムの
信用、管理およびポリシーの基本概念に同意している。
【0020】 この分散システム内は1つあるいはそれ以上のデバイスから得られる種々のサ
ービスの論理グループであり、このような論理グループはDjinnとして知ら
れている。ここで「サービス」とは、ユーザー、プログラム、デバイスあるいは
その他のサービスによってアクセスでき、且つ計算、記憶機構関連、通信関連、
あるいは別のユーザーへのアクセスと関連づけられる資源、データ、あるいは機
能性をいう。Djinnとして提供されるサービスの例としては、プリンタ、デ
ィスプレイ、ディスクのようなデバイスやアプリケーションあるいはユーティリ
ティーのようなソフトウェア、データベースおよびファイルのような情報、およ
びシステムのユーザーが含まれる。
【0021】 Djinnにはユーザー、デバイス共に加入してもよい。Diinnに加入す
ると、ユーザーまたはデバイスはDjinnには何らサービスを提供しなくても
、セキュリティ制約に従ってDjinnのサービスの1つにアクセスできる。従
って、デバイスおよびユーザーはDjinnに加入してサービスへのアクセスを
共有する。DjinnのサービスはJavaプログラミング環境のオブジェクト
としてプログラム的に現れる。このJavaプログラミング環境には異なるプロ
グラミング言語あるいはハードウェアデバイスで書き込まれた他のオブジェクト
や、ソフトウェア要素が含まれる。サービスにはそのサービスを受けるのに必要
な操作を規定するインターフェイスが存在し、そのサービスのタイプによってサ
ービスを構成するインターフェイスが決まる。
【0022】 図1はネットワーク1400で相互に接続されたコンピュータ1100、コン
ピュータ1200およびデバイス1300からなる実施例の分散システム100
0を図示したものである。コンピュータ1100および1200にはIBMコン
パチブルコンピュータあるいは利用者端末のような全ての従来型のコンピュータ
が該当する。一般的な操作時には、コンピュータ1100および1200はデー
タの転送及び検索を行うためにクライアント−サーバ関係を確立してもよい。
【0023】 デバイス1300はプリンタ、ファックス機、記憶装置、コンピュータあるい
はその他のデバイスのような数あるデバイスのいかなるものであってもよい。ネ
ットワーク1400はローカル・エリア・ネットワークやワイド・エリア・ネッ
トワークあるいはインターネットであってもよい。実施例の分散システム100
0には2つのコンピュータおよび1つのデバイスのみが図示されているが、分散
システム1000中にコンピュータあるいはデバイスが増えても差し支えない。
【0024】 図2は実施例の分散システム1000の多数のソフトウェア構成要素を示した
コンピュータ1100の詳細を図示したものである。コンピュータ1200ある
いはデバイス1300は同じように構成されていてもよい。コンピュータ110
0には、メモリ2100、補助記憶装置2200、中央処理装置(CPU)23
00、入力装置2400およびビデオディスプレイ2500が含まれる。メモリ
2100には、探索サービス2110、ディスカバリーサーバ2120、および
JavaTM実行システム2130が含まれる。Java実行システム2130
はJavaTM遠隔メソッド呼び出しシステム(RMI)2140およびJav
TMバーチャルマシン(JVM)2150が含まれる。補助記憶装置2200
にはJavaTM空間2210が含まれる。
【0025】 上述のように、実施例の分散システム1000はJavaプログラミング環境
に基づいており、従ってJava実行システム2130が使用される。Java
実行システム2130にはJavaAPIが含まれ、このJavaAPIは、J
ava実行システムの最上位のプログラム走行をホスト操作システムのウィンド
ウ容量およびネットワーク容量を含んだ種々のシステム関数にプラットフォーム
独立方式でアクセスさせるものである。このJavaAPIはJava実行シス
テム2130が移植される全ての操作システムにわたって単一の共通APIを供
給するので、ホストプラットフォームの操作システムやハードウェアの構成に関
わらず、Java実行システムの最上位のプログラムがプラットフォーム独立式
で実行される。Java実行システム2130はのサンマイクロシステムズ(カ
リフォルニア州、マウンテンビュー)からJavaソフトウェアの開発キットの
一部として提供している。
【0026】 JVM2150もプラットフォーム独立を促す。このJVM2150はバイト
コード形式でプログラムから命令を受け取り、これらのバイトコードをオブジェ
クトコードのような実行の形式に動的に変換し、実行することによってバイトコ
ードを解釈する抽象演算機のように作動する。RMI2140は、あるコンピュ
ータまたはデバイス上で実行するオブジェクトから別のコンピュータあるいはデ
バイス上のオブジェクトのメソッドを呼び出すことで遠隔メソッド呼び出しを促
す。RMIはJVM内に位置していてもよく、RMIとJVMともにJavaソ
フトウェア開発キットの一部として提供されている。
【0027】 探索サービスは2110は特定のDjinnの利用可能なサービスを規定する
ものである。すなわち、1つ以上のDjinnが存在するので実施例の分散シス
テム1000には1つ以上の探索サービスがある。この探索サービス2110は
、Djinn内の各サービスの1つのオブジェクトを含み、各オブジェクトには
対応するサービスへアクセスする種々のメソッドが含まれる。この探索サービス
2110およびそのアクセスについては、本願と共に出願中の米国特許出願No.0
9/044,826、発明の名称「探索サービスへのアクセスを容易にするための方法及 びシステム」に、詳細に記載されている。この出願は、既に、本願明細書の参照
となっているものである。
【0028】 ディスカバリーサーバ2120は、ブート・アンド・ジョインあるいはディス
カバリーとして知られるプロセス時に、新しいデバイスが実施例の分散システム
1000に加えられると新しいデバイスを検出する。そして前記新しいデバイス
が検出されると、新しいデバイスがそのサービスを探索サービス2110ととも
に登録し、Djinnのメンバーとなってもよいようにディスカバリーサーバは
探索サービス2110に対する参照を新しいデバイスに送信する。登録後、新し
いデバイスはDjinnのメンバーとなり、探索サービス2110中にある全サ
ービスにアクセス可能となる。ブート・アンド・ジョインのプロセスは、本願と
共に出願中の米国特許出願No.09/044,939、発明の名称「分散型システムにおけ るデバイスとの通信に用いるダウンロード可能なコードの供給のための装置及び
方法」に、詳細に記載されている。この出願は、既に、本願明細書の参照となっ
ているものである。
【0029】 Java空間2210は、オブジェクトを記憶するために実施例の分散システ
ム1000内のプログラムで使用されるオブジェクトリポジトリである。プログ
ラムはJava空間を使用し、オブジェクトを実施例の分散システム内の他のデ
バイスへアクセスできるようにするとともにオブジェクトを持続的に記憶する。
このJava空間2210は、1997年11月17日に本願と共に出願中の米国特許出
願No.08/971,529、発明の名称「多様な入力および入力照合を使用するデータベ ースシステム」に詳細に記載されている。この出願は、共通の譲渡人に譲渡し、
本願明細書の参照となるものである。この実施例の分散システム1000には多
くの探索サービスやディスカバリーサーバ、Java空間が含まれていてもよい
【0030】 (呼び出しスタックの例示) 一般の操作時に、コンピュータ1100のようなクライアントコンピュータは
、図1中のコンピュータ1200あるいはデバイス1300のようなサーバ上の
資源を呼び出すスレッド(あるいはプロセス)を実行する。RMI2140(図
2)はスレッドによる呼び出しに関する通信要求を決定する。本発明に係る実行
によると、この通信要求はどのルーチン(例えば、メソッド、関数)が現時点の
スレッドを実行しているのか、現時点で実行中のルーチンを呼び出したのはどの
ルーチンであるのかに基づいて変化する。現時点で実行しているスレッドのルー
チンを実行させる呼び出しのシーケンスはスレッドの呼び出しスタックに反映さ
れる。
【0031】 図3はスレッドの呼び出しスタックの一実施例を図示したものである。実施例
の呼び出しスタックを参照して、スレッドからなるルーチンの通信要求が呼び出
しにおいて満たされることを保証するセキュリティ機構の操作が説明される。
【0032】 図3は、あるオブジェクト3310のメソッド3210が別のオブジェクト3
320のメソッド3220を呼び出し、さらにこのメソッド3220は、セキュ
リティコントローラオブジェクト3340の通信要求収集メソッド3240を呼
び出すさらに別のオブジェクト3330のメソッド3230を呼び出す用にする
スレッド3200に関する呼び出しスタック3100を含むブロック図である。
【0033】 スレッド3200はコンピュータ1100上で実行するスレッドである。呼び
出しスタック3100は、すべてのインスタンスでスレッド3200により呼び
出されるメソッドの呼び出し階層を表すスタックデータ構造である。図3に示し
たインスタンスでは、呼び出しスタック3100には、まだ完了していないスレ
ッドによる各メソッドの実行に関するフレームが含まれる。
【0034】 各フレーム3110〜3140は、スレッド3200により呼び出されている
がまだ完了していないメソッドに対応する。この呼び出しスタック3100上の
フレームの相対位置は、このフレームに対応するメソッドの呼び出し命令に反映
される。メソッドが完了すると、このメソッドに該当するフレームは、呼び出し
スタック3100の最上位から除去される。メソッドが呼び出されると、このメ
ソッドに対応するフレームは、呼び出しスタックの最上位に加えられる。
【0035】 各フレームにはそれぞれのフレームに対応するメソッド及びオブジェクトにつ
いての情報が含まれる。この情報から、JVM2150によってあらゆるオブジ
ェクトに提供される”get class”メソッドを呼び出すことによってメ
ソッドのクラスを決定することができる。フレーム中に含まれる情報にも対応す
るメソッドに関する通信要求が含まれる。
【0036】 例えば、スレッド3200がメソッド3210を呼び出すと仮定する。メソッ
ド3210を実行時に、スレッド3200がメソッド3220を呼び出し、この
メソッド3220を実行時にスレッド3200はメソッド3230を呼び出し、
さらにこのメソッド3230を実行時にスレッド3200がメソッド3240を
呼び出す。この点では、呼び出しスタック3100は図3に示したようなメソッ
ドの呼び出し階層を表している。フレーム3140はメソッド3240に対応し
、フレーム3130はメソッド3230に、フレーム3120はメソッド322
0に、フレーム3110はメソッド3210にそれぞれ対応する。スレッド32
00が方法3240を完了すると、フレーム3140は呼び出しスタック310
0から除去される。
【0037】 呼び出しスタック上の各メソッドは、通信要求の集合を含んでいる。以下のコ
ード例はメソッドの通信要求を設定する技術を図示したものである。このコード
例はサンマイクロシステムズ、インコーポレーテッドによるJavaプログラミ
ング言語と似ているかもしれないが、この例は例示目的のためだけのものであり
、実際に実行されるコードを表すことを意図していない。
【0038】 try{ Security.beginRequired (the requirement); [code to which the requirements apply] } finally { Security.endScope(); }
【0039】 通信要求は特定のメソッドに関連するものであるので、複数のメソッドに関連
した複数のフレームを含む呼び出しスタックを有するスレッドの通信要求を決定
するためには何らかの機構が提供されなければならない。本発明に係る実施例に
よると、通信要求はセキュリティコントローラオブジェクトによって決定される
【0040】 (セキュリティコントローラの例示) 本発明に係る実施例によると、セキュリティコントローラオブジェクト334
0によってスレッド3200で要求される特定の動作に関する通信要求が決定さ
れる。特に、サーバへの呼び出しのような動作が行われる前に、RMI2140
はセキュリティコントローラオブジェクト3340のセキュリティ要求収集メソ
ッド3240を呼び出す。このセキュリティ要求収集メソッド3240は呼び出
しスタック3100上のフレームのそれぞれに関する通信要求を組み合わせる。
メソッド3240は要求される動作に関するごく厳密な要求を達成するために通
信要求を組み合わせる。メソッド3240は従来法の組合せ操作を行ってもよい
【0041】 呼び出し階層中の何れかのメソッドが、機密性、完全性あるいはサーバ認証を
要求するならば、動作についてメソッド3240は機密性、完全性あるいはサー
バ認証を指定する。もし匿名性を要求するメソッドであれば、非匿名性の表示に
代えて動作について匿名性を指定する。もし委託を認めないメソッドであれば、
メソッド3240は、どんな委託認証にも優先して動作について非委託を指定す
る。
【0042】 (動作に関するセキュリティ要求の決定) 図4はセキュリティ要求収集メソッド3240によって実行されるプロセスの
フローチャートである。スレッド3200が動作を要求すると、スレッド320
0がメソッド3230を実行すると仮定する。さらに、スレッド3200はメソ
ッド3210、メソッド3220およびメソッド3230を呼び出し、メソッド
3240を呼び出したときにはこれらのメソッドは完了していないと仮定する。
この動作が要求されるとスレッド3200に関連するこれらの通信要求はフレー
ム3110〜3130に記憶される。
【0043】 メソッド3240は初めに、呼び出しスタック3100上に位置するフレーム
を有するメソッド3210〜3230を識別する[ステップ4110]。メソッ
ド3240は、各メソッドで要求される通信要求を決定するために、メソッド3
210〜3230それぞれに関連するフレーム3110〜3130を調べる[ス
テップ4120]。この動作のセキュリティ要求はメソッドの通信要求を組み合
わせることにより決定される[ステップ4130]。メソッド3240がこれら
の通信要求を組み合わせる際に、上述のように比較的弱い要求を比較的強い要求
で置き換える。RMI2140はメソッド3240により決定されたセキュリテ
ィ要求を厳守してこの動作を行う。
【0044】 もしこの動作がサーバ上の遠隔メソッドを呼び出す呼び出しであるならば、例
えば、RMI2140はサーバのセキュリティ要求を達成する。RMI2140
は通常、要求を含んだサーバのセキュリティクラスライブラリのローカルコピー
からサーバのセキュリティ要求を達成する。RMI2140は遠隔メソッドがメ
ソッド3240によって決定されたセキュリティ要求をサポートするものである
かどうかを決定するためにサーバのセキュリティ要求を用いる。もしこの遠隔メ
ソッドがセキュリティ要求をサポートしないならば、RMI2140はこの事実
のスレッド3200を通知する。RMI2140には例外があってもよい。
【0045】 もしこの遠隔メソッドがセキュリティ要求をサポートするならば、RMI21
40は通信プロトコルが利用可能であると決定して、メソッド3240により決
定されるセキュリティ要求とサーバのセキュリティ要求を組み合わせの最小限を
満たす通信プロトコルを選択する。RMI2140が通信プロトコルを見つける
と、RMI2140は呼び出しに関するプロトコルを使用するためにこのサーバ
と交渉し、その後呼び出しを実行するためのプロトコルの使用を開始する。
【0046】 (動作のセキュリティ要求を決定するための別の実施例) 図5は動作に関連するセキュリティ要求を決定するための本発明に係るもう1
つの実施例のフローチャートである。呼び出しスタック上のフレームを有するメ
ソッドの通信要求は、図4に関して説明した手法で組み合わされる[ステップ5
110]。本発明に係る別の実施例では、呼び出しスタック上のフレームを有す
るメソッドの通信要求が、この動作の通信要求の組み合わせられた集合を取得す
るために、大域コンテキストに設定された通信要求と組み合わされる[ステップ
5120]。通信要求を組み合わせるときに、比較的弱い通信要求が比較的強い
通信要求に置き換えられる。
【0047】 別の実施例では、呼び出しスタック上のフレームを有するメソッドの通信要求
が、この動作の通信要求を取得するために動作を実行するサーバの通信要求と組
み合わされる[ステップ5130]。ここでも、通信要求を組み合わせるときに
、比較的弱い通信要求が比較的強い通信要求に置き換えられる。
【0048】 さらに別の実施では、通信要求の組み合わせられた集合(すなわち、呼び出し
スタック上のフレームを有するメソッドの通信要求および大域コンテキストに設
定される通信要求)は、この動作の通信要求を取得するために、動作を実行する
サーバの通信要求と組み合わせられる[ステップ5130]。ここでも、通信要
求を組み合わせるときに、比較的弱い通信要求が比較的強い通信要求に置き換え
られる。
【0049】 (結論) 本発明に係るシステム及び方法は呼び出し階層におけるメソッドのそれぞれに
関連するセキュリティ要求を組み合わせることにより動作に関連するセキュリテ
ィ要求を決定することを特徴とするものである。
【0050】 上述のように本発明の具体例を図示し説明したが、これによって本発明が網羅
されたわけではなく、また本発明を厳密に限定するものでもない。上述の説明に
照らして種々の修正及び変更が可能である。すなわち発明の実施形態によって修
正及び変更がなされてもよい。本発明の趣旨は請求項の範囲に定義した。
【0051】 本発明に係るシステム及び方法は実施例の分散システムおよびJavaプログ
ラミング環境での操作について述べたものであるが、本発明を他のシステムおよ
びプログラミング環境で実施しても差し支えない。さらに、本発明の特徴はメモ
リ中に記憶することであるが、他の補助記憶装置のようなコンピュータ可読媒体
でハードディスクやフロッピーディスク、CD−ROMのようなもの、インター
ネットからのキャリア波形、あるいはRAM、ROM形態のもので記憶あるいは
読み込むことを特徴とするものであってもよい。Sun、Sun Micros
ystems、the SunLogo、JavaおよびJava−based
trademarksは米国およびその他の国の商標あるいは登録商標である
【0052】 (図面の簡単な説明) この添付図面は本明細書に組み込まれており、本明細書の一部を成し、本発明
の実施を図示し、詳細な説明と協働して、本発明の利点と原理を説明するために
提示される。
【図1】 本発明の原理に供するコンピュータネットワークを図示したものである。
【図2】 本発明に係る実施における図1のコンピュータを図示したものである。
【図3】 図2のコンピュータ上のスレッドと関連する呼び出しスタックを図示したもの
である。
【図4】 本発明に係る実施における図3のセキュリティ要求収集メソッドで実行したプ
ロセスのフローチャートを示したものである。
【図5】 動作に関連するセキュリティ要求の決定に関する本発明に係る代替の実施例の
フローチャートを図示したものである。
【符号の説明】
1000 分散システム 1100、1200 コンピュータ 1300 デバイス 1400 ネットワーク 2100 メモリ 2110 探索サービス 2120 ディスカバリーサーバ 2130 Java実行システム 2140 遠隔メソッド呼び出しシステム(RMI) 2150 Javaバーチャルマシン(JVM) 2200 補助記憶装置 2210 Java空間 2300 中央処理装置(CPU) 2400 入力装置 2500 ビデオディスプレイ
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,UZ,VN,YU,ZW

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ上で実行する呼出処理から要求される動作に関
    するセキュリティ要求を取得するシステムであって、該呼出処理は実行時の複数
    のメソッドのうちの少なくとも1つを呼び出し、該システムは、 呼出処理による呼び出し順にメソッドの表示を記憶し、メソッドのうちの少な
    くとも1つに関するセキュリティ要求を記憶する呼び出しスタックと、 要求される動作に関するセキュリティ要求を取得するために呼び出しスタック
    に属するメソッドのセキュリティ要求を組み合わせる決定ユニットからなること
    を特徴とする。
  2. 【請求項2】 請求項1のシステムであって、前記呼び出しスタックは、現
    時点で呼び出されているメソッドのみに関する表示及びセキュリティ要求を記憶
    することを特徴とする。
  3. 【請求項3】 請求項1のシステムであって、前記メソッドのセキュリティ
    要求は、呼出処理が通信時のプライバシーを確保するための機密性要求を含むこ
    とを特徴とする。
  4. 【請求項4】 請求項1のシステムであって、前記メソッドのセキュリティ
    要求は、呼出処理が送信時に通信内容が変更されないことを確保するための完全
    性要求を含むことを特徴とする。
  5. 【請求項5】 請求項1のシステムであって、前記メソッドのセキュリティ
    要求は、呼出処理が要求した動作において匿名性を維持できるようにするための
    匿名性要求を含むことを特徴とする。
  6. 【請求項6】 請求項1のシステムであって、前記メソッドのセキュリティ
    要求は、呼出処理がデバイスにそれ自身であることを立証することを要求するた
    めのサーバ認証要求を含むことを特徴とする。
  7. 【請求項7】 請求項1のシステムであって、前記メソッドのセキュリティ
    要求は、呼出処理がデバイスが呼出処理の識別子により委託することを認証する
    委託要求を含むことを特徴とする。
  8. 【請求項8】 請求項1のシステムであって、前記決定ユニットは、 比較的弱いメソッド・セキュリティ要求を比較的強いメソッド・セキュリティ
    要求で置き換えて、呼び出しスタックからのメソッドのセキュリティ要求を組み
    合わせる組合せユニットを含むことを特徴とする。
  9. 【請求項9】 請求項1のシステムであって、前記呼出処理は、コンピュ
    ータ上で実行するスレッドであることを特徴とする。
  10. 【請求項10】 請求項1のシステムであって、前記呼出処理は、コンピュ
    ータ上で実行するプログラムであることを特徴とする。
  11. 【請求項11】 コンピュータ上で実行するスレッドにより要求される動作
    に関するセキュリティ要求を取得するシステムであって、該スレッドは実行時の
    複数のメソッドのうちの少なくとも1つで呼び出しており、該システムは、 スレッドにより呼び出される時のメソッドのうちの少なくとも1つに関するメ
    ソッド識別子およびセキュリティ要求を記憶する手段と、 前記記憶されたメソッドのセキュリティ要求を組み合わせる手段と、 前記組み合わされたメソッドのセキュリティ要求から要求される動作に関する
    セキュリティ要求を取得する手段からなることを特徴とする。
  12. 【請求項12】 コンピュータ上で実行する操作により要求される動作のセ
    キュリティ要求を決定するためのコンピュータ利用方法であって、該操作は実行
    時に複数の関数のうち少なくとも1つを呼び出し、該方法は、 操作により呼び出される時の関数のうち少なくとも1つに関する関数識別子お
    よびセキュリティ要求を記憶する工程と、 前記操作からの動作に関する要求を受け取る工程と、 前記記憶された関数のセキュリティ要求を組み合わせる工程と、 前記組み合わされた関数のセキュリティ要求から要求される動作のセキュリテ
    ィ要求を決定する工程からなることを特徴とする。
  13. 【請求項13】 コンピュータ上で実行する操作で要求される動作を実行す
    るためにコンピュータを管理する命令が含まれるコンピュータ可読媒体であって
    、該操作は実行時の複数の関数を呼び出し、該方法は、 操作によって呼び出される関数のうち少なくとも1つの関数識別子およびセキ
    ュリティ要求を記憶する工程と、 前記操作からの動作に関する要求を受け取る工程と、 前記記憶された関数セキュリティ要求を組み合わせる工程と、 前記組み合わされた関数セキュリティ要求から要求される動作のセキュリティ
    要求を決定する工程と、 前記決定されたセキュリティ要求を使用する要求される動作を実行する工程か
    らなることを特徴とする。
  14. 【請求項14】 データ処理システムであって、 該システムはメモリとプロセッサとを備え、 前記メモリは、 実行時に複数のメソッドを呼び出すプログラムと、 前記プログラムによって呼び出されたメソッドの識別子と該メソッドのそれぞ
    れによって要求されるセキュリティ要求とを記憶する呼び出しスタックと、 前記プログラムから動作に関する要求を受け取り、前記呼び出しスタックにお
    けるメソッドのメソッド・セキュリティ要求を組み合わせ、前記組み合わせたメ
    ソッド・セキュリティ要求に基づいて要求される動作に関するセキュリティ要求
    を決定し、前記決定されたセキュリティ要求を使用して要求される動作を実行す
    る実行環境を含み、 前記プロセッサは、該実行環境とプログラムとを実行することを特徴とする。
  15. 【請求項15】 コンピュータシステムにおける操作を実行する方法であっ
    て、 該方法は、第1呼出処理から第2呼出処理を介して操作を実行するための要求
    を受け取る工程を含み、前記第1呼出処理及び第2呼出処理は別々のセキュリテ
    ィ要求を有し、 該方法は、更に、第1及び第2呼出処理の両方のセキュリティ要求に基づいて
    操作を実行するかどうかを決定する工程を含むことを特徴とする。
  16. 【請求項16】 請求項15の方法であって、前記決定する工程は、 比較的弱いセキュリティ要求を比較的強いセキュリティ要求で置き換えること
    により第1および第2呼出処理のセキュリティ要求を組み合わせることを特徴と
    する。
  17. 【請求項17】 請求項15の方法であって、前記操作はセキュリティ要求
    を有するサーバへの遠隔呼び出しであり、前記方法は、更に、 サーバのセキュリティ要求が第1および第2呼出処理両方のセキュリティ要求
    をサポートするときに前記操作を実行する工程と、 サーバのセキュリティ要求が第1および第2呼出処理両方のセキュリティ要求
    をサポートできないときに前記操作の実行を拒絶する工程とからなることを特徴
    とする。
JP2000533821A 1998-02-26 1999-02-18 スタックベースのセキュリティ要求 Pending JP2002505477A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US09/044,944 US6226746B1 (en) 1998-03-20 1998-03-20 Stack-based system and method to combine security requirements of methods
US09/044,944 1998-03-20
US60/076,048 1998-03-20
PCT/US1999/003519 WO1999044138A2 (en) 1998-02-26 1999-02-18 Stack-based security requirements

Publications (1)

Publication Number Publication Date
JP2002505477A true JP2002505477A (ja) 2002-02-19

Family

ID=26722193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000533821A Pending JP2002505477A (ja) 1998-02-26 1999-02-18 スタックベースのセキュリティ要求

Country Status (6)

Country Link
EP (1) EP1057110A2 (ja)
JP (1) JP2002505477A (ja)
KR (1) KR20010040981A (ja)
CN (1) CN1298511A (ja)
AU (1) AU2686699A (ja)
WO (1) WO1999044138A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100560166B1 (ko) * 2001-12-05 2006-03-13 한국전자통신연구원 실시간 버퍼 오버플로우 해킹 탐지 방법
JP4062441B2 (ja) 2003-07-18 2008-03-19 日本電気株式会社 並列処理システム及び並列処理プログラム
US7284107B2 (en) * 2004-04-30 2007-10-16 Microsoft Corporation Special-use heaps
JP4844102B2 (ja) * 2005-11-30 2011-12-28 富士ゼロックス株式会社 サブプログラム及びそのサブプログラムを実行する情報処理装置
KR100949949B1 (ko) * 2008-02-28 2010-03-30 주식회사 안철수연구소 콜 스택을 이용한 디버깅 방지 방법 및 장치
US10229280B2 (en) * 2011-06-14 2019-03-12 International Business Machines Corporation System and method to protect a resource using an active avatar

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0635792B1 (de) * 1993-07-16 2003-08-27 Siemens Aktiengesellschaft Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
WO1998004971A1 (en) * 1996-07-25 1998-02-05 Tradewave Corporation Method and system for generalized protocol implementation on client/server communications connections

Also Published As

Publication number Publication date
KR20010040981A (ko) 2001-05-15
WO1999044138A2 (en) 1999-09-02
EP1057110A2 (en) 2000-12-06
AU2686699A (en) 1999-09-15
WO1999044138A3 (en) 1999-11-04
CN1298511A (zh) 2001-06-06

Similar Documents

Publication Publication Date Title
US6226746B1 (en) Stack-based system and method to combine security requirements of methods
US6282652B1 (en) System for separately designating security requirements for methods invoked on a computer
US8341270B2 (en) Methods and systems for providing access to a computing environment
US6934758B2 (en) Stack-based access control using code and executor identifiers
EP0590519B1 (en) An ally mechanism for inter-connecting distributed computing environment (DCE) and non-DCE systems to operate in a network system
EP0803154B1 (en) A mechanism for providing security to a dual decor command host system
EP2375328A2 (en) Methods and Systems for Providing Access to a Computing Environment
JP2002505461A (ja) 事象ベース分散システムにおけるトランスポート処理方法及び装置
EP2369479A2 (en) Methods and systems for providing access to a computing environment
JP2004533046A (ja) プラグ対応認可システムに対するサーバサポート方法およびシステム
US6438614B2 (en) Polymorphic token based control
JP2002505477A (ja) スタックベースのセキュリティ要求
US7107446B2 (en) Mechanism independent cluster security services
US7606917B1 (en) Method, apparatus and system for principle mapping within an application container
US8875300B1 (en) Method and apparatus for authenticating a request between tasks in an operating system
GB2325314A (en) Object-oriented system for authentication
KR20020009328A (ko) 안전한 소켓 통신을 지원하는 안전한 분산객체 미들웨어플랫폼 및 그 서비스 방법