JP2001236014A - 複数の政策をマージする機構 - Google Patents

複数の政策をマージする機構

Info

Publication number
JP2001236014A
JP2001236014A JP2000354263A JP2000354263A JP2001236014A JP 2001236014 A JP2001236014 A JP 2001236014A JP 2000354263 A JP2000354263 A JP 2000354263A JP 2000354263 A JP2000354263 A JP 2000354263A JP 2001236014 A JP2001236014 A JP 2001236014A
Authority
JP
Japan
Prior art keywords
entry
policy
restriction
original
final
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
JP2000354263A
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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2001236014A publication Critical patent/JP2001236014A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • 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/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 (修正有) 【課題】データ暗号化アルゴリズムを含むコンピュータ
プログラムでの輸出規制で「フレームワーク」プログラ
ムに対し暗号実装を制限する必要がある。 【解決手段】最終政策を導く為に複数の元の政策をマー
ジする機構が開示され、これら政策(法律/規則のセッ
トで識別子、該制限セットでのエントリーを持つ)は、
現在のエントリーを選択すると該エントリーがマージさ
れ、次の政策内に該エントリーに対するエントリー有無
の判断が為され、有れば両エントリが処理されて最終的
制限セットが導かれ、両エントリーで最も強制的な制限
に設定される。この制限は該政策の双方に従う事が保証
され、この最終制限が導かれると、新エントリーが最終
的制限を持つ最終的政策内に生成される。

Description

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

    【特許請求の範囲】
  1. 【請求項1】 最終的な政策を導くために、複数の元の
    政策を処理する方法であって、前記各元の政策が、識別
    子と少なくとも1つの制限を有するエントリーを備え、
    前記方法が、 第1の元の政策から現在のエントリーを選択し、 第2の元の政策が、前記現在のエントリーに対応する対
    応エントリーを備えるか否かを判断し、 前記第2の元の政策が、対応エントリーを備えるとの判
    断に応じて、最終的な制限のセットを導くために前記現
    在のエントリー内の前記制限と前記対応エントリー内の
    前記制限とを処理するものであって、前記最終的な制限
    が、前記現在のエントリーと前記対応エントリーのうち
    の最も制約された制限を備えるように処理し、 最終的な政策内に、前記最終的な制限を備える新たなエ
    ントリーを生成することを備えた方法。
  2. 【請求項2】 第2の元の政策が対応エントリーを備え
    るか否かの判断が、前記現在のエントリーの識別子を、
    前記第2の元の政策の少なくとも1つのエントリーの識
    別子と比較することを備えた請求項1に記載の方法。
  3. 【請求項3】 各エントリーの前記識別子が、暗号化ア
    ルゴリズムの識別子を備えた請求項2に記載の方法。
  4. 【請求項4】 各エントリーの前記識別子が、暗号化ア
    ルゴリズムの識別子と免除機構の識別子とを備えた請求
    項2に記載の方法。
  5. 【請求項5】 各エントリーの前記制限が、少なくとも
    1つの暗号化アルゴリズムに加えられる暗号化制限を備
    えた請求項1に記載の方法。
  6. 【請求項6】 前記暗号化制限が、最大暗号化鍵長を備
    えた請求項5に記載の方法。
  7. 【請求項7】 前記暗号化制限が、更に、最大暗号化繰
    り返し数を備えた請求項6に記載の方法。
  8. 【請求項8】 前記最終的な制限が、各制限単位で導か
    れるものである請求項1に記載の方法。
  9. 【請求項9】 前記第1の元の政策が、第1の法律/規
    則のセットを表し、前記第2の元の政策が、前記第1の
    法律/規則のセットと異なる第2の法律/規則のセット
    を表すものである請求項1に記載の方法。
  10. 【請求項10】 前記第1の法律/規則のセットが輸出
    法/規則であり、前記第2の法律/規則のセットが現地
    の輸入法/規則である請求項9に記載の方法。
  11. 【請求項11】 前記各元の政策が、少なくとも1つの
    暗号化アルゴリズムに加える初期化制限を規定したデフ
    ォルトコンポーネントを備えた請求項1に記載の方法。
  12. 【請求項12】 前記各元の政策が、少なくとも1つの
    免除機構が実行されたときに、少なくとも1つの暗号化
    アルゴリズムに加える制限を規定した免除コンポーネン
    トを備えた請求項1に記載の方法。
  13. 【請求項13】 前記第2の元の政策が対応するエント
    リーを備えていないとの判断に応じて、前記第2の元の
    政策が、ワイルドカード・エントリーを備えているか否
    かを判断し、 前記第2の元の政策がワイルドカード・エントリーを備
    えているとの判断に応じて、他の最終的な制限のセット
    を導くために前記現在のエントリーの制限と前記ワイル
    ドカード・エントリーの制限とを処理するものであっ
    て、前記他の最終的な制限が、前記現在のエントリーと
    前記ワイルドカード・エントリーのうちの最も制約され
    た制限を備えるように処理し、 前記最終的な政策内に、前記他の最終的な制限を備える
    新たなエントリーを生成することを更に備えた請求項1
    に記載の方法。
  14. 【請求項14】 前記第1の元の政策が、ワイルドカー
    ド・エントリーを備えているか否かを判断し、 前記第1の元の政策がワイルドカード・エントリーを備
    えていないとの判断に応じて、前記第1及び第2の元の
    政策の処理を終了することを更に備えた請求項13に記
    載の方法。
  15. 【請求項15】 前記第1の元の政策がワイルドカード
    ・エントリーを備えているとの判断に応じて、前記第2
    の元の政策内の次のエントリーを選択し、 前記最終的な政策が、前記次のエントリーに対応するエ
    ントリを備えているか否かを判断し、 前記最終的な政策が前記次のエントリーに対応するエン
    トリを備えていないとの判断に応じて、他の最終的な制
    限の第2のセットを導くために前記次のエントリーの制
    限と前記第1の元の政策内の前記ワイルドカード・エン
    トリーの制限とを処理するものであって、前記他の最終
    的な制限の第2のセットが、前記次のエントリーと前記
    第1の元の政策の前記ワイルドカード・エントリーのう
    ちの最も制約された制限を備えるように処理し、 前記最終的な政策内に、前記最終的な制限の第2のセッ
    トを備える新たなエントリーを生成することを更に備え
    た請求項14に記載の方法。
  16. 【請求項16】 前記最終的な政策が前記次のエントリ
    ーに対応するエントリーを備えているとの判断に応じ
    て、前記第2の元の政策内の他のエントリーを処理のた
    めに選択することを更に備えた請求項15に記載の方
    法。
  17. 【請求項17】 特定の制限のセットを導くために、複
    数の元の政策を処理する機構と、 少なくとも前記特定の制限のセットに基づいて、制約の
    セットを決定する機構と、 サービスの実装に、前記制約を課する機構と、を備えた
    コンピュータシステム。
  18. 【請求項18】 前記各元の政策が、識別子と少なくと
    も1つの制限を有するエントリーを備え、前記特定の制
    限のセットを導くために、複数の元の政策を処理する機
    構が、 第1の元の政策から現在のエントリーを選択する機構
    と、 第2の元の政策が、前記現在のエントリーに対応する対
    応エントリーを備えるか否かを判断する機構と、 前記第2の元の政策が、対応エントリーを備えるとの判
    断に応じて、最終的な制限のセットを導くために前記現
    在のエントリー内の前記制限と前記対応エントリー内の
    前記制限とを処理する機構であって、前記最終的な制限
    が、前記現在のエントリーと前記対応エントリーのうち
    の最も制約された制限を備えるものと、 最終的な政策内に、前記最終的な制限を備える新たなエ
    ントリーを生成する機構と、を備えた請求項17に記載
    のシステム。
  19. 【請求項19】 第2の元の政策が対応エントリーを備
    えるか否かの判断をする機構が、前記現在のエントリー
    の識別子を、前記第2の元の政策の少なくとも1つのエ
    ントリーの識別子と比較する機構を備えた請求項18に
    記載のシステム。
  20. 【請求項20】 各エントリーの前記識別子が、暗号化
    アルゴリズムの識別子を備えた請求項19に記載のシス
    テム。
  21. 【請求項21】 各エントリーの前記識別子が、暗号化
    アルゴリズムの識別子と免除機構の識別子とを備えた請
    求項19に記載のシステム。
  22. 【請求項22】 各エントリーの前記制限が、少なくと
    も1つの暗号化アルゴリズムに加えられる暗号化制限を
    備えた請求項18に記載のシステム。
  23. 【請求項23】 前記暗号化制限が、最大暗号化鍵長を
    備えた請求項22に記載のシステム。
  24. 【請求項24】 前記暗号化制限が、更に、最大暗号化
    繰り返し数を備えた請求項23に記載のシステム。
  25. 【請求項25】 前記最終的な制限が、各制限単位で導
    かれるものである請求項18に記載のシステム。
  26. 【請求項26】 前記第1の元の政策が、第1の法律/
    規則のセットを表し、前記第2の元の政策が、前記第1
    の法律/規則のセットと異なる第2の法律/規則のセッ
    トを表すものである請求項18に記載のシステム。
  27. 【請求項27】 前記第1の法律/規則のセットが輸出
    法/規則であり、前記第2の法律/規則のセットが現地
    の輸入法/規則である請求項26に記載のシステム。
  28. 【請求項28】 前記各元の政策が、少なくとも1つの
    暗号化アルゴリズムに加える初期化制限を規定したデフ
    ォルトコンポーネントを備えた請求項18に記載のシス
    テム。
  29. 【請求項29】 前記各元の政策が、少なくとも1つの
    免除機構が実行されたときに、少なくとも1つの暗号化
    アルゴリズムに加える制限を規定した免除コンポーネン
    トを備えた請求項18に記載のシステム。
  30. 【請求項30】 複数の元の政策を処理する前記機構
    が、 前記第2の元の政策が対応するエントリーを備えていな
    いとの判断に応じて、前記第2の元の政策が、ワイルド
    カード・エントリーを備えているか否かを判断する機構
    と、 前記第2の元の政策がワイルドカード・エントリーを備
    えているとの判断に応じて、他の最終的な制限のセット
    を導くために前記現在のエントリーの制限と前記ワイル
    ドカード・エントリーの制限とを処理する機構であっ
    て、前記他の最終的な制限が、前記現在のエントリーと
    前記ワイルドカード・エントリーのうちの最も制約され
    た制限を備えるものと、 前記最終的な政策内に、前記他の最終的な制限を備える
    新たなエントリーを生成する機構と、を更に備えた請求
    項18に記載のシステム。
  31. 【請求項31】 複数の元の政策を処理する前記機構
    が、 前記第1の元の政策が、ワイルドカード・エントリーを
    備えているか否かを判断する機構と、 前記第1の元の政策がワイルドカード・エントリーを備
    えていないとの判断に応じて、前記第1及び第2の元の
    政策の処理を終了する機構と、を更に備えた請求項30
    に記載のシステム。
  32. 【請求項32】 複数の元の政策を処理する前記機構
    が、 前記第1の元の政策がワイルドカード・エントリーを備
    えているとの判断に応じて、前記第2の元の政策内の次
    のエントリーを選択する機構と、 前記最終的な政策が、前記次のエントリーに対応するエ
    ントリを備えているか否かを判断する機構と、 前記最終的な政策が前記次のエントリーに対応するエン
    トリを備えていないとの判断に応じて、他の最終的な制
    限の第2のセットを導くために前記次のエントリーの制
    限と前記第1の元の政策内の前記ワイルドカード・エン
    トリーの制限とを処理する機構であって、前記他の最終
    的な制限の第2のセットが、前記次のエントリーと前記
    第1の元の政策の前記ワイルドカード・エントリーのう
    ちの最も制約された制限を備えるものと、 前記最終的な政策内に、前記最終的な制限の第2のセッ
    トを備える新たなエントリーを生成する機構と、を更に
    備えた請求項31に記載のシステム。
  33. 【請求項33】 複数の元の政策を処理する前記機構
    が、 前記最終的な政策が前記次のエントリーに対応するエン
    トリーを備えているとの判断に応じて、前記第2の元の
    政策内の他のエントリーを処理のために選択する機構
    と、を更に備えた請求項32に記載のシステム。
  34. 【請求項34】 命令を格納したコンピュータ読み取り
    可能な媒体であって、前記命令が、1又は複数のプロセ
    ッサにより実行されたときに、該1又は複数のプロセッ
    サを、最終的な政策を導くために、複数の元の政策を処
    理するように動作させるものにおいて、前記各元の政策
    が、識別子と少なくとも1つの制限を有するエントリー
    を備え、前記コンピュータ読み取り可能な媒体が、 第1の元の政策から現在のエントリーを選択するよう、
    1又は複数のプロセッサを動作させる命令と、 第2の元の政策が、前記現在のエントリーに対応する対
    応エントリーを備えるか否かを判断するよう、1又は複
    数のプロセッサを動作させる命令と、 前記第2の元の政策が、対応エントリーを備えるとの判
    断に応じて、最終的な制限のセットを導くために前記現
    在のエントリー内の前記制限と前記対応エントリー内の
    前記制限とを処理するするよう、1又は複数のプロセッ
    サを動作させる命令であって、前記最終的な制限が、前
    記現在のエントリーと前記対応エントリーのうちの最も
    制約された制限を備えるものと、 最終的な政策内に、前記最終的な制限を備える新たなエ
    ントリーを生成するよう、1又は複数のプロセッサを動
    作させる命令と、を備えたコンピュータ読み取り可能な
    媒体。
  35. 【請求項35】 第2の元の政策が対応エントリーを備
    えるか否かを判断するよう1又は複数のプロセッサを動
    作させる命令が、前記現在のエントリーの識別子を、前
    記第2の元の政策の少なくとも1つのエントリーの識別
    子と比較するよう、1又は複数のプロセッサを動作させ
    る命令を備えた請求項34に記載のコンピュータ読み取
    り可能な媒体。
  36. 【請求項36】 各エントリーの前記識別子が、暗号化
    アルゴリズムの識別子を備えた請求項35に記載のコン
    ピュータ読み取り可能な媒体。
  37. 【請求項37】 各エントリーの前記識別子が、暗号化
    アルゴリズムの識別子と免除機構の識別子とを備えた請
    求項35に記載のコンピュータ読み取り可能な媒体。
  38. 【請求項38】 各エントリーの前記制限が、少なくと
    も1つの暗号化アルゴリズムに加えられる暗号化制限を
    備えた請求項34に記載のコンピュータ読み取り可能な
    媒体。
  39. 【請求項39】 前記暗号化制限が、最大暗号化鍵長を
    備えた請求項38に記載のコンピュータ読み取り可能な
    媒体。
  40. 【請求項40】 前記暗号化制限が、更に、最大暗号化
    繰り返し数を備えた請求項39に記載のコンピュータ読
    み取り可能な媒体。
  41. 【請求項41】 前記最終的な制限が、各制限単位で導
    かれるものである請求項34に記載のコンピュータ読み
    取り可能な媒体。
  42. 【請求項42】 前記第1の元の政策が、第1の法律/
    規則のセットを表し、前記第2の元の政策が、前記第1
    の法律/規則のセットと異なる第2の法律/規則のセッ
    トを表すものである請求項34に記載のコンピュータ読
    み取り可能な媒体。
  43. 【請求項43】 前記第1の法律/規則のセットが輸出
    法/規則であり、前記第2の法律/規則のセットが現地
    の輸入法/規則である請求項42に記載のコンピュータ
    読み取り可能な媒体。
  44. 【請求項44】 前記各元の政策が、少なくとも1つの
    暗号化アルゴリズムに加える初期化制限を規定したデフ
    ォルトコンポーネントを備えた請求項34に記載のコン
    ピュータ読み取り可能な媒体。
  45. 【請求項45】 前記各元の政策が、少なくとも1つの
    免除機構が実行されたときに、少なくとも1つの暗号化
    アルゴリズムに加える制限を規定した免除コンポーネン
    トを備えた請求項34に記載のコンピュータ読み取り可
    能な媒体。
  46. 【請求項46】 前記第2の元の政策が対応するエント
    リーを備えていないとの判断に応じて、前記第2の元の
    政策が、ワイルドカード・エントリーを備えているか否
    かを判断するよう、1又は複数のプロセッサを動作させ
    る命令と、 前記第2の元の政策がワイルドカード・エントリーを備
    えているとの判断に応じて、他の最終的な制限のセット
    を導くために前記現在のエントリーの制限と前記ワイル
    ドカード・エントリーの制限とを処理するよう、1又は
    複数のプロセッサを動作させる命令であって、前記他の
    最終的な制限が、前記現在のエントリーと前記ワイルド
    カード・エントリーのうちの最も制約された制限を備え
    るものと、 前記最終的な政策内に、前記他の最終的な制限を備える
    新たなエントリーを生成するよう、1又は複数のプロセ
    ッサを動作させる命令と、を更に備えた請求項34に記
    載のコンピュータ読み取り可能な媒体。
  47. 【請求項47】 前記第1の元の政策が、ワイルドカー
    ド・エントリーを備えているか否かを判断するよう、1
    又は複数のプロセッサを動作させる命令と、 前記第1の元の政策がワイルドカード・エントリーを備
    えていないとの判断に応じて、前記第1及び第2の元の
    政策の処理を終了するよう、1又は複数のプロセッサを
    動作させる命令と、を更に備えた請求項46に記載のコ
    ンピュータ読み取り可能な媒体。
  48. 【請求項48】 前記第1の元の政策がワイルドカード
    ・エントリーを備えているとの判断に応じて、前記第2
    の元の政策内の次のエントリーを選択するよう、1又は
    複数のプロセッサを動作させる命令と、 前記最終的な政策が、前記次のエントリーに対応するエ
    ントリを備えているか否かを判断するよう、1又は複数
    のプロセッサを動作させる命令と、 前記最終的な政策が前記次のエントリーに対応するエン
    トリを備えていないとの判断に応じて、他の最終的な制
    限の第2のセットを導くために前記次のエントリーの制
    限と前記第1の元の政策内の前記ワイルドカード・エン
    トリーの制限とを処理するよう、1又は複数のプロセッ
    サを動作させる命令であって、前記他の最終的な制限の
    第2のセットが、前記次のエントリーと前記第1の元の
    政策の前記ワイルドカード・エントリーのうちの最も制
    約された制限を備えるものと、 前記最終的な政策内に、前記最終的な制限の第2のセッ
    トを備える新たなエントリーを生成するよう、1又は複
    数のプロセッサを動作させる命令と、を更に備えた請求
    項47に記載のコンピュータ読み取り可能な媒体。
  49. 【請求項49】 前記最終的な政策が前記次のエントリ
    ーに対応するエントリーを備えているとの判断に応じ
    て、前記第2の元の政策内の他のエントリーを処理のた
    めに選択するよう、1又は複数のプロセッサを動作させ
    る命令を更に備えた請求項48に記載のコンピュータ読
    み取り可能な媒体。
JP2000354263A 1999-11-22 2000-11-21 複数の政策をマージする機構 Pending JP2001236014A (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/483,247 US6721888B1 (en) 1999-11-22 2000-01-14 Mechanism for merging multiple policies
US09/483247 2000-01-14
US60/166871 2000-01-14

Publications (1)

Publication Number Publication Date
JP2001236014A true JP2001236014A (ja) 2001-08-31

Family

ID=27389319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000354263A Pending JP2001236014A (ja) 1999-11-22 2000-11-21 複数の政策をマージする機構

Country Status (4)

Country Link
US (1) US6721888B1 (ja)
EP (1) EP1102153A3 (ja)
JP (1) JP2001236014A (ja)
IL (1) IL139326A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773360B2 (en) 2014-12-11 2017-09-26 Hyundai Motor Company Apparatus for processing a plurality of logging policies and method thereof

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7673323B1 (en) 1998-10-28 2010-03-02 Bea Systems, Inc. System and method for maintaining security in a distributed computer network
US7051069B2 (en) 2000-09-28 2006-05-23 Bea Systems, Inc. System for managing logical process flow in an online environment
US7073062B2 (en) * 2000-12-19 2006-07-04 International Business Machines Corporation Method and apparatus to mutually authentication software modules
JP4173447B2 (ja) * 2001-10-24 2008-10-29 ビーイーエイ システムズ, インコーポレイテッド データ同期
US7350226B2 (en) * 2001-12-13 2008-03-25 Bea Systems, Inc. System and method for analyzing security policies in a distributed computer network
US7725560B2 (en) 2002-05-01 2010-05-25 Bea Systems Inc. Web service-enabled portlet wizard
US7257834B1 (en) * 2002-10-31 2007-08-14 Sprint Communications Company L.P. Security framework data scheme
US7653930B2 (en) * 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US7591000B2 (en) * 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US7840614B2 (en) 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US7293286B2 (en) * 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US7810036B2 (en) 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
US20050188295A1 (en) * 2004-02-25 2005-08-25 Loren Konkus Systems and methods for an extensible administration tool
US7774601B2 (en) 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US20050251512A1 (en) * 2004-04-13 2005-11-10 Bea Systems, Inc. System and method for searching a virtual content repository
US7236989B2 (en) 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for providing lifecycles for custom content in a virtual content repository
US7246138B2 (en) 2004-04-13 2007-07-17 Bea Systems, Inc. System and method for content lifecycles in a virtual content repository that integrates a plurality of content repositories
US7236975B2 (en) * 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for controlling access to anode in a virtual content repository that integrates a plurality of content repositories
US7240076B2 (en) 2004-04-13 2007-07-03 Bea Systems, Inc. System and method for providing a lifecycle for information in a virtual content repository
US7236990B2 (en) 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for information lifecycle workflow integration
US8161520B1 (en) * 2004-04-30 2012-04-17 Oracle America, Inc. Methods and systems for securing a system in an adaptive computer environment
KR100688511B1 (ko) * 2004-12-20 2007-03-02 삼성전자주식회사 영상 신호의 부반송파 추적을 위한 디지털 처리 장치 및방법
KR100780937B1 (ko) * 2004-12-20 2007-12-03 삼성전자주식회사 영상 신호의 수평 동기 추출을 위한 디지털 처리 장치 및방법
US20070039045A1 (en) * 2005-08-11 2007-02-15 Microsoft Corporation Dual layered access control list
US7818344B2 (en) * 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7917537B2 (en) * 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US20070073673A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for content management security
US7483893B2 (en) * 2005-09-26 2009-01-27 Bae Systems, Inc. System and method for lightweight loading for managing content
US20070073784A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for type inheritance for content management
US20070073674A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for providing federated events for content management systems
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
WO2011061804A1 (ja) * 2009-11-19 2011-05-26 株式会社日立製作所 コンピュータシステム、管理システム及び記録媒体
US10630686B2 (en) 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10880281B2 (en) * 2016-02-26 2020-12-29 Fornetix Llc Structure of policies for evaluating key attributes of encryption keys
DE102016204684A1 (de) * 2016-03-22 2017-09-28 Siemens Aktiengesellschaft Verfahren und Einrichtung zum Bereitstellen einer kryptographischen Sicherheitsfunktion für den Betrieb eines Geräts

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5164988A (en) 1991-10-31 1992-11-17 International Business Machines Corporation Method to establish and enforce a network cryptographic security policy in a public key cryptosystem
US5412717A (en) 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
US5323464A (en) 1992-10-16 1994-06-21 International Business Machines Corporation Commercial data masking
US5649099A (en) 1993-06-04 1997-07-15 Xerox Corporation Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security
US5369702A (en) 1993-10-18 1994-11-29 Tecsec Incorporated Distributed cryptographic object method
US5555376A (en) 1993-12-03 1996-09-10 Xerox Corporation Method for granting a user request having locational and contextual attributes consistent with user policies for devices having locational attributes consistent with the user request
US5493692A (en) 1993-12-03 1996-02-20 Xerox Corporation Selective delivery of electronic messages in a multiple computer system based on context and environment of a user
CN101303717B (zh) 1995-02-13 2015-04-29 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
GB9503738D0 (en) 1995-02-24 1995-04-19 Int Computers Ltd Cryptographic key management
US5889953A (en) * 1995-05-25 1999-03-30 Cabletron Systems, Inc. Policy management and conflict resolution in computer networks
US5933503A (en) 1996-03-15 1999-08-03 Novell, Inc Controlled modular cryptography apparatus and method
US5883956A (en) 1996-03-28 1999-03-16 National Semiconductor Corporation Dynamic configuration of a secure processing unit for operations in various environments
US5907620A (en) 1996-08-23 1999-05-25 Cheyenne Property Trust Method and apparatus for enforcing the use of cryptography in an international cryptography framework
US6148083A (en) 1996-08-23 2000-11-14 Hewlett-Packard Company Application certification for an international cryptography framework
EP0992002A2 (en) * 1997-06-19 2000-04-12 Brian E. Marchant Security apparatus for data transmission with dynamic random encryption
US6389534B1 (en) 1997-06-30 2002-05-14 Taher Elgamal Cryptographic policy filters and policy control method and apparatus
US6125446A (en) 1997-08-29 2000-09-26 Compaq Computer Corporation Computer architecture with automatic disabling of hardware/software features using satellite positioning data
US6308266B1 (en) 1998-03-04 2001-10-23 Microsoft Corporation System and method for enabling different grades of cryptography strength in a product
US6178504B1 (en) 1998-03-12 2001-01-23 Cheyenne Property Trust C/O Data Securities International, Inc. Host system elements for an international cryptography framework
US6298445B1 (en) 1998-04-30 2001-10-02 Netect, Ltd. Computer security
US6535980B1 (en) 1999-06-21 2003-03-18 International Business Machines Corporation Keyless encryption of messages using challenge response

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773360B2 (en) 2014-12-11 2017-09-26 Hyundai Motor Company Apparatus for processing a plurality of logging policies and method thereof

Also Published As

Publication number Publication date
US6721888B1 (en) 2004-04-13
EP1102153A3 (en) 2004-01-14
IL139326A (en) 2005-08-31
IL139326A0 (en) 2001-11-25
EP1102153A2 (en) 2001-05-23

Similar Documents

Publication Publication Date Title
JP2001236014A (ja) 複数の政策をマージする機構
US6792537B1 (en) Mechanism for determining restrictions to impose on an implementation of a service
US6138238A (en) Stack-based access control using code and executor identifiers
JP6286034B2 (ja) プロセス認証とリソースパーミッション
US6282652B1 (en) System for separately designating security requirements for methods invoked on a computer
US8590003B2 (en) Controlling access to resources by hosted entities
JP4916584B2 (ja) 呼び出しのプログラムについての秘密の封印のための方法
US20040139352A1 (en) Uniformly representing and transferring security assertion and security response information
US20040172546A1 (en) System and method to support varying maximum cryptographic strength for common data security architecture (CDSA) applications
JP2004533046A (ja) プラグ対応認可システムに対するサーバサポート方法およびシステム
JPH09251425A (ja) 分散システムにおけるシステム資源へのアクセスのセキュリティ制御の方法およびシステム
CN114448648B (zh) 基于rpa的敏感凭据管理方法及系统
JP2013513161A (ja) アプリケーションクラスをロードするシステムおよび方法
CN115580413A (zh) 一种零信任的多方数据融合计算方法和装置
JP5474091B2 (ja) ライブラリに対するガジェットアクセスを安全にする方法
US6564325B1 (en) Method of and apparatus for providing multi-level security access to system
JP2001216043A (ja) サービスの実装に課する制約を決定するための機構
JP2001222440A (ja) 制約を課すカスタム化された実装を動的に構築するための機構
US7051067B1 (en) Object oriented mechanism for dynamically constructing customized implementations to enforce restrictions
US7103910B1 (en) Method and apparatus for verifying the legitimacy of an untrusted mechanism
JP2001228796A (ja) 信頼されていない機構の適法性を検証するための方法及び装置
JP2001216162A (ja) 制約を課すカスタム化された実装を動的に構築するためのオブジェクト指向機構
Anderson Java™ access control mechanisms
CN114598481B (zh) 一种授权认证方法、装置、电子设备及存储介质
WO2023159900A1 (zh) 远程开发的方法及装置