JP2001216043A - サービスの実装に課する制約を決定するための機構 - Google Patents

サービスの実装に課する制約を決定するための機構

Info

Publication number
JP2001216043A
JP2001216043A JP2000354265A JP2000354265A JP2001216043A JP 2001216043 A JP2001216043 A JP 2001216043A JP 2000354265 A JP2000354265 A JP 2000354265A JP 2000354265 A JP2000354265 A JP 2000354265A JP 2001216043 A JP2001216043 A JP 2001216043A
Authority
JP
Japan
Prior art keywords
permission
exemption
implementation
restrictions
processors
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
JP2000354265A
Other languages
English (en)
Inventor
Sharon S Liu
シャロン・エス・リウ
Jan Luehe
ジャン・ルーヘ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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/483,246 external-priority patent/US6792537B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2001216043A publication Critical patent/JP2001216043A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or 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/6236Protecting 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 between heterogeneous systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 (修正有) 【解決手段】アプリケーションが特定サービスのための
実装を求めるとき、アプリケーションはフレームワーク
に要求を出す。フレームワークは、この要求を受け取
り、これに対応して、制約が存在する場合は、どの制約
が要求された実装に課す必要のあるものかを決定する。
この制約は、実装を要求しているアプリケーションに与
えられた許可があるか否かを判断することにより決定さ
れ、この許可がある場合、前記実装に課する制約のセッ
トを導くためにこの許可を処理する。この許可は、導か
れる制約のセットが最も小さい制約度合いとなるよう処
理される。 【効果】要求された実装の動的な構築により、フレーム
ワークは、必要な制約がアプリケーションに提供される
サービスに課されることを確実なものとする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムに関し、特に、アプリケーションにより要求された
サービスの実装に課する制約を決定するための機構に関
する。
【0002】
【従来の技術】長年、米国商務省は、データ暗号化アル
ゴリズムを含むコンピュータプログラムまたはアプリケ
ーションの輸出を規制し、場合によっては禁止してき
た。現在原則として、一定ビット数以上の暗号鍵を用い
る暗号化アルゴリズムを使用しているコンピュータプロ
グラムは輸出できない(指定可能な鍵の長さはアルゴリ
ズム特有)。この規則には例外もある。例外の1つは、
免除機構が採用されている場合で、鍵の長さ、すなわち
プログラムの暗号強度を、場合によっては増加できる。
免除機構の例には、キー・エスクロー(key escrow)、キ
ー・リカバリー(key recovery)およびキー・ウィークニ
ング(key weakening)がある。また、プログラムの種類
によっては鍵の長さを大きくできる。たとえば、現在の
規制は、医療機関および金融機関向けのアプリケーショ
ンが鍵の長さを大きくして、アプリケーションの安全性
を高める(高度の機密データの保護に使用する)ことを
許容している。他のアプリケーションよりも許容範囲の
大きい恵まれたアプリケーションがある一方で、暗号化
アプリケーション全てに輸出規制が必要になる。
【0003】
【発明が解決しようとする課題】これらの規制は、暗号
化アルゴリズムを直接使用しているプログラムに対して
適用されるだけではなく、暗号化アルゴリズムを直接使
用しているプログラムに対してインターフェイスを持っ
ているプログラムに対しても適用される。プログラムに
は、いろいろなプログラム間の相互作用を円滑に行うた
めのインフラを提供する「フレームワーク」プログラム
が含まれる。フレームワーク自体はどのような暗号化ア
ルゴリズムも実装しないが、暗号化アルゴリズムを実装
している1つまたは複数のプログラムが、フレームワー
クに対してインターフェイスし、又はフレームワークに
「プラグイン」することを許容できる。このようなフレ
ームワークの例の1つがカルフォルニア、パロアルトの
サンマイクロシステムズ社製のJava PlatformのJava Cr
yptography Extensionである。フレームワークが暗号機
構をフレームワークに「プラグイン」することを許容す
る場合には、フレームワーク自体に輸出規制が必要にな
る。このことは、輸出ができるようにするには、フレー
ムワークにブラグインされている暗号実装にかかわら
ず、全ての輸出規制が守られていることをフレームワー
クが保証する必要があることを意味している。この保証
を行うためには、フレームワークがいずれかの機構によ
って暗号実装を制約する必要がある。
【0004】
【課題を解決するための手段】本発明に従えば、サービ
スに制約を課すカスタム化された実装を動的に構築する
機構が提供される。本発明の目的のために、サービスは
広義に定義され、暗号化/復号化機能などを含む(しか
し、これに限定されない)アプリケーションによって要
求又は該アプリケーションに対して提供される一切の機
能を包含する。本発明の一実施形態において、発明は、
アプリケーション、特定サービスの一般的な実装および
フレームワークを備えるシステム内で実現されている。
【0005】フレームワークは、アプリケーションから
特定サービスの実装、たとえば特定暗号化アルゴリズム
の実装の要求を受け取る。これに対応して、フレームワ
ークは、制約が存在する場合は、要求された実装に課す
必要のある制約を決定する。一実施形態において、フレ
ームワークは、前記アプリケーションに与えられた許可
があるか否かを判断することにより、この制約を決定
し、もしこの許可がある場合、前記実装に課する制約の
セットを導くためにこの許可を処理する。一実施形態に
おいて、この許可は、導かれる制約のセットが最も小さ
い制約度合いとなるよう処理される。この制約が決定さ
れると、フレームワークは、要求された実装を動的に構
築する。一実施形態において、要求された実装は、それ
が前記サービスの一般的な実装、前記制約、及び前記一
般的な実装に制約を課する施行ロジックを組み込むよう
に構築される。要求された実装は、前記アプリケーショ
ンを対象に構築されるので、そのアプリケーション用に
カスタマイズされたものとなる。従って、この実装は、
カスタム化された実装と呼ばれる。
【0006】カスタム化された実装が動的に構築された
後、フレームワークは、カスタム化された実装をアプリ
ケーションに提供する。その後、アプリケーションはサ
ービスのためにカスタム化された実装を直接呼び出す。
カスタム化された実装には、制約とそれを課するための
施行ロジックが組み込まれているので、アプリケーショ
ンは更にフレームワークと相互に作用する必要がない。
カスタム化された実装自体がサービスを提供し、確実に
制約が加えられることになる。このようにカスタム化さ
れた実装の動的な構築によって、フレームワークが、ア
プリケーションに対して提供されるサービスに必要な制
約を加えることができる。
【0007】
【発明の実施の形態】図1に、本発明の実施形態の1つ
が実現されているシステム100のブロック図を示す。
このシステム100には、1または複数のアプリケーシ
ョン104、1または複数の一般的な実装106、指定
された制限のセット108および各種のコンポーネント
間の相互作用を円滑に行うためのフレームワーク102
が含まれる。アプリケーション104が、サービスの実
装をフレームワーク102に要求し、受け取る。ここ
で、アプリケーション104は、各種のアプリケーショ
ン又はプログラムでよく、Javaアプレット、Jav
aアプリケーションおよびネイティブにコンパイルされ
たアプリケーション(これらに限定されない)などを含
む。本発明の目的のために、「サービス」という用語は
広義に定義され、暗号化/復号化機能などを含む(しか
し、これに限定されない)アプリケーションによって要
求又は該アプリケーションに対して提供される一切の機
能を包含する。
【0008】アプリケーション104は、実装をフレー
ムワーク102に要求する場合、それが望む実装のため
のサービスの種類を指定する。たとえば、アプリケーシ
ョン104は「Blowfish」暗号化アルゴリズムの実装を
要求できる。これに対応して、フレームワーク102
は、要求を出しているアプリケーション104用にカス
タム化された、要求サービスの実装をアプリケーション
104に提供する。フレームワーク102によって提供
されるカスタム化された実装には、フレームワークが提
供するサービスの制約が含まれる。後述するように、こ
れらの制約は、指定された制限108のセット、及びも
しあれば、要求を出しているアプリケーション104に
認められた許可110に基づいて決定される。
【0009】一般的な実装106は、フレームワーク1
02に「プラグイン」されるか、インターフェイスされ
るサービスの実装を表している。一般的な実装106の
各々は、特定種類のサービスを実現する。たとえば、1
つの一般的な実装が「Blowfish」暗号化アルゴリズムを
実装し、同時に、もう1つの実装がDES暗号化アルゴ
リズムを実装する。一般的な実装106の各々は、制約
されない。すなわち、制限108、または許可110が
存在しても、一般的な実装106自体は制約によって妨
げられない。これによって、一般的な実装106が暗号
化アルゴリズムの実装の場合、暗号化アルゴリズムを完
全な強度に設定できる。次に説明するように、適当な制
約がアプリケーション104に提供されるサービスに加
えられることを保証するのはフレームワーク102であ
って、一般的な実装106ではない。
【0010】システム100において、フレームワーク
102は、システム100の動作全体を調整するコンポ
ーネントである。フレームワーク102の一般的な動作
を示す流れ図を、図2に示す。図2に示しているよう
に、フレームワーク102は、アプリケーション104
から特定種類のサービスの実装(たとえば、Blowfish暗
号化アルゴリズムの実装)の要求を受け取ることによっ
て動作する(202)。これに対応して、制約が存在す
る場合に、フレームワーク102は要求された実装に必
要な制約を判断する(204)。本発明の一実施形態に
おいて、フレームワーク102は、指定された制限10
8を、もしあれば、要求を出しているアプリケーション
104に認められた許可110と調整することによって
制約を判断する。そして、本発明の一実施形態におい
て、フレームワーク102は可能な限り、最低限の制約
を加えようとする。言い換えると、フレームワーク10
2は、許可110と制限108を考慮して可能な限り寛
大であるように試みる。
【0011】制約が決まると、フレームワーク102
は、要求された実装を動的に構築する(206)。本発
明の一実施形態において、要求された実装は、要求され
たサービスの種類(たとえば、Blowfish暗号化アルゴリ
ズムを実現する一般的な実装106)を実装する、関連
する一般的な実装106を見つけることによって構成さ
れる。これが見つかると、この関連する一般的な実装1
06は、前で決定された制約と共に、要求された実装に
組み込まれる。また、施行ロジックのセットもこの要求
された実装に組み込まれる。この施行ロジックは、この
制約が、関連する一般的な実装106に課されることを
保証する。従って、関連する一般的な実装106自体に
は制約が付いていないにもかかわらず、施行ロジック
が、関連する一般的な実装106に適用される適当な制
約となる。関連する一般的な実装、ここに組み込まれた
制約、および施行ロジックを使用して、要求された実装
の構築が完了する。要求された実装が、要求しているア
プリケーション104用に特別に構築、すなわち、要求
しているアプリケーション特有の制約を組み込むので、
要求された実装は、要求しているアプリケーション10
4用にカスタム化された実装として見ることができる。
【0012】カスタム化された実装が構築されると、要
求しているアプリケーション104にこの実装が渡され
る(208)。その後、アプリケーション104がカス
タム化された実装にサービスを直接要求する。カスタム
化された実装に、制約と制約を課すための施行ロジック
が組み込まれているので、アプリケーション104が更
にフレームワーク102と相互に作用する必要がなくな
る。カスタム化された実装自体がサービスを提供し、確
実に制約がサービスに加えられるようになる。この方法
のようにカスタム化された実装を動的に構築することに
よって、フレームワーク102が、アプリケーション1
04に提供されるサービスに必要な制約を確実に加え
る。
【0013】前述の説明は、本発明の一般的な概要を提
供している。図3で、本発明の一実施形態について詳細
に説明する。以下の説明で、本発明は、要求され、提供
されるサービスが暗号サービスであるオブジェクト指向
の実装に関連して説明されている。これが説明の目的の
ためだけに使用されていることに注意されたい。本発明
は説明の範囲に限定されない。適切に言えば、本発明
は、あらゆる種類のプログラミング環境と、制約が加え
られる必要のあるあらゆる種類のサービスに対して、一
般的に適用される。
【0014】図3及び図4に、フレームワーク102の
詳細を示す。図に示されているように、フレームワーク
102は、アプリケーション・プログラミング・インタ
ーフェイス(API)302、サービスプロバイダ・イ
ンターフェイス(SPI)304およびコア320を備
える。API302は、アプリケーション104が直接
呼び出すことができるリソースを表している。本発明の
一実施形態において、API302はCipherオブジェク
トクラス306とExemptionMechanismオブジェクトクラ
ス308を備える。他のメソッドに混じって、Cipherオ
ブジェクトクラス306はGetInstanceメソッドとInit
メソッドを備える。GetInstanceメソッドは、アプリケ
ーションがサービスの実装を要求する場合に、アプリケ
ーション104によって呼び出されるメソッドである。
このメソッド呼び出しに対応して、Cipherオブジェクト
クラス306のインスタンスが構築され、呼び出してい
るアプリケーション104に返される。返されたCipher
インスタンスは、呼び出しているアプリケーション用に
カスタム化され、制約と、Cipherインスタンスが提供で
きるサービスにこの制約を加えるための施行ロジックを
含んでいる。Cipherインスタンスが返されると、Cipher
インスタンスのメソッドがアプリケーション104によ
って直接呼び出される。呼び出しているアプリケーショ
ン104によって呼び出される必要のあるメソッドの1
つがInitメソッドである。このメソッドは、Cipherイン
スタンスを初期化し、Cipherインスタンスが動作できる
ようにする。また、InitメソッドはCipherインスタンス
に制約を加えるための施行ロジックとして動作する。Ge
tInstanceメソッドとInitメソッドについては詳細に後
述する。
【0015】すでに説明したように、1または複数の免
除機構(キー・エスクロー、キー・リカバリーまたはキ
ー・ウィークニング)が実装されている場合、場合によ
っては、暗号強度を強化した(たとえば、鍵長を長くし
た)暗号化アルゴリズムを実現できる。免除機構が実装
されている場合に、ExemptionMechanismオブジェクトク
ラス308が動作する。このクラスは、呼び出し可能な
複数のメソッドを提供する。これらのメソッドは、特定
の免除機構の機能を呼び出す(たとえば、免除機構がキ
ー・リカバリーである場合、キー・リカバリーブロック
を生成する)ためと、必要な動作が実行されたかどうか
(たとえば、キー・リカバリーブロックが生成されたか
どうか)を判断するために呼び出される。API302
のオブジェクトクラス306、308については、後で
詳細に説明する。
【0016】SPI304は、サービスプロバイダに必
要なインターフェイスを提供して、サービスプロバイダ
のサービス実装をフレームワーク102にプラグインす
る。本発明の一実施形態において、SPI304は、各
API302オブジェクトクラスに対応するSPI30
4オブジェクトクラスを備える。すなわち、API30
2のCipherオブジェクトクラス306に対して対応する
SPI304のCipherSpiオブジェクトクラス310が
存在する。そして、API302のExemptionMechanism
オブジェクトクラス308に対して対応するSPI30
4のExemptionMechanismSpiオブジェクトクラス312
が存在する。この1対1の対応は、APIクラス30
6、308のメソッドをSPIクラス310、312の
メソッドにマッピングすることを容易にする。この重要
性は詳細に後述される。SPIオブジェクトクラス31
0と312は抽象オブジェクトクラスであり、クラスに
よって実装されなければならないメソッドを示している
と同時に、オブジェクトクラス自体がこれらのメソッド
の実装を何も提供しないことを意味している。実装の提
供は、サービスプロバイダが担当する。サービスの実装
106を提供するには、サービスプロバイダがSPI3
04のオブジェクトクラスの1つをサブクラス化し、そ
のサブクラスにSPIクラスの定義されたメソッドの全
てのために実装を用意する。このようにして、図3に示
されている一般的な実装106は、SPI304のオブ
ジェクトクラス310と312のサブクラスになる。一
般的な実装106の各々は、異なった種類のサービスも
実装でき(たとえば、Blowfish暗号化アルゴリズムを実
装し、同時に、DES暗号化アルゴリズムを実装し、そ
して同時に、キー・リカバリー免除機構を実装でき
る)、一般的な実装106の各々が何の制約も受けずに
実現できる。これよって、一般的な実装106を最大限
の強度の実装(たとえば、暗号鍵の長さを無制限)にす
ることもできる。フレームワーク102のコア320
は、JCESecurityオブジェクトクラス314とJCESecuri
tyManagerオブジェクトクラス316を備える。本発明
の一実施形態において、これらのオブジェクトクラス3
14と316はパッケージプライベートであり、アプリ
ケーション104が直接アクセスできない。図3に示さ
れているように、JCESecurityクラスはGetImplメソッド
を備え、JCESecurityManagerクラスはGetCryptoPermiss
ionメソッドを備える。これらのメソッドは、Cipherク
ラス306のGetInstanceメソッドの呼び出しの結果と
して呼び出され、協働して、カスタム化された実装の動
的な構築に必要な多数の作業を行う。これらの方法によ
って実行される機能は、全システムの内容が分かれば、
よく理解できる。従って、次に、発明の全てを円滑に理
解するために、図5及び図6の流れ図でシステムの全て
の動作を説明する。
【0017】アプリケーション104は、それが特定の
暗号サービスの実装を必要としている場合に、Cipherオ
ブジェクトクラス306のGetInstanceメソッドを呼び
出すことよって実装の要求を出す。この呼び出しでは、
アプリケーションが実装を要求しているサービスの種類
を指定する。本発明の一実施形態において、サービスの
種類は、たとえばBlowfishのような暗号化アルゴリズム
名になる。Cipherクラス306はこの要求を受け取り
(404)、GetInstanceメソッドの機能を呼び出す。
これに対応して、GetInstanceメソッドは、JCESecurity
クラス314のGetImplメソッドを呼び出す。GetImplメ
ソッドは、複数の重要な機能を実行する。このメソッド
は、まず、要求された種類のサービスを実装している一
般的な実装106が使用可能かどうか判断する(40
8)。たとえば、一般的な実装106のいずれかがBlow
fish暗号化アルゴリズムを実装しているかどうか判断す
る。適当な一般的な実装106が見つからなかった場
合、GetInstanceメソッドにエラーメッセージを返し
(412)、次に、呼び出しているアプリケーション1
04にエラーメッセージを返す。逆に、要求されたサー
ビスを実装している一般的な実装106が見つかった場
合、GetImplメソッドは、見つかった一般的な実装が認
証されているかどうか続けて判断する(416)。この
認証を行う方法については詳細に後述するが、ここで
は、認証が、デジタル署名検証機構を使用して行われ
る、とだけ説明しておく。
【0018】GetImplメソッドがその一般的な実装が認
証されていないと判断した場合、要求されているサービ
スが行える一般的な実装106が他に存在しないかどう
か判断する(420)。他に一般的な実装106が存在
しない場合、GetImplメソッドはGetInstanceメソッドに
エラーメッセージを返し(424)、次に、呼び出して
いるアプリケーション104にエラーメッセージを返
す。要求されているサービスが行える一般的な実装10
6が他に存在する場合、GetImplメソッドは、工程41
6に戻って、新しい一般的な実装が認証されているかど
うか判断する。この処理が、認証された実装が見つかる
か、要求されたサービスが行える認証された一般的な実
装106が存在しないと判断されるまで続く。
【0019】要求されたサービスの認証された一般的な
実装106(この実装は関連する実装と呼ばれることに
なる)が見つかった場合、GetImplメソッドは関連する
実装をインスタンス化して(428)実装のインスタン
ス(すなわちCipherSPIインスタンス)を生成する。
その後、GetImplメソッドが何らかの制限を実装のイン
スタンスに加える必要があるかどうか判断する(43
2)。本発明の一実施形態において、この判断は、フレ
ームワーク102が国内的な動作または世界的な動作の
ために設定されているかどうか判断することによって行
われる。フレームワークが国内での使用に限られるよう
に設定されている場合、輸出規制が適用されないので、
制約を加える必要はない。一方、フレームワーク102
が世界的な動作を行うように設定されている場合、制限
の可能性が考慮される。
【0020】実装のインスタンスに加えられる制約を判
断するために(436)、GetImplメソッドはJCESecuri
tyManagerクラス316のGetCryptoPermissionメソッド
を呼び出す。GetCryptoPermissionメソッドの重要な機
能は、指定された制限108と、もしあれば、呼び出し
ているアプリケーション104に認められた許可110
とを調整し、制約のセットを導くことである。この制約
のセットがGetCryptoPermissionメソッドによってGetIm
plメソッドに返される。そして、本発明の一実施形態に
おいて、この制約のセットには、要求された暗号化アル
ゴリズムの名前、(もし存在するとすれば)課せられる
必要のある免除機構の名前、使用される最大鍵長や暗号
の最大実行繰り返し数(RC5などのアルゴリズムに必
要)などの幾つかの暗号パラメータが含まれる。GetImp
lメソッドは、この制約を受け取ると、免除機構がこの
制約内で指定されているかどうか判断する(440)。
免除機構が制約内で指定されていない場合、GetImplメ
ソッドは、工程448に進む。
【0021】しかし、免除機構が指定されている場合、
GetImplメソッドは指定された免除機構のインスタンス
を続けて生成する。本発明の一実施形態において、これ
は、ExemptionMechanismクラス308のGetInstanceメ
ソッドを呼び出し、免除機構の名前を伝えることによっ
て達成される。この呼び出しに対してExemptionMechani
smクラス308のGetInstanceメソッドは、JCESecurity
クラス314のGetImplメソッドを呼び出す(この呼び
出しは、GetImplメソッドの第2の呼び出しになること
に注意されたい)。これに対応して、GetImplメソッド
は指定された免除機構を実装している有効な一般的な実
装106を検索し、その一般的な実装106をインスタ
ンス化して(444)、ExemptionMechanismSpiインス
タンスを生成する。その後、GetImplメソッドはExempti
onMechanismSpiインスタンスをExemptionMechanismクラ
ス308のGetInstanceメソッドに返す(これは、GetIm
plメソッドの第2の呼び出しからの復帰である)。
【0022】次に、ExemptionMechanismクラス308の
GetInstanceメソッドは、ExemptionMechanismクラス3
08のコンストラクタを呼び出し、GetImplメソッドか
ら戻されたExemptionMechanismSpiインスタンスをコン
ストラクタに渡す。呼び出された場合に、コンストラク
タはExemptionMechanismクラス308をインスタンス化
して、ExemptionMechanismインスタンスを生成する。次
に、コンストラクタは、ExemptionMechanismSpiインス
タンスをExemptionMechanismインスタンス内にカプセル
化する。その際に、コンストラクタは、ExemptionMecha
nismインスタンスのメソッドをExemptionMechanismSpi
インスタンスの対応するメソッドにマッピングする。本
発明の一実施形態において、ExemptionMechanismインス
タンスのInitメソッドがExemptionMechanismSpiインス
タンスのEngineInitメソッドにマッピングされ、GenExe
mptionBlobメソッドがEngineGenExemptionBlobメソッド
にマッピングされる。このマッピングは、ExemptionMec
hanismインスタンスのメソッドへの呼び出しがExemptio
nMechanismSpiインスタンスの正しいメソッドに送られ
るようにする。ExemptionMechanismSpiインスタンスがE
xemptionMechanismインスタンス内にカプセル化される
と、ExemptionMechanismインスタンスのインスタンス化
が完了する。
【0023】その後、GetImplメソッドはCipherクラス
306のGetInstanceメソッドに返り(これは、GetImpl
メソッドの第1の呼び出しからの復帰である)、GetIns
tanceメソッドに、実装のインスタンス、制約のセッ
ト、および(もしあれば)ExemptionMechanismインスタ
ンスを提供する。次に、Cipherクラス306のGetInsta
nceメソッドは、Cipherクラス306のコンストラクタ
を呼び出し、コンストラクタにGetImplメソッドから受
け取った実装のインスタンス、制約のセット、および
(もしあれば)ExemptionMechanismインスタンスを渡
す。これに対応して、コンストラクタは、Cipherクラス
306をインスタンス化(448)して、Cipherインス
タンスを生成する。次に、コンストラクタは、実装のイ
ンスタンス、制約のセット、および(もしあれば)Exem
ptionMechanismインスタンスをCipherインスタンス内に
カプセル化する(452)。つまり、Cipherインスタン
スは「ラッパー」オブジェクトとして動作する。実装の
インスタンスをCipherインスタンスにカプセル化する場
合に、コンストラクタはCipherインスタンスのメソッド
を対応する実装のインスタンスメソッドにマッピングす
る。本発明の一実施形態において、Cipherインスタンス
のInitメソッドは、実装のインスタンスのEngineInitメ
ソッドにマッピングされ、Updateメソッドは、EngineUp
dateメソッドにマッピングされ、DoFinalメソッドは、E
ngineDoFinalメソッドにマッピングされる。このマッピ
ングは、Cipherインスタンスのメソッドへの呼び出しが
正しい実装のインスタンスのメソッドに送られるように
する。これらのメソッドの実装が実装のインスタンスに
よって提供されるので、このようになる。カプセル化処
理が完了すると、コンストラクタは、Cipherクラス30
6のGetInstanceメソッドに戻る。次に、GetInstanceメ
ソッドは呼び出しているアプリケーション104に戻
り、アプリケーション104に新しく構築されたCipher
インスタンスを提供する(456)。その後、呼び出し
ているアプリケーション104は、Cipherインスタンス
のメソッドを直接呼び出すことができる。
【0024】本発明の一実施形態において、呼び出して
いるアプリケーション104がCipherインスタンスを呼
び出す必要のある最初のメソッドの1つが、Initメソッ
ドである。この方法は、Cipherインスタンスの初期化を
行い、通常の動作用にInitメソッドを準備する。このメ
ソッドを呼び出しているときに、呼び出しているアプリ
ケーション104は、初期化パラメータのセットを提供
する。本発明の一実施形態において、これらのパラメー
タには、暗号化に使用される暗号鍵と、暗号の繰り返し
数などのアルゴリズム固有の属性を規定している任意の
他の暗号パラメータ(特定の暗号化アルゴリズムが必要
とする場合)が含まれる。
【0025】Initメソッドが呼び出された場合に、Init
メソッドは、呼び出しているアプリケーション104に
よって渡された初期化パラメータとCipherインスタンス
内にカプセル化された制約を比較する。初期化パラメー
タが制約のレベルまたはそれ以下の場合、Initメソッド
は初期化パラメータを実装のインスタンスのEngineInit
メソッドに渡して、実装のインスタンスが初期化できる
ようにする。実装のインスタンスが初期化された後、Ci
pherインスタンスが動作可能な状態になる。このよう
に、暗号化/復号化の動作を実行するために、Cipherイ
ンスタンスのUpdateメソッドとDoFinalメソッドを、呼
び出しているアプリケーション104よって呼び出すこ
とができる。しかし、Initメソッドが、呼び出している
アプリケーション104によって渡される初期化パラメ
ータがカプセル化された制約のレベルを超えたと判断し
た場合には、Initメソッドが初期化パラメータを実装の
インスタンスのEngineInitメソッドに渡されないように
する。それによって、実装のインスタンス、すなわち、
Cipherインスタンスを初期化しないようにする。Cipher
インスタンスが初期化されない場合、Cipherインスタン
スは正常に動作できなくなる。このように、初期化を行
わないことによって、Initメソッドは、効果的にCipher
インスタンスを動作できないようにする。この方法で、
Initメソッドは、カプセル化された制約が実装のインス
タンスに課せられることを確実にする施行ロジックとし
て働く。
【0026】ExemptionMechanismインスタンスがCipher
インスタンス内にカプセル化される場合に、Cipherクラ
ス306のInitメソッドは、追加の機能を実行する。そ
の機能は、ExemptionMechanismインスタンスがアプリケ
ーション104によって正しく呼び出され、データの暗
号化を行う前に必要な動作を実行することを確実にす
る。たとえば、免除機構がキー・リカバリーの場合に
は、データの暗号化を行う前に、ExemptionMechanismイ
ンスタンスを呼び出して、キー・リカバリーブロックを
生成し、保存する必要がある。必要な動作がExemptionM
echanismインスタンスによって実行されたことを確実に
するために、Initメソッドは、ExemptionMechanismイン
スタンスのIsCryptoAllowedメソッドを呼び出す。本発
明の一実施形態において、ExemptionMechanismインスタ
ンスは、そのGenExemptionBlobメソッドが呼び出された
かどうかについて情報をその中に保持している(Exempt
ionMechanismインスタンスは、必要な免除機構の動作が
実行される元になっている)。この情報は、IsCryptoAl
lowedメソッドを呼び出してアクセスできる。このIsCry
ptoAllowedメソッドが、必要な動作が実行された(すな
わち、GenExemptionBlobメソッドが呼び出された)こと
を示している場合、Initメソッドは実装のインスタン
ス、すなわち、Cipherインスタンスが初期化できるよう
にする。必要な動作が実行されていない場合は、Initメ
ソッドが初期化ができないようにするので、Cipherイン
スタンスは動作できないようになる。従って、Initメソ
ッドは、実装のインスタンスに制約を加えるだけではな
く、免除機構が適用されることも確実にする。
【0027】前述したように、それは、Cipherインスタ
ンスによって提供されるサービスに加えられる制約を判
断するJCESecurityManagerクラス316のGetCryptoPer
missionメソッドである。これらの制約は、指定された
制限108と、もしあれば、呼び出しているアプリケー
ション104に認められた許可110に基づいて決定さ
れる。GetCryptoPermissionメソッドの一実施形態を次
に説明するが、実施形態を詳細に説明する前に、本発明
の全てを円滑に理解するために、制限108と許可11
0について簡単に説明する。
【0028】本発明の一実施形態において、制限108
はデフォルト設定と免除設定の2セットの制限から構成
される。基本的にデフォルト設定は、免除機構が実装さ
れていない場合に暗号化アルゴリズムに加える必要のあ
る初期制限を指定する。そして、免除設定には、免除機
構が実装されている場合に暗号化アルゴリズムに加える
必要のある制限を指定する。一般的に、免除機構が実装
されている場合には、強固な暗号パラメータが使用でき
る。本発明の一実施形態において、両設定の制限は、適
用される法律と規制に基づく。
【0029】制限の各設定(デフォルト設定または免除
設定)は、0または1個以上のエントリから構成され
る。各エントリには、特定の暗号化アルゴリズムと、そ
のアルゴリズムに加えられる幾つかの制限を指定する。
制限に関する各設定のエントリは同じ構造をしている。
本発明の一実施形態において、各エントリは、次の情報
を保存するフィールドまたは情報コンテナから構成され
る。 (1)暗号化アルゴリズム名または識別子 (2)免除機構名または識別子 (3)最大鍵長、および (4)実行される暗号の最大繰り返し数などのその他の
アルゴリズム固有の暗号の制限
【0030】本発明の目的のために、エントリはどのよ
うな望ましい形式も可能である。たとえば、各エントリ
を、その中にカプセル化された必要な情報を持っている
オブジェクトとして実装できるし、各エントリをファイ
ル内のテキストの組み合わせとすることもできる。正し
い情報が提供されている限り、どのような望ましいの形
式も使用できる。
【0031】図7に制限のデフォルト設定と免除設定の
例を示す。デフォルト設定のエントリでは、免除機構の
どれも指定せず、免除設定のエントリでは必ず免除機構
を指定することに注意する。デフォルト設定は免除機構
が実装されていない場合に加えられる制約を指定し、免
除設定は免除機構が実装されている場合に加えられる制
約を指定するので、このようになる。
【0032】制限のデフォルト設定の解釈は簡単であ
る。基本的に、各エントリは、特定の暗号化アルゴリズ
ムについての最大暗号パラメータを表している。従っ
て、図7のようにBlowfishアルゴリズムでは、128ビ
ットの最大鍵長が使用される。同様に、RC5アルゴリ
ズムでは、64ビットの最大鍵長、10回の暗号の最大
繰り返し数が使用される。免除設定の解釈もほぼ同じよ
うに簡単である。基本的に、免除設定の第1エントリ
は、キー・リカバリー免除機構がBlowfishアルゴリズム
と共に実装されている場合に、最大鍵長を増加させて2
56ビットにできることを示している。同様に、第2エ
ントリはキー・エスクロー免除機構がBlowfishアルゴリ
ズムと共に実装されている場合に、最大鍵長を増加させ
て256ビットにできることを示している。免除設定で
は、同じアルゴリズム名(この場合はBlowfish)を複数
のエントリに記述できることに注意されたい。これらの
エントリに指定する免除機構が異なれば、同じアルゴリ
ズム名を記述できる。
【0033】指定される制限108は、Cipherインスタ
ンスに加えられる制約の決定で考慮される因子の一部に
過ぎない。もう1つの因子は、呼び出しているアプリケ
ーション104に認められた許可110がもし存在する
とすれば、それらである。以前に説明したように、たと
えば医療機関と金融機関用のアプリケーションのような
種類のアプリケーションは、他のアプリケーションに比
べて強固な暗号法を使用できる。医療機関と金融機関用
のアプリケーションやその他のアプリケーションで、強
固な暗号法を使用する権限は、アプリケーションに認め
られた許可110に反映される。本発明の一実施形態に
おいて、許可110は複数の形式のうちの1つを取る。
1番目の形式はCryptoAllPermission情報である。アプ
リケーションがCryptoAllPermissionを与えられている
場合、その意味はアプリケーションには可能な全ての許
可が与えられていることになる。言い換えると、アプリ
ケーションは制限されない。これは、認められることの
できる最高の許可を可能にし、従って、極く少数のアプ
リケーションに認められる。
【0034】アプリケーションに認められるこれよりも
低い許可は、特定の暗号アルゴリズムの暗号強度を強化
し、または無制限に実装するための許可である。本発明
の一実施形態において、この種の許可は、特定のアルゴ
リズム名(たとえば、Blowfish)と任意の最大パラメー
タの組み合わせ(たとえば、最大鍵長)を指定する。最
大パラメータの組み合わせが指定された場合、暗号化ア
ルゴリズムは指定される最大パラメータのレベルで実装
され得る。最大パラメータの組み合わせが指定されなか
った場合、暗号化アルゴリズムは任意のレベルで実装さ
れ得る(すなわち、アルゴリズムが制約されない)。こ
のように、許可で128ビットの最大鍵長と共にBlowfi
shが指定されている場合、アプリケーションは128ビ
ットの最大鍵長でBlowfish暗号化アルゴリズムを使用で
きる。許可でBlowfishが指定されているだけの場合、ア
プリケーションは鍵の長さに制限されずにBlowfish暗号
化アルゴリズムを使用できる。これまで、最大パラメー
タについては、最大鍵長だけを説明した。最大パラメー
タは、暗号の最大繰り返し数などの別のパラメータを含
むことができることに注意すべきである。このような別
のパラメータは、RC5などの暗号化アルゴリズムが要
求することもでき、したがって、最大パラメータの中に
含めることもできる。
【0035】更に、アプリケーションに認められる他の
許可は、特定の暗号化アルゴリズム(たとえば、Blowfi
shを使用したキー・リカバリー)に特定の免除機構を実
装するための許可である。前述したように、免除機構を
実装すると、通常、アプリケーションが強固な暗号パラ
メータ(たとえば、長い鍵長)を使用できるようにな
る。このように、免除機構を実装する許可は、非常に暗
号強度を向上させる。許可が実際に制限108の内容に
依存するかしないか、そして、免除機構の実装が使用可
能かどうかが次に説明される。この点で、アプリケーシ
ョンは、複数の許可を認められることも可能であること
に注意しなければならない。たとえば、アプリケーショ
ンが、複数種類の免除機構を実装することもできる。そ
の場合とその他の場合に、1つのアプリケーションが、
複数の許可を認められることができる。
【0036】次に、このような背景情報を元に、図8の
流れ図によって、JCESecurityManagerクラス316のGe
tCryptoPermissionメソッドの動作について説明する。G
etCryptoPermissionメソッドは、それが呼び出された場
合、呼び出しているアプリケーション104によって要
求されている暗号化アルゴリズム名(たとえば、Blowfi
sh)を含むパラメータのセットを受け取る。呼び出しに
対応して、GetCryptoPermissionメソッドは、まず、呼
び出しているアプリケーション104を決定する(60
4)。すなわち、GetCryptoPermissionメソッドは、Get
CryptoPermissionメソッドが呼び出される原因になった
GetInstanceメソッドを呼び出したアプリケーション1
04を決定する。本発明の一実施形態において、GetCry
ptoPermissionメソッドは、この決定をコール・スタッ
クを詳細に検討することによって行う。これは、呼び出
し順序をトレースして、GetCryptoPermissionメソッド
からGetImplメソッドに戻り、次にGetInstanceメソッド
に戻り、次にGetInstanceメソッドを最初に呼び出して
いるアプリケーション104に戻ることにより行う。こ
の方法のように、コール・スタックを詳細に検討するこ
とによって、GetCryptoPermissionメソッドが最初の呼
び出しアプリケーション104を決定できる。
【0037】呼び出しているアプリケーション104が
決定されると、呼び出しているアプリケーション104
が、それに認められた何らかの有効な許可を持っている
かを決定する(608)。本発明の一実施形態におい
て、これは何らかの許可がそもそもアプリケーション1
04に与えられたかどうかまず決定することで行われ
る。本発明の一実施形態において、この決定は、アプリ
ケーション104に関係するファイルを確認し、この中
に何らかの許可が含まれているかどうか確認することに
よって行われる。Javaプログラミング環境では、ア
プリケーションのファイルはJARファイルに含まれ、
この環境では、このJARファイルを許可の確認に使用
する。
【0038】何らかの許可が見つかった場合、検証処理
が実行され、許可が有効であることが保証される。本発
明の一実施形態において、この検証はデジタル署名を使
用して行われる。具体的には、1または複数の許可を含
む任意のアプリケーション104には、デジタル署名さ
れたJARファイルが存在する。このデジタル署名は、
アプリケーション104の出所が信頼されており、アプ
リケーション104の内容が変更されていなかったこと
を確実にしている。このデジタル署名が検証される場
合、JARファイル内に含まれる許可が有効であること
を意味している。このデジタル署名が検証されない場
合、許可は無効である。GetCryptoPermissionメソッド
は、デジタル署名検証機構を使用してこの検証を行う。
本発明の目的のために、適切で効果的なデジタル署名検
証機構も使用できる。
【0039】GetCryptoPermissionメソッドが呼び出し
ているアプリケーション104が有効な許可を持ってい
ないと判断した場合に、GetCryptoPermissionメソッド
は、制限のデフォルト設定の制限に基づいてCipherイン
スタンスに加えられる制約を決定する(612)。具体
的には、GetCryptoPermissionメソッドは、呼び出して
いるアプリケーション104によって要求されている暗
号化アルゴリズムと同じアルゴリズム名のエントリの、
デフォルト設定エントリを検索する。そのエントリが見
つかった後に、制約がそのエントリ内に指定される制限
(たとえば、最大鍵長と他の制限)から導かれる。たと
えば、呼び出しているアプリケーション104がBlowfi
shアルゴリズムの実装を要求している場合に、図7の例
のように、制約は最大鍵長が128ビットのBlowfishと
なるだろう。制約が決まった後、制約がGetCryptoPermi
ssionメソッドによってJCESecurityクラス314のGetI
mplメソッドに返される(616)。
【0040】工程608に戻って、GetCryptoPermissio
nメソッドが呼び出しているアプリケーション104が
1または複数の有効な許可を持っていると判断した場合
に、GetCryptoPermissionメソッドは、これらの許可の
いずれかがCryptoAllPermissionかどうかを決定する
(620)。CryptoAllPermissionの場合、アプリケー
ション104は制限されない。その場合、GetCryptoPer
missionメソッドは、制約無しの指示をGetImplメソッド
に返す(624)。しかし、許可がいずれもCryptoAllP
ermissionではない場合、GetCryptoPermissionメソッド
は工程628に進む。
【0041】工程628まで処理すると、アプリケーシ
ョン104が1または複数の有効な許可を持っており、
これらの許可がいずれもCryptoAllPermissionでないこ
とが分かる。従って、許可は次の2種類のうちのいずれ
かになることを意味する。 (1)加えられるべき免除機構を要求しない種類(すな
わち、特定の暗号化アルゴリズムと随意な最大パラメー
タのセットを指定する種類)、または、(2)加えられ
るべき免除機構を要求する種類(すなわち、特定の暗号
化アルゴリズムと共に免除機構を指定する種類)
【0042】工程628で、GetCryptoPermissionメソ
ッドは、許可のいずれかが、加えられるべき免除機構を
要求しない種類のものであるかどうか決定する。許可の
いずれかがこの種類の場合、それらの許可の各々に対し
て、その許可が適用できるかどうかについて決定する
(632)。許可が適用できるのは、許可に指定された
暗号化アルゴリズムが、アプリケーション104によっ
て要求されている暗号化アルゴリズムと同じ場合であ
る。たとえば、アプリケーション104がBlowfishアル
ゴリズムの実装を要求している場合、許可に指定された
暗号化アルゴリズムがBlowfishアルゴリズムを指定して
いるときに1つの許可が適用になる。本発明の一実施形
態においては、最大1つの許可が適用される。GetCrypt
oPermissionメソッドが許可の1つが適用になることを
決定する場合、GetCryptoPermissionメソッドは、許可
に指定された最大パラメータ(もし存在すれば)に基づ
いてCipherインスタンスに加えられる制約を決定する。
すなわち、最大パラメータのセットが許可に指定された
場合、制約は指定された最大パラメータに基づいて決定
される。最大パラメータの組み合わせが指定されていな
い場合、制約は無制限になり、暗号化アルゴリズムは制
約されない。制約が決定された後、制約がGetCryptoPer
missionメソッドによってJCESecurityクラス314のGe
tImplメソッドに返される(636)。
【0043】工程632に戻って、GetCryptoPermissio
nメソッドが、加えられるべき免除機構を要求しない許
可のいずれもが適用できないことを決定した場合、工程
640に進む。工程640で、GetCryptoPermissionメ
ソッドは、アプリケーション104に与えられた許可の
いずれかが、加えられるべき免除機構を要求する種類で
あるかどうか決定する。このような許可が見つからなか
った場合、GetCryptoPermissionメソッドは制約のデフ
ォルト設定を使用してCipherインスタンスに加える制約
を決定する(644)。制約を決定する方法は、前述の
工程612に関連して説明した方法と同じである。制約
が決まった後、制約がGetCryptoPermissionメソッドに
よってGetImplメソッドに返される(648)。
【0044】一方、アプリケーション104に認められ
た許可の少なくとも1つが、加えられるべき免除機構を
要求する種類であると、GetCryptoPermissionメソッド
が決定した場合には、工程652に進む。工程652
で、GetCryptoPermissionメソッドは、加えられるべき
免除機構を要求する許可のいずれかが適用できるかどう
かを決定する。具体的には、GetCryptoPermissionメソ
ッドは、これらの許可のどれが要求されている暗号化ア
ルゴリズムに適用できるか、適用する許可の各々に対し
て、その特定の暗号化アルゴリズム/免除機構のセット
が使用できるか、および指定された免除機構の実装が使
用可能かどうかを、決定する。これらの機能を実行する
際に、GetCryptoPermissionメソッドは、制限の免除設
定を参照する。これらの動作は、例示によってよく理解
できる。
【0045】要求されている暗号化アルゴリズムがBlow
fishアルゴリズムであり、アプリケーションが、次の2
種類の許可を認められているとする。 (1)Blowfishとキー・ウィークニングおよび(2)Bl
owfishとキー・リカバリー
【0046】さらに図7に示されている制限の免除設定
を仮定する。この例では、許可が共にBlowfishに関連し
ているので、両方の許可が、要求しているアプリケーシ
ョンに適用する。従って、両方の許可は共に処理される
ことになり、第1の許可から処理し始める。第1の許可
は、キー・ウィークニングがBlowfishと共に使用される
ことができるようにする。この許可が使用可能かどうか
を決定するために、GetCryptoPermissionメソッドがこ
の組み合わせを持つエントリの免除設定を検索する。免
除設定にはBlowfishの2つのエントリが存在するが、こ
れらのエントリのどちらも免除機構としてキー・ウィー
クニングを指定していない。従って、制限の免除設定が
使用できるBlowfishとキー・ウィークニングの組み合わ
せが明示されていないないので、この許可を使用または
適用できない。
【0047】この場合、GetCryptoPermissionメソッド
は、Blowfishと共に使用されるキー・リカバリーを許可
する次の許可の処理に進む。この許可は最初と同じ方法
すなわち、免除設定のエントリを検索して処理される。
今回は、Blowfishとキー・リカバリーが指定された組み
合わせを使用できるエントリが見つかる。結果として、
この許可が使用又は適用可能になる。しかし、問い合わ
せはそこで終わらない。GetCryptoPermissionメソッド
は、この許可の使用を認める前に、指定された免除機構
(この例ではキー・リカバリー)の有効な実装が使用可
能かどうか決定する。そして、実装が使用可能でない場
合、この許可を適用しない。この決定を行う際に、GetC
ryptoPermissionメソッドは指定された免除機構を実装
する有効な一般的な実装106(図4)を検索する。こ
の処理の終了(652)までに、GetCryptoPermission
メソッドは認められた許可のいずれかを適用できるかど
うかが分かることになる。
【0048】許可が適用できることをGetCryptoPermiss
ionメソッドが決定する場合に、GetCryptoPermissionメ
ソッドは、制限のデフォルト設定ではなく免除設定を使
用し、Cipherインスタンスに加えられる制約を決定する
(656)。具体的には、GetCryptoPermissionメソッ
ドは、この許可と同じアルゴリズム名と免除機構を持っ
ている免除設定のエントリから制約を導く。対象の例で
このエントリは、免除設定の最初のエントリであり、そ
の制約は最大鍵長が256ビットのキー・リカバリーを
備えたBlowfishである。これらの制約が決まった後、制
約がGetCryptoPermissionメソッドによってJCESecurity
クラス314のGetImplメソッドに返される(66
0)。前述したように、免除設定のエントリは、通常、
デフォルト設定よりも強固な暗号パラメータが使用でき
るようにする。従って、免除設定の制約を導くことで、
GetCryptoPermissionメソッドは、Cipherインスタンス
の暗号強度を向上させる。
【0049】工程652に戻って、いずれの許可も適用
できない場合、GetCryptoPermissionメソッドは制限の
デフォルト設定を使用して、Cipherインスタンスに加え
られる制約を決定する(644)。制約を決定する方法
は、工程612に関連して上記で説明した方法と同じで
ある。従って、アプリケーション104は、アプリケー
ションがまったく許可を与えられていない場合と同じよ
うに取り扱われる。制約が決まった後に、制約がGetCry
ptoPermissionメソッドによってGetImplメソッドに返さ
れる(648)。説明した方法のように、GetCryptoPer
missionメソッドはCipherインスタンスに加えられる制
約を決定する。最初に許可を適用しようとし、次に、い
ずれの許可も適用しない場合に初期制限を使用すること
によって、GetCryptoPermissionメソッドは、Cipherイ
ンスタンスに、与えられる限りの制限で最大の暗号強度
を与えようとする。言い換えると、GetCryptoPermissio
nメソッドは最低レベルの制約を加えようとする。
【0050】前述したように、制限108の全セット
(図1)を含む制限のデフォルト設定と免除設定は、適
用可能な法律と規制に基づいている。本発明の一実施形
態において、それらは少なくとも次の2つの法律と規制
に基づいて導かれる。 (1)米国輸出法、および(2)現地法(フレームワー
ク102が輸入される国または地域の法律)
【0051】これらの法律のセットは、ほとんどの場
合、異なるので、両方の法律のセットと一致する1つの
制限のセットを導くために、調整処理が実行される。本
発明の一実施形態において、この調整はマージ処理を使
用して行われる。具体的には、2つの法律のセットはマ
ージされて制限108の結果セットを生成し、マージ
は、その得られた制限108が2つの法律のセットの最
も制約された制限を含むような方法で実行される。最も
制約された制限を選択することで、マージ処理は得られ
た制限108が両方の法律のセットに従っていることを
保証する。
【0052】図9はマージ処理の概要を表している。図
に示されているように、米国輸出法702は、デフォル
トコンポーネント706と免除コンポーネント708か
ら構成される。同様に、現地法704は、デフォルトコ
ンポーネント710と免除コンポーネント712から構
成される。デフォルトコンポーネント706と710
は、免除機構が実装されていない場合に暗号化アルゴリ
ズムに適用されるデフォルトの制限を指定する。そし
て、免除コンポーネント708と712は、免除機構が
実装されている場合の制限を指定する。本発明の一実施
形態において、デフォルトコンポーネント706、71
0と免除コンポーネント708、712は前に、図7と
関連して説明した制限のデフォルト設定714と免除設
定716と同じ形式をしている。すなわち、各コンポー
ネント706、710、708、712は、0またはそ
れ以上のエントリから構成される。各エントリは、以下
を保存するためのフィールドまたはコンテナを備える。 (1)暗号化アルゴリズム名または識別子 (2)免除機構名または識別子 (3)最大鍵長および (4)他の暗号制限
【0053】得られた制限108を導くには、デフォル
トコンポーネント706と710をエントリごとにマー
ジして、得られる制限108のデフォルト設定714を
生成する。また、免除コンポーネント708と712を
エントリごとにマージして、得られる制限108の免除
設定716を生成する。この制限が導かれた後、得られ
た制限108はJCESecurityManagerクラス316のGetC
ryptoPermissionメソッドによって使用されて、Cipher
インスタンスに加えられる制約を決定する。
【0054】次に、図10及び図11のフローチャート
に沿って、マージ処理の一実施形態を説明する。次の説
明では、政策A、BおよびCを使用して説明する。政策
AとBは、マージの情報源(たとえば、米国輸出法と現
地法)を指す。また、政策Cはマージ結果を指す(たと
えば、得られた制限108)。図9に示したように、デ
フォルトコンポーネント706、710と免除コンポー
ネント708、712は別個のマージ操作を使用して別
々にマージされる。しかし、両方のマージで同じマージ
処理が使用されることに注意されたい。
【0055】さて、図10のように、マージ処理は政策
Aの次のエントリ(この場合は最初のエントリ)の選択
(804)から始まる。選択したエントリと政策Bのエ
ントリとを比較して、対応するエントリが政策Bに存在
するかどうかを決定する(808)。本発明の一実施形
態において、この決定は、選択されたエントリのアルゴ
リズム名および免除機構名と、政策Bのエントリのアル
ゴリズム名および免除機構名とを比較して行われる。政
策Bのエントリに同じ名前のアルゴリズムと免除機構の
組み合わせが存在すると、そのエントリが対応するエン
トリになる。この場合に、2つの対応するエントリの制
限が比較されて、最も制約された制限を決定する(82
0)。
【0056】この方法の例として、政策AとBの両方の
アルゴリズム名がRC5で、免除機構が存在しないエン
トリを考える。また、政策Aのエントリの最大鍵長が6
4ビット、最大繰り返し数が12、政策Bのエントリの
最大鍵長が128ビット、最大繰り返し数が10とす
る。この場合に、最も制約された制限は最大鍵長が64
ビット、最大繰り返し数が10になる。この例に示した
ように制限ごとに最も制約された制限が決定される。
【0057】最も制約された制限が決まった後、新しい
エントリが政策Cに生成される(824)。この新しい
エントリには、2つの対応するエントリと同じアルゴリ
ズム名と免除機構名が存在する。また、この新しいエン
トリには、その制限として、工程820で決定された最
も制約された制限が存在する。新しいエントリが政策C
に生成されると、現在選択しているエントリの処理が終
了する。そして、政策Aにこれ以上エントリが存在する
かどうかの判断がなされる(828)。エントリが存在
する場合には、処理を工程804に戻して、政策Aの次
のエントリを選択し、処理する。エントリが存在しない
場合には、処理を工程832に進める。
【0058】工程808に戻って、政策Aで選択したエ
ントリに対応するエントリが政策Bに存在しないと判断
された場合、政策Bにワイルドカードのエントリが存在
しないかどうかの判断がなされる(812)。このワイ
ルドカードは、政策Bに明示して示されていない全ての
アルゴリズム名/免除機構の組み合わせのための容器と
して動作する。ワイルドカードが政策Bに見つからなか
った場合、選択されたエントリの処理が終了する。政策
Cには、新しいエントリが生成されず、処理は、政策A
の次のエントリを検索するために工程828へ進む。
【0059】一方、政策Bにワイルドカードのエントリ
が存在すると判断された場合、選択されたエントリの制
限とワイルトカードのエントリの制限を比較して、最も
制約された制限を決定する(816)。この決定は、工
程820について前述した説明と同じ方法で行われる。
最も制約された制限が決まった後、新しいエントリが政
策Cに生成される(824)。この新しいエントリに
は、選択したエントリと同じアルゴリズム名と免除機構
名が存在する。また、この新しいエントリには、その制
限として、工程816で決まった最も制約された制限が
存在する。新しいエントリが政策Cに生成されると、現
在選択しているエントリの処理が終了する。そして、更
にエントリが政策Aに存在するかどうかの判断がなされ
る(828)。エントリが存在する場合には、処理を工
程804に戻して、政策Aの次のエントリを選択し、処
理する。この処理は、政策Aの全エントリが処理される
まで続く。
【0060】政策Aの全エントリが処理された後、政策
Aのエントリに対応しない政策Bの全エントリを処理す
る番になる。しかし、これを行う前に、政策Aにワイル
ドカードのエントリが存在するかどうかを判断する(8
32)。政策Aがワイルドカードのエントリを持ってい
ない場合、政策Bの追加のエントリは、それらが政策C
に作成される追加のエントリになることはないので、こ
れ以上処理される必要はない。このようにして、政策A
にワイルドカードのエントリが存在しない場合、政策C
の構築が終了する(836)。
【0061】一方、政策Aにワイルドカードのエントリ
が存在する場合、政策Bの処理は、政策Bの次のエント
リ(この場合は最初のエントリ)の選択から始まる(8
40)。選択したエントリと政策Cのエントリとを比較
して、対応するエントリが政策Cに存在するかどうかを
判断する(844)。本発明の一実施形態において、こ
の決定は、選択されたエントリのアルゴリズム名および
免除機構名、ならびに政策Cのエントリのアルゴリズム
名および免除機構名とを比較することによって行われ
る。対応するエントリが政策Cに見つかった場合、選択
されたエントリは、政策Aのエントリの処理の一部とし
てすでに処理されたことを意味している。この場合に、
選択しているエントリの処理を必要としない。結果とし
て、処理が工程856に進んで政策Bの次のエントリを
検索する。
【0062】一方、選択されたエントリが政策Cのいず
れのエントリにも対応していない場合、選択されたエン
トリの制限と政策Aのワイルトカードのエントリの制限
を比較して最も制約された制限を決定する(848)。
この決定は、工程820について前述した説明と同じ方
法で行われる。最も制約された制限が決定された後、新
しいエントリが政策Cに生成される(852)。この新
しいエントリには、選択されたエントリと同じアルゴリ
ズム名と免除機構名が存在することになる。また、この
新しいエントリには、その制限として工程848で決定
した最も制約された制限が存在することになる。新しい
エントリが政策Cに生成された後に、現在選択されたエ
ントリの処理が終了する。そして、政策Bに更にエント
リが存在するかどうかを決定する(856)。エントリ
が存在する場合、処理を工程840に戻して政策Bの次
のエントリを選択し、処理する。この処理は、政策Bの
全エントリが処理されるまで続く。全エントリが処理さ
れると、政策Cの構築が終了する(860)。
【0063】本発明の一実施形態において、説明された
マージ処理はJCESecurityクラス314のイニシャライ
ザによって実行される。JCESecurityクラス314が呼
び出されるとすぐに、このイニシャライザは呼び出され
る。イニシャライザが呼び出された場合、イニシャライ
ザは、イニシャライザに提供された法律の2つ以上のセ
ットをマージして、制限の全セット108を生成する。
生成されるのはこの制限の全セット108(デフォルト
設定と免除設定を備える)であり、これは、Cipherイン
スタンスに加えられる制約を決定するGetCryptoPermiss
ionメソッドによってその後に使用される。
【0064】前述したように、JCESecurityクラス31
4のGetImplメソッドが、関連する一般的な実装106
のインスタンス化を担当して、実装のインスタンスを生
成する。インスタンス化処理の一部として、GetImplメ
ソッドは認証処理を実行する。本発明の一実施形態にお
いて、この認証処理は、GetImplメソッドが、関連する
一般的な実装106を認証し、関連する一般的な実装1
06がフレームワーク102を認証するという相互認証
の形式になる。本発明の一実施形態において、この相互
認証が生じることを可能にするには、(1)関連する一
般的な実装106のJARファイルがデシタル署名さ
れ、(2)フレームワーク102のJARファイルがデ
シタル署名され、(3)JCESecurityクラス314が、
関連する一般的な実装のJARファイルの署名の検証に
使用できる不明瞭な信頼公開鍵(obfuscated trusted pu
blic keys)のセットを埋め込んであり、(4)関連する
一般的な実装106は、フレームワークのJARファイ
ルの署名の検証に使用する信頼公開鍵のセットを埋め込
んである。
【0065】この前提を与えられて、相互認証が次のよ
うに実行される。まず、JCESecurityクラス314に埋
め込まれた不明瞭な信頼公開鍵を使用して、GetImplメ
ソッドが関連する一般的な実装のJARファイルのデジ
タル署名を検証する。このデジタル署名が検証される場
合に、GetImplメソッドは、関連する一般的な実装10
6をインスタンス化し、この関連する一般的な実装のコ
ンストラクタが呼び出されるようにする。コンストラク
タが呼び出された場合、コンストラクタは、関連する一
般的な実装106に埋め込まれた信頼公開鍵を使用し
て、フレームワークのJARファイルのデジタル署名を
検証する。フレームワークのJARファイルのデジタル
署名が正しいことをコンストラクタが決定する場合、コ
ンストラクタは要求された実装のインスタンスを構築す
ることになる。デジタル署名が正しくない場合、コンス
トラクタはエラーを返す。この説明に示されているよう
に、関連する一般的な実装106とフレームワーク10
2の両方が正しい場合だけ、実装のインスタンスが構築
されることになる。
【0066】この検証処理の実行で、GetImplメソッド
は外部のデジタル署名検証機構を信頼する。すなわち、
本発明の一実施形態において、GetImplメソッドは署名
の検証そのものは実行しない。逆に、GetImplメソッド
は、関連する一般的な実装106のデジタル署名と不明
瞭な信頼公開鍵を外部のデジタル署名検証機構に提示し
て検証を受ける。本発明の一実施形態において、外部の
デジタル署名検証機構はJava Runtimeの署名機構(Signa
ture Mechanism)になる。この署名機構は全Java環
境の一部であり、フレームワーク102の一部ではな
い。従って、フレームワーク102から見ると、この署
名機構は「信頼された」コンポーネントではない。結果
として、署名機構が正しく信頼可能な結果を提供すると
信頼する前に、署名機構自体が適法である(すなわち、
正しい検証機能を実行している)ことを保証するために
検証される。
【0067】それが署名機構を検証できるようにするた
めに、JCESecurityクラス314には少なくとも2つの
デジタル署名をその中に埋め込んである。1つは、不明
瞭な信頼公開鍵を使用して検証できることが分かってお
り、もう1つは不明瞭な信頼公開鍵を使用して検証でき
ないことが分かっている。これらの署名は、署名機構に
予測できない順序で提示されて、その適法性を試験す
る。署名機構を試験する処理の可能な1つの実施形態
が、図12に示されている。
【0068】図12に示されているように、検証処理
は、署名機構に提示するデジタル署名(検証可能また
は、検証不可能なデジタル署名)の決定(904)から
始まる。この決定は、署名機構とって予測不能な方法で
行われ、本発明の一実施形態においては、ランダム処理
を使用して行われる。たとえば、ランダムな数が生成さ
れ、ランダムな数がある範囲(たとえば、0に一致)の
場合、署名の1つが選択されることになる。ランダムな
数が別の範囲(たとえば、1に一致)の場合、別の署名
が選択されることになる。本発明の一実施形態におい
て、工程904の決定は、以前に選択された署名を考慮
しても行われる。以前に選択された署名が全て同じ署名
の場合、工程904によって他の署名が選択される。こ
れは、2つの署名の各々が少なくとも1つ選択され、署
名機構の適法性を完全に試験することを保証する。
【0069】署名の1つが選択された後、選択された署
名と不明瞭な信頼公開鍵が検証のために署名機構に提示
される(908)。次に、署名機構は署名が検証された
か、検証されなかったかのどちらかを示す応答を提供す
る。この応答が受け取られ(912)、正確性が確認さ
れる(916)。具体的には、署名機構に提示された署
名が検証可能であった場合、その応答が、署名が検証さ
れたことを示す指標により確認される。署名機構に提示
された署名が検証不可能であった場合、その応答が、署
名が検証されていないことを示す指標により確認され
る。提示された署名に対して受け取った応答が正しくな
い場合、署名機構が適法でないことが決まる(92
0)。この場合に、検証処理が終了する(924)。
【0070】一方、提示された署名に対して受け取った
応答が正しい場合、検証処理がn回実行されたかどうか
に関しての決定を行う(928)。ここで、nは任意の
望ましい数(たとえば、5)である。n回実行されてい
ない場合、処理を工程904に戻してもう1度署名を署
名機構に提示し、応答を試験する。処理をn回実行した
場合、処理を工程932に進める。工程932まで処理
すると、署名機構が正しい応答をそれぞれずべての提示
された署名に対して提供したことが分かる(応答が正し
くない場合、処理が工程932まで至らずに、工程92
4で終了することになる)。このようにして、署名機構
が適法であることが決まる(932)。この場合に、署
名機構は、関連する一般的な実装106を認証するGetI
mplメソッドによって信頼されてよい。署名機構が適法
であることが検証されると、検証処理が終了する(93
6)。
【0071】上記の処理の成果は、検証可能なデジタル
署名と検証不可能なデジタル署名が署名機構に予測不可
能な順序で提示されることである。この提示順序を予測
不可能にすることにより、検証処理は、不正な署名機構
が、正しい応答の「偽造」をすることは、仮にそれが不
可能でないとしても、極めて困難である。従って、この
検証処理は、外部の署名機構の適法性を試験する効率的
な方法を提供する。
【0072】これまで検証処理は、デジタル署名検証機
構に関連させて説明してきた。しかし、処理はデジタル
署名検証機構に限定されないことに注意しなければなら
ない。逆に、検証処理は一般的に適用されて、任意の信
頼されていない機構の適法性を試験する。分かっている
正しい応答について少なくとも2つの異なった情報設定
が存在する限り、処理は、信頼されていない機構の適法
性を試験するために適用される。検証処理が任意の信頼
されていない機構に一般的に適用される方法を、図13
の流れ図に示す。
【0073】図13に示されているように、検証処理は
少なくとも2つの情報設定のいずれかを信頼されていな
い機構に提示する決定から始まる(1004)。この決
定の工程1004は信頼されていない機構にとって予測
できない方法で行われ、本発明の一実施形態において
は、ランダム処理を使用して行われる。たとえば、ラン
ダムな数が生成され、ランダムな数がある範囲内(たと
えば、0に一致)の場合、最初の情報設定が選択される
ことになる。また、ランダムな数が他の範囲内(たとえ
ば、1に一致)の場合、もう一つの情報設定が選択され
ることになる。本発明の一実施形態において、決定の工
程1004は以前に選択された情報設定も考慮する。以
前に選択された選択が全て同じ情報設定であった場合、
工程1004により他の情報設定が選択される。これ
は、情報設定の各々が少なくとも1度選択され、信頼さ
れていない機構の適法性を完全に試験することを保証し
ている。
【0074】情報設定の1つが選択された後、選択され
た情報設定を信頼されていない機構に提示する(100
8)。次に、信頼されていない機構は、提示された情報
設定に対する応答を提供する。この応答を受け取って
(1012)、正確性の確認を行う(1016)。具体
的には、各情報設定の正しい応答が分かるようになる。
受け取った応答が提示された情報設定の正しい応答でな
い場合、信頼されていない機構が適法でないことが決定
される(1020)。この場合に、検証処理が終了する
(1024)。
【0075】一方、受け取った応答が提示された情報設
定の正しい応答の場合、検証処理がn回実行されたかど
うかに関しての決定を行う(1028)。ここで、nは
任意の望ましい数(たとえば、5)である。n回実行さ
れていない場合、処理を工程1004に戻して、もう1
度情報設定を信頼されていない機構に提示し、応答を試
験する。処理がn回実行されている場合、処理は工程1
032に進む。工程1032まで処理すると、信頼され
ていない機構が正しい応答をそれぞれ全ての提示された
情報設定に対して提供したことが分かる(応答が正しく
ない場合は、処理が工程1032には至らずに工程10
24で終了することになる)。このようにして、信頼さ
れていない機構が適法であることが決定される(103
2)。信頼されていない機構が適法であることが検証さ
れると、検証処理が終了する(1036)。
【0076】上記の処理の成果は、2つの情報設定が信
頼されていない機構に予測不可能な順序で提示されるこ
とである。この提示順序を予測不可能にすることによ
り、検証処理は、不正な信頼されていない機構が、正し
い応答の「偽造」をすることは、仮にそれが不可能でな
いとしても、極めて困難である。従って、この検証処理
は、任意の信頼されていない機構の適法性を試験するた
めの効率的な方法を提供する。
【0077】[ハードウェアの概要]本発明の一実施形態
において、本発明は、1または複数のプロセッサが実行
可能な命令セットとして実装される。本発明は、カルフ
ォルニア州マウンテンビューのSun Microsystems, Inc.
社製のJava(登録商標)プログラミングシステムを
含む、これに限定されないオブジェクト指向プログラミ
ングシステムの一部として実装し得る。図14に、発明
の実施形態が実装されているコンピュータシステム11
00のハードウェアのブロック図を示す。コンピュータ
システム1100は、情報の通信に使用するバス110
2もしくは他の通信機構、ならびにバス1102に接続
されて情報を処理するプロセッサ1104を含む。コン
ピュータシステム1100には、ランダムアクセスメモ
リ(RAM)または他の動的記憶装置などの主記憶装置1
106も組み込まれており、バス1102に接続されて
プロセッサ1104が実行する情報と命令を保存する。
また、主記憶装置1106は、プロセッサ1104が命
令の実行中に使用する一時的変数または他の中間情報を
保存する場合にも使用される。また、コンピュータシス
テム1100は、バス1102に接続されてプロセッサ
1104が使用する静的な情報と命令を保存する読み出
し専用メモリ(ROM)1108または他の静的記憶装置
を含む。磁気ディスクまたは光ディスクなどの記憶装置
1110は、バス1102に接続されて情報と命令の保
存に使用される。
【0078】コンピュータシステム1100は、バス1
102を経由して陰極線管(CRT)などのディスプレ
イ1112に接続され、コンピュータユーザーに情報を
表示する。英数字キーおよび他のキーをはじめとする入
力装置1114はバス1102に接続されて、情報とコ
マンドの選択をプロセッサ1104に送る。キーとは異
なるユーザー入力装置にマウス、トラックボール、また
はカーソル方向キーなどのカーソル制御1116があ
り、方向情報とコマンドの選択をプロセッサ1104に
送り、ディスプレイ1112のカーソルの動きを制御す
る。この入力装置は、通常第1軸(たとえば、x)と第
2軸(たとえば、y)の2軸の2度の自由度を持ってお
り、平面内の位置を指定できる。
【0079】一実施形態に従って、本発明の機能は、主
記憶装置1106に格納された1または複数の命令の1
または複数のシーケンスを実行するプロセッサ1104
に応じてコンピュータシステム1100が提供する。こ
のような命令は、記憶装置1110などのコンピュータ
が読み込み可能な主記憶装置以外の媒体から主記憶装置
1106に読み込まれる。主記憶装置1106に格納さ
れた命令シーケンスを元に、プロセッサ1104がここ
で説明された処理ステップを実行する。別の実施形態と
して、ハードワイヤード回路を、発明を実装するソフト
ウェア命令に代えて使用することもできる。また、ハー
ドワイヤード回路を、発明を実装するソフトウェア命令
と組み合わせて使用することもできる。このように、発
明の実施形態はハードウェア回路とソフトウェアの任意
の組み合わせに限定されない。
【0080】ここで使用されている「コンピュータが読
み取り可能な媒体」という用語は、実行に使用するプロ
セッサ1104に命令を提供することに関係する任意の
媒体を示す。このような媒体は、不揮発性媒体、揮発性
媒体および伝送媒体に限定されないが、それらを含む多
数の形式がある。たとえば、不揮発性媒体には、記憶装
置1110などの光ディスクまたは磁気ディスクがあ
る。揮発性媒体には、主記憶装置1106などの動的記
憶装置がある。伝送媒体には、バス1102を構成する
配線をはじめとする同軸ケーブル、銅線、および光ファ
イバーがある。また、伝送媒体は、音波または電磁波、
たとえば電波、赤外線、および光データ通信中に生成さ
れる波などの形式にもなる。
【0081】たとえば、コンピュータが読み取り可能な
媒体の一般的な形式には、フロッピー(登録商標)ディ
スク、フレキシブルディスク、ハードディスク、磁気テ
ープもしくはその他の磁気媒体、CD−ROM、その他
の光媒体、パンチカード、紙テープ、その他のせん孔式
の物理的媒体、RAM、PROMおよびEPROM、F
LASH−EPROM、その他のメモリーチップもしく
はカートリッジ、後述する搬送波、またはその他のコン
ピュータが読み込める媒体がある。
【0082】コンピュータが読み取り可能な媒体のいろ
いろな種類には、1または複数の命令の1または複数の
シーケンスを、命令を実行するプロセッサ1104に運
ぶことも含まれる。たとえば、命令は最初にリモートコ
ンピュータ上の磁気ディスクに運ばれる。リモートコン
ピュータは、命令をその動的記憶装置にロードし、モデ
ムを使用して電話線上に命令を送信する。コンピュータ
システム1100に対してローカルなモデムは電話線で
データを受信し、赤外線トランスミッタを使用してデー
タを赤外線信号に変換する。赤外線検出器は赤外線信号
のデータを受信し、適当な回路がデータをバス1102
上に配置する。バス1102は、データを主記憶装置1
106に運ぶ。そして、プロセッサ1104が命令を取
り出し実行する。主記憶装置1106が受け取った命令
は、プロセッサ1104が実行する前か後のどちらかに
随意で記憶装置1110に保存される。
【0083】コンピュータシステム1100は、また、
バス1102に接続された通信インターフェイス111
8を含む。通信インターフェイス1118は2方向のデ
ータ通信が可能であり、ローカルネットワーク1122
に接続するためのネットワークリンク1120とも繋が
っている。たとえば、通信インターフェイス1118
は、デジタル総合サービス網(ISDN)カードまたは
データ通信接続を対応する種類の電話線に提供するモデ
ムとすることもできる。また、その他の例として、通信
インターフェイス1118は、データ通信接続を互換LA
Nに提供するローカルエリアネットワーク(LAN)カ
ードとすることもできる。無線リンクも実装できる。こ
のような実装で、通信インターフェイス1118は、い
ろいろな種類の情報であるデジタルデータの流れを運搬
する電気、電磁気または光信号を送受信する。
【0084】ネットワークリンク1120は、通常、1
または複数のネットワークを使用して他のデータ装置に
対するデータ通信を可能とする。たとえば、ネットワー
クリンク1120は、ローカルネットワーク1122を
使用してホストコンピュータ1124またはインターネ
ットサービスプロバイダ(ISP)1126によって運
営されているデータ装置に対して接続を提供する。次
に、ISP1126は一般に「インターネット」112
8と呼ばれている世界的なパケットデータ通信ネットワ
ークを使用してデータ通信サービスを提供する。ローカ
ルネットワーク1122とインターネット1128は、
共にデジタルデータの流れを運搬する電気信号、電磁気
信号または光信号を使用する。いろいろなネットワーク
を使用する信号ならびにネットワークリンク1120上
の信号および通信インターフェイス1118を使用する
信号は、情報を運ぶ典型的な搬送波の形をしている。こ
れらの信号は、デジタルデータを、コンピュータシステ
ム1100に運搬し、コンピュータシステム1100か
ら運搬する。
【0085】コンピュータシステム1100は、ネット
ワーク、ネットワークリンク1120および通信インタ
ーフェイス1118を使用してメッセージを送信でき、
プログラムコードをはじめとするデータを受信できる。
インターネットでは、アプリケーションプログラムのコ
ードが要求されたとき、サーバー1130がそれをイン
ターネット1128、ISP1126、ローカルネット
ワーク1122および通信インターフェイス1118を
使用して送信できる場合がある。受信したコードは、コ
ードを受け取った際にプロセッサ1104で実行した
り、或いは、記憶装置1110または他の不揮発性記憶
装置に保存して後で実行したりできる。この方法で、コ
ンピュータシステム1100は搬送波の形式でアプリケ
ーションコードを取得できる。
【0086】現時点で、発明は特別の実施形態に基づい
て説明されているが、それに限定されない。発明の精神
から逸脱することなく、この開示の利益を使用して当業
者により種々の変更が行える。従って、本発明は、本発
明を記述するために使用されている特定の実施形態に制
限されるものではなく、特許の請求範囲に基づいてのみ
限定される。
【0087】
【発明の効果】以上の如く本発明によれば、要求された
実装の動的な構築により、フレームワークは、必要な制
約がアプリケーションに提供されるサービスに課される
ことを確実なものとする。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るシステム全体を示す
ブロック図である。
【図2】図1のシステム全体の一般的な動作を示す流れ
図である。
【図3】本発明の一実施形態を示す詳細なブロック図で
ある。
【図4】本発明の一実施形態を示す詳細なブロック図で
ある。
【図5】図3及び図4の実施形態の動作を示す流れ図で
ある。
【図6】図3及び図4の実施形態の動作を示す流れ図で
ある。
【図7】デフォルト設定と免除設定をはじめとする制限
の組み合わせの例を表した図である。
【図8】JCESecurityManagerオブジェクトクラスのGetC
ryptoPermissionメソッドの一実施形態の動作を示す流
れ図である。
【図9】規則の複数のセットを制限の1つのセットにマ
ージする処理の概要を示す本発明の一実施形態の流れ図
である。
【図10】規則の複数のセットを制限の一つのセットに
マージする方法を示す本発明の一実施形態の流れ図であ
る。
【図11】規則の複数のセットを制限の一つのセットに
マージする方法を示す本発明の一実施形態の流れ図であ
る。
【図12】信頼されていないデジタル署名検証機構の適
法性を試験する方法を示す本発明の一実施形態の流れ図
である。
【図13】任意の信頼されていない機構の適法性を試験
する方法を示す本発明の一実施形態の流れ図である。
【図14】本発明が実装するコンピュータシステムのハ
ードウェアブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジャン・ルーヘ アメリカ合衆国 94108 カリフォルニア 州 サンフランシスコ ストックトン ス トリート ナンバー9 540

Claims (42)

    【特許請求の範囲】
  1. 【請求項1】 アプリケーションにより特定サービスの
    実装が要求されるシステムにおける、前記実装に課す制
    約を決定する方法であって、 前記実装を要求する前記アプリケーションに与えられて
    いる許可があるか否かを判断し、 前記アプリケーションに与えられている少なくとも1つ
    の許可があるとの判断に応じて、前記実装に課す制約の
    セットを導くために、前記許可を処理することを備えた
    方法。
  2. 【請求項2】 前記許可は、前記制約のセットが最も小
    さい制約度合いとなるよう処理されるものである請求項
    1に記載の方法。
  3. 【請求項3】 前記アプリケーションに与えられている
    許可がないとの判断に応じて、初期制限のセットにアク
    セスし、 前記初期制限に基づいて、前記制約を導くことを更に備
    えた請求項1に記載の方法。
  4. 【請求項4】 前記初期制限が、複数の法政策をマージ
    し、そこから最も制約的な制限を抽出することにより、
    導かれるものである請求項3に記載の方法。
  5. 【請求項5】 前記許可の前記処理が、 前記許可が、全てを包含する許可であるか否かを判断
    し、 前記許可が全てを包含する許可であるとの判断に応じ
    て、前記実装が制限のないものであることの指標を用意
    することを備えた請求項1に記載の方法。
  6. 【請求項6】 前記許可の前記処理が、 前記許可が、免除機構が実装されることを必要とするか
    否かを判断し、 前記許可が免除機構が実装されることを必要としないと
    の判断に応じて、前記許可に基づき前記制約のセットを
    導くことを備えた請求項1に記載の方法。
  7. 【請求項7】 前記制約を導くことが、 前記許可がパラメータのセットを規定しているか否かを
    判断し、 前記許可がパラメータのセットを規定しているとの判断
    に応じて、前記パラメータに基づき前記制約のセットを
    導くことを備えた請求項6に記載の方法。
  8. 【請求項8】 前記制約を導くことが、 前記許可がパラメータのセットを規定しているか否かを
    判断し、 前記許可がパラメータのセットを規定していないとの判
    断に応じて、前記実装が制限のないものであることの指
    標を用意することを備えた請求項6に記載の方法。
  9. 【請求項9】 前記許可の前記処理が、 前記許可が、特定の免除機構が実装されることを必要と
    するか否かを判断し、 前記許可が特定の免除機構が実装されることを必要とす
    るとの判断に応じて、免除制限のセットをアクセスし、 前記制約を導くために、前記許可と前記免除制限とを調
    整することを備えた請求項1に記載の方法。
  10. 【請求項10】 前記許可と前記免除制限との前記調整
    が、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するか否かを判断し、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するとの判断に応じて、前記免除制限
    に基づいて前記制約を導くことを備えた請求項9に記載
    の方法。
  11. 【請求項11】 前記許可と前記免除制限との前記調整
    が、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するか否かを判断し、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可しないとの判断に応じて、初期制限の
    セットにアクセスし、 前記初期制限に基づいて前記制約を導くことを備えた請
    求項9に記載の方法。
  12. 【請求項12】 前記免除制限が、複数の法政策をマー
    ジし、そこから最も制約的な制限を抽出することによ
    り、導かれるものである請求項9に記載の方法。
  13. 【請求項13】 前記アプリケーションに与えられてい
    る許可があるか否かの前記判断が、前記実装を要求した
    アプリケーションが何れであるかを判断するためにコー
    ル・スタックを精査することを備えた請求項1に記載の
    方法。
  14. 【請求項14】 前記アプリケーションに与えられてい
    る許可があるか否かの前記判断が、前記アプリケーショ
    ンを認証することを更に備えた請求項13に記載の方
    法。
  15. 【請求項15】 アプリケーションにより特定サービス
    の実装が要求されるシステムにおける、前記実装に課す
    制約を決定する装置であって、 前記実装を要求する前記アプリケーションに与えられて
    いる許可があるか否かを判断する機構と、 前記アプリケーションに与えられている少なくとも1つ
    の許可があるとの判断に応じて、前記実装に課す制約の
    セットを導くために、前記許可を処理する機構と、を備
    えた装置。
  16. 【請求項16】 前記許可は、前記制約のセットが最も
    小さい制約度合いとなるよう処理されるものである請求
    項15に記載の装置。
  17. 【請求項17】 前記アプリケーションに与えられてい
    る許可がないとの判断に応じて、初期制限のセットにア
    クセスする機構と、 前記初期制限に基づいて、前記制約を導くする機構と、
    を更に備えた請求項15に記載の装置。
  18. 【請求項18】 前記初期制限が、複数の法政策をマー
    ジし、そこから最も制約的な制限を抽出することによ
    り、導かれるものである請求項17に記載の装置。
  19. 【請求項19】 前記許可を処理する前記機構が、 前記許可が、全てを包含する許可であるか否かを判断す
    る機構と、 前記許可が全てを包含する許可であるとの判断に応じ
    て、前記実装が制限のないものであることの指標を用意
    する機構と、を備えた請求項15に記載の装置。
  20. 【請求項20】 前記許可を処理する前記機構が、 前記許可が、免除機構が実装されることを必要とするか
    否かを判断する機構と、 前記許可が免除機構が実装されることを必要としないと
    の判断に応じて、前記許可に基づき前記制約のセットを
    導く機構と、を備えた請求項15に記載の装置。
  21. 【請求項21】 前記制約を導く前記機構が、 前記許可がパラメータのセットを規定しているか否かを
    判断する機構と、 前記許可がパラメータのセットを規定しているとの判断
    に応じて、前記パラメータに基づき前記制約のセットを
    導く機構と、を備えた請求項20に記載の装置。
  22. 【請求項22】 前記制約を導く前記機構が、 前記許可がパラメータのセットを規定しているか否かを
    判断する機構と、 前記許可がパラメータのセットを規定していないとの判
    断に応じて、前記実装が制限のないものであることの指
    標を用意する機構と、を備えた請求項20に記載の装
    置。
  23. 【請求項23】 前記許可を処理する前記機構が、 前記許可が、特定の免除機構が実装されることを必要と
    するか否かを判断する機構と、 前記許可が特定の免除機構が実装されることを必要とす
    るとの判断に応じて、免除制限のセットをアクセスする
    機構と、 前記制約を導くために、前記許可と前記免除制限とを調
    整する機構と、を備えた請求項15に記載の装置。
  24. 【請求項24】 前記許可と前記免除制限とを調整する
    前記機構が、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するか否かを判断する機構と、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するとの判断に応じて、前記免除制限
    に基づいて前記制約を導く機構と、を備えた請求項23
    に記載の装置。
  25. 【請求項25】 前記許可と前記免除制限とを調整する
    前記機構が、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するか否かを判断する機構と、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可しないとの判断に応じて、初期制限の
    セットにアクセスする機構と、 前記初期制限に基づいて前記制約を導く機構と、を備え
    た請求項23に記載の装置。
  26. 【請求項26】 前記免除制限が、複数の法政策をマー
    ジし、そこから最も制約的な制限を抽出することによ
    り、導かれるものである請求項23に記載の装置。
  27. 【請求項27】 前記アプリケーションに与えられてい
    る許可があるか否かを判断する前記機構が、前記実装を
    要求したアプリケーションが何れであるかを判断するた
    めにコール・スタックを精査する機構を備えた請求項1
    5に記載の装置。
  28. 【請求項28】 前記アプリケーションに与えられてい
    る許可があるか否かを判断する前記機構が、前記アプリ
    ケーションを認証する機構を更に備えた請求項27に記
    載の装置。
  29. 【請求項29】 命令を格納したコンピュータ読み取り
    可能な媒体であって、前記命令が、1又は複数のプロセ
    ッサにより実行されたときに、該1又は複数のプロセッ
    サを、アプリケーションにより要求された特定サービス
    の実装に課す制約を決定するように動作させるものにお
    いて、前記コンピュータ読み取り可能な媒体が、 前記実装を要求する前記アプリケーションに与えられて
    いる許可があるか否かを判断するよう、1又は複数のプ
    ロセッサを動作させる命令と、 前記アプリケーションに与えられている少なくとも1つ
    の許可があるとの判断に応じて、前記実装に課す制約の
    セットを導くために、前記許可を処理するよう、1又は
    複数のプロセッサを動作させる命令と、を備えたコンピ
    ュータ読み取り可能な媒体。
  30. 【請求項30】 前記許可は、前記制約のセットが最も
    小さい制約度合いとなるよう処理されるものである請求
    項29に記載のコンピュータ読み取り可能な媒体。
  31. 【請求項31】 前記アプリケーションに与えられてい
    る許可がないとの判断に応じて、初期制限のセットにア
    クセスするよう、1又は複数のプロセッサを動作させる
    命令と、 前記初期制限に基づいて、前記制約を導くするよう、1
    又は複数のプロセッサを動作させる命令と、を更に備え
    た請求項29に記載のコンピュータ読み取り可能な媒
    体。
  32. 【請求項32】 前記初期制限が、複数の法政策をマー
    ジし、そこから最も制約的な制限を抽出することによ
    り、導かれるものである請求項31に記載のコンピュー
    タ読み取り可能な媒体。
  33. 【請求項33】 前記許可を処理するよう、1又は複数
    のプロセッサを動作させる前記命令が、 前記許可が、全てを包含する許可であるか否かを判断す
    るよう、1又は複数のプロセッサを動作させる命令と、 前記許可が全てを包含する許可であるとの判断に応じ
    て、前記実装が制限のないものであることの指標を用意
    するよう、1又は複数のプロセッサを動作させる命令
    と、を備えた請求項29に記載のコンピュータ読み取り
    可能な媒体。
  34. 【請求項34】 前記許可を処理するよう、1又は複数
    のプロセッサを動作させる前記命令が、 前記許可が、免除機構が実装されることを必要とするか
    否かを判断するよう、1又は複数のプロセッサを動作さ
    せる命令と、 前記許可が免除機構が実装されることを必要としないと
    の判断に応じて、前記許可に基づき前記制約のセットを
    導くよう、1又は複数のプロセッサを動作させる命令
    と、を備えた請求項29に記載のコンピュータ読み取り
    可能な媒体。
  35. 【請求項35】 前記制約を導くよう、1又は複数のプ
    ロセッサを動作させる前記命令が、 前記許可がパラメータのセットを規定しているか否かを
    判断するよう、1又は複数のプロセッサを動作させる命
    令と、 前記許可がパラメータのセットを規定しているとの判断
    に応じて、前記パラメータに基づき前記制約のセットを
    導くよう、1又は複数のプロセッサを動作させる命令
    と、を備えた請求項34に記載のコンピュータ読み取り
    可能な媒体。
  36. 【請求項36】 前記制約を導くよう、1又は複数のプ
    ロセッサを動作させる前記命令が、 前記許可がパラメータのセットを規定しているか否かを
    判断するよう、1又は複数のプロセッサを動作させる命
    令と、 前記許可がパラメータのセットを規定していないとの判
    断に応じて、前記実装が制限のないものであることの指
    標を用意するよう、1又は複数のプロセッサを動作させ
    る命令と、を備えた請求項34に記載のコンピュータ読
    み取り可能な媒体。
  37. 【請求項37】 前記許可を処理するよう、1又は複数
    のプロセッサを動作させる前記命令が、 前記許可が、特定の免除機構が実装されることを必要と
    するか否かを判断するよう、1又は複数のプロセッサを
    動作させる命令と、 前記許可が特定の免除機構が実装されることを必要とす
    るとの判断に応じて、免除制限のセットをアクセスする
    よう、1又は複数のプロセッサを動作させる命令と、 前記制約を導くために、前記許可と前記免除制限とを調
    整するよう、1又は複数のプロセッサを動作させる命令
    と、を備えた請求項29に記載のコンピュータ読み取り
    可能な媒体。
  38. 【請求項38】 前記許可と前記免除制限とを調整する
    よう、1又は複数のプロセッサを動作させる前記命令
    が、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するか否かを判断するよう、1又は複
    数のプロセッサを動作させる命令と、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するとの判断に応じて、前記免除制限
    に基づいて前記制約を導くよう、1又は複数のプロセッ
    サを動作させる命令と、を備えた請求項37に記載のコ
    ンピュータ読み取り可能な媒体。
  39. 【請求項39】 前記許可と前記免除制限とを調整する
    よう、1又は複数のプロセッサを動作させる前記命令
    が、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可するか否かを判断するよう、1又は複
    数のプロセッサを動作させる命令と、 前記免除制限が、前記実装に前記特定の免除機構が実装
    されることを許可しないとの判断に応じて、初期制限の
    セットにアクセスするよう、1又は複数のプロセッサを
    動作させる命令と、 前記初期制限に基づいて前記制約を導くよう、1又は複
    数のプロセッサを動作させる命令と、を備えた請求項3
    7に記載のコンピュータ読み取り可能な媒体。
  40. 【請求項40】 前記免除制限が、複数の法政策をマー
    ジし、そこから最も制約的な制限を抽出することによ
    り、導かれるものである請求項37に記載のコンピュー
    タ読み取り可能な媒体。
  41. 【請求項41】 前記アプリケーションに与えられてい
    る許可があるか否かを判断するよう、1又は複数のプロ
    セッサを動作させる前記命令が、前記実装を要求したア
    プリケーションが何れであるかを判断するためにコール
    ・スタックを精査するよう、1又は複数のプロセッサを
    動作させる命令を備えた請求項29に記載のコンピュー
    タ読み取り可能な媒体。
  42. 【請求項42】 前記アプリケーションに与えられてい
    る許可があるか否かを判断するよう、1又は複数のプロ
    セッサを動作させる前記命令が、前記アプリケーション
    を認証するよう、1又は複数のプロセッサを動作させる
    命令を更に備えた請求項41に記載のコンピュータ読み
    取り可能な媒体。
