JPH1069382A

System and method for generating reliable, architecture-specified, and compiled version of architecture neutral program

Abstract

[Task] Provided are devices and methods for compiling architecture-neutral (AN) programs so that they can be proven to have been compiled by a trusted third party.

Solution.When the sign of the sending party of the AN program is proved, the program compiling computer compiles the AN program code of the AN program into the AS program code in the architecture specific (AS) language, and adds the signature of the compiling party to the AS program. Generate. When the program execution computer is proved to have the signature of the sending party of the AN program and the signature of the compiling party of the AS program, and the compiling party is determined to be a member of a limited set of trusted compiling parties, the AS program Execute the AS program code.

Term

Term ended

Projected expiry passed 9 December 2016, 9.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

14 claims: 3 independent, 11 dependent

  1. 1
    【特許請求の範囲】 【請求項1】 コンピュータネットワークであって、 コンパイリングパーティーによって作動され、発信パーティーによって生成されたアーキテクチャ中立プログラムを受信するプログラムコンパイリングコンピュータを備え、前記アーキテクチャ中立プログラムはアーキテクチャ中立プログラムコード及び前記発信パーティーのディジタル署名を含み、前記ディジタル署名は検証時に前記アーキテクチャ中立プログラムが前記発信パーティーによって署名されたことを検証するようになっており、前記プログラムコンパイリングコンピュータが、 前記発信パーティーのディジタル署名を検証する署名検証手段と、 前記発信パーティーのディジタル署名が検証された時に、(A)前記アーキテクチャ中立プログラムコードをアーキテクチャ特定言語でアーキテクチャ特定プログラムコードにコンパイルし、(B)検証時に前記アーキテクチャ特定プログラムが前記コンパイリングパーティーによって生成されたことを検証する前記コンパイリングパーティーのディジタル署名を付加することによってアーキテクチャ特定プログラムを生成するコンパイラと、 前記コンパイリングパーティーのディジタル署名を生成する署名発生手段と、を含み、 実行パーティーによって作動され、前記アーキテクチャ特定プログラムを受信し、前記アーキテクチャ中立プログラムを受信または実行するプログラム実行コンピュータを更に備え、前記プログラム実行コンピュータは、 前記コンパイリングパーティーのディジタル署名を検証する署名検証手段と、 前記コンパイリングパーティーの署名が検証され、前記コンパイリングパーティーが信頼されたコンパイリングパーティーの限定集合のメンバーである時に、前記アーキテクチャ特定言語で書かれたアーキテクチャ特定プログラムコードを実行する実行手段と、を含むことを特徴とするコンピュータネットワーク。
  2. 2
    【請求項2】 前記署名発生手段は、検証時に前記アーキテクチャ特定プログラムが前記コンパイラを用いて生成されたことを検証するコンパイラのディジタル署名を生成し、 前記コンパイラは更に、前記アーキテクチャ特定プログラムコードを前記コンパイラのディジタル署名に付加することによっても前記アーキテクチャ特定プログラムを生成し、 前記実行コンピュータの署名検証手段は、前記コンパイラのディジタル署名を検証し、 前記実行手段は、前記コンパイラのディジタル署名が検証され、前記コンパイラが信頼されたコンパイラの限定集合のメンバーであることが決定された後に限って、前記アーキテクチャ特定プログラムコードを実行する請求項1に記載のコンピュータネットワーク。
  3. 3
    【請求項3】 前記発信パーティー及び前記コンパイリングパーティーのために、前記ネットワークは対応する私用暗号化キー、公開暗号化キー、及び対応するハッシュ機能を含み、 前記発信パーティーのディジタル署名は、前記アーキテクチャ中立プログラムに対して前記発信パーティーの対応するハッシュ機能を遂行することによって生成した前記アーキテクチャ中立プログラムのメッセージダイジェストを含み、前記アーキテクチャ中立プログラムのメッセージダイジェストは、前記発信パーティーの対応する私用キーを用いて暗号化されており、 前記プログラムコンパイリングコンピュータの署名検証手段は、(A)前記発信パーティーの公開暗号化キーを用いて前記アーキテクチャ中立プログラムの前記メッセージダイジェストを暗号解除し、(B)前記アーキテクチャ中立プログラムコードに対して前記発信パーティーのハッシュ機能を遂行することによって前記アーキテクチャ中立プログラムの対応する試験メッセージダイジェストを生成し、そして(C)前記暗号解除されたメッセージダイジェストと前記アーキテクチャ中立プログラムの試験メッセージダイジェストとを比較することによって前記発信パーティーのディジタル署名を検証させる命令を含み、 前記署名発生手段は、(A)前記アーキテクチャ特定プログラムコードに対して前記コンパイリングパーティーの対応するハッシュ機能を遂行することによって前記アーキテクチャ中立プログラムのメッセージダイジェストを生成し、そして(B)前記コンパイリングパーティーの対応する私用キーを用いて前記アーキテクチャ特定プログラムのメッセージダイジェストを暗号化することによって前記コンパイリングパーティーのディジタル署名を生成させるための命令を含み、 前記プログラム実行コンピュータの署名検証手段は、(A)前記コンパイリングパーティーの対応する公開キーを用いて前記アーキテクチャ特定プログラムのメッセージダイジェストを暗号解除し、(B)前記アーキテクチャ特定プログラムコードに対して前記コンパイリングパーティーのハッシュ機能を遂行することによって前記アーキテクチャ特定プログラムの対応する試験メッセージダイジェストを生成し、そして(C)前記暗号解除されたメッセージダイジェストと前記アーキテクチャ特定プログラムの試験メッセージダイジェストとを比較することによって前記コンパイリングパーティーのディジタル署名を検証させる命令を含む請求項1に記載のコンピュータネットワーク。
  4. 4
    【請求項4】 前記プログラム実行コンピュータは更に、前記アーキテクチャ中立プログラムコードが所定のプログラム完全性基準を満足することを検証することによって前記アーキテクチャ中立プログラムコードの完全性を検証するアーキテクチャ中立プログラム完全性検証手段を含み、 前記実行手段は、前記アーキテクチャ中立プログラムコードの完全性が検証された後に限って、前記アーキテクチャ特定プログラムコードを実行する請求項1に記載のコンピュータネットワーク。
  5. 5
    【請求項5】 前記アーキテクチャ中立プログラムを供給するプログラム発信コンピュータを更に備え、 前記プログラム発信コンピュータは、前記アーキテクチャ中立プログラムコードに付加される発信パーティーのディジタル署名を生成する署名発生手段を含み、 前記プログラム発信コンピュータと連絡して前記プログラム発信コンピュータから前記アーキテクチャ中立プログラムを受信し、前記アーキテクチャ特定プログラムを前記プログラム発信コンピュータへ供給するプログラムコンパイリングコンピュータを更に備え、 前記プログラム実行コンピュータは前記プログラム発信コンピュータと連絡して前記プログラム発信コンピュータから前記アーキテクチャ中立プログラム及びアーキテクチャ特定プログラムを受信し、 前記プログラム実行コンピュータの署名検証手段は、前記発信パーティーのディジタル署名をも検証し、 前記プログラム実行コンピュータは、前記発信パーティーのディジタル署名が検証された後に限って前記アーキテクチャ特定プログラムを実行する請求項1に記載のコンピュータネットワーク。
  6. 6
    【請求項6】 コンピュータネットワークを動作させる方法であって、 コンパイリングパーティーによって作動されるプログラムコンパイリングコンピュータにおいて、 発信パーティーによって生成され、アーキテクチャ中立プログラムコード、及び検証時にアーキテクチャ中立プログラムが前記発信パーティーによって署名されたことを検証する前記発信パーティーのディジタル署名を含む前記アーキテクチャ中立プログラムを受信する段階と、 前記発信パーティーのディジタル署名を検証する段階と、 前記アーキテクチャ中立プログラムをコンパイラを用いてコンパイルし、 前記発信パーティーのディジタル署名が検証された時にアーキテクチャ特定プログラムを生成し、そして検証時に前記アーキテクチャ特定プログラムが前記コンパイリングパーティーによって生成されたことを検証する前記コンパイリングパーティーのディジタル署名を付加する段階と、を含み、 実行パーティーによって作動されるプログラム実行コンピュータにおいて、 前記アーキテクチャ特定プログラムを受信し、前記アーキテクチャ中立プログラムを受信または発信する段階と、 前記コンパイリングパーティーのディジタル署名を検証する段階と、 前記コンパイラのディジタル署名が検証され、前記コンパイラが信頼されたコンパイラの限定集合のメンバーであることが決定された時に、前記アーキテクチャ特定プログラムコードを実行する段階と、を含むことを特徴とする方法。
  7. 7
    【請求項7】 前記プログラムコンパイリングコンピュータにおいて、 検証時に前記アーキテクチャ特定プログラムが前記コンパイラを用いて生成されたことを検証する前記コンパイラのディジタル署名を生成する段階と、 前記アーキテクチャ特定プログラムコードに前記コンパイラのディジタル署名を付加する段階とを含み、 前記プログラム実行コンピュータにおいて、 前記コンパイラのディジタル署名を検証する段階と、 前記コンパイラのディジタル署名が検証され、前記コンパイラが信頼されたコンパイラの限定集合のメンバーであることが決定された後に限って、前記アーキテクチャ特定プログラムコードを実行する段階と、を含む請求項6に記載の方法。
  8. 8
    【請求項8】 前記発信パーティー及び前記コンパイリングパーティーのために、前記ネットワークは対応する私用暗号化キー、公開暗号化キー、及び対応するハッシュ機能を含み、 前記発信パーティーのディジタル署名は、前記アーキテクチャ中立プログラムに対して前記発信パーティーの対応するハッシュ機能を遂行することによって生成した前記アーキテクチャ中立プログラムのメッセージダイジェストを含み、前記アーキテクチャ中立プログラムのメッセージダイジェストは、前記発信パーティーの対応する私用キーを用いて暗号化されており、 前記方法は、 前記プログラムコンパイリングコンピュータにおいて、 (A)前記発信パーティーの公開暗号化キーを用いて前記アーキテクチャ中立プログラムの前記メッセージダイジェストを暗号解除し、(B)前記アーキテクチャ中立プログラムコードに対して前記発信パーティーのハッシュ機能を遂行することによって前記アーキテクチャ中立プログラムの対応する試験メッセージダイジェストを生成し、そして(C)前記暗号解除されたメッセージダイジェストと前記アーキテクチャ中立プログラムの試験メッセージダイジェストとを比較することによって前記発信パーティーのディジタル署名を検証する段階と、 (A)前記アーキテクチャ特定プログラムコードに対して前記コンパイリングパーティーの対応するハッシュ機能を遂行することによって前記アーキテクチャ中立プログラムのメッセージダイジェストを生成し、そして(B)前記コンパイリングパーティーの対応する私用キーを用いて前記アーキテクチャ特定プログラムのメッセージダイジェストを暗号化することによって前記コンパイリングパーティーのディジタル署名を生成する段階と、を含み、 前記プログラム実行コンピュータにおいて、 (A)前記コンパイリングパーティーの公開キーを用いて前記アーキテクチャ特定プログラムのメッセージダイジェストを暗号解除し、(B)前記アーキテクチャ特定プログラムコードに対して前記コンパイリングパーティーのハッシュ機能を遂行することによって前記アーキテクチャ特定プログラムの対応する試験メッセージダイジェストを生成し、そして(C)前記暗号解除されたメッセージダイジェストと前記アーキテクチャ特定プログラムの試験メッセージダイジェストとを比較することによって前記コンパイリングパーティーのディジタル署名を検証する段階と、を含む請求項6に記載の方法。
  9. 9
    【請求項9】 プログラム実行コンピュータにおいて、 前記アーキテクチャ中立プログラムコードが所定のプログラム完全性基準を満足することを検証することによって前記アーキテクチャ中立プログラムコードの完全性を検証する段階と、 前記アーキテクチャ中立プログラムコードの完全性が検証された後に限って、前記アーキテクチャ特定プログラムコードを実行する段階と、を含む請求項6に記載の方法。
  10. 10
    【請求項10】 前記アーキテクチャ中立プログラムを供給するプログラム発信コンピュータにおいて、 前記発信パーティーのディジタル署名を生成し、それを前記アーキテクチャ中立プログラムコードに付加する段階を含み、 前記プログラムコンパイリングコンピュータにおいて、 前記プログラム発信コンピュータと連絡して前記プログラム発信コンピュータから前記アーキテクチャ中立プログラムを受信し、前記アーキテクチャ特定プログラムを前記プログラム発信コンピュータへ供給する段階を含み、 前記プログラム実行コンピュータにおいて、 前記プログラム発信コンピュータと連絡して前記プログラム発信コンピュータから前記アーキテクチャ中立プログラム及びアーキテクチャ特定プログラムを受信する段階と、 前記発信パーティーのディジタル署名を検証する段階と、 前記発信パーティーのディジタル署名が検証された後に限って前記アーキテクチャ特定プログラムを実行する段階と、を含む請求項6に記載の方法。
  11. 11
    【請求項11】 前記プログラム実行コンピュータにおいて、 前記アーキテクチャ中立プログラムを供給する段階と、 前記アーキテクチャ中立プログラムに署名する発信パーティーのディジタル署名を生成し、それを前記アーキテクチャ中立プログラムコードに付加する段階と、を含み、 前記プログラムコンパイリングコンピュータにおいて、 前記プログラム実行コンピュータと連絡して前記プログラム実行コンピュータから前記アーキテクチャ中立プログラムを受信し、前記アーキテクチャ特定プログラムを前記プログラム実行コンピュータへ供給する段階を含む請求項6に記載の方法。
  12. 12
    【請求項12】 コンピュータ読取り可能な媒体上に格納され、コンピュータによって実行可能なコードを分配するシステムであって、前記コードは各々が前記コンピュータの1つによって実行される少なくとも1つの機能を遂行するように構成されている複数のモジュールを含み、前記システムは、 コンパイリングパーティーによって作動され、プログラムコンパイリングコンピュータと共に使用するように構成されている第1のモジュールを備え、前記コンパイリングパーティーは、発信パーティーによって生成されるアーキテクチャ中立プログラムを受信し、前記アーキテクチャ中立プログラムはアーキテクチャ中立プログラムコード及び前記発信パーティーのディジタル署名を含み、前記ディジタル署名は検証時に前記アーキテクチャ中立プログラムが前記発信パーティーによって署名されたことを検証するようになっており、前記第1のモジュールは、 前記発信パーティーのディジタル署名を検証する署名検証手段と、 前記発信パーティーのディジタル署名が検証された時に、(A)前記アーキテクチャ中立プログラムコードをアーキテクチャ特定言語でアーキテクチャ特定プログラムコードにコンパイルし、(B)検証時に前記アーキテクチャ特定プログラムが前記コンパイリングパーティーによって生成されたことを検証する前記コンパイリングパーティーのディジタル署名を付加することによってアーキテクチャ特定プログラムを生成するコンパイラと、 前記コンパイリングパーティーのディジタル署名を生成する署名発生手段と、を含み、 実行パーティーによって作動され、プログラム実行コンピュータと共に使用される第2のモジュールを更に備え、前記実行パーティーは前記アーキテクチャ特定プログラムを受信し、前記アーキテクチャ中立プログラムを受信または発信し、前記第2のモジュールは、 前記コンパイリングパーティーのディジタル署名を検証する署名検証手段と、 前記コンパイリングパーティーの署名が検証され、前記コンパイリングパーティーが信頼されたコンパイリングパーティーの限定集合のメンバーである時に、前記アーキテクチャ特定言語で書かれたアーキテクチャ特定プログラムコードを実行する実行手段と、を含むことを特徴とするシステム。
  13. 13
    【請求項13】 前記署名発生手段は、検証時に前記アーキテクチャ特定プログラムが前記コンパイラを用いて生成されたことを検証する前記コンパイラのディジタル署名を生成し、 前記第1のモジュールは、前記アーキテクチャ特定プログラムコードを前記コンパイラのディジタル署名に付加し前記第2のモジュールの署名検証手段は、前記コンパイラのディジタル署名を検証し、 前記第2のモジュールの実行手段は、前記コンパイラのディジタル署名が検証され、前記コンパイラが信頼されたコンパイラの限定集合のメンバーであることが決定された後に限って、前記アーキテクチャ特定プログラムコードを実行する請求項12に記載のシステム。
  14. 14
    【請求項14】 前記発信パーティー及び前記コンパイリングパーティーのために、前記システムは対応する私用暗号化キー、公開暗号化キー、及び対応するハッシュ機能を含み、 前記発信パーティーのディジタル署名は、前記アーキテクチャ中立プログラムに対して前記発信パーティーの対応するハッシュ機能を遂行することによって生成した前記アーキテクチャ中立プログラムのメッセージダイジェストを含み、前記アーキテクチャ中立プログラムのメッセージダイジェストは、前記発信パーティーの対応する私用キーを用いて暗号化されており、 前記第1のモジュールの署名検証手段は、(A)前記発信パーティーの公開暗号化キーを用いて前記アーキテクチャ中立プログラムの前記メッセージダイジェストを暗号解除し、(B)前記アーキテクチャ中立プログラムコードに対して前記発信パーティーのハッシュ機能を遂行することによって前記アーキテクチャ中立プログラムの対応する試験メッセージダイジェストを生成し、そして(C)前記暗号解除されたメッセージダイジェストと前記アーキテクチャ中立プログラムの試験メッセージダイジェストとを比較することによって前記発信パーティーのディジタル署名を検証させる命令を含み、 前記第1のモジュールの前記署名発生手段は、(A)前記アーキテクチャ特定プログラムコードに対して前記コンパイリングパーティーの対応するハッシュ機能を遂行することによって前記アーキテクチャ中立プログラムのメッセージダイジェストを生成し、そして(B)前記コンパイリングパーティーの対応する私用キーを用いて前記アーキテクチャ特定プログラムのメッセージダイジェストを暗号化することによって前記コンパイリングパーティーのディジタル署名を生成させるための命令を含み、 前記第2のモジュールの署名検証手段は、(A)前記コンパイリングパーティーの対応する公開キーを用いて前記アーキテクチャ特定プログラムのメッセージダイジェストを暗号解除し、(B)前記アーキテクチャ特定プログラムコードに対して前記コンパイリングパーティーのハッシュ機能を遂行することによって前記アーキテクチャ特定プログラムの対応する試験メッセージダイジェストを生成し、そして(C)前記暗号解除されたメッセージダイジェストと前記アーキテクチャ特定プログラムの試験メッセージダイジェストとを比較することによって前記コンパイリングパーティーのディジタル署名を検証させる命令を含む、請求項12に記載のシステム。
Independent claims14