JP2004348710A - 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置 - Google Patents

固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置 Download PDF

Info

Publication number
JP2004348710A
JP2004348710A JP2004083468A JP2004083468A JP2004348710A JP 2004348710 A JP2004348710 A JP 2004348710A JP 2004083468 A JP2004083468 A JP 2004083468A JP 2004083468 A JP2004083468 A JP 2004083468A JP 2004348710 A JP2004348710 A JP 2004348710A
Authority
JP
Japan
Prior art keywords
obfuscated
codes
code
unique number
program
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
JP2004083468A
Other languages
English (en)
Inventor
Jae-Heung Lee
栽興 李
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2004348710A publication Critical patent/JP2004348710A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 オリジナルコードを複数の難読化手法でそれぞれ異なる複数のコードを生成する方法と、別の認証過程を必要としないプログラムアップグレード方法と、これらの方法のための装置を提供する。
【解決手段】 プログラムの耐タンパ手法は、オリジナルコードを、複数の難読化手法を用いて複数の難読化されたコードを生成し、プログラム固有番号を生成した後、固有番号別に前記生成した難読化されたコードの中の一つを決定して使用者に提供する。アップグレード方法は、アップグレードコードを、前記難読化手法で複数の難読化されたコードを生成し、既存の難読化されたコードと比較し、その差で複数のパッチコードを生成する。パッチコードは、使用者から入力された固有番号により選択される。
【選択図】 図2

Description