JP2000354265A 1999-11-22 2000-11-21 サービスの実装に課する制約を決定するための機構 Pending JP2001216043A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US16687199P 1999-11-22 1999-11-22
US17463000P 2000-01-05 2000-01-05
US60/174630 2000-01-14
US09/483246 2000-01-14
US60/166871 2000-01-14
US09/483,246 US6792537B1 (en) 1999-11-22 2000-01-14 Mechanism for determining restrictions to impose on an implementation of a service

Publications (1)

Publication Number Publication Date
JP2001216043A true JP2001216043A (ja) 2001-08-10

Family

ID=27389318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000354265A Pending JP2001216043A (ja) 1999-11-22 2000-11-21 サービスの実装に課する制約を決定するための機構

Country Status (3)

Country Link
EP (1) EP1102154A3 (ja)
JP (1) JP2001216043A (ja)
IL (1) IL139327A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122348A (ja) * 2005-10-27 2007-05-17 Ricoh Co Ltd 画像形成装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
US7530114B2 (en) 2002-01-08 2009-05-05 Ntt Docomo, Inc. Content delivery method and content delivery system
US7558963B2 (en) 2003-03-31 2009-07-07 Ntt Docomo, Inc. Communication device and program
US7587592B2 (en) 2002-04-03 2009-09-08 Ntt Docomo, Inc. Distribution method, distribution system, and terminal device
JP2011165222A (ja) * 2011-06-01 2011-08-25 Ricoh Co Ltd 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287276B2 (en) 2003-09-08 2007-10-23 Microsoft Corporation Coordinated network initiator management that avoids security conflicts

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148083A (en) * 1996-08-23 2000-11-14 Hewlett-Packard Company Application certification for an international cryptography framework

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7530114B2 (en) 2002-01-08 2009-05-05 Ntt Docomo, Inc. Content delivery method and content delivery system
US8015616B2 (en) 2002-01-08 2011-09-06 Ntt Docomo, Inc. Contents transmission method and contents transmission system
US8281391B2 (en) 2002-01-08 2012-10-02 Ntt Docomo, Inc. Contents transmission method and contents transmission system
US7587592B2 (en) 2002-04-03 2009-09-08 Ntt Docomo, Inc. Distribution method, distribution system, and terminal device
US7558963B2 (en) 2003-03-31 2009-07-07 Ntt Docomo, Inc. Communication device and program
JP2007122348A (ja) * 2005-10-27 2007-05-17 Ricoh Co Ltd 画像形成装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体
JP2011165222A (ja) * 2011-06-01 2011-08-25 Ricoh Co Ltd 装置、セキュリティ管理方法、セキュリティ管理プログラム及び記録媒体

Also Published As

Publication number Publication date
EP1102154A3 (en) 2003-12-10
IL139327A (en) 2005-06-19
EP1102154A2 (en) 2001-05-23
IL139327A0 (en) 2001-11-25

Similar Documents

Publication Publication Date Title
JP2001236014A (ja) 複数の政策をマージする機構
US6792537B1 (en) Mechanism for determining restrictions to impose on an implementation of a service
CA2923740C (en) Software code signing system and method
US6282652B1 (en) System for separately designating security requirements for methods invoked on a computer
JP6286034B2 (ja) プロセス認証とリソースパーミッション
US8417964B2 (en) Software module management device and program
US6715077B1 (en) System and method to support varying maximum cryptographic strength for common data security architecture (CDSA) applications
US20020174224A1 (en) Stack-based access control
JP2004533046A (ja) プラグ対応認可システムに対するサーバサポート方法およびシステム
JPH09251425A (ja) 分散システムにおけるシステム資源へのアクセスのセキュリティ制御の方法およびシステム
KR20060107798A (ko) 애플리케이션 크리덴셜을 제공하는 방법 및 장치
CN115580413B (zh) 一种零信任的多方数据融合计算方法和装置
CN114448648B (zh) 基于rpa的敏感凭据管理方法及系统
US20180039771A1 (en) Method of and server for authorizing execution of an application on an electronic device
JP5474091B2 (ja) ライブラリに対するガジェットアクセスを安全にする方法
JP2001216043A (ja) サービスの実装に課する制約を決定するための機構
JP3994657B2 (ja) サービス提供システム
JP2001222440A (ja) 制約を課すカスタム化された実装を動的に構築するための機構
US7051067B1 (en) Object oriented mechanism for dynamically constructing customized implementations to enforce restrictions
CN110457959B (zh) 一种基于Trust应用的信息传输方法及装置
CN114238925A (zh) 基于jwt令牌的不互信异构系统聚合鉴权认证方法
US7103910B1 (en) Method and apparatus for verifying the legitimacy of an untrusted mechanism
JP2001228796A (ja) 信頼されていない機構の適法性を検証するための方法及び装置
JP2001216162A (ja) 制約を課すカスタム化された実装を動的に構築するためのオブジェクト指向機構
Anderson Java™ access control mechanisms