Javaアプリケーションの暗号化ツール|AxProtector Java
Javaソフトウェアの自動保護
AxProtector Javaは、Javaソフトウェアの保護において、時間と労力を節約する理想的なソリューションです。AxProtector Javaを使用すると、完全に自動化された方法でソフトウェアを著作権侵害やリバースエンジニアリングから保護できます。
AxProtector Javaはコマンドラインツールとして利用でき、自動ビルドシステムで継続的に統合して実行できます。
AxProtector Javaは、追加のメソッドをコードに挿入することでハニーポットトラップとして特別なCodeMeterコマンドを非表示にすることができます。暗号化されたすべての関数を解読しようとする攻撃者は、ある時点で、トラップの一つに遭遇します。これによりシークレットコマンドが作動し、ライセンスがロックされます。攻撃者を追跡し、それ以上の関数の解読を防ぎます。これらの自動設定されるトラップに加えて、独自のメソッドを追加して、より誘惑的なハニーポットを作成することもできます。この巧妙なトリックにより、AxProtector Javaは、保護されたソフトウェアの体系的な復号に対する非常に強力な保護手段となります。
AxProtector Javaは、シンプルで一般的な難読化コードと比較して、はるかに高いレベルのセキュリティを保証します。標準の難読化では名前の変更とコードのスクランブルのみが行われますが、AxProtector Javaは実行可能なコードを強力な256ビットのAES暗号で保護します。これにより、適切なツールを使用しても、ドライブ上の保護されたアプリケーションを逆コンパイルすることができなくなります。コードはドングルまたはWindowsサービスの安全な環境で復号されるため、Javaレベルでの単純な難読化よりも、なりすまし攻撃者のアクセスがさらに困難になります。適切なライセンスとキーがなければ、攻撃者はデバイスのメモリからコードを抽出することさえできません。隠されているトラップは、実際にはすべてのメソッドの全体的な解読を不可能にするように設定されています。ある時点で、トラップの実行とライセンスのロックがされ、他の試みられた攻撃のキーを阻害します。ただし、AxProtector Javaを通常の難読化ツールと区別するのは、追加されたセキュリティだけではありません。関数の名前を変更する必要がないため、リフレクションやリモーティングなどの機能を通常どおり、セキュリティに妥協することなく使用できます。
AxProtector Java第2版
AxProtector Java第2版は、Java SE(J2SE)およびJava EE(J2EE)アプリケーションの包括的で高度な自動保護を含みます。 ソフトウェア開発者は、クラスとメソッドを個別に暗号化します。パフォーマンス上の理由から、個別のクラスとメソッドを除外することが可能です。
AxEngineと呼ばれるセキュリティシェルがJavaアプリケーションに追加されます。アプリケーションの最初のコール中に、AxEngineメソッドがランタイム環境に登録されます。このメソッドは、すべてのクラスとメソッドの読み込み中に自動的に実行され、保護されたクラスとメソッドが自動的に復号されます。 AxEngineは、JavaコンポーネントとJNI(Java Native Interface)コンポーネントで構成されています。
AxProtector Java第1版
AxProtector Javaの第1版は、互換性の理由から引き続き利用可能です。クラスレベルでJava SE(J2SE)アプリケーションを暗号化します。したがって、Javaアプリケーションではすべてのクラスが個別に暗号化されます。パフォーマンス上の理由から、個別のクラスを除外することが可能です。
AxEngineと呼ばれるセキュリティシェルとラッパークラスがJavaアプリケーションに追加されます。ラッパーはアプリケーションの新しいメインクラスとして追加されるため、最初に実行されます。このラッパークラスは、最初にWibuクラスローダーを読み込み、次に元のメインクラスを読み込みます。Wibuクラスローダーは、保護されたクラスの復号化を担います。JavaコンポーネントとJNIコンポーネントで構成されるAxEngineを使用します。
JNI使用におけるセキュリテイ
復号とセキュリティチェックのほとんどは、AxEngineのJNI部分で行われます。CmDongleまたはCmActLicenseに一致するライセンスがないと、復号はできません。Javaのみのソリューションと比較して、ネイティブコンポーネントを使用すると、セキュリティが大幅に向上します。ネイティブコンポーネントは、Windows、macOS、Linuxで利用できます。
AxProtector Javaは、Javaアプリケーションに最先端のアンチデバッグメカニズムを自動的に追加します。たとえば、例えば、JVMTIのようなデバッグインターフェイスが検出され、保護されたアプリケーションの実行を中止します。
CodeMeter APIの利用
CodeMeter APIの統合と比較すると、AxProtector Javaは最小限の労力で高レベルの保護を提供します。CodeMeter APIの追加使用も可能です。
これにより、APIの暗号機能を使用してソフトウェア保護がさらに強化され、データのセキュリティと保護が加わり、特定のライセンスクエリを入力できます。
個別ライセンス
AxProtector Javaでは、異なるプロダクトコードを使用してJavaアプリケーションの異なる部分を暗号化できます。すべてのプロダクトコードのサブセットでライセンスを作成することにより、アプリケーションの使用を購入した機能のみに制限します。 CodeMeter APIを使用する場合、ボタンやメニューエントリなどのグラフィック要素を有効または無効にすることもできます。
異なるプロダクトコードの暗号化により、最大限のセキュリティが提供されます。各プロダクトコードは、異なるAESキーを使用してアプリケーションを暗号化します。一致するプロダクトコードが無い場合、このキーは使用できず、不正な復号は不可能です。
ライセンス不要のアンチリバースエンジニアリング
Protection Suiteの他のコンポーネントと同様に、AxProtector Javaの第1版と第2版をProtection-Only Licenseで使用できます。ソフトウェアベンダーは、CodeMeter Runtimeとアプリケーションとともに既にアクティベーションされている一般的なライセンスを提供します。アプリケーションの復号はCodeMeter Runtimeのネイティブ部分で行われ、Javaのみのソリューションと比較してセキュリティ標準が向上します。
IP保護モード
IP保護モードは、フリーウェア/フリーミアムモデルを前提に作成されていますが、ライセンシングとの組み合わせでも完璧に機能します。基本設定と異なり、暗号化はCodeMeterのライセンスに縛られません。復号に必要な鍵は、アプリケーション自体に安全に隠されています。このアプリケーションはいつでも実行可能です。
フリーミアムモデルでは、このIP保護モードを個別ライセンスと組み合わせることができます。対象となるアプリケーションの一部は、IP保護モードで暗号化され、常に利用可能です。他の部分はライセンスに紐づけられ、正しいライセンスを所有するユーザーのみ使用することができます。APIを使い、利用可能な機能をチェックすることもできます(check_license)。