JP2007515723A - アクティブなエンティティを使用するソフトウェア実行保護 - Google Patents

アクティブなエンティティを使用するソフトウェア実行保護 Download PDF

Info

Publication number
JP2007515723A
JP2007515723A JP2006544631A JP2006544631A JP2007515723A JP 2007515723 A JP2007515723 A JP 2007515723A JP 2006544631 A JP2006544631 A JP 2006544631A JP 2006544631 A JP2006544631 A JP 2006544631A JP 2007515723 A JP2007515723 A JP 2007515723A
Authority
JP
Japan
Prior art keywords
key
computer program
static resource
encrypted
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006544631A
Other languages
English (en)
Other versions
JP2007515723A5 (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2007515723A publication Critical patent/JP2007515723A/ja
Publication of JP2007515723A5 publication Critical patent/JP2007515723A5/ja
Pending legal-status Critical Current

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2153Using hardware token as a secondary aspect

Abstract

本発明は、コンピュータプログラムエレメントの実行を保護することを可能にするための前記コンピュータプログラムエレメントの少なくとも一部の暗号化に関し、これは、前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出するステップ(ステップ102)、及び第1の鍵(314)を用いて前記静的リソースを暗号化するステップ(ステップ106)を有し、前記暗号化された静的リソースの復号は、第1のエンティティにおいて、第1の鍵を用いて暗号化された前記静的リソース(406)を取得するステップ、前記暗号化された静的リソースを第2のエンティティに提供するステップ(ステップ208)、第1の鍵を用いて暗号化された前記静的リソース(406)を取得するステップ(ステップ218)、第2の鍵(422)を取得するステップ(ステップ216)、前記第2の鍵を使用して前記暗号化された静的リソースを復号するステップ(ステップ222)、前記静的リソースを前記第1のエンティティに提供するステップ(ステップ228)及び前記第2のエンティティから前記静的リソースを前記第1のエンティティにより取得するステップ(ステップ210)を有する。

Description

本発明は、広くは、コンピュータプログラムコードの実行の防止に関し、特に、アクティブなエンティティ(active entity)を使用することによる静的データの暗号化及び復号に関する。
強い実行保護(execution protection)方法は、アクティブなエンティティの1つのタイプの一例として、例えば、PC(パーソナルコンピュータ)のプリンタポート又はUSB(ユニバーサルシリアルバス)ポートのようなパラレル又はシリアルポートに例えば接続された所謂ハードウェアドングルを使用することができる。ドングルは、典型的には、パッシブな要素であるが、幾つかの暗号化/復号鍵をロードされたプログラム可能なメモリを含むことができる。情報がPCとドングルとの間で交換されることができる。このようなドングルは、例えば以下の2つの態様で使用されることができる。
1.ソフトウェアの実行の保護のために、シェルプログラムが、保護されるべきソフトウェアの周りに作成される。シェルを作成するプロセスにおいて、元のソフトウェアは、ドングルからの鍵に依存して完全に又は部分的に暗号化され、この後に暗号化がシェルに埋め込まれる。作成されたシェルは、したがって、ドングルからの鍵に基づくが、ソフトウェアを復号するのに使用されるアルゴリズムにも基づく。シェルが開始される場合、シェルはドングルから鍵を取り出し、暗号化されたソフトウェアを抽出し、前記暗号化されたソフトウェアを復号し、元のソフトウェアを実行する。ドングルが存在しない場合、又は異なる鍵を含む異なるドングルが使用される場合には、復号は失敗する。
2.また、ソフトウェアの実行の保護に対して、元のプログラムのエントリポイントは、プロシージャがエントリポイントで置き換えられることができる。論理ファンクションが備えられ、ドングルから鍵を取り出す。取り出された鍵に基づき、複雑な論理が、ドングルが正しいドングルであるか否かを決定するように構成される。成功したドングル識別の後に、ファンクションは元のプログラムのエントリポイントを呼び出し、これは元のソフトウェアの実行を可能にする。
しかしながら、上述の方法には幾つかの不利点が存在する。
PCとドングルとの間の異なる通信セッションの通信コンテンツは、通常は同じであり、これは、前記通信を盗聴することによりプロトコル及び鍵を取り出し、後で元のドングルを必要とせずにハードウェア又はソフトウェアのいずれかにおいてドングルをエミュレートすることが可能であることを意味する。
ドングルが識別された後に、元のプログラムのエントリポイントが呼び出され、元のプログラムは、そのままメモリ内に備えられる。経験豊富なユーザは、プログラムを前記プログラムのポータブル実行ファイルに書き戻すことができる。
通常は、反転された論理を使用することにより容易に置き換えられることができるドングル確認コード内に1つ又は幾つかのIF命令が存在する。
一般のセキュリティツール及びハードウェアドングルは、G. Hachez, “A comparative study of software
protection tools suited for E-commerce with contributions to software
watermarking and smart cards” Doctor’s Thesis, UCL, Louvain-La-Nueve、ベルギー、2003年3月号において更に記載されている。
この文書によると、近年のハードウェアドングルバージョンは、USBポートに接続されることができ、通常は、スマートカードのCPUを埋め込む。これらのバージョンは、各チャレンジに対して異なる値を返す小さなマイクロコントローラを含む。ソフトウェアは、定期的にチャレンジで前記ドングルに問い合わせし、回答が正しいことを確認する。最も進歩したドングルは、少量のメモリを有する小さなマイクロコントローラを含む。この場合、前記ソフトウェアの幾つかの重要な部分は前記ドングル内で実行される。
上述のハードウェアドングルバージョンの方法は、以下の欠点を持つ。第一に、保護されるべきソフトウェア内のドングルの全てのチェックの除去が成功する可能性があるリスクが存在する。第二に、ドングルが侵入者によりエミュレートされるリスクが存在する。
したがって、ソフトウェア内のドングルのようなアクティブなエンティティに対するチェックの除去後でさえソフトウェアが実行されることができないソフトウェア実行保護方法に対する要望が存在する。
本発明の目的は、コンピュータプログラムエレメントの静的リソースの暗号化を使用することによる当該コンピュータエレメントの実行の保護を提供することである。
本発明の第1の態様によると、この目的は、コンピュータプログラムエレメントの実行を保護することを可能にするように当該コンピュータプログラムエレメントの少なくとも一部を暗号化する方法であって、
前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出するステップと、
鍵を用いて前記少なくとも1つの静的リソースを暗号化するステップと、
を有する方法により達成される。
本発明の第2の態様によると、この目的は、コンピュータプログラムエレメントの実行を保護することを可能にするように当該コンピュータプログラムエレメントの少なくとも一部を暗号化するコンピュータプログラム暗号化装置であって、
前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出し、
鍵を用いて前記少なくとも1つの静的リソースを暗号化する、
ように構成されたコンピュータプログラム暗号化装置によっても達成される。
本発明の第3の態様によると、この目的は、コンピュータプログラムコード手段を持つコンピュータ読取可能媒体を有するコンピュータプログラムプロダクトであって、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出するステップと、
鍵を用いて前記少なくとも1つの静的リソースを暗号化するステップと、
を前記コンピュータに実行させるコンピュータプログラムプロダクトによっても達成される。
本発明の第4の態様によると、この目的は、コンピュータプログラムコード手段を有するコンピュータプログラムエレメントであって、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出するステップと、
鍵を用いて前記少なくとも1つの静的リソースを暗号化するステップと、
を前記コンピュータに実行させるコンピュータプログラムエレメントによっても達成される。
本発明の第5の態様によると、この目的は、
鍵を用いて暗号化された少なくとも1つの静的リソース、
を有するコンピュータプログラムコード手段を持つコンピュータ読取可能媒体を有するコンピュータプログラムプロダクトによっても達成される。
本発明の第6の態様によると、この目的は、
鍵を用いて暗号化された少なくとも1つの静的リソース、
を有するコンピュータプログラムコード手段を有するコンピュータプログラムエレメントによっても達成される。
本発明の第7の態様によると、この目的は、コンピュータプログラムエレメントの実行を可能にするように当該コンピュータプログラムエレメントの少なくとも一部を復号する方法であって、
第1のエンティティにおいて、第1の鍵を用いて暗号化された少なくとも1つの静的リソースを取得するステップと、
第2のエンティティに対して前記少なくとも1つの暗号化された静的リソースを提供するステップと、
前記第1の鍵による暗号化が第2の鍵を使用することにより復号された場合に、前記第1のエンティティにより前記第2のエンティティから前記少なくとも1つの静的リソースを取得するステップと、
を有する方法によっても達成される。
本発明の第8の態様によると、コンピュータプログラムエレメントの実行を可能にするように当該コンピュータプログラムエレメントの少なくとも一部を復号する方法であって、
少なくとも1つの静的リソースが第1の鍵を使用することにより暗号化された少なくとも1つの暗号化された静的リソースを第1のエンティティから取得するステップと、
第2の鍵を取得するステップと、
前記第2の鍵を使用することにより、前記少なくとも1つの暗号化された静的リソースを復号するステップと、
前記少なくとも1つの静的リソースを前記第1のエンティティに提供するステップと、
を有する方法によっても達成される。
本発明の第9の態様によると、この目的は、コンピュータプログラムエレメントの実行を可能にするように当該コンピュータプログラムエレメントの少なくとも一部を復号するコンピュータプログラム復号装置であって、
第1の鍵を用いて暗号化された少なくとも1つの静的リソースを取得し、
前記少なくとも1つの暗号化された静的リソースを第2のエンティティに提供し、
前記第1の鍵による暗号化が第2の鍵を使用することにより復号された場合に、前記第2のエンティティから前記少なくとも1つの静的リソースを取得する、
ように構成される装置によっても達成される。
本発明の第10の態様によると、この目的は、コンピュータプログラムエレメントの実行を可能にするように当該コンピュータプログラムエレメントの少なくとも一部を復号するコンピュータプログラム復号装置であって、
少なくとも1つの静的リソースが第1の鍵を使用することにより暗号化された少なくとも1つの暗号化された静的リソースを第1のエンティティから取得し、
第2の鍵を取得し、
前記第2の鍵を使用することにより、前記少なくとも1つの暗号化された静的リソースを復号し、
前記少なくとも1つの静的リソースを前記第1のエンティティに提供する、
ように構成されたコンピュータプログラム復号装置によっても達成される。
本発明の第11の態様によると、この目的は、コンピュータプログラムコード手段を持つコンピュータ読取可能媒体を有するコンピュータプログラムプロダクトであって、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
第1のエンティティにおいて、第1の鍵を用いて暗号化された少なくとも1つの静的リソースを取得するステップと、
第2のエンティティに対して前記少なくとも1つの暗号化された静的リソースを提供するステップと、
前記第1の鍵による暗号化が第2の鍵を使用することにより復号された場合に、前記第1のエンティティにより前記第2のエンティティから前記少なくとも1つの静的リソースを取得するステップと、
を前記コンピュータに実行させるコンピュータプログラムプロダクトによっても達成される。
本発明の第12の態様によると、この目的は、コンピュータプログラムコード手段を有するコンピュータプログラムエレメントであって、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
第1のエンティティにおいて、第1の鍵を用いて暗号化された少なくとも1つの静的リソースを取得するステップと、
第2のエンティティに対して前記少なくとも1つの暗号化された静的リソースを提供するステップと、
前記第1の鍵による暗号化が第2の鍵を使用することにより復号された場合に、前記第1のエンティティにより前記第2のエンティティから前記少なくとも1つの静的リソースを取得するステップと、
を前記コンピュータに実行させるコンピュータプログラムエレメントによっても達成される。
本発明の第13の態様によると、この目的は、コンピュータプログラムコード手段を持つコンピュータ読取可能媒体を有するコンピュータプログラムプロダクトであって、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
少なくとも1つの静的リソースが第1の鍵を使用することにより暗号化された少なくとも1つの暗号化された静的リソースを第1のエンティティから取得するステップと、
第2の鍵を取得するステップと、
前記第2の鍵を使用することにより、前記少なくとも1つの暗号化された静的リソースを復号するステップと、
前記少なくとも1つの静的リソースを前記第1のエンティティに提供するステップと、
を前記コンピュータに実行させるコンピュータプログラムプロダクトによっても達成される。
本発明の第14の態様によると、この目的は、コンピュータプログラムコード手段を有するコンピュータプログラムエレメントであって、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
少なくとも1つの静的リソースが第1の鍵を使用することにより暗号化された少なくとも1つの暗号化された静的リソースを第1のエンティティから取得するステップと、
第2の鍵を取得するステップと、
前記第2の鍵を使用することにより、前記少なくとも1つの暗号化された静的リソースを復号するステップと、
前記少なくとも1つの静的リソースを前記第1のエンティティに提供するステップと、
を前記コンピュータに実行させるコンピュータプログラムエレメントによっても達成される。
本発明の背後にある一般的なアイデアは、コンピュータプログラムコード内の静的リソースのコンピュータプログラムエレメントの暗号化を使用することにより当該コンピュータプログラムコードの実行を保護することである。このアイデアは、暗号化された1つの静的リソースの復号中に2つのエンティティの使用に更に依存し、前記2つの点ティティ間の通信は少なくとも部分的に暗号化されている。
本発明は以下の利点を持つ。
1.これは、コンピュータプログラムコードの実行に欠かせない少なくとも1つの静的リソースを暗号化することにより当該コンピュータプログラムコードの実行の保護を提供する。
2.復号のプロセスが、第1及び第2のエンティティを要する。
3.前記コンピュータプログラムコードは、前記第2のエンティティに対する要求の除去後でさえ前記第1のエンティティ内で実行されることができない。
従属請求項の方向性及び利点は以下のとおりである。
請求項2は、前記コンピュータプログラムエレメント内に少なくとも1つの暗号化された静的リソースを記憶することを対象とする。この請求項は、コンピュータプログラムエレメントの実行中に必要とされるリソースが暗号化されることができるという利点を持つ。
請求項3、11、18及び23は、公開/秘密鍵対の公開鍵及び秘密鍵を使用することを対象とする。利点は、一方の鍵が他方の鍵により暗号化されたデータを復号するのに必要とされることである。
請求項4及び12は、コンピュータプログラムエレメント及びコンピュータプログラムコード手段夫々において前記公開鍵を持つことを対象とする。これらの請求項は、前記公開鍵を使用することにより暗号化されたデータを復号するために安全な秘密鍵の使用を可能にする利点を持つ。
請求項5は、前記公開鍵に対応する秘密鍵を取得し、コンピュータプログラムエレメントが備えられるエンティティとは異なるエンティティに前記秘密鍵を記憶することを対象とする。この請求項は、前記2つのエンティティの分離を可能にすることにより実行の保護の安全性を格段に高める利点を持つ。
請求項6は、コンピュータプログラムエレメント内の位置から少なくとも1つの静的リソースを抽出し、前記位置に暗号化されたリソースを記憶することを対象とする。これは、第一に、元の情報が利用可能でないので、第二に、他の部分又は要素が前記暗号化されたリソースの記憶により影響を受けないので有利である。
請求項15及び20は、第3の鍵を取得し、前記第3の鍵を使用することにより少なくとも1つの静的リソースを暗号化/復号することを対象とする。これらの請求項は、1つのエンティティから他のエンティティに送信された静的リソースが前記第3の鍵を用いて暗号化されることができるという利点を持つ。
請求項16及び24は、ランダムセッション鍵である第3の鍵を使用することを対象とする。鍵が対称的である利点は、暗号化及び復号に対して同じ鍵が使用されることができ、これが、使用される鍵の数を制限することである。
請求項17、21及び22は、前記第3の鍵及び前記少なくとも1つの暗号化された静的リソースを暗号化/復号するために前記第1の鍵を更に使用することを対象とする。これは、前記第3の鍵が1つのエンティティから他のエンティティに暗号化されて送信されることができ、前記第3の鍵を使用することにより前記静的データの暗号化の高められた安全性を可能にするという利点を持つ。
本発明のこれら及び他の態様は、以下に記載される実施例を参照して説明され、明らかになる。
本明細書において使用される場合に単語“有する”が、記載されたフィーチャ、整数(integers)、ステップ又は構成要素の存在を特定すると見なされるが、1つ以上の他のフィーチャ、整数、ステップ、構成要素又はこれらのグループの存在又は追加を除外しないことは、強調されるべきである。
本発明は、添付図面と併せて読まれる本発明の好適な実施例の以下の記載からより明らかに理解される。
本発明は、コンピュータプログラムコードの静的リソースを暗号化及び復号することにより前記コンピュータプログラムコードの実行を保護することに関する。
暗号化及び復号には、公開鍵暗号アーキテクチャを使用し、保護されるべきコンピュータプログラムのソースコードにアクセスする必要がある。
本発明の一実施例によると、2つの異なるエンティティが、暗号化された情報を復号するプロセスにおいて使用される。図5は、これらの2つの異なるエンティティの本発明の一実施例を示す。パーソナルコンピュータ52のようなコンピュータが第1のエンティティを表し、アクティブなドングル54が第2のエンティティを表す。これら2つのエンティティは、前記プロセスの復号ステップ中に情報を送信/受信するように構成される。
ドングルの代わりに、セキュリティチップが使用されることができる。このセキュリティチップは、コンピュータプラットフォームに一体化されることができる。
前記アクティブなドングルは、典型的には、単純な対称及び非対称な暗号化/復号アルゴリズムを実行することができる小さなプロセッサを備えている。前記2つのエンティティ、ここでは前記コンピュータと前記アクティブなドングルとの間のインターフェースは、USB(ユニバーサルシリアルバス)、ネットワーク又は他の通信チャネルであることができる。前記コンピュータと前記アクティブなドングルとの間の通信は、クライアント−サーバモデルに基づく。
前記保護されるべきコンピュータプログラムコードが市場に流通される前に、静的データの少なくとも一部が抽出され、前記アクティブなドングルの公開鍵を使用することにより暗号化され、暗号化されたデータとして前記ソースコード内で置き換えられる。前記コンピュータプログラムコードをコンパイル及び実行すると、対応する秘密鍵を有するドングルのみが、前記コンピュータプログラムコード内の前記データを使用する前に前記データを復号することができる。
下で述べられるように、暗号化は、典型的には、前記コンピュータから独立して他の場所で実行される。当業者に周知であるように、情報の暗号化及び復号は、鍵及び錠が関連しているのと同様な形で互いに関連している。ここで、暗号化するプロセスは、前記コンピュータと前記ドングルとの間の通信チャネルが、暗号化されたデータを復号するために確立されるように実行される。
本発明の一実施例によると、復号するプロセスは、復号されたプログラムコードをロードされた前記コンピュータ内で開始し、前記通信チャネル上で前記ドングルに情報を送信することにより続行し、前記ドングルにおいて前記復号するプロセスが続行し、続いて、前記ドングルが情報を前記コンピュータに送り返し、前記コンピュータにおいて前記プログラムコードが最終的に実行されることができる。
本発明はここで、コンピュータプログラムコードの暗号化を概略的に図示する図3と一緒に、コンピュータプログラムエレメントの少なくとも一部の暗号化のフローチャートを示す図1を参照することにより始めて、記載される。この暗号化は、典型的には、上述の2つのエンティティと異なる第3のエンティティ内で実行される。
プログラムコードを暗号化するために、ステップ102において、少なくとも幾らかの静的データ306が元のプログラムコード302から抽出される。したがって、ここでプログラムコード304により表される、抽出された静的データ306を除く元のプログラムコード302である、当該元のプログラムコード302の残りも作成される。本実施例において、元のプログラムの静的データは、如何なるタイプであってもよく、例えば、ストリング、定義、初期変数値、画像、定数、形式に関する静的データ又は他の静的リソースであることができる。
静的データ306を抽出した後に、暗号化/復号鍵対(公開鍵Kpb314及び秘密鍵Kpr316)の形式の第1及び第2の鍵は、ステップ104において生成される。当業者に周知であるように、前記2つの鍵のいずれか一方がデータを暗号化するのに使用されることができ、同様にこれらの一方がデータを復号するのに使用されることができるが、一度一方の鍵が、例えばデータを暗号化するために選択されると、他方の鍵のみが前記暗号化されたデータを復号するのに使用されることができる。
ここで、静的データ306は、ステップ106において、暗号化鍵として公開鍵Kpb314を使用することにより暗号化され、前記公開鍵を用いて暗号化された静的データ(Static data)Kpb310を作成する。上述の通信チャネルを前記第1のエンティティ、即ち前記コンピュータと、第2のエンティティ、即ち前記ドングルとの間に設けるために、プログラムコード304は、ステップ108において、修正されたプログラムコード308を取得するように変更される。この通信チャネルは、したがって、以下に記載されるデータの復号中に使用される。
本発明の本実施例によると、前記プログラムコードの特定の位置におけるステップ102において抽出された静的データの各ピースは、前記データの暗号化されたコピーにより置き換えられる。これは、ステップ110において前記元のプログラムコード内に、必ずではないが好ましくは、暗号化されていないデータがステップ102において前記元のプログラムコード内に存在した位置に前記暗号化されたデータを記憶する。前記暗号化された静的データを前記プログラムコードに記憶して、公開鍵Kpb314が、ステップ112において、前記プログラムコードに記憶され、ステップ116において、保護されたプログラムコード312を取得する。
前記公開鍵Kpb314に対応する秘密鍵Kpr316は、ドングル318に記憶される。
取得された保護されたプログラムコード312は、したがって、暗号化された静的データのピースを含み、前記暗号化された静的データは、事前に前記静的データを暗号化せずに前記プログラムコードが実行されることを効率的に防止する。
前記プログラムの実行に欠かせない部分である、前記プログラムコードエレメントの特定の部分のみが暗号化される必要があることは明らかである。これは、全ての静的データが、コンピュータプログラムコードの全部の部分の機能を禁止するために暗号化される必要はないことを意味する。
このように前記コンピュータプログラムコードのピースを復号することにより、前記コンピュータプログラムコードは、単一のIF-THEN文を単にクラックすることにより実行されることはできない。これは、前記プログラムコードが大きな程度で暗号化されずに残されるが、前記プログラムコードの実行を防止するシェルが暗号化される、シェルのような暗号化方法と対照的である。単一のシェルをクラックすることにより、前記シェル内のプログラムの実行は可能にされる。
以下に、暗号化されたプログラムコードを実行する際の暗号化されたコンピュータプログラムコードの復号が記載される。
上述のように、前記ドングルに対するアクセスを持たない不正なパーティによるプログラムコードの実行を防止するためには、決定的なプログラムコードエレメントの暗号化で十分である。前記プログラムコードの鍵となる部分を実行する能力無しでは、前記プログラムコードの機能は、少なくとも完全には実現されない。
決定的な部分のみが暗号化されるので、暗号化されていない部分は、しかしながら、実行されることができる。前記プログラムコードを実行すると、以下に記載される方法が、プログラムコードエレメントの各ピースに対して使用される。夫々のこのようなピースに対して、通信セッションが開始され、情報が、前記コンピュータと前記ドングルとの間の通信チャネル上で通信される。更に、夫々のこのようなセッションに対して、セッション鍵が、以下により詳細に説明されるように生成される。
以下に、コンピュータプログラムコードを実行する際の静的データの復号のより詳細な記載が、図2A、2B、4及び5を参照して概説される。
本発明の本実施例によると、保護されたコンピュータプログラムコード402の実行を動作することは前記コンピュータにおいて開始される。前記保護されたコンピュータプログラムコードにおいて、前記コンピュータは、図3の公開鍵Kpb314を用いて暗号化された静的データ(Static data)Kpb406を配置する。また、前記コンピュータは、前記保護されたコンピュータプログラムコードにおいて、記憶された公開鍵Kpb408を取り出す。
暗号化された静的データに遭遇した後に、ランダムセッション鍵Ks404の形式の第3の鍵は、ステップ202において生成される。
暗号化された静的データ406は、この場合、ステップ204において、生成されたランダムセッション鍵Ks404と結合され、この後に、暗号化された静的データ406及びセッション鍵Ks404の結合体は、ステップ206において、公開鍵406を使用することにより暗号化され、したがって、暗号化された静的データ406及び前記セッション鍵Ks404の暗号化された結合体((Static data)Kpb+Ks)Kpb410を生成する。
この暗号化された結合体410を生成した後に、前記暗号化された結合体410は、ステップ208において、ドングル54に送信される。図4における縦の点線Aは、コンピュータ52とドングル54との間のインターフェースを示す。
前記ドングルは、前記コンピュータのポートを使用することにより、又は如何なる種類のネットワーク、例えばインターネット上の接続を使用することにより前記コンピュータに接続されることができる。
この後に、ステップ210において、コンピュータ52は、ドングル52=412から、図3の公開鍵Kpb314から復号されたが、ランダムセッション鍵Ks426を用いて暗号化された静的データ(Static data)Ks430を受信する。前記コンピュータは、この場合、ステップ212において、セッション鍵Ks432を使用することにより前記暗号化された静的データを復号する。
前記ランダムセッション鍵が対称鍵であるので、暗号化及び復号は同じ鍵を使用することにより実行される。これは、ランダムセッション鍵426、セッション鍵432及びランダムセッション鍵Ks404が同じ鍵であることを意味する。
復号すると、静的データ434が、ステップ214において取得され、静的データ434は、プログラムコード436の実行中に要求があると使用される。
上に記載されたのは、コンピュータにおいて暗号化された静的データを復号する方法である。ここで以下に記載されるのは、ドングルにおいて暗号化された静的データを復号する方法である。
本発明の本実施例によると、ドングル54は、第一に、ステップ216において、前記静的データを暗号化する方法の間に図3における秘密鍵Kpr316を取得する。第二に、前記ドングルは、ステップ218において、1)前記公開鍵で暗号化された静的データ406と、2)セッション鍵Ks404との暗号化された結合体((Static data)Kpb+Ks)Kpb410を受信し、前記結合体は、公開鍵Kpb408を用いて暗号化されている。ドングル54から、前記暗号化された結合体((Static
data)Kpb+Ks)Kpb414及び公開鍵Kpb418が抽出される。ここで、秘密鍵416を
使用することにより、暗号化された結合体414は、ステップ220において復号され、公開鍵Kpb408を用いて暗号化された静的データ(Static data)Kpb418及びセッション鍵Ks420を生成する。この復号に続いて、暗号化された静的データ418は、ステップ222において、秘密鍵416に対して述べられたものと同じ鍵である秘密鍵Kpr422を再び使用することにより復号される。ステップ222においてこの復号を行うと、復号された静的データ424が、ステップ224において取得される。
前記ドングルは、したがって、復号された静的データを取得した。ここで、復号された静的データ424は、ステップ226において再び暗号化されるが、しかしながらこのステップにおいて、セッション鍵426を使用することにより暗号化され、前記鍵は、ステップ220において前記暗号化された結合体を復号することから取得される。
したがって、取得されたのは、図3における公開鍵Kpb314を使用することにより実行された最初の暗号化から復号されたが、セッション鍵426を使用することにより暗号化された静的データである。この暗号化された静的データ(Static Data)Ks428は、ここで、ステップ228において、図4においてBにより示されるドングル−コンピュータ間インターフェース上でドングル54からコンピュータ52に送信される。
本発明の一実施例によると、このインターフェースBは、ドングル−コンピュータ間USBインターフェースである。このインターフェースは、しかしながら、代替例として、インターネットのようなネットワーク、1つ以上の他のコンピュータを持つ他のネットワーク、又は如何なるタイプの通信チャネルをも含むことができる。
図6は、コンピュータプログラムコード手段が記憶されているコンピュータプログラムプロダクト62を示す。このコンピュータプログラムプロダクトは、如何なるタイプ、例えばコンパクトディスク(CD)、ディスケット、デジタル多用途ディスク(DVD)、半導体メモリ、又はハードディスクであることができる。
コンピュータプログラムコードの実行の保護は、前記コンピュータプログラムコードにより制御される又は何らかの形で依存するハードウェアに対する不正アクセスを防止するのに使用されることができる。適切なアクティブなエンティティ、即ち適切なドングルを適宜に使用することは、前記ハードウェアに対するアクセスに許可を与える。
本発明は、以下に記載されるように多くの態様で更に変更されることができる。
上述の実施例に対する1つの代替例は、前記第2のエンティティとしてセキュリティチップを使用することである。したがって、たとえ一方が他方の内部に位置することができるとしても、前記セキュリティチップ及び前記コンピュータが2つの相異なるエンティティであると理解される。セキュリティチップを含むセキュリティプラットフォームの一例は、TCPA/Palladiumプラットフォームであり、このプラットフォームは、この代替実施例において使用されるのに適している。
本発明の他の実施例において、コンピュータプログラムコードの実行の保護は、他のコンピュータプログラムコードのタイプのアクティブなエンティティを使用することにより可能にされる。これは、したがって、セキュリティチップ又はドングルが、暗号化された静的リソースの復号に使用される実施例に対する代替例である。
異なる実施例において、前記静的データを暗号化する方法のステップの順序は変更されることができ、幾つかのステップは、本発明の保護の範囲と異なることなく削除されることさえできる。例えば、プログラムコードを変更するステップ、ステップ108は、公開及び秘密鍵を生成するステップ、ステップ104の前に実行されることができる。
本発明の他の実施例において、前記静的データを復号する方法は、コンピュータにより前記暗号化されたデータをドングルに送信するステップを有し、前記データは秘密鍵を使用することにより復号され、更に前記コンピュータに返される。本実施例において、セッション鍵の使用はない。
本発明の他の実施例において、前記静的データを復号する方法は、前記暗号化されたデータ及びセッション鍵をドングルに対してコンピュータにより送信するステップを有する。前記ドングルは、前記静的データを復号し、前記セッション鍵を使用することにより前記静的データを暗号化し、前記データを前記コンピュータに返す。本実施例は、前記セッション鍵及び前記暗号化された静的データの結合体を暗号化するために前記公開鍵を使用しない。
本発明の他の実施例において、前記静的データを復号する方法において、前記セッション鍵及び前記暗号化された静的データは、前記公開鍵を使用することにより別々に暗号化される。したがって、セッション鍵及び暗号化された静的データの暗号化された結合体は存在しない。
上述の実施例の代替例において、前記セッション鍵のみが前記コンピュータにより暗号化されるのに対し、既に暗号化された静的データは、そのまま前記ドングルに送信される。
他の実施例において、前記コンピュータプログラム復号装置は、幾つかのコンピュータを有する分散型コンピュータ装置である。
本発明の他の実施例において、コンピュータプログラムエレメントの特定の位置において抽出された前記静的データは、同じ又は異なるコンピュータプログラムエレメントの異なる位置に記憶される。暗号化されていない静的データは、前記エレメントから抽出され、もはやその位置において利用可能ではない。
他の実施例において、暗号化された静的データの復号中の前記セッション鍵の生成は、前記プログラムコードからのオーダにしたがって前記コンピュータにより実行される。
他の実施例において、暗号化された静的データの復号中の前記セッション鍵の生成は、暗号化された静的データの新しいピースに遭遇する前に前記プログラムコードにより実行される。
他の実施例において、前記第1のエンティティは、PDA(パーソナルデジタルアシスタント)、パームトップコンピュータ、ラップトップコンピュータ、パーソナルコンピュータ、ゲーム用コンピュータ、コンピュータサーバ等のような任意のタイプのコンピュータである。
上述の実施例が本発明を限定するのではなく説明し、当業者が添付の請求項の範囲から外れることなく多くの代替実施例を設計することができることに注意すべきである。
請求項において、括弧間に配置された参照符号は、請求項を限定するように解釈されるべきでない。単語“有する”は、請求項に記載された要素又はステップ以外の要素又はステップの存在を除外しない。要素に先行する単語“1つの”は、複数のこのような要素の存在を除外しない。本発明は、幾つかの別個の要素を有するハードウェアによって、及び適切にプログラムされたコンピュータによって実施されることができる。単一のプロセッサ又は他の(プログラム可能な)ユニットも、前記請求項に記載された幾つかの手段の機能を実行することができる。
幾つかの手段を列挙する装置請求項において、これらの手段の幾つかは、ハードウェアの同一のアイテムにより実施されることができる。特定の方策が相互に異なる従属請求項に記載されているという単なる事実は、これらの方策の組み合わせが有利に使用されることができないことを示さない。
本発明の好適な実施例による暗号化する方法のフローチャートを示す。 コンピュータプログラムコードを持つ装置において実行される、本発明の好適な実施例による復号する方法のフローチャートを示す。 本発明の好適な実施例による復号する方法のフローチャートを示す。 本発明によるプログラムコードの暗号化を概略的に図示する。 本発明による保護されたプログラムコードの復号を概略的に図示する。 暗号化されたデータの復号中に通信する2つのエンティティ、即ちコンピュータ及びドングルを概略的に示す。 本発明に関するコンピュータプログラムコード手段を持つコンピュータプログラムプロダクトを示す。

Claims (30)

  1. コンピュータプログラムエレメントの実行を保護することを可能にするように当該コンピュータプログラムエレメントの少なくとも一部を暗号化する方法において、
    前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出するステップと、
    鍵を用いて前記少なくとも1つの静的リソースを暗号化するステップと、
    を有する暗号化する方法。
  2. 前記コンピュータプログラムエレメントに前記少なくとも1つの暗号化された静的リソースを記憶するステップ、
    を更に有する、請求項1に記載の暗号化する方法。
  3. 前記鍵が、公開/秘密鍵対の公開鍵である、請求項1に記載の暗号化する方法。
  4. 前記公開鍵をコンピュータプログラムエレメントに記憶するステップ、
    を更に有する、請求項3に記載の暗号化する方法。
  5. 対応する秘密鍵を取得するステップと、
    前記コンピュータプログラムエレメントが備えられているエンティティとは異なるエンティティに前記秘密鍵を記憶するステップと、
    を更に有する、請求項3に記載の暗号化する方法。
  6. 前記抽出するステップが、前記プログラムエレメント内の特定の位置から前記少なくとも1つの静的リソースを抽出するステップを有し、前記記憶するステップが、前記暗号化された静的リソースを前記位置に記憶するステップを有する、請求項1に記載の暗号化する方法。
  7. コンピュータプログラムエレメントの実行を保護することを可能にするように当該コンピュータプログラムエレメントの少なくとも一部を暗号化するコンピュータプログラム暗号化装置において、
    前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出し、
    鍵を用いて前記少なくとも1つの静的リソースを暗号化する、
    ように構成されたコンピュータプログラム暗号化装置。
  8. コンピュータプログラムコード手段を持つコンピュータ読取可能媒体を有するコンピュータプログラムプロダクトにおいて、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
    前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出するステップと、
    鍵を用いて前記少なくとも1つの静的リソースを暗号化するステップと、
    を前記コンピュータに実行させるコンピュータプログラムプロダクト。
  9. コンピュータプログラムコード手段を有するコンピュータプログラムエレメントにおいて、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
    前記コンピュータプログラムエレメントの少なくとも1つの静的リソースを抽出するステップと、
    鍵を用いて前記少なくとも1つの静的リソースを暗号化するステップと、
    を前記コンピュータに実行させるコンピュータプログラムエレメント。
  10. 鍵を用いて暗号化された少なくとも1つの静的リソース、
    を有するコンピュータプログラムコード手段を持つコンピュータ読取可能媒体を有するコンピュータプログラムプロダクト。
  11. 前記鍵が、公開/秘密鍵対の公開鍵である、請求項10に記載のコンピュータプログラムプロダクト。
  12. 前記コンピュータプログラムコード手段が、
    前記公開鍵、
    を更に有する、請求項11に記載のコンピュータプログラムプロダクト。
  13. 鍵を用いて暗号化された少なくとも1つの静的リソース、
    を有するコンピュータプログラムコード手段を有するコンピュータプログラムエレメント。
  14. コンピュータプログラムエレメントの実行を可能にするように当該コンピュータプログラムエレメントの少なくとも一部を復号する方法において、
    第1のエンティティにおいて、第1の鍵を用いて暗号化された少なくとも1つの静的リソースを取得するステップと、
    前記少なくとも1つの暗号化された静的リソースを第2のエンティティに提供するステップと、
    前記第1の鍵による暗号化が第2の鍵を使用して復号された場合に、前記第1のエンティティにより前記第2のエンティティから前記少なくとも1つの静的リソースを取得するステップと、
    を有する復号する方法。
  15. 第3の鍵を取得するステップと、
    前記第3の鍵を使用することにより前記少なくとも1つの暗号化された静的リソースを復号するステップと、
    を更に有し、
    前記提供するステップが、前記第3の鍵及び前記少なくとも1つの暗号化された静的リソースを前記第2のエンティティに提供するステップを有し、前記第1のエンティティにより前記第2のエンティティから前記少なくとも1つの静的リソースを取得するステップが、前記コンピュータプログラムエレメントが実行されることができるように前記第3の鍵を用いて暗号化された前記少なくとも1つの静的リソースを取得するステップを有する、請求項14に記載の復号する方法。
  16. 前記第3の鍵がランダムセッション鍵である、請求項14に記載の復号する方法。
  17. 前記第1の鍵を取得するステップと、
    前記第1の鍵を使用することにより前記第3の鍵及び前記少なくとも1つの暗号化された静的リソースを暗号化するステップと、
    を更に有し、
    前記少なくとも1つの暗号化された静的リソースを第2のエンティティに提供するステップが、前記第1の鍵を使用することにより暗号化された前記第3の鍵及び前記少なくとも1つの暗号化された静的リソースを提供するステップを有する、請求項14に記載の復号する方法。
  18. 前記第1の鍵及び前記第2の鍵が、夫々公開/秘密鍵対の公開鍵及び秘密鍵である、請求項14に記載の復号する方法。
  19. コンピュータプログラムエレメントの実行を可能にするように当該コンピュータプログラムエレメントの少なくとも一部を復号する方法において、
    少なくとも1つの静的リソースが第1の鍵を使用することにより暗号化された少なくとも1つの暗号化された静的リソースを第1のエンティティから取得するステップと、
    第2の鍵を取得するステップと、
    前記第2の鍵を使用することにより前記少なくとも1つの暗号化された静的リソースを復号するステップと、
    前記少なくとも1つの静的リソースを前記第1のエンティティに提供するステップと、
    を有する復号する方法。
  20. 前記第1のエンティティから第3の鍵を取得するステップと、
    前記第3の鍵を使用することにより前記少なくとも1つの静的リソースを暗号化するステップと、
    を更に有し、
    前記少なくとも1つの静的リソースを前記第1のエンティティに提供するステップが、前記第3の鍵を用いて暗号化された前記少なくとも1つの静的リソースを提供するステップを有する、請求項19に記載の復号する方法。
  21. 前記少なくとも1つの暗号化されたリソース及び前記第3の鍵が暗号化された状態で取得され、この暗号化が前記第1の鍵を使用して行われた、請求項20に記載の復号する方法。
  22. 前記第2の鍵を使用することにより、前記暗号化された少なくとも1つの暗号化された静的リソース及び前記第3の鍵を復号するステップ、
    を更に有する、請求項21に記載の復号する方法。
  23. 前記第1の鍵及び前記第2の鍵が、夫々公開/秘密鍵対の公開鍵及び秘密鍵である、請求項19に記載の復号する方法。
  24. 前記第3の鍵がランダムセッション鍵である、請求項19に記載の復号する方法。
  25. コンピュータプログラムエレメントの実行を可能にするように当該コンピュータプログラムエレメントの少なくとも一部を復号するコンピュータプログラム復号装置において、
    第1の鍵を用いて暗号化された少なくとも1つの静的リソースを取得し、
    前記少なくとも1つの暗号化された静的リソースを第2のエンティティに提供し、
    前記第1の鍵による暗号化が第2の鍵を使用することにより復号された場合に、前記少なくとも1つの静的リソースを前記第2のエンティティから取得する、
    ように構成されたコンピュータプログラム復号装置。
  26. コンピュータプログラムエレメントの実行を可能にするように当該コンピュータプログラムエレメントの少なくとも一部を復号するコンピュータプログラム復号装置において、
    少なくとも1つの静的リソースが第1の鍵を使用することにより暗号化された少なくとも1つの暗号化された静的リソースを第1のエンティティから取得し、
    第2の鍵を取得し、
    前記第2の鍵を使用することにより前記少なくとも1つの暗号化された静的リソースを復号し、
    前記少なくとも1つの静的リソースを前記第1のエンティティに提供する、
    ように構成されたコンピュータプログラム復号装置。
  27. コンピュータプログラムコード手段を持つコンピュータ読取可能媒体を有するコンピュータプログラムプロダクトにおいて、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
    第1のエンティティにおいて、第1の鍵を用いて暗号化された少なくとも1つの静的リソースを取得するステップと、
    前記少なくとも1つの暗号化された静的リソースを第2のエンティティに提供するステップと、
    前記第1の鍵による暗号化が第2の鍵を使用して復号された場合に、前記第1のエンティティにより前記第2のエンティティから前記少なくとも1つの静的リソースを取得するステップと、
    を前記コンピュータに実行させるコンピュータプログラムプロダクト。
  28. コンピュータプログラムコード手段を有するコンピュータプログラムエレメントにおいて、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
    第1のエンティティにおいて、第1の鍵を用いて暗号化された少なくとも1つの静的リソースを取得するステップと、
    前記少なくとも1つの暗号化された静的リソースを第2のエンティティに提供するステップと、
    前記第1の鍵による暗号化が第2の鍵を使用して復号された場合に、前記第1のエンティティにより前記第2のエンティティから前記少なくとも1つの静的リソースを取得するステップと、
    を前記コンピュータに実行させるコンピュータプログラムエレメント。
  29. コンピュータプログラムコード手段を持つコンピュータ読取可能媒体を有するコンピュータプログラムプロダクトにおいて、前記コンピュータプログラムコード手段がコンピュータにロードされる場合に、
    少なくとも1つの静的リソースが第1の鍵を使用することにより暗号化された少なくとも1つの暗号化された静的リソースを第1のエンティティから取得するステップと、
    第2の鍵を取得するステップと、
    前記第2の鍵を使用することにより前記少なくとも1つの暗号化された静的リソースを復号するステップと、
    前記少なくとも1つの静的リソースを前記第1のエンティティに提供するステップと、
    を前記コンピュータに実行させるコンピュータプログラムプロダクト。
  30. 少なくとも1つの静的リソースが第1の鍵を使用することにより暗号化された少なくとも1つの暗号化された静的リソースを第1のエンティティから取得するステップと、
    第2の鍵を取得するステップと、
    前記第2の鍵を使用することにより前記少なくとも1つの暗号化された静的リソースを復号するステップと、
    前記少なくとも1つの静的リソースを前記第1のエンティティに提供するステップと、
    をコンピュータに実行させるコンピュータプログラムコード手段を有するコンピュータプログラムエレメント。
JP2006544631A 2003-12-22 2004-12-06 アクティブなエンティティを使用するソフトウェア実行保護 Pending JP2007515723A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03104884 2003-12-22
PCT/IB2004/052674 WO2005064433A1 (en) 2003-12-22 2004-12-06 Software execution protection using an active entity

Publications (2)

Publication Number Publication Date
JP2007515723A true JP2007515723A (ja) 2007-06-14
JP2007515723A5 JP2007515723A5 (ja) 2008-01-31

Family

ID=34717217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006544631A Pending JP2007515723A (ja) 2003-12-22 2004-12-06 アクティブなエンティティを使用するソフトウェア実行保護

Country Status (6)

Country Link
US (1) US20070198857A1 (ja)
EP (1) EP1700181A1 (ja)
JP (1) JP2007515723A (ja)
KR (1) KR20060127007A (ja)
CN (1) CN1898623A (ja)
WO (1) WO2005064433A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012514277A (ja) * 2008-12-26 2012-06-21 エスケーテレコム株式会社 ソフトウェアライセンス保護方法、そのためのシステム、サーバ、端末機、及びコンピュータで読み取り可能な記録媒体

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650127B1 (en) * 2006-01-06 2014-02-11 Apple Inc. Digital rights management for computer program code
US20080229115A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Provision of functionality via obfuscated software
US9274923B2 (en) * 2008-03-25 2016-03-01 Wind River Systems, Inc. System and method for stack crawl testing and caching
JP5356718B2 (ja) * 2008-04-22 2013-12-04 株式会社 エヌティーアイ 電子鍵システム
US9177488B2 (en) * 2008-08-11 2015-11-03 International Business Machines Corporation Method, system and program product for securing data written to a storage device coupled to a computer system
US8676258B2 (en) * 2011-02-15 2014-03-18 David Goren Systems and methods of transferring user information to different devices
US10944866B2 (en) 2011-02-15 2021-03-09 David Goren Systems and methods of transferring user information to different devices
US9754115B2 (en) 2011-03-21 2017-09-05 Irdeto B.V. System and method for securely binding and node-locking program execution to a trusted signature authority
EP3518128B1 (en) * 2011-03-30 2021-04-28 Irdeto B.V. Enabling a software application to be executed on a hardware device
EP2629223A1 (en) * 2012-02-14 2013-08-21 Thomson Licensing System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction
CN108011879B (zh) * 2017-11-30 2020-10-16 广州酷狗计算机科技有限公司 文件加密、解密的方法、装置、设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11509023A (ja) * 1995-07-13 1999-08-03 シグヨーンセン,シガード 無許可使用に対するソフトウェアの保護

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10303880A (ja) * 1997-05-01 1998-11-13 Digital Vision Lab:Kk サービス提供システム
KR100748867B1 (ko) * 1999-09-03 2007-08-13 코닌클리케 필립스 일렉트로닉스 엔.브이. 기록된 공개 자료로부터 마스터 키의 복구
WO2001065366A1 (en) * 2000-03-02 2001-09-07 Alarity Corporation System and method for process protection
US7380120B1 (en) * 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US6782477B2 (en) * 2002-04-16 2004-08-24 Song Computer Entertainment America Inc. Method and system for using tamperproof hardware to provide copy protection and online security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11509023A (ja) * 1995-07-13 1999-08-03 シグヨーンセン,シガード 無許可使用に対するソフトウェアの保護

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012514277A (ja) * 2008-12-26 2012-06-21 エスケーテレコム株式会社 ソフトウェアライセンス保護方法、そのためのシステム、サーバ、端末機、及びコンピュータで読み取り可能な記録媒体

Also Published As

Publication number Publication date
WO2005064433A1 (en) 2005-07-14
US20070198857A1 (en) 2007-08-23
EP1700181A1 (en) 2006-09-13
CN1898623A (zh) 2007-01-17
KR20060127007A (ko) 2006-12-11

Similar Documents

Publication Publication Date Title
US7975312B2 (en) Token passing technique for media playback devices
US8549606B2 (en) Device for protecting digital content, device for processing protected digital content, method for protecting digital content, method for processing protected digital content, storage medium storing program for protecting digital content, and storage medium storing program for processing protected digital content
US20090208003A1 (en) Authentication Method, Host Computer and Recording Medium
JP2007013433A (ja) 暗号化データを送受信する方法及び情報処理システム
JP2002077137A (ja) 電子著作物の保護方法及び保護システム
JP2002077136A (ja) 電子著作物の保護方法及び保護システム
US10103884B2 (en) Information processing device and information processing method
JP4353651B2 (ja) 電子著作物から秘話化電子著作物を生成する方法、及び電子著作物をプレゼンテーションデータに変換する間保護する方法
JP4470982B2 (ja) 情報処理装置及び情報処理プログラム
JP2013175179A (ja) 少なくとも1つの暗号化された命令を備えるソフトウェアアプリケーションの協調実行のためのシステム、デバイスおよび方法
JP2021525030A (ja) ユーザ保護ライセンス
JPH1198134A (ja) クッキーの改ざん・コピー検出処理方法およびプログラム記憶媒体
JP2007515723A (ja) アクティブなエンティティを使用するソフトウェア実行保護
JP2016129403A (ja) 暗号化プロトコルの難読化された初期値に対するシステムおよび方法
JP2008508763A (ja) 鍵暗号化鍵方式を使って暗号化されたネットワークコンテンツを提供および復号するための装置および方法
JP6796861B2 (ja) アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステム
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
JPH10271104A (ja) 暗号化方法及び復号化方法
JP2005303370A (ja) 半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法
CN107688729B (zh) 基于可信主机的应用程序保护系统及方法
JP2005507195A (ja) エンティティ・ロックされたセキュア・レジストリを用いて素材にアクセスする装置及び方法
KR100467570B1 (ko) 디지털 콘텐츠를 위한 보안 서비스 방법 및 그를 위한시스템
CN112597453A (zh) 程序代码加密解密方法和装置
JP2005266887A (ja) プログラム難読化装置、プログラム配布システム、コンピュータプログラム
US11748459B2 (en) Reducing software release date tampering by incorporating software release date information into a key exchange protocol

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110405