JP4664398B2 - インクリメンタルなコード署名の方法及び装置 - Google Patents

インクリメンタルなコード署名の方法及び装置 Download PDF

Info

Publication number
JP4664398B2
JP4664398B2 JP2008165033A JP2008165033A JP4664398B2 JP 4664398 B2 JP4664398 B2 JP 4664398B2 JP 2008165033 A JP2008165033 A JP 2008165033A JP 2008165033 A JP2008165033 A JP 2008165033A JP 4664398 B2 JP4664398 B2 JP 4664398B2
Authority
JP
Japan
Prior art keywords
computer program
hash
array
hash value
hash values
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.)
Expired - Fee Related
Application number
JP2008165033A
Other languages
English (en)
Other versions
JP2008293033A (ja
Inventor
ペリー キートレイバー,
マイケル ブラウワー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2008293033A publication Critical patent/JP2008293033A/ja
Application granted granted Critical
Publication of JP4664398B2 publication Critical patent/JP4664398B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring 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 by adding security routines or objects to programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Description

本発明はコンピュータ・セキュリティの分野に関する。特に、本発明は、権限のない者がコンピュータのプログラムコードを改竄していないことを検証するためのシステムを開示する。
コンピュータ・セキュリティは、コンピュータ・ソフトウェアの製造者が直面している最も切迫した問題の一つである。インターネットの人気の高まりに伴い、ほとんど全てのパーソナルコンピュータ・システムが、一地点或いは他の地点において、インターネットを利用可能である。この優れた接続性により、多くのメリットがパーソナルコンピュータのユーザにもたらされた。しかし、それは、新たな多くの問題をコンピュータ・ユーザにもたらした。最も大きな問題の一つは、インターネットにおいて転送される、ウィルス、ワーム、トロイの木馬、及び、他の悪意のあるプログラムの増加である。
"クラッカー"としても知られることがある悪意のあるコンピュータ・プログラマは、しばしば、情報を盗んだり不正な変更を行うために、コンピュータ・システムへの侵入を試みる。クラッカーは、コンピュータ・システムに侵入する試みにおいて、多くの異なった種類の攻撃を使用する。コンピュータのクラッカーが採用する一般的な方法には、トロイの木馬(見た目は良性のコンピュータ・プログラムであるが、隠れた意図を有する。)、コンピュータ・ウィルス(ホストプログラム内で自己複製するソフトウェア)、コンピュータ・ワーム(コンピュータ・ネットワークを介して自己複製するソフトウェア)、ソーシャルエンジニアリング(認証コードを有する人をだましてその認証コードを流出させること)が含まれる。
これらの悪意のあるコンピュータ・プログラマは、しばしば、不正な機能を実行させるためにプログラムコードを追加して、現存する正規のプログラムの改変を行う。そのような認可されたプログラムコードを正規のプログラム内に置くことによって、悪意のあるコンピュータ・プログラマは不正なプログラムコードを隠す。このため、不正なコードが、パーソナルコンピュータ・システム内に、その持ち主が長時間気づくことなく存在することがある。不正なプログラムコードは、価値のあるデータを破壊したり、コンピュータ資源(CPUサイクル、ネットワーク帯域、記憶領域等)を浪費したり、或いは、機密情報を盗んだりすることがある。
そのような不正な粗悪化から正規のプログラムを守るため、あるソフトウエア製造者はプログラムコードのチェックサムを生成する。ただし、チェックサムは、プログラムコードを入力値として用いて、異なるコンピュータ・プログラムはそれぞれ異なるチェックサム値を有する傾向があるように計算される値である。次に、ソフトウエア製造者は、秘密鍵である暗号化鍵を用いてそのチェックサムにデジタル的に"署名"する。コンピュータ・プログラムコードを実行する前に、ユーザはそのプログラムコードを認証すべきである。特に、ユーザはプログラムコードのチェックサムを計算するためのパーソナルコンピュータ・システムを有しており、計算されたチェックサム値は、ソフトウエア製造者の公開鍵を用いて復号した後、ソフトウエア製造者によって計算されたチェックサムと比較される。この2つのチェックサムが一致する場合は、コンピュータプログラムは真正であると推測される。
このようなチェックサムに基づく既存の保護システムは比較的よく機能すると知られている。しかしながら、このようなチェックサムに基づく既存の保護システムは、大きなコンピュータ・プログラムを認証するために長時間を要することがある。このため、大きなコンピュータ・プログラムを認証するための、より高速なシステムを提供することが望まれている。
本発明は、大きなコンピュータ・プログラムを高速かつ容易に認証するための方法を開示する。まず、システムは、デジタル署名を用いて、コンピュータ・プログラムをインクリメンタルにシールする(seal)処理を行う。具体的には、コンピュータ・プログラムはブロックの集合に分解され、各ブロックについてハッシュ値が計算される。ハッシュ値の集合はハッシュ値アレイ(array)を形成するように整列され、そのハッシュ値アレイはデジタル署名を用いてシールされる。そして、コンピュータ・プログラムは、そのハッシュ値アレイとデジタル署名とともに配布される。コンピュータ・プログラムを認証するために、受取人は、まず、デジタル署名と公開鍵を用いてハッシュ値アレイが適正であるかを検証する。ハッシュ値アレイが適正であると検証された場合、受取人は、ロードするブロックのハッシュを計算し、シールされたハッシュ値アレイ中の対応するハッシュ値と比較することによって、コンピュータ・プログラムの各ブロックが適正であるかを検証することができる。ハッシュ値が適合しない場合は、実行を停止してもよい。
上述したものに加えて、他の目的が、添付された実施形態及び図面において説明され、示される発明の実施において達せられる。
本発明は、同一の参照番号が同一の構造要素を指定する、添付図面と併せて以下の詳細な説明によって容易に理解することができよう。
(表記及び用語)
本発明に係る以下の詳細な説明においては、本発明の十分な理解を可能にするために多数の具体的な詳細が説明される。しかし、この技術分野の当業者にとっては、これらの具体的な詳細がなくても本発明を実施することが可能であることが明らかであろう。また、他の場合においては、本発明の側面が不必要に分かりにくくなることを防ぐため、よく知られた方法、手順、構成要素、回路については詳細に説明していない。
本発明に係る以下の詳細な説明は、ネットワークに接続されたデータ処理装置を説明する、手順、工程、論理ブロック、処理、及び、他の記号的な表記で、主に提供される。これらの処理の説明及び表記は、この技術分野の専門家又は当業者が彼らの仕事の本質をその技術分野の他の当業者へ最も効果的に伝えるために用いられる。以下に詳細に説明する、装置を用いた方法は、所望の結果へ導かれる自己矛盾のない一連の処理又は工程である。このような工程又は処理は物理量の物理的な操作を要する。必須ではないが、通常、このような量は、コンピュータ・システム又は電気的なコンピュータ装置において、格納、転送、結合、比較、表示、及び、他の操作が可能な電気信号という形態をとることがある。ビット、値、要素、記号、操作、メッセージ、用語、数、或いは同種のものとして、これらの信号を参照することは、主に共用する際において便利であることがある。このような同等の用語の全ては、適切な物理量と対応づけられるものであり、これらの量に適用される単に便利なラベルであるということを理解すべきである。以下の記述と明らかな形で異なるということを明示しない限り、"処理","計算","検証","表示"等の用語を用いた記述は、計算装置のレジスタ及びメモリ内の物理量として表されたデータを、その計算装置又は他の電子機器内の物理量として同様に表された他のデータへ、操作及び変換する計算装置の動作及び処理を指しているということが、本発明について理解される。
(デジタル署名を用いたコンピュータ・プログラムの安全管理)
コンピュータ・プログラムを不正な改変から守るため、ソフトウエア製造者は、コンピュータ・プログラムのために、特別な"シール"を生成することがある。シールは、そのプログラムが実行される前に検証されるべきである。シール、又は、コンピュータ・プログラムコードが改変された場合、検証は失敗し、プログラムの実行が拒絶されるであろう。
そのようなシールを生成する一般的な方法は、よく知られている"公開鍵"暗号技術を用いるものである。公開鍵暗号技術を用いるシステムについて、図1及び図2を参照して説明する。
コンピュータ・プログラムのデジタル的なシール
複数の図にわたって同一の番号が同一の部分に対応する図面を参照する。図1は、コンピュータ・プログラム100に、デジタルシール、又は、デジタル署名を生成する処理を示す概念図である。まず、ハッシュ関数110を用いてコンピュータ・プログラム100の全体についてハッシュが計算され、プログラム・ハッシュ値120が計算される。プログラム・ハッシュ値120は、コンピュータ・プログラム100に基づき計算される、チェックサム等の小さな値である。次に、プログラム・ハッシュ値120は、デジタル署名関数130を用いて、信頼できる機関の秘密鍵140に基づきデジタル的に署名され、プログラム・ハッシュへのデジタル署名150が生成される。プログラム・ハッシュへのデジタル署名150は、プログラムに付与して配布されるデジタルシール(又はデジタル署名)である。
デジタル的にシールされたコンピュータ・プログラムの真正であることの検証
図2は、図1のプログラム・ハッシュへのデジタル署名150がプログラムが真正であるかを検証するためにどのように用いられるかを示すフロー図である。図2を参照すると、まず、ステップ210において、コンピュータ・プログラム100を用いるコンピュータ・システムは、全てのコンピュータ・プログラム100をロードする。次に、ステップ220において、コンピュータ・システムは、全てのコンピュータ・プログラム100について(図1においてハッシュ関数110が行うように)プログラム・ハッシュ値を計算する。
次に、ステップ230、240において、コンピュータ・システムは、コンピュータプログラム100に付与されたプログラム・ハッシュへのデジタル署名150と、ステップ220において計算されたプログラム・ハッシュ値とを、信頼できる機関のデジタル署名を生成した既知の公開鍵235を用いて比較する。具体的には、プログラム・ハッシュへのデジタル署名150が、デジタル署名関数により公開鍵235を用いて処理され、その結果と、ステップ220において計算されたプログラム・ハッシュ値とが比較されるように構成することができる。
ステップ220において計算されたハッシュ値と、公開鍵235を用いて処理されたプログラム・ハッシュへのデジタル署名150とが適合した場合、コンピュータ・システムはステップ250へ進み、プログラムの実行を開始する。しかし、ステップ220において計算されたハッシュ値と、公開鍵235を用いて処理されたプログラム・ハッシュへのデジタル署名150とが適合しなかった場合、コンピュータ・システムはステップ260へ進み、コンピュータ・プログラム100の実行を拒絶する。
図1及び図2の認証システムは小さなプログラムでは満足に動作するが、大きなコンピュータ・プログラムには適さない。図1及び図2の認証システムに関する重要な問題の一つは、図2のフロー図におけるステップ210及びステップ220に見つけることができる。ステップ210及びステップ220では、全てのコンピュータ・プログラム100がメモリにロードされ、その全てのコンピュータ・プログラム100についてハッシュ値の計算が必要となる。大きなプログラムでは、この処理に非常に長時間を要する可能性がある。このため、ユーザはこの時間のかかるロード処理及び計算処理の全体の終了を待たなければならない。今日のせっかちなコンピュータ・ユーザは、そのような長いロード時間には耐えられないだろう。
保護の必要がある大きなコンピュータ・プログラムの顕著な例の一つは、コンピュータ・システムのオペレーティング・システムである。オペレーティング・システムは、例えば、ディスクドライブ、ネットワーク接続、ディスプレイ、バックアップシステム等の、コンピュータの全ての入出力装置を操作する権限を有する。このため、コンピュータのオペレーティング・システムを高速かつ効率的に保護することが可能な、コンピュータプログラムの認証システムを有することが非常に望まれるであろう。
(インクリメンタルなコード署名)
本発明は、既存のシステムにおいて長いロード時間を必要とすることなく、安全性を目的としたコンピュータ・プログラムのデジタル署名の改善された方法をもたらすものである。本発明は、コンピュータ・プログラムを、それぞれ別個に検証される小さいユニットに分解して動作する。
インクリメンタルなコード署名を用いたコンピュータ・プログラムのデジタル的なシール
図3及び図4は、本発明に係るシステムが、より高速かつ効率的に使用可能なプログラムのデジタルシールをどのように生成するかを示す図である。図3は、デジタルシールがどのように生成されるかを示す概念図である。図4は、デジタルシールを生成するための方法を示す詳細なフロー図である。
図3及び図4を参照すると、本発明では、まず、ステップ410において、コンピュータ・プログラム300を複数の"ページ"(380〜389)に分解する。ほとんどのコンピュータ・システムは、仮想メモリシステムを実装するためにページメモリの機構を既に用いている。このため、本発明は、特定のプロセッサとオペレーティング・システムとの少なくともいずれかにより提供される、既存のメモリページング・システムを用いることができる。メモリページのサイズは、一般的には、4キロバイト("k":kilobytes)又は8kである。
次に、ステップ420及びステップ430において、システムは、コンピュータ・プログラム300の各メモリページについて、ハッシュ関数310を用いて、ハッシュ値を計算する。ハッシュ関数310は、例えば、よく知られているSHAやMD5が有している関数等の、あらゆるハッシュ関数を利用することができる。図3に示されるように、ハッシュ関数310は、コンピュータ・プログラム300の各メモリページ(380〜389)について、対応するハッシュ値(390〜399)を生成する。出力されるハッシュ値のサイズは、ある実施形態においては、20バイトである。しかし、あらゆる異なったサイズのハッシュ値を用いてもよい。
ステップ440において、本発明に係るシステムでは、計算されたハッシュ値(390〜399)をハッシュアレイ373として知られるハッシュ値の配列に配置する。次に、ステップ450において、システムは、ハッシュ関数370を用いてハッシュアレイ373の全体についてアレイ・ハッシュ値360を計算する。ある実施形態においては、ハッシュ関数370はハッシュ関数310と同一である。しかし、異なるハッシュ関数を用いてもよい。
次に、ステップ460において、プログラムをシールする信頼できる機関は、署名関数330を用いて秘密鍵340によりアレイ・ハッシュ値360にデジタル的に署名し、ハッシュアレイへのデジタル署名350を生成する。最後に、ステップ470において、ハッシュアレイ373とハッシュアレイへのデジタル署名350はコンピュータ・プログラム300とともに格納される。ハッシュアレイ373とハッシュアレイへのデジタル署名350は、コンピュータ・プログラム300とともに配布され、コンピュータ・プログラム300の全ての受取人は、それが真正か否かを検証することができる。
デジタル的にシールされたコンピュータ・プログラムの真正であることの検証
ハッシュアレイ373と、ハッシュアレイへのデジタル署名350がコンピュータ・プログラムについて生成されると、そのコンピュータ・プログラムはユーザへ配布され、そのユーザは高速かつ効率的にそのコンピュータ・プログラムが真正であるか否かを検証することができる。図5は、インクリメンタルなコード署名を用いてデジタル的にシールされたコンピュータ・プログラムの受取人が、そのデジタル的にシールされたコンピュータ・プログラムをどのように検証し、実行するかを示すフロー図である。
図5を参照すると、ステップ510において、受取人のパーソナルコンピュータ・システムは、まず、コンピュータ・プログラムに付与されたハッシュアレイをロードする。次に、ステップ515において、コンピュータ・システムはハッシュアレイ全体についてハッシュ値を計算する。ハッシュ値のアレイはあまり大きくないため、この特別なハッシュの計算は非常に高速に完了するだろう。
次に、ステップ520及びステップ525において、コンピュータ・システムは、コンピュータ・プログラムをシールした信頼できる機関の既知の公開鍵を用いて、計算されたハッシュ値と、コンピュータ・プログラムに付与されたハッシュアレイへのデジタル署名とを比較する。
デジタル署名が、ハッシュアレイから計算されたハッシュ値に適合しなかった場合、コンピュータ・システムはステップ580へ進み、コンピュータ・プログラムの実行を拒絶する。実行が拒絶されるのは、デジタル署名とハッシュアレイとの少なくともいずれかが権限のないエンティティによって改変されているためである。
ステップ525の説明に戻る。デジタル署名が、ハッシュアレイから計算されたハッシュ値に適合した場合は、コンピュータ・システムはステップ530へ進み、コンピュータ・プログラムのページをロードする。次に、ステップ540において、コンピュータ・システムは、ロードされたコンピュータ・プログラムについてハッシュ値を計算する。この計算は、コンピュータのオペレーティング・システムのメモリページング機構の範囲内で行われるであろう。ステップ550、555において、ロードされたコンピュータ・プログラムのページについて計算されたハッシュ値と、その特定のメモリページに対応する、ハッシュアレイ内のハッシュ値とが比較される。
ロードされたコンピュータ・プログラムのページについて計算されたハッシュ値が、ハッシュアレイの対応するハッシュ値に一致しなかった場合、コンピュータ・システムは、ステップ580へ進み、実行の継続を拒絶する。この実行の継続の拒絶は、コンピュータ・システムの仮想メモリシステムにおけるページフォールト(欠陥)として実装することができよう。失敗を通知する他にとりうる方法としては、そのページを読み込めないことや検証エラーがあったことを示したり、或いは、単に実行を中止する等の方法があるだろう。
ステップ555の説明に戻る。ロードされたコンピュータ・プログラムのページについて計算されたハッシュ値が、ハッシュアレイの対応するハッシュ値に一致した場合、コンピュータ・システムは、ステップ560へ進み、ロードされたプログラムのページについて実行を開始する。最終的には、プログラムは、そのロードされたページ(及び過去にロードされたページ)内のコードの実行を完了し、全ての実行を完了するか、或いは、ステップ570で説明するように、コンピュータ・プログラムの他のページを必要とするだろう。プログラムが完全に実行された場合、コンピュータはステップ590へ進み、実行を終了する。
ステップ570において、コンピュータ・プログラムの他のページが必要とされた場合、コンピュータ・システムはステップ530へ戻り、コンピュータ・プログラムの必要とされたページをロードする。新たにロードされたページはステップ540、550、及び、555において適正か否かが検証される。
なお、ロードされた各メモリページのそれぞれについて適正であるか否かを更に検証するために、適正であることが過去に確認されたハッシュアレイは、コンピュータ・システムにより用いられる。このため、コンピュータは、認証されたハッシュアレイがプログラムの実行中に改変されないことを保証しなければならない。例えば、オペレーティング・システムが、保護されたメモリから認証されたハッシュアレイをスワップ(swap)する場合、それが適正であることを保証するために、ロードバック(スワップイン、ロールイン)するときにハッシュアレイについて再び適正であるか否かを検証すべきである。
本明細書及び添付図面は、ある程度精密かつ十分詳細に本発明を開示した。この技術分野の当業者には、本実施形態の開示はあくまでも例示的なものであり、特許請求の範囲に記載された本発明の精神及び範囲から離れることなく、構成要素や工程の配置や組合せを様々に変更することができるということが理解されるだろう。従って、本発明の範囲は、上記の実施形態の記述ではなく、添付の特許請求の範囲によって確定される。
デジタル署名によりコンピュータ・プログラムをどのようにシールすることができるかを示す概念図である。 コンピュータ・プログラムを実行する前に、デジタル署名を用いてシールされたコンピュータ・プログラムをコンピュータ・システムがどのように検証するかを示すフロー図である。 インクリメンタルなコード署名を用いて、デジタル署名によりコンピュータ・プログラムをどのようにシールすることができるかを示す概念図である。 インクリメンタルなコード署名を用いて、デジタル署名及びハッシュアレイによりコンピュータ・プログラムをどのようにシールすることができるかを示すフロー図である。 インクリメンタルなコード署名によりデジタル的にシールされたコンピュータ・プログラムを、コンピュータ・システムがどのように検証し、実行するかを示すフロー図である。

Claims (25)

  1. 複数のユニットを有するコンピュータ・プログラムを認証する、コンピュータ装置が実行する方法であって、
    前記コンピュータ・プログラムを、当該コンピュータ・プログラムの前記複数のユニットを認証するための、複数のハッシュ値を有するハッシュ値のアレイとともに受信する工程と、
    前記ハッシュ値のアレイを認証する工程と、
    前記コンピュータ・プログラムの前記複数のユニットから1以上のユニットをロードする工程と、
    前記コンピュータ・プログラムの全ての前記ユニットをロードする前に、前記アレイに格納された前記ハッシュ値と、前記ロードしたユニットについて新たに計算されたハッシュ値とを比較することにより、前記コンピュータ・プログラムを1回に1ユニットずつインクリメンタルに認証する工程と、
    を有する、方法。
  2. 前記受信する工程において、前記ハッシュ値のアレイは、当該ハッシュ値のアレイについて予め生成され、信頼できる機関の秘密鍵を用いてデジタル署名が付与されたハッシュ値とともに受信され、
    前記ハッシュ値のアレイを認証する工程は、
    前記ハッシュ値のアレイについてハッシュ値を計算する工程と、
    当該計算されたハッシュ値が、前記ハッシュ値のアレイについて予め生成されている前記ハッシュ値に適合するか否かを、前記信頼できる機関の公開鍵を用いて判定する工程と
    を有する、請求項1に記載の方法。
  3. 前記コンピュータ・プログラムをインクリメンタルに認証する工程は、
    特定のユニットのハッシュ値を計算する工程と、
    前記計算されたハッシュ値が、前記特定のユニットに対応する前記アレイ中のハッシュ値に適合するか否かを判定する工程と、
    を有する、請求項1に記載の方法。
  4. 前記コンピュータ・プログラムをインクリメンタルに認証する工程は、特定のユニットが真正でないと判定された場合、前記インクリメンタルな認証を停止する工程を更に有する、請求項1に記載の方法。
  5. 1以上のユニットが認証された後、前記コンピュータ・プログラムの少なくとも一部を実行する工程を更に有する、請求項1に記載の方法。
  6. 前記特定のユニットがメモリ・システムにロードされる、請求項3に記載の方法。
  7. 前記コンピュータ・プログラムによる実行に必要なユニットの特定の集合のみが認証される、請求項1に記載の方法。
  8. 1以上のユニットが真正でないと判定された場合にエラーを生成する工程を更に有する、請求項1に記載の方法。
  9. 前記コンピュータ・プログラムの1以上の特定のユニットのサイズは、メモリ・システムのメモリのサイズに基づく、請求項1に記載の方法。
  10. 前記コンピュータ・プログラムをインクリメンタルに認証する工程は、該コンピュータ・プログラムのロードされたユニットを認証する工程を有する、請求項1に記載の方法。
  11. 前記ロードされたユニットを認証する工程は、
    前記コンピュータ・プログラムの前記ロードされたユニットについてハッシュ値を計算する工程と、
    前記ロードされたユニットについて計算された前記ハッシュ値が、前記ハッシュ値のアレイからの、特定のハッシュ値と適合するか否かを判定する工程と、
    を有する、請求項10に記載の方法。
  12. 前記ロードされたユニットの前記ハッシュ値の計算は、メモリページング・システムにおいて実行される、請求項11に記載の方法。
  13. 保護されたメモリ・システムにおいて前記ハッシュ値のアレイをロードする工程を更に有する、請求項1に記載の方法。
  14. 前記ハッシュ値のアレイを認証する工程は、前記ハッシュ値のアレイのためのデジタル署名を使用する工程を有する、請求項1に記載の方法。
  15. 前記デジタル署名は、前記ハッシュ値のアレイの暗号化されたハッシュ値である、請求項14に記載の方法。
  16. 前記デジタル署名を使用する工程は、前記ハッシュ値のアレイの前記暗号化されたハッシュ値を復号する工程を有する、請求項15に記載の方法。
  17. 前記ハッシュ値のアレイを認証する工程は、
    前記ハッシュ値のアレイについてハッシュ値を計算する工程と、
    当該計算されたハッシュ値が、前記ハッシュ値のアレイについて予め生成されている前記ハッシュ値に適合するか否かを判定する工程と
    を有する、請求項1に記載の方法。
  18. 前記コンピュータ・プログラムの少なくとも一部を実行する工程は、前記コンピュータ・プログラムの第1のユニットを認証した後、当該コンピュータ・プログラムの異なる第2のユニットを認証する前に、該第1のユニットを実行する工程を有する、請求項5に記載の方法。
  19. 配布するコンピュータ・プログラムを格納する、コンピュータ装置が実行する方法であって、
    複数のユニットに分割されたコンピュータ・プログラムを受信する工程と、
    前記複数のユニットについて複数のハッシュ値を計算する工程と、
    前記コンピュータ・プログラムと、当該コンピュータ・プログラムを後に認証するために用いられる前記複数のハッシュ値とを単一のコンピュータ・プログラムとして配布するために、前記コンピュータ・プログラムとともに前記複数のハッシュ値を格納する工程と、
    を有する方法。
  20. 前記複数のハッシュ値を有するハッシュアレイ全体について単一のハッシュ値を計算する工程と、
    秘密鍵署名関数を用いて前記ハッシュアレイにデジタル署名を付与する工程と、
    を更に有する、請求項19に記載の方法。
  21. 配布するコンピュータ・プログラムを格納する、コンピュータ装置が実行する方法であって、
    前記コンピュータ・プログラムを受信する工程と、
    前記コンピュータ・プログラムを認証するために、当該コンピュータ・プログラムを複数のユニットに分割する工程と、
    前記複数のユニットについての複数のハッシュ値を計算する工程であって、前記複数のハッシュ値の各々は対応する該ユニットを認証する、計算する工程と、
    前記コンピュータ・プログラムとともに配布するために、前記複数のハッシュ値をハッシュアレイに格納する工程と、
    を有する方法。
  22. 前記ハッシュアレイのハッシュ値を計算する工程と、
    前記ハッシュアレイの前記ハッシュ値を用いてデジタル署名を作成する工程と、
    を更に有する、請求項21に記載の方法。
  23. 前記ユニットの少なくとも一つのサイズは、メモリ・システムにおけるメモリのサイズに基づく、請求項21に記載の方法。
  24. 請求項1から23のいずれか1項に記載の方法を実現するための命令の集合を備える、1以上のプロセッサにより実行可能なコンピュータ・プログラムを格納したコンピュータ可読媒体。
  25. 請求項1から23のいずれか1項に記載の方法の各工程を実現する手段を備えるコンピュータ・システム。
JP2008165033A 2003-09-18 2008-06-24 インクリメンタルなコード署名の方法及び装置 Expired - Fee Related JP4664398B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/666,847 US7103779B2 (en) 2003-09-18 2003-09-18 Method and apparatus for incremental code signing

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006526940A Division JP4373442B2 (ja) 2003-09-18 2004-09-10 コンピュータ・プログラムをシールする方法、コンピュータ・プログラムを認証する方法、及び、コンピュータ可読媒体

Publications (2)

Publication Number Publication Date
JP2008293033A JP2008293033A (ja) 2008-12-04
JP4664398B2 true JP4664398B2 (ja) 2011-04-06

Family

ID=34313207

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006526940A Expired - Fee Related JP4373442B2 (ja) 2003-09-18 2004-09-10 コンピュータ・プログラムをシールする方法、コンピュータ・プログラムを認証する方法、及び、コンピュータ可読媒体
JP2008165033A Expired - Fee Related JP4664398B2 (ja) 2003-09-18 2008-06-24 インクリメンタルなコード署名の方法及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006526940A Expired - Fee Related JP4373442B2 (ja) 2003-09-18 2004-09-10 コンピュータ・プログラムをシールする方法、コンピュータ・プログラムを認証する方法、及び、コンピュータ可読媒体

Country Status (8)

Country Link
US (3) US7103779B2 (ja)
EP (3) EP1695169B1 (ja)
JP (2) JP4373442B2 (ja)
CN (2) CN101777103B (ja)
AU (2) AU2004275264B2 (ja)
CA (3) CA2894105C (ja)
HK (1) HK1092234A1 (ja)
WO (1) WO2005029223A2 (ja)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7548986B1 (en) * 2003-03-17 2009-06-16 Hewlett-Packard Development Company, L.P. Electronic device network providing streaming updates
US7103779B2 (en) 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
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
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
KR20080013940A (ko) * 2005-06-01 2008-02-13 마츠시타 덴끼 산교 가부시키가이샤 전자기기, 갱신 서버장치, 키 갱신장치
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US8839450B2 (en) 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
JP4792876B2 (ja) * 2005-08-30 2011-10-12 株式会社日立製作所 情報処理装置及び情報処理方法
JP4527640B2 (ja) * 2005-09-15 2010-08-18 株式会社ソニー・コンピュータエンタテインメント データ読出装置
JP4947978B2 (ja) * 2006-01-05 2012-06-06 株式会社アルファシステムズ 認証システム及び認証方法
US7574479B2 (en) * 2006-01-24 2009-08-11 Novell, Inc. Techniques for attesting to content
KR100746033B1 (ko) * 2006-02-17 2007-08-06 삼성전자주식회사 무결성 측정 장치 및 방법
US8364965B2 (en) 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures
JP4767057B2 (ja) * 2006-03-27 2011-09-07 富士通株式会社 ハッシュ値生成プログラム、ストレージ管理プログラム、判定プログラム及びデータ変更検証装置
CN100428261C (zh) * 2006-05-22 2008-10-22 北京易恒信科技认证有限公司 基于cpk的可信认证系统
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
JP5002205B2 (ja) * 2006-07-10 2012-08-15 任天堂株式会社 データ認証方法およびデータ認証システム
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
JP4288292B2 (ja) * 2006-10-31 2009-07-01 株式会社エヌ・ティ・ティ・ドコモ オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
US8453206B2 (en) * 2006-11-09 2013-05-28 Panasonic Corporation Detecting unauthorized tampering of a program
US8375458B2 (en) * 2007-01-05 2013-02-12 Apple Inc. System and method for authenticating code executing on computer system
US8209540B2 (en) * 2007-06-28 2012-06-26 Apple Inc. Incremental secure backup and restore of user settings and data
GB0719250D0 (en) * 2007-10-02 2007-11-14 Iti Scotland Ltd Anti-hack method
IL187039A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure overlay manager protection
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
EP2232397B1 (en) * 2008-01-20 2011-10-05 NDS Limited Secure data utilization
US9143329B2 (en) * 2008-01-30 2015-09-22 Adobe Systems Incorporated Content integrity and incremental security
KR101426270B1 (ko) 2008-02-13 2014-08-05 삼성전자주식회사 소프트웨어의 전자 서명 생성 방법, 검증 방법, 그 장치,및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로읽을 수 있는 기록매체
WO2009111405A1 (en) * 2008-03-04 2009-09-11 Apple Inc. System and method of authorizing execution of software code based on a trusted cache
US20090228868A1 (en) * 2008-03-04 2009-09-10 Max Drukman Batch configuration of multiple target devices
KR101252921B1 (ko) * 2008-03-04 2013-04-09 애플 인크. 사업자에게 부여된 자격들에 기초하여 장치 내의 소프트웨어 코드의 실행을 인가하는 시스템 및 방법
CN102016865A (zh) * 2008-03-04 2011-04-13 苹果公司 基于可用权利来授权执行软件代码的系统和方法
JP5069359B2 (ja) * 2008-03-04 2012-11-07 アップル インコーポレイテッド 少なくとも1つのインストールされたプロフィールに基づいてソフトウェアコードの実行を許可するシステム及び方法
US9081962B2 (en) 2008-04-30 2015-07-14 Graeme Harkness Anti-tamper techniques
JP2010146110A (ja) * 2008-12-16 2010-07-01 Ricoh Co Ltd 情報処理装置、プログラム実行方法及びプログラム
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US9086913B2 (en) * 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
KR101685633B1 (ko) * 2009-01-05 2016-12-12 삼성전자주식회사 메모리 시스템
US9805196B2 (en) 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
US9058491B1 (en) 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
US9336410B2 (en) * 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US9202015B2 (en) * 2009-12-31 2015-12-01 Intel Corporation Entering a secured computing environment using multiple authenticated code modules
US8453237B2 (en) * 2010-06-03 2013-05-28 International Business Machines Corporation Verification of a segmented program on a parallel processing computing system
JP5616528B2 (ja) * 2010-07-22 2014-10-29 ナグラビジョン エス アー ソフトウェアの完全性を保証するためのプロセッサにより実施される方法
DE102010033229A1 (de) * 2010-08-03 2012-02-09 Siemens Aktiengesellschaft Verfahren und System zur manipulationssicheren Übertragung von Steuerdaten
GB2485241A (en) 2010-11-05 2012-05-09 Bluecava Inc Incremental browser-based fingerprinting of a computing device
US9111099B2 (en) * 2011-05-31 2015-08-18 Red Hat, Inc. Centralized kernel module loading
JP4894970B2 (ja) * 2011-06-10 2012-03-14 株式会社日立製作所 情報処理装置
US20120328148A1 (en) * 2011-06-27 2012-12-27 Grey William Doherty Method and system for secure image management
CN102314578B (zh) * 2011-09-26 2015-10-28 浪潮(北京)电子信息产业有限公司 一种实现软件保护的系统及方法
CN107301332B (zh) * 2011-10-17 2021-10-29 英特托拉斯技术公司 用于保护和管理基因组及其它信息的系统和方法
US20130138969A1 (en) * 2011-11-28 2013-05-30 Mocana Corporation Preventing glitching of a firmware image using one or more layers of randomness
JP5315422B2 (ja) * 2012-01-10 2013-10-16 任天堂株式会社 データ認証方法およびデータ認証システム
JP2015084006A (ja) * 2012-02-13 2015-04-30 三菱電機株式会社 動的リンクライブラリ保護方法、動的リンクライブラリ認証方法、動的リンクライブラリ保護装置、動的リンクライブラリ認証装置、プログラム管理システム、プログラムおよび動的リンクライブラリ保護方法、プログラムおよび動的リンクライブラリ認証方法
WO2013161371A1 (ja) * 2012-04-27 2013-10-31 日本電気株式会社 プログラム提供装置、システム、プログラム提供方法およびプログラム
US8972715B2 (en) * 2012-07-13 2015-03-03 Securerf Corporation Cryptographic hash function
CA2789936C (en) * 2012-09-14 2020-02-18 Ibm Canada Limited - Ibm Canada Limitee Identification of sequential browsing operations
JP5574550B2 (ja) * 2012-11-22 2014-08-20 京セラドキュメントソリューションズ株式会社 情報秘匿化方法および情報秘匿化装置
US9424200B2 (en) 2013-03-15 2016-08-23 Freescale Semiconductor, Inc. Continuous run-time integrity checking for virtual memory
KR101434860B1 (ko) * 2013-08-16 2014-09-02 (주)잉카엔트웍스 해시를 이용한 동적코드의 무결성 검증 방법
JP6244759B2 (ja) * 2013-09-10 2017-12-13 株式会社ソシオネクスト セキュアブート方法、半導体装置、及び、セキュアブートプログラム
EP2913772A1 (de) * 2014-02-28 2015-09-02 Wibu-Systems AG Verfahren und Computersystem zum Schutz eines Computerprogramms gegen Beeinflussung
CN105632330B (zh) * 2014-10-27 2019-03-19 上海锐帆信息科技有限公司 一种可视化数字封条装置
CN104506503B (zh) * 2014-12-08 2019-11-05 北京北邮国安技术股份有限公司 一种基于广电单向传输网络的安全认证系统
WO2016185577A1 (ja) 2015-05-20 2016-11-24 富士通株式会社 プログラム検証方法、検証プログラム、及び情報処理装置
ES2774487T3 (es) 2015-11-19 2020-07-21 Nagravision Sa Método para verificar la integridad de ejecución de una aplicación en un dispositivo de destino
CN106953730B (zh) * 2016-01-07 2021-01-05 格尔软件股份有限公司 物理隔离网络环境下实现含时间戳的Windows代码签名的安全方法
US10637877B1 (en) * 2016-03-08 2020-04-28 Wells Fargo Bank, N.A. Network computer security system
CN106372505B (zh) * 2016-08-23 2018-12-28 北京航空航天大学 一种针对嵌入式系统代码攻击的快速恢复方法
KR102538096B1 (ko) * 2016-09-13 2023-05-31 삼성전자주식회사 어플리케이션을 검증하는 디바이스 및 방법
CN108257197A (zh) * 2016-12-28 2018-07-06 航天信息股份有限公司 一种用于在电子文档分页处设置骑缝章的方法及系统
US11449617B2 (en) * 2018-02-02 2022-09-20 Nec Corporation Information processing device, information processing method, and storage medium
EP3667505B1 (en) 2018-12-14 2021-11-10 Nxp B.V. Memory system with an incremental hashing operation and method
JP7270511B2 (ja) * 2019-09-10 2023-05-10 ボッシュ株式会社 制御装置及び方法
US20210382706A1 (en) * 2020-06-03 2021-12-09 Vmware, Inc. Automated configuration of attestation nodes using a software depot
US20220300452A1 (en) * 2021-03-18 2022-09-22 Sony Group Corporation Fixity data processing
CN113239330A (zh) * 2021-06-10 2021-08-10 杭州安恒信息技术股份有限公司 一种基于散列算法的反调试方法及相关装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040100A (ja) * 1996-03-29 1998-02-13 Internatl Business Mach Corp <Ibm> 暗号エンベロープの作成方法
JPH10282882A (ja) * 1997-04-10 1998-10-23 Fujitsu Ltd 認証子付与方法および認証子付与装置
JP2001034470A (ja) * 1999-07-22 2001-02-09 Fujitsu Ltd 管理自動化機構を有するサーバ
JP2001147898A (ja) * 1999-11-18 2001-05-29 Ricoh Co Ltd 原本性保証電子保存方法、装置及びコンピュータ読み取り可能な記録媒体
JP2001147826A (ja) * 1999-08-13 2001-05-29 Sun Microsyst Inc 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003202929A (ja) * 2002-01-08 2003-07-18 Ntt Docomo Inc 配信方法および配信システム

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868877A (en) 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5454000A (en) 1992-07-13 1995-09-26 International Business Machines Corporation Method and system for authenticating files
FR2731163B1 (fr) 1995-03-03 1997-06-20 Air Liquide Procede et installation de separation d'un melange gazeux par permeation
US5625693A (en) * 1995-07-07 1997-04-29 Thomson Consumer Electronics, Inc. Apparatus and method for authenticating transmitting applications in an interactive TV system
US6202203B1 (en) 1995-12-06 2001-03-13 International Business Machines Corporation Method of, system for, and computer program product for providing global value numbering
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6092147A (en) * 1997-04-15 2000-07-18 Sun Microsystems, Inc. Virtual machine with securely distributed bytecode verification
US6560706B1 (en) * 1998-01-26 2003-05-06 Intel Corporation Interface for ensuring system boot image integrity and authenticity
US6263348B1 (en) * 1998-07-01 2001-07-17 Serena Software International, Inc. Method and apparatus for identifying the existence of differences between two files
US7194092B1 (en) 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
AU2998100A (en) * 1999-02-18 2000-09-04 Sun Microsystems, Inc. Data authentication system employing encrypted integrity blocks
WO2000051251A1 (fr) 1999-02-24 2000-08-31 Mitsubishi Denki Kabushiki Kaisha Terminal de radiocommunication
US6618769B1 (en) * 1999-05-27 2003-09-09 Sun Microsystems, Inc. Module-by-module verification
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
AU6614600A (en) * 1999-07-29 2001-02-19 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US6658556B1 (en) 1999-07-30 2003-12-02 International Business Machines Corporation Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction
US7406603B1 (en) 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
US20010034839A1 (en) * 1999-12-24 2001-10-25 Guenter Karjoth Method and apparatus for secure transmission of data and applications
GB0003920D0 (en) 2000-02-21 2000-04-05 Ncipher Corp Limited Computer system
US6986046B1 (en) 2000-05-12 2006-01-10 Groove Networks, Incorporated Method and apparatus for managing secure collaborative transactions
US6954747B1 (en) 2000-11-14 2005-10-11 Microsoft Corporation Methods for comparing versions of a program
JP2004514214A (ja) 2000-11-17 2004-05-13 ビットフォン コーポレイション 情報をアップデートおよび配布するシステムおよび方法
US7478243B2 (en) * 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
US7310821B2 (en) 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
US7729495B2 (en) 2001-08-27 2010-06-01 Dphi Acquisitions, Inc. System and method for detecting unauthorized copying of encrypted data
KR20040029957A (ko) 2001-09-14 2004-04-08 소니 가부시끼 가이샤 기록매체의 재생방법과 재생장치 및 기록매체의기록방법과 기록장치
US20030084298A1 (en) 2001-10-25 2003-05-01 Messerges Thomas S. Method for efficient hashing of digital content
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7240205B2 (en) 2002-01-07 2007-07-03 Xerox Corporation Systems and methods for verifying documents
US7529929B2 (en) 2002-05-30 2009-05-05 Nokia Corporation System and method for dynamically enforcing digital rights management rules
DE10239062A1 (de) 2002-08-26 2004-04-01 Siemens Ag Verfahren zum Übertragen von verschlüsselten Nutzdatenobjekten
US20040064457A1 (en) 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
FR2845493A1 (fr) 2002-10-04 2004-04-09 Canal Plus Technologies Logiciel embarque et procede d'authentification de celui-ci
US7165076B2 (en) 2002-11-15 2007-01-16 Check Point Software Technologies, Inc. Security system with methodology for computing unique security signature for executable file employed across different machines
US7491122B2 (en) 2003-07-09 2009-02-17 Wms Gaming Inc. Gaming machine having targeted run-time software authentication
GB2404489A (en) 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
GB2404488B (en) 2003-07-31 2006-05-31 Sony Uk Ltd Access control for digital content
US7103779B2 (en) 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US20050071274A1 (en) 2003-09-27 2005-03-31 Utstarcom, Inc. Method and Apparatus in a Digital Rights Client and a Digital Rights Source and associated Digital Rights Key
US7921300B2 (en) 2003-10-10 2011-04-05 Via Technologies, Inc. Apparatus and method for secure hash algorithm
US20060259781A1 (en) 2005-04-29 2006-11-16 Sony Corporation/Sony Electronics Inc. Method and apparatus for detecting the falsification of metadata
US8364965B2 (en) 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1040100A (ja) * 1996-03-29 1998-02-13 Internatl Business Mach Corp <Ibm> 暗号エンベロープの作成方法
JPH10282882A (ja) * 1997-04-10 1998-10-23 Fujitsu Ltd 認証子付与方法および認証子付与装置
JP2001034470A (ja) * 1999-07-22 2001-02-09 Fujitsu Ltd 管理自動化機構を有するサーバ
JP2001147826A (ja) * 1999-08-13 2001-05-29 Sun Microsyst Inc 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法
JP2001147898A (ja) * 1999-11-18 2001-05-29 Ricoh Co Ltd 原本性保証電子保存方法、装置及びコンピュータ読み取り可能な記録媒体
JP2002353960A (ja) * 2001-05-30 2002-12-06 Fujitsu Ltd コード実行装置およびコード配布方法
JP2003202929A (ja) * 2002-01-08 2003-07-18 Ntt Docomo Inc 配信方法および配信システム

Also Published As

Publication number Publication date
AU2004275264B2 (en) 2009-11-19
CA2531363C (en) 2009-03-10
US8341422B2 (en) 2012-12-25
AU2004275264A1 (en) 2005-03-31
CN101777103B (zh) 2017-03-01
US8880897B2 (en) 2014-11-04
JP2008293033A (ja) 2008-12-04
EP1695169A2 (en) 2006-08-30
CA2531363A1 (en) 2005-03-31
JP4373442B2 (ja) 2009-11-25
CA2894105C (en) 2019-02-26
EP2634960B1 (en) 2016-01-13
CA2632076C (en) 2015-09-08
US20060288223A1 (en) 2006-12-21
EP1695169B1 (en) 2014-11-19
EP1695169A4 (en) 2011-03-02
JP2007506187A (ja) 2007-03-15
US20130111216A1 (en) 2013-05-02
CA2894105A1 (en) 2005-03-31
CN1842757A (zh) 2006-10-04
EP2634959B1 (en) 2015-07-15
US7103779B2 (en) 2006-09-05
EP2634959A2 (en) 2013-09-04
HK1092234A1 (en) 2007-02-02
CN1842757B (zh) 2013-09-18
AU2009233685B2 (en) 2011-08-25
AU2009233685A1 (en) 2009-11-26
EP2634960A2 (en) 2013-09-04
CN101777103A (zh) 2010-07-14
EP2634960A3 (en) 2013-10-16
EP2634959A3 (en) 2013-10-09
US20050066169A1 (en) 2005-03-24
CA2632076A1 (en) 2005-03-31
WO2005029223A2 (en) 2005-03-31
WO2005029223A3 (en) 2006-02-23

Similar Documents

Publication Publication Date Title
JP4664398B2 (ja) インクリメンタルなコード署名の方法及び装置
US7055029B2 (en) Cryptographic system enabling ownership of a secure process
US20050198645A1 (en) Run-time call stack verification
KR20030082485A (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색
JP2008537224A (ja) 安全な起動方法およびシステム
KR20030082484A (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색
US8010804B2 (en) Method to protect secrets against encrypted section attack
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
KR20130008939A (ko) 휴대 단말기에서 단말 고유 정보의 복제를 방지하는 장치 및 방법
CN110837634B (zh) 基于硬件加密机的电子签章方法
KR20130114703A (ko) 보안 상태 전환을 관리하기 위한 방법 및 장치
US20060064593A1 (en) Technique for preventing illegal invocation of software programs
KR100734600B1 (ko) 변조방지 하드웨어에 기반한 자가 무결성 검증 기법을이용한 시스템 인증 및 보안성 강화 방법
Devanbu et al. Research directions for automated software verification: Using trusted hardware
Emanuel Tamper free deployment and execution of software using TPM
Ahsan HARDWARE ASSITED SECURITY PLATFORM
JT Trusted Computing and the Trusted Platform Module: What All the Fuss Is About Bill Hewitt Due 4/13/06

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091120

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100219

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100604

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100906

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101122

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: 20101213

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110106

R150 Certificate of patent or registration of utility model

Ref document number: 4664398

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

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

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

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

LAPS Cancellation because of no payment of annual fees