コード暗号化
コード暗号化は難読化ツールの強力な機能で、開発者はアプリケーションのコードを攻撃者や競合他社によるリバースエンジニアリングから保護できます。コード暗号化では、実行時にアプリケーションだけが復号して実行できる形にコードが変換されます。コードを元のソースの形へ単純にデコンパイルできなくなるため、攻撃者がコードを解析して理解することははるかに難しくなります。
コード暗号化を Babel Licensing と併用すると、ライセンス対象の機能を実装するコードを保護し、有効なライセンスファイルなしではその機能にアクセスすることも実行することもできないようにできます。コードを暗号化しておくと、ライセンスファイルにパスワードまたはキーを含めることができ、ライセンス対象の機能にアクセスしたときに、保護されたコードの復号と実行にそれが使われます。
つまり、権限のないユーザーが保護されたコードを入手しても、正しいパスワードまたはキーがなければ実行できません。パスワードやキーは、有効なライセンスファイルからしか得られません。さらに、コード暗号化はコードのリバースエンジニアリングと改ざんの防止にも役立ち、ライセンス対象の機能のセキュリティをいっそう高めます。
ライセンスキーやアクティベーションコードなど、ほかのライセンス管理の手法と組み合わせると、コード暗号化は、機能ベースのライセンスモデルを採用するソフトウェアアプリケーションに、堅牢で安全なライセンス管理の仕組みを提供します。
これらのサンプルでは、コード暗号化を単独で使う場合と、Babel Licensing と組み合わせる場合を示します。それぞれに、クローンしてビルドできる GitHub のパブリックリポジトリがあります。
- コード暗号化によるアルゴリズムの保護:最も単純な構成です。MSBuild プロパティ 1 つで設定でき、実行時のライセンスなしで単独で動作します。
- 機能ベースのライセンス:暗号化された機能のコードのロックを、エディションごとにライセンスで解除します。
- ライセンスに紐付けたコード暗号化:復号用のパスワードは、バイナリの中ではなく、署名され、ハードウェアに紐付けたライセンスの中にあります。
- 外部暗号化ファイルとしての機能:プレミアム機能を、ライセンスで制御された別個の
.eilファイルとして提供します。 - サブスクリプションライセンスと暗号化された Pro コード:猶予期間付きの期限付きライセンスで、暗号化された Pro コードを制御します。
ナレッジベースの記事コード暗号化 も参照してください。