本発明は、プログラムの耐タンパ(tamper resist)のための方法及びこのための装置に関し、より詳しくは、プログラムの固有番号を用いた耐タンパ手法、及び耐タンパ性を持つプログラムのアップグレードのための方法、並びにこれらのための装置に関する。
最近、インターネットの発達に伴い、インターネットを介して様々なコンテンツを提供するコンテンツプロバイダが大幅に増加している。コンテンツとは、元来、書籍、論文などの内容や目次を称する言葉であったが、現在は、主に種々の有無線通信網を介して提供されるデジタル情報を通称する言葉として使われている。例えば、インターネットやパソコン通信などにより提供される種々のプログラムや情報内容物、CD-ROMなどに書き込まれた映像や音楽などのマルチメディアコンテンツ、ゲームソフトウェアなどがこれに属している。
インターネットの普及初期には、インターネットを介してコンテンツを無料に提供していたが、この頃は、コンテンツ提供サービスの有料化が進んでいる。このような傾向により、オンライン上の無形の資産のデジタルコンテンツを保護し管理する方法、例えば、デジタル著作権管理(Digital Rights Management:以下、「DRM」と称する)に関し、様々な論議が行われている。
DRMは、ウェブを介した有料コンテンツの安全な配布を保証し、特に、不正な配布を防止するために開発されたサーバソフトウェアの一種の意味もある。DRM技術は、例えば、ナップスタのような使用者間のファイル交換プログラムの広範な使用により急激に増加された常用コンテンツのオンライン上でのプライバシー保護の手段として開発されている。
DRMは、オンラインコンテンツが著作権法により保護されてはいるものの、ウェブでの不正なアクセスを防ぎ、不正使用者を捜し出すのは、現実的に極めて難しいという点で、必要性が高まっている。また、DRM技術は、インターネット上でハッカーが犯行を起した後に逮捕するというとりとめのない対応策でなく、より確実な問題解決への接近方式であり、最初からウェブコンテンツをハッキングすることそのものを不可能にしている。多くの企業では、様々な接近方法や技術に基づいた様々なDRM製品を市販している。一般に、DRM 製品は、サーバソフトウェアや使用者用のプラグインなど、運営に必要な全てのものが含まれている一括パッケージ型になっている。
このようなDRM技術の一つとして、プログラムが耐タンパ性を持たせるための難読化(Obfuscation)手法がある。
難読化とは、難読化される前のソースコード、 オブジェクトコード、または 実行ファイルなどのプログラムコード(以下、「オリジナルコード)と称する)と同一の機能を持つが、不必要な演算などを付加し、リバースエンジニアリングが難しくなるようにコードを変更することをいう。
例えば、下記のようなコードがあると仮定する。
i=1;
while (i<100) {
中略
i++;
}
前記コードは、下記のように変更してもその機能の差はない。
i=1; j=100;
while ((i<100) && (((j*j*(j+1)*(j+1))%4) == 0)) {
中略
i++;
j=j*i+3;
}
即ち、j*j*(j+1)*(j+1)は、jが奇数でも偶数でも常に4の倍数となり、従って、((j*j*(j+1)*(j+1))%4) == 0は、常に真となる。
このように、ループに条件を挿入する方式で難読化する方法があり、その他にも様々な難読化手法がある。
難読化手法に関する論文の例として、非特許文献1〜3などが挙げられる。実際に、難読化のための様々な方法があり、以下に、具体的な難読化手法に関する説明は省略し、ただ、様々な難読化手法があることを前提として説明する。
図1Aは、従来の技術において、プログラムが耐タンパ性を持たせる過程を説明するための図である。
従来の技術においては、プログラムが耐タンパ性を持たせるために、ソースコード、またはオブジェクトコードなどの難読化される前のオリジナルコードを、既存の一つまたは複数の難読化手法を組み合わせて難読化し、難読化されたコードを生成している。
難読化されたコードは、各使用者に配布される。このとき、主にオンラインを介して配布されるが、その他にもCDやフロッピディスクなどで配布することもできる。
しかし、難読化手法は、オリジナルコードを完全に隠せず、理解し難く生成することにより、リバースエンジニアリングに対抗する方法であるが、充分な時間や努力があれば、オリジナルコードを見つけ出すことができる。即ち、頻繁なアップグレードを必要とするプログラムであれば、悪意の使用者は、難読化されたコードからオリジナルコードを見つけてアップグレードファイルを他の全ての使用者に不法的に提供することができる。このような問題点を解決するために、一つの難読化手法でなく、複数の難読化手法を用いることにより、一つの難読化手法を用いて難読化されたコードからオリジナルコードを見つけ出す場合でも、異なる難読化手法で難読化されたプログラムの使用者に対しては、アップグレードファイルを不正に提供できなくなるようにする方法が開発されていた。
図1Bは、複数の難読化手法を行い、プログラムが耐タンパ性を持たせる従来の方法を示している。
即ち、一つのオリジナルコードを、複数の難読化手法を用いてそれぞれ異なるコードを生成し、使用者に提供する。もし、誰かが特定のコードに対する難読化手法を見つけることになり、これを用いてアップグレードファイルを不正に提供しようとしても、異なる難読化手法で難読化されたプログラムの使用者には、アップグレードファイルを提供することができなくなる。
しかし、このような方法を用いる場合に、アップグレードをしようとすると、使用者がどのような難読化されたプログラムを持っているかが把握できないため、プログラムをアップグレードしようとすると、アップグレードされたコードを新たに受け、アップグレードしなければならないという煩わしさがあり、特に、オンラインゲームのように、頻繁にパッチファイルを提供してアップグレードされるプログラムに関わるものである場合には、一層不便になる。また、使用者は、既存のプログラムを持っていない場合でも、アップグレードを要求することにより、新しくアップグレードされたプログラムの提供を受けることができるため、これに対する解決策としてアップグレードを求める使用者に対しては、正当な使用者であるか否かを別に認証しなければないという問題点があった。
http://www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97c/index.html、 http://www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97d/index.html、 http://www.cs.arizona.edu/~collberg/Research/Publications/CollbergThomborsonLow97a/index.html
本発明は、上記問題点に鑑みなされたものであり、不正なアップグレードを防止するために、オリジナルコードをベースに、複数の難読化手法でそれぞれ異なる複数のコードを生成する方法と、複数の難読化されたコードをアップグレードするために、別の認証過程を必要としないプログラムアップグレード方法を提供し、またこれらの方法のための装置を提供することを目的とする。
上記の目的を達成するため、本発明によるプログラムの耐タンパ手法は、オリジナルコードを、それぞれ異なるN個の難読化手法で難読化し、難読化された第1〜第Nのコードを生成するステップと、固有番号を生成するステップと、前記固有番号を所定の計算方法で計算し、計算された値に対応する使用者に提供すべき難読化されたコードを決定するステップとを含む。N個の難読化されたコードの中から一つを選択することは、固有番号の一部または全体桁数の和をNに割った残りを基準として行うことができる。
また、本発明によるプログラムアップグレード方法は、それぞれ異なるN個の難読化手法で生成された難読化された第1〜第Nのコードの中から固有番号を用いて選択された難読化されたコードをアップグレードする方法であって、アップグレードコードを前記N個の難読化手法で難読化し、難読化された第1〜第Nのアップグレードコードを生成するステップと、前記難読化された第1〜第Nのアップグレードコードと、前記難読化された第1〜第Nのコードとを比較し、比較により得られたそれぞれ異なるコードで第1〜第Nのパッチコードを生成するステップと、使用者の固有番号を受け、所定の計算方法で計算し、計算された値に対応する使用者に提供すべきパッチコードを決定するステップとを含む。N個のパッチコードの中から一つを選択することは、固有番号の一部または全体桁数の和をNに割った残りを基準として行うことができる。一方、無断で複製された特定の固有番号に多数のプログラムのアップグレードを防止するために、前記使用者の固有番号を受ける回数が一定の回数を超えると、前記固有番号に対応する使用者に提供するパッチコードが提供されないようにすることができる。
また、本発明によるプログラムの耐タンパ装置は、オリジナルコードをそれぞれ異なるN個の難読化手法で難読化し、それぞれ異なるN個の難読化されたコードを生成する難読化部と、前記難読化されたコードを格納するコードテーブルと、配布される個々のプログラムを識別するための固有番号を生成する固有番号生成器と、前記固有番号生成器で生成された固有番号を受け、所定の方式で計算し、計算された値に対応する前記コードテーブルに格納されている使用者に提供すべき難読化されたコードを決定するマッピング部とを備えている。前記マッピング部は、前記固有番号生成器で生成された固有番号の一部または全体桁数の和をNに割った残りを基準として、前記コードテーブルに格納されたN個の難読化されたコードの中の一つを選択することができる。
また、本発明によるプログラムアップグレード装置は、それぞれ異なるN個の難読化手法で生成された難読化された第1〜第Nのコードのうち、固有番号を用いて選択した難読化されたコードをアップグレードするプログラムアップグレード装置において、アップグレードコードを、前記N個の難読化手法で難読化して難読化された第1〜第Nのアップグレードコードを生成する難読化部と、前記難読化された第1〜第Nのコードと、前記難読化された第1〜第Nのアップグレードコードとを比較し、比較により得られたそれぞれ異なるコードで第1〜第Nのパッチコードを生成する比較部と、前記第1〜第Nのパッチコードを格納するコードテーブルと、入力された固有番号を受けて所定の方法で計算し、計算された値に対応する前記コードテーブルに格納されている使用者に提供すべきパッチコードを決定するマッピング部とを備えている。前記マッピング部は、前記入力した固有番号の一部または全体桁数の和をNに割った残りを基準として前記コードテーブルに格納されているN個のパッチコードの中から一つを選択することができる。一方、同一の固有番号の入力回数が一定の回数を超えると、前記固有番号に対応する使用者にパッチコードを提供しないようにするために、入力される固有番号の入力回数をカウンティングするカウンターをさらに備えてもよい。
以上のように、本発明によると、一つのオリジナルコードをベースに、複数の難読化手法を用いて生成された複数の難読化されたコードを、使用者に配布しているため、使用者に配布された何れか一つの難読化されたコードに対し、競争者や悪意の使用者が難読化されたコードを解読する方法を見つけた場合でも、他の使用者に配布された難読化されたコードには、適用することができない。
また、頻繁なアップグレードを必要とするプログラムにおいて、複数の難読化手法を用いて難読化されたコードを使用者に配布する場合、従来技術では、現在使用中のプログラムがどのような難読化手法を用いたコードであるかを把握しにくく、アップグレードすることが難しかったが、本発明によると、使用者が使用しているプログラムの固有番号が決定されると、使用された難読化手法も判断されるため、アップグレードを容易に行うことが可能となる。
一方、本発明によると、不正な複製が行われる場合に、特定の固有番号を持つプログラムに対するパッチ回数を制限し、ある程度不正な複製を防ぐことができるという効果がある。
以下、本発明の好ましい実施の形態を、添付図面に基づいて詳しく説明する。
図2は、本発明の一実施の形態のシステム環境を示す図である。
プログラムのタンパ防止及びアップグレードのためのDRMサーバ100は、オリジナルコードまたはアップグレードコードを難読化するための難読化部110と、難読化されたコードを格納するコードテーブル120と、固有番号を生成する固有番号生成器130と、固有番号を受け、コードテーブルに格納されている難読化されたコードを決定するマッピング部140と、アップグレードコードが新たに難読化した場合に、これと既存の難読化されたコードと比較してパッチコードを生成し、これをコードテーブルに送る比較部160と、インターネット(図示せず)またはその他の媒体を介して使用者のコンピュータ200とデータをやりとりできる入出力部150と、アップグレードを要求するために、使用者のコンピュータ200から入出力部150に転送した固有番号の転送回数をカウンティングするためのカウンター170とを備えている。
先ず、図3及び図4を参照してプログラムの耐タンパ手法を説明する。
図3は、本発明の一実施の形態によるプログラムが耐タンパ性を持たせるために、難読化のためのコードテーブルを生成する過程を示す図であり、図4は、図3に示す過程で生成されたコードテーブルを用いて、プログラムが耐タンパ性を持たせる方法を示す図である。
先ず、難読化部110は、オリジナルコードを、N個の難読化手法を用いてN個の難読化されたコードを生成する。本発明において、オリジナルコードとは、難読化されていないプログラムのソースコード、オブジェクトコード、または実行ファイルを意味する。難読化された第1〜第Nのコードは、コードテーブル120に格納される。また、コードテーブルとは、難読化されたコードを格納する空間の意味であるが、難読化されたコードの集合の意味もある。
図4を参照して、先ず、固有番号生成器130は、使用者に配布される各プログラムの固有番号、例えば、シリアル番号を生成する。マッピング部140は、固有番号を受け、所定の計算方法で難読化されたコードを決定するマッピング番号を生成する。例えば、固有番号が「123456789012」という12桁の数であるとし、難読化されたコードの数が16であるとすれば、123456789012 mod 16を計算すると、「1」となり、従って、難読化された第1のコードが前記固有番号 「123456789012」に対して配布するコードとなる。配布するコードは、第1のコードに決定されたので、固有番号「123456789012」や難読化された第1のコードを使用者に配布する。一方、前記所定の計算方法は、上記の例に限定されるものでなく、ハッシュ関数を用いる方法などを適用することもできる。このとき、使用者に配布する方法は、入出力部150を介してインターネットで使用者のコンピュータ200に転送したり、決定された第1のコード及び固有番号「123456789012」をCDやその他の格納媒体に格納し、これを使用者に提供したりすることができる。
次に、図5及び図6を参照してプログラムアップグレード方法について説明する。
図5は、本発明の一実施の形態のプログラムのアップグレードのためのコードテーブルを生成する過程を示す図であり、図6は、図5の過程で生成されたコードテーブルを用いてプログラムアップグレードする方法を示す図である。
難読化部110は、アップグレードのためのアップグレードコードを、N個の難読化手法を用いて難読化されたN個のアップグレードコードを生成する。この難読化されたアップグレードコードは、既存のコードテーブル120に格納されている既存の難読化されたコードと、比較部160で比較される。比較部160は、難読化されたアップグレードコードと、既存の難読化されたコードとを比較し、N個のパッチコードを生成する。生成された第1〜第Nのパッチコードは、コードテーブル120に格納される。
オンラインで使用者のコンピュータ200のプログラムをアップグレードしようとすると、先ず、DRMサーバ100に固有番号を転送する必要がある。カウンター170は、無断で複製されたプログラムに対するアップグレードを遮断するために、受信した固有番号に対するアップグレードの要求回数をカウンティングする。マッピング部140は、受信した固有番号に該当するパッチコードを決定し、決定されたパッチコードは、使用者のコンピュータ200に転送される。一方、カウンティング回数が所定の回数、例えば、5回以上である場合には、該当の固有番号は、無断で複製されたプログラムの固有番号である可能性が高いため、固有番号に該当するパッチコードを転送せず、DRMサーバ100の担当者に問い合わせろというメッセージなどを代わって転送する。
本発明は、これに限定されるものでなく、このような本発明の基本的な技術的思想を逸脱しない範囲内で、当業界の通常の知識を有する者にとっては、他の多くの変更が可能であろう。例えば、以上の実施の形態においては、N個の異なる 難読化手法を中心にして説明してきたが、本発明は、これに限定されるものでなく、Nより小さい数の難読化手法を組み合わせて、N個の難読化手法を生成できる。つまり、Nが10である場合、難読化手法が五つあれば、五つのうち、二つを組み合わせたもので十の難読化手法を生成することができる。
一方、本発明の実施の形態の各構成要素は、ハードウェアで具現できるが、本発明は、これに限定されるものでなく、ソフトウェアモジュール、またはソフトウェアモジュールとハードウェアモジュールとの組み合わせとして具現したものも本発明の基本的な技術的思想を逸脱しない。
以上のように、上記実施の形態を参照して詳細に説明され図示されたが、本発明は、これに限定されるものでなく、このような本発明の基本的な技術的思想を逸脱しない範囲内で、当業界の通常の知識を有する者にとっては、他の多くの変更が可能であろう。また、本発明は、添付の特許請求の範囲により解釈されるべきであることは言うまでもない。
従来の技術において、プログラムが耐タンパ性を持たせる過程を説明するための図である。 複数の難読化手法を行い、プログラムが耐タンパ性を持たせる従来の方法を説明するための図である。 本発明の一実施の形態のシステム環境を示す図である。 本発明の一実施の形態によりプログラムが耐タンパ性を持たせるために、難読化のためのコードテーブルを生成する過程を説明するための図である。 本発明の一実施の形態によりプログラムが耐タンパ性を持たせる過程を説明するための図である。 本発明の一実施の形態によりプログラムのアップグレードのためのコードテーブルを生成する過程を説明するための図である。 本発明の一実施の形態によりプログラムのアップグレードを行う過程を説明するための図である。
符号の説明
100 DRMサーバ
110 難読化部
120 コードテーブル
130 固有番号生成器
140 マッピング部
150 入出力部
160 比較部
170 カウンター
200 使用者のコンピュータ

Claims (10)

  1. (a)オリジナルコードを、それぞれ異なるN個の難読化手法を用いて難読化された第1〜第Nのコードを生成するステップと、
    (b)固有番号を生成するステップと、
    (c)前記固有番号を所定の計算方法で計算し、計算された値に対応する使用者に提供すべき難読化されたコードを決定するステップとを含むことを特徴とするプログラムの耐タンパ手法。
  2. 前記(c)ステップは、固有番号の一部または全体桁数の和をNに割った残りを基準として、N個の難読化されたコードの中の一つを選択することを特徴とする請求項1に記載のプログラムの耐タンパ手法。
  3. それぞれ異なるN個の難読化手法を用いて生成された難読化された第1〜第Nのコードのうち、固有番号を用いて選択した難読化されたコードをアップグレードするプログラムアップグレード方法において、
    (a)アップグレードコードを、前記N個の難読化手法で難読化された第1〜第Nのアップグレードコードを生成するステップと、
    (b)前記(a)ステップの難読化された第1〜第Nのアップグレードコードと、前記難読化された第1〜第Nのコードとを比較し、比較により得られたそれぞれ異なるコードで第1〜第Nのパッチコードを生成するステップと、
    (c)使用者の固有番号を受け、所定の計算方法で計算し、計算された値に対応する使用者に提供すべきパッチコードを決定するステップとを含むことを特徴とするプログラムアップグレード方法。
  4. 前記(c) ステップは、固有番号の一部または全体桁数の和をNに割った残りを基準として、N個のパッチコードの中の一つを選択することを特徴とする請求項3に記載のプログラムアップグレード方法。
  5. 前記使用者の固有番号を受ける回数が一定の回数を超えると、前記固有番号に対応する使用者に提供すべきパッチコードを提供しないことを特徴とする請求項3に記載のプログラムアップグレード方法。
  6. オリジナルコードを、それぞれ異なるN個の難読化手法を用いて難読化し、それぞれ異なるN個の難読化されたコードを生成する難読化部と、
    前記難読化されたコードを格納するコードテーブルと、
    配布される個々のプログラムを識別するための固有番号を生成する固有番号生成器と、
    前記固有番号生成器で生成された固有番号を受け、所定の方式で計算し、計算された値に対応する前記コードテーブルに格納されている使用者に提供すべき難読化されたコードを決定するマッピング部とを備えることを特徴とするプログラムの耐タンパ装置。
  7. 前記マッピング部は、前記固有番号生成器で生成された固有番号の一部または全体桁数の和をNに割った残りを基準として、前記コードテーブルに格納されているN個の難読化されたコードの中の一つを選択することを特徴とする請求項6に記載のプログラムの耐タンパ装置。
  8. それぞれ異なるN個の難読化手法で生成された難読化された第1〜第Nのコードのうち、固有番号を用いて選択した難読化されたコードをアップグレードするプログラムアップグレード装置において、
    アップグレードコードを、前記N個の難読化手法を用いて難読化された第1〜第Nのアップグレードコードを生成する難読化部と、
    前記難読化された第1〜第Nのコードと、前記難読化された第1〜第Nのアップグレードコードとを比較し、比較により得られたそれぞれ異なるコードで第1〜第Nのパッチコードを生成する比較部と、
    前記第1〜第Nのパッチコードを格納するコードテーブルと、
    入力された固有番号を所定の方法で計算し、計算された値に対応する前記コードテーブルに格納されている使用者に提供すべきパッチコードを決定するマッピング部とを備えることを特徴とするプログラムアップグレード装置。
  9. 前記マッピング部は、前記入力された固有番号の一部または全体桁数の和をNに割った残りを基準として、前記コードテーブルに格納されているN個のパッチコードの中の一つを選択することを特徴とする請求項8に記載のプログラムアップグレード装置。
  10. 同一の固有番号の入力回数が一定回数を超えると、前記固有番号に対応する使用者にパッチコードを提供しないようにするために、入力される固有番号の入力回数をカウンティングするカウンターをさらに備えることを特徴とする請求項8に記載のプログラムアップグレード装置。

JP2004083468A 2003-05-20 2004-03-22 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置 Pending JP2004348710A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030032081A KR100568228B1 (ko) 2003-05-20 2003-05-20 고유번호를 이용한 프로그램 탬퍼 방지 방법과 난독처리된 프로그램 업그레이드 방법, 상기 방법을 위한 장치

Publications (1)

Publication Number Publication Date
JP2004348710A true JP2004348710A (ja) 2004-12-09

Family

ID=33516345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004083468A Pending JP2004348710A (ja) 2003-05-20 2004-03-22 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置

Country Status (4)

Country Link
US (1) US20040260933A1 (ja)
JP (1) JP2004348710A (ja)
KR (1) KR100568228B1 (ja)
CN (1) CN100382483C (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006090800A1 (ja) * 2005-02-25 2006-08-31 Matsushita Electric Industrial Co., Ltd. セキュア処理装置、及びセキュア処理システム
JP2006235688A (ja) * 2005-02-22 2006-09-07 Kddi Corp プログラム難読化装置およびその方法ならびにプログラム
JP2008102576A (ja) * 2006-10-17 2008-05-01 Kddi Corp プログラム解析方法およびプログラム
JP2010508583A (ja) * 2006-10-27 2010-03-18 マイクロソフト コーポレーション 多様化された不正操作耐性のための仮想化
JP2013524305A (ja) * 2010-03-25 2013-06-17 イルデト カナダ コーポレーション サイドチャネル攻撃および反復起動攻撃に耐える動的可変タイミング演算パスのシステムおよび方法
JP2017513077A (ja) * 2015-01-08 2017-05-25 スンシル ユニバーシティー リサーチ コンソルティウム テクノ−パークSoongsil University Research Consortium Techno−Park 見分けが難解な識別子変換を用いたコード難読化装置及び方法
JP2018509723A (ja) * 2015-03-13 2018-04-05 エバースピン コーポレーション 動的なセキュリティーモジュール端末装置及びその駆動方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation
US20050069138A1 (en) * 2003-09-25 2005-03-31 Sun Microsystems, Inc., A Delaware Corporation Application program obfuscation
US7363620B2 (en) * 2003-09-25 2008-04-22 Sun Microsystems, Inc. Non-linear execution of application program instructions for application program obfuscation
US7353499B2 (en) * 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US8220058B2 (en) * 2003-09-25 2012-07-10 Oracle America, Inc. Rendering and encryption engine for application program obfuscation
US7424620B2 (en) * 2003-09-25 2008-09-09 Sun Microsystems, Inc. Interleaved data and instruction streams for application program obfuscation
WO2006065989A2 (en) * 2004-12-15 2006-06-22 Tested Technologies Corporation Method and system for detecting and stopping illegitimate communication attempts on the internet
US20080168562A1 (en) * 2005-02-25 2008-07-10 Tomoyuki Haga Secure Processing Device and Secure Processing System
US20060259903A1 (en) * 2005-05-12 2006-11-16 Xerox Corporation Method for creating unique identification for copies of executable code and management thereof
US20060259900A1 (en) * 2005-05-12 2006-11-16 Xerox Corporation Method for creating unique identification for copies of executable code and management thereof
US8280431B2 (en) 2006-12-29 2012-10-02 Intel Corporation Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods
WO2008088073A1 (en) * 2007-01-18 2008-07-24 Panasonic Corporation Obfuscation assisting apparatus
KR101457506B1 (ko) * 2007-05-21 2014-11-06 (주)다츠 오프라인 구매 인증 방법 및 시스템
US8839383B2 (en) * 2007-08-20 2014-09-16 Goldman, Sachs & Co. Authentification broker for the securities industry
JP4932033B2 (ja) * 2008-03-28 2012-05-16 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
WO2009118801A1 (ja) 2008-03-28 2009-10-01 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム
US9524345B1 (en) 2009-08-31 2016-12-20 Richard VanderDrift Enhancing content using linked context
KR101097103B1 (ko) * 2009-12-22 2011-12-22 한국저작권위원회 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법
US9639707B1 (en) 2010-01-14 2017-05-02 Richard W. VanderDrift Secure data storage and communication for network computing
CN101807239A (zh) * 2010-03-29 2010-08-18 山东高效能服务器和存储研究院 一种防止源代码反编译的方法
US9639377B2 (en) 2010-03-31 2017-05-02 Irdeto B.V. Method for linking and loading to protect applications
JP5555803B2 (ja) * 2010-03-31 2014-07-23 イルデト カナダ コーポレーション カプセル化し、ソフトウェアライブラリ中の多様化によって保護を可能にするための、システムと方法
CN101887500B (zh) * 2010-06-10 2013-01-02 复旦大学 基于标签的程序控制流深度混淆方法
DE102013201937A1 (de) * 2013-02-06 2014-08-07 Areva Gmbh Vorrichtung und Verfahren zur Erkennung von unbefugten Manipulationen des Systemzustandes einer Steuer- und Regeleinheit einer kerntechnischen Anlage
CN104166822B (zh) * 2013-05-20 2017-10-13 阿里巴巴集团控股有限公司 一种数据保护的方法和装置
US9981184B2 (en) * 2013-06-17 2018-05-29 Tencent Technology (Shenzhen) Company Limited Method and system for invoking plug-in function
US20150264024A1 (en) * 2014-03-15 2015-09-17 Alexander Frank System and method for confidential remote computing
CN105306505A (zh) * 2014-07-11 2016-02-03 腾讯科技(深圳)有限公司 数据更新方法、终端及服务器
CN107203707B (zh) * 2016-03-16 2020-05-12 阿里巴巴集团控股有限公司 一种实现程序代码混淆的方法和系统
CN107092518A (zh) * 2017-04-17 2017-08-25 上海红神信息技术有限公司 一种保护拟态防御系统软件层安全的编译方法
CN108804880B (zh) * 2017-04-28 2020-07-10 中移(杭州)信息技术有限公司 一种软件生成方法和装置
CN109218322B (zh) * 2018-09-28 2021-05-28 郑州昂视信息科技有限公司 一种拟态防御方法、装置及系统
US11397795B2 (en) * 2019-08-01 2022-07-26 Imperva, Inc. Mechanism for providing obfuscated code to web application clients
CN110659459B (zh) * 2019-09-27 2021-07-20 北京金山云网络技术有限公司 一种软件代码处理方法、装置、电子设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006328A (en) 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US5892899A (en) 1996-06-13 1999-04-06 Intel Corporation Tamper resistant methods and apparatus
US6178509B1 (en) * 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
AU7957998A (en) * 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
US6480959B1 (en) * 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
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
US7263722B1 (en) * 1999-05-12 2007-08-28 Fraunhofer Crcg, Inc. Obfuscation of executable code
US6594761B1 (en) * 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
EP1395890A2 (en) * 2001-05-09 2004-03-10 ECD Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
JP2003280754A (ja) * 2002-03-25 2003-10-02 Nec Corp 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム
KR20060004697A (ko) * 2003-05-29 2006-01-12 마츠시타 덴끼 산교 가부시키가이샤 이상 처리 시스템

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006235688A (ja) * 2005-02-22 2006-09-07 Kddi Corp プログラム難読化装置およびその方法ならびにプログラム
JP4675642B2 (ja) * 2005-02-22 2011-04-27 Kddi株式会社 プログラム難読化装置およびその方法ならびにプログラム
JP4796050B2 (ja) * 2005-02-25 2011-10-19 パナソニック株式会社 セキュア処理装置、及びセキュア処理システム
WO2006090800A1 (ja) * 2005-02-25 2006-08-31 Matsushita Electric Industrial Co., Ltd. セキュア処理装置、及びセキュア処理システム
JP2008102576A (ja) * 2006-10-17 2008-05-01 Kddi Corp プログラム解析方法およびプログラム
US9459893B2 (en) 2006-10-27 2016-10-04 Microsoft Technology Licensing, Llc Virtualization for diversified tamper resistance
JP2010508583A (ja) * 2006-10-27 2010-03-18 マイクロソフト コーポレーション 多様化された不正操作耐性のための仮想化
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
JP2013524305A (ja) * 2010-03-25 2013-06-17 イルデト カナダ コーポレーション サイドチャネル攻撃および反復起動攻撃に耐える動的可変タイミング演算パスのシステムおよび方法
JP2017513077A (ja) * 2015-01-08 2017-05-25 スンシル ユニバーシティー リサーチ コンソルティウム テクノ−パークSoongsil University Research Consortium Techno−Park 見分けが難解な識別子変換を用いたコード難読化装置及び方法
JP2018509723A (ja) * 2015-03-13 2018-04-05 エバースピン コーポレーション 動的なセキュリティーモジュール端末装置及びその駆動方法
JP2018511133A (ja) * 2015-03-13 2018-04-19 エバースピン コーポレーション 動的なセキュリティーモジュールサーバー装置及びその駆動方法
JP2018511899A (ja) * 2015-03-13 2018-04-26 エバースピン コーポレーション 動的なセキュリティーモジュール生成方法及び生成装置

Also Published As

Publication number Publication date
CN1574727A (zh) 2005-02-02
KR100568228B1 (ko) 2006-04-07
KR20040099939A (ko) 2004-12-02
US20040260933A1 (en) 2004-12-23
CN100382483C (zh) 2008-04-16

Similar Documents

Publication Publication Date Title
JP2004348710A (ja) 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置
US8838977B2 (en) Watermark extraction and content screening in a networked environment
AU2006200096B2 (en) Flexible licensing architecture in content rights management systems
US8160247B2 (en) Providing local storage service to applications that run in an application execution environment
EP2316095B1 (en) Licensing protected content to application sets
RU2500075C2 (ru) Создание и проверка достоверности документов, защищенных криптографически
US20200226233A1 (en) Distributed ledger-based digital content piracy deterrence
US20060101521A1 (en) System and method for secure usage right management of digital products
US7778417B2 (en) System and method for managing encrypted content using logical partitions
US7500267B2 (en) Systems and methods for disabling software components to protect digital media
US20120303967A1 (en) Digital rights management system and method for protecting digital content
US20070016784A1 (en) Method of storing revocation list
US20100031033A1 (en) Apparatus and method of sharing drm agents
US20070011116A1 (en) Method of updating revocation list
US20230245102A1 (en) Non Fungible Token (NFT) Based Licensing and Digital Rights Management (DRM) for Software and Other Digital Assets
KR100814064B1 (ko) Drm 컨텐츠 패키징 방법 및 시스템
US20140325671A1 (en) Apparatus and method for providing drm service based on cloud
Lee et al. DRMFS: A file system layer for transparent access semantics of DRM-protected contents
Zhaofeng et al. Secure and flexible digital rights management in a pervasive usage mode
KR20060128072A (ko) 디.알.엠 기반의 패키지 컨텐츠 제공 방법 및 그 장치
Piechotta et al. Secure dynamic cloud-based collaboration with hierarchical access
Park et al. Copyright protection for modifiable digital content based on distributed environment

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080304