JPH1069382A - アーキテクチャ中立プログラムの信頼された、アーキテクチャ特定の、コンパイルされたバージョンを生成するシステム及び方法 - Google Patents
アーキテクチャ中立プログラムの信頼された、アーキテクチャ特定の、コンパイルされたバージョンを生成するシステム及び方法Info
- Publication number
- JPH1069382A JPH1069382A JP8328927A JP32892796A JPH1069382A JP H1069382 A JPH1069382 A JP H1069382A JP 8328927 A JP8328927 A JP 8328927A JP 32892796 A JP32892796 A JP 32892796A JP H1069382 A JPH1069382 A JP H1069382A
- Authority
- JP
- Japan
- Prior art keywords
- program
- architecture
- party
- digital signature
- neutral
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】 アーキテクチャ中立(AN)プログラムが信
頼された第三者によってコンパイルされたことを証明で
きるようにコンパイルする装置及び方法を提供する。 【解決手段】 プログラムコンパイリングコンピュータ
はANプログラムの発信パーティーの署名が証明される
とANプログラムのANプログラムコードをアーキテク
チャ特定(AS)言語でASプログラムコードにコンパ
イルし、コンパイリングパーティーの署名を付加してA
Sプログラムを生成する。プログラム実行コンピュータ
は、ANプログラムの発信パーティーの署名及びASプ
ログラムのコンパイリングパーティーの署名が証明さ
れ、コンパイリングパーティーが信頼されたコンパイリ
ングパーティーの限定集合のメンバーであると決定され
るとASプログラムのASプログラムコードを実行す
る。
頼された第三者によってコンパイルされたことを証明で
きるようにコンパイルする装置及び方法を提供する。 【解決手段】 プログラムコンパイリングコンピュータ
はANプログラムの発信パーティーの署名が証明される
とANプログラムのANプログラムコードをアーキテク
チャ特定(AS)言語でASプログラムコードにコンパ
イルし、コンパイリングパーティーの署名を付加してA
Sプログラムを生成する。プログラム実行コンピュータ
は、ANプログラムの発信パーティーの署名及びASプ
ログラムのコンパイリングパーティーの署名が証明さ
れ、コンパイリングパーティーが信頼されたコンパイリ
ングパーティーの限定集合のメンバーであると決定され
るとASプログラムのASプログラムコードを実行す
る。
Description
【0001】
【産業上の利用分野】本発明は、一般的には分布コンピ
ュータシステムに関し、詳しく述べれば、コンパイルさ
れた受信者が対応するアーキテクチャ中立プログラムの
アイデンティティを検証することができ、またそれが信
頼された第三者によってコンパイルされたものであるこ
とを検証することができるように、アーキテクチャ中立
の実行可能なプログラムが信頼された第三者によってコ
ンパイルされるようなプログラムコンパイル( compilat
ion ) システム及び方法に関する。
ュータシステムに関し、詳しく述べれば、コンパイルさ
れた受信者が対応するアーキテクチャ中立プログラムの
アイデンティティを検証することができ、またそれが信
頼された第三者によってコンパイルされたものであるこ
とを検証することができるように、アーキテクチャ中立
の実行可能なプログラムが信頼された第三者によってコ
ンパイルされるようなプログラムコンパイル( compilat
ion ) システム及び方法に関する。
【0002】
【従来の技術】本明細書においては「アーキテクチャ」
とは、コンピュータモデルのファミリーの動作特性と定
義する。明確なアーキテクチャの例は、マッキントッシ
ュコンピュータ、DOSまたはウィンドウズオペレーテ
ィングシステムを使用するIBM PCコンパチブルコ
ンピュータ、ソラリスオペレーティングシステムを走ら
せるサン( SUN ) マイクロシステムズコンピュータ、及
びユニックスオペレーティングシステムを使用するコン
ピュータシステムである。本明細書においては「アーキ
テクチャ中立(または不問:neutral )」とは、多くの
異なるコンピュータアーキテクチャを使用する種々のコ
ンピュータプラットフォーム上で実行される Java ( S
un Microsystems, Inc. の商標)言語で書かれたプログ
ラムのような、若干のプログラムの能力と定義する。
とは、コンピュータモデルのファミリーの動作特性と定
義する。明確なアーキテクチャの例は、マッキントッシ
ュコンピュータ、DOSまたはウィンドウズオペレーテ
ィングシステムを使用するIBM PCコンパチブルコ
ンピュータ、ソラリスオペレーティングシステムを走ら
せるサン( SUN ) マイクロシステムズコンピュータ、及
びユニックスオペレーティングシステムを使用するコン
ピュータシステムである。本明細書においては「アーキ
テクチャ中立(または不問:neutral )」とは、多くの
異なるコンピュータアーキテクチャを使用する種々のコ
ンピュータプラットフォーム上で実行される Java ( S
un Microsystems, Inc. の商標)言語で書かれたプログ
ラムのような、若干のプログラムの能力と定義する。
【0003】本明細書においては「アーキテクチャ特
定」とは、若干のプログラムを、単一のコンピュータア
ーキテクチャを使用するコンピュータプラットフォーム
上だけで実行させる要求であると定義する。例えば、80
486 アセンブラ言語で書かれたオブジェクト(または目
的)コードプログラムはIBM PCコンパチブルコン
ピュータアーキテクチャを使用するコンピュータ上で
(並びにIBM PCコンパチブルコンピュータエミュ
レータを含む他のコンピュータ内で)のみ実行すること
ができる。アーキテクチャ中立プログラム(ANプログ
ラム)の重要な特色は、アーキテクチャ中立言語(AN
言語)で書かれたプログラムから独立したアーキテクチ
ャを含むことである。例えば Java バイトコードプログ
ラムは、 Java バイトコードインタプリタを有するコン
ピュータプラットフォーム上で実行することができる。
Java バイトコードプログラムの別の重要な特色は、 J
ava バイトコード検証手段による実行の前に、それらの
完全性を直接検証できることである。 Javaバイトコー
ド検証手段は、プログラムが所定の(または、予め定め
られた)完全性基準に準拠するか否かを決定する。この
基準は、オペランドスタック、及びデータ型使用制限と
を含む。このデータ型使用制限は、 Java バイトコード
プログラムが実行コンピュータのオペランドスタックの
オーバフローまたはアンダフローを生じさせないように
し、また全てのプログラム命令が既知のデータ型のデー
タだけを使用することを保証するものである。その結
果、 Java バイトコードプログラムはオブジェクトポイ
ンタを作成することはできず、また一般に、ユーザがそ
れを使用する許可を明示的に与えたもの以外のシステム
資源にアクセスすることはできない。
定」とは、若干のプログラムを、単一のコンピュータア
ーキテクチャを使用するコンピュータプラットフォーム
上だけで実行させる要求であると定義する。例えば、80
486 アセンブラ言語で書かれたオブジェクト(または目
的)コードプログラムはIBM PCコンパチブルコン
ピュータアーキテクチャを使用するコンピュータ上で
(並びにIBM PCコンパチブルコンピュータエミュ
レータを含む他のコンピュータ内で)のみ実行すること
ができる。アーキテクチャ中立プログラム(ANプログ
ラム)の重要な特色は、アーキテクチャ中立言語(AN
言語)で書かれたプログラムから独立したアーキテクチ
ャを含むことである。例えば Java バイトコードプログ
ラムは、 Java バイトコードインタプリタを有するコン
ピュータプラットフォーム上で実行することができる。
Java バイトコードプログラムの別の重要な特色は、 J
ava バイトコード検証手段による実行の前に、それらの
完全性を直接検証できることである。 Javaバイトコー
ド検証手段は、プログラムが所定の(または、予め定め
られた)完全性基準に準拠するか否かを決定する。この
基準は、オペランドスタック、及びデータ型使用制限と
を含む。このデータ型使用制限は、 Java バイトコード
プログラムが実行コンピュータのオペランドスタックの
オーバフローまたはアンダフローを生じさせないように
し、また全てのプログラム命令が既知のデータ型のデー
タだけを使用することを保証するものである。その結
果、 Java バイトコードプログラムはオブジェクトポイ
ンタを作成することはできず、また一般に、ユーザがそ
れを使用する許可を明示的に与えたもの以外のシステム
資源にアクセスすることはできない。
【0004】不幸にも、AN言語内に実行可能なプログ
ラムを分布させると、ANプログラムはアーキテクチャ
特定の特色を利用するよりも低効率で走るようになる。
例えば、 Java バイトコードインタプリタによって実行
される Java バイトコードプログラムは、典型的には対
応するアーキテクチャ特定言語(AS言語でコンパイル
された等価アーキテクチャ特定プログラム(ASプログ
ラム)より 2.5乃至5倍程度遅く走る。5倍の速度低下
は、実際にはANプログラム実行手段( executer :即
ち、インタプリタ)にとって異常に余裕があると考えら
れるが、若干のユーザがAS言語でコンパイルされた等
価プログラムを使用する能力を要求するか、または強要
する程十分に効率を低下させている。ANプログラムを
等価ASプログラムにコンパイルできるコンパイラを書
くことはできる。しかしながら、それらはエンドユーザ
にとって極めて高価である。更に、等価のコンパイルさ
れたASプログラムの完全性は、コンパイルされたAS
プログラムコードからANプログラム完全性検証手段に
よって直接検証することはできない。従って Java バイ
トコードプログラムの場合には、等価ASプログラム内
にコンパイルされたANプログラムを使用すると、AN
言語の最も価値ある特色の一つが潜在的に失われること
になる。
ラムを分布させると、ANプログラムはアーキテクチャ
特定の特色を利用するよりも低効率で走るようになる。
例えば、 Java バイトコードインタプリタによって実行
される Java バイトコードプログラムは、典型的には対
応するアーキテクチャ特定言語(AS言語でコンパイル
された等価アーキテクチャ特定プログラム(ASプログ
ラム)より 2.5乃至5倍程度遅く走る。5倍の速度低下
は、実際にはANプログラム実行手段( executer :即
ち、インタプリタ)にとって異常に余裕があると考えら
れるが、若干のユーザがAS言語でコンパイルされた等
価プログラムを使用する能力を要求するか、または強要
する程十分に効率を低下させている。ANプログラムを
等価ASプログラムにコンパイルできるコンパイラを書
くことはできる。しかしながら、それらはエンドユーザ
にとって極めて高価である。更に、等価のコンパイルさ
れたASプログラムの完全性は、コンパイルされたAS
プログラムコードからANプログラム完全性検証手段に
よって直接検証することはできない。従って Java バイ
トコードプログラムの場合には、等価ASプログラム内
にコンパイルされたANプログラムを使用すると、AN
言語の最も価値ある特色の一つが潜在的に失われること
になる。
【0005】しかしながら、完全性検証不能ASプログ
ラムによって遂行することはできるが、完全性検証可能
ANプログラムによっては遂行できない若干の適正な
(または正当な)タスクが存在している。これらは、そ
のようにしなければオペランドスタック、及び完全性検
証可能なANプログラムに賦課されるデータ型使用制限
を侵害するタスクを含む。更に、これらのASプログラ
ムは、ANプログラムよりも遙かに早く実行することが
できる。その結果、完全性検証可能なANプログラムを
主として実行するだけではなく、完全性検証不能なAS
プログラムを実行する能力をも有するように設計された
コンピュータシステムが何故望まれているのかという多
くの理由が存在している。第三者によるANプログラム
のコンパイルは可能であるが、これらのコンパイルはそ
の第三者を認証することを要求する。即ち、コンパイル
されたASプログラム内の情報から、それが特定の信頼
された第三者によってコンパイルされたことを検証でき
るようにしなければならない。より良くするには、その
コンパイルされたASプログラムが特定の信頼されたコ
ンパイラによって生成されたことを認証できるようにも
すべきである。また、所定の完全性基準に対して、コン
パイルされたASプログラムの完全性を直接検証するこ
とはできないから、コンパイルされたASプログラムは
そのASプログラムをコンパイルした対応ANプログラ
ム、及びASプログラムをコンパイルするのに使用した
AS言語を識別する情報を検証可能な手法で含むべきで
ある。
ラムによって遂行することはできるが、完全性検証可能
ANプログラムによっては遂行できない若干の適正な
(または正当な)タスクが存在している。これらは、そ
のようにしなければオペランドスタック、及び完全性検
証可能なANプログラムに賦課されるデータ型使用制限
を侵害するタスクを含む。更に、これらのASプログラ
ムは、ANプログラムよりも遙かに早く実行することが
できる。その結果、完全性検証可能なANプログラムを
主として実行するだけではなく、完全性検証不能なAS
プログラムを実行する能力をも有するように設計された
コンピュータシステムが何故望まれているのかという多
くの理由が存在している。第三者によるANプログラム
のコンパイルは可能であるが、これらのコンパイルはそ
の第三者を認証することを要求する。即ち、コンパイル
されたASプログラム内の情報から、それが特定の信頼
された第三者によってコンパイルされたことを検証でき
るようにしなければならない。より良くするには、その
コンパイルされたASプログラムが特定の信頼されたコ
ンパイラによって生成されたことを認証できるようにも
すべきである。また、所定の完全性基準に対して、コン
パイルされたASプログラムの完全性を直接検証するこ
とはできないから、コンパイルされたASプログラムは
そのASプログラムをコンパイルした対応ANプログラ
ム、及びASプログラムをコンパイルするのに使用した
AS言語を識別する情報を検証可能な手法で含むべきで
ある。
【0006】従って、本発明の目的は、対応するANプ
ログラムからコンパイルされたASプログラムのユーザ
が、誰がそのANプログラムをコンパイルしたのかの識
別と、対応するANプログラムのアイデンティティと、
そのASプログラムをコンパイルしたAS言語とを認証
することができるようにしたANプログラムコンパイラ
及びコンパイル方法を提供することである。本発明の別
の目的は、完全性が検証できるANプログラムを実行
し、完全性を検証することはできないが、信頼されてい
るか、または検証可能な源とコンパイル情報とを有する
ASプログラムを呼出すようにし、それによって源、コ
ンパイル情報、及び完全性を検証できないASプログラ
ムが呼出されるのを防ぎながら、本質的に全ての適正な
タスクを遂行することを可能にするANプログラム実行
手段及び実行方法を提供することである。
ログラムからコンパイルされたASプログラムのユーザ
が、誰がそのANプログラムをコンパイルしたのかの識
別と、対応するANプログラムのアイデンティティと、
そのASプログラムをコンパイルしたAS言語とを認証
することができるようにしたANプログラムコンパイラ
及びコンパイル方法を提供することである。本発明の別
の目的は、完全性が検証できるANプログラムを実行
し、完全性を検証することはできないが、信頼されてい
るか、または検証可能な源とコンパイル情報とを有する
ASプログラムを呼出すようにし、それによって源、コ
ンパイル情報、及び完全性を検証できないASプログラ
ムが呼出されるのを防ぎながら、本質的に全ての適正な
タスクを遂行することを可能にするANプログラム実行
手段及び実行方法を提供することである。
【0007】
【課題を解決するための手段】本発明の上記目的は、コ
ンピュータネットワークであって、コンパイリングパー
ティーによって作動され、発信パーティーによって生成
されたアーキテクチャ中立プログラムを受信するプログ
ラムコンパイリングコンピュータを備え、アーキテクチ
ャ中立プログラムはアーキテクチャ中立プログラムコー
ド及び発信パーティーのディジタル署名を含み、ディジ
タル署名は検証時にアーキテクチャ中立プログラムが発
信パーティーによって署名されたことを検証するように
なっており、プログラムコンパイリングコンピュータ
が、発信パーティーのディジタル署名を検証する署名検
証手段と、発信パーティーのディジタル署名が検証され
た時に、(A)アー キテクチャ中立プログラムコード
をアーキテクチャ特定言語でアーキテクチャ特定プログ
ラムコードにコンパイルし、(B)検証時にアーキテク
チャ特定プログラムがコンパイリングパーティーによっ
て生成されたことを検証するコンパイリングパーティー
のディジタル署名を付加することによってアーキテクチ
ャ特定プログラムを生成するコンパイラと、コンパイリ
ングパーティーのディジタル署名を生成する署名発生手
段と、を含み、実行パーティーによって作動され、アー
キテクチャ特定プログラムを受信し、アーキテクチャ中
立プログラムを受信または実行するプログラム実行コン
ピュータを更に備え、プログラム実行コンピュータは、
コンパイリングパーティーのディジタル署名を検証する
署名検証手段と、コンパイリングパーティーの署名が検
証され、コンパイリングパーティーが信頼されたコンパ
イリングパーティーの限定集合のメンバーである時に、
アーキテクチャ特定言語で書かれたアーキテクチャ特定
プログラムコードを実行する実行手段と、を含むコンピ
ュータネットワークによって達成される。
ンピュータネットワークであって、コンパイリングパー
ティーによって作動され、発信パーティーによって生成
されたアーキテクチャ中立プログラムを受信するプログ
ラムコンパイリングコンピュータを備え、アーキテクチ
ャ中立プログラムはアーキテクチャ中立プログラムコー
ド及び発信パーティーのディジタル署名を含み、ディジ
タル署名は検証時にアーキテクチャ中立プログラムが発
信パーティーによって署名されたことを検証するように
なっており、プログラムコンパイリングコンピュータ
が、発信パーティーのディジタル署名を検証する署名検
証手段と、発信パーティーのディジタル署名が検証され
た時に、(A)アー キテクチャ中立プログラムコード
をアーキテクチャ特定言語でアーキテクチャ特定プログ
ラムコードにコンパイルし、(B)検証時にアーキテク
チャ特定プログラムがコンパイリングパーティーによっ
て生成されたことを検証するコンパイリングパーティー
のディジタル署名を付加することによってアーキテクチ
ャ特定プログラムを生成するコンパイラと、コンパイリ
ングパーティーのディジタル署名を生成する署名発生手
段と、を含み、実行パーティーによって作動され、アー
キテクチャ特定プログラムを受信し、アーキテクチャ中
立プログラムを受信または実行するプログラム実行コン
ピュータを更に備え、プログラム実行コンピュータは、
コンパイリングパーティーのディジタル署名を検証する
署名検証手段と、コンパイリングパーティーの署名が検
証され、コンパイリングパーティーが信頼されたコンパ
イリングパーティーの限定集合のメンバーである時に、
アーキテクチャ特定言語で書かれたアーキテクチャ特定
プログラムコードを実行する実行手段と、を含むコンピ
ュータネットワークによって達成される。
【0008】本発明のコンピュータネットワークでは、
署名発生手段は、検証時にアーキテクチャ特定プログラ
ムがコンパイラを用いて生成されたことを検証するコン
パイラのディジタル署名を生成し、コンパイラは更に、
アーキテクチャ特定プログラムコードをコンパイラのデ
ィジタル署名に付加することによってもアーキテクチャ
特定プログラムを生成し、実行コンピュータの署名検証
手段は、コンパイラのディジタル署名を検証し、実行手
段は、コンパイラのディジタル署名が検証され、コンパ
イラが信頼されたコンパイラの限定集合のメンバーであ
ることが決定された後に限って、アーキテクチャ特定プ
ログラムコードを実行するように構成してもよい。本発
明のコンピュータネットワークでは、発信パーティー及
びコンパイリングパーティーのために、ネットワークは
対応する私用暗号化キー、公開暗号化キー、及び対応す
るハッシュ機能を含み、発信パーティーのディジタル署
名は、アーキテクチャ中立プログラムに対して発信パー
ティーの対応するハッシュ機能を遂行することによって
生成したアーキテクチャ中立プログラムのメッセージダ
イジェストを含み、アーキテクチャ中立プログラムのメ
ッセージダイジェストは、発信パーティーの対応する私
用キーを用いて暗号化されており、プログラムコンパイ
リングコンピュータの署名検証手段は、(A)発信パー
ティーの公開暗号化キーを用いてアーキテクチャ中立プ
ログラムのメッセージダイジェストを暗号解除し、
(B)アーキテクチャ中立プログラムコードに対して発
信パーティーのハッシュ機能を遂行することによってア
ーキテクチャ中立プログラムの対応する試験メッセージ
ダイジェストを生成し、そして(C)暗号解除されたメ
ッセージダイジェストとアーキテクチャ中立プログラム
の試験メッセージダイジェストとを比較することによっ
て発信パーティーのディジタル署名を検証させる命令を
含み、署名発生手段は、(A)アーキテクチャ特定プロ
グラムコードに対してコンパイリングパーティーの対応
するハッシュ機能を遂行することによってアーキテクチ
ャ中立プログラムのメッセージダイジェストを生成し、
そして(B)コンパイリングパーティーの対応する私用
キーを用いてアーキテクチャ特定プログラムのメッセー
ジダイジェストを暗号化することによってコンパイリン
グパーティーのディジタル署名を生成させるための命令
を含み、プログラム実行コンピュータの署名検証手段
は、(A)コンパイリングパーティーの対応する公開キ
ーを用いてアーキテクチャ特定プログラムのメッセージ
ダイジェストを暗号解除し、(B)アーキテクチャ特定
プログラムコードに対してコンパイリングパーティーの
ハッシュ機能を遂行することによってアーキテクチャ特
定プログラムの対応する試験メッセージダイジェストを
生成し、そして(C)暗号解除されたメッセージダイジ
ェストとアーキテクチャ特定プログラムの試験メッセー
ジダイジェストとを比較することによってコンパイリン
グパーティーのディジタル署名を検証させる命令を含む
ように構成してもよい。
署名発生手段は、検証時にアーキテクチャ特定プログラ
ムがコンパイラを用いて生成されたことを検証するコン
パイラのディジタル署名を生成し、コンパイラは更に、
アーキテクチャ特定プログラムコードをコンパイラのデ
ィジタル署名に付加することによってもアーキテクチャ
特定プログラムを生成し、実行コンピュータの署名検証
手段は、コンパイラのディジタル署名を検証し、実行手
段は、コンパイラのディジタル署名が検証され、コンパ
イラが信頼されたコンパイラの限定集合のメンバーであ
ることが決定された後に限って、アーキテクチャ特定プ
ログラムコードを実行するように構成してもよい。本発
明のコンピュータネットワークでは、発信パーティー及
びコンパイリングパーティーのために、ネットワークは
対応する私用暗号化キー、公開暗号化キー、及び対応す
るハッシュ機能を含み、発信パーティーのディジタル署
名は、アーキテクチャ中立プログラムに対して発信パー
ティーの対応するハッシュ機能を遂行することによって
生成したアーキテクチャ中立プログラムのメッセージダ
イジェストを含み、アーキテクチャ中立プログラムのメ
ッセージダイジェストは、発信パーティーの対応する私
用キーを用いて暗号化されており、プログラムコンパイ
リングコンピュータの署名検証手段は、(A)発信パー
ティーの公開暗号化キーを用いてアーキテクチャ中立プ
ログラムのメッセージダイジェストを暗号解除し、
(B)アーキテクチャ中立プログラムコードに対して発
信パーティーのハッシュ機能を遂行することによってア
ーキテクチャ中立プログラムの対応する試験メッセージ
ダイジェストを生成し、そして(C)暗号解除されたメ
ッセージダイジェストとアーキテクチャ中立プログラム
の試験メッセージダイジェストとを比較することによっ
て発信パーティーのディジタル署名を検証させる命令を
含み、署名発生手段は、(A)アーキテクチャ特定プロ
グラムコードに対してコンパイリングパーティーの対応
するハッシュ機能を遂行することによってアーキテクチ
ャ中立プログラムのメッセージダイジェストを生成し、
そして(B)コンパイリングパーティーの対応する私用
キーを用いてアーキテクチャ特定プログラムのメッセー
ジダイジェストを暗号化することによってコンパイリン
グパーティーのディジタル署名を生成させるための命令
を含み、プログラム実行コンピュータの署名検証手段
は、(A)コンパイリングパーティーの対応する公開キ
ーを用いてアーキテクチャ特定プログラムのメッセージ
ダイジェストを暗号解除し、(B)アーキテクチャ特定
プログラムコードに対してコンパイリングパーティーの
ハッシュ機能を遂行することによってアーキテクチャ特
定プログラムの対応する試験メッセージダイジェストを
生成し、そして(C)暗号解除されたメッセージダイジ
ェストとアーキテクチャ特定プログラムの試験メッセー
ジダイジェストとを比較することによってコンパイリン
グパーティーのディジタル署名を検証させる命令を含む
ように構成してもよい。
【0009】本発明のコンピュータ・ネットワークで
は、プログラム実行コンピュータは更に、アーキテクチ
ャ中立プログラムコードが所定のプログラム完全性基準
を満足することを検証することによってアーキテクチャ
中立プログラムコードの完全性を検証するアーキテクチ
ャ中立プログラム完全性検証手段を含み、実行手段は、
アーキテクチャ中立プログラムコードの完全性が検証さ
れた後に限って、アーキテクチャ特定プログラムコード
を実行するように構成してもよい。本発明のコンピュー
タネットワークでは、アーキテクチャ中立プログラムを
供給するプログラム発信コンピュータを更に備え、プロ
グラム発信コンピュータは、アーキテクチャ中立プログ
ラムコードに付加される発信パーティーのディジタル署
名を生成する署名発生手段を含み、プログラム発信コン
ピュータと連絡してプログラム発信コンピュータからア
ーキテクチャ中立プログラムを受信し、アーキテクチャ
特定プログラムをプログラム発信コンピュータへ供給す
るプログラムコンパイリングコンピュータを更に備え、
プログラム実行コンピュータはプログラム発信コンピュ
ータと連絡してプログラム発信コンピュータからアーキ
テクチャ中立プログラム及びアーキテクチャ特定プログ
ラムを受信し、プログラム実行コンピュータの署名検証
手段は、発信パーティーのディジタル署名をも検証し、
プログラム実行コンピュータは、発信パーティーのディ
ジタル署名が検証された後に限ってアーキテクチャ特定
プログラムを実行するように構成してもよい。
は、プログラム実行コンピュータは更に、アーキテクチ
ャ中立プログラムコードが所定のプログラム完全性基準
を満足することを検証することによってアーキテクチャ
中立プログラムコードの完全性を検証するアーキテクチ
ャ中立プログラム完全性検証手段を含み、実行手段は、
アーキテクチャ中立プログラムコードの完全性が検証さ
れた後に限って、アーキテクチャ特定プログラムコード
を実行するように構成してもよい。本発明のコンピュー
タネットワークでは、アーキテクチャ中立プログラムを
供給するプログラム発信コンピュータを更に備え、プロ
グラム発信コンピュータは、アーキテクチャ中立プログ
ラムコードに付加される発信パーティーのディジタル署
名を生成する署名発生手段を含み、プログラム発信コン
ピュータと連絡してプログラム発信コンピュータからア
ーキテクチャ中立プログラムを受信し、アーキテクチャ
特定プログラムをプログラム発信コンピュータへ供給す
るプログラムコンパイリングコンピュータを更に備え、
プログラム実行コンピュータはプログラム発信コンピュ
ータと連絡してプログラム発信コンピュータからアーキ
テクチャ中立プログラム及びアーキテクチャ特定プログ
ラムを受信し、プログラム実行コンピュータの署名検証
手段は、発信パーティーのディジタル署名をも検証し、
プログラム実行コンピュータは、発信パーティーのディ
ジタル署名が検証された後に限ってアーキテクチャ特定
プログラムを実行するように構成してもよい。
【0010】また、本発明の上記目的は、コンピュータ
ネットワークを動作させる方法であって、コンパイリン
グパーティーによって作動されるプログラムコンパイリ
ングコンピュータにおいて、発信パーティーによって生
成され、アーキテクチャ中立プログラムコード、及び検
証時にアーキテクチャ中立プログラムが発信パーティー
によって署名されたことを検証する発信パーティーのデ
ィジタル署名を含むアーキテクチャ中立プログラムを受
信する段階と、発信パーティーのディジタル署名を検証
する段階と、アーキテクチャ中立プログラムをコンパイ
ラを用いてコンパイルし、発信パーティーのディジタル
署名が検証された時にアーキテクチャ特定プログラムを
生成し、そして検証時にアーキテクチャ特定プログラム
がコンパイリングパーティーによって生成されたことを
検証するコンパイリングパーティーのディジタル署名を
付加する段階と、を含み、実行パーティーによって作動
されるプログラム実行コンピュータにおいて、アーキテ
クチャ特定プログラムを受信し、アーキテクチャ中立プ
ログラムを受信または発信する段階と、コンパイリング
パーティーのディジタル署名を検証する段階と、コンパ
イラのディジタル署名が検証され、コンパイラが信頼さ
れたコンパイラの限定集合のメンバーであることが決定
された時に、アーキテクチャ特定プログラムコードを実
行する段階とを含む方法によって達成される。
ネットワークを動作させる方法であって、コンパイリン
グパーティーによって作動されるプログラムコンパイリ
ングコンピュータにおいて、発信パーティーによって生
成され、アーキテクチャ中立プログラムコード、及び検
証時にアーキテクチャ中立プログラムが発信パーティー
によって署名されたことを検証する発信パーティーのデ
ィジタル署名を含むアーキテクチャ中立プログラムを受
信する段階と、発信パーティーのディジタル署名を検証
する段階と、アーキテクチャ中立プログラムをコンパイ
ラを用いてコンパイルし、発信パーティーのディジタル
署名が検証された時にアーキテクチャ特定プログラムを
生成し、そして検証時にアーキテクチャ特定プログラム
がコンパイリングパーティーによって生成されたことを
検証するコンパイリングパーティーのディジタル署名を
付加する段階と、を含み、実行パーティーによって作動
されるプログラム実行コンピュータにおいて、アーキテ
クチャ特定プログラムを受信し、アーキテクチャ中立プ
ログラムを受信または発信する段階と、コンパイリング
パーティーのディジタル署名を検証する段階と、コンパ
イラのディジタル署名が検証され、コンパイラが信頼さ
れたコンパイラの限定集合のメンバーであることが決定
された時に、アーキテクチャ特定プログラムコードを実
行する段階とを含む方法によって達成される。
【0011】本発明の方法では、プログラムコンパイリ
ングコンピュータにおいて、検証時にアーキテクチャ特
定プログラムがコンパイラを用いて生成されたことを検
証するコンパイラのディジタル署名を生成する段階と、
アーキテクチャ特定プログラムコードにコンパイラのデ
ィジタル署名を付加する段階とを含み、プログラム実行
コンピュータにおいて、コンパイラのディジタル署名を
検証する段階と、コンパイラのディジタル署名が検証さ
れ、コンパイラが信頼されたコンパイラの限定集合のメ
ンバーであることが決定された後に限って、アーキテク
チャ特定プログラムコードを実行する段階と、を含むよ
うにしてもよい。
ングコンピュータにおいて、検証時にアーキテクチャ特
定プログラムがコンパイラを用いて生成されたことを検
証するコンパイラのディジタル署名を生成する段階と、
アーキテクチャ特定プログラムコードにコンパイラのデ
ィジタル署名を付加する段階とを含み、プログラム実行
コンピュータにおいて、コンパイラのディジタル署名を
検証する段階と、コンパイラのディジタル署名が検証さ
れ、コンパイラが信頼されたコンパイラの限定集合のメ
ンバーであることが決定された後に限って、アーキテク
チャ特定プログラムコードを実行する段階と、を含むよ
うにしてもよい。
【0012】本発明の方法では、発信パーティー及びコ
ンパイリングパーティーのために、ネットワークは対応
する私用暗号化キー、公開暗号化キー、及び対応するハ
ッシュ機能を含み、発信パーティーのディジタル署名
は、アーキテクチャ中立プログラムに対して発信パーテ
ィーの対応するハッシュ機能を遂行することによって生
成したアーキテクチャ中立プログラムのメッセージダイ
ジェストを含み、アーキテクチャ中立プログラムのメッ
セージダイジェストは、発信パーティーの対応する私用
キーを用いて暗号化されており、方法は、プログラムコ
ンパイリングコンピュータにおいて、(A)発信パーテ
ィーの公開暗号化キーを用いてアーキテクチャ中立プロ
グラムのメッセージダイジェストを暗号解除し、(B)
アーキテクチャ中立プログラムコードに対して発信パー
ティーのハッシュ機能を遂行することによってアーキテ
クチャ中立プログラムの対応する試験メッセージダイジ
ェストを生成し、そして(C)暗号解除されたメッセー
ジダイジェストとアーキテクチャ中立プログラムの試験
メッセージダイジェストとを比較することによって発信
パーティーのディジタル署名を検証する段階と、(A)
アーキテクチャ特定プログラムコードに対してコンパイ
リングパーティーの対応するハッシュ機能を遂行するこ
とによってアーキテクチャ中立プログラムのメッセージ
ダイジェストを生成し、そして(B)コンパイリングパ
ーティーの対応する私用キーを用いてアーキテクチャ特
定プログラムのメッセージダイジェストを暗号化するこ
とによってコンパイリングパーティーのディジタル署名
を生成する段階と、を含み、プログラム実行コンピュー
タにおいて、(A)コンパイリングパーティーの公開キ
ーを用いてアーキテクチャ特定プログラムのメッセージ
ダイジェストを暗号解除し、(B)アーキテクチャ特定
プログラムコードに対してコンパイリングパーティーの
ハッシュ機能を遂行することによってアーキテクチャ特
定プログラムの対応する試験メッセージダイジェストを
生成し、そして(C)暗号解除されたメッセージダイジ
ェストとアーキテクチャ特定プログラムの試験メッセー
ジダイジェストとを比較することによってコンパイリン
グパーティーのディジタル署名を検証する段階と、を含
むように構成してもよい。
ンパイリングパーティーのために、ネットワークは対応
する私用暗号化キー、公開暗号化キー、及び対応するハ
ッシュ機能を含み、発信パーティーのディジタル署名
は、アーキテクチャ中立プログラムに対して発信パーテ
ィーの対応するハッシュ機能を遂行することによって生
成したアーキテクチャ中立プログラムのメッセージダイ
ジェストを含み、アーキテクチャ中立プログラムのメッ
セージダイジェストは、発信パーティーの対応する私用
キーを用いて暗号化されており、方法は、プログラムコ
ンパイリングコンピュータにおいて、(A)発信パーテ
ィーの公開暗号化キーを用いてアーキテクチャ中立プロ
グラムのメッセージダイジェストを暗号解除し、(B)
アーキテクチャ中立プログラムコードに対して発信パー
ティーのハッシュ機能を遂行することによってアーキテ
クチャ中立プログラムの対応する試験メッセージダイジ
ェストを生成し、そして(C)暗号解除されたメッセー
ジダイジェストとアーキテクチャ中立プログラムの試験
メッセージダイジェストとを比較することによって発信
パーティーのディジタル署名を検証する段階と、(A)
アーキテクチャ特定プログラムコードに対してコンパイ
リングパーティーの対応するハッシュ機能を遂行するこ
とによってアーキテクチャ中立プログラムのメッセージ
ダイジェストを生成し、そして(B)コンパイリングパ
ーティーの対応する私用キーを用いてアーキテクチャ特
定プログラムのメッセージダイジェストを暗号化するこ
とによってコンパイリングパーティーのディジタル署名
を生成する段階と、を含み、プログラム実行コンピュー
タにおいて、(A)コンパイリングパーティーの公開キ
ーを用いてアーキテクチャ特定プログラムのメッセージ
ダイジェストを暗号解除し、(B)アーキテクチャ特定
プログラムコードに対してコンパイリングパーティーの
ハッシュ機能を遂行することによってアーキテクチャ特
定プログラムの対応する試験メッセージダイジェストを
生成し、そして(C)暗号解除されたメッセージダイジ
ェストとアーキテクチャ特定プログラムの試験メッセー
ジダイジェストとを比較することによってコンパイリン
グパーティーのディジタル署名を検証する段階と、を含
むように構成してもよい。
【0013】本発明の方法では、プログラム実行コンピ
ュータにおいて、アーキテクチャ中立プログラムコード
が所定のプログラム完全性基準を満足することを検証す
ることによってアーキテクチャ中立プログラムコードの
完全性を検証する段階と、アーキテクチャ中立プログラ
ムコードの完全性が検証された後に限って、アーキテク
チャ特定プログラムコードを実行する段階と、を含むよ
うに構成してもよい。本発明の方法では、アーキテクチ
ャ中立プログラムを供給するプログラム発信コンピュー
タにおいて、発信パーティーのディジタル署名を生成
し、それをアーキテクチャ中立プログラムコードに付加
する段階を含み、プログラムコンパイリングコンピュー
タにおいて、プログラム発信コンピュータと連絡してプ
ログラム発信コンピュータからアーキテクチャ中立プロ
グラムを受信し、アーキテクチャ特定プログラムをプロ
グラム発信コンピュータへ供給する段階を含み、プログ
ラム実行コンピュータにおいて、プログラム発信コンピ
ュータと連絡してプログラム発信コンピュータからアー
キテクチャ中立プログラム及びアーキテクチャ特定プロ
グラムを受信する段階と、発信パーティーのディジタル
署名を検証する段階と、発信パーティーのディジタル署
名が検証された後に限ってアーキテクチャ特定プログラ
ムを実行する段階と、を含むように構成してもよい。
ュータにおいて、アーキテクチャ中立プログラムコード
が所定のプログラム完全性基準を満足することを検証す
ることによってアーキテクチャ中立プログラムコードの
完全性を検証する段階と、アーキテクチャ中立プログラ
ムコードの完全性が検証された後に限って、アーキテク
チャ特定プログラムコードを実行する段階と、を含むよ
うに構成してもよい。本発明の方法では、アーキテクチ
ャ中立プログラムを供給するプログラム発信コンピュー
タにおいて、発信パーティーのディジタル署名を生成
し、それをアーキテクチャ中立プログラムコードに付加
する段階を含み、プログラムコンパイリングコンピュー
タにおいて、プログラム発信コンピュータと連絡してプ
ログラム発信コンピュータからアーキテクチャ中立プロ
グラムを受信し、アーキテクチャ特定プログラムをプロ
グラム発信コンピュータへ供給する段階を含み、プログ
ラム実行コンピュータにおいて、プログラム発信コンピ
ュータと連絡してプログラム発信コンピュータからアー
キテクチャ中立プログラム及びアーキテクチャ特定プロ
グラムを受信する段階と、発信パーティーのディジタル
署名を検証する段階と、発信パーティーのディジタル署
名が検証された後に限ってアーキテクチャ特定プログラ
ムを実行する段階と、を含むように構成してもよい。
【0014】本発明の方法では、プログラム実行コンピ
ュータにおいて、アーキテクチャ中立プログラムを供給
する段階と、アーキテクチャ中立プログラムに署名する
発信パーティーのディジタル署名を生成し、それをアー
キテクチャ中立プログラムコードに付加する段階と、を
含み、プログラムコンパイリングコンピュータにおい
て、プログラム実行コンピュータと連絡してプログラム
実行コンピュータからアーキテクチャ中立プログラムを
受信し、アーキテクチャ特定プログラムをプログラム実
行コンピュータへ供給する段階を含むように構成しても
よい。
ュータにおいて、アーキテクチャ中立プログラムを供給
する段階と、アーキテクチャ中立プログラムに署名する
発信パーティーのディジタル署名を生成し、それをアー
キテクチャ中立プログラムコードに付加する段階と、を
含み、プログラムコンパイリングコンピュータにおい
て、プログラム実行コンピュータと連絡してプログラム
実行コンピュータからアーキテクチャ中立プログラムを
受信し、アーキテクチャ特定プログラムをプログラム実
行コンピュータへ供給する段階を含むように構成しても
よい。
【0015】更に本発明の上記目的は、コンピュータ読
取り可能な媒体上に格納され、コンピュータによって実
行可能なコードを分配するシステムであって、コードは
各々がコンピュータの1つによって実行される少なくと
も1つの機能を遂行するように構成されている複数のモ
ジュールを含み、システムは、コンパイリングパーティ
ーによって作動され、プログラムコンパイリングコンピ
ュータと共に使用するように構成されている第1のモジ
ュールを備え、コンパイリングパーティーは、発信パー
ティーによって生成されるアーキテクチャ中立プログラ
ムを受信し、アーキテクチャ中立プログラムはアーキテ
クチャ中立プログラムコード及び発信パーティーのディ
ジタル署名を含み、ディジタル署名は検証時にアーキテ
クチャ中立プログラムが発信パーティーによって署名さ
れたことを検証するようになっており、第1のモジュー
ルは、発信パーティーのディジタル署名を検証する署名
検証手段と、発信パーティーのディジタル署名が検証さ
れた時に、(A)アーキテクチャ中立プログラムコード
をアーキテクチャ特定言語でアーキテクチャ特定プログ
ラムコードにコンパイルし、(B)検証時にアーキテク
チャ特定プログラムがコンパイリングパーティーによっ
て生成されたことを検証するコンパイリングパーティー
のディジタル署名を付加することによってアーキテクチ
ャ特定プログラムを生成するコンパイラと、コンパイリ
ングパーティーのディジタル署名を生成する署名発生手
段と、を含み、実行パーティーによって作動され、プロ
グラム実行コンピュータと共に使用される第2のモジュ
ールを更に備え、実行パーティーはアーキテクチャ特定
プログラムを受信し、アーキテクチャ中立プログラムを
受信または発信し、第2のモジュールは、コンパイリン
グパーティーのディジタル署名を検証する署名検証手段
と、コンパイリングパーティーの署名が検証され、コン
パイリングパーティーが信頼されたコンパイリングパー
ティーの限定集合のメンバーである時に、アーキテクチ
ャ特定言語で書かれたアーキテクチャ特定プログラムコ
ードを実行する実行手段と、を含むシステムによって達
成される。
取り可能な媒体上に格納され、コンピュータによって実
行可能なコードを分配するシステムであって、コードは
各々がコンピュータの1つによって実行される少なくと
も1つの機能を遂行するように構成されている複数のモ
ジュールを含み、システムは、コンパイリングパーティ
ーによって作動され、プログラムコンパイリングコンピ
ュータと共に使用するように構成されている第1のモジ
ュールを備え、コンパイリングパーティーは、発信パー
ティーによって生成されるアーキテクチャ中立プログラ
ムを受信し、アーキテクチャ中立プログラムはアーキテ
クチャ中立プログラムコード及び発信パーティーのディ
ジタル署名を含み、ディジタル署名は検証時にアーキテ
クチャ中立プログラムが発信パーティーによって署名さ
れたことを検証するようになっており、第1のモジュー
ルは、発信パーティーのディジタル署名を検証する署名
検証手段と、発信パーティーのディジタル署名が検証さ
れた時に、(A)アーキテクチャ中立プログラムコード
をアーキテクチャ特定言語でアーキテクチャ特定プログ
ラムコードにコンパイルし、(B)検証時にアーキテク
チャ特定プログラムがコンパイリングパーティーによっ
て生成されたことを検証するコンパイリングパーティー
のディジタル署名を付加することによってアーキテクチ
ャ特定プログラムを生成するコンパイラと、コンパイリ
ングパーティーのディジタル署名を生成する署名発生手
段と、を含み、実行パーティーによって作動され、プロ
グラム実行コンピュータと共に使用される第2のモジュ
ールを更に備え、実行パーティーはアーキテクチャ特定
プログラムを受信し、アーキテクチャ中立プログラムを
受信または発信し、第2のモジュールは、コンパイリン
グパーティーのディジタル署名を検証する署名検証手段
と、コンパイリングパーティーの署名が検証され、コン
パイリングパーティーが信頼されたコンパイリングパー
ティーの限定集合のメンバーである時に、アーキテクチ
ャ特定言語で書かれたアーキテクチャ特定プログラムコ
ードを実行する実行手段と、を含むシステムによって達
成される。
【0016】本発明のシステムでは、署名発生手段は、
検証時にアーキテクチャ特定プログラムがコンパイラを
用いて生成されたことを検証するコンパイラのディジタ
ル署名を生成し、第1のモジュールは、アーキテクチャ
特定プログラムコードをコンパイラのディジタル署名に
付加し第2のモジュールの署名検証手段は、コンパイラ
のディジタル署名を検証し、第2のモジュールの実行手
段は、コンパイラのディジタル署名が検証され、コンパ
イラが信頼されたコンパイラの限定集合のメンバーであ
ることが決定された後に限って、アーキテクチャ特定プ
ログラムコードを実行するように構成してもよい。
検証時にアーキテクチャ特定プログラムがコンパイラを
用いて生成されたことを検証するコンパイラのディジタ
ル署名を生成し、第1のモジュールは、アーキテクチャ
特定プログラムコードをコンパイラのディジタル署名に
付加し第2のモジュールの署名検証手段は、コンパイラ
のディジタル署名を検証し、第2のモジュールの実行手
段は、コンパイラのディジタル署名が検証され、コンパ
イラが信頼されたコンパイラの限定集合のメンバーであ
ることが決定された後に限って、アーキテクチャ特定プ
ログラムコードを実行するように構成してもよい。
【0017】本発明のシステムでは、発信パーティー及
びコンパイリングパーティーのために、システムは対応
する私用暗号化キー、公開暗号化キー、及び対応するハ
ッシュ機能を含み、発信パーティーのディジタル署名
は、アーキテクチャ中立プログラムに対して発信パーテ
ィーの対応するハッシュ機能を遂行することによって生
成したアーキテクチャ中立プログラムのメッセージダイ
ジェストを含み、アーキテクチャ中立プログラムのメッ
セージダイジェストは、発信パーティーの対応する私用
キーを用いて暗号化されており、第1のモジュールの署
名検証手段は、(A)発信パーティーの公開暗号化キー
を用いてアーキテクチャ中立プログラムのメッセージダ
イジェストを暗号解除し、(B)アーキテクチャ中立プ
ログラムコードに対して発信パーティーのハッシュ機能
を遂行することによってアーキテクチャ中立プログラム
の対応する試験メッセージダイジェストを生成し、そし
て(C)暗号解除されたメッセージダイジェストとアー
キテクチャ中立プログラムの試験メッセージダイジェス
トとを比較することによって発信パーティーのディジタ
ル署名を検証させる命令を含み、第1のモジュールの署
名発生手段は、(A)アーキテクチャ特定プログラムコ
ードに対してコンパイリングパーティーの対応するハッ
シュ機能を遂行することによってアーキテクチャ中立プ
ログラムのメッセージダイジェストを生成し、そして
(B)コンパイリングパーティーの対応する私用キーを
用いてアーキテクチャ特定プログラムのメッセージダイ
ジェストを暗号化することによってコンパイリングパー
ティーのディジタル署名を生成させるための命令を含
み、第2のモジュールの署名検証手段は、(A)コンパ
イリングパーティーの対応する公開キーを用いてアーキ
テクチャ特定プログラムのメッセージダイジェストを暗
号解除し、(B)アーキテクチャ特定プログラムコード
に対してコンパイリングパーティーのハッシュ機能を遂
行することによってアーキテクチャ特定プログラムの対
応する試験メッセージダイジェストを生成し、そして
(C)暗号解除されたメッセージダイジェストとアーキ
テクチャ特定プログラムの試験メッセージダイジェスト
とを比較することによってコンパイリングパーティーの
ディジタル署名を検証させる命令を含むように構成して
もよい。
びコンパイリングパーティーのために、システムは対応
する私用暗号化キー、公開暗号化キー、及び対応するハ
ッシュ機能を含み、発信パーティーのディジタル署名
は、アーキテクチャ中立プログラムに対して発信パーテ
ィーの対応するハッシュ機能を遂行することによって生
成したアーキテクチャ中立プログラムのメッセージダイ
ジェストを含み、アーキテクチャ中立プログラムのメッ
セージダイジェストは、発信パーティーの対応する私用
キーを用いて暗号化されており、第1のモジュールの署
名検証手段は、(A)発信パーティーの公開暗号化キー
を用いてアーキテクチャ中立プログラムのメッセージダ
イジェストを暗号解除し、(B)アーキテクチャ中立プ
ログラムコードに対して発信パーティーのハッシュ機能
を遂行することによってアーキテクチャ中立プログラム
の対応する試験メッセージダイジェストを生成し、そし
て(C)暗号解除されたメッセージダイジェストとアー
キテクチャ中立プログラムの試験メッセージダイジェス
トとを比較することによって発信パーティーのディジタ
ル署名を検証させる命令を含み、第1のモジュールの署
名発生手段は、(A)アーキテクチャ特定プログラムコ
ードに対してコンパイリングパーティーの対応するハッ
シュ機能を遂行することによってアーキテクチャ中立プ
ログラムのメッセージダイジェストを生成し、そして
(B)コンパイリングパーティーの対応する私用キーを
用いてアーキテクチャ特定プログラムのメッセージダイ
ジェストを暗号化することによってコンパイリングパー
ティーのディジタル署名を生成させるための命令を含
み、第2のモジュールの署名検証手段は、(A)コンパ
イリングパーティーの対応する公開キーを用いてアーキ
テクチャ特定プログラムのメッセージダイジェストを暗
号解除し、(B)アーキテクチャ特定プログラムコード
に対してコンパイリングパーティーのハッシュ機能を遂
行することによってアーキテクチャ特定プログラムの対
応する試験メッセージダイジェストを生成し、そして
(C)暗号解除されたメッセージダイジェストとアーキ
テクチャ特定プログラムの試験メッセージダイジェスト
とを比較することによってコンパイリングパーティーの
ディジタル署名を検証させる命令を含むように構成して
もよい。
【0018】
【作用】要約すれば、本発明は、プログラムコンパイリ
ングコンピュータ及びプログラム実行コンピュータを備
えているコンピュータネットワークである。プログラム
コンパイリングコンピュータは、コンパイリングパーテ
ィーによって作動され、発信パーティーによって生成さ
れたアーキテクチャ中立プログラムを格納する記憶シス
テムを含んでいる。アーキテクチャ中立プログラムは、
アーキテクチャ中立プログラムコード及び発信パーティ
ーのディジタル署名を含む。プログラムコンパイリング
コンピュータは、発信パーティーのディジタル署名を検
証して発信パーティーのディジタル署名が(該署名が結
びつけられている)アーキテクチャ中立プログラムと、
発信パーティーの署名とが一致する(即ち、該署名を使
用して生成された)ことを検証する署名検証手段をも含
んでいる。
ングコンピュータ及びプログラム実行コンピュータを備
えているコンピュータネットワークである。プログラム
コンパイリングコンピュータは、コンパイリングパーテ
ィーによって作動され、発信パーティーによって生成さ
れたアーキテクチャ中立プログラムを格納する記憶シス
テムを含んでいる。アーキテクチャ中立プログラムは、
アーキテクチャ中立プログラムコード及び発信パーティ
ーのディジタル署名を含む。プログラムコンパイリング
コンピュータは、発信パーティーのディジタル署名を検
証して発信パーティーのディジタル署名が(該署名が結
びつけられている)アーキテクチャ中立プログラムと、
発信パーティーの署名とが一致する(即ち、該署名を使
用して生成された)ことを検証する署名検証手段をも含
んでいる。
【0019】プログラムコンパイリングコンピュータ
は、コンパイラを更に含んでいる。このコンパイラは、
発信パーティーのディジタル署名が検証された時に、ア
ーキテクチャ中立プログラムコードを、情報のコンパイ
ルによって識別されたアーキテクチャ特定言語でアーキ
テクチャ特定プログラムコードにコンパイルする。コン
パイラは、署名発生手段を使用してアーキテクチャ特定
プログラムコードにコンパイラプログラムのディジタル
署名を付加する(このコンパイラ署名は、コンパイルさ
れたアーキテクチャ特定プログラムコード+アーキテク
チャ中立プログラム上の署名を含む情報のセットを署名
する)。好ましい実施例では、コンパイラは署名発生手
段を使用して、アーキテクチャ特定プログラムコードに
コンパイリングパーティーのディジタル署名をも付加す
る(このコンパイリングパーティー署名は、コンパイル
されたアーキテクチャ特定プログラムコードと、アーキ
テクチャ中立プログラム上の署名と、コンパイラ署名と
を含む情報のセットを署名する)。
は、コンパイラを更に含んでいる。このコンパイラは、
発信パーティーのディジタル署名が検証された時に、ア
ーキテクチャ中立プログラムコードを、情報のコンパイ
ルによって識別されたアーキテクチャ特定言語でアーキ
テクチャ特定プログラムコードにコンパイルする。コン
パイラは、署名発生手段を使用してアーキテクチャ特定
プログラムコードにコンパイラプログラムのディジタル
署名を付加する(このコンパイラ署名は、コンパイルさ
れたアーキテクチャ特定プログラムコード+アーキテク
チャ中立プログラム上の署名を含む情報のセットを署名
する)。好ましい実施例では、コンパイラは署名発生手
段を使用して、アーキテクチャ特定プログラムコードに
コンパイリングパーティーのディジタル署名をも付加す
る(このコンパイリングパーティー署名は、コンパイル
されたアーキテクチャ特定プログラムコードと、アーキ
テクチャ中立プログラム上の署名と、コンパイラ署名と
を含む情報のセットを署名する)。
【0020】プログラム実行コンピュータは、実行パー
ティーによって作動され、アーキテクチャ中立プログラ
ム及びアーキテクチャ特定プログラムを格納する記憶手
段を含んでいる。プログラム実行コンピュータは更に、
(A)アーキテクチャ中立プログラム内の発信パーティ
ーのディジタル署名を検証し、(B)アーキテクチャ特
定プログラム内のコンパイラのディジタル署名、及び/
またはアーキテクチャ特定プログラム内のコンパイリン
グパーティーのディジタル署名を検証する署名検証手段
をも含んでいる。「署名を検証する」とは、ある手順が
遂行されてその署名が、その署名によって署名されてい
る情報のセットと一致する(即ち、実際にそれから生成
された)と決定することを意味する。プログラム実行コ
ンピュータは更に、アーキテクチャ特定プログラム実行
手段をも含む。このアーキテクチャ特定プログラム実行
手段は、アーキテクチャ特定プログラム内のディジタル
署名が検証されると、そのアーキテクチャ特定プログラ
ムのアーキテクチャ特定プログラムコードを実行する。
ティーによって作動され、アーキテクチャ中立プログラ
ム及びアーキテクチャ特定プログラムを格納する記憶手
段を含んでいる。プログラム実行コンピュータは更に、
(A)アーキテクチャ中立プログラム内の発信パーティ
ーのディジタル署名を検証し、(B)アーキテクチャ特
定プログラム内のコンパイラのディジタル署名、及び/
またはアーキテクチャ特定プログラム内のコンパイリン
グパーティーのディジタル署名を検証する署名検証手段
をも含んでいる。「署名を検証する」とは、ある手順が
遂行されてその署名が、その署名によって署名されてい
る情報のセットと一致する(即ち、実際にそれから生成
された)と決定することを意味する。プログラム実行コ
ンピュータは更に、アーキテクチャ特定プログラム実行
手段をも含む。このアーキテクチャ特定プログラム実行
手段は、アーキテクチャ特定プログラム内のディジタル
署名が検証されると、そのアーキテクチャ特定プログラ
ムのアーキテクチャ特定プログラムコードを実行する。
【0021】好ましい実施例では、アーキテクチャ中立
プログラムは、それに独特に関連付けられたメッセージ
ダイジェストを含むディジタル署名を含むオブジェクト
内に実現されている。コンパイラによって生成されたア
ーキテクチャ特定プログラムは、 * コンパイルされた、アーキテクチャ特定コード、 * アーキテクチャ中立プログラムを供給したパーティ
ーによって署名された対応するアーキテクチャ中立プロ
グラムのディジタル署名、 * コンパイルされたプログラムのメッセージダイジェ
スト及びプログラムをコンパイルするのに使用したコン
パイラを識別する情報を含み、コンパイラの私用暗号化
キーを使用して署名されたコンパイラ自身によるディジ
タル署名、 * コンパイルされたプログラムのメッセージダイジェ
スト及び信頼されたパーティーを識別する情報を含み、
コンパイリングパーティーの私用暗号化キーを使用して
署名されたコンパイルを遂行する信頼されたパーティー
によるディジタル署名、を含む。
プログラムは、それに独特に関連付けられたメッセージ
ダイジェストを含むディジタル署名を含むオブジェクト
内に実現されている。コンパイラによって生成されたア
ーキテクチャ特定プログラムは、 * コンパイルされた、アーキテクチャ特定コード、 * アーキテクチャ中立プログラムを供給したパーティ
ーによって署名された対応するアーキテクチャ中立プロ
グラムのディジタル署名、 * コンパイルされたプログラムのメッセージダイジェ
スト及びプログラムをコンパイルするのに使用したコン
パイラを識別する情報を含み、コンパイラの私用暗号化
キーを使用して署名されたコンパイラ自身によるディジ
タル署名、 * コンパイルされたプログラムのメッセージダイジェ
スト及び信頼されたパーティーを識別する情報を含み、
コンパイリングパーティーの私用暗号化キーを使用して
署名されたコンパイルを遂行する信頼されたパーティー
によるディジタル署名、を含む。
【0022】ネーミングサービスと呼ばれることがあ
る、広く使用可能な公開暗号化キーの信頼されたストレ
ージ(貯蔵)手段は、コンパイラ及び信頼されたコンパ
イリングパーティーのための公開キーを保持している。
これらの公開キーを使用して、コンパイルされたプログ
ラムの全ての受信手段は、コンパイルされたプログラム
内のディジタル署名を暗号解除し、そのコンパイルされ
たプログラムが指示された信頼されたパーティーによっ
て、及び指示されたコンパイラによってコンパイルされ
たこと、並びに対応するアーキテクチャ中立プログラム
のアイデンティティを検証することができる。本発明の
付加的な目的及び特色は、以下の添付図面に基づく詳細
な説明からより容易に明白になるであろう。
る、広く使用可能な公開暗号化キーの信頼されたストレ
ージ(貯蔵)手段は、コンパイラ及び信頼されたコンパ
イリングパーティーのための公開キーを保持している。
これらの公開キーを使用して、コンパイルされたプログ
ラムの全ての受信手段は、コンパイルされたプログラム
内のディジタル署名を暗号解除し、そのコンパイルされ
たプログラムが指示された信頼されたパーティーによっ
て、及び指示されたコンパイラによってコンパイルされ
たこと、並びに対応するアーキテクチャ中立プログラム
のアイデンティティを検証することができる。本発明の
付加的な目的及び特色は、以下の添付図面に基づく詳細
な説明からより容易に明白になるであろう。
【0023】
【実施例】図1に、多くの顧客コンピュータ102、サ
ーバコンピュータ104、及び信頼されたキーストレー
ジ手段106を有するコンピュータネットワーク100
を示す。顧客コンピュータ102はネットワーク通信接
続108を介して互いに、及びサーバコンピュータ10
4及び信頼されたキーストレージ手段106に接続され
ている。ネットワーク通信接続108は、ローカルまた
はワイドエリアネットワーク、インタネット、これらの
ネットワークの組合わせ、または他の型のネットワーク
通信接続であって差し支えない。殆どの顧客コンピュー
タ102は、サン( Sun ) ワークステーション、IBM
コンパチブルコンピュータ、及びマッキントッシュコン
ピュータのようなデスクトップコンピュータであるが、
実質的にどのような型のコンピュータも顧客コンピュー
タであることができる。これらの各顧客コンピュータ
は、CPU110、ユーザインタフェース112、メモ
リ114、及びネットワーク通信インタフェース116
を含んでいる。ネットワーク通信インタフェースは、顧
客コンピュータがネットワーク通信接続106を介して
互いに、サーバコンピュータ104と、及び信頼された
キーストレージ手段108と通信できるようにする。
ーバコンピュータ104、及び信頼されたキーストレー
ジ手段106を有するコンピュータネットワーク100
を示す。顧客コンピュータ102はネットワーク通信接
続108を介して互いに、及びサーバコンピュータ10
4及び信頼されたキーストレージ手段106に接続され
ている。ネットワーク通信接続108は、ローカルまた
はワイドエリアネットワーク、インタネット、これらの
ネットワークの組合わせ、または他の型のネットワーク
通信接続であって差し支えない。殆どの顧客コンピュー
タ102は、サン( Sun ) ワークステーション、IBM
コンパチブルコンピュータ、及びマッキントッシュコン
ピュータのようなデスクトップコンピュータであるが、
実質的にどのような型のコンピュータも顧客コンピュー
タであることができる。これらの各顧客コンピュータ
は、CPU110、ユーザインタフェース112、メモ
リ114、及びネットワーク通信インタフェース116
を含んでいる。ネットワーク通信インタフェースは、顧
客コンピュータがネットワーク通信接続106を介して
互いに、サーバコンピュータ104と、及び信頼された
キーストレージ手段108と通信できるようにする。
【0024】各顧客コンピュータ102のメモリ114
は、オペレーティングシステム118、ネットワーク通
信管理手段120、ANプログラム(アーキテクチャ中
立プログラム)実行手段122、ASプログラム(アー
キテクチャ特定プログラム)実行手段124、ANプロ
グラム完全性検証手段126、ANプログラムコンパイ
リング準備手段( preparer )128、署名発生手段13
0、署名検証手段132、コンパイリング情報検証手段
134、オブジェクトクラスローダ136、ユーザアド
レス空間138、信頼されたオブジェクトクラスストレ
ージ手段140、信頼されないオブジェクトクラススト
レージ手段142、既知の信頼されたコンパイリングパ
ーティー及び信頼されたコンパイラのリスト144を格
納している。オペレーティングシステムはCPU110
上で走り、ユーザがユーザインタフェース112を使用
して発行したコマンドに応答してCPU上のプログラム
120−136を制御し、調整する。
は、オペレーティングシステム118、ネットワーク通
信管理手段120、ANプログラム(アーキテクチャ中
立プログラム)実行手段122、ASプログラム(アー
キテクチャ特定プログラム)実行手段124、ANプロ
グラム完全性検証手段126、ANプログラムコンパイ
リング準備手段( preparer )128、署名発生手段13
0、署名検証手段132、コンパイリング情報検証手段
134、オブジェクトクラスローダ136、ユーザアド
レス空間138、信頼されたオブジェクトクラスストレ
ージ手段140、信頼されないオブジェクトクラススト
レージ手段142、既知の信頼されたコンパイリングパ
ーティー及び信頼されたコンパイラのリスト144を格
納している。オペレーティングシステムはCPU110
上で走り、ユーザがユーザインタフェース112を使用
して発行したコマンドに応答してCPU上のプログラム
120−136を制御し、調整する。
【0025】各顧客コンピュータ102のANプログラ
ム実行手段122は、信頼されたオブジェクトクラスス
トレージ手段140及び信頼されないオブジェクトクラ
スストレージ手段142内に格納されているオブジェク
トクラス内のANプログラムを実行する。更に、ANプ
ログラムは、ユーザがスタック及びデータ使用制限のよ
うな所定の完全性基準を確立できるAN言語で書かれて
いるので、ANプログラムは不当なタスクを遂行しな
い。従ってANプログラムの完全性は、実行の前に、こ
のプログラムが所定の完全性基準を満足しているか否か
を決定することによって、ANプログラム完全性検証手
段126によって直接検証することができる。従ってこ
れらのANプログラムは、完全性検証可能ANプログラ
ムと考えられる。
ム実行手段122は、信頼されたオブジェクトクラスス
トレージ手段140及び信頼されないオブジェクトクラ
スストレージ手段142内に格納されているオブジェク
トクラス内のANプログラムを実行する。更に、ANプ
ログラムは、ユーザがスタック及びデータ使用制限のよ
うな所定の完全性基準を確立できるAN言語で書かれて
いるので、ANプログラムは不当なタスクを遂行しな
い。従ってANプログラムの完全性は、実行の前に、こ
のプログラムが所定の完全性基準を満足しているか否か
を決定することによって、ANプログラム完全性検証手
段126によって直接検証することができる。従ってこ
れらのANプログラムは、完全性検証可能ANプログラ
ムと考えられる。
【0026】好ましい実施例では、完全性検証可能AN
プログラムは Java バイトコード言語で書かれている。
更に、ANプログラム実行手段122、及びANプログ
ラム検証手段124はそれぞれ、 Java バイトコードプ
ログラムを実行する Java バイトコードプログラムイン
タプリタ、及び Java バイトコードプログラムを検証す
る Java バイトコードプログラム検証手段である。 Jav
a バイトコードプログラム検証手段及びインタプリタ
は、Sun Microsystems, Inc.の製品である。しかしなが
ら各顧客コンピュータ102は、対応するAS言語でプ
ログラムを書くことができ、ASプログラム実行手段1
24によって実行させることができる関連特定アーキテ
クチャを有している。AS言語は、AS言語で書かれた
ASプログラムがAN言語の所定の完全性基準を満足す
ることを要求しない。その結果ASプログラムは、AN
プログラムによっては遂行することができないタスクを
遂行することができる(何故ならそれらは、AN言語の
所定の完全性基準によって負わされる制限によって悩ま
されないからである)。しかしながら不幸にもこれは、
それらの完全性がANプログラム完全性検証手段126
によって直接検証することができず、従って完全性を検
証できないと考えられることも意味している。
プログラムは Java バイトコード言語で書かれている。
更に、ANプログラム実行手段122、及びANプログ
ラム検証手段124はそれぞれ、 Java バイトコードプ
ログラムを実行する Java バイトコードプログラムイン
タプリタ、及び Java バイトコードプログラムを検証す
る Java バイトコードプログラム検証手段である。 Jav
a バイトコードプログラム検証手段及びインタプリタ
は、Sun Microsystems, Inc.の製品である。しかしなが
ら各顧客コンピュータ102は、対応するAS言語でプ
ログラムを書くことができ、ASプログラム実行手段1
24によって実行させることができる関連特定アーキテ
クチャを有している。AS言語は、AS言語で書かれた
ASプログラムがAN言語の所定の完全性基準を満足す
ることを要求しない。その結果ASプログラムは、AN
プログラムによっては遂行することができないタスクを
遂行することができる(何故ならそれらは、AN言語の
所定の完全性基準によって負わされる制限によって悩ま
されないからである)。しかしながら不幸にもこれは、
それらの完全性がANプログラム完全性検証手段126
によって直接検証することができず、従って完全性を検
証できないと考えられることも意味している。
【0027】それにも拘わらず前述したようにANプロ
グラムは、AS言語でコンパイルされた同一プログラム
よりも非効率的に走る。従って顧客コンピュータ102
のユーザは、ユーザの顧客コンピュータに関連するAS
言語のためのサーバコンピュータ104によってコンパ
イルされたANプログラムを持ち、それによってコンパ
イルされたASプログラムをASプログラム実行手段1
24によって実行できるように願うかも知れない。また
は、もしコンパイルされたASプログラムが分配され、
他の顧客コンピュータのASプログラム実行手段124
によって実行される予定であれば、ユーザは、他のコン
ピュータに関連するAS言語のためにコンパイルされた
ANプログラムを持ちたいと願うかも知れない。 コンパイルのためにアーキテクチャ中立プログラムの準
備 図1及び2を参照する。発信パーティーがサーバコンピ
ュータ104によってコンパイルされたANプログラム
200を持つことを願う場合、発信パーティーはユーザ
インタフェース112を使用してコマンドを発行してA
Nプログラムコンパイリング準備手段128を呼出し、
コンパイルのためにANプログラムを準備するようにそ
れに命令する。ANプログラムは、信頼されたオブジェ
クトクラスストレージ手段140、または信頼されない
オブジェクトクラスストレージ手段142の一方内に含
まれているオブジェクトクラス内にあることができる。
表1は、サーバコンピュータ104によってコンパイル
されるANプログラムを準備するためにANプログラム
コンパイリング準備手段128が使用する手順の擬似コ
ード表現を含んでいる。表1−3に使用されている擬似
コードは、ユニバーサルコンピュータ言語協定を使用し
ている。ここに使用されている擬似コードは、この説明
の目的のためだけに開発したものであるが、この技術に
精通するコンピュータプログラマならば容易に理解でき
よう。
グラムは、AS言語でコンパイルされた同一プログラム
よりも非効率的に走る。従って顧客コンピュータ102
のユーザは、ユーザの顧客コンピュータに関連するAS
言語のためのサーバコンピュータ104によってコンパ
イルされたANプログラムを持ち、それによってコンパ
イルされたASプログラムをASプログラム実行手段1
24によって実行できるように願うかも知れない。また
は、もしコンパイルされたASプログラムが分配され、
他の顧客コンピュータのASプログラム実行手段124
によって実行される予定であれば、ユーザは、他のコン
ピュータに関連するAS言語のためにコンパイルされた
ANプログラムを持ちたいと願うかも知れない。 コンパイルのためにアーキテクチャ中立プログラムの準
備 図1及び2を参照する。発信パーティーがサーバコンピ
ュータ104によってコンパイルされたANプログラム
200を持つことを願う場合、発信パーティーはユーザ
インタフェース112を使用してコマンドを発行してA
Nプログラムコンパイリング準備手段128を呼出し、
コンパイルのためにANプログラムを準備するようにそ
れに命令する。ANプログラムは、信頼されたオブジェ
クトクラスストレージ手段140、または信頼されない
オブジェクトクラスストレージ手段142の一方内に含
まれているオブジェクトクラス内にあることができる。
表1は、サーバコンピュータ104によってコンパイル
されるANプログラムを準備するためにANプログラム
コンパイリング準備手段128が使用する手順の擬似コ
ード表現を含んでいる。表1−3に使用されている擬似
コードは、ユニバーサルコンピュータ言語協定を使用し
ている。ここに使用されている擬似コードは、この説明
の目的のためだけに開発したものであるが、この技術に
精通するコンピュータプログラマならば容易に理解でき
よう。
【0028】図1及び2、及び表1を参照する。ANプ
ログラムコンパイリング準備手段128は先ずANプロ
グラム完全性検証手段126を呼出し、ANプログラム
200のANプログラムコード202の完全性を検証す
るようにそれに命令する。これは、コンパイルのために
サーバコンピュータ104へ送られる前に、ANプログ
ラムコードがAN言語の所定の完全性基準を満足してお
くようにするために行われるのである。もしANプログ
ラムコードが所定の完全性基準を満足しなければ、AN
プログラム完全性検証手段はANプログラムコンパイリ
ング準備手段へ不合格結果を送り返す。それに応答して
ANプログラムコンパイリング準備手段はコンパイリン
グ準備手順を打切り、これを指示する適切なメッセージ
を生成する。
ログラムコンパイリング準備手段128は先ずANプロ
グラム完全性検証手段126を呼出し、ANプログラム
200のANプログラムコード202の完全性を検証す
るようにそれに命令する。これは、コンパイルのために
サーバコンピュータ104へ送られる前に、ANプログ
ラムコードがAN言語の所定の完全性基準を満足してお
くようにするために行われるのである。もしANプログ
ラムコードが所定の完全性基準を満足しなければ、AN
プログラム完全性検証手段はANプログラムコンパイリ
ング準備手段へ不合格結果を送り返す。それに応答して
ANプログラムコンパイリング準備手段はコンパイリン
グ準備手順を打切り、これを指示する適切なメッセージ
を生成する。
【0029】しかしながら、もしANプログラムコード
202が所定の完全性基準を満足していれば、ANプロ
グラム完全性検証手段126はANプログラムコンパイ
リング準備手段128へ合格結果を送り返す。次いでA
Nプログラムコンパイリング準備手段128は署名発生
手段130を呼出し、発信パーティーのディジタル署名
OP210を生成するようにそれに命令する。このディジ
タル署名は、ANプログラム200が信頼された発信パ
ーティーによって生成されたものであることを確認する
ために検証することができる。署名発生手段は、まずA
Nプログラムコード202のメッセージダイジェストOP
212を生成することによってディジタル署名OPを生成
する。これは、ANプログラムコードのデータビットに
対するハッシュ機能OPを計算することによって行われ
る。使用するハッシュ機能は、所定のハッシュ機能であ
っても、または発信パーティーによって選択されたハッ
シュ機能であってもよい。説明の目的からハッシュ機能
OPは発信パーティーに対応させているが、それはハッシ
ュ機能を発信パーティのディジタル署名OPのために使用
したからである。
202が所定の完全性基準を満足していれば、ANプロ
グラム完全性検証手段126はANプログラムコンパイ
リング準備手段128へ合格結果を送り返す。次いでA
Nプログラムコンパイリング準備手段128は署名発生
手段130を呼出し、発信パーティーのディジタル署名
OP210を生成するようにそれに命令する。このディジ
タル署名は、ANプログラム200が信頼された発信パ
ーティーによって生成されたものであることを確認する
ために検証することができる。署名発生手段は、まずA
Nプログラムコード202のメッセージダイジェストOP
212を生成することによってディジタル署名OPを生成
する。これは、ANプログラムコードのデータビットに
対するハッシュ機能OPを計算することによって行われ
る。使用するハッシュ機能は、所定のハッシュ機能であ
っても、または発信パーティーによって選択されたハッ
シュ機能であってもよい。説明の目的からハッシュ機能
OPは発信パーティーに対応させているが、それはハッシ
ュ機能を発信パーティのディジタル署名OPのために使用
したからである。
【0030】次いで署名発生手段130は、生成したメ
ッセージダイジェストOP212及びハッシュ機能OPID
214を、発信パーティの私用暗号化キーを用いて暗号
化する。次に署名発生手段は、発信パーティーID21
6を明文で、暗号化された項目212及び214の終わ
りに付加してディジタル署名OPを形成する。発信パーテ
ィー私用キー及びIDは、発信パーティーによってユー
ザインタフェース112に供給される。ディジタル署名
OP210を生成した後に、ANプログラムコンパイリン
グ準備手段128は、それをANプログラムコード20
2へ追加する。次いで、ANプログラムコンパイリング
準備手段128は、ANプログラム200がサーバコン
ピュータ104によってコンパイルするために準備され
たことを指示するメッセージを生成する。
ッセージダイジェストOP212及びハッシュ機能OPID
214を、発信パーティの私用暗号化キーを用いて暗号
化する。次に署名発生手段は、発信パーティーID21
6を明文で、暗号化された項目212及び214の終わ
りに付加してディジタル署名OPを形成する。発信パーテ
ィー私用キー及びIDは、発信パーティーによってユー
ザインタフェース112に供給される。ディジタル署名
OP210を生成した後に、ANプログラムコンパイリン
グ準備手段128は、それをANプログラムコード20
2へ追加する。次いで、ANプログラムコンパイリング
準備手段128は、ANプログラム200がサーバコン
ピュータ104によってコンパイルするために準備され
たことを指示するメッセージを生成する。
【0031】次に、発信パーティーは、ユーザインタフ
ェース112を用いてネットワーク通信管理手段120
へコマンドを発行し、ANプログラム200を、そのプ
ログラムをコンパイルするアーキテクチャ特定言語を指
定する引き数(AS言語ID)及び使用するコンパイラ
(コンパイラID)と共に、サーバコンピュータ104
へ伝送させる。ネットワーク通信管理手段は、信頼され
たオブジェクトクラスストレージ手段140、または信
頼されないオブジェクトクラスストレージ手段142の
中に位置しているANプログラムを検索し、それをネッ
トワーク通信インタフェース116へ供給する。次いで
ネットワーク通信管理手段は、ネットワーク通信インタ
フェースに命令してANプログラムを、特定の引き数と
共にサーバコンピュータへ伝送させる。
ェース112を用いてネットワーク通信管理手段120
へコマンドを発行し、ANプログラム200を、そのプ
ログラムをコンパイルするアーキテクチャ特定言語を指
定する引き数(AS言語ID)及び使用するコンパイラ
(コンパイラID)と共に、サーバコンピュータ104
へ伝送させる。ネットワーク通信管理手段は、信頼され
たオブジェクトクラスストレージ手段140、または信
頼されないオブジェクトクラスストレージ手段142の
中に位置しているANプログラムを検索し、それをネッ
トワーク通信インタフェース116へ供給する。次いで
ネットワーク通信管理手段は、ネットワーク通信インタ
フェースに命令してANプログラムを、特定の引き数と
共にサーバコンピュータへ伝送させる。
【0032】アーキテクチャ中立プログラムのコンパイ
リング 伝送されたANプログラム200はサーバコンピュータ
104において受信される。サーバコンピュータは、C
PU 150、ユーザインタフェース152、メモリ1
54、及びネットワーク通信インタフェース156を含
んでいる。ネットワーク通信インタフェースは、サーバ
コンピュータがネットワーク通信接続108を介して顧
客コンピュータ102及び信頼されたキーストレージ手
段106と通信できるようにする。サーバコンピュータ
104のメモリ154は、オペレーティングシステム1
58、ネットワーク通信管理手段160、ANプログラ
ムコンパイラ162、署名検証手段164、ANプログ
ラム完全性検証手段166、署名発生手段168、AN
プログラムストレージ手段170、及びASプログラム
ストレージ手段172を格納している。オペレーティン
グシステムはCPU150上で走り、コンパイリングパ
ーティーがユーザインタフェース152を用いて発行し
たコマンドに応答して、CPU上でのプログラム160
−168の走りを制御し、調整する。
リング 伝送されたANプログラム200はサーバコンピュータ
104において受信される。サーバコンピュータは、C
PU 150、ユーザインタフェース152、メモリ1
54、及びネットワーク通信インタフェース156を含
んでいる。ネットワーク通信インタフェースは、サーバ
コンピュータがネットワーク通信接続108を介して顧
客コンピュータ102及び信頼されたキーストレージ手
段106と通信できるようにする。サーバコンピュータ
104のメモリ154は、オペレーティングシステム1
58、ネットワーク通信管理手段160、ANプログラ
ムコンパイラ162、署名検証手段164、ANプログ
ラム完全性検証手段166、署名発生手段168、AN
プログラムストレージ手段170、及びASプログラム
ストレージ手段172を格納している。オペレーティン
グシステムはCPU150上で走り、コンパイリングパ
ーティーがユーザインタフェース152を用いて発行し
たコマンドに応答して、CPU上でのプログラム160
−168の走りを制御し、調整する。
【0033】ネットワーク通信インタフェース156は
ANプログラムを受信し、ネットワーク通信管理手段1
60にこれが行われたことを指示する。それに応答して
ネットワーク通信管理手段は、受信したANプログラム
をANプログラムストレージ手段170内に配置する。
サーバ104が自動コンパイラサービスとしてセットア
ップされていれば、これはネットワーク通信管理手段1
60によって自動的に行われる。そうでない場合には、
コンパイリングパーティーがユーザインタフェースを用
いてコマンドを発行すると、ネットワーク通信管理手段
によってストレージ手段170内へ移動させられる。次
いで、自動的に、またはコンパイリングパーティーがユ
ーザインタフェース252を用いてコマンドを発行する
と、ANプログラム200をコンパイルするためにAN
プログラムコンパイラ162が呼出される。表2は、A
NプログラムをコンパイルするためにANプログラムコ
ンパイラが使用するコンパイル手順の擬似コード表現を
含んでいる。
ANプログラムを受信し、ネットワーク通信管理手段1
60にこれが行われたことを指示する。それに応答して
ネットワーク通信管理手段は、受信したANプログラム
をANプログラムストレージ手段170内に配置する。
サーバ104が自動コンパイラサービスとしてセットア
ップされていれば、これはネットワーク通信管理手段1
60によって自動的に行われる。そうでない場合には、
コンパイリングパーティーがユーザインタフェースを用
いてコマンドを発行すると、ネットワーク通信管理手段
によってストレージ手段170内へ移動させられる。次
いで、自動的に、またはコンパイリングパーティーがユ
ーザインタフェース252を用いてコマンドを発行する
と、ANプログラム200をコンパイルするためにAN
プログラムコンパイラ162が呼出される。表2は、A
NプログラムをコンパイルするためにANプログラムコ
ンパイラが使用するコンパイル手順の擬似コード表現を
含んでいる。
【0034】図1−2、及び表2を参照する。ANプロ
グラムコンパイラ162は先ず署名検証手段164を呼
出し、受信したANプログラム200内のディジタル署
名OP210を検証させ、ディジタル署名OP210がその
ANプログラムのための発信パーティーの署名であるこ
とを確認させる(例えば、ANプログラムの他のバージ
ョン上の捏造署名または発信パーティー署名であること
を見抜くために)。詳しく述べれば、署名検証手段は、
受信したANプログラム内の「明文テキスト発信パーテ
ィID」216を使用して信頼されたキーストレージ手
段106から発信パーティの私用キーを入手する。次い
で署名検証手段は、発信パーティの暗号化された公開キ
ーを使用してディジタル署名OP内に暗号化されているメ
ッセージダイジェストOP212及びハッシュ機能OPID
214を暗号解除する。
グラムコンパイラ162は先ず署名検証手段164を呼
出し、受信したANプログラム200内のディジタル署
名OP210を検証させ、ディジタル署名OP210がその
ANプログラムのための発信パーティーの署名であるこ
とを確認させる(例えば、ANプログラムの他のバージ
ョン上の捏造署名または発信パーティー署名であること
を見抜くために)。詳しく述べれば、署名検証手段は、
受信したANプログラム内の「明文テキスト発信パーテ
ィID」216を使用して信頼されたキーストレージ手
段106から発信パーティの私用キーを入手する。次い
で署名検証手段は、発信パーティの暗号化された公開キ
ーを使用してディジタル署名OP内に暗号化されているメ
ッセージダイジェストOP212及びハッシュ機能OPID
214を暗号解除する。
【0035】次に、署名検証手段164は、受信したA
Nプログラム200のANプログラムコード202に対
する対応ハッシュ機能OPを計算することによって、暗号
解除されたメッセージダイジェストOP212と突き合わ
される試験メッセージダイジェストOPを生成する。暗号
解除されたディジタル署名OPは、使用すべき適切なハッ
シュ機能OPを識別するのに使用される。次いで暗号解除
されたメッセージダイジェストOPと、生成された試験メ
ッセージダイジェストOPとが比較されてディジタル署名
OP210が検証される。もしメッセージダイジェストOP
212と試験メッセージダイジェストOPとが一致しなけ
れば、署名検証手段164はANプログラムコンパイラ
162へ不合格結果を送り返す。それに応答してANプ
ログラムコンパイラはコンパイリング手順を打切り、適
切なメッセージを生成する。
Nプログラム200のANプログラムコード202に対
する対応ハッシュ機能OPを計算することによって、暗号
解除されたメッセージダイジェストOP212と突き合わ
される試験メッセージダイジェストOPを生成する。暗号
解除されたディジタル署名OPは、使用すべき適切なハッ
シュ機能OPを識別するのに使用される。次いで暗号解除
されたメッセージダイジェストOPと、生成された試験メ
ッセージダイジェストOPとが比較されてディジタル署名
OP210が検証される。もしメッセージダイジェストOP
212と試験メッセージダイジェストOPとが一致しなけ
れば、署名検証手段164はANプログラムコンパイラ
162へ不合格結果を送り返す。それに応答してANプ
ログラムコンパイラはコンパイリング手順を打切り、適
切なメッセージを生成する。
【0036】一方、もしメッセージダイジェストOPと試
験メッセージダイジェストOPとが一致すれば、署名検証
手段164はANプログラムコンパイラ162へ合格結
果を送り返し、ANプログラムコンパイラはANプログ
ラム完全性検証手段166を呼出す。ANプログラムコ
ンパイラはANプログラム完全性検証手段に命令し、受
信したANプログラム200のANプログラムコード2
02の完全性を検証させる。これは、前述したコンパイ
リングのためのANプログラムの準備で説明したのと同
じ手法で、また同じ目的で行われる。従って、もしAN
プログラムコードが所定の完全性基準を満足しなけれ
ば、ANプログラム完全性検証手段はANプログラムコ
ンパイラへ不合格結果を送り返す。それに応答してAN
プログラムコンパイラはコンパイリング手順を打切り、
そのことを指示する適切なメッセージを生成する。
験メッセージダイジェストOPとが一致すれば、署名検証
手段164はANプログラムコンパイラ162へ合格結
果を送り返し、ANプログラムコンパイラはANプログ
ラム完全性検証手段166を呼出す。ANプログラムコ
ンパイラはANプログラム完全性検証手段に命令し、受
信したANプログラム200のANプログラムコード2
02の完全性を検証させる。これは、前述したコンパイ
リングのためのANプログラムの準備で説明したのと同
じ手法で、また同じ目的で行われる。従って、もしAN
プログラムコードが所定の完全性基準を満足しなけれ
ば、ANプログラム完全性検証手段はANプログラムコ
ンパイラへ不合格結果を送り返す。それに応答してAN
プログラムコンパイラはコンパイリング手順を打切り、
そのことを指示する適切なメッセージを生成する。
【0037】しかしながら、もし受信したANプログラ
ム200のANプログラムコード202が所定の完全性
基準を満足すれば、ANプログラム完全性検証手段16
6はANプログラムコンパイラ162へ合格結果を送り
返す。そこでANプログラムコンパイラはANプログラ
ムコードを、発信パーティーによって指定されたAS言
語IDによって識別されたAS言語にコンパイルする。
図1−3及び表2を参照する。コンパイラはANプログ
ラムコード202、ディジタル署名OP210、及びコン
パイルされたASプログラムコード302を、ASプロ
グラムストレージ手段172内に格納されているASプ
ログラム300内に配置する。次いでANプログラムコ
ンパイラ162は署名発生手段168を呼出し、ANプ
ログラムコンパイラのディジタル署名C を生成するよう
に命令する(このディジタル署名は、ASプログラム3
00が信頼されたANプログラムコンパイラによりコン
パイルされたことを確認するために検証することができ
る)。これは、前述したディジタル署名OPを生成するの
と同じ手法で行うことができる。しかしながらこの場合
には、署名された情報のセットはASプログラムコード
及びディジタル署名OPである。対応するハッシュ機能C
ID324と共に別の所定のハッシュ機能を使用して、
ディジタル署名C によって署名される情報のセットのメ
ッセージダイジェストC 322を生成することができ、
ANプログラムコンパイラの私用暗号化キーを使用して
このメッセージダイジェストC 及びハッシュ機能CID
を暗号化し、そしてANプログラムコンパイラのIDが
明文で、暗号化されたメッセージダイジェストC 及びハ
ッシュ機能C の終わりに付加される。コンパイラの私用
キー及びIDはANプログラムコンパイラによって供給
される。
ム200のANプログラムコード202が所定の完全性
基準を満足すれば、ANプログラム完全性検証手段16
6はANプログラムコンパイラ162へ合格結果を送り
返す。そこでANプログラムコンパイラはANプログラ
ムコードを、発信パーティーによって指定されたAS言
語IDによって識別されたAS言語にコンパイルする。
図1−3及び表2を参照する。コンパイラはANプログ
ラムコード202、ディジタル署名OP210、及びコン
パイルされたASプログラムコード302を、ASプロ
グラムストレージ手段172内に格納されているASプ
ログラム300内に配置する。次いでANプログラムコ
ンパイラ162は署名発生手段168を呼出し、ANプ
ログラムコンパイラのディジタル署名C を生成するよう
に命令する(このディジタル署名は、ASプログラム3
00が信頼されたANプログラムコンパイラによりコン
パイルされたことを確認するために検証することができ
る)。これは、前述したディジタル署名OPを生成するの
と同じ手法で行うことができる。しかしながらこの場合
には、署名された情報のセットはASプログラムコード
及びディジタル署名OPである。対応するハッシュ機能C
ID324と共に別の所定のハッシュ機能を使用して、
ディジタル署名C によって署名される情報のセットのメ
ッセージダイジェストC 322を生成することができ、
ANプログラムコンパイラの私用暗号化キーを使用して
このメッセージダイジェストC 及びハッシュ機能CID
を暗号化し、そしてANプログラムコンパイラのIDが
明文で、暗号化されたメッセージダイジェストC 及びハ
ッシュ機能C の終わりに付加される。コンパイラの私用
キー及びIDはANプログラムコンパイラによって供給
される。
【0038】ANプログラムコンパイラ162は再度署
名発生手段168を呼出し、コンパイリングパーティー
のディジタル署名CP312を生成させる(このディジタ
ル署名は、ASプログラム300が信頼されたコンパイ
リングパーティーによりコンパイルされたことを確認す
るためにエンドユーザによって検証することができ
る)。これは、前述した(ANプログラムのコンパイリ
ングの項において説明した)ディジタル署名CPを生成す
る手法と同じようにして行うことができる。しかしなが
らこの場合は、ディジタル署名CPのために生成されたメ
ッセージダイジェストCP314は、ASプログラムコー
ド、ディジタル署名OP、及びディジタル署名C のデータ
ビットに対する所定の、または選択されたハッシュ機能
CPを計算することによって生成される。ハッシュ機能OP
と同様に、この説明の目的から、ハッシュ機能CPはコン
パイリングパーティーに対応させてある(何故ならば、
これはコンパイリングパーティーのディジタル署名CPの
ために使用されていたからである)。
名発生手段168を呼出し、コンパイリングパーティー
のディジタル署名CP312を生成させる(このディジタ
ル署名は、ASプログラム300が信頼されたコンパイ
リングパーティーによりコンパイルされたことを確認す
るためにエンドユーザによって検証することができ
る)。これは、前述した(ANプログラムのコンパイリ
ングの項において説明した)ディジタル署名CPを生成す
る手法と同じようにして行うことができる。しかしなが
らこの場合は、ディジタル署名CPのために生成されたメ
ッセージダイジェストCP314は、ASプログラムコー
ド、ディジタル署名OP、及びディジタル署名C のデータ
ビットに対する所定の、または選択されたハッシュ機能
CPを計算することによって生成される。ハッシュ機能OP
と同様に、この説明の目的から、ハッシュ機能CPはコン
パイリングパーティーに対応させてある(何故ならば、
これはコンパイリングパーティーのディジタル署名CPの
ために使用されていたからである)。
【0039】次いで署名発生手段168はコンパイリン
グパーティーの私用暗号化キーを使用してメッセージダ
イジェストCP314及びハッシュ機能CPのID316を
暗号化する。次に署名発生手段は、コンパイリングパー
ティーのID318を明文で、暗号化された項目314
及び316の終わりに付加してディジタル署名CPを形成
する。コンパイリングパーティーの私用キー及びID
は、ユーザインタフェース152を用いてコンパイリン
グパーティーから供給される。ディジタル署名C 320
及びディジタル署名CP312を生成した後に、ANプロ
グラムコンパイラ162はそれらをASプログラムコー
ド302に追加するので、得られたコンパイルされたA
Sプログラムファイルまたはオブジェクトは、以下の成
分をその中に有している。
グパーティーの私用暗号化キーを使用してメッセージダ
イジェストCP314及びハッシュ機能CPのID316を
暗号化する。次に署名発生手段は、コンパイリングパー
ティーのID318を明文で、暗号化された項目314
及び316の終わりに付加してディジタル署名CPを形成
する。コンパイリングパーティーの私用キー及びID
は、ユーザインタフェース152を用いてコンパイリン
グパーティーから供給される。ディジタル署名C 320
及びディジタル署名CP312を生成した後に、ANプロ
グラムコンパイラ162はそれらをASプログラムコー
ド302に追加するので、得られたコンパイルされたA
Sプログラムファイルまたはオブジェクトは、以下の成
分をその中に有している。
【0040】ANプログラムコード、ディジタル署名O
P、ASプログラムコード、ディジタル署名C 、及びデ
ィジタル署名CP。次に、ANプログラムコンパイラは、
ANプログラム200がコンパイルされてASプログラ
ム300が形成され発信パーティーに送る準備が整って
いることを指示するメッセージを生成する。次いで発信
パーティーは、ネットワーク通信管理手段160を使用
してASプログラム300を発信パーティーの顧客コン
ピュータ102へ伝送する。ネットワーク通信管理手段
は、ASプログラムストレージ手段172内に位置して
いるASプログラムを検索し、それをネットワーク通信
インタフェース156へ供給することによってそれを行
う。次にネットワーク通信管理手段は、ネットワーク通
信インタフェースに命令してASプログラムを発信パー
ティーの顧客コンピュータへ伝送させる。
P、ASプログラムコード、ディジタル署名C 、及びデ
ィジタル署名CP。次に、ANプログラムコンパイラは、
ANプログラム200がコンパイルされてASプログラ
ム300が形成され発信パーティーに送る準備が整って
いることを指示するメッセージを生成する。次いで発信
パーティーは、ネットワーク通信管理手段160を使用
してASプログラム300を発信パーティーの顧客コン
ピュータ102へ伝送する。ネットワーク通信管理手段
は、ASプログラムストレージ手段172内に位置して
いるASプログラムを検索し、それをネットワーク通信
インタフェース156へ供給することによってそれを行
う。次にネットワーク通信管理手段は、ネットワーク通
信インタフェースに命令してASプログラムを発信パー
ティーの顧客コンピュータへ伝送させる。
【0041】オブジェクト及びオブジェクトクラス作成
及び分配 次いで伝送されたASプログラム300は、発信パーテ
ィーの顧客コンピュータの通信インタフェース116に
よって受信され、ネットワーク通信管理手段120にそ
のことを指示する。それに応答して発信パーティーはユ
ーザインタフェース252を用いてコマンドを発行し、
ネットワーク通信インタフェースから受信したASプロ
グラムを検索するようにネットワーク通信管理手段に命
令する。それによりネットワーク管理手段は、受信した
ASプログラムを発信パーティーの顧客コンピュータの
信頼されないオブジェクトクラスストレージ手段142
内に配置する。これが行われた後に発信パーティーは、
受信したASプログラムを将に1つの方法(即ち、コン
パイルされたプログラムコード)で新しいオブジェクト
クラスとして処理することができるか、またはASプロ
グラム300及び他のANプログラム及びASプログラ
ムを含むオブジェクトクラスを作成することができる。
及び分配 次いで伝送されたASプログラム300は、発信パーテ
ィーの顧客コンピュータの通信インタフェース116に
よって受信され、ネットワーク通信管理手段120にそ
のことを指示する。それに応答して発信パーティーはユ
ーザインタフェース252を用いてコマンドを発行し、
ネットワーク通信インタフェースから受信したASプロ
グラムを検索するようにネットワーク通信管理手段に命
令する。それによりネットワーク管理手段は、受信した
ASプログラムを発信パーティーの顧客コンピュータの
信頼されないオブジェクトクラスストレージ手段142
内に配置する。これが行われた後に発信パーティーは、
受信したASプログラムを将に1つの方法(即ち、コン
パイルされたプログラムコード)で新しいオブジェクト
クラスとして処理することができるか、またはASプロ
グラム300及び他のANプログラム及びASプログラ
ムを含むオブジェクトクラスを作成することができる。
【0042】図4に、本発明による典型的なオブジェク
トクラス400を示す。オブジェクトクラスは、1また
はそれ以上のASプログラム402及び/または1また
はそれ以上のANプログラム404、並びに仮想機能テ
ーブル410を含むことができる。仮想機能テーブル
は、各ASプログラム毎に、それがAN言語によってで
はないASプログラム(即ち、ネイティブプログラム)
であることを指示する対応ID(ネイティブ ASプロ
グラムID)412と、ネイティブプログラムを指し示
す対応ポインタ414とを含んでいる。同様に各ANプ
ログラム毎に、仮想機能テーブルは、対応ID(ANプ
ログラムID)416と、ANプログラムを指し示す対
応ポインタ418とを含んでいる。このオブジェクトク
ラスの各オブジェクト420は、オブジェクトクラス4
00を指し示すオブジェクトヘッダ422を含んでい
る。
トクラス400を示す。オブジェクトクラスは、1また
はそれ以上のASプログラム402及び/または1また
はそれ以上のANプログラム404、並びに仮想機能テ
ーブル410を含むことができる。仮想機能テーブル
は、各ASプログラム毎に、それがAN言語によってで
はないASプログラム(即ち、ネイティブプログラム)
であることを指示する対応ID(ネイティブ ASプロ
グラムID)412と、ネイティブプログラムを指し示
す対応ポインタ414とを含んでいる。同様に各ANプ
ログラム毎に、仮想機能テーブルは、対応ID(ANプ
ログラムID)416と、ANプログラムを指し示す対
応ポインタ418とを含んでいる。このオブジェクトク
ラスの各オブジェクト420は、オブジェクトクラス4
00を指し示すオブジェクトヘッダ422を含んでい
る。
【0043】これにより、発信パーティーは、オブジェ
クトクラス内のASプログラム402の1つとしてサー
バコンピュータ104から受信したASプログラム30
0を用いて、オブジェクト420及びオブジェクトクラ
ス400を作成することができる。発信パーティーがオ
ブジェクト、及びASプログラム300及びANプログ
ラムを含むオブジェクトクラスを種々の実行パーティー
に分配することを望む場合は、発信パーティーはユーザ
インタフェース112を用いてコマンドを発行し、これ
らの項目を実行パーティーの顧客コンピュータ102へ
伝送するようにネットワーク通信管理手段に命令する。
ネットワーク通信管理手段は、それらが位置している信
頼されないオブジェクトクラスストレージ手段142を
検索し、それらを適切な伝送命令と共にネットワーク通
信インタフェース116へ供給することによってそれを
行う。代替として、発信パーティーのネットワーク通信
管理手段は、指定されたオブジェクトクラス400のコ
ピーに関して実行パーティーによって指示された要求に
応答してもよい。
クトクラス内のASプログラム402の1つとしてサー
バコンピュータ104から受信したASプログラム30
0を用いて、オブジェクト420及びオブジェクトクラ
ス400を作成することができる。発信パーティーがオ
ブジェクト、及びASプログラム300及びANプログ
ラムを含むオブジェクトクラスを種々の実行パーティー
に分配することを望む場合は、発信パーティーはユーザ
インタフェース112を用いてコマンドを発行し、これ
らの項目を実行パーティーの顧客コンピュータ102へ
伝送するようにネットワーク通信管理手段に命令する。
ネットワーク通信管理手段は、それらが位置している信
頼されないオブジェクトクラスストレージ手段142を
検索し、それらを適切な伝送命令と共にネットワーク通
信インタフェース116へ供給することによってそれを
行う。代替として、発信パーティーのネットワーク通信
管理手段は、指定されたオブジェクトクラス400のコ
ピーに関して実行パーティーによって指示された要求に
応答してもよい。
【0044】オブジェクトクラス内のアーキテクチャ中
立プログラム及びアーキテクチャ特定プログラムの実行 顧客コンピュータ102のネットワーク通信インタフェ
ース156は、伝送されたオブジェクト及びオブジェク
トクラスを受信し、この受信が行われたことをネットワ
ーク通信管理手段160に指示する。それに応答して実
行パーティーはユーザインタフェース112を使用して
コマンドを発行し、ネットワーク通信インタフェースか
ら受信したオブジェクト及びオブジェクトクラスを検索
するようにネットワーク通信管理手段に命令する。次い
でネットワーク通信管理手段は、受信したオブジェクト
及びオブジェクトクラスを信頼されないオブジェクトク
ラスストレージ手段142内に格納する。
立プログラム及びアーキテクチャ特定プログラムの実行 顧客コンピュータ102のネットワーク通信インタフェ
ース156は、伝送されたオブジェクト及びオブジェク
トクラスを受信し、この受信が行われたことをネットワ
ーク通信管理手段160に指示する。それに応答して実
行パーティーはユーザインタフェース112を使用して
コマンドを発行し、ネットワーク通信インタフェースか
ら受信したオブジェクト及びオブジェクトクラスを検索
するようにネットワーク通信管理手段に命令する。次い
でネットワーク通信管理手段は、受信したオブジェクト
及びオブジェクトクラスを信頼されないオブジェクトク
ラスストレージ手段142内に格納する。
【0045】各顧客コンピュータ102の信頼されない
オブジェクトクラスストレージ手段142は、オブジェ
クト及び信頼されないそれらの関連オブジェクトクラス
を含む。これらのオブジェクトクラスは、どのANプロ
グラムも未だにそれらの完全性を検証されておらず、ま
たどのASプログラムもそれらの源が検証されてもいな
いし、または適正なANプログラムからコンパイルされ
たものであるとの検証も受けていなから信頼されないの
である。各顧客コンピュータの信頼されたオブジェクト
クラスストレージ手段140は、オブジェクト及びそれ
らの信頼されたオブジェクトクラスを含んでいる。これ
らのオブジェクトクラスは、それらが含むどのANプロ
グラムも既にANプログラム完全性検証手段136によ
って完全性が検証済みであり、またそれらが含むどのA
Sプログラムも信頼できることが確認されているので信
頼されるのである。実際にこれらのオブジェクトクラス
は信頼されており、従ってこれらのオブジェクトクラス
に対して完全性の検証を遂行する理由がないので、信頼
されたオブジェクトクラスストレージ手段140内の若
干の、または全てのオブジェクトクラスはディジタル署
名を有する必要はない。
オブジェクトクラスストレージ手段142は、オブジェ
クト及び信頼されないそれらの関連オブジェクトクラス
を含む。これらのオブジェクトクラスは、どのANプロ
グラムも未だにそれらの完全性を検証されておらず、ま
たどのASプログラムもそれらの源が検証されてもいな
いし、または適正なANプログラムからコンパイルされ
たものであるとの検証も受けていなから信頼されないの
である。各顧客コンピュータの信頼されたオブジェクト
クラスストレージ手段140は、オブジェクト及びそれ
らの信頼されたオブジェクトクラスを含んでいる。これ
らのオブジェクトクラスは、それらが含むどのANプロ
グラムも既にANプログラム完全性検証手段136によ
って完全性が検証済みであり、またそれらが含むどのA
Sプログラムも信頼できることが確認されているので信
頼されるのである。実際にこれらのオブジェクトクラス
は信頼されており、従ってこれらのオブジェクトクラス
に対して完全性の検証を遂行する理由がないので、信頼
されたオブジェクトクラスストレージ手段140内の若
干の、または全てのオブジェクトクラスはディジタル署
名を有する必要はない。
【0046】先に示唆したように、本質的に全ての正当
なタスクがオブジェクトクラスを用いて遂行できるよう
に、主としてANプログラムを含むがASプログラムを
も含むことができるオブジェクトクラスを持つことが望
ましい。従って、ANプログラム実行手段122は完全
性検証可能なANプログラムを実行し、またASプログ
ラム実行手段を呼出し、(1)信頼されたオブジェクト
クラスストレージ手段140内の信頼されたオブジェク
トクラス内にあるか、または(2)信頼されないオブジ
ェクトクラスストレージ手段142内の信頼されないオ
ブジェクトクラス内にあって検証可能なディジタル署名
OP、ディジタル署名CP、及びディジタル署名C 情報を有
する完全性検証不能なASプログラムを実行させること
が可能であるので、本質的に全ての正当なタスクを遂行
することができる。このようにして、ディジタル署名O
P、ディジタル署名CP、及びディジタル署名C 情報を有
していないか、またはそれらのディジタル署名が検証不
能な信頼されないオブジェクトクラスのASプログラム
が実行されるのを防止している。表3は、ANプログラ
ム実行手段が使用する実行手順の擬似コード表現を含ん
でいる。
なタスクがオブジェクトクラスを用いて遂行できるよう
に、主としてANプログラムを含むがASプログラムを
も含むことができるオブジェクトクラスを持つことが望
ましい。従って、ANプログラム実行手段122は完全
性検証可能なANプログラムを実行し、またASプログ
ラム実行手段を呼出し、(1)信頼されたオブジェクト
クラスストレージ手段140内の信頼されたオブジェク
トクラス内にあるか、または(2)信頼されないオブジ
ェクトクラスストレージ手段142内の信頼されないオ
ブジェクトクラス内にあって検証可能なディジタル署名
OP、ディジタル署名CP、及びディジタル署名C 情報を有
する完全性検証不能なASプログラムを実行させること
が可能であるので、本質的に全ての正当なタスクを遂行
することができる。このようにして、ディジタル署名O
P、ディジタル署名CP、及びディジタル署名C 情報を有
していないか、またはそれらのディジタル署名が検証不
能な信頼されないオブジェクトクラスのASプログラム
が実行されるのを防止している。表3は、ANプログラ
ム実行手段が使用する実行手順の擬似コード表現を含ん
でいる。
【0047】図1−4及び表3を参照する。実行パーテ
ィー(例えば、発信パーティーまたは他のパーティー)
の顧客コンピュータ102において、ANプログラム実
行手段122は指定されたオブジェクトクラス内のある
方法を呼出すことを探索するANプログラムを実行する
ことができる。この方法呼出しは、始めは、オブジェク
トクラスが既にロード済みであるか否かを決定するオブ
ジェクトクラスローダ136によって取り扱われる。オ
ブジェクトクラスが既に実行パーティーのユーザアドレ
ス空間138内にロードされている場合には、呼出され
た方法がANプログラムであればANプログラム実行手
段122がその呼出された方法を実行し、呼出された方
法がASプログラムであればASプログラム実行手段1
24がその呼出された方法を実行する。
ィー(例えば、発信パーティーまたは他のパーティー)
の顧客コンピュータ102において、ANプログラム実
行手段122は指定されたオブジェクトクラス内のある
方法を呼出すことを探索するANプログラムを実行する
ことができる。この方法呼出しは、始めは、オブジェク
トクラスが既にロード済みであるか否かを決定するオブ
ジェクトクラスローダ136によって取り扱われる。オ
ブジェクトクラスが既に実行パーティーのユーザアドレ
ス空間138内にロードされている場合には、呼出され
た方法がANプログラムであればANプログラム実行手
段122がその呼出された方法を実行し、呼出された方
法がASプログラムであればASプログラム実行手段1
24がその呼出された方法を実行する。
【0048】しかしながら、もしオブジェクトクラスが
未だに実行パーティーのユーザアドレス空間138内に
ロードされていなければ、オブジェクトクラスローダ1
36はそのオブジェクトクラスを実行パーティーのアド
レス空間内にロードし、その呼出された方法の実行が許
可されているか否かを決定する。例えば、もしオブジェ
クトクラスが信頼されたオブジェクトクラスストレージ
手段140からロードされていれば呼出された方法の実
行は許容されており、実行手順が呼出される。実行手順
(表3参照)は、もし呼出された方法がANプログラム
であればANプログラム実行手段122を呼出し、そう
でなければASプログラム実行手段124を呼出して呼
出された方法を実行させる。しかしながら、もしそのオ
ブジェクトクラスが信頼されないオブジェクトクラスス
トレージ手段142からロードされていれば、クラスロ
ーダ136はそのオブジェクトのオブジェクトヘッダを
調べ、そのオブジェクトクラスがASプログラムを含ん
でいるか否かを決定する。これは、そのオブジェクトの
仮想機能テーブル内にネイティブ ASプログラムID
が存在するか否かを決定することによって行われる。
未だに実行パーティーのユーザアドレス空間138内に
ロードされていなければ、オブジェクトクラスローダ1
36はそのオブジェクトクラスを実行パーティーのアド
レス空間内にロードし、その呼出された方法の実行が許
可されているか否かを決定する。例えば、もしオブジェ
クトクラスが信頼されたオブジェクトクラスストレージ
手段140からロードされていれば呼出された方法の実
行は許容されており、実行手順が呼出される。実行手順
(表3参照)は、もし呼出された方法がANプログラム
であればANプログラム実行手段122を呼出し、そう
でなければASプログラム実行手段124を呼出して呼
出された方法を実行させる。しかしながら、もしそのオ
ブジェクトクラスが信頼されないオブジェクトクラスス
トレージ手段142からロードされていれば、クラスロ
ーダ136はそのオブジェクトのオブジェクトヘッダを
調べ、そのオブジェクトクラスがASプログラムを含ん
でいるか否かを決定する。これは、そのオブジェクトの
仮想機能テーブル内にネイティブ ASプログラムID
が存在するか否かを決定することによって行われる。
【0049】もしオブジェクトクラス内にASプログラ
ムが存在していなければ、クラスローダ136はANプ
ログラム完全性検証手段126を呼出してオブジェクト
クラス内のANプログラムの完全性を検証させる。これ
は、前述したANプログラム200の完全性を検証する
手法(ANプログラムのコンパイリングに関して説明し
た手法)と同じ手法で行われる。従って、もしANプロ
グラムの何れかの完全性が検証されなければ、ANプロ
グラム完全性検証手段は不合格結果をクラスローダへ送
り返し、クラスローダはクラスローディング手順を打切
り、そのことを指示する適切なメッセージを生成する。
一方、もしANプログラム完全性がオブジェクトクラス
のANプログラムの全てが検証に合格であることを指示
する合格結果を送り返せば、クラスローダは呼出された
方法の実行を可能にする。
ムが存在していなければ、クラスローダ136はANプ
ログラム完全性検証手段126を呼出してオブジェクト
クラス内のANプログラムの完全性を検証させる。これ
は、前述したANプログラム200の完全性を検証する
手法(ANプログラムのコンパイリングに関して説明し
た手法)と同じ手法で行われる。従って、もしANプロ
グラムの何れかの完全性が検証されなければ、ANプロ
グラム完全性検証手段は不合格結果をクラスローダへ送
り返し、クラスローダはクラスローディング手順を打切
り、そのことを指示する適切なメッセージを生成する。
一方、もしANプログラム完全性がオブジェクトクラス
のANプログラムの全てが検証に合格であることを指示
する合格結果を送り返せば、クラスローダは呼出された
方法の実行を可能にする。
【0050】もしオブジェクトクラス内にASプログラ
ムが存在していれば、クラスローダ136は署名検証手
段132を呼出してコンパイラ署名である「ディジタル
署名C 」及びコンパイリングパーティー署名である「デ
ィジタル署名CP」を検証させる。もしASプログラムの
何れもが「ディジタル署名CP」及び「ディジタル署名C
」を含んでいなければ、ASプログラムの源の完全性
は検証されず、従って署名検証手段はANプログラム実
行手段に不合格結果を送り返す。それに応答してクラス
ローダはそのオブジェクトクラスのローディング手順を
打切り、そのことを指示する適切なメッセージを生成す
る。更にもしそのオブジェクトクラスの内の全てのAS
プログラムが「ディジタル署名CP」及び「ディジタル署
名C 」を含んでいれば、コンパイリングパーティー及び
コンパイラのアイデンティティーがこれら2つのディジ
タル署名内に指示され、既知の信頼されたコンパイリン
グパーティー及び信頼されたコンパイラのリスト144
(図1参照)と比較される。もしオブジェクトクラスの
内の何れかのASプログラムが既知の信頼されたコンパ
イリングパーティー及び信頼されたコンパイラのセット
内に含まれていないコンパイリングパーティー及びコン
パイラによってコンパイルされていればクラスのローデ
ィング手順は打切られ、それによって呼出された方法の
実行は阻止される。同様にもし何れかのASプログラム
内に識別されているAS言語がASプログラム実行手段
124によって使用されているAS言語と一致しなけれ
ば、クラスのローディング手順は打切られる。
ムが存在していれば、クラスローダ136は署名検証手
段132を呼出してコンパイラ署名である「ディジタル
署名C 」及びコンパイリングパーティー署名である「デ
ィジタル署名CP」を検証させる。もしASプログラムの
何れもが「ディジタル署名CP」及び「ディジタル署名C
」を含んでいなければ、ASプログラムの源の完全性
は検証されず、従って署名検証手段はANプログラム実
行手段に不合格結果を送り返す。それに応答してクラス
ローダはそのオブジェクトクラスのローディング手順を
打切り、そのことを指示する適切なメッセージを生成す
る。更にもしそのオブジェクトクラスの内の全てのAS
プログラムが「ディジタル署名CP」及び「ディジタル署
名C 」を含んでいれば、コンパイリングパーティー及び
コンパイラのアイデンティティーがこれら2つのディジ
タル署名内に指示され、既知の信頼されたコンパイリン
グパーティー及び信頼されたコンパイラのリスト144
(図1参照)と比較される。もしオブジェクトクラスの
内の何れかのASプログラムが既知の信頼されたコンパ
イリングパーティー及び信頼されたコンパイラのセット
内に含まれていないコンパイリングパーティー及びコン
パイラによってコンパイルされていればクラスのローデ
ィング手順は打切られ、それによって呼出された方法の
実行は阻止される。同様にもし何れかのASプログラム
内に識別されているAS言語がASプログラム実行手段
124によって使用されているAS言語と一致しなけれ
ば、クラスのローディング手順は打切られる。
【0051】しかしながら、もしオブジェクトクラスの
内の全てのASプログラムが「ディジタル署名CP」及び
「ディジタル署名C 」を含んでおり、全てのASプログ
ラムのための識別されたコンパイリングパーティー及び
コンパイラが信頼されたコンパイリングパーティー及び
信頼されたコンパイラであり、そして全てのASプログ
ラムによって使用されているAS言語がASプログラム
実行手段によって使用されている言語であれば、署名検
証手段は、前述したディジタル署名OPの検証(ANプロ
グラム200のコンパイリングに関して説明済み)と同
じ手法でこれらの署名を検証する。しかしながらこの場
合には、コンパイラの私用キー及びコンパイリングパー
ティーの公開キーが信頼されたキーストレージ手段10
6から検索され、ディジタル署名C 内のメッセージダイ
ジェストC 及びハッシュ機能C ID、及びディジタル署
名CP内のメッセージダイジェストCP及びハッシュ機能CP
IDがそれぞれ暗号解除するのに使用される。更に、暗
号解除されたメッセージダイジェストCP及びメッセージ
ダイジェストC に対応する試験メッセージダイジェスト
(試験メッセージダイジェストC 及び試験メッセージダ
イジェストCP)が生成される。これは、暗号解除された
ハッシュ機能C ID及びハッシュ機能CPIDによって識
別されるハッシュ機能C 及びハッシュ機能CPにそれぞれ
従って、試験メッセージダイジェストC の場合にはAS
プログラムコードのデータビット+ディジタル署名OP、
また試験メッセージダイジェストCPの場合には同じデー
タビット+ディジタル署名C に対するハッシュコードを
比較することによって生成される。
内の全てのASプログラムが「ディジタル署名CP」及び
「ディジタル署名C 」を含んでおり、全てのASプログ
ラムのための識別されたコンパイリングパーティー及び
コンパイラが信頼されたコンパイリングパーティー及び
信頼されたコンパイラであり、そして全てのASプログ
ラムによって使用されているAS言語がASプログラム
実行手段によって使用されている言語であれば、署名検
証手段は、前述したディジタル署名OPの検証(ANプロ
グラム200のコンパイリングに関して説明済み)と同
じ手法でこれらの署名を検証する。しかしながらこの場
合には、コンパイラの私用キー及びコンパイリングパー
ティーの公開キーが信頼されたキーストレージ手段10
6から検索され、ディジタル署名C 内のメッセージダイ
ジェストC 及びハッシュ機能C ID、及びディジタル署
名CP内のメッセージダイジェストCP及びハッシュ機能CP
IDがそれぞれ暗号解除するのに使用される。更に、暗
号解除されたメッセージダイジェストCP及びメッセージ
ダイジェストC に対応する試験メッセージダイジェスト
(試験メッセージダイジェストC 及び試験メッセージダ
イジェストCP)が生成される。これは、暗号解除された
ハッシュ機能C ID及びハッシュ機能CPIDによって識
別されるハッシュ機能C 及びハッシュ機能CPにそれぞれ
従って、試験メッセージダイジェストC の場合にはAS
プログラムコードのデータビット+ディジタル署名OP、
また試験メッセージダイジェストCPの場合には同じデー
タビット+ディジタル署名C に対するハッシュコードを
比較することによって生成される。
【0052】もし各ASプログラム毎のハッシュ機能C
及び/またはハッシュ機能CPが検査に不合格ならば(即
ち、メッセージダイジェストC ≠試験メッセージダイジ
ェストC 及び/またはメッセージダイジェストCP≠試験
メッセージダイジェストCP)、署名検証手段132はク
ラスローダ136に不合格結果を送り返す。それに応答
してクラスローダはクラスローディング手順を打切り、
そのことを指示する適切なメッセージを生成する。しか
しながら、もし各ASプログラム毎のディジタル署名C
及びディジタル署名CPが共に検査に合格すれば、ANプ
ログラム実行手段122は再度署名検証手段132を呼
出し、そのASプログラムをコンパイルしたANプログ
ラムのための発信パーティーの署名(ディジタル署名O
P)を検証する。発信パーティーのディジタル署名を検
証するために、各ディジタル署名OPは、ANプログラム
200のコンパイルで説明した手法と同じ手法で検証さ
れる。
及び/またはハッシュ機能CPが検査に不合格ならば(即
ち、メッセージダイジェストC ≠試験メッセージダイジ
ェストC 及び/またはメッセージダイジェストCP≠試験
メッセージダイジェストCP)、署名検証手段132はク
ラスローダ136に不合格結果を送り返す。それに応答
してクラスローダはクラスローディング手順を打切り、
そのことを指示する適切なメッセージを生成する。しか
しながら、もし各ASプログラム毎のディジタル署名C
及びディジタル署名CPが共に検査に合格すれば、ANプ
ログラム実行手段122は再度署名検証手段132を呼
出し、そのASプログラムをコンパイルしたANプログ
ラムのための発信パーティーの署名(ディジタル署名O
P)を検証する。発信パーティーのディジタル署名を検
証するために、各ディジタル署名OPは、ANプログラム
200のコンパイルで説明した手法と同じ手法で検証さ
れる。
【0053】もしASプログラムをコンパイルした各A
Nプログラムのディジタル署名OPが検査に合格すれば、
クラスローダはANプログラム完全性検証手段を呼出し
てそのオブジェクトクラス内の各ANプログラム、及び
ASプログラムをコンパイルしたANプログラムの完全
性を検証する。これは前述した手法と同じ手法で行われ
る。もしこれらのANプログラムの何れかの完全性が検
査に不合格であれば、ANプログラム完全性検証手段は
クラスローダへ不合格結果を送り返してクラスローディ
ングを打切らせ、適切なメッセージを生成させる。しか
しながら、もし各ANプログラムの完全性が検査に合格
すれば、ANプログラム完全性検証手段126はクラス
ローダ136へ合格結果を送り返す。それに応答してク
ラスローダはANプログラム実行手段またはASプログ
ラム実行手段を呼出して呼出された方法を適切に実行さ
せる。
Nプログラムのディジタル署名OPが検査に合格すれば、
クラスローダはANプログラム完全性検証手段を呼出し
てそのオブジェクトクラス内の各ANプログラム、及び
ASプログラムをコンパイルしたANプログラムの完全
性を検証する。これは前述した手法と同じ手法で行われ
る。もしこれらのANプログラムの何れかの完全性が検
査に不合格であれば、ANプログラム完全性検証手段は
クラスローダへ不合格結果を送り返してクラスローディ
ングを打切らせ、適切なメッセージを生成させる。しか
しながら、もし各ANプログラムの完全性が検査に合格
すれば、ANプログラム完全性検証手段126はクラス
ローダ136へ合格結果を送り返す。それに応答してク
ラスローダはANプログラム実行手段またはASプログ
ラム実行手段を呼出して呼出された方法を適切に実行さ
せる。
【0054】以上の説明から明らかなように、実行パー
ティーは、信頼されないストレージ手段142内の、完
全性を検証できるANプログラム及びASプログラム
(それらのディジタル署名を検証することができる)を
有する信頼されないオブジェクトクラスだけをロード
し、それらのプログラムを実行することが保証される。 代替実施例 上述した本発明の特色の若干は任意選択的である。従っ
て当業者ならば、これらの特色を含まない代替実施例が
存在することは理解できよう。例えば、ANプログラム
コンパイラに関しては、コンパイリングパーティー及び
ANプログラムコンパイラのためのディジタル署名CP及
びディジタル署名C をそれぞれ生成するものとして説明
した。しかしながら、ANプログラムコンパイラは、単
にこれらのディジタル署名の一方だけを生成し、ASプ
ログラムをコンパイルするために使用されるコンパイ
ラ、またはコンパイリングパーティーの何れかの検証を
可能にするように構成することができる。
ティーは、信頼されないストレージ手段142内の、完
全性を検証できるANプログラム及びASプログラム
(それらのディジタル署名を検証することができる)を
有する信頼されないオブジェクトクラスだけをロード
し、それらのプログラムを実行することが保証される。 代替実施例 上述した本発明の特色の若干は任意選択的である。従っ
て当業者ならば、これらの特色を含まない代替実施例が
存在することは理解できよう。例えば、ANプログラム
コンパイラに関しては、コンパイリングパーティー及び
ANプログラムコンパイラのためのディジタル署名CP及
びディジタル署名C をそれぞれ生成するものとして説明
した。しかしながら、ANプログラムコンパイラは、単
にこれらのディジタル署名の一方だけを生成し、ASプ
ログラムをコンパイルするために使用されるコンパイ
ラ、またはコンパイリングパーティーの何れかの検証を
可能にするように構成することができる。
【0055】同様に、プログラム実行手段に関しては、
ディジタル署名CP及びディジタル署名C の両者の検証が
必要であるとして説明した。しかしながら、プログラム
実行手段は、これらのディジタル署名の一方だけの検証
でよいように、またもし検証されるASプログラムがそ
れを含んでいれば他方のディジタル署名を任意選択的に
検証するように構成することができる。更に、プログラ
ム実行手段は、コンパイリングパーティーが信頼されて
おり、またコンパイルを遂行する前にASプログラムに
コンパイルされる各ANプログラムを検証することがコ
ンパイリングパーティーの義務であると仮定して、各A
Sプログラムに対応するANプログラムの完全性を検証
する段階をスキップするように構成することができる。
発信パーティーが実行パーティーである場合、実行パー
ティーはASプログラム300にコンパイルされるAN
プログラム200をコンパイリングパーティーのサーバ
コンピュータ104へ実際に送ったことを知っている。
この場合、クラスローダ136はANプログラム内のデ
ィジタル署名OPを検証するために署名検証手段を呼出さ
ない。実行パーティーは単に、ANプログラムのローカ
ルコピー内のディジタル署名OPを、コンパイルされたA
Sプログラム内のディジタル署名OPと比較するだけでよ
い。また、クラスローダは、呼出されたASプログラム
に対応するANプログラムの完全性を検証するためにA
Nプログラム完全性検証手段126を呼出さないように
構成することができる(何故ならば、コンパイリングサ
ーバコンピュータへ送られる前にコンパイリング手順の
ための準備中にANプログラムの完全性が検証されてい
るからである)。代替として、ANプログラムコンパイ
リング準備手段128が、コンパイリング手順のための
準備中にANプログラム完全性検証手段を呼出さないよ
うに構成することができる(何故ならばその完全性は、
コンパイラによって、及びクラスローダが対応するAS
プログラムの実行の前にANプログラム完全性検証手段
を呼出した時の両方で検証されるからである)。
ディジタル署名CP及びディジタル署名C の両者の検証が
必要であるとして説明した。しかしながら、プログラム
実行手段は、これらのディジタル署名の一方だけの検証
でよいように、またもし検証されるASプログラムがそ
れを含んでいれば他方のディジタル署名を任意選択的に
検証するように構成することができる。更に、プログラ
ム実行手段は、コンパイリングパーティーが信頼されて
おり、またコンパイルを遂行する前にASプログラムに
コンパイルされる各ANプログラムを検証することがコ
ンパイリングパーティーの義務であると仮定して、各A
Sプログラムに対応するANプログラムの完全性を検証
する段階をスキップするように構成することができる。
発信パーティーが実行パーティーである場合、実行パー
ティーはASプログラム300にコンパイルされるAN
プログラム200をコンパイリングパーティーのサーバ
コンピュータ104へ実際に送ったことを知っている。
この場合、クラスローダ136はANプログラム内のデ
ィジタル署名OPを検証するために署名検証手段を呼出さ
ない。実行パーティーは単に、ANプログラムのローカ
ルコピー内のディジタル署名OPを、コンパイルされたA
Sプログラム内のディジタル署名OPと比較するだけでよ
い。また、クラスローダは、呼出されたASプログラム
に対応するANプログラムの完全性を検証するためにA
Nプログラム完全性検証手段126を呼出さないように
構成することができる(何故ならば、コンパイリングサ
ーバコンピュータへ送られる前にコンパイリング手順の
ための準備中にANプログラムの完全性が検証されてい
るからである)。代替として、ANプログラムコンパイ
リング準備手段128が、コンパイリング手順のための
準備中にANプログラム完全性検証手段を呼出さないよ
うに構成することができる(何故ならばその完全性は、
コンパイラによって、及びクラスローダが対応するAS
プログラムの実行の前にANプログラム完全性検証手段
を呼出した時の両方で検証されるからである)。
【0056】以上に本発明を幾つかの特定実施例に関し
て説明したが、この説明は本発明を例示したに過ぎず、
本発明を限定する意図は毛頭ない。当業者ならば、特許
請求の範囲に記載されている本発明の真の思想及び範囲
から逸脱することなく多くの変更を考案できるであろ
う。
て説明したが、この説明は本発明を例示したに過ぎず、
本発明を限定する意図は毛頭ない。当業者ならば、特許
請求の範囲に記載されている本発明の真の思想及び範囲
から逸脱することなく多くの変更を考案できるであろ
う。
【0057】
【表1】
【0058】
【表2】
【0059】
【表3】
【0060】
【表4】
【0061】
【表5】
【0062】
【表6】
【0063】
【表7】
【0064】
【発明の効果】本発明のコンピュータ・ネットワーク
は、コンパイリングパーティーによって作動され、発信
パーティーによって生成されたアーキテクチャ中立プロ
グラムを受信するプログラムコンパイリングコンピュー
タを備え、アーキテクチャ中立プログラムはアーキテク
チャ中立プログラムコード及び発信パーティーのディジ
タル署名を含み、ディジタル署名は検証時にアーキテク
チャ中立プログラムが発信パーティーによって署名され
たことを検証するようになっており、プログラムコンパ
イリングコンピュータが、発信パーティーのディジタル
署名を検証する署名検証手段と、発信パーティーのディ
ジタル署名が検証された時に、(A)アー キテクチャ
中立プログラムコードをアーキテクチャ特定言語でアー
キテクチャ特定プログラムコードにコンパイルし、
(B)検証時にアーキテクチャ特定プログラムがコンパ
イリングパーティーによって生成されたことを検証する
コンパイリングパーティーのディジタル署名を付加する
ことによってアーキテクチャ特定プログラムを生成する
コンパイラと、コンパイリングパーティーのディジタル
署名を生成する署名発生手段と、を含み、実行パーティ
ーによって作動され、アーキテクチャ特定プログラムを
受信し、アーキテクチャ中立プログラムを受信または実
行するプログラム実行コンピュータを更に備え、プログ
ラム実行コンピュータは、コンパイリングパーティーの
ディジタル署名を検証する署名検証手段と、コンパイリ
ングパーティーの署名が検証され、コンパイリングパー
ティーが信頼されたコンパイリングパーティーの限定集
合のメンバーである時に、アーキテクチャ特定言語で書
かれたアーキテクチャ特定プログラムコードを実行する
実行手段と、を含むので、対応するANプログラムから
コンパイルされたASプログラムのユーザが、誰がその
ANプログラムをコンパイルしたのかの識別と、対応す
るANプログラムのアイデンティティと、そのASプロ
グラムをコンパイルしたAS言語とを認証することがで
き、かつ完全性が検証できるANプログラムを実行し、
完全性を検証することはできないが、信頼されている
か、または検証可能な源とコンパイル情報とを有するA
Sプログラムを呼出すようにし、それによって源、コン
パイル情報、及び完全性を検証できないASプログラム
が呼出されるのを防ぎながら、本質的に全ての適正なタ
スクを遂行することができる。
は、コンパイリングパーティーによって作動され、発信
パーティーによって生成されたアーキテクチャ中立プロ
グラムを受信するプログラムコンパイリングコンピュー
タを備え、アーキテクチャ中立プログラムはアーキテク
チャ中立プログラムコード及び発信パーティーのディジ
タル署名を含み、ディジタル署名は検証時にアーキテク
チャ中立プログラムが発信パーティーによって署名され
たことを検証するようになっており、プログラムコンパ
イリングコンピュータが、発信パーティーのディジタル
署名を検証する署名検証手段と、発信パーティーのディ
ジタル署名が検証された時に、(A)アー キテクチャ
中立プログラムコードをアーキテクチャ特定言語でアー
キテクチャ特定プログラムコードにコンパイルし、
(B)検証時にアーキテクチャ特定プログラムがコンパ
イリングパーティーによって生成されたことを検証する
コンパイリングパーティーのディジタル署名を付加する
ことによってアーキテクチャ特定プログラムを生成する
コンパイラと、コンパイリングパーティーのディジタル
署名を生成する署名発生手段と、を含み、実行パーティ
ーによって作動され、アーキテクチャ特定プログラムを
受信し、アーキテクチャ中立プログラムを受信または実
行するプログラム実行コンピュータを更に備え、プログ
ラム実行コンピュータは、コンパイリングパーティーの
ディジタル署名を検証する署名検証手段と、コンパイリ
ングパーティーの署名が検証され、コンパイリングパー
ティーが信頼されたコンパイリングパーティーの限定集
合のメンバーである時に、アーキテクチャ特定言語で書
かれたアーキテクチャ特定プログラムコードを実行する
実行手段と、を含むので、対応するANプログラムから
コンパイルされたASプログラムのユーザが、誰がその
ANプログラムをコンパイルしたのかの識別と、対応す
るANプログラムのアイデンティティと、そのASプロ
グラムをコンパイルしたAS言語とを認証することがで
き、かつ完全性が検証できるANプログラムを実行し、
完全性を検証することはできないが、信頼されている
か、または検証可能な源とコンパイル情報とを有するA
Sプログラムを呼出すようにし、それによって源、コン
パイル情報、及び完全性を検証できないASプログラム
が呼出されるのを防ぎながら、本質的に全ての適正なタ
スクを遂行することができる。
【0065】本発明の方法は、コンピュータネットワー
クを動作させる方法であって、コンパイリングパーティ
ーによって作動されるプログラムコンパイリングコンピ
ュータにおいて、発信パーティーによって生成され、ア
ーキテクチャ中立プログラムコード、及び検証時にアー
キテクチャ中立プログラムが発信パーティーによって署
名されたことを検証する発信パーティーのディジタル署
名を含むアーキテクチャ中立プログラムを受信する段階
と、発信パーティーのディジタル署名を検証する段階
と、アーキテクチャ中立プログラムをコンパイラを用い
てコンパイルし、発信パーティーのディジタル署名が検
証された時にアーキテクチャ特定プログラムを生成し、
そして検証時にアーキテクチャ特定プログラムがコンパ
イリングパーティーによって生成されたことを検証する
コンパイリングパーティーのディジタル署名を付加する
段階と、を含み、実行パーティーによって作動されるプ
ログラム実行コンピュータにおいて、アーキテクチャ特
定プログラムを受信し、アーキテクチャ中立プログラム
を受信または発信する段階と、コンパイリングパーティ
ーのディジタル署名を検証する段階と、コンパイラのデ
ィジタル署名が検証され、コンパイラが信頼されたコン
パイラの限定集合のメンバーであることが決定された時
に、アーキテクチャ特定プログラムコードを実行する段
階とを含むので、対応するANプログラムからコンパイ
ルされたASプログラムのユーザが、誰がそのANプロ
グラムをコンパイルしたのかの識別と、対応するANプ
ログラムのアイデンティティと、そのASプログラムを
コンパイルしたAS言語とを認証することができ、かつ
完全性が検証できるANプログラムを実行し、完全性を
検証することはできないが、信頼されているか、または
検証可能な源とコンパイル情報とを有するASプログラ
ムを呼出すようにし、それによって源、コンパイル情
報、及び完全性を検証できないASプログラムが呼出さ
れるのを防ぎながら、本質的に全ての適正なタスクを遂
行することができる。
クを動作させる方法であって、コンパイリングパーティ
ーによって作動されるプログラムコンパイリングコンピ
ュータにおいて、発信パーティーによって生成され、ア
ーキテクチャ中立プログラムコード、及び検証時にアー
キテクチャ中立プログラムが発信パーティーによって署
名されたことを検証する発信パーティーのディジタル署
名を含むアーキテクチャ中立プログラムを受信する段階
と、発信パーティーのディジタル署名を検証する段階
と、アーキテクチャ中立プログラムをコンパイラを用い
てコンパイルし、発信パーティーのディジタル署名が検
証された時にアーキテクチャ特定プログラムを生成し、
そして検証時にアーキテクチャ特定プログラムがコンパ
イリングパーティーによって生成されたことを検証する
コンパイリングパーティーのディジタル署名を付加する
段階と、を含み、実行パーティーによって作動されるプ
ログラム実行コンピュータにおいて、アーキテクチャ特
定プログラムを受信し、アーキテクチャ中立プログラム
を受信または発信する段階と、コンパイリングパーティ
ーのディジタル署名を検証する段階と、コンパイラのデ
ィジタル署名が検証され、コンパイラが信頼されたコン
パイラの限定集合のメンバーであることが決定された時
に、アーキテクチャ特定プログラムコードを実行する段
階とを含むので、対応するANプログラムからコンパイ
ルされたASプログラムのユーザが、誰がそのANプロ
グラムをコンパイルしたのかの識別と、対応するANプ
ログラムのアイデンティティと、そのASプログラムを
コンパイルしたAS言語とを認証することができ、かつ
完全性が検証できるANプログラムを実行し、完全性を
検証することはできないが、信頼されているか、または
検証可能な源とコンパイル情報とを有するASプログラ
ムを呼出すようにし、それによって源、コンパイル情
報、及び完全性を検証できないASプログラムが呼出さ
れるのを防ぎながら、本質的に全ての適正なタスクを遂
行することができる。
【0066】本発明のシステムは、コンピュータ読取り
可能な媒体上に格納され、コンピュータによって実行可
能なコードを分配するシステムであって、コードは各々
がコンピュータの1つによって実行される少なくとも1
つの機能を遂行するように構成されている複数のモジュ
ールを含み、システムは、コンパイリングパーティーに
よって作動され、プログラムコンパイリングコンピュー
タと共に使用するように構成されている第1のモジュー
ルを備え、コンパイリングパーティーは、発信パーティ
ーによって生成されるアーキテクチャ中立プログラムを
受信し、アーキテクチャ中立プログラムはアーキテクチ
ャ中立プログラムコード及び発信パーティーのディジタ
ル署名を含み、ディジタル署名は検証時にアーキテクチ
ャ中立プログラムが発信パーティーによって署名された
ことを検証するようになっており、第1のモジュール
は、発信パーティーのディジタル署名を検証する署名検
証手段と、発信パーティーのディジタル署名が検証され
た時に、(A)アーキテクチャ中立プログラムコードを
アーキテクチャ特定言語でアーキテクチャ特定プログラ
ムコードにコンパイルし、(B)検証時にアーキテクチ
ャ特定プログラムがコンパイリングパーティーによって
生成されたことを検証するコンパイリングパーティーの
ディジタル署名を付加することによってアーキテクチャ
特定プログラムを生成するコンパイラと、コンパイリン
グパーティーのディジタル署名を生成する署名発生手段
と、を含み、実行パーティーによって作動され、プログ
ラム実行コンピュータと共に使用される第2のモジュー
ルを更に備え、実行パーティーはアーキテクチャ特定プ
ログラムを受信し、アーキテクチャ中立プログラムを受
信または発信し、第2のモジュールは、コンパイリング
パーティーのディジタル署名を検証する署名検証手段
と、コンパイリングパーティーの署名が検証され、コン
パイリングパーティーが信頼されたコンパイリングパー
ティーの限定集合のメンバーである時に、アーキテクチ
ャ特定言語で書かれたアーキテクチャ特定プログラムコ
ードを実行する実行手段と、を含むので、対応するAN
プログラムからコンパイルされたASプログラムのユー
ザが、誰がそのANプログラムをコンパイルしたのかの
識別と、対応するANプログラムのアイデンティティ
と、そのASプログラムをコンパイルしたAS言語とを
認証することができ、かつ完全性が検証できるANプロ
グラムを実行し、完全性を検証することはできないが、
信頼されているか、または検証可能な源とコンパイル情
報とを有するASプログラムを呼出すようにし、それに
よって源、コンパイル情報、及び完全性を検証できない
ASプログラムが呼出されるのを防ぎながら、本質的に
全ての適正なタスクを遂行することができる。
可能な媒体上に格納され、コンピュータによって実行可
能なコードを分配するシステムであって、コードは各々
がコンピュータの1つによって実行される少なくとも1
つの機能を遂行するように構成されている複数のモジュ
ールを含み、システムは、コンパイリングパーティーに
よって作動され、プログラムコンパイリングコンピュー
タと共に使用するように構成されている第1のモジュー
ルを備え、コンパイリングパーティーは、発信パーティ
ーによって生成されるアーキテクチャ中立プログラムを
受信し、アーキテクチャ中立プログラムはアーキテクチ
ャ中立プログラムコード及び発信パーティーのディジタ
ル署名を含み、ディジタル署名は検証時にアーキテクチ
ャ中立プログラムが発信パーティーによって署名された
ことを検証するようになっており、第1のモジュール
は、発信パーティーのディジタル署名を検証する署名検
証手段と、発信パーティーのディジタル署名が検証され
た時に、(A)アーキテクチャ中立プログラムコードを
アーキテクチャ特定言語でアーキテクチャ特定プログラ
ムコードにコンパイルし、(B)検証時にアーキテクチ
ャ特定プログラムがコンパイリングパーティーによって
生成されたことを検証するコンパイリングパーティーの
ディジタル署名を付加することによってアーキテクチャ
特定プログラムを生成するコンパイラと、コンパイリン
グパーティーのディジタル署名を生成する署名発生手段
と、を含み、実行パーティーによって作動され、プログ
ラム実行コンピュータと共に使用される第2のモジュー
ルを更に備え、実行パーティーはアーキテクチャ特定プ
ログラムを受信し、アーキテクチャ中立プログラムを受
信または発信し、第2のモジュールは、コンパイリング
パーティーのディジタル署名を検証する署名検証手段
と、コンパイリングパーティーの署名が検証され、コン
パイリングパーティーが信頼されたコンパイリングパー
ティーの限定集合のメンバーである時に、アーキテクチ
ャ特定言語で書かれたアーキテクチャ特定プログラムコ
ードを実行する実行手段と、を含むので、対応するAN
プログラムからコンパイルされたASプログラムのユー
ザが、誰がそのANプログラムをコンパイルしたのかの
識別と、対応するANプログラムのアイデンティティ
と、そのASプログラムをコンパイルしたAS言語とを
認証することができ、かつ完全性が検証できるANプロ
グラムを実行し、完全性を検証することはできないが、
信頼されているか、または検証可能な源とコンパイル情
報とを有するASプログラムを呼出すようにし、それに
よって源、コンパイル情報、及び完全性を検証できない
ASプログラムが呼出されるのを防ぎながら、本質的に
全ての適正なタスクを遂行することができる。
【図1】本発明の好ましい実施例を組み入れた分布コン
ピュータシステムのブロック線図である。
ピュータシステムのブロック線図である。
【図2】本発明の好ましい実施例によるアーキテクチャ
中立プログラムの構造を示す図である。
中立プログラムの構造を示す図である。
【図3】本発明の好ましい実施例により生成されるコン
パイルされたアーキテクチャ特定プログラムの構造を示
す図である。
パイルされたアーキテクチャ特定プログラムの構造を示
す図である。
【図4】本発明の好ましい実施例によるオブジェクト及
び関連オブジェクトクラスを示す図である。
び関連オブジェクトクラスを示す図である。
100 コンピュータネットワーク 102 顧客コンピュータ 104 サーバコンピュータ 106 信頼されたキーストレージ手段 108 ネットワーク通信接続 110 CPU 112 ユーザインタフェース 114 メモリ 116 ネットワーク通信インタフェース 118 オペレーティングシステム 120 ネットワーク通信管理手段 122 アーキテクチャ中立(AN)プログラム実行手
段 124 アーキテクチャ特定(AS)プログラム実行手
段 126 アーキテクチャ中立プログラム完全性検証手段 128 アーキテクチャ中立プログラムコンパイリング
準備手段 130 署名発生手段 132 署名検証手段 134 コンパイリング情報検証手段 136 オブジェクトクラスローダ 138 ユーザアドレス空間 140 信頼されたオブジェクトストレージ手段 142 信頼されないオブジェクトストレージ手段 144 信頼されたコンパイリングパーティー及び信頼
されたコンパイラのリスト 150 CPU 152 ユーザインタフェース 154 メモリ 156 ネットワーク通信インタフェース 158 オペレーティングシステム 160 ネットワーク通信管理手段 162 アーキテクチャ中立プログラムコンパイラ 164 署名検証手段 166 アーキテクチャ中立プログラム完全性検証手段 168 署名発生手段 170 アーキテクチャ中立プログラムストレージ手段 172 アーキテクチャ特定プログラムストレージ手段 200 アーキテクチャ中立プログラム 202 アーキテクチャ中立プログラムコード 210 ディジタル署名 212 メモリダイジェストOP 214 ハッシュ機能OPID 216 発信パーティーID 300 アーキテクチャ特定プログラム 302 アーキテクチャ特定プログラムコード 312 ディジタル署名CP 314 メッセージダイジェストCP 316 ハッシュ機能CPID 318 発信パーティーID 320 ディジタル署名C 322 メッセージダイジェストC 324 ハッシュ機能C ID 400 オブジェクトクラス 402 アーキテクチャ特定プログラム 404 アーキテクチャ中立プログラム 410 仮想機能テーブル 412 ネイティブ アーキテクチャ特定プログラムI
D 414 ポインタ 416 アーキテクチャ中立プログラムID 418 ポインタ 420 オブジェクト 422 オブジェクトヘッダ
段 124 アーキテクチャ特定(AS)プログラム実行手
段 126 アーキテクチャ中立プログラム完全性検証手段 128 アーキテクチャ中立プログラムコンパイリング
準備手段 130 署名発生手段 132 署名検証手段 134 コンパイリング情報検証手段 136 オブジェクトクラスローダ 138 ユーザアドレス空間 140 信頼されたオブジェクトストレージ手段 142 信頼されないオブジェクトストレージ手段 144 信頼されたコンパイリングパーティー及び信頼
されたコンパイラのリスト 150 CPU 152 ユーザインタフェース 154 メモリ 156 ネットワーク通信インタフェース 158 オペレーティングシステム 160 ネットワーク通信管理手段 162 アーキテクチャ中立プログラムコンパイラ 164 署名検証手段 166 アーキテクチャ中立プログラム完全性検証手段 168 署名発生手段 170 アーキテクチャ中立プログラムストレージ手段 172 アーキテクチャ特定プログラムストレージ手段 200 アーキテクチャ中立プログラム 202 アーキテクチャ中立プログラムコード 210 ディジタル署名 212 メモリダイジェストOP 214 ハッシュ機能OPID 216 発信パーティーID 300 アーキテクチャ特定プログラム 302 アーキテクチャ特定プログラムコード 312 ディジタル署名CP 314 メッセージダイジェストCP 316 ハッシュ機能CPID 318 発信パーティーID 320 ディジタル署名C 322 メッセージダイジェストC 324 ハッシュ機能C ID 400 オブジェクトクラス 402 アーキテクチャ特定プログラム 404 アーキテクチャ中立プログラム 410 仮想機能テーブル 412 ネイティブ アーキテクチャ特定プログラムI
D 414 ポインタ 416 アーキテクチャ中立プログラムID 418 ポインタ 420 オブジェクト 422 オブジェクトヘッダ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フランク イェーリン アメリカ合衆国 カリフォルニア州 94061 レッドウッド シティー ベリー ズフォード アベニュー 510
Claims (14)
- 【請求項1】 コンピュータネットワークであって、 コンパイリングパーティーによって作動され、発信パー
ティーによって生成されたアーキテクチャ中立プログラ
ムを受信するプログラムコンパイリングコンピュータを
備え、前記アーキテクチャ中立プログラムはアーキテク
チャ中立プログラムコード及び前記発信パーティーのデ
ィジタル署名を含み、前記ディジタル署名は検証時に前
記アーキテクチャ中立プログラムが前記発信パーティー
によって署名されたことを検証するようになっており、
前記プログラムコンパイリングコンピュータが、 前記発信パーティーのディジタル署名を検証する署名検
証手段と、 前記発信パーティーのディジタル署名が検証された時
に、(A)前記アーキテクチャ中立プログラムコードを
アーキテクチャ特定言語でアーキテクチャ特定プログラ
ムコードにコンパイルし、(B)検証時に前記アーキテ
クチャ特定プログラムが前記コンパイリングパーティー
によって生成されたことを検証する前記コンパイリング
パーティーのディジタル署名を付加することによってア
ーキテクチャ特定プログラムを生成するコンパイラと、 前記コンパイリングパーティーのディジタル署名を生成
する署名発生手段と、を含み、 実行パーティーによって作動され、前記アーキテクチャ
特定プログラムを受信し、前記アーキテクチャ中立プロ
グラムを受信または実行するプログラム実行コンピュー
タを更に備え、前記プログラム実行コンピュータは、 前記コンパイリングパーティーのディジタル署名を検証
する署名検証手段と、 前記コンパイリングパーティーの署名が検証され、前記
コンパイリングパーティーが信頼されたコンパイリング
パーティーの限定集合のメンバーである時に、前記アー
キテクチャ特定言語で書かれたアーキテクチャ特定プロ
グラムコードを実行する実行手段と、を含むことを特徴
とするコンピュータネットワーク。 - 【請求項2】 前記署名発生手段は、検証時に前記アー
キテクチャ特定プログラムが前記コンパイラを用いて生
成されたことを検証するコンパイラのディジタル署名を
生成し、 前記コンパイラは更に、前記アーキテクチャ特定プログ
ラムコードを前記コンパイラのディジタル署名に付加す
ることによっても前記アーキテクチャ特定プログラムを
生成し、 前記実行コンピュータの署名検証手段は、前記コンパイ
ラのディジタル署名を検証し、 前記実行手段は、前記コンパイラのディジタル署名が検
証され、前記コンパイラが信頼されたコンパイラの限定
集合のメンバーであることが決定された後に限って、前
記アーキテクチャ特定プログラムコードを実行する請求
項1に記載のコンピュータネットワーク。 - 【請求項3】 前記発信パーティー及び前記コンパイリ
ングパーティーのために、前記ネットワークは対応する
私用暗号化キー、公開暗号化キー、及び対応するハッシ
ュ機能を含み、 前記発信パーティーのディジタル署名は、前記アーキテ
クチャ中立プログラムに対して前記発信パーティーの対
応するハッシュ機能を遂行することによって生成した前
記アーキテクチャ中立プログラムのメッセージダイジェ
ストを含み、前記アーキテクチャ中立プログラムのメッ
セージダイジェストは、前記発信パーティーの対応する
私用キーを用いて暗号化されており、 前記プログラムコンパイリングコンピュータの署名検証
手段は、(A)前記発信パーティーの公開暗号化キーを
用いて前記アーキテクチャ中立プログラムの前記メッセ
ージダイジェストを暗号解除し、(B)前記アーキテク
チャ中立プログラムコードに対して前記発信パーティー
のハッシュ機能を遂行することによって前記アーキテク
チャ中立プログラムの対応する試験メッセージダイジェ
ストを生成し、そして(C)前記暗号解除されたメッセ
ージダイジェストと前記アーキテクチャ中立プログラム
の試験メッセージダイジェストとを比較することによっ
て前記発信パーティーのディジタル署名を検証させる命
令を含み、 前記署名発生手段は、(A)前記アーキテクチャ特定プ
ログラムコードに対して前記コンパイリングパーティー
の対応するハッシュ機能を遂行することによって前記ア
ーキテクチャ中立プログラムのメッセージダイジェスト
を生成し、そして(B)前記コンパイリングパーティー
の対応する私用キーを用いて前記アーキテクチャ特定プ
ログラムのメッセージダイジェストを暗号化することに
よって前記コンパイリングパーティーのディジタル署名
を生成させるための命令を含み、 前記プログラム実行コンピュータの署名検証手段は、
(A)前記コンパイリングパーティーの対応する公開キ
ーを用いて前記アーキテクチャ特定プログラムのメッセ
ージダイジェストを暗号解除し、(B)前記アーキテク
チャ特定プログラムコードに対して前記コンパイリング
パーティーのハッシュ機能を遂行することによって前記
アーキテクチャ特定プログラムの対応する試験メッセー
ジダイジェストを生成し、そして(C)前記暗号解除さ
れたメッセージダイジェストと前記アーキテクチャ特定
プログラムの試験メッセージダイジェストとを比較する
ことによって前記コンパイリングパーティーのディジタ
ル署名を検証させる命令を含む請求項1に記載のコンピ
ュータネットワーク。 - 【請求項4】 前記プログラム実行コンピュータは更
に、前記アーキテクチャ中立プログラムコードが所定の
プログラム完全性基準を満足することを検証することに
よって前記アーキテクチャ中立プログラムコードの完全
性を検証するアーキテクチャ中立プログラム完全性検証
手段を含み、 前記実行手段は、前記アーキテクチャ中立プログラムコ
ードの完全性が検証された後に限って、前記アーキテク
チャ特定プログラムコードを実行する請求項1に記載の
コンピュータネットワーク。 - 【請求項5】 前記アーキテクチャ中立プログラムを供
給するプログラム発信コンピュータを更に備え、 前記プログラム発信コンピュータは、前記アーキテクチ
ャ中立プログラムコードに付加される発信パーティーの
ディジタル署名を生成する署名発生手段を含み、 前記プログラム発信コンピュータと連絡して前記プログ
ラム発信コンピュータから前記アーキテクチャ中立プロ
グラムを受信し、前記アーキテクチャ特定プログラムを
前記プログラム発信コンピュータへ供給するプログラム
コンパイリングコンピュータを更に備え、 前記プログラム実行コンピュータは前記プログラム発信
コンピュータと連絡して前記プログラム発信コンピュー
タから前記アーキテクチャ中立プログラム及びアーキテ
クチャ特定プログラムを受信し、 前記プログラム実行コンピュータの署名検証手段は、前
記発信パーティーのディジタル署名をも検証し、 前記プログラム実行コンピュータは、前記発信パーティ
ーのディジタル署名が検証された後に限って前記アーキ
テクチャ特定プログラムを実行する請求項1に記載のコ
ンピュータネットワーク。 - 【請求項6】 コンピュータネットワークを動作させる
方法であって、 コンパイリングパーティーによって作動されるプログラ
ムコンパイリングコンピュータにおいて、 発信パーティーによって生成され、アーキテクチャ中立
プログラムコード、及び検証時にアーキテクチャ中立プ
ログラムが前記発信パーティーによって署名されたこと
を検証する前記発信パーティーのディジタル署名を含む
前記アーキテクチャ中立プログラムを受信する段階と、 前記発信パーティーのディジタル署名を検証する段階
と、 前記アーキテクチャ中立プログラムをコンパイラを用い
てコンパイルし、 前記発信パーティーのディジタル署名が検証された時に
アーキテクチャ特定プログラムを生成し、そして検証時
に前記アーキテクチャ特定プログラムが前記コンパイリ
ングパーティーによって生成されたことを検証する前記
コンパイリングパーティーのディジタル署名を付加する
段階と、を含み、 実行パーティーによって作動されるプログラム実行コン
ピュータにおいて、 前記アーキテクチャ特定プログラムを受信し、前記アー
キテクチャ中立プログラムを受信または発信する段階
と、 前記コンパイリングパーティーのディジタル署名を検証
する段階と、 前記コンパイラのディジタル署名が検証され、前記コン
パイラが信頼されたコンパイラの限定集合のメンバーで
あることが決定された時に、前記アーキテクチャ特定プ
ログラムコードを実行する段階と、を含むことを特徴と
する方法。 - 【請求項7】 前記プログラムコンパイリングコンピュ
ータにおいて、 検証時に前記アーキテクチャ特定プログラムが前記コン
パイラを用いて生成されたことを検証する前記コンパイ
ラのディジタル署名を生成する段階と、 前記アーキテクチャ特定プログラムコードに前記コンパ
イラのディジタル署名を付加する段階とを含み、 前記プログラム実行コンピュータにおいて、 前記コンパイラのディジタル署名を検証する段階と、 前記コンパイラのディジタル署名が検証され、前記コン
パイラが信頼されたコンパイラの限定集合のメンバーで
あることが決定された後に限って、前記アーキテクチャ
特定プログラムコードを実行する段階と、を含む請求項
6に記載の方法。 - 【請求項8】 前記発信パーティー及び前記コンパイリ
ングパーティーのために、前記ネットワークは対応する
私用暗号化キー、公開暗号化キー、及び対応するハッシ
ュ機能を含み、 前記発信パーティーのディジタル署名は、前記アーキテ
クチャ中立プログラムに対して前記発信パーティーの対
応するハッシュ機能を遂行することによって生成した前
記アーキテクチャ中立プログラムのメッセージダイジェ
ストを含み、前記アーキテクチャ中立プログラムのメッ
セージダイジェストは、前記発信パーティーの対応する
私用キーを用いて暗号化されており、 前記方法は、 前記プログラムコンパイリングコンピュータにおいて、 (A)前記発信パーティーの公開暗号化キーを用いて前
記アーキテクチャ中立プログラムの前記メッセージダイ
ジェストを暗号解除し、(B)前記アーキテクチャ中立
プログラムコードに対して前記発信パーティーのハッシ
ュ機能を遂行することによって前記アーキテクチャ中立
プログラムの対応する試験メッセージダイジェストを生
成し、そして(C)前記暗号解除されたメッセージダイ
ジェストと前記アーキテクチャ中立プログラムの試験メ
ッセージダイジェストとを比較することによって前記発
信パーティーのディジタル署名を検証する段階と、 (A)前記アーキテクチャ特定プログラムコードに対し
て前記コンパイリングパーティーの対応するハッシュ機
能を遂行することによって前記アーキテクチャ中立プロ
グラムのメッセージダイジェストを生成し、そして
(B)前記コンパイリングパーティーの対応する私用キ
ーを用いて前記アーキテクチャ特定プログラムのメッセ
ージダイジェストを暗号化することによって前記コンパ
イリングパーティーのディジタル署名を生成する段階
と、を含み、 前記プログラム実行コンピュータにおいて、 (A)前記コンパイリングパーティーの公開キーを用い
て前記アーキテクチャ特定プログラムのメッセージダイ
ジェストを暗号解除し、(B)前記アーキテクチャ特定
プログラムコードに対して前記コンパイリングパーティ
ーのハッシュ機能を遂行することによって前記アーキテ
クチャ特定プログラムの対応する試験メッセージダイジ
ェストを生成し、そして(C)前記暗号解除されたメッ
セージダイジェストと前記アーキテクチャ特定プログラ
ムの試験メッセージダイジェストとを比較することによ
って前記コンパイリングパーティーのディジタル署名を
検証する段階と、を含む請求項6に記載の方法。 - 【請求項9】 プログラム実行コンピュータにおいて、 前記アーキテクチャ中立プログラムコードが所定のプロ
グラム完全性基準を満足することを検証することによっ
て前記アーキテクチャ中立プログラムコードの完全性を
検証する段階と、 前記アーキテクチャ中立プログラムコードの完全性が検
証された後に限って、前記アーキテクチャ特定プログラ
ムコードを実行する段階と、を含む請求項6に記載の方
法。 - 【請求項10】 前記アーキテクチャ中立プログラムを
供給するプログラム発信コンピュータにおいて、 前記発信パーティーのディジタル署名を生成し、それを
前記アーキテクチャ中立プログラムコードに付加する段
階を含み、 前記プログラムコンパイリングコンピュータにおいて、 前記プログラム発信コンピュータと連絡して前記プログ
ラム発信コンピュータから前記アーキテクチャ中立プロ
グラムを受信し、前記アーキテクチャ特定プログラムを
前記プログラム発信コンピュータへ供給する段階を含
み、 前記プログラム実行コンピュータにおいて、 前記プログラム発信コンピュータと連絡して前記プログ
ラム発信コンピュータから前記アーキテクチャ中立プロ
グラム及びアーキテクチャ特定プログラムを受信する段
階と、 前記発信パーティーのディジタル署名を検証する段階
と、 前記発信パーティーのディジタル署名が検証された後に
限って前記アーキテクチャ特定プログラムを実行する段
階と、を含む請求項6に記載の方法。 - 【請求項11】 前記プログラム実行コンピュータにお
いて、 前記アーキテクチャ中立プログラムを供給する段階と、 前記アーキテクチャ中立プログラムに署名する発信パー
ティーのディジタル署名を生成し、それを前記アーキテ
クチャ中立プログラムコードに付加する段階と、を含
み、 前記プログラムコンパイリングコンピュータにおいて、 前記プログラム実行コンピュータと連絡して前記プログ
ラム実行コンピュータから前記アーキテクチャ中立プロ
グラムを受信し、前記アーキテクチャ特定プログラムを
前記プログラム実行コンピュータへ供給する段階を含む
請求項6に記載の方法。 - 【請求項12】 コンピュータ読取り可能な媒体上に格
納され、コンピュータによって実行可能なコードを分配
するシステムであって、前記コードは各々が前記コンピ
ュータの1つによって実行される少なくとも1つの機能
を遂行するように構成されている複数のモジュールを含
み、前記システムは、 コンパイリングパーティーによって作動され、プログラ
ムコンパイリングコンピュータと共に使用するように構
成されている第1のモジュールを備え、前記コンパイリ
ングパーティーは、発信パーティーによって生成される
アーキテクチャ中立プログラムを受信し、前記アーキテ
クチャ中立プログラムはアーキテクチャ中立プログラム
コード及び前記発信パーティーのディジタル署名を含
み、前記ディジタル署名は検証時に前記アーキテクチャ
中立プログラムが前記発信パーティーによって署名され
たことを検証するようになっており、前記第1のモジュ
ールは、 前記発信パーティーのディジタル署名を検証する署名検
証手段と、 前記発信パーティーのディジタル署名が検証された時
に、(A)前記アーキテクチャ中立プログラムコードを
アーキテクチャ特定言語でアーキテクチャ特定プログラ
ムコードにコンパイルし、(B)検証時に前記アーキテ
クチャ特定プログラムが前記コンパイリングパーティー
によって生成されたことを検証する前記コンパイリング
パーティーのディジタル署名を付加することによってア
ーキテクチャ特定プログラムを生成するコンパイラと、 前記コンパイリングパーティーのディジタル署名を生成
する署名発生手段と、を含み、 実行パーティーによって作動され、プログラム実行コン
ピュータと共に使用される第2のモジュールを更に備
え、前記実行パーティーは前記アーキテクチャ特定プロ
グラムを受信し、前記アーキテクチャ中立プログラムを
受信または発信し、前記第2のモジュールは、 前記コンパイリングパーティーのディジタル署名を検証
する署名検証手段と、 前記コンパイリングパーティーの署名が検証され、前記
コンパイリングパーティーが信頼されたコンパイリング
パーティーの限定集合のメンバーである時に、前記アー
キテクチャ特定言語で書かれたアーキテクチャ特定プロ
グラムコードを実行する実行手段と、を含むことを特徴
とするシステム。 - 【請求項13】 前記署名発生手段は、検証時に前記ア
ーキテクチャ特定プログラムが前記コンパイラを用いて
生成されたことを検証する前記コンパイラのディジタル
署名を生成し、 前記第1のモジュールは、前記アーキテクチャ特定プロ
グラムコードを前記コンパイラのディジタル署名に付加
し前記第2のモジュールの署名検証手段は、前記コンパ
イラのディジタル署名を検証し、 前記第2のモジュールの実行手段は、前記コンパイラの
ディジタル署名が検証され、前記コンパイラが信頼され
たコンパイラの限定集合のメンバーであることが決定さ
れた後に限って、前記アーキテクチャ特定プログラムコ
ードを実行する請求項12に記載のシステム。 - 【請求項14】 前記発信パーティー及び前記コンパイ
リングパーティーのために、前記システムは対応する私
用暗号化キー、公開暗号化キー、及び対応するハッシュ
機能を含み、 前記発信パーティーのディジタル署名は、前記アーキテ
クチャ中立プログラムに対して前記発信パーティーの対
応するハッシュ機能を遂行することによって生成した前
記アーキテクチャ中立プログラムのメッセージダイジェ
ストを含み、前記アーキテクチャ中立プログラムのメッ
セージダイジェストは、前記発信パーティーの対応する
私用キーを用いて暗号化されており、 前記第1のモジュールの署名検証手段は、(A)前記発
信パーティーの公開暗号化キーを用いて前記アーキテク
チャ中立プログラムの前記メッセージダイジェストを暗
号解除し、(B)前記アーキテクチャ中立プログラムコ
ードに対して前記発信パーティーのハッシュ機能を遂行
することによって前記アーキテクチャ中立プログラムの
対応する試験メッセージダイジェストを生成し、そして
(C)前記暗号解除されたメッセージダイジェストと前
記アーキテクチャ中立プログラムの試験メッセージダイ
ジェストとを比較することによって前記発信パーティー
のディジタル署名を検証させる命令を含み、 前記第1のモジュールの前記署名発生手段は、(A)前
記アーキテクチャ特定プログラムコードに対して前記コ
ンパイリングパーティーの対応するハッシュ機能を遂行
することによって前記アーキテクチャ中立プログラムの
メッセージダイジェストを生成し、そして(B)前記コ
ンパイリングパーティーの対応する私用キーを用いて前
記アーキテクチャ特定プログラムのメッセージダイジェ
ストを暗号化することによって前記コンパイリングパー
ティーのディジタル署名を生成させるための命令を含
み、 前記第2のモジュールの署名検証手段は、(A)前記コ
ンパイリングパーティーの対応する公開キーを用いて前
記アーキテクチャ特定プログラムのメッセージダイジェ
ストを暗号解除し、(B)前記アーキテクチャ特定プロ
グラムコードに対して前記コンパイリングパーティーの
ハッシュ機能を遂行することによって前記アーキテクチ
ャ特定プログラムの対応する試験メッセージダイジェス
トを生成し、そして(C)前記暗号解除されたメッセー
ジダイジェストと前記アーキテクチャ特定プログラムの
試験メッセージダイジェストとを比較することによって
前記コンパイリングパーティーのディジタル署名を検証
させる命令を含む、請求項12に記載のシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/569397 | 1995-12-08 | ||
| US08/569,397 US6067575A (en) | 1995-12-08 | 1995-12-08 | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1069382A true JPH1069382A (ja) | 1998-03-10 |
Family
ID=24275282
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8328927A Pending JPH1069382A (ja) | 1995-12-08 | 1996-12-09 | アーキテクチャ中立プログラムの信頼された、アーキテクチャ特定の、コンパイルされたバージョンを生成するシステム及び方法 |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US6067575A (ja) |
| EP (1) | EP0778522B1 (ja) |
| JP (1) | JPH1069382A (ja) |
| KR (1) | KR100420569B1 (ja) |
| CN (1) | CN1103968C (ja) |
| AU (1) | AU718051B2 (ja) |
| CA (1) | CA2191522C (ja) |
| DE (1) | DE69635204D1 (ja) |
| SG (1) | SG75106A1 (ja) |
| TW (1) | TW355773B (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11282672A (ja) * | 1998-03-31 | 1999-10-15 | Hitachi Software Eng Co Ltd | オンラインプログラム転送方法およびオンラインプログラム実行システム |
| WO2000042498A1 (en) * | 1999-01-13 | 2000-07-20 | Hitachi, Ltd. | Method and system for executing mobile code |
| JP2003509767A (ja) * | 1999-09-14 | 2003-03-11 | タオ グループ リミテッド | オブジェクト指向コンピュータプログラムのロード |
| JPWO2002093361A1 (ja) * | 2001-05-14 | 2004-09-02 | 株式会社エヌ・ティ・ティ・ドコモ | 移動体端末の記憶部に格納されたプログラムを管理するシステム |
| JP2017538217A (ja) * | 2014-11-28 | 2017-12-21 | トムソン ライセンシングThomson Licensing | アプリケーション整合性の検証を提供する方法及びデバイス |
Families Citing this family (95)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6067575A (en) * | 1995-12-08 | 2000-05-23 | Sun Microsystems, Inc. | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs |
| US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
| US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system |
| US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
| US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
| US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
| US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
| US6466947B2 (en) * | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
| US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
| US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
| US6182083B1 (en) | 1997-11-17 | 2001-01-30 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database |
| US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
| US6708171B1 (en) | 1996-04-23 | 2004-03-16 | Sun Microsystems, Inc. | Network proxy |
| US6560656B1 (en) | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
| US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
| US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
| US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
| US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
| US7058822B2 (en) | 2000-03-30 | 2006-06-06 | Finjan Software, Ltd. | Malicious mobile code runtime monitoring system and methods |
| US9219755B2 (en) | 1996-11-08 | 2015-12-22 | Finjan, Inc. | Malicious mobile code runtime monitoring system and methods |
| US8079086B1 (en) | 1997-11-06 | 2011-12-13 | Finjan, Inc. | Malicious mobile code runtime monitoring system and methods |
| JPH1165851A (ja) * | 1997-08-12 | 1999-03-09 | Mitsubishi Electric Corp | ファイル変換方法および記録媒体 |
| US6957427B1 (en) | 1997-10-15 | 2005-10-18 | Sun Microsystems, Inc. | Remote object activation in a distributed system |
| US6334189B1 (en) * | 1997-12-05 | 2001-12-25 | Jamama, Llc | Use of pseudocode to protect software from unauthorized use |
| US6219787B1 (en) * | 1997-12-22 | 2001-04-17 | Texas Instruments Incorporated | Method and apparatus for extending security model to native code |
| EP1057107A1 (en) * | 1998-02-26 | 2000-12-06 | Sun Microsystems, Inc. | Dynamic lookup service in a distributed system |
| KR20010034514A (ko) | 1998-02-26 | 2001-04-25 | 케네쓰 올센 | 원격 메소드를 식별하는 해시 판정 방법 및 시스템 |
| US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
| US6324685B1 (en) | 1998-03-18 | 2001-11-27 | Becomm Corporation | Applet server that provides applets in various forms |
| JPH11338710A (ja) * | 1998-05-28 | 1999-12-10 | Toshiba Corp | 複数種の命令セットを持つプロセッサのためのコンパイル方法ならびに装置および同方法がプログラムされ記録される記録媒体 |
| US6430569B1 (en) | 1998-08-14 | 2002-08-06 | Sun Microsystems, Inc. | Methods and apparatus for type safe, lazy, user-defined class loading |
| JP3360635B2 (ja) * | 1999-01-14 | 2002-12-24 | 日本電気株式会社 | プログラム検査システムとプログラム検査方法並びにその記憶媒体 |
| US6581206B2 (en) | 1999-11-12 | 2003-06-17 | Sun Microsystems, Inc. | Computer program language subset validation |
| US6880155B2 (en) | 1999-02-02 | 2005-04-12 | Sun Microsystems, Inc. | Token-based linking |
| EP1035461A3 (de) * | 1999-03-11 | 2004-04-14 | BDC - EDV Consulting GmbH | Terminal für gesichertes Bestätigen von Daten und Verfahren hierzu |
| US6901518B1 (en) | 1999-04-08 | 2005-05-31 | Sun Microsystems, Inc. | Method and system for establishing trust in downloaded proxy code |
| US6601114B1 (en) | 1999-05-27 | 2003-07-29 | Sun Microsystems, Inc. | Fully lazy linking with module-by-module verification |
| US6618855B1 (en) | 1999-05-27 | 2003-09-09 | Sun Microsystems, Inc. | Caching untrusted modules for module-by-module verification |
| US6763397B1 (en) | 1999-05-27 | 2004-07-13 | Sun Microsystems, Inc. | Fully lazy linking |
| US6618769B1 (en) | 1999-05-27 | 2003-09-09 | Sun Microsystems, Inc. | Module-by-module verification |
| US6766521B1 (en) | 1999-05-27 | 2004-07-20 | Sun Microsystems, Inc. | Dataflow algorithm for symbolic computation of lowest upper bound type |
| WO2000079382A2 (en) * | 1999-06-20 | 2000-12-28 | Thinkpulse, Inc. | Method and system of performing a security check of a smart device description file |
| NL1013249C2 (nl) * | 1999-10-08 | 2001-04-10 | Tryllian B V | Werkwijze voor het overdragen van een softwaremodule van een zender aan een ontvanger in een computersysteem of computernetwerk. |
| US7010786B2 (en) | 1999-11-12 | 2006-03-07 | Sun Microsystems, Inc. | Predictive arithmetic overflow detection |
| US6363523B1 (en) | 1999-11-12 | 2002-03-26 | Sun Microsystems, Inc. | Optimization of N-base typed arithmetic expressions |
| US8453133B2 (en) | 1999-11-12 | 2013-05-28 | Oracle America, Inc. | Optimization of N-base typed arithmetic instructions via rework |
| US7107581B2 (en) | 1999-11-12 | 2006-09-12 | Sun Microsystems, Inc. | Overflow predictive arithmetic instruction optimization using chaining |
| US7207037B2 (en) | 1999-11-12 | 2007-04-17 | Sun Microsystems, Inc. | Overflow sensitive arithmetic instruction optimization using chaining |
| US6629163B1 (en) | 1999-12-29 | 2003-09-30 | Implicit Networks, Inc. | Method and system for demultiplexing a first sequence of packet components to identify specific components wherein subsequent components are processed without re-identifying components |
| US7155606B1 (en) | 2000-04-12 | 2006-12-26 | Microsoft Corporation | Method and system for accepting preverified information |
| WO2001079999A2 (en) | 2000-04-12 | 2001-10-25 | Microsoft Corporation | Method and system for accepting precompiled information |
| US20060064595A1 (en) * | 2000-05-09 | 2006-03-23 | Microsoft Corporation | Restricted software and hardware usage on a computer |
| ES2180391B1 (es) * | 2000-09-25 | 2003-12-16 | Telesincro S A | Circuito integrado. |
| US6971023B1 (en) * | 2000-10-03 | 2005-11-29 | Mcafee, Inc. | Authorizing an additional computer program module for use with a core computer program |
| US7296275B2 (en) * | 2001-01-04 | 2007-11-13 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts |
| KR100749690B1 (ko) | 2001-01-31 | 2007-08-17 | 엔티티 도꼬모 인코퍼레이티드 | 이동 단말의 기억 모듈에 프로그램을 배포하는 시스템 |
| BR0206974A (pt) * | 2001-02-02 | 2004-03-09 | Opentv Inc | Método e aparelho para compilar uma linguagem interativa para televisão interativa |
| EP1356680B1 (en) | 2001-02-02 | 2013-05-22 | Opentv, Inc. | A method and apparatus for reformatting of content for display on interactive television |
| US7305697B2 (en) | 2001-02-02 | 2007-12-04 | Opentv, Inc. | Service gateway for interactive television |
| DE10108487A1 (de) * | 2001-02-22 | 2002-09-12 | Giesecke & Devrient Gmbh | Verfahren und System zur verteilten Erstellung eines Programms für einen programmierbaren, tragbaren Datenträger |
| US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
| US7660887B2 (en) * | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
| US8086664B2 (en) * | 2001-09-24 | 2011-12-27 | Siemens Industry, Inc. | Method and apparatus for programming programmable controllers and generating configuration data from a centralized server |
| DE10157251A1 (de) * | 2001-11-22 | 2003-06-05 | Siemens Ag | Verfahren zum Zugriff auf Daten eines Automatisierungsgerätes und Automatisierungsgerät |
| US8140660B1 (en) | 2002-07-19 | 2012-03-20 | Fortinet, Inc. | Content pattern recognition language processor and methods of using the same |
| WO2004015553A1 (en) * | 2002-08-13 | 2004-02-19 | Nokia Corporation | Computer architecture for executing a program in a secure of insecure mode |
| US20040122962A1 (en) * | 2002-12-24 | 2004-06-24 | Difalco Robert A. | Service environment integrity based service selection |
| US7587754B2 (en) * | 2002-12-24 | 2009-09-08 | Tripwire, Inc. | Environment integrity assured transactions |
| DE10327614A1 (de) * | 2003-06-18 | 2005-01-20 | Siemens Ag | Vorrichtung und Verfahren zur Programmierung und/oder Ausführung von Programmen für industrielle Automatisierungssysteme |
| US8402550B2 (en) * | 2003-10-17 | 2013-03-19 | Trinary Anlagenbau Gmbh | Method and device for preventing a control error of a machine tool |
| US7516331B2 (en) * | 2003-11-26 | 2009-04-07 | International Business Machines Corporation | Tamper-resistant trusted java virtual machine and method of using the same |
| US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
| JP4727278B2 (ja) | 2005-04-05 | 2011-07-20 | 株式会社エヌ・ティ・ティ・ドコモ | アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム |
| US8682795B2 (en) * | 2005-09-16 | 2014-03-25 | Oracle International Corporation | Trusted information exchange based on trust agreements |
| US7681239B2 (en) * | 2005-09-30 | 2010-03-16 | Microsoft Corporation | Modularly constructing a software defined radio |
| US8396041B2 (en) | 2005-11-08 | 2013-03-12 | Microsoft Corporation | Adapting a communication network to varying conditions |
| JP4537940B2 (ja) * | 2005-11-21 | 2010-09-08 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、及びプログラム実行制御方法 |
| US8381047B2 (en) | 2005-11-30 | 2013-02-19 | Microsoft Corporation | Predicting degradation of a communication channel below a threshold based on data transmission errors |
| US7624131B2 (en) * | 2007-01-18 | 2009-11-24 | Microsoft Corporation | Type restriction and mapping for partial materialization |
| DE102008055076A1 (de) * | 2008-12-22 | 2010-07-01 | Robert Bosch Gmbh | Vorrichtung und Verfahren zum Schutz von Daten, Computerprogramm, Computerprogrammprodukt |
| US8850211B2 (en) * | 2009-04-27 | 2014-09-30 | Qualcomm Incorporated | Method and apparatus for improving code and data signing |
| US8677329B2 (en) | 2009-06-03 | 2014-03-18 | Apple Inc. | Methods and apparatuses for a compiler server |
| US9117071B2 (en) * | 2009-06-03 | 2015-08-25 | Apple Inc. | Methods and apparatuses for secure compilation |
| DE102009024985A1 (de) * | 2009-06-16 | 2010-12-23 | Giesecke & Devrient Gmbh | Verfahren zur Ausführung eines Bytecodes in einer gesicherten Laufzeitumgebung |
| DE102009031143B3 (de) * | 2009-06-30 | 2010-12-09 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zum Erstellen und Validieren eines digitalen Zertifikats |
| WO2012079531A1 (zh) * | 2010-12-16 | 2012-06-21 | 华为技术有限公司 | 提升移动微件widget应用性能的方法及装置 |
| CN102141914A (zh) * | 2010-12-16 | 2011-08-03 | 华为技术有限公司 | 提升移动微件Widget应用性能的方法及装置 |
| US8631628B1 (en) | 2011-02-25 | 2014-01-21 | Clearview Composite Wall System, LLC | Tilt-up concrete spandrel assemblies and methods |
| US8756582B2 (en) * | 2011-08-22 | 2014-06-17 | International Business Machines Corporation | Tracking a programs calling context using a hybrid code signature |
| US8997038B2 (en) * | 2012-03-30 | 2015-03-31 | Anypresence, Inc. | Systems and methods for building and deploying mobile applications |
| CN103914329B (zh) * | 2014-03-20 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 编译程序的方法和装置 |
| US9547484B1 (en) * | 2016-01-04 | 2017-01-17 | International Business Machines Corporation | Automated compiler operation verification |
| US10230527B2 (en) * | 2017-04-19 | 2019-03-12 | Continental Automotive Systems, Inc. | Method and apparatus to quickly authenticate program using a security element |
| US11409886B2 (en) * | 2017-07-31 | 2022-08-09 | Nec Corporation | Program verification system, method, and program |
| CN115955365A (zh) * | 2023-03-14 | 2023-04-11 | 之江实验室 | 一种内生安全的网络编译系统及方法 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5224160A (en) * | 1987-02-23 | 1993-06-29 | Siemens Nixdorf Informationssysteme Ag | Process for securing and for checking the integrity of the secured programs |
| US4868877A (en) * | 1988-02-12 | 1989-09-19 | Fischer Addison M | Public key/signature cryptosystem with enhanced digital signature certification |
| US5280613A (en) * | 1990-06-25 | 1994-01-18 | Hewlett-Packard Company | ANDF installer using the HPcode-Plus compiler intermediate language |
| JP2665089B2 (ja) * | 1991-09-26 | 1997-10-22 | 三菱電機株式会社 | 分散環境下におけるコンパイル方式 |
| US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
| US5359659A (en) * | 1992-06-19 | 1994-10-25 | Doren Rosenthal | Method for securing software against corruption by computer viruses |
| FR2703800B1 (fr) * | 1993-04-06 | 1995-05-24 | Bull Cp8 | Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre. |
| US5432937A (en) * | 1993-08-20 | 1995-07-11 | Next Computer, Inc. | Method and apparatus for architecture independent executable files |
| US5343527A (en) * | 1993-10-27 | 1994-08-30 | International Business Machines Corporation | Hybrid encryption method and system for protecting reusable software components |
| US5475753A (en) * | 1993-11-12 | 1995-12-12 | Matsushita Electric Corporation Of America | Apparatus and method for certifying the delivery of information |
| US5724425A (en) * | 1994-06-10 | 1998-03-03 | Sun Microsystems, Inc. | Method and apparatus for enhancing software security and distributing software |
| US5559884A (en) * | 1994-06-30 | 1996-09-24 | Microsoft Corporation | Method and system for generating and auditing a signature for a computer program |
| US6067575A (en) * | 1995-12-08 | 2000-05-23 | Sun Microsystems, Inc. | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs |
-
1995
- 1995-12-08 US US08/569,397 patent/US6067575A/en not_active Expired - Lifetime
-
1996
- 1996-11-28 AU AU74021/96A patent/AU718051B2/en not_active Ceased
- 1996-11-28 CA CA002191522A patent/CA2191522C/en not_active Expired - Fee Related
- 1996-12-03 EP EP96308722A patent/EP0778522B1/en not_active Expired - Lifetime
- 1996-12-03 DE DE69635204T patent/DE69635204D1/de not_active Expired - Lifetime
- 1996-12-06 KR KR1019960062292A patent/KR100420569B1/ko not_active Expired - Fee Related
- 1996-12-06 SG SG1996011555A patent/SG75106A1/en unknown
- 1996-12-08 CN CN96121380A patent/CN1103968C/zh not_active Expired - Fee Related
- 1996-12-09 JP JP8328927A patent/JPH1069382A/ja active Pending
- 1996-12-23 TW TW085115884A patent/TW355773B/zh active
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11282672A (ja) * | 1998-03-31 | 1999-10-15 | Hitachi Software Eng Co Ltd | オンラインプログラム転送方法およびオンラインプログラム実行システム |
| WO2000042498A1 (en) * | 1999-01-13 | 2000-07-20 | Hitachi, Ltd. | Method and system for executing mobile code |
| JP3873624B2 (ja) * | 1999-01-13 | 2007-01-24 | 株式会社日立製作所 | モバイルコードの実行方法およびそのシステム |
| JP2003509767A (ja) * | 1999-09-14 | 2003-03-11 | タオ グループ リミテッド | オブジェクト指向コンピュータプログラムのロード |
| JPWO2002093361A1 (ja) * | 2001-05-14 | 2004-09-02 | 株式会社エヌ・ティ・ティ・ドコモ | 移動体端末の記憶部に格納されたプログラムを管理するシステム |
| US7379731B2 (en) | 2001-05-14 | 2008-05-27 | Ntt Docomo Inc. | System for managing program applications storable in a mobile terminal |
| US7706786B2 (en) | 2001-05-14 | 2010-04-27 | Ntt Docomo, Inc. | System for managing program applications storable in a mobile terminal |
| US7742756B2 (en) | 2001-05-14 | 2010-06-22 | Ntt Docomo, Inc. | System for managing program applications storable in a mobile terminal |
| US8010095B2 (en) | 2001-05-14 | 2011-08-30 | Ntt Docomo, Inc. | System for managing program applications storable in a mobile terminal |
| US8140846B2 (en) | 2001-05-14 | 2012-03-20 | Ntt Docomo, Inc. | System for managing program applications storable in a mobile terminal |
| US8166291B2 (en) | 2001-05-14 | 2012-04-24 | Ntt Docomo, Inc. | System for managing program applications storable in a mobile terminal |
| JP2017538217A (ja) * | 2014-11-28 | 2017-12-21 | トムソン ライセンシングThomson Licensing | アプリケーション整合性の検証を提供する方法及びデバイス |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0778522A3 (en) | 1999-04-07 |
| EP0778522A2 (en) | 1997-06-11 |
| SG75106A1 (en) | 2000-09-19 |
| CA2191522A1 (en) | 1997-06-09 |
| TW355773B (en) | 1999-04-11 |
| AU7402196A (en) | 1997-06-12 |
| EP0778522B1 (en) | 2005-09-21 |
| CN1157959A (zh) | 1997-08-27 |
| US6067575A (en) | 2000-05-23 |
| CA2191522C (en) | 2003-05-06 |
| KR100420569B1 (ko) | 2004-06-10 |
| AU718051B2 (en) | 2000-04-06 |
| KR970049509A (ko) | 1997-07-29 |
| DE69635204D1 (de) | 2006-02-02 |
| CN1103968C (zh) | 2003-03-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1069382A (ja) | アーキテクチャ中立プログラムの信頼された、アーキテクチャ特定の、コンパイルされたバージョンを生成するシステム及び方法 | |
| JP4112033B2 (ja) | 信頼されたソースからの検証不能プログラムを使用するための機能を有する検証可能プログラムを実行するシステム及び方法 | |
| US6647495B1 (en) | Information processing apparatus and method and recording medium | |
| JP3982857B2 (ja) | 動的にリンクされた実行可能モジュールの使用を保護するシステム及び方法 | |
| US7360097B2 (en) | System providing methodology for securing interfaces of executable files | |
| US7434263B2 (en) | System and method for secure storage data using a key | |
| US6327652B1 (en) | Loading and identifying a digital rights management operating system | |
| US6922782B1 (en) | Apparatus and method for ensuring data integrity of unauthenticated code | |
| US6820200B2 (en) | Information processing apparatus and method and recording medium | |
| EP0762289A2 (en) | Method and system for securely controlling access to system resources in a distributed system | |
| US8473753B2 (en) | Real-time secure self-acquiring root authority | |
| JP2004502233A (ja) | 共有名を用いてコンポーネントにセキュリティを提供するシステムおよび方法 | |
| CN107220083A (zh) | 一种安卓系统中免安装运行应用程序的方法和系统 | |
| US20060059350A1 (en) | Strong names | |
| Faupel | Status of Industry Work on Signed Mobile Code | |
| CN116910712A (zh) | 代码保护方法、系统、电子设备及存储介质 | |
| Anderson | Java™ access control mechanisms | |
| HK1001142A (en) | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs | |
| HK1000846B (en) | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources | |
| Kappeler et al. | Encryption Facility for z/OS V1. 2 Open PGP Support |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061225 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070326 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080317 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090309 |