JPH1011281A - 信頼されたソースからの検証不能プログラムを使用するための機能を有する検証可能プログラムを実行するシステム及び方法 - Google Patents
信頼されたソースからの検証不能プログラムを使用するための機能を有する検証可能プログラムを実行するシステム及び方法Info
- Publication number
- JPH1011281A JPH1011281A JP8328897A JP32889796A JPH1011281A JP H1011281 A JPH1011281 A JP H1011281A JP 8328897 A JP8328897 A JP 8328897A JP 32889796 A JP32889796 A JP 32889796A JP H1011281 A JPH1011281 A JP H1011281A
- Authority
- JP
- Japan
- Prior art keywords
- program
- object class
- architecture
- digital signature
- message digest
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
使用し、それ以外の証明不能なプログラムの実行を拒絶
する装置及び方法を提供する。 【解決手段】 コンピュータシステムは証明可能なアー
キテクチャ中立プログラムを実行し、証明不能なプログ
ラムは、信頼された貯蔵手段内に存在するか、信頼され
た源が生成したことを証明する署名によって間接的に証
明可能でない限り実行しない。証明不能プログラムはア
ーキテクチャ特定のコンパイルされたプログラムであり
得、コンパイリングパーティーによる署名と、コンパイ
ラによる署名とを含む。各署名は、署名パーティーの識
別子と暗号化されたメッセージとを含む。署名検査手段
は、公開キーを入手して各ディジタル署名を処理し、メ
ッセージを暗号解除し、アーキテクチャ特定プログラム
の試験メッセージを生成し、両メッセージを比較し、両
者一致しなければ不合格信号を発行する。
Description
ュータシステムに関し、詳しく述べれば、その完全性が
検証可能であるプログラムのためのプログラムインタプ
リタが、信頼されたソースからの検証不能プログラムは
使用し、それ以外の検証不能プログラムの実行は拒絶す
る機能を含むようなシステム及び方法に関する。
とは、コンピュータモデルのファミリーの動作特性と定
義する。明確なアーキテクチャの例は、マッキントッシ
ュコンピュータ、DOSまたはウィンドウズオペレーテ
ィングシステムを使用するIBM PCコンパチブルコ
ンピュータ、ソラリスオペレーティングシステムを走ら
せるSUNマイクロシステムズコンピュータ、及びユニ
ックスオペレーティングシステムを使用するコンピュー
タシステムである。本明細書においては「アーキテクチ
ャ中立(または不問:neutral )」とは、多くの異なる
コンピュータアーキテクチャを使用する種々のコンピュ
ータプラットフォーム上で実行される Java ( Sun Mic
rosystems, Inc. の商標)言語で書かれたプログラムの
ような、若干のプログラムの能力と定義する。
定」とは、若干のプログラムを、単一のコンピュータア
ーキテクチャを使用するコンピュータプラットフォーム
上だけで実行させる要求であると定義する。例えば、80
486 アセンブラ言語で書かれたオブジェクト(または目
的)コードプログラムはIBM PCコンパチブルコン
ピュータアーキテクチャを使用するコンピュータ上で
(並びにIBM PCコンパチブルコンピュータエミュ
レータを含む他のコンピュータ内で)のみ実行すること
ができる。アーキテクチャ中立プログラム(ANプログ
ラム)の重要な特色は、アーキテクチャ中立言語(AN
言語)で書かれたプログラムから独立したアーキテクチ
ャを含むことである。例えば Java バイトコードプログ
ラムは、 Java バイトコードインタプリタを有するコン
ピュータプラットフォーム上で実行することができる。
Java バイトコードプログラムの別の重要な特色は、 J
ava バイトコード検証手段による実行の前に、それらの
完全性を直接検証できることである。 Javaバイトコー
ド検証手段は、プログラムが所定の(または、予め定め
られた)完全性基準に準拠するか否かを決定する。この
基準は、オペランドスタック、及びデータ型使用制限と
を含む。このデータ型使用制限は、 Java バイトコード
プログラムが実行コンピュータのオペランドスタックの
オーバフローまたはアンダフローを生じさせないように
し、また全てのプログラム命令が既知のデータ型のデー
タだけを使用することを保証するものである。その結
果、 Java バイトコードプログラムはオブジェクトポイ
ンタを作成することはできず、また一般に、ユーザがそ
れを使用する許可を明示的に与えたもの以外のシステム
資ソースにアクセスすることはできない。
ラムを分布させると、ANプログラムはアーキテクチャ
特定の特色を利用するよりも低効率で走るようになる。
例えば、 Java バイトコードインタプリタによって実行
される Java バイトコードプログラムは、典型的には対
応するアーキテクチャ特定言語(AS言語)でコンパイ
ルされた等価アーキテクチャ特定プログラム(ASプロ
グラム)より 2.5乃至5倍程度遅く走る。5倍の速度低
下は、実際にはANプログラム実行手段( executer :
即ち、インタプリタ)にとって異常に余裕があると考え
られるが、若干のユーザがAS言語でコンパイルされた
等価プログラムを使用する能力を要求するか、または強
要する程十分に効率を低下させている。ANプログラム
を等価ASプログラムにコンパイルできるコンパイラを
書くことはできる。しかしながら、それらはエンドユー
ザにとって極めて高価である。更に、等価のコンパイル
されたASプログラムの完全性は、コンパイルされたA
SプログラムコードからANプログラム完全性検証手段
によって直接検証することはできない。従って Java バ
イトコードプログラムの場合には、等価ASプログラム
内にコンパイルされたANプログラムを使用すると、A
N言語の最も価値ある特色の一つが潜在的に失われるこ
とになる。
ラムによって遂行することはできるが、完全性検証可能
ANプログラムによっては遂行できない若干の適正な
(または正当な)タスクが存在している。これらは、そ
のようにしなければオペランドスタック、及び完全性検
証可能なANプログラムに賦課されるデータ型使用制限
を侵害するタスクを含む。更に、これらのASプログラ
ムは、ANプログラムよりも遙かに早く実行することが
できる。その結果、完全性検証可能なANプログラムを
主として実行するだけではなく、完全性検証不能なAS
プログラムを実行する能力をも有するように設計された
コンピュータシステムが何故望まれているのかという多
くの理由が存在している。第三者によるANプログラム
のコンパイル( compilation ) は可能であるが、これら
のコンパイルはその第三者を認証することを要求する。
即ち、コンパイルされたASプログラム内の情報から、
それが特定の信頼された第三者によってコンパイルされ
たことを検証できるようにしなければならない。より良
くするには、そのコンパイルされたASプログラムが特
定の信頼されたコンパイラによって生成されたことを認
証できるようにもすべきである。また、所定の完全性基
準に対して、コンパイルされたASプログラムの完全性
を直接検証することはできないから、コンパイルされた
ASプログラムはそのASプログラムをコンパイルした
対応ANプログラム、及びASプログラムをコンパイル
するのに使用したAS言語を識別する情報を検証可能な
手法で含むべきである。
ログラムからコンパイルされたASプログラムのユーザ
が、誰がそのANプログラムをコンパイルしたのかの識
別と、対応するANプログラムのアイデンティティと、
そのASプログラムをコンパイルしたAS言語とを認証
することができるようにしたANプログラムコンパイラ
及びコンパイル方法を提供することである。本発明の別
の目的は、完全性が検証できるANプログラムは実行
し、(信頼されているか、または検証可能なソースとコ
ンパイル情報とを有する)完全性が検証できないASプ
ログラムを呼出すようにし、それによってソース、コン
パイル情報、及び完全性の検証ができないASプログラ
ムが呼出されるのを防ぎながら、本質的に全ての適正な
タスクを遂行することを可能にするANプログラム実行
システム及び実行方法を提供することである。
定のプログラム完全性基準を満足するアーキテクチャ中
立言語で書かれたプログラムを検証するプログラム完全
性検証手段と、プログラム内に含まれるプログラムの発
信パーティーのディジタル署名を検証するディジタル署
名検証手段と、信頼されないオブジェクトクラスを格納
する信頼されないオブジェクトクラスストレージ手段
と、信頼されたオブジェクトクラスを格納する信頼され
たオブジェクトクラスストレージ手段と、を備え、オブ
ジェクトクラスは各々少なくとも1つのプログラムを含
み、各プログラムは(A)アーキテクチャ中立言語で書
かれたアーキテクチャ中立プログラム、及び(B)完全
性検証手段ではその完全性を検証できないアーキテクチ
ャ特定言語で書かれたアーキテクチャ特定プログラムか
らなる群から選択されたプログラムからなり、アーキテ
クチャ特定プログラム実行手段と、アーキテクチャ中立
プログラム実行手段と、ユーザアドレス空間と、1つの
オブジェクトクラス内の何れかのプログラムの実行が要
求された時に、オブジェクトクラスの指定された1つを
実行のためにユーザアドレス空間内にロードするクラス
ローダと、を更に備え、クラスローダは、要求されたオ
ブジェクトクラス内の各アーキテクチャ特定プログラム
がディジタル署名を含み該ディジタル署名がディジタル
署名検証手段によって成功裏に検証された場合を除い
て、信頼されたオブジェクトクラスストレージ手段内の
少なくとも1つのアーキテクチャ特定プログラムを含む
オブジェクトクラス以外の如何なる要求されたオブジェ
クトクラスのローディングをも阻止するプログラムセキ
ュリティ論理を含んでいるコンピュータによって達成さ
れる。
は、要求されたオブジェクトクラスが信頼されたオブジ
ェクトクラスストレージ手段内に格納されておらず且つ
少なくとも1つのアーキテクチャ中立プログラムを含む
場合に、要求されたオブジェクトクラス内の各アーキテ
クチャ中立プログラムの完全性を検証するプログラム完
全性検証手段を呼出すための検証手段論理を含み、プロ
グラムセキュリティ論理は更に、要求されたオブジェク
トクラスがプログラム完全性検証手段によってその完全
性を検証されない少なくとも1つのアーキテクチャ中立
プログラムを含む場合は信頼されたオブジェクトクラス
ストレージ手段内のオブジェクトクラス以外の如何なる
要求されたオブジェクトクラスのローディングをも阻止
するように構成してもよい。
ャ特定プログラムの1つに関連する各ディジタル署名は
署名パーティー識別子及び暗号化されたメッセージを含
み、暗号化されたメッセージはメッセージダイジェスト
機能を使用して生成されたアーキテクチャ特定プログラ
ムのメッセージダイジェストを含み、暗号化されたメッ
セージは識別された署名パーティーに関連する私用暗号
化キーを使用して暗号化されており、ディジタル署名検
証手段は、署名パーティー識別子によって識別された署
名パーティーに関連する公開キーを入手して指定された
ディジタル署名を処理し、公開キーを用いてディジタル
署名の暗号化されたメッセージを暗号解除して暗号解除
されたメッセージダイジェストを生成し、ディジタル署
名に関連するアーキテクチャ特定プログラムに対してメ
ッセージダイジェスト機能を実行することによって試験
メッセージダイジェストを生成し、試験メッセージダイ
ジェストと暗号解除されたメッセージダイジェストとを
比較し、そしてもし暗号解除されたメッセージダイジェ
ストと試験メッセージダイジェストとが一致しなければ
不合格信号を発行する論理を含んで構成されてもよい。
ブジェクトクラス内の各アーキテクチャ特定プログラム
が2つのディジタル署名を含み該ディジタル署名が共に
ディジタル署名検証手段によって成功裏に検証された場
合を除いて、プログラムセキュリティ論理は信頼された
オブジェクトクラスストレージ手段内の少なくとも1つ
のアーキテクチャ特定プログラムを含むオブジェクトク
ラス以外の如何なる要求されたオブジェクトクラスのロ
ーディングをも阻止し、アーキテクチャ特定プログラム
の1つに関連する各ディジタル署名は署名パーティー識
別子及び暗号化されたメッセージを含み、暗号化された
メッセージは所定の手順によって生成されたメッセージ
を含み、暗号化されたメッセージは識別された署名パー
ティーに関連する私用暗号化キーを使用して暗号化され
ており、ディジタル署名検証手段は、署名パーティー識
別子によって識別された署名パーティーに関連する公開
キーを入手して指定されたディジタル署名を処理し、公
開キーを用いてディジタル署名の暗号化されたメッセー
ジを暗号解除して暗号解除されたメッセージダイジェス
トを生成し、ディジタル署名に関連するアーキテクチャ
特定プログラムに対して所定の手順を実行することによ
って試験メッセージダイジェストを生成し、試験メッセ
ージダイジェストと暗号解除されたメッセージダイジェ
ストとを比較し、そしてもし暗号解除されたメッセージ
ダイジェストと試験メッセージダイジェストとが一致し
なければ不合格信号を発行する論理を含み、プログラム
セキュリティ論理は、要求されたオブジェクトクラス内
の各アーキテクチャ特定プログラムが、署名パーティが
信頼されたパーティーの第1の群のメンバーであるとす
る第1のディジタル署名及び署名パーティーが信頼され
たパーティーの第2の群のメンバーであるとする第2の
ディジタル署名を含む場合を除いて、信頼されたオブジ
ェクトクラスストレージ手段内のオブジェクトクラス以
外の要求されたオブジェクトクラスのローディングを阻
止するように構成してもよい。
キュリティ論理は、要求されたオブジェクトクラス内の
各アーキテクチャ特定プログラムが関連するアーキテク
チャ中立プログラムに関するメッセージダイジェストを
含んでいてプログラムセキュリティ論理が関連するアー
キテクチャ中立プログラムに対して所定のメッセージダ
イジェスト手順を遂行することによって生成した試験メ
ッセージダイジェストとメッセージダイジェストとが一
致する場合を除いて、信頼されたオブジェクトクラスス
トレージ手段内のオブジェクトクラス以外の要求された
オブジェクトクラスのローディングを阻止するように構
成してもよい。また、本発明の上記目的は、コンピュー
タシステムを動作させる方法であって、信頼されないオ
ブジェクトクラスを信頼されないオブジェクトクラスス
トレージ手段内に格納する段階と、信頼されたオブジェ
クトクラスを信頼されたオブジェクトクラスストレージ
手段内に格納する段階と、を備え、オブジェクトクラス
は各々少なくとも1つのプログラムを含み、各プログラ
ムは(A)アーキテクチャ中立言語で書かれたアーキテ
クチャ中立プログラム、及び(B)アーキテクチャ特定
言語で書かれたアーキテクチャ特定プログラムからなる
群から選択されたプログラムからなり、1つのオブジェ
クトクラス内の何れかのプログラムの実行が要求された
時に、要求されたオブジェクトクラス内の各アーキテク
チャ特定プログラムがディジタル署名を含み該ディジタ
ル署名がディジタル署名検証手段によって成功裏に検証
されない限り少なくとも1つのアーキテクチャ特定プロ
グラムを含む信頼されたオブジェクトクラスストレージ
手段内のオブジェクトクラス以外の何れかの要求された
オブジェクトクラスのローディングを阻止することを含
む、セキュリティの侵害によって要求されたオブジェク
トクラスのローディングが阻止されている場合を除い
て、要求されたオブジェクトクラスを実行のためにユー
ザアドレス空間内へロードするコンピュータシステムを
動作させる方法によって達成される。
ーディング段階は、(A)要求されたオブジェクトクラ
スが信頼されたオブジェクトクラスストレージ手段内に
格納されておらず、且つ少なくとも1つのアーキテクチ
ャ中立プログラムを含む場合に要求されたオブジェクト
クラス内の各アーキテクチャ中立プログラムの完全性を
検証する段階、及び(B)要求されたオブジェクトクラ
スがその完全性を検証されない少なくとも1つのアーキ
テクチャ中立プログラムを含む場合は、要求されたオブ
ジェクトクラスが信頼されたオブジェクトクラスストレ
ージ手段内にある場合を除いて要求されたオブジェクト
クラスのローディングを阻止する段階を含むようにして
もよい。本発明の方法では、アーキテクチャ特定プログ
ラムの1つに関連する各ディジタル署名は署名パーティ
ー識別子及び暗号化されたメッセージを含み、暗号化さ
れたメッセージはメッセージダイジェスト機能を使用し
て生成されたアーキテクチャ特定プログラムのメッセー
ジダイジェストを含み、暗号化されたメッセージは識別
された署名パーティーに関連する私用暗号化キーを使用
して暗号化されており、オブジェクトクラスローディン
グ段階は、署名パーティー識別子によって識別された署
名パーティーに関連する公開キーを入手して指定された
ディジタル署名を処理し、公開キーを用いてディジタル
署名の暗号化されたメッセージを暗号解除して暗号解除
されたメッセージダイジェストを生成し、ディジタル署
名に関連するアーキテクチャ特定プログラムに対してメ
ッセージダイジェスト機能を実行することによって試験
メッセージダイジェストを生成し、試験メッセージダイ
ジェストと暗号解除されたメッセージダイジェストとを
比較し、そしてもし暗号解除されたメッセージダイジェ
ストと試験メッセージダイジェストとが一致しなければ
不合格信号を発行することを含むようにしてもよい。
ーディング段階は、要求されたオブジェクトクラス内の
各アーキテクチャ特定プログラムが2つのディジタル署
名を含み該ディジタル署名が共にディジタル署名検証手
段によって成功裏に検証された場合を除いて、信頼され
たオブジェクトクラスストレージ手段内の少なくとも1
つのアーキテクチャ特定プログラムを含むオブジェクト
クラス以外の如何なる要求されたオブジェクトクラスの
ローディングをも阻止する段階を含み、アーキテクチャ
特定プログラムの1つに関連する各ディジタル署名は署
名パーティー識別子及び暗号化されたメッセージを含
み、暗号化されたメッセージは所定の手順によって生成
されたメッセージを含み、暗号化されたメッセージは識
別された署名パーティーに関連する私用暗号化キーを使
用して暗号化されており、オブジェクトクラスローディ
ング段階は、署名パーティー識別子によって識別された
署名パーティーに関連する公開キーを入手して指定され
たディジタル署名を処理し、公開キーを用いてディジタ
ル署名の暗号化されたメッセージを暗号解除して暗号解
除されたメッセージダイジェストを生成し、ディジタル
署名に関連するアーキテクチャ特定プログラムに対して
所定の手順を実行することによって試験メッセージダイ
ジェストを生成し、試験メッセージダイジェストと暗号
解除されたメッセージダイジェストとを比較し、そして
もし暗号解除されたメッセージダイジェストと試験メッ
セージダイジェストとが一致しなければ不合格信号を発
行する段階を含み、オブジェクトクラスローディング段
階は更に、要求されたオブジェクトクラス内の各アーキ
テクチャ特定プログラムが、署名パーティが信頼された
パーティーの第1の群のメンバーであるとする第1のデ
ィジタル署名及び署名パーティーが信頼されたパーティ
ーの第2の群のメンバーであるとする第2のディジタル
署名を含む場合を除いて、信頼されたオブジェクトクラ
スストレージ手段内のオブジェクトクラス以外の要求さ
れたオブジェクトクラスのローディングを阻止する段階
を含むようにしてもよい。
ーディング段階は、要求されたオブジェクトクラス内の
各アーキテクチャ特定プログラムが関連するアーキテク
チャ中立プログラムのメッセージダイジェストを含み該
メッセージダイジェストと関連するアーキテクチャ中立
プログラムに対してプログラムセキュリティ論理が所定
のメッセージダイジェスト手順を遂行することによって
生成した試験メッセージダイジェストとが一致する場合
を除いて、信頼されたオブジェクトクラスストレージ手
段内のオブジェクトクラス以外の要求されたオブジェク
トクラスのローディングを阻止する段階を含むようにし
てもよい。更に、本発明の上記目的は、データ処理シス
テム上で実行されるデータプログラムを格納するメモリ
であって、アーキテクチャ中立言語で書かれたプログラ
ムが所定のプログラム完全性基準を満足することを検証
するプログラム完全性検証手段と、プログラム内に含ま
れるプログラムの発信パーティーのディジタル署名を検
証するディジタル署名検証手段と、信頼されないオブジ
ェクトクラスを格納する信頼されないオブジェクトクラ
スストレージ手段と、信頼されたオブジェクトクラスを
格納する信頼されたオブジェクトクラスストレージ手段
と、を備え、オブジェクトクラスは各々少なくとも1つ
のプログラムを含み、各プログラムは(A)アーキテク
チャ中立言語で書かれたアーキテクチャ中立プログラ
ム、及び(B)完全性検証手段ではその完全性を検証で
きないアーキテクチャ特定言語で書かれたアーキテクチ
ャ特定プログラムからなる群から選択されたプログラム
からなり、アーキテクチャ特定プログラム実行手段と、
アーキテクチャ中立プログラム実行手段と、1つのオブ
ジェクトクラス内の何れかのプログラムの実行が要求さ
れた時に、オブジェクトクラスの指定された1つを実行
のためにロードするクラスローダと、を更に備え、クラ
スローダは、要求されたオブジェクトクラス内の各アー
キテクチャ特定プログラムがディジタル署名を含み該デ
ィジタル署名がディジタル署名検証手段によって成功裏
に検証された場合を除いて、信頼されたオブジェクトク
ラスストレージ手段内の少なくとも1つのアーキテクチ
ャ特定プログラムを含むオブジェクトクラス以外の如何
なる要求されたオブジェクトクラスのローディングをも
阻止するプログラムセキュリティ命令を含んでいるメモ
リによって達成される。
求されたオブジェクトクラスが信頼されたオブジェクト
クラスストレージ手段内に格納されておらず且つ少なく
とも1つのアーキテクチャ中立プログラムを含む場合
に、要求されたオブジェクトクラス内の各アーキテクチ
ャ中立プログラムの完全性を検証するプログラム完全性
検証手段を呼出すための検証手段命令を含み、プログラ
ムセキュリティ命令は更に、要求されたオブジェクトク
ラスがプログラム完全性検証手段によってその完全性を
検証されない少なくとも1つのアーキテクチャ中立プロ
グラムを含む場合は信頼されたオブジェクトクラススト
レージ手段内のオブジェクトクラス以外の如何なる要求
されたオブジェクトクラスのローディングをも阻止する
ように構成してもよい。
チャ中立プログラムを実行するプログラム実行手段、及
び検証不能なプログラムが(A)信頼されたストレージ
(貯蔵)手段内に存在するか、または(B)信頼された
ソースによって生成されたことを検証するディジタル署
名によって間接的に検証可能である場合を除いて、検証
不能なプログラムのローディング及び実行を禁止するク
ラスローダ( class loader )に関するものである。好ま
しい実施例では、各検証可能なプログラムは、それに独
特に関連付けられたメッセージダイジェストを含むディ
ジタル署名を有するオブジェクトクラス内に実現されて
いるアーキテクチャ中立プログラムである。
出したプログラムが検証可能なプログラムではないこと
を指示するキーワードを含むオブジェクトクラス内に実
現されている。好ましい実施例では、検証不能なプログ
ラムは、一般にコンパイラの援助を受けて生成されたア
ーキテクチャ特定の、コンパイルされたプログラムであ
る。各オブジェクトクラスは、 * コンパイルされた、アーキテクチャ特定コード、 * もし対応するアーキテクチャ中立プログラムが存在
すれば(時として存在しない)、その対応するアーキテ
クチャ中立プログラムを識別する情報(対応するアーキ
テクチャ中立プログラムのメッセージダイジェストのコ
ピーを含む)、 * そのオブジェクトクラスを生成した(例えば、ソー
スプログラムのコンパイルを遂行することによって)信
頼された「コンパイリングパーティー」によって、その
「コンパイリングパーティー」の私用暗号化キーを使用
して署名されたディジタル署名、 * もしそのオブジェクトクラス内のコードがあるコン
パイラによって生成されていれば、そのコンパイラ自体
により、そのコンパイラの私用暗号化キーを使用して署
名されたディジタル署名、を含む。
る、広く使用可能な公開暗号化キーの信頼されたストレ
ージ手段は、コンパイラ及び信頼されたコンパイリング
パーティーのための公開キーを保持している。これらの
公開キーを使用して、検証不能なプログラムを有するオ
ブジェクトクラスの全ての受信者はオブジェクトクラス
内のディジタル署名を暗号解除し、そのオブジェクトク
ラスが信頼されたパーティーによって作成されたことを
検証し、そのオブジェクトクラス内の検証不能なプログ
ラムコードが指示されたコンパイラ(もしあれば)によ
って生成されたか否かを検証し、そして対応するアーキ
テクチャ中立プログラム(もしあれば)のアイデンティ
ティを検証することができる。任意選択的に、オブジェ
クトクラス内の検証不能なプログラムコードは、そのオ
ブジェクトクラス内の検証不能なプログラムコードを実
行する前に、対応する検証可能なプログラムの適切な動
作を検証するためにプログラム検証手段を使用すること
ができる。
添付図面に基づく詳細な説明からより容易に明白になる
であろう。
ーバコンピュータ104、及び信頼されたキーストレー
ジ手段106を有するコンピュータネットワーク100
を示す。顧客コンピュータ102はネットワーク通信接
続108を介して互いに、及びサーバコンピュータ10
4及び信頼されたキーストレージ手段106に接続され
ている。ネットワーク通信接続108は、ローカルまた
はワイドエリアネットワーク、インタネット、これらの
ネットワークの組合わせ、または他の型のネットワーク
通信接続であって差し支えない。殆どの顧客コンピュー
タ102は、サン( Sun ) ワークステーション、IBM
コンパチブルコンピュータ、及びマッキントッシュコン
ピュータのようなデスクトップコンピュータであるが、
実質的にどのような型のコンピュータも顧客コンピュー
タであることができる。これらの各顧客コンピュータ
は、CPU110、ユーザインタフェース112、メモ
リ114、及びネットワーク通信インタフェース116
を含んでいる。ネットワーク通信インタフェースは、顧
客コンピュータがネットワーク通信接続106を介して
互いに、サーバコンピュータ104と、及び信頼された
キーストレージ手段108と通信できるようにする。
は、オペレーティングシステム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を制御し、調整する。
ム実行手段122は、信頼されたオブジェクトクラスス
トレージ手段140及び信頼されないオブジェクトクラ
スストレージ手段142内に格納されているオブジェク
トクラス内のANプログラムを実行する。更に、ANプ
ログラムは、ユーザがスタック及びデータ使用制限のよ
うな所定の完全性基準を確立できるAN言語で書かれて
いるので、ANプログラムは不当なタスクを遂行しな
い。従ってANプログラムの完全性は、実行の前に、こ
のプログラムが所定の完全性基準を満足しているか否か
を決定することによって、ANプログラム完全性検証手
段126によって直接検証することができる。従ってこ
れらのANプログラムは、完全性検証可能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プログラム完全性検証手段1
26によって直接検証することができず、従って完全性
を検証できないと考えられることも意味している。
グラムは、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に使用されている擬似
コードは、ユニバーサルコンピュータ言語協定を使用し
ている。ここに使用されている擬似コードは、この説明
の目的のためだけに開発したものであるが、この技術に
精通するコンピュータプログラマならば容易に理解でき
よう。
ログラムコンパイリング準備手段128は先ずANプロ
グラム完全性検証手段126を呼出し、ANプログラム
200のANプログラムコード202の完全性を検証す
るようにそれに命令する。これは、コンパイルのために
サーバコンピュータ104へ送られる前に、ANプログ
ラムコードがAN言語の所定の完全性基準を満足してお
くようにするために行われるのである。もしANプログ
ラムコードが所定の完全性基準を満足しなければ、AN
プログラム完全性検証手段はANプログラムコンパイリ
ング準備手段へ不合格結果を送り返す。それに応答して
ANプログラムコンパイリング準備手段はコンパイリン
グ準備手順を打切り、これを指示する適切なメッセージ
を生成する。
202が所定の完全性基準を満足していれば、ANプロ
グラム完全性検証手段126はANプログラムコンパイ
リング準備手段128へ合格結果を送り返す。次いでA
Nプログラムコンパイリング準備手段128は署名発生
手段130を呼出し、発信パーティーのディジタル署名
OP210を生成するようにそれに命令する。このディジ
タル署名は、ANプログラム200が信頼された発信パ
ーティーによって生成されたものであることを確認する
ために検証することができる。署名発生手段は、まずA
Nプログラムコード202のメッセージダイジェストOP
212を生成することによってディジタル署名OPを生成
する。これは、ANプログラムコードのデータビットに
対するハッシュ関数OPを計算することによって行われ
る。使用するハッシュ関数は、所定のハッシュ関数であ
っても、または発信パーティーによって選択されたハッ
シュ関数であってもよい。説明の目的からハッシュ関数
OPは発信パーティーに対応させているが、それはハッシ
ュ関数を発信パーティのディジタル署名OPのために使用
したからである。
ッセージダイジェストOP212及びハッシュ関数OPID
214を、発信パーティの私用暗号化キーを用いて暗号
化する。次に署名発生手段は、発信パーティーID21
6を明文で、暗号化された項目212及び214の終わ
りに付加してディジタル署名OPを形成する。発信パーテ
ィー私用キー及びIDは、発信パーティーによってユー
ザインタフェース112に供給される。ディジタル署名
OP210を生成した後に、ANプログラムコンパイリン
グ準備手段128は、それをANプログラムコード20
2へ追加する。次いで、ANプログラムコンパイリング
準備手段128は、ANプログラム200がサーバコン
ピュータ104によってコンパイルするために準備され
たことを指示するメッセージを生成する。
ェース112を用いてネットワーク通信管理手段120
へコマンドを発行し、ANプログラム200を、そのプ
ログラムをコンパイルするアーキテクチャ特定言語を指
定する引き数(AS言語ID)及び使用するコンパイラ
(コンパイラID)と共に、サーバコンピュータ104
へ伝送させる。ネットワーク通信管理手段は、信頼され
たオブジェクトクラスストレージ手段140、または信
頼されないオブジェクトクラスストレージ手段142の
中に位置しているANプログラムを検索し、それをネッ
トワーク通信インタフェース116へ供給する。次いで
ネットワーク通信管理手段は、ネットワーク通信インタ
フェースに命令してANプログラムを、特定の引き数と
共にサーバコンピュータへ伝送させる。
リング 伝送された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プログラムを受信し、ネットワーク通信管理手段1
60にこれが行われたことを指示する。それに応答して
ネットワーク通信管理手段は、受信したANプログラム
をANプログラムストレージ手段170内に配置する。
サーバ104が自動コンパイラサービスとしてセットア
ップされていれば、これはネットワーク通信管理手段1
60によって自動的に行われる。そうでない場合には、
コンパイリングパーティーがユーザインタフェースを用
いてコマンドを発行すると、ネットワーク通信管理手段
によってストレージ手段170内へ移動させられる。次
いで、自動的に、またはコンパイリングパーティーがユ
ーザインタフェース252を用いてコマンドを発行する
と、ANプログラム200をコンパイルするためにAN
プログラムコンパイラ162が呼出される。表2は、A
NプログラムをコンパイルするためにANプログラムコ
ンパイラが使用するコンパイル手順の擬似コード表現を
含んでいる。
グラムコンパイラ162は先ず署名検証手段164を呼
出し、受信したANプログラム200内のディジタル署
名OP210を検証させ、ディジタル署名OP210がその
ANプログラムのための発信パーティーの署名であるこ
とを確認させる(例えば、ANプログラムの他のバージ
ョン上の捏造署名または発信パーティー署名であること
を見抜くために)。詳しく述べれば、署名検証手段は、
受信したANプログラム内の「明文テキスト発信パーテ
ィID」216を使用して信頼されたキーストレージ手
段106から発信パーティの私用キーを入手する。次い
で署名検証手段は、発信パーティの暗号化された公開キ
ーを使用してディジタル署名OP内に暗号化されているメ
ッセージダイジェストOP212及びハッシュ関数OPID
214を暗号解除する。
Nプログラム200のANプログラムコード202に対
する対応ハッシュ関数OPを計算することによって、暗号
解除されたメッセージダイジェストOP212と突き合わ
される試験メッセージダイジェストOPを生成する。暗号
解除されたディジタル署名OPは、使用すべき適切なハッ
シュ関数OPを識別するのに使用される。次いで暗号解除
されたメッセージダイジェストOPと、生成された試験メ
ッセージダイジェストOPとが比較されてディジタル署名
OP210が検証される。もしメッセージダイジェストOP
212と試験メッセージダイジェストOPとが一致しなけ
れば、署名検証手段164はANプログラムコンパイラ
162へ不合格結果を送り返す。それに応答してANプ
ログラムコンパイラはコンパイリング手順を打切り、適
切なメッセージを生成する。
験メッセージダイジェストOPとが一致すれば、署名検証
手段164はANプログラムコンパイラ162へ合格結
果を送り返し、ANプログラムコンパイラはANプログ
ラム完全性検証手段166を呼出す。ANプログラムコ
ンパイラはANプログラム完全性検証手段に命令し、受
信したANプログラム200のANプログラムコード2
02の完全性を検証させる。これは、前述したコンパイ
リングのためのANプログラムの準備で説明したのと同
じ手法で、また同じ目的で行われる。従って、もしAN
プログラムコードが所定の完全性基準を満足しなけれ
ば、ANプログラム完全性検証手段はANプログラムコ
ンパイラへ不合格結果を送り返す。それに応答して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プログラムコンパイラによって供給
される。
名発生手段168を呼出し、コンパイリングパーティー
のディジタル署名CP312を生成させる(このディジタ
ル署名は、ASプログラム300が信頼されたコンパイ
リングパーティーによりコンパイルされたことを確認す
るためにエンドユーザによって検証することができ
る)。これは、前述した(ANプログラムのコンパイリ
ングの項において説明した)ディジタル署名CPを生成す
る手法と同じようにして行うことができる。しかしなが
らこの場合は、ディジタル署名CPのために生成されたメ
ッセージダイジェストCP314は、ASプログラムコー
ド、ディジタル署名OP、及びディジタル署名C のデータ
ビットに対する所定の、または選択されたハッシュ関数
CPを計算することによって生成される。ハッシュ関数OP
と同様に、この説明の目的から、ハッシュ関数CPはコン
パイリングパーティーに対応させてある(何故ならば、
これはコンパイリングパーティーのディジタル署名CPの
ために使用されていたからである)。
グパーティーの私用暗号化キーを使用してメッセージダ
イジェストCP314及びハッシュ関数CPのID316を
暗号化する。次に署名発生手段は、コンパイリングパー
ティーのID318を明文で、暗号化された項目314
及び316の終わりに付加してディジタル署名CPを形成
する。コンパイリングパーティーの私用キー及びID
は、ユーザインタフェース152を用いてコンパイリン
グパーティーから供給される。ディジタル署名C 320
及びディジタル署名CP312を生成した後に、ANプロ
グラムコンパイラ162はそれらをASプログラムコー
ド302に追加するので、得られたコンパイルされたA
Sプログラムファイルまたはオブジェクトは、以下の成
分をその中に有している。
P、ASプログラムコード、ディジタル署名C 、及びデ
ィジタル署名CP。次に、ANプログラムコンパイラは、
ANプログラム200がコンパイルされてASプログラ
ム300が形成され発信パーティーに送る準備が整って
いることを指示するメッセージを生成する。次いで発信
パーティーは、ネットワーク通信管理手段160を使用
してASプログラム300を発信パーティーの顧客コン
ピュータ102へ伝送する。ネットワーク通信管理手段
は、ASプログラムストレージ手段172内に位置して
いるASプログラムを検索し、それをネットワーク通信
インタフェース156へ供給することによってそれを行
う。次にネットワーク通信管理手段は、ネットワーク通
信インタフェースに命令してASプログラムを発信パー
ティーの顧客コンピュータへ伝送させる。
及び分配 次いで伝送されたASプログラム300は、発信パーテ
ィーの顧客コンピュータの通信インタフェース116に
よって受信され、ネットワーク通信管理手段120にそ
のことを指示する。それに応答して発信パーティーはユ
ーザインタフェース252を用いてコマンドを発行し、
ネットワーク通信インタフェースから受信したASプロ
グラムを検索するようにネットワーク通信管理手段に命
令する。それによりネットワーク管理手段は、受信した
ASプログラムを発信パーティーの顧客コンピュータの
信頼されないオブジェクトクラスストレージ手段142
内に配置する。これが行われた後に発信パーティーは、
受信したASプログラムを将に1つの方法(即ち、コン
パイルされたプログラムコード)で新しいオブジェクト
クラスとして処理することができるか、またはASプロ
グラム300及び他のANプログラム及びASプログラ
ムを含むオブジェクトクラスを作成することができる。
トクラス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を含んでい
る。
クトクラス内のASプログラム402の1つとしてサー
バコンピュータ104から受信したASプログラム30
0を用いて、オブジェクト420及びオブジェクトクラ
ス400を作成することができる。発信パーティーがオ
ブジェクト、及びASプログラム300及びANプログ
ラムを含むオブジェクトクラスを種々の実行パーティー
に分配することを望む場合は、発信パーティーはユーザ
インタフェース112を用いてコマンドを発行し、これ
らの項目を実行パーティーの顧客コンピュータ102へ
伝送するようにネットワーク通信管理手段に命令する。
ネットワーク通信管理手段は、それらが位置している信
頼されないオブジェクトクラスストレージ手段142を
検索し、それらを適切な伝送命令と共にネットワーク通
信インタフェース116へ供給することによってそれを
行う。代替として、発信パーティーのネットワーク通信
管理手段は、指定されたオブジェクトクラス400のコ
ピーに関して実行パーティーによって指示された要求に
応答してもよい。
立プログラム及びアーキテクチャ特定プログラムの実行 顧客コンピュータ102のネットワーク通信インタフェ
ース156は、伝送されたオブジェクト及びオブジェク
トクラスを受信し、この受信が行われたことをネットワ
ーク通信管理手段160に指示する。それに応答して実
行パーティーはユーザインタフェース112を使用して
コマンドを発行し、ネットワーク通信インタフェースか
ら受信したオブジェクト及びオブジェクトクラスを検索
するようにネットワーク通信管理手段に命令する。次い
でネットワーク通信管理手段は、受信したオブジェクト
及びオブジェクトクラスを信頼されないオブジェクトク
ラスストレージ手段142内に格納する。
オブジェクトクラスストレージ手段142は、オブジェ
クト及び信頼されないそれらの関連オブジェクトクラス
を含む。これらのオブジェクトクラスは、どのANプロ
グラムも未だにそれらの完全性検証を受けておらず、ま
たどのASプログラムもそれらのソースが検証されても
いないし、または適正なANプログラムからコンパイル
されたものであるとの検証も受けていなから信頼されな
いのである。各顧客コンピュータの信頼されたオブジェ
クトクラスストレージ手段140は、オブジェクト及び
それらの信頼されたオブジェクトクラスを含んでいる。
これらのオブジェクトクラスは、それらが含むどのAN
プログラムも既にANプログラム完全性検証手段136
によって完全性が検証済みであり、またそれらが含むど
のASプログラムも信頼できることが確認されているの
で信頼されるのである。実際にこれらのオブジェクトク
ラスは信頼されており、従ってこれらのオブジェクトク
ラスに対して完全性の検証を遂行する理由がないので、
信頼されたオブジェクトクラスストレージ手段140内
の若干の、または全てのオブジェクトクラスはディジタ
ル署名を有する必要はない。
なタスクがオブジェクトクラスを用いて遂行できるよう
に、主としてANプログラムを含むがASプログラムを
も含むことができるオブジェクトクラスを持つことが望
ましい。従って、ANプログラム実行手段122は完全
性を検証可能なANプログラムを実行し、またASプロ
グラム実行手段を呼出し、(1)信頼されたオブジェク
トクラスストレージ手段140内の信頼されたオブジェ
クトクラス内にあるか、または(2)信頼されないオブ
ジェクトクラスストレージ手段142内の信頼されない
オブジェクトクラス内にあって検証可能なディジタル署
名OP、ディジタル署名CP、及びディジタル署名C 情報を
有する完全性検証不能なASプログラムを実行させるこ
とが可能であるので、本質的に全ての正当なタスクを遂
行することができる。このようにして、ディジタル署名
OP、ディジタル署名CP、及びディジタル署名C 情報を有
していないか、またはそれらのディジタル署名が検証不
能な信頼されないオブジェクトクラスのASプログラム
が実行されるのを防止している。表3は、ANプログラ
ム実行手段が使用する実行手順の擬似コード表現を含ん
でいる。
ィー(例えば、発信パーティーまたは他のパーティー)
の顧客コンピュータ102において、ANプログラム実
行手段122は指定されたオブジェクトクラス内のある
方法を呼出すことを探索するANプログラムを実行する
ことができる。この方法呼出しは、始めは、オブジェク
トクラスが既にロード済みであるか否かを決定するオブ
ジェクトクラスローダ136によって取り扱われる。オ
ブジェクトクラスが既に実行パーティーのユーザアドレ
ス空間138内にロードされている場合には、呼出され
た方法がANプログラムであればANプログラム実行手
段122がその呼出された方法を実行し、呼出された方
法がASプログラムであればASプログラム実行手段1
24がその呼出された方法を実行する。
未だに実行パーティーのユーザアドレス空間138内に
ロードされていなければ、オブジェクトクラスローダ1
36はそのオブジェクトクラスを実行パーティーのアド
レス空間内にロードし、その呼出された方法の実行が許
可されているか否かを決定する。例えば、もしオブジェ
クトクラスが信頼されたオブジェクトクラスストレージ
手段140からロードされていれば呼出された方法の実
行は許容されており、実行手順が呼出される。実行手順
(表3参照)は、もし呼出された方法がANプログラム
であればANプログラム実行手段122を呼出し、そう
でなければASプログラム実行手段124を呼出して呼
出された方法を実行させる。しかしながら、もしそのオ
ブジェクトクラスが信頼されないオブジェクトクラスス
トレージ手段142からロードされていれば、クラスロ
ーダ136はそのオブジェクトのオブジェクトヘッダを
調べ、そのオブジェクトクラスがASプログラムを含ん
でいるか否かを決定する。これは、そのオブジェクトの
仮想関数テーブル内にネイティブ ASプログラムID
が存在するか否かを決定することによって行われる。
ムが存在していなければ、クラスローダ136はANプ
ログラム完全性検証手段126を呼出してオブジェクト
クラス内のANプログラムの完全性を検証させる。これ
は、前述したANプログラム200の完全性を検証する
手法(ANプログラムのコンパイリングに関して説明し
た手法)と同じ手法で行われる。従って、もしANプロ
グラムの何れかの完全性が検査に合格しなければ、AN
プログラム完全性検証手段は不合格結果をクラスローダ
へ送り返し、クラスローダはクラスローディング手順を
打切り、そのことを指示する適切なメッセージを生成す
る。しかしながら、もしANプログラム完全性がオブジ
ェクトクラスのANプログラムの全てが検査に合格であ
ることを指示する合格結果を送り返せば、クラスローダ
は呼出された方法の実行を可能にする。
ムが存在していれば、クラスローダ136は署名検証手
段132を呼出してコンパイラ署名である「ディジタル
署名C 」及びコンパイリングパーティー署名である「デ
ィジタル署名CP」を検証させる。もしASプログラムの
何れもが「ディジタル署名CP」及び「ディジタル署名C
」を含んでいなければ、ASプログラムのソースの完
全性は検証されず、従って署名検証手段はANプログラ
ム実行手段に不合格結果を送り返す。それに応答してク
ラスローダはそのオブジェクトクラスのローディング手
順を打切り、そのことを指示する適切なメッセージを生
成する。更に、もしそのオブジェクトクラスの内の全て
のASプログラムが「ディジタル署名CP」及び「ディジ
タル署名C 」を含んでいれば、コンパイリングパーティ
ー及びコンパイラのアイデンティティーがこれら2つの
ディジタル署名内に指示され、既知の信頼されたコンパ
イリングパーティー及び信頼されたコンパイラのリスト
144(図1参照)と比較される。もしオブジェクトク
ラスの内の何れかのASプログラムが、既知の信頼され
たコンパイリングパーティー及び信頼されたコンパイラ
のセット内に含まれていないコンパイリングパーティー
及びコンパイラによってコンパイルされていればクラス
のローディング手順は打切られ、それによって呼出され
た方法の実行は阻止される。同様に、もし何れかのAS
プログラム内に識別されているAS言語が、ASプログ
ラム実行手段124によって使用されているAS言語と
一致しなければ、クラスのローディング手順は打切られ
る。
内の全ての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 に対するハッシュコードを
比較することによって生成される。
及び/またはハッシュ関数CPが検査に不合格ならば(即
ち、メッセージダイジェストC ≠試験メッセージダイジ
ェストC 及び/またはメッセージダイジェストCP≠試験
メッセージダイジェストCP)、署名検証手段132はク
ラスローダ136に不合格結果を送り返す。それに応答
してクラスローダはクラスローディング手順を打切り、
そのことを指示する適切なメッセージを生成する。しか
しながら、もし各ASプログラム毎のディジタル署名C
及びディジタル署名CPが共に検査に合格すれば、ANプ
ログラム実行手段122は再度署名検証手段132を呼
出し、そのASプログラムをコンパイルしたANプログ
ラムのための発信パーティーの署名(ディジタル署名O
P)を検証する。発信パーティーのディジタル署名を検
証するために、各ディジタル署名OPは、ANプログラム
200のコンパイルで説明した手法と同じ手法で検証さ
れる。
Nプログラムのディジタル署名OPが検査に合格すれば、
クラスローダはANプログラム完全性検証手段を呼出し
てそのオブジェクトクラス内の各ANプログラム、及び
ASプログラムをコンパイルしたANプログラムの完全
性を検証させる。これは前述した手法と同じ手法で行わ
れる。もしこれらのANプログラムの何れかの完全性が
検査に不合格であれば、ANプログラム完全性検証手段
はクラスローダへ不合格結果を送り返してクラスローデ
ィングを打切らせ、適切なメッセージを生成させる。し
かしながら、もし各ANプログラムの完全性が検査に合
格すれば、ANプログラム完全性検証手段126はクラ
スローダ136へ合格結果を送り返す。それに応答して
クラスローダはANプログラム実行手段またはASプロ
グラム実行手段を呼出して呼出された方法を適切に実行
させる。
ティーは、信頼されないストレージ手段142内の、完
全性を検証できるANプログラム及びASプログラム
(それらのディジタル署名を検証することができる)を
有する信頼されないオブジェクトクラスだけをロード
し、それらのプログラムを実行することが保証される。 代替実施例 上述した本発明の特色の若干は任意選択的である。従っ
て当業者ならば、これらの特色を含まない代替実施例が
存在することは理解できよう。例えば、ANプログラム
コンパイラに関しては、コンパイリングパーティー及び
ANプログラムコンパイラのためのディジタル署名CP及
びディジタル署名C をそれぞれ生成するものとして説明
した。しかしながら、ANプログラムコンパイラは、単
にこれらのディジタル署名の一方だけを生成し、ASプ
ログラムをコンパイルするために使用されるコンパイ
ラ、またはコンパイリングパーティーの何れかの検証を
可能にするように構成することができる。
ディジタル署名CP及びディジタル署名C の両者の検証が
必要であるものとして説明した。しかしながら、プログ
ラム実行手段は、これらのディジタル署名の一方だけの
検証でよいように、またもし検証されるASプログラム
がそれを含んでいれば他方のディジタル署名を任意選択
的に検証するように構成することができる。更に、プロ
グラム実行手段は、コンパイリングパーティーが信頼さ
れており、またコンパイルを遂行する前にASプログラ
ムにコンパイルされる各ANプログラムを検証すること
がコンパイリングパーティーの義務であると仮定して、
各ASプログラムに対応するANプログラムの完全性を
検証する段階をスキップするように構成してもよい。発
信パーティーが実行パーティーである場合、実行パーテ
ィーはASプログラム300にコンパイルされるANプ
ログラム200をコンパイリングパーティーのサーバコ
ンピュータ104へ実際に送ったことを知っている。こ
の場合、クラスローダ136はANプログラム内のディ
ジタル署名OPを検証するために署名検証手段を呼出さな
い。実行パーティーは単に、ANプログラムのローカル
コピー内のディジタル署名OPを、コンパイルされたAS
プログラム内のディジタル署名OPと比較するだけでよ
い。また、クラスローダは、呼出されたASプログラム
に対応するANプログラムの完全性を検証するためにA
Nプログラム完全性検証手段126を呼出さないように
構成することができる(何故ならば、コンパイリングサ
ーバコンピュータへ送られる前にコンパイリング手順の
ための準備中にANプログラムの完全性が検証されてい
るからである)。代替として、ANプログラムコンパイ
リング準備手段128が、コンパイリング手順のための
準備中にANプログラム完全性検証手段を呼出さないよ
うに構成することができる(何故ならばその完全性は、
コンパイラによって、及びクラスローダが対応するAS
プログラムの実行の前にANプログラム完全性検証手段
を呼出した時の両方で検証されるからである)。
て説明したが、この説明は本発明を例示したに過ぎず、
本発明を限定する意図は毛頭ない。当業者ならば、特許
請求の範囲に記載されている本発明の真の思想及び範囲
から逸脱することなく多くの変更を考案できるであろ
う。
ラム完全性基準を満足するアーキテクチャ中立言語で書
かれたプログラムを検証するプログラム完全性検証手段
と、プログラム内に含まれるプログラムの発信パーティ
ーのディジタル署名を検証するディジタル署名検証手段
と、信頼されないオブジェクトクラスを格納する信頼さ
れないオブジェクトクラスストレージ手段と、信頼され
たオブジェクトクラスを格納する信頼されたオブジェク
トクラスストレージ手段と、を備え、オブジェクトクラ
スは各々少なくとも1つのプログラムを含み、各プログ
ラムは(A)アーキテクチャ中立言語で書かれたアーキ
テクチャ中立プログラム、及び(B)完全性検証手段で
はその完全性を検証できないアーキテクチャ特定言語で
書かれたアーキテクチャ特定プログラムからなる群から
選択されたプログラムからなり、アーキテクチャ特定プ
ログラム実行手段と、アーキテクチャ中立プログラム実
行手段と、ユーザアドレス空間と、1つのオブジェクト
クラス内の何れかのプログラムの実行が要求された時
に、オブジェクトクラスの指定された1つを実行のため
にユーザアドレス空間内にロードするクラスローダと、
を更に備え、クラスローダは、要求されたオブジェクト
クラス内の各アーキテクチャ特定プログラムがディジタ
ル署名を含み該ディジタル署名がディジタル署名検証手
段によって成功裏に検証された場合を除いて、信頼され
たオブジェクトクラスストレージ手段内の少なくとも1
つのアーキテクチャ特定プログラムを含むオブジェクト
クラス以外の如何なる要求されたオブジェクトクラスの
ローディングをも阻止するプログラムセキュリティ論理
を含んでいるので、対応するANプログラムからコンパ
イルされたASプログラムのユーザが、誰がそのANプ
ログラムをコンパイルしたのかの識別と、対応するAN
プログラムのアイデンティティと、そのASプログラム
をコンパイルしたAS言語とを認証することができ、か
つ完全性が検証できるANプログラムは実行し、(信頼
されているか、または検証可能なソースとコンパイル情
報とを有する)完全性が検証できないASプログラムを
呼出すようにし、それによってソース、コンパイル情
報、及び完全性の検証ができないASプログラムが呼出
されるのを防ぎながら、本質的に全ての適正なタスクを
遂行することができる。
動作させる方法であって、信頼されないオブジェクトク
ラスを信頼されないオブジェクトクラスストレージ手段
内に格納する段階と、信頼されたオブジェクトクラスを
信頼されたオブジェクトクラスストレージ手段内に格納
する段階と、を備え、オブジェクトクラスは各々少なく
とも1つのプログラムを含み、各プログラムは(A)ア
ーキテクチャ中立言語で書かれたアーキテクチャ中立プ
ログラム、及び(B)アーキテクチャ特定言語で書かれ
たアーキテクチャ特定プログラムからなる群から選択さ
れたプログラムからなり、1つのオブジェクトクラス内
の何れかのプログラムの実行が要求された時に、要求さ
れたオブジェクトクラス内の各アーキテクチャ特定プロ
グラムがディジタル署名を含み該ディジタル署名がディ
ジタル署名検証手段によって成功裏に検証されない限り
少なくとも1つのアーキテクチャ特定プログラムを含む
信頼されたオブジェクトクラスストレージ手段内のオブ
ジェクトクラス以外の何れかの要求されたオブジェクト
クラスのローディングを阻止することを含む、セキュリ
ティの侵害によって要求されたオブジェクトクラスのロ
ーディングが阻止されている場合を除いて、要求された
オブジェクトクラスを実行のためにユーザアドレス空間
内へロードするので、対応するANプログラムからコン
パイルされたASプログラムのユーザが、誰がそのAN
プログラムをコンパイルしたのかの識別と、対応するA
Nプログラムのアイデンティティと、そのASプログラ
ムをコンパイルしたAS言語とを認証することができ、
かつ完全性が検証できるANプログラムは実行し、(信
頼されているか、または検証可能なソースとコンパイル
情報とを有する)完全性が検証できないASプログラム
を呼出すようにし、それによってソース、コンパイル情
報、及び完全性の検証ができないASプログラムが呼出
されるのを防ぎながら、本質的に全ての適正なタスクを
遂行することができる。
で実行されるデータプログラムを格納するメモリであっ
て、アーキテクチャ中立言語で書かれたプログラムが所
定のプログラム完全性基準を満足することを検証するプ
ログラム完全性検証手段と、プログラム内に含まれるプ
ログラムの発信パーティーのディジタル署名を検証する
ディジタル署名検証手段と、信頼されないオブジェクト
クラスを格納する信頼されないオブジェクトクラススト
レージ手段と、信頼されたオブジェクトクラスを格納す
る信頼されたオブジェクトクラスストレージ手段と、を
備え、オブジェクトクラスは各々少なくとも1つのプロ
グラムを含み、各プログラムは(A)アーキテクチャ中
立言語で書かれたアーキテクチャ中立プログラム、及び
(B)完全性検証手段ではその完全性を検証できないア
ーキテクチャ特定言語で書かれたアーキテクチャ特定プ
ログラムからなる群から選択されたプログラムからな
り、アーキテクチャ特定プログラム実行手段と、アーキ
テクチャ中立プログラム実行手段と、1つのオブジェク
トクラス内の何れかのプログラムの実行が要求された時
に、オブジェクトクラスの指定された1つを実行のため
にロードするクラスローダと、を更に備え、クラスロー
ダは、要求されたオブジェクトクラス内の各アーキテク
チャ特定プログラムがディジタル署名を含み該ディジタ
ル署名がディジタル署名検証手段によって成功裏に検証
された場合を除いて、信頼されたオブジェクトクラスス
トレージ手段内の少なくとも1つのアーキテクチャ特定
プログラムを含むオブジェクトクラス以外の如何なる要
求されたオブジェクトクラスのローディングをも阻止す
るプログラムセキュリティ命令を含んでいるので、対応
するANプログラムからコンパイルされたASプログラ
ムのユーザが、誰がそのANプログラムをコンパイルし
たのかの識別と、対応するANプログラムのアイデンテ
ィティと、そのASプログラムをコンパイルしたAS言
語とを認証することができ、かつ完全性が検証できるA
Nプログラムは実行し、(信頼されているか、または検
証可能なソースとコンパイル情報とを有する)完全性が
検証できないASプログラムを呼出すようにし、それに
よってソース、コンパイル情報、及び完全性の検証がで
きないASプログラムが呼出されるのを防ぎながら、本
質的に全ての適正なタスクを遂行することができる。
ピュータシステムのブロック線図である。
中立プログラムの構造を示す図である。
パイルされたアーキテクチャ特定プログラムの構造を示
す図である。
び関連オブジェクトクラスを示す図である。
段 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 オブジェクトヘッダ
Claims (12)
- 【請求項1】 所定のプログラム完全性基準を満足する
アーキテクチャ中立言語で書かれたプログラムを検証す
るプログラム完全性検証手段と、 前記プログラム内に含まれるプログラムの発信パーティ
ーのディジタル署名を検証するディジタル署名検証手段
と、 信頼されないオブジェクトクラスを格納する信頼されな
いオブジェクトクラスストレージ手段と、 信頼されたオブジェクトクラスを格納する信頼されたオ
ブジェクトクラスストレージ手段と、を備え、 前記オブジェクトクラスは各々少なくとも1つのプログ
ラムを含み、前記各プログラムは(A)アーキテクチャ
中立言語で書かれたアーキテクチャ中立プログラム、及
び(B)完全性検証手段ではその完全性を検証できない
アーキテクチャ特定言語で書かれたアーキテクチャ特定
プログラムからなる群から選択されたプログラムからな
り、 アーキテクチャ特定プログラム実行手段と、 アーキテクチャ中立プログラム実行手段と、 ユーザアドレス空間と、 前記1つのオブジェクトクラス内の何れかのプログラム
の実行が要求された時に、前記オブジェクトクラスの指
定された1つを実行のために前記ユーザアドレス空間内
にロードするクラスローダと、を更に備え、 前記クラスローダは、前記要求されたオブジェクトクラ
ス内の各アーキテクチャ特定プログラムがディジタル署
名を含み該ディジタル署名が前記ディジタル署名検証手
段によって成功裏に検証された場合を除いて、前記信頼
されたオブジェクトクラスストレージ手段内の少なくと
も1つのアーキテクチャ特定プログラムを含むオブジェ
クトクラス以外の如何なる要求されたオブジェクトクラ
スのローディングをも阻止するプログラムセキュリティ
論理を含んでいることを特徴とするコンピュータ。 - 【請求項2】 前記クラスローダは、前記要求されたオ
ブジェクトクラスが前記信頼されたオブジェクトクラス
ストレージ手段内に格納されておらず且つ少なくとも1
つのアーキテクチャ中立プログラムを含む場合に、前記
要求されたオブジェクトクラス内の各アーキテクチャ中
立プログラムの完全性を検証する前記プログラム完全性
検証手段を呼出すための検証手段論理を含み、 前記プログラムセキュリティ論理は更に、前記要求され
たオブジェクトクラスが前記プログラム完全性検証手段
によってその完全性を検証されない少なくとも1つのア
ーキテクチャ中立プログラムを含む場合は前記信頼され
たオブジェクトクラスストレージ手段内のオブジェクト
クラス以外の如何なる要求されたオブジェクトクラスの
ローディングをも阻止する請求項1に記載のコンピュー
タ。 - 【請求項3】 前記アーキテクチャ特定プログラムの1
つに関連する前記各ディジタル署名は署名パーティー識
別子及び暗号化されたメッセージを含み、前記暗号化さ
れたメッセージはメッセージダイジェスト機能を使用し
て生成された前記アーキテクチャ特定プログラムのメッ
セージダイジェストを含み、前記暗号化されたメッセー
ジは前記識別された署名パーティーに関連する私用暗号
化キーを使用して暗号化されており、 前記ディジタル署名検証手段は、前記署名パーティー識
別子によって識別された前記署名パーティーに関連する
公開キーを入手して指定されたディジタル署名を処理
し、前記公開キーを用いて前記ディジタル署名の暗号化
されたメッセージを暗号解除して暗号解除されたメッセ
ージダイジェストを生成し、前記ディジタル署名に関連
する前記アーキテクチャ特定プログラムに対して前記メ
ッセージダイジェスト機能を実行することによって試験
メッセージダイジェストを生成し、前記試験メッセージ
ダイジェストと前記暗号解除されたメッセージダイジェ
ストとを比較し、そしてもし前記暗号解除されたメッセ
ージダイジェストと前記試験メッセージダイジェストと
が一致しなければ不合格信号を発行する論理を含んでい
る請求項1に記載のコンピュータ。 - 【請求項4】 前記要求されたオブジェクトクラス内の
各アーキテクチャ特定プログラムが2つのディジタル署
名を含み該ディジタル署名が共に前記ディジタル署名検
証手段によって成功裏に検証された場合を除いて、前記
プログラムセキュリティ論理は前記信頼されたオブジェ
クトクラスストレージ手段内の少なくとも1つのアーキ
テクチャ特定プログラムを含むオブジェクトクラス以外
の如何なる要求されたオブジェクトクラスのローディン
グをも阻止し、 前記アーキテクチャ特定プログラムの1つに関連する前
記各ディジタル署名は署名パーティー識別子及び暗号化
されたメッセージを含み、前記暗号化されたメッセージ
は所定の手順によって生成されたメッセージを含み、前
記暗号化されたメッセージは前記識別された署名パーテ
ィーに関連する私用暗号化キーを使用して暗号化されて
おり、 前記ディジタル署名検証手段は、前記署名パーティー識
別子によって識別された前記署名パーティーに関連する
公開キーを入手して指定されたディジタル署名を処理
し、前記公開キーを用いて前記ディジタル署名の暗号化
されたメッセージを暗号解除して暗号解除されたメッセ
ージダイジェストを生成し、前記ディジタル署名に関連
する前記アーキテクチャ特定プログラムに対して前記所
定の手順を実行することによって試験メッセージダイジ
ェストを生成し、前記試験メッセージダイジェストと前
記暗号解除されたメッセージダイジェストとを比較し、
そしてもし前記暗号解除されたメッセージダイジェスト
と前記試験メッセージダイジェストとが一致しなければ
不合格信号を発行する論理を含み、 前記プログラムセキュリティ論理は、前記要求されたオ
ブジェクトクラス内の各アーキテクチャ特定プログラム
が、前記署名パーティが信頼されたパーティーの第1の
群のメンバーであるとする第1のディジタル署名及び前
記署名パーティーが信頼されたパーティーの第2の群の
メンバーであるとする第2のディジタル署名を含む場合
を除いて、前記信頼されたオブジェクトクラスストレー
ジ手段内のオブジェクトクラス以外の要求されたオブジ
ェクトクラスのローディングを阻止する請求項1に記載
のコンピュータ。 - 【請求項5】 前記プログラムセキュリティ論理は、前
記要求されたオブジェクトクラス内の各アーキテクチャ
特定プログラムが関連するアーキテクチャ中立プログラ
ムに関するメッセージダイジェストを含んでいて前記プ
ログラムセキュリティ論理が前記関連するアーキテクチ
ャ中立プログラムに対して所定のメッセージダイジェス
ト手順を遂行することによって生成した試験メッセージ
ダイジェストと前記メッセージダイジェストとが一致す
る場合を除いて、前記信頼されたオブジェクトクラスス
トレージ手段内のオブジェクトクラス以外の要求された
オブジェクトクラスのローディングを阻止する請求項1
に記載のコンピュータ。 - 【請求項6】 コンピュータシステムを動作させる方法
であって、 信頼されないオブジェクトクラスを信頼されないオブジ
ェクトクラスストレージ手段内に格納する段階と、 信頼されたオブジェクトクラスを信頼されたオブジェク
トクラスストレージ手段内に格納する段階と、を備え、 前記オブジェクトクラスは各々少なくとも1つのプログ
ラムを含み、前記各プログラムは(A)アーキテクチャ
中立言語で書かれたアーキテクチャ中立プログラム、及
び(B)アーキテクチャ特定言語で書かれたアーキテク
チャ特定プログラムからなる群から選択されたプログラ
ムからなり、 前記1つのオブジェクトクラス内の何れかのプログラム
の実行が要求された時に、前記要求されたオブジェクト
クラス内の各アーキテクチャ特定プログラムがディジタ
ル署名を含み該ディジタル署名が前記ディジタル署名検
証手段によって成功裏に検証されない限り少なくとも1
つのアーキテクチャ特定プログラムを含む前記信頼され
たオブジェクトクラスストレージ手段内のオブジェクト
クラス以外の何れかの要求されたオブジェクトクラスの
ローディングを阻止することを含む、セキュリティの侵
害によって前記要求されたオブジェクトクラスのローデ
ィングが阻止されている場合を除いて、前記要求された
オブジェクトクラスを実行のためにユーザアドレス空間
内へロードする、ことを特徴とするコンピュータシステ
ムを動作させる方法。 - 【請求項7】 前記オブジェクトクラスローディング段
階は、(A)前記要求されたオブジェクトクラスが前記
信頼されたオブジェクトクラスストレージ手段内に格納
されておらず、且つ少なくとも1つのアーキテクチャ中
立プログラムを含む場合に前記要求されたオブジェクト
クラス内の各アーキテクチャ中立プログラムの完全性を
検証する段階、及び(B)前記要求されたオブジェクト
クラスがその完全性を検証されない少なくとも1つのア
ーキテクチャ中立プログラムを含む場合は、前記要求さ
れたオブジェクトクラスが前記信頼されたオブジェクト
クラスストレージ手段内にある場合を除いて前記要求さ
れたオブジェクトクラスのローディングを阻止する段階
を含む請求項6に記載の方法。 - 【請求項8】 前記アーキテクチャ特定プログラムの1
つに関連する前記各ディジタル署名は署名パーティー識
別子及び暗号化されたメッセージを含み、前記前記暗号
化されたメッセージはメッセージダイジェスト機能を使
用して生成された前記アーキテクチャ特定プログラムの
メッセージダイジェストを含み、前記暗号化されたメッ
セージは前記識別された署名パーティーに関連する私用
暗号化キーを使用して暗号化されており、 前記オブジェクトクラスローディング段階は、前記署名
パーティー識別子によって識別された前記署名パーティ
ーに関連する公開キーを入手して指定されたディジタル
署名を処理し、前記公開キーを用いて前記ディジタル署
名の暗号化されたメッセージを暗号解除して暗号解除さ
れたメッセージダイジェストを生成し、前記ディジタル
署名に関連する前記アーキテクチャ特定プログラムに対
して前記メッセージダイジェスト機能を実行することに
よって試験メッセージダイジェストを生成し、前記試験
メッセージダイジェストと前記暗号解除されたメッセー
ジダイジェストとを比較し、そしてもし前記暗号解除さ
れたメッセージダイジェストと前記試験メッセージダイ
ジェストとが一致しなければ不合格信号を発行すること
を含んでいる請求項6に記載の方法。 - 【請求項9】 前記オブジェクトクラスローディング段
階は、前記要求されたオブジェクトクラス内の各アーキ
テクチャ特定プログラムが2つのディジタル署名を含み
該ディジタル署名が共に前記ディジタル署名検証手段に
よって成功裏に検証された場合を除いて、前記信頼され
たオブジェクトクラスストレージ手段内の少なくとも1
つのアーキテクチャ特定プログラムを含むオブジェクト
クラス以外の如何なる要求されたオブジェクトクラスの
ローディングをも阻止する段階を含み、 前記アーキテクチャ特定プログラムの1つに関連する前
記各ディジタル署名は署名パーティー識別子及び暗号化
されたメッセージを含み、前記暗号化されたメッセージ
は所定の手順によって生成されたメッセージを含み、前
記暗号化されたメッセージは前記識別された署名パーテ
ィーに関連する私用暗号化キーを使用して暗号化されて
おり、 前記オブジェクトクラスローディング段階は、前記署名
パーティー識別子によって識別された前記署名パーティ
ーに関連する公開キーを入手して指定されたディジタル
署名を処理し、前記公開キーを用いて前記ディジタル署
名の暗号化されたメッセージを暗号解除して暗号解除さ
れたメッセージダイジェストを生成し、前記ディジタル
署名に関連する前記アーキテクチャ特定プログラムに対
して前記所定の手順を実行することによって試験メッセ
ージダイジェストを生成し、前記試験メッセージダイジ
ェストと前記暗号解除されたメッセージダイジェストと
を比較し、そしてもし前記暗号解除されたメッセージダ
イジェストと前記試験メッセージダイジェストとが一致
しなければ不合格信号を発行する段階を含み、 前記オブジェクトクラスローディング段階は更に、前記
要求されたオブジェクトクラス内の各アーキテクチャ特
定プログラムが、前記署名パーティが信頼されたパーテ
ィーの第1の群のメンバーであるとする第1のディジタ
ル署名及び前記署名パーティーが信頼されたパーティー
の第2の群のメンバーであるとする第2のディジタル署
名を含む場合を除いて、前記信頼されたオブジェクトク
ラスストレージ手段内のオブジェクトクラス以外の要求
されたオブジェクトクラスのローディングを阻止する段
階を含んでいる、請求項6に記載の方法。 - 【請求項10】 前記オブジェクトクラスローディング
段階は、前記要求されたオブジェクトクラス内の各アー
キテクチャ特定プログラムが関連するアーキテクチャ中
立プログラムのメッセージダイジェストを含み該メッセ
ージダイジェストと前記関連するアーキテクチャ中立プ
ログラムに対してプログラムセキュリティ論理が所定の
メッセージダイジェスト手順を遂行することによって生
成した試験メッセージダイジェストとが一致する場合を
除いて、前記信頼されたオブジェクトクラスストレージ
手段内のオブジェクトクラス以外の前記要求されたオブ
ジェクトクラスのローディングを阻止する段階を含む、
請求項6に記載の方法。 - 【請求項11】 データ処理システム上で実行されるデ
ータプログラムを格納するメモリであって、 アーキテクチャ中立言語で書かれたプログラムが所定の
プログラム完全性基準を満足することを検証するプログ
ラム完全性検証手段と、 前記プログラム内に含まれるプログラムの発信パーティ
ーのディジタル署名を検証するディジタル署名検証手段
と、 信頼されないオブジェクトクラスを格納する信頼されな
いオブジェクトクラスストレージ手段と、 信頼されたオブジェクトクラスを格納する信頼されたオ
ブジェクトクラスストレージ手段と、を備え、 前記オブジェクトクラスは各々少なくとも1つのプログ
ラムを含み、前記各プログラムは(A)アーキテクチャ
中立言語で書かれたアーキテクチャ中立プログラム、及
び(B)前記完全性検証手段ではその完全性を検証でき
ないアーキテクチャ特定言語で書かれたアーキテクチャ
特定プログラムからなる群から選択されたプログラムか
らなり、 アーキテクチャ特定プログラム実行手段と、 アーキテクチャ中立プログラム実行手段と、 前記1つのオブジェクトクラス内の何れかのプログラム
の実行が要求された時に、前記オブジェクトクラスの指
定された1つを実行のためにロードするクラスローダ
と、を更に備え、 前記クラスローダは、前記要求されたオブジェクトクラ
ス内の各アーキテクチャ特定プログラムがディジタル署
名を含み該ディジタル署名が前記ディジタル署名検証手
段によって成功裏に検証された場合を除いて、前記信頼
されたオブジェクトクラスストレージ手段内の少なくと
も1つのアーキテクチャ特定プログラムを含むオブジェ
クトクラス以外の如何なる要求されたオブジェクトクラ
スのローディングをも阻止するプログラムセキュリティ
命令を含んでいることを特徴とするメモリ。 - 【請求項12】 前記クラスローダは、前記要求された
オブジェクトクラスが前記信頼されたオブジェクトクラ
スストレージ手段内に格納されておらず且つ少なくとも
1つのアーキテクチャ中立プログラムを含む場合に、前
記要求されたオブジェクトクラス内の各アーキテクチャ
中立プログラムの完全性を検証する前記プログラム完全
性検証手段を呼出すための検証手段命令を含み、 前記プログラムセキュリティ命令は更に、前記要求され
たオブジェクトクラスが前記プログラム完全性検証手段
によってその完全性を検証されない少なくとも1つのア
ーキテクチャ中立プログラムを含む場合は前記信頼され
たオブジェクトクラスストレージ手段内のオブジェクト
クラス以外の前記如何なる要求されたオブジェクトクラ
スのローディングをも阻止する請求項11に記載のメモ
リ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/569,398 US5692047A (en) | 1995-12-08 | 1995-12-08 | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
US08/569398 | 1995-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1011281A true JPH1011281A (ja) | 1998-01-16 |
JP4112033B2 JP4112033B2 (ja) | 2008-07-02 |
Family
ID=24275287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32889796A Expired - Lifetime JP4112033B2 (ja) | 1995-12-08 | 1996-12-09 | 信頼されたソースからの検証不能プログラムを使用するための機能を有する検証可能プログラムを実行するシステム及び方法 |
Country Status (11)
Country | Link |
---|---|
US (2) | US5692047A (ja) |
EP (1) | EP0778520B1 (ja) |
JP (1) | JP4112033B2 (ja) |
KR (1) | KR100433319B1 (ja) |
CN (1) | CN1097771C (ja) |
AU (1) | AU717615B2 (ja) |
CA (1) | CA2190556A1 (ja) |
DE (1) | DE69634684T2 (ja) |
HK (1) | HK1000846A1 (ja) |
SG (1) | SG75108A1 (ja) |
TW (1) | TW355768B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002527819A (ja) * | 1998-10-13 | 2002-08-27 | モトローラ・インコーポレイテッド | 実行時セキュリティ環境下における命令ストリーム実行時間削減方法 |
JP2015502588A (ja) * | 2011-10-17 | 2015-01-22 | インタートラスト テクノロジーズ コーポレイション | ゲノム及び他の情報を保護及び管理するシステム及び方法 |
Families Citing this family (214)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US6237096B1 (en) * | 1995-01-17 | 2001-05-22 | Eoriginal Inc. | System and method for electronic transmission storage and retrieval of authenticated documents |
US7743248B2 (en) * | 1995-01-17 | 2010-06-22 | Eoriginal, Inc. | System and method for a remote access service enabling trust and interoperability when retrieving certificate status from multiple certification authority reporting components |
US7162635B2 (en) * | 1995-01-17 | 2007-01-09 | Eoriginal, Inc. | System and method for electronic transmission, storage, and retrieval of authenticated electronic original documents |
US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
US7133846B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US20120166807A1 (en) | 1996-08-12 | 2012-06-28 | Intertrust Technologies Corp. | Systems and Methods Using Cryptography to Protect Secure Computing Environments |
US6658568B1 (en) | 1995-02-13 | 2003-12-02 | Intertrust Technologies Corporation | Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management |
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5943422A (en) | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
CN1912885B (zh) | 1995-02-13 | 2010-12-22 | 英特特拉斯特技术公司 | 用于安全交易管理和电子权利保护的系统和方法 |
US6157721A (en) | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
AU5953296A (en) | 1995-05-30 | 1996-12-18 | Corporation For National Research Initiatives | System for distributed task execution |
FR2742245B1 (fr) * | 1995-12-08 | 1998-01-23 | Transtar | Procede de manipulation de modeles de donnees utilises en genie logiciel |
US5692047A (en) * | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
US6075863A (en) * | 1996-02-28 | 2000-06-13 | Encanto Networks | Intelligent communication device |
US6463446B1 (en) | 1998-02-26 | 2002-10-08 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system |
US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects 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 |
US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6578044B1 (en) | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership 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 |
US6282652B1 (en) | 1998-02-26 | 2001-08-28 | Sun Microsystems, Inc. | System for separately designating security requirements for methods invoked on a computer |
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 |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service 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 |
US6247026B1 (en) | 1996-10-11 | 2001-06-12 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a distributed system |
US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
US6237024B1 (en) | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6466947B2 (en) | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US5978484A (en) * | 1996-04-25 | 1999-11-02 | Microsoft Corporation | System and method for safety distributing executable objects |
US5794049A (en) * | 1996-06-05 | 1998-08-11 | Sun Microsystems, Inc. | Computer system and method for executing architecture specific code with reduced run-time memory space requirements |
US6161121A (en) * | 1996-07-01 | 2000-12-12 | Sun Microsystems, Inc. | Generic transfer of exclusive rights |
US5987123A (en) * | 1996-07-03 | 1999-11-16 | Sun Microsystems, Incorporated | Secure file system |
AU2003203649B2 (en) * | 1996-08-12 | 2006-03-02 | Intertrust Technologies Corporation | Systems and methods using cryptography to protect secure computing environments |
US7590853B1 (en) * | 1996-08-12 | 2009-09-15 | Intertrust Technologies Corporation | Systems and methods using cryptography to protect secure computing environments |
AU2004240210B2 (en) * | 1996-08-12 | 2008-03-06 | Intertrust Technologies Corporation | Systems and methods using cryptography to protect secure computing environments |
US6089460A (en) * | 1996-09-13 | 2000-07-18 | Nippon Steel Corporation | Semiconductor device with security protection function, ciphering and deciphering method thereof, and storage medium for storing software therefor |
US6857099B1 (en) | 1996-09-18 | 2005-02-15 | Nippon Steel Corporation | Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program |
US5958050A (en) * | 1996-09-24 | 1999-09-28 | Electric Communities | Trusted delegation system |
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 |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US5944823A (en) * | 1996-10-21 | 1999-08-31 | International Business Machines Corporations | Outside access to computer resources through a firewall |
US7613926B2 (en) * | 1997-11-06 | 2009-11-03 | Finjan Software, Ltd | Method and system for protecting a computer and a network from hostile downloadables |
US6167520A (en) * | 1996-11-08 | 2000-12-26 | Finjan Software, Inc. | System and method for protecting a client during runtime from hostile downloadables |
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 |
US7058822B2 (en) | 2000-03-30 | 2006-06-06 | Finjan Software, Ltd. | Malicious mobile code runtime monitoring system and methods |
US6154844A (en) * | 1996-11-08 | 2000-11-28 | Finjan Software, Ltd. | System and method for attaching a downloadable security profile to a downloadable |
US5937193A (en) * | 1996-11-27 | 1999-08-10 | Vlsi Technology, Inc. | Circuit arrangement for translating platform-independent instructions for execution on a hardware platform and method thereof |
US6367012B1 (en) * | 1996-12-06 | 2002-04-02 | Microsoft Corporation | Embedding certifications in executable files for network transmission |
US6148401A (en) * | 1997-02-05 | 2000-11-14 | At&T Corp. | System and method for providing assurance to a host that a piece of software possesses a particular property |
US5915085A (en) * | 1997-02-28 | 1999-06-22 | International Business Machines Corporation | Multiple resource or security contexts in a multithreaded application |
US5905895A (en) * | 1997-03-07 | 1999-05-18 | International Business Machines Corporation | Method and system for optimizing non-native bytecodes before bytecode interpretation |
US5946493A (en) * | 1997-03-28 | 1999-08-31 | International Business Machines Corporation | Method and system in a data processing system for association of source code instructions with an optimized listing of object code instructions |
US6167522A (en) * | 1997-04-01 | 2000-12-26 | Sun Microsystems, Inc. | Method and apparatus for providing security for servers executing application programs received via a network |
US6381698B1 (en) | 1997-05-21 | 2002-04-30 | At&T Corp | System and method for providing assurance to a host that a piece of software possesses a particular property |
ATE246820T1 (de) * | 1997-05-29 | 2003-08-15 | Sun Microsystems Inc | Verfahren und vorrichtung zur versiegelung und unterschrift von objekten |
US6175924B1 (en) | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6065046A (en) * | 1997-07-29 | 2000-05-16 | Catharon Productions, Inc. | Computerized system and associated method of optimally controlled storage and transfer of computer programs on a computer network |
US5970252A (en) * | 1997-08-12 | 1999-10-19 | International Business Machines Corporation | Method and apparatus for loading components in a component system |
US6093215A (en) * | 1997-08-12 | 2000-07-25 | International Business Machines Corporation | Method and apparatus for building templates in a component system |
US6195794B1 (en) | 1997-08-12 | 2001-02-27 | International Business Machines Corporation | Method and apparatus for distributing templates in a component system |
US6182279B1 (en) | 1997-08-12 | 2001-01-30 | International Business Machines Corporation | Method and apparatus for storing templates in a component system |
US5978579A (en) * | 1997-08-12 | 1999-11-02 | International Business Machines Corporation | Architecture for customizable component system |
US6009524A (en) * | 1997-08-29 | 1999-12-28 | Compact Computer Corp | Method for the secure remote flashing of a BIOS memory |
US6397331B1 (en) * | 1997-09-16 | 2002-05-28 | Safenet, Inc. | Method for expanding secure kernel program memory |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6128774A (en) * | 1997-10-28 | 2000-10-03 | Necula; George C. | Safe to execute verification of software |
US7975305B2 (en) * | 1997-11-06 | 2011-07-05 | Finjan, Inc. | Method and system for adaptive rule-based content scanners for desktop computers |
US7418731B2 (en) * | 1997-11-06 | 2008-08-26 | Finjan Software, Ltd. | Method and system for caching at secure gateways |
US8225408B2 (en) * | 1997-11-06 | 2012-07-17 | Finjan, Inc. | Method and system for adaptive rule-based content scanners |
IL122314A (en) * | 1997-11-27 | 2001-03-19 | Security 7 Software Ltd | Method and system for enforcing a communication security policy |
US6334189B1 (en) * | 1997-12-05 | 2001-12-25 | Jamama, Llc | Use of pseudocode to protect software from unauthorized use |
US6044467A (en) * | 1997-12-11 | 2000-03-28 | Sun Microsystems, Inc. | Secure class resolution, loading and definition |
US6418444B1 (en) | 1997-12-11 | 2002-07-09 | Sun Microsystems, Inc. | Method and apparatus for selective excution of a computer program |
JP2002509313A (ja) | 1998-01-16 | 2002-03-26 | メディアドナ、インコーポレイテッド | ピアコンポーネントを認証するためのシステムおよび方法 |
US7268700B1 (en) | 1998-01-27 | 2007-09-11 | Hoffberg Steven M | Mobile communication device |
CN1292115A (zh) * | 1998-02-26 | 2001-04-18 | 太阳微系统公司 | 分布系统中动态验证信息的装置和方法 |
US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
WO1999044133A2 (en) | 1998-02-26 | 1999-09-02 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods |
JP2001525971A (ja) * | 1998-03-13 | 2001-12-11 | ツーウェイ コーポレイション | 保護環境下での文書発行のための方法および装置 |
US5999732A (en) * | 1998-03-23 | 1999-12-07 | Sun Microsystems, Inc. | Techniques for reducing the cost of dynamic class initialization checks in compiled code |
US6684332B1 (en) | 1998-06-10 | 2004-01-27 | International Business Machines Corporation | Method and system for the exchange of digitally signed objects over an insecure network |
WO1999066383A2 (en) * | 1998-06-15 | 1999-12-23 | Dmw Worldwide, Inc. | Method and apparatus for assessing the security of a computer system |
US6131165A (en) * | 1998-06-18 | 2000-10-10 | Sun Microsystems, Inc. | Permit for controlling access to services in protected memory systems |
US6792606B2 (en) | 1998-07-17 | 2004-09-14 | International Business Machines Corporation | Method and apparatus for object persistence |
US6223287B1 (en) | 1998-07-24 | 2001-04-24 | International Business Machines Corporation | Method for establishing a secured communication channel over the internet |
US6735696B1 (en) * | 1998-08-14 | 2004-05-11 | Intel Corporation | Digital content protection using a secure booting method and apparatus |
US6202201B1 (en) | 1998-09-23 | 2001-03-13 | Netcreate Systems, Inc. | Text object compilation method and system |
US6802006B1 (en) * | 1999-01-15 | 2004-10-05 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
US6880155B2 (en) | 1999-02-02 | 2005-04-12 | Sun Microsystems, Inc. | Token-based linking |
ATE376334T1 (de) * | 1999-03-31 | 2007-11-15 | Ericsson Telefon Ab L M | Verteilung von dienstausführungsumgebungen unter berücksichtigung einer zentralisierten dienstanbieterumgebung |
AU4071500A (en) * | 1999-04-05 | 2000-10-23 | Manage Com | Management agent and system including the same |
US6748580B1 (en) | 1999-04-22 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for creating software tools using a JTML interface |
US6782478B1 (en) * | 1999-04-28 | 2004-08-24 | Thomas Probert | Techniques for encoding information in computer code |
US7421586B2 (en) * | 1999-05-12 | 2008-09-02 | Fraunhofer Gesselschaft | Protecting mobile code against malicious hosts |
WO2000072149A1 (en) * | 1999-05-25 | 2000-11-30 | Motorola Inc. | Pre-verification of applications in mobile computing |
US6658567B1 (en) | 1999-06-25 | 2003-12-02 | Geomechanics International, Inc. | Method and logic for locking geological data and an analyzer program that analyzes the geological data |
US6681329B1 (en) * | 1999-06-25 | 2004-01-20 | International Business Machines Corporation | Integrity checking of a relocated executable module loaded within memory |
US7650504B2 (en) * | 1999-07-22 | 2010-01-19 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
US7243236B1 (en) * | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
WO2001009702A2 (en) | 1999-07-30 | 2001-02-08 | Intertrust Technologies Corp. | Methods and systems for transaction record delivery using thresholds and multi-stage protocol |
US6675298B1 (en) * | 1999-08-18 | 2004-01-06 | Sun Microsystems, Inc. | Execution of instructions using op code lengths longer than standard op code lengths to encode data |
US7406603B1 (en) | 1999-08-31 | 2008-07-29 | Intertrust Technologies Corp. | Data protection systems and methods |
EP1128598A4 (en) * | 1999-09-07 | 2007-06-20 | Sony Corp | SYSTEM, DEVICE, METHOD AND PROGRAM SUPPORT FOR CONTENT MANAGEMENT |
US6985885B1 (en) | 1999-09-21 | 2006-01-10 | Intertrust Technologies Corp. | Systems and methods for pricing and selling digital goods |
US6684387B1 (en) | 1999-09-23 | 2004-01-27 | International Business Machines Corporation | Method and apparatus for verifying Enterprise Java Beans |
US6748538B1 (en) * | 1999-11-03 | 2004-06-08 | Intel Corporation | Integrity scanner |
US7158993B1 (en) | 1999-11-12 | 2007-01-02 | Sun Microsystems, Inc. | API representation enabling submerged hierarchy |
US6976258B1 (en) | 1999-11-30 | 2005-12-13 | Ensim Corporation | Providing quality of service guarantees to virtual hosts |
FI111567B (fi) * | 1999-12-27 | 2003-08-15 | Nokia Corp | Menetelmä ohjelmamoduulin lataamiseksi |
JP2001195247A (ja) * | 2000-01-07 | 2001-07-19 | Nec Corp | ソフトウェアの安全性を検証し保証するシステム及び方法 |
US6529985B1 (en) | 2000-02-04 | 2003-03-04 | Ensim Corporation | Selective interception of system calls |
US6711607B1 (en) | 2000-02-04 | 2004-03-23 | Ensim Corporation | Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service |
US6560613B1 (en) | 2000-02-08 | 2003-05-06 | Ensim Corporation | Disambiguating file descriptors |
US6754716B1 (en) | 2000-02-11 | 2004-06-22 | Ensim Corporation | Restricting communication between network devices on a common network |
US7343421B1 (en) | 2000-02-14 | 2008-03-11 | Digital Asset Enterprises Llc | Restricting communication of selected processes to a set of specific network addresses |
US6745386B1 (en) * | 2000-03-09 | 2004-06-01 | Sun Microsystems, Inc. | System and method for preloading classes in a data processing device that does not have a virtual memory manager |
US6948003B1 (en) | 2000-03-15 | 2005-09-20 | Ensim Corporation | Enabling a service provider to provide intranet services |
US6651186B1 (en) | 2000-04-28 | 2003-11-18 | Sun Microsystems, Inc. | Remote incremental program verification using API definitions |
US6883163B1 (en) | 2000-04-28 | 2005-04-19 | Sun Microsystems, Inc. | Populating resource-constrained devices with content verified using API definitions |
US6986132B1 (en) | 2000-04-28 | 2006-01-10 | Sun Microsytems, Inc. | Remote incremental program binary compatibility verification using API definitions |
US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US6985937B1 (en) | 2000-05-11 | 2006-01-10 | Ensim Corporation | Dynamically modifying the resources of a virtual server |
US6907421B1 (en) | 2000-05-16 | 2005-06-14 | Ensim Corporation | Regulating file access rates according to file type |
US6934755B1 (en) | 2000-06-02 | 2005-08-23 | Sun Microsystems, Inc. | System and method for migrating processes on a network |
US6922782B1 (en) * | 2000-06-15 | 2005-07-26 | International Business Machines Corporation | Apparatus and method for ensuring data integrity of unauthenticated code |
US7124408B1 (en) * | 2000-06-28 | 2006-10-17 | Microsoft Corporation | Binding by hash |
US7117371B1 (en) | 2000-06-28 | 2006-10-03 | Microsoft Corporation | Shared names |
US7143024B1 (en) | 2000-07-07 | 2006-11-28 | Ensim Corporation | Associating identifiers with virtual processes |
AU6371500A (en) * | 2000-07-25 | 2002-02-05 | Mediadna Inc | System and method of verifying the authenticity of dynamically connectable executable images |
EP1316171A4 (en) * | 2000-08-04 | 2006-05-03 | First Data Corp | PERSONNEL AND CONTOUR DIGITAL SIGNATURE SYSTEM |
US7552333B2 (en) * | 2000-08-04 | 2009-06-23 | First Data Corporation | Trusted authentication digital signature (tads) system |
US6909691B1 (en) | 2000-08-07 | 2005-06-21 | Ensim Corporation | Fairly partitioning resources while limiting the maximum fair share |
US7032114B1 (en) * | 2000-08-30 | 2006-04-18 | Symantec Corporation | System and method for using signatures to detect computer intrusions |
US6981245B1 (en) | 2000-09-14 | 2005-12-27 | Sun Microsystems, Inc. | Populating binary compatible resource-constrained devices with content verified using API definitions |
WO2002023331A2 (en) * | 2000-09-14 | 2002-03-21 | Sun Microsystems, Inc. | Remote incremental program binary compatibility verification using api definitions |
US6732211B1 (en) | 2000-09-18 | 2004-05-04 | Ensim Corporation | Intercepting I/O multiplexing operations involving cross-domain file descriptor sets |
US6964039B2 (en) * | 2000-12-13 | 2005-11-08 | Esmertec Ag | Method to create optimized machine code through combined verification and translation of JAVA™ bytecode |
US7219354B1 (en) | 2000-12-22 | 2007-05-15 | Ensim Corporation | Virtualizing super-user privileges for multiple virtual processes |
FR2819602B1 (fr) * | 2001-01-12 | 2003-02-21 | Gemplus Card Int | Procede de gestion d'applications informatiques par le systeme d'exploitation d'un systeme informatique multi-applications |
EP1233333A1 (en) * | 2001-02-19 | 2002-08-21 | Hewlett-Packard Company | Process for executing a downloadable service receiving restrictive access rights to al least one profile file |
US6618736B1 (en) | 2001-03-09 | 2003-09-09 | Ensim Corporation | Template-based creation and archival of file systems |
US7181017B1 (en) | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US6978451B2 (en) * | 2001-05-31 | 2005-12-20 | Esmertec Ag | Method for fast compilation of preverified JAVA bytecode to high quality native machine code |
DE10131395B4 (de) * | 2001-06-28 | 2006-08-17 | Daimlerchrysler Ag | Verfahren zum Übertragen von Software- Modulen |
US7237121B2 (en) * | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
GB0121064D0 (en) * | 2001-08-31 | 2001-10-24 | Transitive Technologies Ltd | Obtaining translation of generic code representation |
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 |
US20030050981A1 (en) * | 2001-09-13 | 2003-03-13 | International Business Machines Corporation | Method, apparatus, and program to forward and verify multiple digital signatures in electronic mail |
US7143313B2 (en) | 2001-11-09 | 2006-11-28 | Sun Microsystems, Inc. | Support interface module bug submitter |
US7266731B2 (en) | 2001-11-13 | 2007-09-04 | Sun Microsystems, Inc. | Method and apparatus for managing remote software code update |
US7146500B2 (en) * | 2001-11-14 | 2006-12-05 | Compass Technology Management, Inc. | System for obtaining signatures on a single authoritative copy of an electronic record |
US7496757B2 (en) * | 2002-01-14 | 2009-02-24 | International Business Machines Corporation | Software verification system, method and computer program element |
US7240213B1 (en) * | 2002-03-15 | 2007-07-03 | Waters Edge Consulting, Llc. | System trustworthiness tool and methodology |
US20030188180A1 (en) * | 2002-03-28 | 2003-10-02 | Overney Gregor T. | Secure file verification station for ensuring data integrity |
US20070118899A1 (en) * | 2002-05-17 | 2007-05-24 | Satyam Computer Services Limited Of Mayfair Centre | System and method for automated safe reprogramming of software radios |
US20030216927A1 (en) * | 2002-05-17 | 2003-11-20 | V. Sridhar | System and method for automated safe reprogramming of software radios |
EP1546892B1 (en) * | 2002-09-04 | 2017-03-29 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Protecting mobile code against malicious hosts cross references to related applications |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US6965968B1 (en) | 2003-02-27 | 2005-11-15 | Finjan Software Ltd. | Policy-based caching |
US10275723B2 (en) * | 2005-09-14 | 2019-04-30 | Oracle International Corporation | Policy enforcement via attestations |
US9781154B1 (en) | 2003-04-01 | 2017-10-03 | Oracle International Corporation | Systems and methods for supporting information security and sub-system operational protocol conformance |
US10063523B2 (en) * | 2005-09-14 | 2018-08-28 | Oracle International Corporation | Crafted identities |
US8468330B1 (en) | 2003-06-30 | 2013-06-18 | Oracle International Corporation | Methods, systems, and data structures for loading and authenticating a module |
GB0318197D0 (en) * | 2003-08-02 | 2003-09-03 | Koninkl Philips Electronics Nv | Copy-protecting applications in a digital broadcasting system |
GB0318198D0 (en) * | 2003-08-02 | 2003-09-03 | Koninkl Philips Electronics Nv | Copy-protected application for digital broadcasting system |
US7263690B1 (en) * | 2003-11-14 | 2007-08-28 | Sun Microsystems, Inc. | Mechanism for safe byte code in a tracing framework |
US7516331B2 (en) * | 2003-11-26 | 2009-04-07 | International Business Machines Corporation | Tamper-resistant trusted java virtual machine and method of using the same |
EP1538509A1 (fr) * | 2003-12-04 | 2005-06-08 | Axalto S.A. | Procédé de sécurisation de l'éxécution d'un programme contre des attaques par rayonnement |
US7287243B2 (en) * | 2004-01-06 | 2007-10-23 | Hewlett-Packard Development Company, L.P. | Code verification system and method |
US7752453B2 (en) * | 2004-01-08 | 2010-07-06 | Encryption Solutions, Inc. | Method of encrypting and transmitting data and system for transmitting encrypted data |
US7526643B2 (en) * | 2004-01-08 | 2009-04-28 | Encryption Solutions, Inc. | System for transmitting encrypted data |
US8031865B2 (en) * | 2004-01-08 | 2011-10-04 | Encryption Solutions, Inc. | Multiple level security system and method for encrypting data within documents |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US7500108B2 (en) | 2004-03-01 | 2009-03-03 | Microsoft Corporation | Metered execution of code |
US7539975B2 (en) * | 2004-06-30 | 2009-05-26 | International Business Machines Corporation | Method, system and product for determining standard Java objects |
US7493596B2 (en) * | 2004-06-30 | 2009-02-17 | International Business Machines Corporation | Method, system and program product for determining java software code plagiarism and infringement |
US7647581B2 (en) * | 2004-06-30 | 2010-01-12 | International Business Machines Corporation | Evaluating java objects across different virtual machine vendors |
US7590589B2 (en) | 2004-09-10 | 2009-09-15 | Hoffberg Steven M | Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference |
US8312431B1 (en) * | 2004-09-17 | 2012-11-13 | Oracle America, Inc. | System and computer readable medium for verifying access to signed ELF objects |
WO2006054128A1 (en) | 2004-11-22 | 2006-05-26 | Nokia Corporation | Method and device for verifying the integrity of platform software of an electronic device |
JP4727278B2 (ja) * | 2005-04-05 | 2011-07-20 | 株式会社エヌ・ティ・ティ・ドコモ | アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム |
US8375369B2 (en) * | 2005-04-26 | 2013-02-12 | Apple Inc. | Run-time code injection to perform checks |
US8838974B2 (en) * | 2005-07-15 | 2014-09-16 | The Mathworks, Inc. | System and method for verifying the integrity of read-only components in deployed mixed-mode applications |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
JP4537940B2 (ja) * | 2005-11-21 | 2010-09-08 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、及びプログラム実行制御方法 |
US8250559B2 (en) * | 2006-04-12 | 2012-08-21 | Oracle America, Inc. | Supporting per-program classpaths with class sharing in a multi-tasking virtual machine |
KR100728517B1 (ko) * | 2006-12-28 | 2007-06-15 | 메크로비젼 코오포레이션 | 동적으로 연결 가능한 실행 가능 이미지들의 진정성을증명하는 시스템 및 방법 |
CN101226569A (zh) * | 2007-01-19 | 2008-07-23 | 国际商业机器公司 | 在虚拟机中验证代码模块的方法及装置 |
US9122864B2 (en) * | 2008-08-05 | 2015-09-01 | International Business Machines Corporation | Method and apparatus for transitive program verification |
US8301903B2 (en) * | 2009-02-27 | 2012-10-30 | Research In Motion Limited | Low-level code signing mechanism |
US9117071B2 (en) | 2009-06-03 | 2015-08-25 | Apple Inc. | Methods and apparatuses for secure compilation |
US8677329B2 (en) * | 2009-06-03 | 2014-03-18 | Apple Inc. | Methods and apparatuses for a compiler server |
CA2774728C (en) * | 2009-11-13 | 2019-02-12 | Irdeto Canada Corporation | System and method to protect java bytecode code against static and dynamic attacks within hostile execution environments |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8782435B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time using control flow signatures |
US9015680B1 (en) * | 2012-02-24 | 2015-04-21 | Google Inc. | Differential analysis of translation of software for the detection of flaws |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US10001978B2 (en) * | 2015-11-11 | 2018-06-19 | Oracle International Corporation | Type inference optimization |
KR101691600B1 (ko) * | 2016-04-28 | 2017-01-02 | 지티원 주식회사 | 공통 구조 변환 기반 프로그램 분석 방법 및 장치 |
CN111770206B (zh) * | 2020-08-31 | 2020-12-29 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
US12079374B2 (en) * | 2021-12-01 | 2024-09-03 | International Business Machines Corporation | Secure software compilation and software verification |
US11809839B2 (en) | 2022-01-18 | 2023-11-07 | Robert Lyden | Computer language and code for application development and electronic and optical communication |
Family Cites Families (12)
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 |
GB8901932D0 (en) * | 1989-01-28 | 1989-03-15 | Int Computers Ltd | Data processing system |
US4926476A (en) * | 1989-02-03 | 1990-05-15 | Motorola, Inc. | Method and apparatus for secure execution of untrusted software |
US5280613A (en) * | 1990-06-25 | 1994-01-18 | Hewlett-Packard Company | ANDF installer using the HPcode-Plus compiler intermediate language |
US5504814A (en) * | 1991-07-10 | 1996-04-02 | Hughes Aircraft Company | Efficient security kernel for the 80960 extended architecture |
US5301231A (en) * | 1992-02-12 | 1994-04-05 | International Business Machines Corporation | User defined function facility |
US5421006A (en) * | 1992-05-07 | 1995-05-30 | Compaq Computer Corp. | Method and apparatus for assessing integrity of computer system software |
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. |
US5475753A (en) * | 1993-11-12 | 1995-12-12 | Matsushita Electric Corporation Of America | Apparatus and method for certifying the delivery of information |
US5559884A (en) * | 1994-06-30 | 1996-09-24 | Microsoft Corporation | Method and system for generating and auditing a signature for a computer program |
US5692047A (en) * | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
-
1995
- 1995-12-08 US US08/569,398 patent/US5692047A/en not_active Expired - Lifetime
-
1996
- 1996-11-18 CA CA002190556A patent/CA2190556A1/en not_active Abandoned
- 1996-11-20 AU AU71856/96A patent/AU717615B2/en not_active Expired
- 1996-11-27 DE DE69634684T patent/DE69634684T2/de not_active Expired - Lifetime
- 1996-11-27 EP EP96308582A patent/EP0778520B1/en not_active Expired - Lifetime
- 1996-12-05 CN CN96121876A patent/CN1097771C/zh not_active Expired - Fee Related
- 1996-12-06 SG SG1996011559A patent/SG75108A1/en unknown
- 1996-12-06 KR KR1019960062293A patent/KR100433319B1/ko not_active IP Right Cessation
- 1996-12-09 JP JP32889796A patent/JP4112033B2/ja not_active Expired - Lifetime
- 1996-12-20 TW TW085115763A patent/TW355768B/zh active
-
1997
- 1997-11-17 US US08/971,325 patent/US6070239A/en not_active Expired - Lifetime
- 1997-12-17 HK HK97102468A patent/HK1000846A1/xx not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002527819A (ja) * | 1998-10-13 | 2002-08-27 | モトローラ・インコーポレイテッド | 実行時セキュリティ環境下における命令ストリーム実行時間削減方法 |
JP2015502588A (ja) * | 2011-10-17 | 2015-01-22 | インタートラスト テクノロジーズ コーポレイション | ゲノム及び他の情報を保護及び管理するシステム及び方法 |
US10621550B2 (en) | 2011-10-17 | 2020-04-14 | Intertrust Technologies Corporation | Systems and methods for protecting and governing genomic and other information |
US11481729B2 (en) | 2011-10-17 | 2022-10-25 | Intertrust Technologies Corporation | Systems and methods for protecting and governing genomic and other information |
Also Published As
Publication number | Publication date |
---|---|
KR970049730A (ko) | 1997-07-29 |
US5692047A (en) | 1997-11-25 |
DE69634684T2 (de) | 2006-01-19 |
DE69634684D1 (de) | 2005-06-09 |
US6070239A (en) | 2000-05-30 |
EP0778520B1 (en) | 2005-05-04 |
EP0778520A2 (en) | 1997-06-11 |
TW355768B (en) | 1999-04-11 |
CN1097771C (zh) | 2003-01-01 |
AU717615B2 (en) | 2000-03-30 |
AU7185696A (en) | 1997-06-12 |
CN1156286A (zh) | 1997-08-06 |
EP0778520A3 (en) | 1999-03-31 |
JP4112033B2 (ja) | 2008-07-02 |
CA2190556A1 (en) | 1997-06-09 |
KR100433319B1 (ko) | 2004-08-09 |
SG75108A1 (en) | 2000-09-19 |
HK1000846A1 (en) | 2003-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4112033B2 (ja) | 信頼されたソースからの検証不能プログラムを使用するための機能を有する検証可能プログラムを実行するシステム及び方法 | |
US6067575A (en) | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs | |
JP3982857B2 (ja) | 動的にリンクされた実行可能モジュールの使用を保護するシステム及び方法 | |
US10630491B2 (en) | System and method for interapplication communications | |
US7434263B2 (en) | System and method for secure storage data using a key | |
US7117371B1 (en) | Shared names | |
US7360097B2 (en) | System providing methodology for securing interfaces of executable files | |
US6327652B1 (en) | Loading and identifying a digital rights management operating system | |
US7062650B2 (en) | System and method for verifying integrity of system with multiple components | |
US8473753B2 (en) | Real-time secure self-acquiring root authority | |
EP0875814A2 (en) | Information processing apparatus and method and recording medium | |
US20020174224A1 (en) | Stack-based access control | |
JP2004533046A (ja) | プラグ対応認可システムに対するサーバサポート方法およびシステム | |
US20060059350A1 (en) | Strong names | |
US6564325B1 (en) | Method of and apparatus for providing multi-level security access to system | |
Faupel | Status of Industry Work on Signed Mobile Code | |
Anderson | Java™ access control mechanisms | |
Liu et al. | Secure information flow in mobile bootstrapping process |
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 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080409 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110418 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130418 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130418 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140418 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |