JP2011521366A - ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法 - Google Patents
ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2011521366A JP2011521366A JP2011509832A JP2011509832A JP2011521366A JP 2011521366 A JP2011521366 A JP 2011521366A JP 2011509832 A JP2011509832 A JP 2011509832A JP 2011509832 A JP2011509832 A JP 2011509832A JP 2011521366 A JP2011521366 A JP 2011521366A
- Authority
- JP
- Japan
- Prior art keywords
- white box
- data
- file
- generating
- call
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 55
- 238000006243 chemical reaction Methods 0.000 claims abstract description 62
- 239000003607 modifier Substances 0.000 claims abstract description 3
- 238000013501 data transformation Methods 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 52
- 239000003292 glue Substances 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000004913 activation Effects 0.000 description 11
- 238000001994 activation Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000000844 transformation Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000013518 transcription Methods 0.000 description 3
- 230000035897 transcription Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 241001074639 Eucalyptus albens Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009428 plumbing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- 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/16—Obfuscation or hiding, e.g. involving white box
Abstract
【選択図】 図6
Description
ユーザは、ユーザのアプリケーションにおいて暗号法が必要であることを確認すると、ユーザが行うAPIへの各呼び出しについて2つの選択肢を有する。これらの選択肢は、ユーザのアプリケーションの基本的な鍵のフローを決定する。(1)行われるべき暗号化操作は何か? 可能な操作には、暗号化、復号化、署名、署名認証、ハッシュ法等が含まれる。(2)この呼び出しのための鍵はランタイムにおいてのみ利用可能であるのか、またはその前に利用可能となるのか? セッション鍵またはコンテンツ鍵といった鍵は、通常、動的に生成されるか、または、非対称復号化の結果として計算される。このような鍵を動的であると広く呼ぶことにする。その一方で、ビルド時間において既知である、または、オフラインサブスクリプション/更新プロセスを介して得ることのできる鍵は、固定鍵と呼ぶ。当然ながらすべての鍵を動的に取り扱うこともできるが、固定鍵として取り扱える場合には、セキュリティ上の優位点がある。
ユーザは、その鍵のフローの妥当性を確認すると、各ホワイトボックス暗号法関数呼び出しをさらにパラメータ化するために一連の関数に関する選択をしなければならない。これらの質問の多くは暗号に固有であるが、幾つかの一般的な質問例は次の通りである。(1)どのアルゴリズムが必要か? 大抵の場合、使用するアルゴリズムは関連のある標準によって指定される。(2)必要な鍵のサイズは何か? ここでは有効な選択はアルゴリズムに依存する。これらの決定は、ユーザによって提供されるホワイトボックスパラメータ化ファイル124内に保存され、ホワイトボックスパラメータ化ファイルは、次にユーザのソースコードと共に処理されて実行ファイルをビルドする。
1.所与の呼び出しがパラメータ化ファイル124内の所与のレコードに一貫してマッピングされるように、IDはリテラル整数定数である。
2.パラメータ化ファイル124内の所与のレコードが一意の呼び出しにマッピングされるように、各呼び出しには一意のIDが与えられる。この規則には次の例外があってもよい。
a.データを共有するように選択された呼び出しは同じIDが与えられなければならない。
b.他の暗号に固有の例外。
●カテゴリ化パラメータ。これらのパラメータは、ブロック暗号または非対称暗号、および、固定鍵対動的鍵といった、用いられるべき暗号化アルゴリズムのカテゴリを記述する。これらのパラメータは2つの目的を有する。第一に、これらのパラメータは、ユーザはレコードを見て対応するホワイトボックス呼び出しの挙動を正確に知ることができるという点でパラメータ化ファイルのレコードを自己充足型にする。第二に、これらのパラメータの仕様によってどのユーザ提供パラメータが期待されるのかを正確に決定されるので、これらのパラメータはエラーチェックを可能にする。
●関数型パラメータ(functional parameter)。これらのパラメータは、ラウンド数といった、用いられるべき暗号化アルゴリズムの特定の属性を記述し、ホワイトボックスAPIにパラメータまたはオプションとして渡される(これは自動的に行われるのでエンドユーザにはトランスペアレントである)。なお、アルゴリズムは関数型パラメータ(例えば、アルゴリズム=AES対アルゴリズム=DES)であって、カテゴリ化パラメータとは見なされない。
●ロバスト性パラメータ。これらのパラメータは、選択されたパラメータに対する変換といった、ホワイトボックス起動のロバスト性特徴に関する特定の決定を記述する。
攻撃を阻止することの難しさの1つとしては、ホワイトボックス暗号化実装自体が鍵の代わりとなりうる点である。ホワイトボックスソフトウェア実装が部分評価によって鍵を埋め込み、復号化を実装する場合、そのアプリケーション全体を、復号化を行う鍵の代わりに用いることができる。つまり、どの暗号が実装されているかまた何が鍵であるのかを判断する代わりに、攻撃者は単にホワイトボックス復号化実装全体を抽出してそれを復号化に利用できてしまう。これは、ホワイトボックス暗号化を「スニッピングする(snipping)」または「コードリフティングする(code-lifting)」と言う。
コード生成ツール150が実行されると、ホワイトボックス呼び出しに対する入力および出力を保護するためにデータ変換を行うことが望ましい。図中、xcodeと示すデータ変換エンジン152は、この関数(本明細書では「トランスコーディング」とも言う)を入力ソースファイル100とホワイトボックス関数呼び出し定義を含むグルーコードに対して行う。Cloakware TranscoderTMといったデータ変換エンジン152を用いて、記載した実装において、データ変換を用いてホワイトボックス機能を提供する。このデータ変換の出力は、隠され(cloaked)または難読化された変換済みソースファイル180(userCode.cloaked.c)と、隠されまたは難読化された呼び出し定義ファイル182(userCode−glue.cloaked.c)と、外部変換メタデータを含むファイル184(グルーメタデータ)である。生成された変換メタデータファイル184は、ホワイトボックスグルー関数に対して選択されたパラメータのデータ変換選択を記述する。
ホワイトボックス暗号法関数に対して一意に識別された呼び出しのそれぞれは関連データを有し、この関連データは、かかる呼び出しに対してなされた関数およびセキュリティに関する選択に基づいて生成されなければならない。このデータを生成するホワイトボックスデータ生成ツール154は、以下、wbdatagen154と呼ぶ。
トランスコード済みまたは変換済みコードをコンパイルおよびリンクするために、ユーザアプリケーションコードをコンパイルするために用いられる同じネイティブツーリングコンパイラ190を用いて、変換済みソースファイル180(userCode.cloaked.c)と、変換済みホワイトボックス呼び出し定義ファイル182(userCode−glue.cloaked.c)と、データ初期設定ファイル(userCode−data.c)をコンパイルして、オブジェクトファイル192を生成し、また、リンカー194(xlink)によってホワイトボックスライブラリ196(xc_wb.lib)に対してリンクされて保護付き実行可能ファイル198を生成する。ホワイトボックスライブラリによって実装される暗号化操作および個々のサブルーチンの正確なAPIの詳細は、本明細書の範囲外である。
変換済みコードのテスト中に、ユーザは、そのアプリケーションのパフォーマンスまたはサイズに不満足であることに気が付くかもしれない。あるいは、パフォーマンスは申し分なく、セキュリティを向上することができる領域があることを見出すかもしれない。この時点で、前のステップにおいてなされた機能またはセキュリティに関する選択はいずれも再検討されてよく、変更はパラメータ化ファイル124に対してのみ行えばよい。幾つかのパラメータを変更して異なるサイズ/速度/セキュリティのトレードオフをすることができる。例えば、
●暗号化形式を、より高いパフォーマンスの変形またはより高いセキュリティの変形に変更してよい。
●高パフォーマンスおよび小さいサイズのために、ラウンド数を(意味のある場合には)減らすか、または、高セキュリティのために増やしてよい。
●高セキュリティのためにデータシャッフリング機能をオンにするか、または、高パフォーマンスのためにオフにしてよい。
●サイズを減少するために異なるホワイトボックス呼び出しに同じIDを与えるか、または、セキュリティを向上するために同じIDを有していた呼び出しに違うIDを与えてよい。
●アプリケーションコードまたは生成されたコードの変換がそれに基づくデータ変換設定を、パフォーマンスを向上するために下げるか、または、セキュリティを向上するために上げてよい。ユーザはさらには、生成されたコードを全く変換しないことを選択してもよい。
セキュリティの観点から、アプリケーションの2つ以上のインスタンスを有することが有利であることが多い。アプリケーションの多様性(diversity)とは、幾つかの異なるが機能的には等しいバージョンのアプリケーションをユーザベースに分配するか、または、既知の脆弱性を軽減する若しくは攻撃が二度と発生しないようにフィールドされた(fielded)アプリケーションに頻繁に更新を行うこと(このような種類の「時間における多様性」を行う能力は更新可能性(renewability)として知られる)を意味しうる。
上記セクションでは、ホワイトボックス暗号化機能をアプリケーションに統合するために必要なステップを記載した。これらのステップは、次の通りにまとめることができる。
●ユーザは、ホワイトボックス暗号APIへの呼び出しを、ユーザのアプリケーションに追加する。
●ユーザはホワイトボックスパラメータ化ファイルを作成して各呼び出しに対してレコードを追加する。
●ユーザはwbcodegenを実行して、次にxcodeが続き、次にwbdatagenが続いて、トランスコードされたビルド用のサポートコードおよびデータが生成される。
●ユーザは、ユーザのアプリケーションをコンパイルし、リンクし、テストする。
●ユーザは、サイズ、パフォーマンス、およびセキュリティに満足するまでステップを繰り返す。
●ユーザは、wbdatagenを繰り返し実行して、サポートデータの多様なインスタンスを作成する。
Claims (20)
- ホワイトボックス暗号法を用いて保護付きソフトウェアアプリケーションを生成する、コンピュータに実装される方法であって、
アプリケーションソースコードおよび抽象化されたホワイトボックス関数呼び出しを含む少なくとも1つの入力ソースファイルを受け取ることと、
各抽象化されたホワイトボックス関数呼び出しに対する暗号化ドメインパラメータを含むパラメータ化ファイルを受け取ることと、
各抽象化されたホワイトボックス関数呼び出しをその暗号化ドメインパラメータに従って定義するホワイトボックス呼び出し定義データを生成することと、
変換済みソースファイルおよび変換済みホワイトボックス呼び出し定義データをそれぞれ生成するように前記入力ソースファイルおよび前記ホワイトボックス呼び出し定義データに少なくとも1つのデータ変換を適用することと、
前記ホワイトボックス呼び出し定義データおよび前記変換済みホワイトボックス呼び出し定義データに従って各ホワイトボックス関数呼び出しに対するインスタンス固有のデータを含むデータ初期設定を生成することと、
を含む、方法。 - 前記変換済みソースファイル、前記変換済みホワイトボックス定義データ、および前記データ初期設定コードをコンパイルすることと、実行可能ソフトウェアアプリケーションを提供するように結果として得られたコンパイル済みコードをホワイトボックスライブラリにリンクすることと、をさらに含む、請求項1に記載の方法。
- 前記ホワイトボックス呼び出し定義データを生成することは、ホワイトボックス呼び出し定義ファイル、および、各ホワイトボックス関数呼び出しに対して選択されるパラメータを指定するホワイトボックスメタデータを生成することを含む、請求項1に記載の方法。
- 前記変換済みホワイトボックス呼び出し定義データに前記少なくとも1つのデータ変換を適用することは、変換済みホワイトボックス呼び出し定義ファイル、および、選択されたパラメータに対して選択されるデータ変換を指定する変換メタデータを生成する、請求項3に記載の方法。
- 前記データ初期設定を生成することは、前記ホワイトボックスメタデータおよび前記変換メタデータに従ってデータ初期設定ファイルを生成することを含む、請求項4に記載の方法。
- 前記ホワイトボックス呼び出し定義データを生成することは、
データ変換エンジンによって理解される変換修飾子を含む少なくとも1つのホワイトボックス呼び出し定義ファイルを生成することと、
前記暗号化ドメインパラメータおよび選択された前記変換を記述する少なくとも1つの変換メタデータファイルを生成することと、
を含む、請求項1に記載の方法。 - 前記ホワイトボックス呼び出し定義データを生成することは、ホワイトボックス実装アプリケーション・プロシージャル・インターフェイス(API)を前記アプリケーションソースコードに接続するコード、および、ホワイトボックス実装APIを別のホワイトボックス実装APIに、これらのAPIがやり取りをしなければならない場合に、接続するコードを自動に生成する、請求項1に記載の方法。
- 前記ホワイトボックス関数呼び出しは、少なくとも1つの連鎖暗号化を呼び出す、請求項1に記載の方法。
- 前記少なくとも1つの連鎖暗号化は、単一の操作として行われる、請求項8に記載の方法。
- 前記実行可能ソフトウェアアプリケーションの多様なインスタンスを生成することをさらに含む、請求項2に記載の方法。
- 前記多様なインスタンスを生成することは、前記実行可能ソフトウェアアプリケーションの各インスタンスに明白に異なる固定鍵を関連付けることを含む、請求項10に記載の方法。
- 前記少なくとも1つのデータ変換は、ブロック暗号を含む、請求項1に記載の方法。
- 前記少なくとも1つのデータ変換は、非対称暗号を含む、請求項1に記載の方法。
- ホワイトボックス暗号化技術を用いてソフトウェアアプリケーションを生成する、コンピュータに実装される方法であって、
アプリケーションソースコードおよび抽象化されたホワイトボックス関数呼び出しを含む少なくとも1つの入力ソースファイルを受け取ることと、
各抽象化されたホワイトボックス関数呼び出しに対する暗号化ドメインパラメータを含むパラメータ化ファイルを受け取ることと、
各抽象化されたホワイトボックス関数呼び出しをその暗号化ドメインパラメータに従って定義するホワイトボックス呼び出し定義ファイル、および、各ホワイトボックス関数呼び出しに対して選択されるパラメータを指定するホワイトボックスメタデータを生成することと、
変換済みソースファイルを生成するように前記入力ソースファイルに少なくとも1つのデータ変換を適用することと、
変換済みホワイトボックス呼び出し定義ファイル、および、選択されたパラメータに対して選択されるデータ変換を指定する変換メタデータを生成するように前記ホワイトボックス呼び出し定義ファイルに前記少なくとも1つのデータ変換を適用することと、
前記ホワイトボックスメタデータおよび前記変換メタデータに従って各ホワイトボックス関数呼び出しに対するインスタンス固有のデータを含むデータ初期設定ファイルを生成することと、
前記変換済みソースファイル、前記変換済みホワイトボックス定義ファイル、および前記データ初期設定ファイルをコンパイルし、実行可能ソフトウェアアプリケーションを提供するように結果として得られたコンパイル済みコードファイルをホワイトボックスライブラリにリンクすることと、
を含む、方法。 - プロセッサによって実行された場合に、前記プロセッサにホワイトボックス暗号法を用いて保護付きソフトウェアアプリケーションを生成する方法を行わせるコンピュータ実行可能命令を記憶したコンピュータ可読媒体を含むコンピュータプログラムプロダクトであって、前記方法は、
アプリケーションソースコードおよび抽象化されたホワイトボックス関数呼び出しを含む少なくとも1つの入力ソースファイルを受け取ることと、
各抽象化されたホワイトボックス関数呼び出しに対する暗号化ドメインパラメータを含むパラメータ化ファイルを受け取ることと、
各抽象化されたホワイトボックス関数呼び出しをその暗号化ドメインパラメータに従って定義するホワイトボックス呼び出し定義データを生成することと、
変換済みソースファイルおよび変換済みホワイトボックス呼び出し定義データをそれぞれ生成するように前記入力ソースファイルおよび前記ホワイトボックス呼び出し定義データに少なくとも1つのデータ変換を適用することと、
前記ホワイトボックス呼び出し定義データおよび前記変換済みホワイトボックス呼び出し定義データに従って各ホワイトボックス関数呼び出しに対するインスタンス固有のデータを含むデータ初期設定を生成することと、
を含む、コンピュータプログラムプロダクト。 - 前記方法は、前記変換済みソースファイル、前記変換済みホワイトボックス定義データ、および前記データ初期設定コードをコンパイルすることと、実行可能ソフトウェアアプリケーションを提供するように結果として得られたコンパイル済みコードをホワイトボックスライブラリにリンクすることと、をさらに含む、請求項15に記載のコンピュータプログラムプロダクト。
- 前記ホワイトボックス呼び出し定義データを生成することは、ホワイトボックス呼び出し定義ファイル、および、各ホワイトボックス関数呼び出しに対して選択されるパラメータを指定するホワイトボックスメタデータを生成することを含む、請求項15に記載のコンピュータプログラムプロダクト。
- 前記変換済みホワイトボックス呼び出し定義データに前記少なくとも1つのデータ変換を適用することは、変換済みホワイトボックス呼び出し定義ファイル、および、選択されたパラメータに対して選択されるデータ変換を指定する変換メタデータを生成する、請求項17に記載のコンピュータプログラムプロダクト。
- 前記データ初期設定を生成することは、前記ホワイトボックスメタデータおよび前記変換メタデータに従ってデータ初期設定ファイルを生成することを含む、請求項18に記載のコンピュータプログラムプロダクト。
- 前記少なくとも1つのデータ変換は、ブロック暗号または非対称暗号の少なくとも1つを含む、請求項15に記載のコンピュータプログラムプロダクト。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5569408P | 2008-05-23 | 2008-05-23 | |
US61/055,694 | 2008-05-23 | ||
PCT/CA2009/000755 WO2009140774A1 (en) | 2008-05-23 | 2009-05-25 | System and method for generating white-box implementations of software applications |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011521366A true JP2011521366A (ja) | 2011-07-21 |
JP5460699B2 JP5460699B2 (ja) | 2014-04-02 |
Family
ID=41339708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011509832A Expired - Fee Related JP5460699B2 (ja) | 2008-05-23 | 2009-05-25 | ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8510726B2 (ja) |
EP (1) | EP2304552B1 (ja) |
JP (1) | JP5460699B2 (ja) |
KR (1) | KR101597251B1 (ja) |
CN (1) | CN102047220B (ja) |
CA (1) | CA2724793C (ja) |
WO (1) | WO2009140774A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021196611A (ja) * | 2020-06-15 | 2021-12-27 | スティーリアン インコーポレイテッド | ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置 |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533859B2 (en) * | 2009-04-13 | 2013-09-10 | Aventyn, Inc. | System and method for software protection and secure software distribution |
US20110061041A1 (en) * | 2009-09-04 | 2011-03-10 | International Business Machines Corporation | Reliability and availability modeling of a software application |
US20110167407A1 (en) * | 2010-01-06 | 2011-07-07 | Apple Inc. | System and method for software data reference obfuscation |
EP2369778B1 (en) * | 2010-03-26 | 2018-08-15 | Irdeto B.V. | Personalized whitebox descramblers |
EP2388730A1 (en) | 2010-05-17 | 2011-11-23 | Nagravision S.A. | Method for generating software code |
WO2012012861A1 (en) * | 2010-07-29 | 2012-02-02 | Irdeto Canada Corporation | System and method for efficiently deploying massively diverse program instances to resist differential attacks |
US8751807B2 (en) * | 2011-06-23 | 2014-06-10 | Azuki Systems Inc. | Method and system for secure over-the-top live video delivery |
US10333702B2 (en) * | 2012-03-20 | 2019-06-25 | Irdeto B.V. | Updating key information |
US9213841B2 (en) * | 2012-07-24 | 2015-12-15 | Google Inc. | Method, manufacture, and apparatus for secure debug and crash logging of obfuscated libraries |
US9584310B2 (en) * | 2014-03-19 | 2017-02-28 | Nxp B.V. | Protecting a white-box implementation against attacks |
US9654279B2 (en) * | 2014-03-20 | 2017-05-16 | Nxp B.V. | Security module for secure function execution on untrusted platform |
GB201405755D0 (en) | 2014-03-31 | 2014-05-14 | Irdeto Bv | Optimizing and protecting software |
WO2015149827A1 (en) | 2014-03-31 | 2015-10-08 | Irdeto B.V. | Obfuscated performance of a predetermined function |
US10546155B2 (en) | 2014-03-31 | 2020-01-28 | Irdeto B.V. | Protecting an item of software |
US9485226B2 (en) * | 2014-04-28 | 2016-11-01 | Nxp B.V. | Method for including an implicit integrity or authenticity check into a white-box implementation |
US9641337B2 (en) * | 2014-04-28 | 2017-05-02 | Nxp B.V. | Interface compatible approach for gluing white-box implementation to surrounding program |
US10412054B2 (en) | 2014-06-24 | 2019-09-10 | Nxp B.V. | Method for introducing dependence of white-box implementation on a set of strings |
CN105446711B (zh) * | 2014-08-08 | 2018-10-02 | 国际商业机器公司 | 获取用于软件开发任务的上下文信息的方法及装置 |
KR101527329B1 (ko) * | 2014-09-12 | 2015-06-09 | 삼성에스디에스 주식회사 | 데이터 암호화 장치 및 방법 |
SG10201405852QA (en) | 2014-09-18 | 2016-04-28 | Huawei Internat Pte Ltd | Encryption function and decryption function generating method, encryption and decryption method and related apparatuses |
CN106796624B (zh) | 2014-09-26 | 2021-05-04 | 爱迪德技术有限公司 | 挑战响应方法、相关联的计算设备和相关联的计算机可读介质 |
GB201418815D0 (en) | 2014-10-22 | 2014-12-03 | Irdeto Bv | Providing access to content |
WO2016118216A2 (en) * | 2014-11-06 | 2016-07-28 | Intertrust Technologies Corporation | Secure application distribution systems and methods |
DE102014016548A1 (de) * | 2014-11-10 | 2016-05-12 | Giesecke & Devrient Gmbh | Verfahren zum Testen und zum Härten von Softwareapplikationen |
US10523419B2 (en) | 2015-03-30 | 2019-12-31 | Irdeto B.V. | Data protection |
GB201505553D0 (en) | 2015-03-31 | 2015-05-13 | Irdeto Bv | Online advertisements |
US9471285B1 (en) | 2015-07-09 | 2016-10-18 | Synopsys, Inc. | Identifying software components in a software codebase |
NL2015599B1 (en) * | 2015-10-12 | 2017-05-02 | Koninklijke Philips Nv | A cryptographic device and an encoding device. |
KR101790948B1 (ko) * | 2015-10-26 | 2017-10-27 | 삼성에스디에스 주식회사 | Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법 |
US10171234B2 (en) * | 2015-12-16 | 2019-01-01 | Nxp B.V. | Wide encoding of intermediate values within a white-box implementation |
GB201522315D0 (en) * | 2015-12-17 | 2016-02-03 | Irdeto Bv | Securing webpages, webapps and applications |
US10523418B2 (en) | 2016-06-03 | 2019-12-31 | Cryptography Research, Inc. | Providing access to a hardware resource based on a canary value |
DE102016009259A1 (de) * | 2016-07-29 | 2018-02-01 | Giesecke+Devrient Mobile Security Gmbh | Personalisierung eines Sicherheitselements |
US10261763B2 (en) * | 2016-12-13 | 2019-04-16 | Palantir Technologies Inc. | Extensible data transformation authoring and validation system |
CN110268410A (zh) | 2016-12-15 | 2019-09-20 | 爱迪德技术有限公司 | 软件完整性验证 |
GB201703864D0 (en) | 2017-03-10 | 2017-04-26 | Irdeto Bv | Secured system operation |
CN109213670A (zh) * | 2017-06-30 | 2019-01-15 | 中兴通讯股份有限公司 | 实现白盒otn硬件设备的方法及装置、存储介质 |
EP3665566A4 (en) * | 2017-08-08 | 2021-04-21 | Crypto4A Technologies Inc. | SECURE MACHINE-EXECUTED CODE DEPLOYMENT AND EXECUTION PROCESS AND SYSTEM |
DE102017214591A1 (de) * | 2017-08-22 | 2019-02-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Schützen eines Gerätes |
DE102017214584A1 (de) * | 2017-08-22 | 2019-02-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Schützen eines Gerätes |
CN108111622B (zh) * | 2017-12-29 | 2021-10-29 | 北京梆梆安全科技有限公司 | 一种下载白盒库文件的方法、装置及系统 |
CN108134673B (zh) * | 2017-12-29 | 2021-08-13 | 北京梆梆安全科技有限公司 | 一种生成白盒库文件的方法及装置 |
CN108183796A (zh) * | 2017-12-29 | 2018-06-19 | 北京梆梆安全科技有限公司 | 利用白盒库文件和白盒密钥文件进行加解密的方法及装置 |
CN107947917A (zh) * | 2017-12-29 | 2018-04-20 | 北京梆梆安全科技有限公司 | 一种生成白盒密钥的方法及装置 |
CN107968793B (zh) * | 2017-12-29 | 2021-03-19 | 北京梆梆安全科技有限公司 | 一种下载白盒密钥的方法、装置及存储介质 |
CN108416224B (zh) * | 2018-02-13 | 2019-10-15 | 北京梆梆安全科技有限公司 | 一种数据加解密方法及装置 |
US11362824B2 (en) * | 2018-05-25 | 2022-06-14 | Intertrust Technologies Corporation | Content management systems and methods using proxy reencryption |
US10797868B2 (en) | 2018-05-31 | 2020-10-06 | Irdeto B.V. | Shared secret establishment |
EP3608806A1 (en) * | 2018-08-09 | 2020-02-12 | Gemalto Sa | Anti cloning for white box protected data |
GB201821248D0 (en) | 2018-12-27 | 2019-02-13 | Palantir Technologies Inc | Data pipeline management system and method |
GB2612217B (en) * | 2019-08-01 | 2024-04-03 | Sky Cp Ltd | Secure media delivery |
GB2586065B (en) * | 2019-08-01 | 2023-02-15 | Sky Cp Ltd | Secure media delivery |
US11263316B2 (en) | 2019-08-20 | 2022-03-01 | Irdeto B.V. | Securing software routines |
US11409843B2 (en) | 2019-10-10 | 2022-08-09 | Nxp B.V. | Method for protecting a software program from copying |
CN110855667B (zh) * | 2019-11-14 | 2023-04-07 | 宁夏吉虎科技有限公司 | 一种区块链加密方法、装置及系统 |
CN112395563A (zh) * | 2020-11-30 | 2021-02-23 | 广州市都享信息科技有限公司 | 软件产品加密的方法、装置、存储介质及处理器 |
EP4053722B1 (en) | 2021-03-01 | 2023-11-29 | Irdeto B.V. | Secured computer code and systems, methods, and storage media for creating the secured computer code from original computer code |
DE112022001853T5 (de) * | 2021-05-31 | 2024-01-25 | Cummins Inc. | Verbesserte kryptographische systeme und verfahren |
EP4339835A1 (en) | 2022-09-16 | 2024-03-20 | Irdeto B.V. | Machine learning model protection |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353168A (ja) * | 1998-06-10 | 1999-12-24 | Nippon Telegr & Teleph Corp <Ntt> | インタフェースマッチング方法およびインタフェースマッチングプログラムを記録した記録媒体 |
JP2001134337A (ja) * | 1999-08-05 | 2001-05-18 | Canon Inc | 暗号解読コンパイラ |
JP2003280754A (ja) * | 2002-03-25 | 2003-10-02 | Nec Corp | 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム |
JP2003337629A (ja) * | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
JP2004038966A (ja) * | 2002-06-28 | 2004-02-05 | Microsoft Corp | セキュアな変数データ保護を提供するセキュアで不明瞭なタイプライブラリ |
JP2006504206A (ja) * | 2002-10-28 | 2006-02-02 | 松下電器産業株式会社 | 再生可能な不正防止機能セキュリティシステムのための自動生成された暗号関数 |
JP2007087127A (ja) * | 2005-09-22 | 2007-04-05 | Open Stream Inc | データ生成プログラム、該プログラムを記憶した記憶媒体、オープンソースソフトウェア開発環境統合プログラム、該プログラムを記憶した記憶媒体 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
CA2327911A1 (en) * | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
CA2350029A1 (en) * | 2001-06-08 | 2002-12-08 | Cloakware Corporation | Sustainable digital watermarking via tamper-resistant software |
US7769165B2 (en) * | 2005-10-14 | 2010-08-03 | Microsoft Corporation | Semi-public white-box cipher |
WO2008059420A2 (en) * | 2006-11-17 | 2008-05-22 | Koninklijke Philips Electronics N.V. | Cryptographic method for a white-box implementation |
EP2104987A2 (en) * | 2007-01-11 | 2009-09-30 | Koninklijke Philips Electronics N.V. | Tracing copies of an implementation |
WO2009034504A2 (en) | 2007-09-13 | 2009-03-19 | Koninklijke Philips Electronics N.V. | Cryptographic processing of content |
US8165286B2 (en) * | 2008-04-02 | 2012-04-24 | Apple Inc. | Combination white box/black box cryptographic processes and apparatus |
-
2009
- 2009-05-25 CA CA2724793A patent/CA2724793C/en not_active Expired - Fee Related
- 2009-05-25 KR KR1020107028600A patent/KR101597251B1/ko not_active IP Right Cessation
- 2009-05-25 JP JP2011509832A patent/JP5460699B2/ja not_active Expired - Fee Related
- 2009-05-25 EP EP09749378.7A patent/EP2304552B1/en active Active
- 2009-05-25 CN CN200980118647.1A patent/CN102047220B/zh not_active Expired - Fee Related
- 2009-05-25 US US12/992,318 patent/US8510726B2/en active Active
- 2009-05-25 WO PCT/CA2009/000755 patent/WO2009140774A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353168A (ja) * | 1998-06-10 | 1999-12-24 | Nippon Telegr & Teleph Corp <Ntt> | インタフェースマッチング方法およびインタフェースマッチングプログラムを記録した記録媒体 |
JP2001134337A (ja) * | 1999-08-05 | 2001-05-18 | Canon Inc | 暗号解読コンパイラ |
JP2003280754A (ja) * | 2002-03-25 | 2003-10-02 | Nec Corp | 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム |
JP2003337629A (ja) * | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
JP2004038966A (ja) * | 2002-06-28 | 2004-02-05 | Microsoft Corp | セキュアな変数データ保護を提供するセキュアで不明瞭なタイプライブラリ |
JP2006504206A (ja) * | 2002-10-28 | 2006-02-02 | 松下電器産業株式会社 | 再生可能な不正防止機能セキュリティシステムのための自動生成された暗号関数 |
JP2007087127A (ja) * | 2005-09-22 | 2007-04-05 | Open Stream Inc | データ生成プログラム、該プログラムを記憶した記憶媒体、オープンソースソフトウェア開発環境統合プログラム、該プログラムを記憶した記憶媒体 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021196611A (ja) * | 2020-06-15 | 2021-12-27 | スティーリアン インコーポレイテッド | ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置 |
JP7046424B2 (ja) | 2020-06-15 | 2022-04-04 | スティーリアン インコーポレイテッド | ホワイトボックス暗号を利用したデータの暗号化/復号化方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2304552A1 (en) | 2011-04-06 |
JP5460699B2 (ja) | 2014-04-02 |
US20110067012A1 (en) | 2011-03-17 |
CA2724793C (en) | 2018-01-02 |
CA2724793A1 (en) | 2009-11-26 |
KR20110031426A (ko) | 2011-03-28 |
EP2304552B1 (en) | 2019-11-06 |
WO2009140774A1 (en) | 2009-11-26 |
US8510726B2 (en) | 2013-08-13 |
CN102047220A (zh) | 2011-05-04 |
CN102047220B (zh) | 2014-12-17 |
KR101597251B1 (ko) | 2016-02-24 |
EP2304552A4 (en) | 2013-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5460699B2 (ja) | ソフトウェアアプリケーションのホワイトボックス実装を生成するためのシステムおよび方法 | |
US10185837B2 (en) | System and method for encapsulating and enabling protection through diverse variations in software libraries | |
US7254586B2 (en) | Secure and opaque type library providing secure data protection of variables | |
US20180260199A1 (en) | Method and apparatus for intermediate representation of applications | |
US10713339B2 (en) | Build system with plugins for encryption of application components | |
US7549147B2 (en) | Security framework for protecting rights in computer software | |
JP5990654B2 (ja) | アプリケーションコード難読化装置及びその方法 | |
US8205096B2 (en) | Software license embedded in shell code | |
EP3127034A1 (en) | Software protection | |
US20170024230A1 (en) | Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine | |
Arzt et al. | Towards secure integration of cryptographic software | |
KR20150122149A (ko) | 컴파일러 기반 난독화 기법 | |
CN101288083A (zh) | 程序可执行映像加密 | |
Vaughan | Auraconf: a unified approach to authorization and confidentiality | |
KR100348027B1 (ko) | 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템및 그 방법 | |
EP3398103B1 (en) | A build system with plugins for encryption of application components | |
Wilhoite | Code Obfuscation: methods and practicality within automation | |
KR20070074935A (ko) | 모바일 컨텐츠의 불법 복제 방지를 위한 컨텐츠 검증 방법 | |
Grandy et al. | Object oriented verification kernels for secure Java applications | |
Valdez | Protecting executable software | |
Arthur et al. | Debugging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110117 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130814 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130904 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131106 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131126 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20131224 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20140106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140114 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |