JP2000508104A - 分散コンピュータ・システムにおいて資源を保護する方法 - Google Patents

分散コンピュータ・システムにおいて資源を保護する方法

Info

Publication number
JP2000508104A
JP2000508104A JP10533323A JP53332398A JP2000508104A JP 2000508104 A JP2000508104 A JP 2000508104A JP 10533323 A JP10533323 A JP 10533323A JP 53332398 A JP53332398 A JP 53332398A JP 2000508104 A JP2000508104 A JP 2000508104A
Authority
JP
Japan
Prior art keywords
entity
access
name
resources
guard
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.)
Granted
Application number
JP10533323A
Other languages
English (en)
Other versions
JP3381927B2 (ja
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
Application filed by インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JP2000508104A publication Critical patent/JP2000508104A/ja
Application granted granted Critical
Publication of JP3381927B2 publication Critical patent/JP3381927B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • 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
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • H04L61/3025Domain name generation or assignment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/35Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Landscapes

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

Abstract

(57)【要約】 本発明は、開放型ディジタル通信システムにおいて資源を保護するための方法に関する。資源は、そのシステム、例えば、インターネットを通して接続された物理的に及び構成的に分散した独立のエンティティに存在し、又はそれによって所有される。そのような開放型システムでは、如何なるエンティティも原理的には他の任意のエンティティの任意の資源をアクセスすることができるので、資源劣化及び破壊の危険を回避又は最小化するために、プライバシ及び、必要な場合には、機密性を維持するために、予防策が取られなければならない。従って、資源の保護は、エンティティの整合性及び機能を保証するためには極めて重要なことである。そのような資源を、特に未承認のアクセスから知的に保護するために、ネーム・スペース(エンティティが提供するすべての名前より成る)の可変的なきめの細かい制御及び(又は)それぞれがファイル及び(又は)サービスを必要とする付加可能な及び分離可能なガードの設置が行われる。

Description

【発明の詳細な説明】 分散コンピュータ・システムにおいて資源を保護する方法 技術分野 本発明は、物理的に及び構成的に分散した独立のエンティティを接続する開放 型ディジタル通信システムにおいて、これらのエンティティに常駐し且つこれら のエンティティによって所有された資源を保護するための方法に関するものであ る。そのような開放型システムでは、原理的には、任意のシステムが任意の他の エンティティの任意の資源をアクセスすることができるので、エンティティの整 合性及び機能を保証するために、資源の保護は極めて重要なことである。そのよ うなシステムに関する1つの現在の例は、分散型処理ステーション、サーバ、及 びエンドユーザ・コンピュータを持ったインターネットであり、エンドユーザ・ コンピュータは資源、例えば、データ又はプログラム・ファイルを提供し且つ所 有している。本発明は、そのような資源の知的保護、更に詳しく云えば、未承認 のアクセスに対する知的保護に関するものである。 背景技術 資源共用は多くの分野における周知の概念である。不足している資源、高価な 資源、又は滅多に使用されない資源を共 用することによって、この資源を維持する負担はユーザのグループの間で分散さ れる。資源を共用するという希望と相俟って、資源を未承認の使用から保護する という希望が広まっている。通常、資源共用は資源保護を意味する。驚くほどで はないが、資源共用及び資源保護は、分散型のネットワーク化されたコンピュー タの主要な懸念事項である。偏在し且つ接続されたコンピュータが多ければ多い ほど、これらの接続されたシステムにおける資源を保護する手段を持つ必要性は 多くなる。この要求は、インターネットのような開放型ネットワークにとって特 に切実である。そのような開放型且つ分散型のネットワーク化されたシステムで は、パスワード・ファイル及び個人的な資料の如きセンシティブなデータのよう な特定の資源、或いは、ファイル・システム空間及び通信容量のようなハードウ エア資源又は暗号化サービスのようなサービスを未承認のアクセスから保護する ことは避けられないことである。ここで云う保護は、資源そのものへの基本的な アクセスと、アクセス・エンティティによるそれの使用との両方を意味する。即 ち、それは、きめの粗い資源保護(例えば、エンティティはファイル・システム ・サービスを使用することを許容される)及びきめの細かい資源保護(例えば、 エンティティはシステム・サービスを使用することを許容されるが、パスワード ・ファイルをアクセスすることはできない)の両方を意味する。 分散型システムにおける資源保護に対する現在の方法は、 多くの場合、サービス供給エンティティにおける広範な変更を多少必要とする認 証ベースの方式に依存している。例えば、1988年2月に発行のUsenix 社のUsenix Conference Proceedings誌におけるJ.G.Steiner,B.C.Neuman及びJ. I.Schi1ler氏の論文「カーベロス:開放ネットワーク・システムのための認証サ ービス(Kerberos:An authentication service for open network systems)」 に開示された”カーベロス(kerberos)”は、暗号化されたチケットが 各サービス・リクエストと共に送られることを必要とする。ユーザは、特別委託 チケット許可サービスによって自身を認証した後、ユーザは、自分が使用する権 利があり、しかも自分が呼び出すことを望んでいる任意の他のサービスに対して 、「カーベロス」チケットをリクエストすることができる。これは、安全ではあ るけれども、資源保護という望ましい目的を達成するためには面倒な、長時間を 要する、トラフィックを増加させる方法である。更に詳しく云えば、資源保護の ためのカーベロス法は、それがサービス提供エンティティにとって透過ではなく 、しかも、呼出先エンティティ自身が呼出元エンティティからの有効なチケット であるかどうかに関して明示的にチエックを行わなければならないという意味で 、それは自由裁量的な機構であるという欠点がある。そのエンティティをインプ リメントするコードはそれそれのライブラリへのコールを含まなければならず、 有効なチケットに関してチェックするのを「忘れた」エンティティは、それ の資源へのアクセスを任意の呼出元に提供するであろう。更に、アタッカは、一 旦それが中央のチケット許可サービスと妥協すると、関連の分散型システムにお ける参加したすべてのエンティティに対するアクセスも有する。 資源保護のタスクに関するもう1つの解決方法は、1995年11月発行のD. B.C1iftonを発明者とする「データ処理システムの資源へのアクセスを制御する ための資源アクセス・セキュリティ・システム(Resource access security sys tem for controlling access to resource of data processing system)」と題 した米国特許第5,469,556号に示されている。その特許は、ハードウエ アでメモリ・アドレスのような資源をアドレスするための特別オブジェクト、い わゆるデスクリプタを導入している。各デスクリプタには、特定の資源へのアク セスを制御する一組のテーブルが付加される。本質的に、このデスクリプタは資 源の仮想アドレスを形成し(上記米国特許の第3欄、第34乃至37行参照)、 それ自体でシステムにおける資源に対するきめ細かなアクセス制御を確立する。 資源保護のに対する上記米国特許の方法はカーベロスのように重要な弱点を被 るものではないけれども、このような弱点を免れるということはそれの欠点の1 つを表すことにもなる。上記米国特許の方法は分散型システムに適用し得ない。 なぜならば、それは、メモリ・アドレス変換機構に、従って、それのデスクリプ タを使用することによって単一のアドレス 空間に結合されるためである。分散型システム、しかし実際には定義による分散 型システムは、或る種の通信媒体によって接続された幾つものアドレス空間を含 む。更に、上記米国特許の解決方法も透過ではない。ユーザは特別のデスクリプ タを持たなければならず、従って、自分のプログラムをコード化しなければなら ない。 更に、カーベロス及び上記米国特許の方法の両方とも、システムのランタイム 中(及び資源保護機構が設定されてしまった後)に動的に現れる資源を扱うこと ができない。エンティティが外部(例えば、インターネットから入ってくるJa vaアプレット)から分散型システムに移行し得る環境においては、動的に作成 された資源が存在し、しかも、これらの資源に対する保護を提供することが必要 である。 従って、本発明の主たる目的は、動的分散型システムに適用し得る資源保護機 構を確立することにある。更なる目的は、保護されるべき資源をアクセスするこ とを望んでいるプログラム及び(又は)エンティティにとって透過である資源保 護機構を作成することにある。本発明の更にもう1つの目的は、新たに作成され た資源を保護するために、望ましくは実行時に、動的に拡張し得る資源保護のた めの方法を提供することにある。 発明の開示 分散型システムにおける未承認のアクセスに対して保護さ れるべき資源は、通常、エンティティによって、例えば、サーバ又は処理ステー ションによつて所有され或いは提供される。原理的には、各エンティティが前述 のように任意の他のエンティティの任意の資源をアクセスすることを許容される 開放分散型システムでは、セキュリティは所定の資源を保護する必要があり、し かも、所定のエンティティに対してのみ及び(又は)所定の条件の下でのみそれ らをアクセスすることを許容される。 資源は、ディスク空間、ファイル、ネットワーク接続であってもよいが、オブ ジェクト及びオブジェクト自身によって提供されるメソッドであってもよい。分 散型システムにおけるそのような資源へのアクセスは、エンティティ又はオブジ ェクトによって提供されるサービス又はメソッドを通して生じる。本発明の概念 は、資源へのアクセスをサービスへのアクセスに変えるという発想から始まる。 サービスを呼び出すために又はそれを使用するためには、そのサービスを所有す る又は供給するエンティティの名前及びそのサービス自身の名前がわからなけれ ばならない。実際にサービスにアクセスするためには、それのロケーションへの それの名前のマッピングが得られる。即ち、名前が解決される。エンティティが 知っている名前すべてがそのエンティティのネーム・スペースを形成する。同様 に、システムのエンティティ・ロケーションすべてがそのシステムのエンティテ ィ・ロケーション空間を構成する。 従って、本発明の基礎を成す基本概念は名前解決プロセスを制御することによ って、即ち、このエンティティに対するサービスの可視性を制限することによっ て、サービスへのエンティティのアクセスを制御することより成る。本発明の更 なる特徴は、例えば、「インテリジェント」インターセプト・マネージャにより この制御を実行することによって、ネーム・スペース及び名前解決プロセスの可 変的なきめ細かさの制御を提供することより成る。本発明の独立した主要な特徴 は、名前と関連し且つこの名前が使用される前又は後にコールされ、きめの細か い資源保護を提供する付加及び分離可能な「ガード」を提供することより成る。 上記の特徴のうちの1つ又は複数個を使用することによって、制御され及び制 限された環境、即ち、エンティティが自由に動作することができる動的に構成可 能な「サンドボックス」を意味する動的に構成可能な保護ドメインが作成される 。如何なる悪意による行為の影響もそのサンドボックスに制限され、従って、シ ステムの残り部分に伝播することはあり得ない。そのようなサンドボックスへの 厳密に制御された入力ポイント及びそのようなサンドボックスからの厳密に制御 された出力ポイントを提供すること、及び、更に詳しく云えば、それの形状及び サイズを動的に微細調整することも可能である。 図面の簡単な説明 第1図は、エンティティをそれのインターフェース及び資源(以下で定義され る用語)と共に示す。 第2a図及び第2b図は、名前及びそれのオブジェクト・リファレンスをマッ ピングする方法を示す。 第3a図乃至第3c図は、本発明による方法のステップ及び変形を示す。 第4図は、本発明のインプリメンテーションのブロック図である。 発明を実施するための最良の形態 以下には、オブジェクト・ベースの分散型ネットワーク・システムに対する一 例としてJavaベースのネットワークの環境における本発明の特徴の概要が先 ずAとして示され、それに続いて、本発明のインプリメンテーションの説明がB として示される。Javaは、米国CA94043−1100マウンテン・ビュ ー、ガルシア・アベニュ−2550のサン・マイクロシステムズ社によって開発 されたプログラミング言語及び環境である。 A.原理の概要 (a)Java環境 以下では、Javaコンピューティング環境に関連し、この説明において使用 される幾つかの代表的な用語をリストし、簡単に説明することにする。 ・「アプレット」は、一般に、リモート・ソースからロード されるJavaバィト・コードである。それは、通常、信頼できるものとは 考えられていない。 ・「アプリケーション」は、一般に、ローカルからロードされるJavaバイト コードである。それは、信頼できるものと考えられている。 ・「インターネット」は、多くの種々のサブネットワークより成るワールドワイ ドの開放型コンピュータ・ネットワークである。 ・「ワールド・ワイド・ウェブ(WWW)」は、インターネットの開放型サブネ ットワークである。 ・「イントラネット」は、通常、インターネットのサブネットワークであって企 業内でよく使用される閉鎖型内部ネットワークである。 ・「ブラウザ」は、ワールド・ワイド・ウェブにおける捜索(サーフィン)をサ ポートするコンピュータ・ソフトウエア又は環境である。 ・「Javaバイトコード」は、JVM(下記参照)のためのコンパイラによっ て作られたコードである。 ・「Java仮想マシン(JVM)」は、Javaバイトコードを実行する虚構 的であるが完全に特定されたプロセッサである。それは、そのマシンがソフ トウエアにおいてインプリメントされるので虚構的である。 ・「ライブラリ」は、プログラムにおいて使用するための定義された機能又はク ラスの集合体である。 ・「サンドボックス」は、Javaアプレットか制限されるプレイグラウンドで ある。それは、定義された入力及び出力ポイント(ケート)をもった境界に よって輪郭形成された実行環境である。 (b)サンドボックス・セキュリティ・モデル 前述のサン・マイクロシステムズ社の1996年発行の「Javaセキュリテ ィ(Java Security)」においてJ.S.Fritzinger及びM.Mueller氏により開示さ れたいわゆるサンドボックスは、Javaアプレットに対する定義された境界及 びゲートによって輪郭形成された「プレイグラウンド」を公開する。すべてのア プレットがこのサンドボックスに制限される。サンドボックス外のものをアクセ スするためには、アプレットは対応するゲートを通過しなければならない。同様 に、アプレットとの如何なるコミュニケーションもゲートを通さなければならず 、ゲートはその交差を制御し、制限することができる。一般に、アプレットは遠 隔状態で開発される。ユーザはアプレットのダウンロードを習慣的に開始し、そ れは、通常、インターネットのような信用のできない公衆ネットワークを介して 移動する。 アプレットが信用されるかどうかは、本質的には、次のような要素に依存する 。 ・ アプレット・プログラマが敵対プログラムを書かないようにすることができ るか。即ち、そのプログラマを信用することができるか。 ・ 言語の仕様によって定義された規約に従ってバイトコードを作成するコンパ イラを信用することができるか。 ・ 侵入者がアプレットを破損し又は修正するかもしれない場合、ネットワーク を信頼することができるか。 上記事項のうちのどれかに難点があるアプレットは、信用できるものとは考えら れない。 一方、独立型のアプリケーションは、一般に、ローカル的に、即ち、安全な環 境で開発されるか、又はイントラネットのような信頼されているネットワークを 介して移動する。従って、アプリケーションは、通常、信用し得るものと考えら れる。しかし、アプレット及びアプリケーションの間のこの粗い黒及び白の識別 は十分ではない。サンドボックス方法はアプレットにのみ適用され、アプリケー ションには適用されないので、インプリメントされたセキュリティはアプレット に限定される。更に、利用可能なインプリメンテーションを不十分且つ不完全な ものにしている現在知られているサンドボックスのインプリメンテーションでは 、数多くのバグが見つかっている。 通常、サンドボックスはブラウザにおいてインプリメントされる。それは、エ ンドユーザ対話の可能性なしにハードコーディングされ、プログラム可能ではな い。従って、それは固定境界及び固定ゲートを持った静的モデルである。ゲート の判断だけが変わり、ゲート自体、即ち、それのロケーション、それのポリシ、 又はそれの存在は変わらない。このモデ ルはダウンロードされたコードのオリジンを考慮するものではない。それは、ロ ーカル・プログラムとリモート・プログラムの間、即ち、アプリケーションとア プレットとの間を粗く識別するだけである。 要するに、Javaセキュリティ・モデルの既知のインプリメンテーションは 、適切なセキュリティ・ポリシ及びそのポリシをインプリメントする機構の強化 を切り離すことができない。既知のセキュリティ・モデルは静的であり、最もユ ーザ制御された判断がJava仮想マシンにおいてハードコーディングされるの で、サンドボックス・パラダイムに関するそれのインプリメンテーションは不十 分である。明らかに、構成可能なセキュリティの特徴の欠如は、この既知のセキ ュリティ・モデルの受容及び適用性を制限している。 本発明によるオブジェクト指向システムに対する新しいセキュリティ機構はJ ava環境に直接に適用可能である。このセクションにとって必須である幾つか の用語は十分に認められた定義を持っているのに対して、その他のものはこの説 明では特定の方法で使用される。整合性を得るために、それらの用語の簡単な定 義を以下に示す。 (c)用語 ・「オブジェクト」は、データをカプセル化し、メソッドを提供する。データは これらのメソッドを通してのみアクセス可能である。オブジェクトは動的に 作成される。即ち、それらはインスタンス化される。 ・「クラス」は、オブジェクトに対する定義であり、静的である。 ・「エンティティ」は、それらが能動的であるか又は受動的であるかに関係なく オブジェクト又は参照されたクラスとして見なされる。エンティティは資源 を所有するか又は供給する。 ・「インターフェース」は、エンティティ・データ及びサービスがアクセスされ そして変換されるエンティティのメソッドのセットより成る。 ・「名前」は、エンティティのメソッドに対するシンボリック・リファレンスで ある。名前はランタイム・システムの実行コンポーネントによって理解され るものではなく、即ち、変換可能ではない。 ・「オブジェクト・リファレンス」は、エンティティのメソッドのロケーション に対するポインタである。オブジェクト・リファレンスはランタイム・シス テムの実行環境によって理解され、即ち、変換可能である。 ・「サービス」は、オブジェクト・リファレンスを通して又はシンボリック・リ ファレンスを通して参照されるエンティティのメソッドであると考えられる 。 (d)発明 この新規なセキュリティ機構は、オブジェクト指向システムにおいて未承認の アクセスから資源を保護することを目的としている。それは、資源利用及びアク セス制御を検査及び 監視するためにそれを使用することが可能である。それの設計は、資源アクセス が厳密に制御される場合にはプログラムは如何なるものも害さないという基本的 な仮定に基づいている。次のようなコンポーネントは、単独でも又は結合しても 本発明によるセキュリティ機構にとって本質的なものであるように見える。 ・「オブジェクト指向パラダイム」:データがエンティティによってカプセル化 され、提供されるインターフェースのみによって変換可能である。エンティ ティ・データを保護するための方法はそれらのインターフェースへのアクセ スを制御することである。 ・「レイジイ・オブジェクト・バインディング」:各シンボリック・リファレン ス(名前)は対応するオブジェクト・リファレンスによって実行時に代用さ れ、それを通してサービスを呼び出すことができる。この代用プロセスは、 本発明によるセキュリティ機構によってインターセプトされる。 ・「名前解決」:所与の名前(シンボリック・リファレンス)に対するオブジェ クト・リファレンスを得るために、名前解決が必要である。この名前解決は オブジェクト・リファレンスに名前をマップする。新規な機構では、このマ ッピングは、名前解決を制御するインターセプト・マネージャによってイン ターセプトされ得る。 ・「ガード・オブジェクト」:それらはオブジェクト・リフ ァレンスに任意に付加可能である。これらのガードは、オブジェクト・リフ ァレンスが使用される前及び(又は)後に呼び出される。更に、それらはコ ンテキスト情報をアクセスすることが可能である。 (e)オブジェクト指向パラダイム 資源はエンティティによってカプセル化され、与えられたインターフェースを 介してのみアクセス可能である。従って、未承認のアクセスに対してオブジェク ト指向システムにおける資源を保護するためには、そのような資源へのアクセス が制御されるという懸念を、関連のエンティティのインターフェースへのアクセ スを制御するという問題に軽減することが可能である。エンティテイは、第1図 に示されるように、種々の資源を提供することが可能であり、従って、種々のイ ンターフェースを提供することが可能である。特定の資源を使用するためには、 この資源の名前(及びロケーション)が知られていなければならない。そこで、 この名前は、対応するメソッドが存在するロケーションを指すオブジェクト・リ ファレンスに変換される。 (f)レイジイ・オブジェクト・バインディング バインディングは、実行可能なコードの必要なコンポーネントを連結するプロ セスである。コンポーネントはコンパイラによって作られ、オブジェクト・ファ イルと呼ばれる。オブジェクト・ファイルは、他のオブジェクト・ファイルに対 するシンボリック・リファレンスを含む。これらのオブジェ クト・ファイルを連結することによつて、リンカーがシンボリック・リファレン スを対応するオブジェクト・リファレンスでもって代用する。その時点で、その 実行可能なコードは、実行環境によって理解可能な、即ち、解釈可能な必要なオ ブジェクト・リファレンスを保持し、従って、その実行可能なコードは参照され たメソッドを呼び出すことができる。 代用が実行時に行われる場合、それは動的バインディングと呼ばれる。そうで ない場合、即ち、コードが実行される前に代用が行われる場合、それは静的バイ ンディングと呼ばれる。すべてのシンボリック・リファレンスの代用が時間的な 或るポイントで生じた場合、連結プロセスはイーガ(eager)バインディン グと呼ばれる。シンボリック・ネームに対するオブジェクト・リファレンスが実 行時に必要とされるということが1回だけ行われる場合、それはレイジイ(la zy)バインディングと呼ばれる。一旦代用が実行可能なコードにおいて行われ ると、それは固定され、それ以上の変更を受けることはない。 例えば、C++コンパイラは、他のエンティティ(即ち、名前)に関する、人間 が読み取り可能な記号的に参照されたメソッドをそれらのタイプ情報とマージし て、更なるシンボリック・リファレンスにする。これらのリファレンスはいずれ も依然としてシンボリック(即ち、名前)であるが、最早、人間が読み取り可能 なフォーマットではない。そこで、バインダはシンボリック・リファレンスに従 って適正なコードを 含み、それらのシンボリック・リファレンスを適正なオブジェクト・リファレン スでもって代用する。そこで、このオブジェクト・リファレンスは、そのメソッ ドが存在するロケーションの始めを指す。Java環境はレイジイ・バインディ ング方式を使用する。各シンボリック・リファレンスは、一旦実行環境がそれを 使用すると代用される。 その分散型の方式はアドレス空間及び(又は)システムにまたがったメソッド の呼出を可能にする。ほとんどの場合、リモート・オブジェクトは、それらのロ ーカル代表として作用するプロキシ・オブジェクトによって表される。通常、プ ロキシ・オブジェクトはリモート・オブジェクトを位置指定し、作成し、破壊し 、及び呼び出す。従って、オブジェクト・リファレンスは対応するプロキシ・オ ブジェクトのロケーションを指す。 (g)インターセプト及び名前解決 その特定の特徴の新規な機構は、それがイーガ・バインディング方式であって も或いはレイジイ・バインディング方式であっても、バインディング・プロセス をインターセプトし、インターセプト・マネージャを介入させる。シンボリック ・リファレンスの解決、即ち、名前の解決は、その後者及び対応するオブジェク ト・リファレンスの間のマッピングを必要とする。所与のシンボリック・リファ レンス(名前)に対する対応するオブジェクト・リファレンスを見つけるプロセ スが名前解決である。これは、第2a図及び第2b図に示され るような名前解決プロセスによって実行される。特定のメソッドを使用するため に、呼出元エンティティは、オブジェクト・リファレンスに対して適正に解決さ れなければならないシンボリック・リファレンス又は名前を知らなければならな い。シンボリック・リファレンスによってどちらが表されるかをエンティティが 知っているリファレンスとオブジェクト・リファレンスによってどちらが表され るかをエンティティが確実に知っているリファレンスとの分離は次のような2つ の異なるネーム・スペースに通じる。 ・ エンティティの「仮定のネーム・スペース」は一組のシンボリック・リファ レンスより成る。これらのシンボリック・ネームは未だ解決されないが、解 決プロセスに対する候補である。エンティティは、これらのリファレンスが 存在するものと仮定するが、これらの仮定は解決プロセスを通して未だ確認 されていない。まだ、これらのメソッドを呼び出すことはできない。それら はランタイム実行コンポーネントによって理解可能なものではない。 ・ エンティティの「具体的なネーム・スペース」は、一組のオブジェクト・リ ファレンスより成る。これらのオブジェクト・リファレンスは解決された名 前であり、それらは解決プロセスによって確認されているので、エンティテ ィによって明確に知られている。オブジェクト・リファレンスはランタイム 実行環境によって理解可能である。 具体的なネーム・スペースにおいて参照されたメソッドのセットは、通常、仮 定されたネーム・スペースにおいて参照されたメソッドのサブセットである。そ れらのリファレンスは異なっている(オブジェクト・リファレンス対シンボリッ ク・リファレンス)が、参照されたメソッドは同じである。 (h)インターセプト・マネージャ 第2b図に示されたいわゆるインターセプト・マネージャは本発明の任意選択 的な特徴である。インターセプト・マネージャの主たる責任は、それが設けられ た場合、特定のセキュリティ・ポリシに従って名前解決プロセスを制御すること 及びそれを修正することである。例えば、それは、或るシンボリック・ネームの 解決を妨げることによって具体的なネーム・スペースを強化することが可能であ る。名前解決プロセスをインターセプトし、インターセプト・マネージャを介入 させることは、アクセス制御機構に通じる。セキュリティを目的とした具体的な ネーム・スペースに関するこの規定は、それが表すエンティティのオブジェクト ・リファレンスを持つことなく使用することができる資源はないという仮定に基 づいている。インターセプト・マネージャがこの解決を可能にする場合に、しか もその場合にのみ、記号的に参照されたメソッドが解決される。 第2b図に示されるように、インターセプト・マネージャは名前解決プロセス の一部である。オブジェクト・リファレンスである名前解決プロセスの結果はイ ンターセプトされる。 インターセプト・マネージャは、未修正のオブジェクト・リファレンス、又はガ ード・オブジェクトを付加されたオブジェクト・リファレンス、或いは参照され たエンティティが存在しないという例外を戻す。インターセプト・マネージャに よって遂行されるアクセス制御の粗さは解決プロセスの粗さに依存する。もっと 正確に云えば、インターセプト・マネージャはより粗いレベルで作用し得るが、 より精細なレベルでは作用し得ない。それにも関わらず、きめの細かさが可変的 なアクセス制御が依然として存在する。インターセプト・マネージャは、ソース ・エンティティ・ネーム、宛先エンティティ・ネーム、及びそれらのデータのよ うなコンテキスト・センシティブな情報へのアクセスを有する。単にアクセスを 制御することは、場合によっては十分ではないことがあり、資源利用を監視及び 検査することが必要であることがある。これは、保護された資源が使用される前 及び(又は)後に、セキュリティ機構の更なるコンポーネントが呼び出されるこ とを必要とする。そのようなオブジェクトはガードと呼ばれ、それはインターセ プト・マネージャによって挿入可能なものである。 (i)ガード・オブジェクト 本発明のもう1つの任意選択的な特徴であるガード・オブジェクトが特定のオ ブジェクト・リファレンスと関連付けられる。それは、インターセプト・マネー ジャがどのようにガード・オブジェクトをインストールしたかに従って、そのオ ブジェクト・リファレンスが使用される前及び(又は)後に呼び出されるであろ う。 ガード・オブジェクトは、関連のオブジェクト・リファレンスが使用される前 にそのガード・オブジェクトが呼び出され、従って、宛先エンティティに対する 供給されたアーギュメントへのアクセスを有する場合、宛先エンティティの前に インストールされると云える。ガード・オブジェクトは、その関連のオブジェク ト・リファレンスが使用された後、即ち、コールされたメソッドが戻った後にそ のガード・オブジェクトが呼び出される場合、従って、それの戻り値へのアクセ スを有する場合、宛先エンティティの前にインストールされると云える。第2b 図は、インターセプトされた名前解決プロセスの戻り結果の1つとしてガード・ オブジェクトを付加した場合の修正されたオブジェクト・リファレンスを示す。 ガード・オブジェクトがエラーのないことを表す場合、通常通りに実行が継続 する。インターセプト・マネージャによって使用されるコンテキスト情報と同様 に、ガード・オブジェクトもコンテキスト・センシティブな情報へのアクセスを 有する。これは、ソース・エンティティ・ネーム、宛先エンティティ・ネーム、 及び呼出パラメータを含む。ガード・オブジェクトが宛先エンティティの前にイ ンストールされる場合、それらは次のようなアクションを遂行することができる 。 − 呼出を拒否する − 未変更の呼出を送る − 呼出が供給したデータを変換する − 呼出の宛先を変更する − 呼出元エンティティに権利を割り当て、及び(又は)チェックする − アクセスを監視する − 通知サービス及び(又は)検査サービスを遂行する。 ガード・オブジェクトが宛先エンティティの後にインストールされる場合、そ れらは次のようなアクションを遂行することができる。 − 戻りパラメータ又は状態を変更する − 以前に割り当てた権利を排除する − 応答を監視する − 通知サービス及び(又は)検査サービスを遂行する。 ガード・オブジェクトは、それらがインターセプト・マネージャによって外部 から付加されているので、ソース又は宛先、即ち、呼出元エンティティ又は呼出 先エンティティによって影響されることはない。 ガード・オブジェクトは、呼出すエンティティ及び呼出されるエンティティ、 即ち、呼出元エンティティ及び呼出先エンティティに関する限り、非可視的であ って透過である。インターセプト・マネージャとは反対に、ガード・オブジェク トは具体的なネーム・スペースを直接に強化することができないが、それらは間 接的にそれに影響を与えることはあり得る。それらが、オリジナル・シンボリッ ク・リファレンスに 付加されたオブジェクト・リファレンスを未解決にすることができる。この未解 決の結果、このメソッドに関する次の使用は再びシンボリック・リファレンスに 遭遇し、そして名前を解決し、従って、.インターセプト・マネージャに対する 呼出になるであろう。そこで、インターセプト・マネージャは、再び、それのセ キュリティ・ポリシに従って、呼出元エンティティの具体的なネーム・スペース を修正する可能性を持つ。未解決のオブジェクト・リファレンスは、シンボリッ ク・リファレンスが解決された後、セキュリティ・ポリシが変化する場合に有用 であるかもしれない。 更に、各ガード・オブジェクトは、それが如何に長くそれのオブジェクト・リ ファレンスに付加されることを望んでいたかを決定する可能性を有する。ガード ・オブジェクトは、それ自身を分離することを決定してもよく、従って、オブジ ェクト・リファレンスの呼出のために最早呼び出されないであろう。 (j)将来性 いわゆる将来性(capability)は、特定のモードにおいて特定のオ ブジェクト(以下の記述において更に説明される)を呼び出す権利である。19 95年Prentice Hall International社発行のA.S.Tanenbaum氏著の「現代のオペ レーティング・システム(Modern Operating System)」に開示されているよう に、その権利は次の3つの要素を含んでいる。 (1)オブジェクトに対するポインタ: 必要なポインタは解決されたリファ レンス、即ち、オブジェクト・リファレンスによって完成される。実行可能 なコードがポインタを有する場合、適切なランタイム・システムが呼出を可 能にするものと仮定される。それは、将来性を有するすべてのエンティティ が対応するメソッドを呼び出すことができるということを意味する。 (2)オブジェクトのタイプ情報: 必要なタイプ情報は付加されたガード・ オブジェクトを通して得られる。将来性のタイプは関連するガード・オブジ ェクトに依存する。 (3)オブジェクトに対するアクセスの権利: 必要なアクセスの権利は付加 されたガード・オブジェクトによって達成される。それらは、呼出元エンテ ィティが特定のメソッドを使用するために供給しなければならない権利をチ ェックすることができる。更に、呼出元エンティティが適正な権利を有する 場合、ガード・オブジェクトは既存の権利を強化するか、或いは、このサー ビスを使用する新たな権利を割り当ててもよい。 オブジェクト・リファレンスを伴うガード・オブジェクトは将来性に類似して いるが、同じではない。インストールされたガード・オブジェクトを有する解決 された名前は、強化された動的将来性と見なされてもよい。将来性の動的要素は 関連のガード・オブジェクトである。 (k)概要 従って、オブジェクト指向システムにおいて資源を保護するための紹介された 方法は次のような特徴のうちの1つ又は複数個のものを含む。オブジェクト指向 パラダイムは、オブジェクト及びそれらのインターフェースを通して資源へのア クセスを制御するために十分に役立つ。アクセス制御は呼出元エンティティに対 するネーム・スペースの制御、従って、解決された名前の可視性の制御を通して 達成される。呼出元エンティティがサービスを見ることができない場合、それは サービスを呼び出すことができない。メソッドの呼出可能性がないと、関連する 資源を使用することができない。解決マネージャ(及び任意選択的ガード・オブ ジェクト)はコンテキスト情報を使用し得るので、それらは、非常に融通性のあ る旦つコンテキストに依存するものとして作用することができる。ガード・オブ ジェクトは、いずれのエンティティを知らなくても外部から付加可能である。そ れらは、呼出元エンティティ及び呼出先エンティティに関する限り、非可視的で あり、透過である。従って、その機構は、パフォーマンス・オーバヘッドによっ て及び動的態様でほとんど費用をかけずに保護する。 B.インプリメンテーション 以下では、本発明によるセキュリティ機構のインプリメンテーションがJav a環境において開示される。インタープリタ及びランタイム・ライブラリを含む Java仮想マシン (JVM)に対して行われるすべての変更が考察される。更に、Javaでイン プリメントされる本発明のセキュリティ機構のコンポーネントも与えられる。 このセクションは.インプリメンテーションの詳細も扱うので、当業者は、J VMの基本的機構及びC言語におけるそれのインプリメンテーション並びにJa vaプログラミング言語自体には精通しているものと仮定する。Java言語の 包括的プレゼンテーション及びJVMに関するそれのインプリメンテーションは 、1996年Addison-Wesley Publishing社発行のJ.Goslin、B.Joy及びG.Tele著 の「Java言語仕様(The Java Language Specification)」及び同年同社発 行のT.Lindholm及びF.Yellin著の「Java仮想マシン仕様(The Java Virtual Machine Specification)」によって開示されている。本発明のセキュリティ機 構のインプリメントされたコンポーネントは、「JVMのJava開発キット( JDK)バージョン1.0.2及びAIXバージョン(the Java Development Kit (JDK)Version 1.0.2 and the AIX Version of the Java)」に基づいている。こ のセクションは、システム・クラスによって表されたシステム資源を保護するコ ンポーネントを開示している。Java仮想マシンに対する変更はできる限り少 なく保たれたが、わずかな変更が不可避であった。 B1.機能の概要 本発明のセキュリティ機構のインプリメントされた機能は インターセプト・マネージャ及び幾つかの基本的なガード・オブジェクトのイン プリメンテーションを含む。エンティティという用語は、特定のクラスに適用す るために前のセクションよりも厳密化される。クラスは、それが資源を所有し及 び表示するという意味ではエンティティである。システム資源はJavaライブ ラリにおけるそれらの対応するシステム・クラスを介して表されるので、クラス は、不明瞭ではなく完全に適格化された名前によってよく知られている。従って 、このインプリメンテーションは、Javaライブラリに存在するシステムの保 護を行う。名前解決プロセスから受けたオブジェクト・リファレンスは対応する コード・ピースに対するポインタであり、それは、実際には、メソッド記述の始 めを指す。従って、オブジェクト・リファレンスはロケーションの知識を含み、 メソッドを直ちに呼び出すことが可能である。 システム・クラスの保護は、ネーム・スペースを適当に修正することによって それらへのアクセスの制御を通して達成される。オブジェクトの具体的なネーム ・スペースがオブジェクト・リファレンスを含む場合、参照されたメソッドへの その後のアクセスは許容される。従って、上記の仮定において述べたように、プ ログラムは、オブジェクト・リファレンスが得られる資源をアクセスすることが できるだけである。オブジェクトの具体的なネーム・スペースを制御及び修正す るために、レイジイ・バインディング機構及び名前解決が、 前述のようにインターセプト・マネージャを介在させることによって利用される 。オリジナル・メソッドか実行される前にガード・オブジェクトをコールするた めに、そのメソッド呼出方式は、インストールされたガード・オブジェクトに関 するチェックによって拡張される。この機能をインプリメントするためには、次 のような懸念が極めて重要である。 − ネーム・スペースの制御を通した資源保護 − Java仮想マシンにおけるメソッド呼出コンポーネントの変更 − ネイティブCコードへのアクセスを提供するインターセプト情報ベース・ク ラス − インターセプト・マネージャのインプリメンテーション − ガード・オブジェクト・ベース・クラス B2.Java仮想マシン変更−システム・レベル このセクションはJava仮想マシン及びJavaランタイム・ライブラリの 機能強化を説明する。その機能強化はネイティブCコードにおいてインプリメン トされ、従って、マシン依存するものである。本発明によるセキュリティ機構を インプリメントするために、次のようなコンポーネントが変更された。 − 仮想マシンの名前解決コンポーネント − メソッド呼出を扱うすべてのopコード − メモリにおけるバイナリ・メソッド表示 − スレッド構造 (a)ネーム・スペース修正 アクセス制御を、従って、資源保護を達成するために、呼出元オブジェクトの 具体的なネーム・スペースが制御される。それは強化されるか又は拡大される。 親オブジェクトのネーム・スペースを修正するために、Javaのレイジイ・ オブジェクト・バインディング・メソッドが利用される。Javaのバイナリ・ ファイル・レイアウトは、十分に適格化された名前を記号的に使用して、他のク ラス及びインターフェース、並びに、それらのフィールド、メソッド、及びコン ストラクタを参照する。フィールド及びメソッドに関して、これらのシンボリッ ク・リファレンスは、フィールド又はメソッドを宣言するクラス又はインターフ ェース・タイプの名前及びフィールド又はメソッド自体の名前を適切なタイプ情 報と共に含む。オブジェクトが使用される前に、それの名前がオブジェクト・リ ファレンスに対して解決されなければならない。識別子は、正しいかどうかをチ ェックされ、そして、一般には、そのリファレンスが繰り返して使用される場合 に更に効率的に処理され得るダイレクト・オブジェクト・リファレンスと置換さ れる。エラーが生じる場合、例外が発生されるであろう。これに関しては、19 96年Addison-Wesley Publishing社発行のJ.Goslin、B.Joy及びG.Tele著の「J ava言語仕様(The Java Language Specification)」及び同年同社発行のT.L indholm及びF.Yellin著の「Java仮想マシン仕様(The Java Virtua l Machine Specification)」を参照してほしい。 オブジェクト・リファレンスに対する名前が解決された後、インターセプト・ マネージャが呼び出され、シンボリック・リファレンスの解決が許容されるべき かどうかを決定する(第4図参照)。従って、名前解決がインターセプトされ、 従って、レイジイ・オブジェクト・バインディングがインターセプトされる。イ ンターセプト・マネージャのリターン値に従って、臭体的なネーム・スペース修 正が遂行される。 ・ インターセプト・マネージャが「偽」を返答する場合、クラス・ファイルが 存在しないことを呼び出しファイルに表示するNoClassDefFoundError例外が 発生される。従って、所望の資源の名前は解決され得ず、その結果、対応す るコード・ピースのロケーションは未知である。インターセプト・マネージ ャに要請し、その後例外を生じさせると云うこの方式は、呼出元オブジェク トの具体的なネーム・スペースを強化する。 ・ インターセプト・マネージャが「真」を返答する場合、呼出は通常どおりに 継続し、具体的なネーム・スペースは修正されない。事実、具体的なネーム ・スペースは解決された名前を、即ち、対応するコード・ピースに対するポ インタを、オブジェクト・リファレンスによって拡張される。 下記のコード・フラグメントC1は名前解決機能に挿入された新しいコードを 表す。このCコード・フラグメントは次 のようなステップを遂行する。 (1)ガード・オブジェクトを管理するために必要な構造を初期設定する。 (2)リクエストされた解決が許容されるかどうかをチェックし、それが否定 される場合、メソッドを未処理としてマークし、「偽」を戻す。 (3)そうでない場合、メソッドを解決されたものとしてマークし、シンボリ ック情報をその対応するコード・ピースに対するポインタでもって置換する 。 インターセプト・マネージャは幾つものガード・オブジェクトを付加し得るの で、そのメソッド呼出方式は、名前解決プロセスに加えて修正を必要とした。 (b)コードフラグメントC1 このコード・フラグメントは、記号的に参照された名前を解決する機能に挿入 されている。適切な例外が、ic_CheckMethodResolving()メソッドにおいて発生 される。(このコードでは、ガード・オブジェクトは「フィルタ・オブジェクト 」と呼ばれる)。 [解決メソッド] (c)メソッド呼出 Javaインタプリタは、既に解決しているメソッドを実行する貴任がある。 メソッド呼出関連プロシージャに関する詳細な説明は、前述した1996年Addi son-Wesley Publishing社発行のT.Lindholm及びF.Yellin著の「Java仮想マ シン仕様(The Java Virtual Machine Specification)」に開示されている。第 4図はメソッド呼出の制御フローの概要を示す。本発明によって加えられた10 個の新しいコンポーネントは参照番号19−25及び27−29であり、他のコ ンポーネントはオリジナルのJavaコンポーネントである。本発明による新た なコンポーネントは、名前解決に関するチェック及びガード・オブジェクトの実 行を含む。 (d)Opコード opコードは簡単な用語であり、通常は、特定のオペレーションのセットを表 す数字である。それは特定の機能を表す。例えば、ニーモニックopc_invokevirt ualと関連したopコード182(0xb6)は、仮想メソッドを呼び出すため の基本的ステップを表す。種々のJava opコード及びそれらが提供する機 能に関する詳細な説明は、前述のT.Lindholm氏他による文献においてみることが できる。ガード・オブジェクトをインストール及び維持するために、メソッド呼 出を扱うopコードのインプリメンテーションが変更される。その機能は、ガー ド・オブジェクトに対するチェックによつて及びその後それらを実行するための コードによって拡張さ れる。最後のガード・オブジェクトが実行された後、オリジナル・メソッドが実 行される。 C2は、メソッド呼出を扱うすべてのopコードに挿入されているCコード・ フラグメントである。このコード・フラグメントは次のようなステップを遂行す る: (1)ガード・オブジェクトがインストールされているかどうかをチェックす る。ガード・オブジェクトが全くインストールされていない場合、通常どお りに継続する。 (2)メソッドが解決されたかどうかをチェックする。それが解決された場合 、そのインストールされたガード・オブジェクトをコールする。 (3)例外が処理されなければならないかどうかをチェックする。例外が発生 している場合、メソッドの実行を取り止め、それを処理する。 ガード・オブジェクトをオブジェクト・リファレンスに付加するために、オリ ジナル・メソッドのメモリ・レイアウトが拡張される。 (e)コード・フラグメントC2 このコード・フラグメントはオリジナル・メソッドの実行前に挿入される。 [実行メソッド] (f)メソッド表示 オブジェクトの任意のメソッドを実行するためには、メソッドはメモリにおけ る対応するバイナリ表示を必要とする。メソッドのバイナリ表示は静的コンポー ネントと動的コンポーネントに分離される。静的コンポーネントはそれのクラス 記述及び静的フィールドを含み、動的コンポーネントはそれの動的フィールドを 含む。UNIXオペレーティング・システムにおいて実行可能なバイナリの表示 におけるテキスト・セグメント及びデータ・セグメントの間の相違点は類似した コンセプトである。両セグメントともアドレス空間の異なるエリアにマップされ る。テキスト・セグメントは読取専用モードでマップされ、データ・セグメント は読取/書込モードでマップされる。 メソッドの静的コンポーネントは、同じクラス記述からインスタンス化された すべてのオブジェクトによって共用されるが、各オブジェクトはそれ自身の動的 コンポーネントを有する。ガード・オブジェクトはメソッドの静的コンポーネン ト、即ち、fieldblock structureに付加される。従って、ガード・オブジェクト は、同じクラス記述のすべてのインスタンスによっても共用される。ガード・オ ブジェクトは静的コンポーネントに付加されるけれども、インプリメンテーショ ンはガード・オブジェクトを、クラス及びそれらのメソッドにではなく、別のオ ブジェクト及びそれらのメソッドに付加するように準備される。 (g)ガード・ディスパッチ・テーブル ガード・ディスパッチ・テーブルは付加されたガード・オブジェクトを管理す る。それは、各ガード・オブジェクトのリファレンスを保持し、如何に多くのガ ード・オブジェクトがインストールされるかを表す。へッダは次のような管理的 エレメントより成る。(歴史的な理由で、ガード・オブジェクトは、そのコード では「フィルタ・オブジェクト」と呼ばれる): ・ 如何に多くのガード・オブジェクトが使用されるかを表す変数(used_filte rによって表される) ・ スペースが割り振られるガード・オブジェクトの数を表す変数(res_filter によって表される)。但し、res_filter>used filterがいつも真でなけれ ばならない ・ そのメソッドが解決されたと見なされるかどうかを表すフラッグ(resolved によって表される) ・ 付加されたメソッド表示を参照するポインタ(mbによって表される) ・ 呼出元オブジェクトのクラス・ファイルに対するポインタ(callerによって 表される) ・ 管理されたガード・オブジェクト構造を含む動的アレイの第1エレメントに 対するポインタ。 以下のコード・フラグメントC3はガード・ディスパッチ・テーブル・ヘッダ の構造を示す。 (h)コード・フラグメントC3 これはガード・ディスパッチ・テーブルのヘッダを示す。 filtersによって示されたアレイのエレメントのタイプがコード・フラグメン トC4において示される。それは次のようなコンポーネントを含む: ・ ガード・オブジェクトのオブジェクト・メモリ・ロケー ションに対するポインタ(objによって表される) ・ 呼び出されるべきメソッドの名前(methodnameによって表される) ・ 2つのメソッドが同じ名前を持つが異なるシグニチャを持つと云うことをイ ンプリメントすることが可能であるので、対応するシグニチャ(signature によって表される) ・ ガード・オブジェクトがそれら自身を対応するオブジェクトから分離する時 にコールされるインターセプト・マネージャ・クラスにおけるメソッドを指 定するコールバック・メソッド・ネーム(notifyによって表される)。 (i)コード・フラグメントC4 フィルタ・ディスパッチ・フィールドにおける各エントリはタイプfilterdesc のエントリである。 ガード・オブジェクトはJavaにおいてインプリメントされるので、それら は順次にネーム・スペースの修正のための及びガード・オブジェクトを付加する ための潜在的な候補である。従って、再帰問題を回避するために、実行スレッド がマークされる。 (j)スレッド スレッドはアドレス空間における実行パスである。このアドレス空間は、数多 くの同時に実行するスレッドによって共用可能である。スレッドの概念に関する 詳細な説明は、1989年1月6日発行のディジタル・イクイップメント社のSy stem Research Center(SRC)Report誌におけるA.D.Birell氏による「スレッドに よるプログラミング概説(An Introduction to Programming with Threads)」 において示されている。 本発明によるガード・オブジェクト及びインターセプト・マネージャはJav aにおいてインプリメントされる。それらは資源もアクセスするので、本発明に よる機構に属するコンポーネント及びそれに属さないコンポーネントの間を区別 するための基準が必要とされる。それがない場合、インターセプト・マネージャ が資源をアクセスする度に、従って、メソッドを呼び出す度に、それは、インタ ーセプト・マネージャ自身によってチェックされる。この再帰は、スレッドを適 正にマークすることによって破られる。スレッドがガード・オブジェクト又はイ ンターセプト・マネージャに入る場合、それは、スレッドがスーパバイザ状態に あるものとしてマークされる。次にそれがガード・オブジェクト又はインターセ プト・マネージャに入ろうとする時には、スレッドがスーパバイザ状態にあるも のとしてマークされているかどうかがチ ェックされる。このマークの存在に従って、ランタイム・システムは、スレッド をその新規な機構に委ねるべきかどうかを決定する。スレッドがガード・オブジ ェクト又はインターセプト・マネージャから離れる場合、そのマークは消去され る。 この一時的に割り当てられたステータスは、システム・コールを実行するプロ セスがシステム・コールを実行しないプロセスよりも、資源をアクセスするため の多くの権利を有するという伝統的なUNIXシステム・コールの概念に多少類 似している。カーネル・モードにある間、スーパバイザ状態が実行プロセスに一 時的に割り当てられる。これらの特権によって、プロセスは、オペレーティング ・システムによって維持された保護済みの資源へのアクセスを有する。システム ・コールを離れる時、特権状態は消去される。システム・コールの概念の詳細な 説明は、1996年Addison Wesley Publishing社発行のS.J.Leffler氏他による 「4.4BSDUNIXオペレーティング・システム(4.4 BSD UNIX Operating System)」において示されている。 ガード・オブジェクト及びインターセプト・マネージャは、オリジナル・メソ ッドに供給されたアーギュメントを含むコンテキスト・データをアクセスするこ とができ、それらを修正することも可能である。オリジナル・メソッド呼出がイ ンターセプトされ、しかもインターセプト・マネージャが要請されるか又はガー ド・オブジェクトがコールされる場合、実 行スレッドはオリジナル・メソッドのスタック.フレームに対するポインタを一 時的に割り当てられる。従って、それらはスタック上に存在するメソッド・アー ギュメントへのアクセスを有する。 本発明によるセキュリティ・コンポーネントに入る時、適正なガード・ディス パッチ・テーブルに対するポインタが実行スレッドに割り当てられる。従って、 そのスレッドは、すべてのガード・オブジェクトに対する完全なアクセスを有す る。 上述の機能を達成するために、スレッド構造は次のようなコンポーネントによ って拡大される。これらのコンポーネントはすべて、スレッドが正規のコード及 びセキュリティ・コードの間の境界を横切る時に割り当てられる。 − スレッドがスーパバイザ状態にあるかどうかを表す単一ビット(sv_thread によって表される) − 適正なガード・ディスパッチ・テーブルに対するポインタ(iv_filtertable によって表される) − オリジナル・メソッドの適正なスタック・フレームに対するポインタ(ic_o ptopによって表される) B3.Javaクラス・ハイアラーキ(ユーザ・レベル) このセクションでは、Javaでインプリメントされるコンポーネントが説明 される。Javaにおける新規なセキュリティのインプリメンテーションは、で きるだけ移植可能であるというJavaの考え方の主要原理の1つに従う。 従って、そのインプリメンテーションのほとんどは、ネイティブCコードにお いてインプリメントされたコンポーネントに対する明確なインターフェースを使 用して、Javaにおいて行われる。ネイティブCコードにおいてインプリメン トされるルーティンは、InterceptionInfoと呼ばれる抽象的なベース・クラスを 通してアクセス可能である。 (a)インターセプト情報 InterceptionInfoはJavaにおいては抽象的なクラスである。それは、本発 明による基本的なセキュリティ機能を提供するために使用される。Javaにお けるクラス修飾子の説明は前述のJ.Goslin氏他によって与えられている。このベ ース・クラスのコンポーネントは大雑把に次のようなカテゴリに分割可能である : − 任意のガード・オブジェクトのインストールを管理する − 任意のガード・オブジェクトの除去を管理する − インストールされたガード・オブジェクトの順序を管理する − 任意のアーギュメントの検索及び修正 − 呼出元オブジェクト/エンティティ及び呼出先オブジェクト/エンティティ の完全に適格化された名前、メソッド名並びにシグニチャ名の検索 InterceptionInfo基本クラスによって提供されたアプリケーション・プログラ ミング・インターフェース(API)の概要がコード・フラグメントC5におい て与えられる。本発 明による完全なセキュリティ機能を得るためには、インターセプト・マネージャ ・クラス及びすべてのガード・オブジェクトが、図示のようにこのInterception Info基本クラスをサブクラス化しなければならない。 (b)コード・フラグメントC5 このクラスはインプリメントされたネイティブCコードに対するインターフェ ースを提供する。 (c)インターセプト・マネージャ・クラス インターセプト・マネージャはJavaにおいてインプリメントされ、最終的 な且つ静的なものとして宣言される。イ ンターセプト・マネージャはInterceptionInfo基本クラスをサブクラス化する。 それは、呼出元エンティティのネーム・スペースを制御及び修正する責任がある 。インターセプト・マネージャは、呼出元エンティティがアプリケーションの一 部であるか又はアプレットの一部であるかに関係なく、即ち、アプリケーション アプレットの間の区別なく、Java環境に対してセキュリティ・ポリシをイン プリメントする。インターセプト・マネージャは、セキュリティ・サンドボック スの境界を定義し、サンドボックスの外部とのコミュニケーションのためのゲー トを確立する。 Javaはそれ自身のメモリ管理を有するので、ガーベッジ・コレクションは 、古くなったオブジェクトを排除してメモリを自由にする責任がある。最早Ja vaレベルにおけるリファレンスが存在しない場合、オブジェクトは古くなった ものと見なされる。従って、インターセプト・マネージャは、それが作成しそし てその後インストールしたすべてのガード・オブジェクトを追跡しなければなら ず、そうでない場合、ガーベッジ・コレクションは、メモリをコンパクトにする 時、このオブジェクトを排除するであろう。ガーベッジ・コレクションに関する 詳細な説明は、前述のT.Lindholm氏他によって与えられている。 インターセプト・マネージャはガード・オブジェクトを作成し、どのオブジェ クトをどのメソッドに付加すべきかを決定する。それは、オリジナル・メソッド の前及び(又は)後 にそれらがコールされる順序も指定する。 (d)インターセプトフィルタ Interception Filterクラスはガード・オブジェクトによって必要とされる基 本機能を提供する。インターセプト・マネージャと同じネイティブCコード・メ ソッドをアクセスするために、それはInterceptionIfoクラスをサブクラス化す る。このクラスはそのサブクラス化されたクラスをメソッドでもって拡張し、そ れ自身をオリジナル・メソッド(それが付加されるオブジェクト・リファレンス )から切り離させる。実際のインプリメンテーションでは、ガード・オブジェク トは、オリジナル・メソッドがコールされる前に実行される。コード・フラグメ ントC6は基本のガード・オブジェクト・ベース・クラスを示す。defaultCallF i1ter()メソッドは、オブジェクト・リファレンスが呼び出される前にデフォル トによってコールされるメソッドである。 (e)コードフラグメントC6 これはInterceptionInfoアブストラクト・ベース・クラスを拡張する。 (f)結論 このセクションBは、セクションAにおいて示されたアイデアのインプリメン テーションの主たる懸念事項を示した。本発明のセキュリティ機構のインプリメ ンテーションの本質的な機能は、システム資源を表すシステム・クラスに対する アクセスを制御するための及び任意のガード・オブジェクトにおいてコールする ための原理を扱うその提案されたアーキテクチャのサブセットとして説明された 。 Java仮想マシンにおいて行われる修正は最少に維持された。呼出元オブジ ェクトの具体的なネーム・スペースを修正するために、及びメソッド呼出プロセ スにおいてガード・オブジェクトをコールするために、名前解決プロセスにおい て極めて重要な変更が行われた。今や、ガード・オブジェクトを通したすべての 単一メソッド呼出に対して、或いは、別の方法で且つ選択的に、名前解決プロセ ス中に1回だけセキュリティを保証することか可能である。インターセプト・マ ネージャ及びガード・オブジェクトの両方とも、所望の程度の保護に関して及び 経済的な観点から最適化可能である可変 的なきめの細かさの保護機構をプログラマが形成することを可能にする。

Claims (1)

  1. 【特許請求の範囲】 1.名前解決機構を有するデータ処理システム、特に、分散型ネットワーク・シ ステムにおいて、資源(2a....2n)、例えば、ファイル又は他のオブジェク トを未承認のアクセスから保護するための方法にして、前記資源は第1エンティ ティ、即ち、呼出元エンティティ(7)によってコールされ、第2エンティティ 、即ち、呼出先エンティティ(9)によって供給されるものであり、 前記資源へのアクセスはシンボリック・ネームを使用して前記呼出元エンティ ティ(7)によって呼び出され、シンボリック・ネーム全体はエンティティに対 する仮のネーム・スペースを形成し、 前記名前解決プロセスはオブジェクト・リファレンスを前記シンボリック・ネ ームに割り当て、前記オブジェクト・リファレンス全体は許容された資源を反映 するエンティティに対する具体的なネーム・スペースを形成し、後者は前記シス テムのすべての資源のサブセットであり、 前記呼出元エンティティ(7)は、前記呼出先エンティティ(9)における前 記具体的なネーム・スペースに対するアクセスだけを許容される 方法。 2.前記シンボリック・ネームは少なくともエンティティ・ネーム及びメソッド ・ネームを含み、それによって、前記名 前の全体は前記仮のネーム・スペースを形成する、請求の範囲第1項に記載の方 法。 3.前記アクセスが許容し得るものである場合、名前解決プロセスはシンボリッ ク・ネームを解決して、所望の資源(2a....2n)をアクセスすることにより 前記呼出元エンティティ(7)のアクセス、特に、即時アクセスを可能にするオ ブジェクト・リファレンス(6)にし、従って、前記呼出先エンティティ(9) における所望のメソッドを呼び出す、請求の範囲第1項又は第2項に記載の方法 。 4.ガード・オブジェクト(13)が供給され、前記ガード・オブジェクトに対 するリファレンスを前記オブジェクト・リファレンス(6)に代用することによ って名前解決プロセスが修正される、請求の範囲第1項乃至第3項のいずれかに 記載の方法。 5.前記ガード・オブジェクトは、オブジェクト・リファレンス(6b)を前記 呼出元エンティティ(7)から隠蔽すること及び呼出プロセスを制御することに よって所望のメソッドへの条件付きアクセスを提供する、請求の範囲第4項に記 載の方法。 6.前記ガード・オブジェクトは、前記オブジェクト・リファレンスが使用され る前及び(又は)後にコールされる、請求の範囲第4項及び第5項のいずれかに 記載の方法。 7.前記ガード・オブジェクトによって提供される条件付きアクセスは、前記名 前解決プロセスにおいて使用される分類 よりも細かい分類を生じる、即ち、より詳細な区分に依存する、請求の範囲第4 項及び第5項のいずれかに記載の方法。 8.前記方法のステップの少なくとも1つはオブジェクト指向態様でインプリメ ントされる、請求の範囲第1項乃至第7項のいずれかに記載の方法。 9.資源(2a....2n)、例えば、ファイル又は他のオブジェクトを未承認の アクセスから保護するための手段を含むデータ処理システムにおいて前記資源の ためのアクセス制御システムにして、前記資源は第1エンティティ、即ち、呼出 元エンティティ(7)によってコールされ、第2エンティティ、即ち、呼出先エ ンティティ(9)によって供給されるものであり、 前記呼出元エンティティ(7)が前記資源の任意のものへのアクセスを呼び出 すシンボリック・ネームを解決するための手段であって、前記シンボリック・ネ ーム全体は仮のネーム・スペースを形成することと、 前記シンボリック・ネームの各々にオブジェクト・リファレンスを割り当てる ための手段であって、前記オブジェクト・リファレンス全体は許容された資源を 反映する具体的なネーム・スペースを形成し、後者はすべての資源のサブセット であることと、 前記呼出元エンティティ(7)のアクセスを、前記呼出先エンティティ(9) における前記具体的なネーム・スペースに制限するための手段と、 を含むアクセス制御システム。 10.ガード・オブジェクト(13)を確立し、前記ガード・オブジェクトに対 するリファレンスを前記オブジェクト・リファレンス(6)に代用するための手 段(5b)を更に含む請求の範囲第9項に記載のアクセス制御システム。 11.前記手段のうちの少なくとも1つはオブジェクト指向態様でソフトウエア においてインプリメントされる請求の範囲第9項及び第10項のいずれかに記載 のアクセス制御システム。 12.請求の範囲第1項乃至第8項のいずれかに記載の方法及び(又は)請求の 範囲第9項乃至第11項のいずれかに記載のアクセス制御システムがインプリメ ントされるデータ処理ネットワーク。
JP53332398A 1997-01-17 1997-01-17 分散コンピュータ・システムにおいて資源を保護する方法 Expired - Fee Related JP3381927B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB1997/000025 WO1998032073A1 (en) 1997-01-17 1997-01-17 Protecting resources in a distributed computer system

Publications (2)

Publication Number Publication Date
JP2000508104A true JP2000508104A (ja) 2000-06-27
JP3381927B2 JP3381927B2 (ja) 2003-03-04

Family

ID=11004521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53332398A Expired - Fee Related JP3381927B2 (ja) 1997-01-17 1997-01-17 分散コンピュータ・システムにおいて資源を保護する方法

Country Status (6)

Country Link
US (1) US6658573B1 (ja)
EP (1) EP0953172B1 (ja)
JP (1) JP3381927B2 (ja)
KR (1) KR100373526B1 (ja)
DE (1) DE69706440T2 (ja)
WO (1) WO1998032073A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002092221A (ja) * 2000-08-18 2002-03-29 Hewlett Packard Co <Hp> コンピューティングプラットフォームにおけるサービスの実行
US8726085B2 (en) 2011-02-14 2014-05-13 International Business Machines Corporation Anomaly detection to implement security protection of a control system
US9075410B2 (en) 2011-02-15 2015-07-07 International Business Machines Corporation Abnormality detection for isolating a control system
US10678911B2 (en) 2011-02-04 2020-06-09 International Business Machines Corporation Increasing availability of an industrial control system

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760746B1 (en) 1999-09-01 2004-07-06 Eric Schneider Method, product, and apparatus for processing a data request
US6633984B2 (en) * 1999-01-22 2003-10-14 Sun Microsystems, Inc. Techniques for permitting access across a context barrier on a small footprint device using an entry point object
US9141717B2 (en) 1999-03-22 2015-09-22 Esdr Network Solutions Llc Methods, systems, products, and devices for processing DNS friendly identifiers
US6338082B1 (en) 1999-03-22 2002-01-08 Eric Schneider Method, product, and apparatus for requesting a network resource
US7188138B1 (en) * 1999-03-22 2007-03-06 Eric Schneider Method, product, and apparatus for resource identifier registration and aftermarket services
USRE43690E1 (en) 1999-03-22 2012-09-25 Esdr Network Solutions Llc Search engine request method, product, and apparatus
USRE44207E1 (en) 1999-09-01 2013-05-07 Esdr Network Solutions Llc Network resource access method, product, and apparatus
DE60017438T2 (de) * 1999-09-03 2005-12-22 General Instrument Corporation System zur betriebsmittelzugriffsteuerung
EP1113361A1 (en) * 2000-01-03 2001-07-04 Wimba.Com S.A. Process of communication between an applet and a local agent using a socket communication channel
US7096466B2 (en) * 2001-03-26 2006-08-22 Sun Microsystems, Inc. Loading attribute for partial loading of class files into virtual machines
US7237257B1 (en) * 2001-04-11 2007-06-26 Aol Llc Leveraging a persistent connection to access a secured service
US7117489B2 (en) * 2001-06-20 2006-10-03 Sun Microsystems, Inc. Optional attribute generator for customized Java programming environments
US6964033B2 (en) * 2001-06-20 2005-11-08 Sun Microsystems, Inc. Object band customization of Java runtime environments
US7155728B1 (en) * 2001-06-28 2006-12-26 Microsoft Corporation Remoting features
US20030018909A1 (en) * 2001-07-17 2003-01-23 International Business Machines Corporation Method and apparatus for enforcing security policies in Java applications
GB0212314D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Secure mobile wireless device
WO2004001540A2 (en) * 2002-06-21 2003-12-31 Probix, Inc. Method and system for protecting digital objects distributed over a network using an electronic mail interface
US7453448B2 (en) * 2002-09-10 2008-11-18 Research In Motion Limited User interface and method of adapting a sensor signal to actuate multiple dimensions
CA2402717C (en) * 2002-09-10 2013-04-09 Research In Motion Limited User interface and method of adapting a sensor signal to actuate multiple dimensions
FR2846770B1 (fr) * 2002-11-04 2005-01-28 Oberthur Card Syst Sa Carte a microcircuit comportant des moyens de publication de ses objets informatiques
US20050005105A1 (en) * 2003-06-24 2005-01-06 Brown Larry Cecil Remote access control feature for limiting access to configuration file components
FR2864658B1 (fr) * 2003-12-30 2006-02-24 Trusted Logic Controle d'acces aux donnees par verification dynamique des references licites
US7640573B2 (en) 2004-02-16 2009-12-29 Microsoft Corporation Generic security claim processing model
US7716728B2 (en) * 2004-02-16 2010-05-11 Microsoft Corproation Security scopes and profiles
US7873831B2 (en) * 2004-02-26 2011-01-18 Microsoft Corporation Digests to identify elements in a signature process
US7950000B2 (en) * 2004-03-17 2011-05-24 Microsoft Corporation Architecture that restricts permissions granted to a build process
US8607299B2 (en) * 2004-04-27 2013-12-10 Microsoft Corporation Method and system for enforcing a security policy via a security virtual machine
EP1743465B1 (en) * 2004-05-04 2017-11-15 Telecom Italia S.p.A. Method and system for access control in distributed object-oriented systems
US7484247B2 (en) 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
US7793350B2 (en) * 2004-10-28 2010-09-07 International Business Machines Corporation Apparatus, system, and method for simulated access to restricted computing resources
GB2422453A (en) * 2005-01-22 2006-07-26 Hewlett Packard Development Co Dynamically allocating resources according to a privacy policy
US7574700B2 (en) * 2005-03-31 2009-08-11 Sun Microsystems, Inc. Supporting dynamically-typed languages in typed assembly languages
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8209685B1 (en) 2007-11-26 2012-06-26 Adobe Systems Incorporated Virtual machine device access
US8046778B1 (en) 2007-11-26 2011-10-25 Adobe Systems Incorporated Managing device application program interfaces
US8505029B1 (en) * 2007-11-26 2013-08-06 Adobe Systems Incorporated Virtual machine communication
US9166797B2 (en) * 2008-10-24 2015-10-20 Microsoft Technology Licensing, Llc Secured compartment for transactions
CN102073597B (zh) * 2009-11-19 2016-04-13 北京明朝万达科技股份有限公司 一种基于用户身份认证的操作系统盘全盘加密方法
US8898459B2 (en) 2011-08-31 2014-11-25 At&T Intellectual Property I, L.P. Policy configuration for mobile device applications
US8918841B2 (en) * 2011-08-31 2014-12-23 At&T Intellectual Property I, L.P. Hardware interface access control for mobile applications
US10146515B1 (en) * 2015-03-10 2018-12-04 Twitter, Inc. Live code updates
US10956136B2 (en) * 2018-10-16 2021-03-23 Ebay, Inc. User interface resource file optimization
KR102239902B1 (ko) * 2019-06-03 2021-04-13 김덕우 보조기억장치에서의 파일시스템 보호장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04115346A (ja) * 1990-09-06 1992-04-16 Nec Corp アクセス権制御方式
JPH0778082A (ja) * 1993-07-28 1995-03-20 Sun Microsyst Inc オブジェクト指向システムにおける命名セキュリティ方法および装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717911A (en) * 1995-01-23 1998-02-10 Tandem Computers, Inc. Relational database system and method with high availability compliation of SQL programs
US5857102A (en) * 1995-03-14 1999-01-05 Sun Microsystems, Inc. System and method for determining and manipulating configuration information of servers in a distributed object environment
GB2301912A (en) * 1995-06-09 1996-12-18 Ibm Security for computer system resources
US5745683A (en) * 1995-07-05 1998-04-28 Sun Microsystems, Inc. System and method for allowing disparate naming service providers to dynamically join a naming federation
JP3738787B2 (ja) * 1995-10-19 2006-01-25 富士ゼロックス株式会社 資源管理装置及び資源管理方法
US5944793A (en) * 1996-11-21 1999-08-31 International Business Machines Corporation Computerized resource name resolution mechanism
US6145083A (en) * 1998-04-23 2000-11-07 Siemens Information And Communication Networks, Inc. Methods and system for providing data and telephony security
US6205466B1 (en) * 1998-07-17 2001-03-20 Hewlett-Packard Company Infrastructure for an open digital services marketplace

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04115346A (ja) * 1990-09-06 1992-04-16 Nec Corp アクセス権制御方式
JPH0778082A (ja) * 1993-07-28 1995-03-20 Sun Microsyst Inc オブジェクト指向システムにおける命名セキュリティ方法および装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002092221A (ja) * 2000-08-18 2002-03-29 Hewlett Packard Co <Hp> コンピューティングプラットフォームにおけるサービスの実行
US10678911B2 (en) 2011-02-04 2020-06-09 International Business Machines Corporation Increasing availability of an industrial control system
US8726085B2 (en) 2011-02-14 2014-05-13 International Business Machines Corporation Anomaly detection to implement security protection of a control system
US9064110B2 (en) 2011-02-14 2015-06-23 International Business Machines Corporation Anomaly detection to implement security protection of a control system
US9075410B2 (en) 2011-02-15 2015-07-07 International Business Machines Corporation Abnormality detection for isolating a control system
US9354625B2 (en) 2011-02-15 2016-05-31 International Business Machines Corporation Abnormality detection for isolating a control system

Also Published As

Publication number Publication date
KR20000069948A (ko) 2000-11-25
EP0953172B1 (en) 2001-08-29
DE69706440D1 (de) 2001-10-04
US6658573B1 (en) 2003-12-02
JP3381927B2 (ja) 2003-03-04
EP0953172A1 (en) 1999-11-03
DE69706440T2 (de) 2002-05-16
WO1998032073A1 (en) 1998-07-23
KR100373526B1 (ko) 2003-02-25

Similar Documents

Publication Publication Date Title
JP3381927B2 (ja) 分散コンピュータ・システムにおいて資源を保護する方法
Wallach et al. Extensible security architectures for Java
US6138238A (en) Stack-based access control using code and executor identifiers
US6192476B1 (en) Controlling access to a resource
US6813640B1 (en) System and method for controlling the editing by user action of digital objects created in a document server application
US7475431B2 (en) Using security levels to improve permission checking performance and manageability
US7690023B2 (en) Software safety execution system
US6606711B2 (en) Object security boundaries
US20020065776A1 (en) Method and process for virtualizing file system interfaces
US20020092003A1 (en) Method and process for the rewriting of binaries to intercept system calls in a secure execution environment
US8387111B2 (en) Type independent permission based access control
US20030084325A1 (en) Method and apparatus for implementing permission based access control through permission type inheritance
US20020066021A1 (en) Method and process for securing an application program to execute in a remote environment
Jaeger et al. Support for the file system security requirements of computational e-mail systems
US20020065945A1 (en) System and method for communicating and controlling the behavior of an application executing on a computer
Grimm et al. Providing policy-neutral and transparent access control in extensible systems
US20020065876A1 (en) Method and process for the virtualization of system databases and stored information
EP1222537B1 (en) Resource access control system
US20020065869A1 (en) Method and process for virtualizing user interfaces
Welch et al. Using reflection as a mechanism for enforcing security policies in mobile code
Herzog et al. Using the Java sandbox for resource control
Halfmann et al. Embedding security policies into a distributed computing environment
Golm et al. A Java operating system as the foundation of a secure network operating system
Malkhi et al. The Design and Implementation of a Java Playground
Niinimaki et al. Java applets and security

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees