JP2006504206A - 再生可能な不正防止機能セキュリティシステムのための自動生成された暗号関数 - Google Patents
再生可能な不正防止機能セキュリティシステムのための自動生成された暗号関数 Download PDFInfo
- Publication number
- JP2006504206A JP2006504206A JP2004553048A JP2004553048A JP2006504206A JP 2006504206 A JP2006504206 A JP 2006504206A JP 2004553048 A JP2004553048 A JP 2004553048A JP 2004553048 A JP2004553048 A JP 2004553048A JP 2006504206 A JP2006504206 A JP 2006504206A
- Authority
- JP
- Japan
- Prior art keywords
- mobile agent
- agent
- unique
- computer program
- program instructions
- 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.)
- Withdrawn
Links
- 230000006870 function Effects 0.000 title claims description 92
- 230000002265 prevention Effects 0.000 title description 3
- 230000003068 static effect Effects 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 44
- 238000004590 computer program Methods 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- 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
- G06F21/54—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 by adding security routines or objects to 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6272—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
安全な暗号関数が、すべてのモバイルエージェントと同一である静的なプログラムコードと、各関数に対して異なる動的なプログラムコードとを含むテンプレートから生成される。動的なコードは、関数によって処理されるメッセージを暗号かするために用いられるストリーム暗号アルゴリズムをインプリメントする。動的なコードはまた、各メッセージに添付されるメッセージダイジェストを生成し得る。メッセージダイジェストは、動的なコード、およびオプション的に、メッセージに適用されるハッシュ関数であり得る。によって、各関数は、固定終了タイム、関数が送信し得る最大数のメッセージ等によって制限されたライフタイムが割り当てられ得る。暗号アルゴリズムによって処理された任意の受信されたメッセージは、そのライフタイムの満了後、無視される。
Description
本発明は、コンピュータシステムに用いられる暗号関数に関し、詳細には、一意の再生可能な暗号関数をインプリメントするために用いられる自動的に生成されたプログラム命令に関する。
(発明の背景)
暗号関数は、コンピュータシステム、さらに一般的な消費者向けアプリケーションにおいて多くの用途を有する。DVDといった媒体を介して配信されるプログラムコンテンツは、無認可の複製を防ぐために暗号化される。暗号関数はまた、コンピュータシステムのユーザを証明するために用いられ、ログファイルおよび動作記録といったコンピュータ上に格納されているデータを暗号化して、格納されているデータの整合性を確実にする。これらの関数はまた、モバイルエージェントとともに用いられ得、エージェントとそのプリンシパルとの間で専用通信チャンネルを確立する。すべてのソフトウェア不正防止機能(tamper resistance)技術は、保護されているコンテンツにアクセスし、かつ、十分な時間を有するアタッカによって解読されるので、保護されているコンテンツに繰り返しアクセスするために必要とされる労力を増やす、再生可能な暗号関数を提供することが所望される。本発明は、モバイルエージェントの文脈において記載されるが、それが、暗号化されたデータの安全を高めるために上述される任意のコンテンツとともに、および任意のシステムにおいて用いられ得ることが考えられる。
暗号関数は、コンピュータシステム、さらに一般的な消費者向けアプリケーションにおいて多くの用途を有する。DVDといった媒体を介して配信されるプログラムコンテンツは、無認可の複製を防ぐために暗号化される。暗号関数はまた、コンピュータシステムのユーザを証明するために用いられ、ログファイルおよび動作記録といったコンピュータ上に格納されているデータを暗号化して、格納されているデータの整合性を確実にする。これらの関数はまた、モバイルエージェントとともに用いられ得、エージェントとそのプリンシパルとの間で専用通信チャンネルを確立する。すべてのソフトウェア不正防止機能(tamper resistance)技術は、保護されているコンテンツにアクセスし、かつ、十分な時間を有するアタッカによって解読されるので、保護されているコンテンツに繰り返しアクセスするために必要とされる労力を増やす、再生可能な暗号関数を提供することが所望される。本発明は、モバイルエージェントの文脈において記載されるが、それが、暗号化されたデータの安全を高めるために上述される任意のコンテンツとともに、および任意のシステムにおいて用いられ得ることが考えられる。
モバイルエージェントは、ワイドエリアネットワーク、またはローカルエリアネットワークといったネットワークを移動するオブジェクトであり、(そのオリジネータ以外の)ホストコンピュータにおいて動作する。エージェントのライフタイムにおいて2つのタイプのコンピュータサーバがある。プロデューサーおよびコンシューマである。エージェットのプロデューサーはまた、プリンシパルとして知られ、エージェントを作成し、かつ、配信する。コンシューマは、あるタスクを行うエージェントを実行させるサーバである。
ショッピングモバイルエージェントは、例えば、多くの異なるタイプのコンピュータ上で実行され得、それから、いくつかのインターネットウェブサイトページのうちから、より低価格なプロダクトを発見するために用いられ得るJAVA(登録商標)といったプログラム言語に書き込まれ得る。エージェントを作成するとき、オーナーは、先ず、彼がどのタスク(例えば、ショッピング)をエージェントが完遂することを所望するかを決定しなければならない。次に、オーナーは、エージェントにどのようにタスクを完遂するかを命令しなければならない。タスクは、サーバ間の移動の仕方および結果の返し方を含む。これらのステップが完了すると、エージェントはネットワーク上に送信される準備ができている。モバイルエージェントは、それから、ネットワークおけるホスト(ホストコンピュータ)間を自主的に動き、モバイルエージェントのプリンシパルの目的を達成するためにホスト上でそのプログラムコードを実行する。
モバイルエージェントはまた、「自覚」(awareness)、つまり擬似人工知能を有し、プリンシパルから自主的して行動し得る。モバイルエージェントは、例えば、任務を完了するために新しいホストを見つけ出すためにネットワークトポロジーを介してそれ自身の移動パスを選ぶ。モバイルエージェントは、そのソースコンピュータシステム、または他のモバイルエージェントと通信し得、情報を交換および共有する。モバイルエージェントはまた、そのモバイルエージョンを補助する他のモバイルエージェント、つまりボット「bot」を生み出す。ボットは、コンピュータ上に常駐し、クエリーを他のコンピュータに送信するプログラム、または命令のセットである。
他方では、モバイルエージェントは、そのモバイルエージェントが移動および常駐するホストコンピュータ上で実行されるコマンド、または命令を含む。
エージェントオーナーのセキュリティー上の懸念は、プライバシーおよびエージェントのデータ、コードおよび実行の整合性である。悪質なコンシューマホストは、さまざまな理由のために、エージェントのプライベートデータ、またはコードにアクセスし、変更しようとする。エージェントに対してされる多数の異なるタイプのアタックは、悪質なホストを深刻な問題にする。最終的に、決意の固いアタッカは、モバイルエージョンを損なう。唯一の疑問は、アタッカが成功するのにどれだけの時間かかるである。
モバイルエージェントの安全性を増加させる1つの方法は、改ざん防止(tamper proof)ハードウェアを用いることである。しかしながら、このハードウェアは、さまざまなリソースおよび要求価格のために、すべての人、またはすべての場所に対して利用可能でないかもしれない。さらに、ハードウェアはまた、損なわれ得、簡単に再生され得ない。モバイルエージェントの安全性を高めるために、ソフトウェア保護は依然所望され、多くの状況において、唯一の利用可能な方法であり得る。
他の安全上の懸念は、実行の拒否である。この問題は、コンシューマがエージェントを実行することを拒絶するとき、起こる。例えば、コンシューマのホストコンピュータショッピングにエージェントが到達することを考える。エージェントは、先ず、ショッピングエージェントが到達し、かつ、正しい目的ホスト上で動作しているかどうかを決定しなければならない。エージェントは、ショッピングエージェントが正しいコンシューマに到達したと認可した後、そのエージェントは、一般的に、コンシューマからのデータの収集および分析であるショッピングエージェントのタスクの実行をスタートする。タスクが完了すると、エージェントは、ショッピングエージェントの次の目的地を決定する。エージェントは、別のコンシューマに移動し得、または結果をショッピングエージェントのプリンシパルに返し、終了し得る。
エージェントの実行の前、かつ、エージェントの実行中に、悪質なコンシューマは、エージェントの実行を妨げ得る。悪質なホストは、それから、エージェントを分析し得、エージェントによって取得された結果をディスライク(dislike)し得る。例えば、ショッピングエージェントが収集するデータに基づいてグッズをオーダーする任務を有するショッピングエージェントは、悪質なホストに送信される。エージェントは、より良い価格を有する別のホストを発見したので、ホストは、エージェントの実行を終了し得る。実行が停止すると、悪質なホストは、自分自身の利益のために、エージェントの結果を改変し得、そのホストは、エージェントのふりをする。このことは、悪質なホストが不当な利得を得るために、偽の情報を返すことを可能にする。
悪質なホストはまた、エージェントを分析し、損なおうとし得る。悪質なホストは、エージェントのプログラムコードを分析し、またはリバース・エンジニアリングすることによって損なうことを欲するので、悪質なホストは単純に、エージェントの実行を拒絶、または遅延し得る。悪質なエージェントの目的は、悪質なホストに利益を与える態様で、エージェントを改変し、それから、エージェントの実行を再スタートさせることである。悪質なホストは、名前、クレディットカード番号および住所といった個人的なデータを含み得るエージェントから機密情報を抽出し得る。
モバイルエージェントディベロッパおよびプリンシパルは、有用なモバイルエージェントを開発することに集中するので、またデベロッパは、プリンシパルがエージェントから通信を受け取ることをストップするために、常に実行の拒絶を検知し得ると思われるので、モバイルエージェントディベロッパおよびプリンシパルは、最初はこれらの特定のタイプのアタックを無視する。また、エージェントのコンシューマホストが、エージェントの実行の拒絶から何も得られないと間違って思われる。しかし、上述されるように、コンシューマホストは、実行の拒絶に対する多くの理由を有し、エージェントがより一般的になると、この問題はより深刻になる。
本発明は、関数の各インスタンスに対して異なるカスタマイズされた命令のセットを有する関数を動的にプログラミングすることによって暗号関数を生成する方法において例示される。カスタマイズされた命令は、選択された関数およびオペランドから作成され、新しい動的なコンピュータプログラム命令のセットは、それから、一意の暗号関数として提供される。
本発明の1つの局面に従って、カスタマイズされた命令は、暗号アルゴリズムをインプリメントする。
本発明の別の局面に従って、暗号アルゴリズムは、ストリーム暗号アルゴリズムである。
本発明のさらなる別の局面に従って、一意の識別子は、関数に割り当てられる。
本発明の別の局面に従って、一意の暗号関数は、モバイルエージェントにインプリメントされる。
本発明のさらなる別の局面に従って、エージェントモニタリングシステム(AMS)は、一意のモバイルエージェントとともに用いられる。AMSは、一意のモバイルエージェントのステータスおよびライフタイムをモニタする。エージェントは、AMSに登録され、一意のモバイルエージェント情報はデータベースに格納される。AMSは、エージェントとの通信プロトコルを確立し、これによって、AMSとエージェントとの間で情報交換を可能にする。AMSはまた、現在のエージェントのライフタイムの終わりに新しいエージェントを配給し、現在のエージェントのタスクを完了させ得、または一定期間にわたり複数のエージェントを配給し、追跡して、エージェントのライフタイムが満了するとき、同時に動作しているエージェントのそれぞれを置換し得る。
本発明の上述の一般的な記載および以下の詳細な記載は例示的であり、それらはともに限定的なものではないことが理解されるべきである。
本発明は、添付の図面と関連して読まれるとき、下記の詳細な説明から最も理解される。一般的な実施に従って、図面のさまざまな特徴は、縮尺拡大しないことが強調される。これに反して、さまざまな特徴の大きさは、明確化のために任意的に拡大、または減少される。図面に含まれるのは、以下の図である。
図1は、いくつかのホストのコンシューマコンピュータを介するモバイルエージェントのライフサイクルおよび移動を示すネットワークのブロック図である。モバイルエージェントは、ソースコンピュータ110上で実行されるプリンシパルプログラム112によって作成される。プリンシパルは、通常、人であるが、プリンシパルプログラム112として示され、このプログラムは、モバイルエージェントを開始し、モバイルエージェントと通信する人によって用いられる。
モバイルエージェントを生成するために、プリンシパルプログラム112は、エージェントテンプレート114を用いる。この例において、モバイルエージェントA0116は、エージェントテンプレート114から生成される第1のモバイルエージェントである。モバイルエージェントA0116は、それから、ネットワーク通信パス120を介して第1のコンシューマホスト_1 130に送信される。コンシューマホスト_1 130に到着した後、モバイルエージェントA0116は、ホスト_1上で動作し、ネットワークパス122を介してプリンシパル112と通信する。ホスト_1 130上で、そのタスクを完了すると、モバイルエージェントA0116は、ネットワークパス124を介してホスト_2 140に移動する。ホスト_2 140に到着した後、モバイルエージェントA0116は、もう一度動作し、ネットワークパス126を介してプリンシパル122と通信する。エージェントがそれ自身を終了するとき、エージェントは先ず、プリンシパル112に、エージェントが収集したデータをアップロードし、プリンシパルが、タスクを完了するための新しいエージェントを生成し得るようにエージェントが終了していることをプリンシパルに報告することが所望され得る。
モバイルエージェントA0116はまた、制限されたライフタイムを割り当てられる。モバイルエージェントA0116は、ライフタイムが満了しない限り、および破壊されない限りは、任務を継続する。本発明の例示的実施形態において、エージェントのライフタイムは、静的なプログラムコードによって決定され得る。この場合には、各モバイルエージェントは、同一の制限されたライフタイムを有する。あるいは、ライフタイムは、動的なプログラムコードによって決定され得、各エージェントは、所定の範囲内から選択されたランダムなライフタイムを割り与えられ得る。ライフタイムは、時間量であり得、またはエージェントがアクセスし得るホスト数であり得る。エージェントがそのライフタイムを超えるとき、エージェントは、それ自身を終了し得、またはプリンシパル122によって終了され得る。
この例において、コンシューマホスト_i150で、モバイルエージェントA0116は、その所定のライフタイムを超え、それ自身を終了させる。プリンシパル112は、このことに気付き、同一のエージェントのテンプレート144にまた基づくが、エージェント166とは異なる動的なコードを有する、新しいモバイルエージェントA1162を作成する。プリンシパル112は、ネットワークパス134を介して、この新しいモバイルエージェントA1162をホスト_i 160に送信して、モバイルエージェントのタスクを継続する。エージェントA1162は、そのライフタイムが満了するまでプリンシパル112の任務を継続する。エージェントA1162のライフタイムが、任務完了の前に満了するとき、プリンシパル112は、個々に他のエージェント(A2、A3等)を作成して、タスクを終了させる。各エージェントは、異なる動的なコードを有する。
図3は、モバイルエージェントが、ホストをどのようにトラベル、または移動するかを示すネットワークのブロック図である。モバイルエージェントA0116は、プリンシパル112によって作成され、第1のホスト_1 130に送られる。ここで、エージェントは、ホスト上でコードを実行し、いくつかのデータを収集し得る。このデータは、モバイルエージェントA0116に格納され得る。このデータはまた、プリンシパル112、または下記に記載されるエージェントモニタリングシステム(AMS)に送り返され得る。AMSは、モバイルエージェントのステータスをモニタするためにデータベースを用い得るソフトウェアプログラムである。AMS、またはプリンシパル112は、点線矢印121で示されるように、ホスト_2 140をバイパスして、モバイルエージェントA0116に直ちにホスト_i 150に向かうように命令する。あるいは、エージェントは、自主的に動作し、順にそれぞれのホスト130、140、150、160にアクセスし得る。
モバイルエージェントA0116が自主モードで動作するとき、エージェントは、それ自身に対して、収集したデータに基づいて、ホスト_2 140向かうか、または、点線矢印121で示されるように、ホスト_2 140をバイパスして、直ちにホスト_i 150に跳び得る。エージェントが自主モードでないとき、エージェントは、プリンシパル110、またはAMSから命令を待ち得る。
十分に動作していないネットワークはまた、その関数を実行するエージェントの能力を妨げ得る。この例示的な実施形態において、プリンシパル112、またはAMSは、ネットワークの性能が向上するためにさらなる時間待機すべきか、または、割り当てられた任務を完了させるためにさらなるモバイルエージェントをリリースすべきか否かを決定する。AMS、またはプリンシンパル112は、モバイルエージェントが位置しているホストコンシューマへ「ピン(ping)」し得、ネットワークの伝播遅延があるか否かを決定する。「ピン」は、一度、(または繰り返し)目的地にICMP(インターネット制御メッセージプロトコル)エコー要求を送信し、返答を待つことで目的地への到達可能性をテストするために用いられるプログラムである。
図2は、新しい一意のエージェントのテンプレートを構成し得るコンポーネントを示すモデルである。エージェントテンプレートは、2つの部分を有する。(1)静的なコードおよびデータ212と(2)動的なコードおよびデータ214である。静的なコードおよびデータ212は、修正されていない状態で、モバイルエージェント222の新しいプログラムコードに直接的に配置される。動的なコードおよびデータ214は、先ず、新しい動的なコード224を生成するためにコード生成器218にパスされる。この新しい動的なコード224はまた、新しい一意のエージェント222の一部になる。この例示的な実施形態において、コード生成器218はまた、各一意のエージェントに対して異なる一意の識別子210を生成し得る。
本発明の例示的な実施形態において、一意の識別子は、エージェントに割り当たれられた動的なコードに関連付けられる。一意の識別子は、その一意の識別子がプリンシパルに送信する各メッセージを有するエージェントによって送信される。このメッセージに基づいて、プリンシパルは、エージェントによって用いられる動的なコードを理解し、エージェントから受信されたメッセージを適切にデコード、または確認し得る。
先述されるように、完全自動コード生成は、本質的に難しく、この例示的な実施形態において、この問題への解決は、暗号関数だけを自動的に生成することである。数学関数は、任意のコードを生成するより、容易に自動的に生成されるのでこれは好都合である。暗号関数は、それらの関数がエージェントのプライベートデータを暗号化および復号化をするために用いられる点で安全性にとって重要である。
本発明の例示的な実施形態の一意のモバイルエージェントは、暗号関数としてストリーム暗号を用いる。2つ以上のストリーム暗号関数の組み合わせが、組み合わせられた暗号のグループのうちの一番強い暗号と少なくとも安全であるので、ストリーム暗号は、ソフトウェアの暗号化に対して実行可能である。このようにして、ストリーム暗号を形成するために、存在する暗号、例えば、DESといったブロック暗号を別の暗号と組み合わせることは、DESと少なくとも強い暗号化をもたらす。
ストリーム暗号のこの基本的な概念は、キーストリーム(Z=z1、z2)を用いて、ランダムコード生成器216において、動的なコードおよびデータ214を暗号化することである。「現在の」(i番目)のキーZ1が、前回のキーZi−1および「現在の」の動的なコードおよびデータ214に基づいて生成される。等式(1)が以下に示される。
xi―1:xi=fi(zi−1,xi―1) (1)
新しい動的なコード220y1が、「現在の」i番目のキーziによって生成される。暗号関数が等式(2)において示される。
新しい動的なコード220y1が、「現在の」i番目のキーziによって生成される。暗号関数が等式(2)において示される。
yi=ezi(xi) (2)
暗号化中に用いられる逆関数を計算することは、復号化を実行する。動的なコードおよびデータ214は、それから、i番目のキーziおよび等式(3)に示されるような暗号の逆関数によって再生成される。
暗号化中に用いられる逆関数を計算することは、復号化を実行する。動的なコードおよびデータ214は、それから、i番目のキーziおよび等式(3)に示されるような暗号の逆関数によって再生成される。
xi=dzi(yi) (3)
複数関数のストリーム暗号の自動的な構築を容易にするために、本発明の例示的な実施形態は、コード生成エンジン218の基準としてストリーム暗号コードテンプレートを利用する。新しいコードが、テンプレートの構造に基づいて生成され、この例示的なインプリメンテーションにおいて、テンプレートはJava(登録商標)に書き込まれ、かつ、2つの部分から成る。静的な部分および動的な部分である。静的な部分は、すべての生成された例において現れるJava(登録商標)コードから成る。動的な部分は、静的な部分から分析され、タグのセットを用いて識別される。例示的な実施形態におけるタグは、ギュメ(angle bracket)「<」と「>」である。タグは、それから、新たに動的に生成されたコードと置換される。従って、テンプレートは、新たなコードを自動的に作るために、我々のコード生成エンジンによって用いられるデータの一部である。
複数関数のストリーム暗号の自動的な構築を容易にするために、本発明の例示的な実施形態は、コード生成エンジン218の基準としてストリーム暗号コードテンプレートを利用する。新しいコードが、テンプレートの構造に基づいて生成され、この例示的なインプリメンテーションにおいて、テンプレートはJava(登録商標)に書き込まれ、かつ、2つの部分から成る。静的な部分および動的な部分である。静的な部分は、すべての生成された例において現れるJava(登録商標)コードから成る。動的な部分は、静的な部分から分析され、タグのセットを用いて識別される。例示的な実施形態におけるタグは、ギュメ(angle bracket)「<」と「>」である。タグは、それから、新たに動的に生成されたコードと置換される。従って、テンプレートは、新たなコードを自動的に作るために、我々のコード生成エンジンによって用いられるデータの一部である。
ストリーム暗号テンプレートの一部は、表1に擬似コードとして示されている。このテンプレートにおいて、内部状態(S―Box)、暗号化および復号化を計算する関数は、タグによって表される。関数は、各コードインスタンスに対してランダムに生成される。
テンプレートパーサは、すべてのファイルを見つけ出し、抽出することによってテンプレートファイルを分析する。テンプレートパーサはまた、すべてのタグに対して対応するタグコード生成器のクラスを呼び出す。次に、タグコード生成器は、タグの分類に基づいて各タグに対してコードを動的に生成する。このシステムの特性は、生成アルゴリズムが簡単に置換され得、または修正され得ることである。ライタは、タグを新しいコードと置換し、それから、その結果を新しいファイルに書き込むことを担う。
この例示的な実施形態において、新たな動的なコードの各インスタンスは、そのコードを含むエージェントと、他のエージェントとを区別する新しい一意の名前を割り当てられる。名前は、エージェントの管理および確認のために用いられる。名前は、エージェントのプリンシパルにとってのみ重要であるので、名前がエージェントのプリンシパルから見て一意であれば十分である。名前はコード生成器218によって選ばれ、操作される。
ストリーム暗号アルゴリズムは、本発明の一実施形態において利用される。このアルゴリズムは、キーストリームルーチンに用いられるべき動作(関数)の数、値nを先ずランダムに決定する。それからn個の関数が、関数Fのセットからランダムに選択される。関数のセットは、例えば、スワップ、排他的論理和(XOR)およびスクエアサム(squaresum)といった関数を含み得る。効率を向上するために、これらの関数は、これらの関数のオペランドの数によってグループ化される。オペランドは、各動作(関数)に対して選択される。このオペランドは、内部状態、前回の動的なコードデータ214、または前回のキーから選択され得る。より良い効率のために、内部状態、前回の動的なコードおよびデータ214、およびキーは、固定フォーマットでアレイに格納される。新たなコードが、各動的なコードおよびデータのセットに対して、動作およびオペランドを選択し、それから、生成されたソースコードをテンプレートへ置き換えることによって生成される。
ランダムに選択された暗号ルーチンが、復号化可能であることを確実にするために、暗号コードを生成するために用いられる関数Gのセットにおける各関数Fは、逆関数のセットG−1における逆関数F−1を有する。ランダムに生成されたストリーム暗号の暗号化復号化ルーチンを生成するために、上記の段落のステップが後に続が、セットG−1は、セットGの代わりに用いられる。ランダムに選択された暗号ルーチンに関して逆の順序で、適切な逆関数を適用することによって復号化アルゴリズムを構築する最後のステップ(5)が加えられる。
本発明の代替の実施形態において、動的なコードおよびデータ220は、ハッシュアルゴリズム方法を介して、確保され得る。この方法は、動的なコードおよびデータ220の圧縮表現(condensed representation)を生成し、オプション的に、メッセージダイジェストを形成するためにメッセージを生成する。モバイルエージェントの情報コンテンツは、それから、例えば、情報に対する署名を生成、および確認する署名アルゴリズムに提供され得る。メッセージダイジェストは、通常、メッセージよりはるかにサイズが小さいので、メッセージを暗号化するより、むしろダイジェストを有するメッセージに署名することは、しばしば、処理の効率を向上させる。同一のハッシュアルゴリズムは、デジタル署名のクリエイタによって用いられると同様に、デジタル署名のベリファイヤ(verifier)によって用いられ得る。アルゴリズムへの変更、または送信中のメッセージをハッシュ(hash)するために用いられるアルゴリズムは、異なるメッセージダイジェストを生成し、署名が確認しそこなうことを引き起こす。
所定のメッセージダイジェストに対応するメッセージを計算上、見つけ出す、または、同一のメッセージダイジェストを生成する2つの異なるメッセージを見つけ出すことは不可能であるので、このタイプの承認は、安全であると考えられる。送信中のメッセージへの変更は、とても高い確率で、異なるメッセージダイジェストの結果を招き、署名が確認し損なうことになる。
モバイルエージェント116のステータスおよび進行を追跡するプリンシパル112の代わりに、エージェントモニタリングシステム(AMS)は、エージェントをモニタするために利用され得る。AMSは、プリンシパル110と同一のコンピュータ上で、または、ネットワークを通じてエージェントと通信し得る他の任意のコンピュータ上で動作しているアプリケーションであり得る。
一意のモバイルエージェントがリリースされる前に、その一意のモバイルエージェントは、AMSに登録される。モバイルエージェントが、グローバルな情報ネットワーク上でホストからホストへ移動する際に、AMSは、そのモバイルエージェントのライフタイムの間モバイルエージェントを追跡する。一意のモバイルエージェントは、ある地点で、AMSとデータ交換を確立し得る。これらのデータ交換は、例えば、アクセスするためのさらなる新しいホストをエージェントに通知し、エージェントが既知の悪質なホストに移動することを禁止し、アクセスされたホストに報告、または、AMSにエージェントの検索結果の一部を送信するといった情報のダウンロード、またアップロードであり得る。
プリンシパル、またはAMSは、ホストが悪質あるか否かを決定するために検出技術を利用し得る。例示的な悪質なホスト検出アルゴリズムは、以下を含む。(1)AMS(またはプリンシパル110)が、モバイルエージェントが新たなホストに移動した後、そのモバイルエージェントからの到着コンホメーション通信を予測する特定された時間範囲を特定することと、通信が、この時間範囲で受信されないとき、悪意があるとホストとして印をつけること。(2)一意のモバイルエージェントが、AMS、またはプリンシパルとの通信を早まって停止したことを検出すること。(3)AMS、またはプリンシパルが、一意のモバイルエージェントから誤って暗号化されたメッセージが受信されたことを決定すること。
動的に生成された暗号化コードおよび制限されたライフタイムの関数は、動的に生成されたワンタイムパスワードを用いて組み合わせられ得る。ワンタイムパスワードの概念は、L.Lamport氏による、「Password Authentication with Insecure Commnication」,(Communications of the ACM,vol.24,No.11,pp770―772,1981)
と題目された論文に記載される。ログインidおよびパスワードを入手することは、ネットワーク接続の傍受に基づくアタックに対抗するようにデザインされる。ワンタイムパスワードメカニズムを用いるために、プリンシパルは、パスワードを先ず選択し、認証サーバにそれを格納する。サーバは、(適度に大きな)数字nを選択し、再帰的にパスワードをn回ハッシュ(つまり、あるハッシュ関数に対するhashn(パスワードを計算)し、エージェントの一意の識別子と、数字nとともに、サーバ上のデータベースにその結果を格納する。数字nは、エージェントが用い得るワンタイムパスワードの数(つまり、エージェントのライフタイムが満了する前に、そのエージェントが送信し得るメッセージの数)を表す。各使用ごとに、適用されるハッシュ関数が1つ減り、それぞれ異なるパスワードを生成する。エージェントが、n個以上のメッセージを送信するとき、プリンシパルは、エージェントのライフタイムが満了したとき、それらを無視する。
と題目された論文に記載される。ログインidおよびパスワードを入手することは、ネットワーク接続の傍受に基づくアタックに対抗するようにデザインされる。ワンタイムパスワードメカニズムを用いるために、プリンシパルは、パスワードを先ず選択し、認証サーバにそれを格納する。サーバは、(適度に大きな)数字nを選択し、再帰的にパスワードをn回ハッシュ(つまり、あるハッシュ関数に対するhashn(パスワードを計算)し、エージェントの一意の識別子と、数字nとともに、サーバ上のデータベースにその結果を格納する。数字nは、エージェントが用い得るワンタイムパスワードの数(つまり、エージェントのライフタイムが満了する前に、そのエージェントが送信し得るメッセージの数)を表す。各使用ごとに、適用されるハッシュ関数が1つ減り、それぞれ異なるパスワードを生成する。エージェントが、n個以上のメッセージを送信するとき、プリンシパルは、エージェントのライフタイムが満了したとき、それらを無視する。
ワンタイムパスワードのための動的なコード生成はまた、パスワードを生成するためにエージェントによって用いられるハッシュ関数を生成するために適用され得る。この例において、新たなハッシュ関数を動的に生成するよりむしろ、おそらくは、選択プロセスにおいて擬似乱数生成器を用いて既知の関数のグループからハッシュ関数を動的に選択することが所望される。動的なコード生成アルゴリズムはまた、ハッシュされたパスワードを生成するために用いられる初期のパスワードを選択するために適用され得る。この例におけるパスワードは、パスワードとして必ずしも用いられないが、そのパスワードが、プリンシパル112、またはAMSに送信される前に、データを暗号化するために暗号鍵として用いられ得る。暗号化されたデータを受け取ると、プリンシパル、またはAMSは、一意のエージェン識別子に基づいて現在のキーを探索(look―up)し、それから、データを暗号化するために用いられる関数に対応する復号関数を、メッセージをデコードするために適用し得る。
安全なモバイルエージェントは、安全な情報収集の多くのエリアにおいて大いなる可能性を有する。それらは、情報ネットワーク中を検索するスパイダーとして利用され得るか、または、安全が確保されていないネットワーク中のデータベースに安全にアクセスする内蔵されたODBC(Open Database Connectivity)を有し得る。モバイルエージェントはまた、移動計画、インターネットネットワークのモニタを行い、かつ、企業環境においてコンピュータ内の不法、無資格、または未登録のソフトウェアの複製を見つけ出すために利用され得る。
ある特定の実施形態および例を参照して上記されてきたが、本発明は、示される詳細によって限定されることを意図としない。むしろ、本発明の精神を逸脱することなく請求項の同等物の範囲内の詳細においてさまざまな変形がなされ得る。例えば、上述のように、暗号関数の動的なコード生成は、モバイルエージェント通信以外の用途おいて用いられ得る。パーソナルコンピュータに常駐する任意のアプリケーションは、アプリケーションの不正防止機能の解読を結果的に招くリバースエンジニアリングアタックを被りやすい。本発明の再生可能な不正防止機能の暗号関数がこれらのアプリケーションに用いられるとき、アタッカは、関数が再生される度に関数を解読する必要がある。このことは、コードを解読しようとする人たちに対して、一段と多くの労力を招く結果になり、その人たちにアプリケーションが用いられるべき意図されるようにアプリケーショを用いることを促す。
例えば、動的に生成されたストリーム暗号が、一時的に格納され、例えば、TIVO(登録商標)またReplay TV(登録商標)といったパーソナルビデオデコーダを用いて再生されることを意味されるコンテンツを暗号化するために用いられるとき。この用途において、動的なストリーム暗号をデコードし得るアプリケーションは、コンテンツとともに送信され得、コンテンツをデコードし、かつ、表示するビュアによって用いられ得る。ビュアに送信される次に暗号化されたコンテンツは、異なる動的に生成された暗号を用いるので、コンピュータハッカーは、ストリーム暗号を解読することから大きな利益を得ない。
さらに、再生可能な生成された暗号関数は、上述されるように、また、個々のコンピュータ上でユーザのIDを確認するために用いられ得る。暗号関数は、連続して再生されているので、アタッカは、保護されているものに対して連続したアクセスを有しない。再生可能な暗号関数はまた、ログファイル、または動作記録の整合性を確実にするために用いられ、データベースの悪質なユーザが、異なる時間、または異なる場所でさられたデータの不法な改変を隠すことを難しくする。
Claims (35)
- 暗号関数を生成する方法であって、
少なくとも1つの動的な命令のセットに対する少なくとも1つの静的な命令およびインジケータのセットを有する暗号関数テンプレートを提供するステップと、
該少なくとも1つの動的な命令のセットに対してコンピュータプログラム命令を動的に生成するステップであって、該動的に生成された命令は、該暗号関数に一意である、ステップと、
該一意の暗号関数を形成するために、該少なくとも1つの動的な命令のセットに対する該インジケータを該動的に生成されたコンピュータプログラム命令と置換するステップと
を包含する、方法。 - 前記一意の暗号関数に一意の識別子を割り当てるステップをさらに包含する、請求項1に記載の方法。
- コンピュータプログラム命令を動的に生成するステップは、所定の関数のセットから複数の関数を選択するステップを包含し、ストリーム暗号アルゴリズムは、データを暗号化するために該選択された関数を順次適用する、請求項2に記載の方法。
- コンピュータプログラム命令を動的に生成するステップは、前記一意の暗号関数を用いて処理された少なくとも1つのメッセージとともに提供されるメッセージダイジェストを生成するコンピュータプログラム命令を生成することを包含する、請求項1に記載の方法。
- メッセージダイジェストを生成するコンピュータプログラム命令を生成するステップは、前記メッセージダイジェストを生成するために、少なくとも前記動的に生成されたコードにハッシュ関数を適用するコンピュータプログラム命令を生成するステップを包含する、請求項4に記載の方法。
- 前記ハッシュ関数は、ストリーム暗号アルゴリズムであり、少なくとも前記動的に生成されたコードに前記ハッシュ関数を適用するコンピュータプログラム命令を生成するステップは、所定の関数のセットから複数の関数を選択するステップを包含し、該ストリーム暗号アルゴリズムは、該ハッシュ関数をインプリメントするために該選択された関数を順次適用する、請求項5に記載の方法。
- 前記一意の暗号関数に制限されたライフタイムを割り当てるステップをさらに包含する、請求項1に記載の方法。
- 前記一意の暗号関数に制限されたライフタイムを割り当てるステップは、該エージェントに所定の終了タイムを割り当てる、請求項7に記載の方法。
- 前記一意の暗号関数に制限されたライフタイムを割り当てるステップは、該関数を用いて処理され得る最大数のメッセージを割り当てる、請求項7に記載の方法。
- 一意のモバイルエージェントを生成する方法であって、
少なくとも1つの動的な命令のセットに対する少なくとも1つの静的な命令およびインジケータのセットを有するモバイルエージェントテンプレートを提供するステップと、
該少なくとも1つの動的な命令のセットに対してコンピュータプログラム命令を動的に生成するステップであって、該動的に生成された命令は、該モバイルエージェントに一意である、ステップと、
該一意のモバイルエージェントを形成するために、該少なくとも1つの動的な命令のセットに対する該インジケータを該動的に生成されたコンピュータプログラム命令と置換するステップと
を包含する、方法。 - 前記モバイルエージェントに一意の識別子を割り当てるステップをさらに包含する、請求項10に記載の方法。
- 前記動的な命令のセットは、暗号アルゴリズムをインプリメントする、請求項10に記載の方法。
- 前記暗号アルゴリズムは、ストリーム暗号アルゴリズムであり、コンピュータプログラム命令を動的に生成するステップは、所定の関数のセットから複数の関数を選択するステップを包含し、該ストリーム暗号アルゴリズムは、データを暗号化するために該選択された関数を順次適用する、請求項12に記載の方法。
- コンピュータプログラム命令を動的に生成するステップは、前記一意の暗号関数を用いて送信され、処理された少なくとも1つのメッセージとともに提供されるメッセージダイジェストを生成するコンピュータプログラム命令を生成することを包含する、請求項10に記載の方法。
- 前記メッセージダイジェストを生成するコンピュータプログラム命令を生成するステップは、該メッセージダイジェストを生成するために少なくとも前記動的に生成されたコードにハッシュ関数を適用するコンピュータプログラム命令を生成するステップを包含する、請求項14に記載の方法。
- 前記ハッシュ関数は、ストリーム暗号アルゴリズムであり、少なくとも前記動的に生成されたコードに該ハッシュ関数を適用するコンピュータプログラム命令を生成するステップは、所定の関数のセットから複数の関数を選択するステップを包含し、該ストリーム暗号アルゴリズムは、該ハッシュ関数をインプリメントするために該選択された関数を順次適用する、請求項15に記載の方法。
- 前記一意のモバイルエージェントに制限されたライフタイムを割り当てるステップをさらに包含する、請求項10に記載の方法。
- 前記一意のモバイルエージェントに制限されたライフタイムを割り当てるステップは、該エージェントに所定の終了タイムを割り当てる、請求項17に記載の方法。
- 前記一意のモバイルエージェントに制限されたライフタイムを割り当てるステップは、前記一意のモバイルエージェントによって送信され得る最大数のメッセージを割り当てる、請求項17に記載の方法。
- 前記一意のモバイルエージェントに制限されたライフタイムを割り当てるステップは、前記一意のモバイルエージェントがアクセスし得る最大数のホストコンピュータを割り当てる、請求項17に記載の方法。
- 複数の一意のモバイルエージェントを生成する方法であって、
少なくとも動的な命令のセットに対して少なくとも1つの静的な命令およびインジケータのセットを有するモバイルエージェントテンプレートを提供するステップと、
該複数のモバイルエージェントのそれぞれに対して該少なくとも1つの動的な命令のセットに対する複数のそれぞれ異なるコンピュータプログラム命令のセットを動的に生成するステップと、
該複数の一意のモバイルエージェントを生成するために該少なくとも1つの動的な命令のセットに対する該インジケータを該動的に生成されたコンピュータプログラム命令のそれぞれと置換するステップと
を包含する、方法。 - 該複数の一意のモバイルエージェントのそれぞれにそれぞれ異なる識別子を割り当てるステップをさらに包含する、請求項21に記載の方法。
- 前記複数の動的な命令のセットの前記それぞれは、それぞれ異なる暗号アルゴリズムをインプリメントする、請求項21に記載の方法。
- 前記それぞれ異なる暗号アルゴリズムのそれぞれは、ストリーム暗号アルゴリズムであり、コンピュータプログラム命令を動的に生成するステップは、所定の関数のセットからそれぞれ異なる複数の関数を選択するステップを包含し、該ストリーム暗号アルゴリズムは、データを暗号化するために該選択された関数を順次適用する、請求項23に記載の方法。
- 各一意のモバイルエージェントに対する前記静的な命令のセットは、該一意のモバイルエージェントによって送信される少なくとも1つのメッセージに前記暗号アルゴリズムのそれぞれを適用する命令を包含する、請求項24に記載の方法。
- 各一意のモバイルエージェントに対する前記静的な命令のセットは、該一意のモバイルエージェントによって少なくとも1つのメッセージとともに送信されるメッセージダイジェストを生成するために該暗号アルゴリズムのそれぞれを適用する命令を包含する、請求項24に記載の方法。
- 該複数の一意のモバイルエージェントのそれぞれに、それぞれ異なる制限されたライフタイムを割り当てるステップをさらに包含する、請求項21に記載の方法。
- 潜在的に悪質なホストコンピュータを検出するためにネットワークにおけるコンシューマのホストコンピュータ間を移動するモバイルエージェントをモニタする方法であって、
該モバイルエージェントの制限されたライフタイムを割り当てるステップと、
エージェントモニタリングシステム(AMS)に該モバイルエージェントを登録するステップと、
該モバイルエージェントによってアクセスされる該ホストコンピュータの順序を決定するために該モバイルエージェントと該AMSとの間に通信を確立するステップと、
該AMSが、該モバイルエージェントの該制限されたライフタイムの間に、該モバイルエージェントと通信できないとき、該ネットワーク上で該エージェントが移動した該ホストコンピュータの最後の1つを潜在的に悪質であるとして識別するステップと
を包含する、方法。 - 前記モバイルエージェントに制限されたライフタイムを割り当てるステップは、該モバイルエージェントが該AMSに送信し得る最大数のメッセージを割り当てる、請求項28に記載の方法。
- 前記モバイルエージェントに制限されたライフタイムを割り当てるステップは、該モバイルエージェントがアクセスし得る最大数のホストを割り当てる、請求項28に記載の方法。
- 前記モバイルエージェントに制限されたライフタイムを割り当てるステップは、該モバイルエージェントが満了するタイムを割り当てる、請求項30に記載の方法。
- 潜在的に悪質なホストコンピュータを検出するためにネットワークにおけるコンシューマのホストコンピュータ間を移動するモバイルエージェントをモニタする方法であって、
該モバイルエージェントに対する一意の暗号アルゴリズムを特定するステップと、
エージェントモニタリングシステム(AMS)に該モバイルエージェントを登録するステップと、
該モバイルエージェントによってアクセスされる該ホストコンピュータの順序を決定するために該モバイルエージェントと該AMSとの間に通信を確立するステップと、
該AMSが、該モバイルエージェントから不正に暗号化されたメッセージを受け取るとき、該ネットワーク上で該エージェントが移動した該ホストコンピュータの最後の1つを潜在的に悪質であるとして識別するステップと
を包含する、方法。 - コンピュータ読み取り可能媒体であって、
コンピュータに暗号関数を生成する方法をインプリメントするコンピュータプログラム命令を含み、
該方法は、
少なくとも1つの動的な命令のセットに対する少なくとも1つの静的な命令およびインジケータのセットを有する暗号関数テンプレートを提供するステップと、
該少なくとも1つの動的な命令のセットに対してコンピュータプログラム命令を動的に生成するステップであって、該動的に生成された命令は、該暗号関数に一意である、ステップと、
該一意の暗号関数を形成するために、該少なくとも1つの動的な命令のセットに対する該インジケータを該動的に生成されたコンピュータプログラム命令と置換するステップと
を包含する、コンピュータ読み取り可能媒体。 - コンピュータ読み取り可能媒体であって、
コンピュータに複数の一意のモバイルエージェントを生成する方法をインプリメントするコンピュータプログラム命令を含み、
該方法は、
少なくとも1つの動的な命令のセットに対して少なくとも1つの静的な命令のセットおよびインジケータを有するモバイルエージェントテンプレートを提供するステップと、
該複数のモバイルエージェントのそれぞれに対して該少なくとも1つの動的な命令のセットに対する複数のそれぞれ異なるコンピュータプログラム命令のセットを動的に生成するステップと、
該複数の一意のモバイルエージェントを生成するために該少なくとも1つの動的な命令のセットに対するインジケータオを該それぞれ動的に生成されたコンピュータプログラム命令と置換するステップと
を包含する、コンピュータ読み取り可能媒体。 - コンピュータ読み取り可能媒体であって、
コンピュータに潜在的に悪質なホストコンピュータを検出するためにネットワークにおけるコンシューマのホストコンピュータ間を移動するモバイルエージェントをモニタする方法をインプリメントするコンピュータプログラム命令を含み、
るコンピュータプログラム命令を含み、
該方法は、
該モバイルエージェントに対する一意の暗号アルゴリズムを特定するステップと、
エージェントモニタリングシステム(AMS)に該モバイルエージェントを登録するステップと、
該モバイルエージェントによってアクセスされる該ホストコンピュータの順序を決定するために該モバイルエージェントと該AMSとの間に通信を確立するステップと、
該AMSが、該モバイルエージェントから不正に暗号化されたメッセージを受け取るとき、該ネットワーク上で該エージェントが移動した該ホストコンピュータの最後の1つを潜在的に悪質であるとして識別するステップと
を包含する、コンピュータ読み取り可能媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/282,648 US20040083373A1 (en) | 2002-10-28 | 2002-10-28 | Automatically generated cryptographic functions for renewable tamper resistant security systems |
PCT/IB2003/006485 WO2004046846A2 (en) | 2002-10-28 | 2003-10-27 | Automatically generated cryptographic functions for renewable tamper resistant security systems |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006504206A true JP2006504206A (ja) | 2006-02-02 |
Family
ID=32107417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004553048A Withdrawn JP2006504206A (ja) | 2002-10-28 | 2003-10-27 | 再生可能な不正防止機能セキュリティシステムのための自動生成された暗号関数 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20040083373A1 (ja) |
EP (1) | EP1556993A2 (ja) |
JP (1) | JP2006504206A (ja) |
KR (1) | KR20050084888A (ja) |
CN (1) | CN1708944A (ja) |
AU (1) | AU2003302059A1 (ja) |
WO (1) | WO2004046846A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011514091A (ja) * | 2008-03-05 | 2011-04-28 | イルデト・ビー・ヴイ | 暗号システム |
JP2011521366A (ja) * | 2008-05-23 | 2011-07-21 | イルデト カナダ コーポレーション | ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1559256B1 (en) * | 2002-11-06 | 2006-08-09 | International Business Machines Corporation | Providing a user device with a set of access codes |
WO2005104686A2 (en) * | 2004-04-14 | 2005-11-10 | Ipass Inc. | Dynamic executable |
US20050235284A1 (en) * | 2004-04-14 | 2005-10-20 | International Business Machines Corporation | Systems and methods for tracking processing unit usage |
US7770014B2 (en) * | 2004-04-30 | 2010-08-03 | Microsoft Corporation | Randomized signal transforms and their applications |
EP1646174A1 (en) * | 2004-10-07 | 2006-04-12 | Axalto SA | Method and apparatus for generating cryptographic sets of instructions automatically and code generation |
US8024568B2 (en) * | 2005-01-28 | 2011-09-20 | Citrix Systems, Inc. | Method and system for verification of an endpoint security scan |
US7567562B2 (en) * | 2005-03-02 | 2009-07-28 | Panasonic Corporation | Content based secure rendezvous chaotic routing system for ultra high speed mobile communications in ad hoc network environment |
GB0514492D0 (en) * | 2005-07-14 | 2005-08-17 | Ntnu Technology Transfer As | Secure media streaming |
US20070076869A1 (en) * | 2005-10-03 | 2007-04-05 | Microsoft Corporation | Digital goods representation based upon matrix invariants using non-negative matrix factorizations |
US9768963B2 (en) | 2005-12-09 | 2017-09-19 | Citicorp Credit Services, Inc. (Usa) | Methods and systems for secure user authentication |
IL173463A0 (en) * | 2006-01-31 | 2006-06-11 | Isaac J Labaton | Method for improving the restrictiveness on access to cellular phone applications |
KR100826516B1 (ko) * | 2006-03-23 | 2008-05-02 | 주식회사 패스허브 | 연상기억방식에 의한 암호처리 시스템 |
US20070257354A1 (en) * | 2006-03-31 | 2007-11-08 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Code installation decisions for improving aggregate functionality |
DE602006005912D1 (de) | 2006-05-26 | 2009-05-07 | Sap Ag | Verfahren und Vorrichtung zur sicheren Bearbeitung eines Befehls durch einen mobilen Agent in einem Netzwerk. |
ATE426967T1 (de) | 2006-05-26 | 2009-04-15 | Sap Ag | Verfahren und vorrichtung zum schutzen von daten eines mobilen agenten in einem netzwerksystem. |
US8117461B2 (en) * | 2006-09-13 | 2012-02-14 | Igt | Method of randomly and dynamically checking configuration integrity of a gaming system |
US8769637B2 (en) * | 2007-03-23 | 2014-07-01 | Sap Ag | Iterated password hash systems and methods for preserving password entropy |
US8504846B2 (en) * | 2007-05-25 | 2013-08-06 | Samsung Electronics Co., Ltd. | Method and apparatus for secure storing of private data on user devices in telecommunications networks |
CA2692083C (en) * | 2007-06-26 | 2017-06-06 | G3-Vision Limited | Authentication system and method |
US20090077371A1 (en) * | 2007-09-14 | 2009-03-19 | Valicore Technologies, Inc. | Systems and methods for a template-based encryption management system |
CN101576919B (zh) * | 2009-06-19 | 2011-12-07 | 用友软件股份有限公司 | 标识生成方法和装置 |
US8745747B2 (en) * | 2009-12-31 | 2014-06-03 | Fujitsu Limited | Data protecting device |
SE535998C2 (sv) * | 2011-08-15 | 2013-03-26 | Scantags Ab | System och metod för mobila taggar med dynamiskt innehåll |
KR101434860B1 (ko) * | 2013-08-16 | 2014-09-02 | (주)잉카엔트웍스 | 해시를 이용한 동적코드의 무결성 검증 방법 |
US9634951B1 (en) * | 2014-06-12 | 2017-04-25 | Tripwire, Inc. | Autonomous agent messaging |
US10313257B1 (en) * | 2014-06-12 | 2019-06-04 | Tripwire, Inc. | Agent message delivery fairness |
US9418326B1 (en) * | 2015-04-30 | 2016-08-16 | International Business Machines Corporation | Enhanced quick response codes |
CA3072266A1 (en) * | 2017-08-08 | 2019-02-14 | Crypto4A Technologies Inc. | Secure machine executable code deployment and execution method and system |
US11443048B2 (en) * | 2019-05-06 | 2022-09-13 | Microsoft Technology Licensing, Llc | Install-time procedural content generation for encrypted packages |
CN111552990A (zh) * | 2020-04-17 | 2020-08-18 | 贵州电网有限责任公司 | 一种基于电网大数据的安全防护方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3053106B2 (ja) * | 1990-11-02 | 2000-06-19 | 株式会社日立製作所 | 暗号化処理装置、及び復号化処理装置 |
US5721777A (en) * | 1994-12-29 | 1998-02-24 | Lucent Technologies Inc. | Escrow key management system for accessing encrypted data with portable cryptographic modules |
US5742686A (en) * | 1996-06-14 | 1998-04-21 | Finley; Phillip Scott | Device and method for dynamic encryption |
US5991399A (en) * | 1997-12-18 | 1999-11-23 | Intel Corporation | Method for securely distributing a conditional use private key to a trusted entity on a remote system |
US20010031050A1 (en) * | 2000-02-14 | 2001-10-18 | Lateca Computer Inc. N.V. | Key generator |
US6665709B1 (en) * | 2000-03-27 | 2003-12-16 | Securit-E-Doc, Inc. | Method, apparatus, and system for secure data transport |
US7581103B2 (en) * | 2001-06-13 | 2009-08-25 | Intertrust Technologies Corporation | Software self-checking systems and methods |
-
2002
- 2002-10-28 US US10/282,648 patent/US20040083373A1/en not_active Abandoned
-
2003
- 2003-10-27 KR KR1020057007405A patent/KR20050084888A/ko not_active Application Discontinuation
- 2003-10-27 EP EP03811468A patent/EP1556993A2/en not_active Ceased
- 2003-10-27 CN CNA2003801023180A patent/CN1708944A/zh active Pending
- 2003-10-27 AU AU2003302059A patent/AU2003302059A1/en not_active Abandoned
- 2003-10-27 JP JP2004553048A patent/JP2006504206A/ja not_active Withdrawn
- 2003-10-27 WO PCT/IB2003/006485 patent/WO2004046846A2/en active Search and Examination
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011514091A (ja) * | 2008-03-05 | 2011-04-28 | イルデト・ビー・ヴイ | 暗号システム |
JP2014180061A (ja) * | 2008-03-05 | 2014-09-25 | Irdeto Corporate Bv | 暗号システム |
US9710623B2 (en) | 2008-03-05 | 2017-07-18 | Irdeto B.V. | Cryptographic system |
JP2011521366A (ja) * | 2008-05-23 | 2011-07-21 | イルデト カナダ コーポレーション | ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2004046846A2 (en) | 2004-06-03 |
AU2003302059A8 (en) | 2004-06-15 |
KR20050084888A (ko) | 2005-08-29 |
US20040083373A1 (en) | 2004-04-29 |
CN1708944A (zh) | 2005-12-14 |
AU2003302059A1 (en) | 2004-06-15 |
EP1556993A2 (en) | 2005-07-27 |
WO2004046846A3 (en) | 2005-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006504206A (ja) | 再生可能な不正防止機能セキュリティシステムのための自動生成された暗号関数 | |
Kolodenker et al. | Paybreak: Defense against cryptographic ransomware | |
Srinivas et al. | Designing secure user authentication protocol for big data collection in IoT-based intelligent transportation system | |
Park et al. | Soft tamper-proofing via program integrity verification in wireless sensor networks | |
Chess | Security issues in mobile code systems | |
CN104581214B (zh) | 基于ARM TrustZone系统的多媒体内容保护方法和装置 | |
Alfalayleh et al. | An overview of security issues and techniques in mobile agents | |
CN110138731B (zh) | 一种基于大数据的网络防攻击方法 | |
Dadhich et al. | Security issues in mobile agents | |
Sodagudi et al. | An approach to identify data leakage in secure communication | |
US11139966B2 (en) | Security code for integration with an application | |
Knoll et al. | Path-based security for mobile agents | |
JP2007058807A (ja) | 認証システム及び方法 | |
JP4679934B2 (ja) | 識別情報生成管理装置およびシステムならびにプログラム | |
Hanaoui et al. | On the security communication and migration in mobile agent systems | |
Bhattacharya et al. | Cryptanalysis of a centralized location-sharing scheme for mobile online social networks | |
RU2275747C2 (ru) | Полностью динамическая аутентификация без идентификатора | |
JP2006004321A (ja) | セキュリティシステム | |
Sun et al. | An improved dynamic ID based remote user authentication scheme for multi-server environment | |
JP2005141654A (ja) | 情報通過制御システム、情報通過制御装置、サービス提供装置、プログラム及び記録媒体 | |
Rubin | Extending NCP for protocols using public keys | |
Fietkau et al. | Secure Authentication for Everyone! Enabling 2nd-Factor Authentication Under Real-World Constraints | |
Kh | Enhancing Mobile Agent Security Level (Proposed Model) | |
Khicha et al. | A Consistent Protected Structural Design for Mobile Agents In Open Network Systems | |
Lu et al. | & Yixian Yang |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070109 |