To top
Resources Resources

CodeMeter Protection Suiteのランタイム環境

新たに登場したネイティブコンポーネントは、新しいメカニズムでソフトウェアの保護を強化します。このモジュールの利点と、保護されたアプリケーションとの安全な連携方法を紹介します。

ソフトウェアテクノロジーの進化に終わりはありません。今日の常識は、明日の非常識になるのです。長年苦しんでいるソフトウェア開発者は、この容赦ない側面にうんざりしていることでしょう。彼らは、その時に人気のプログラミング言語を選びますが、将来の最新トレンドに追いつくには、またアプリケーションを別の言語で書き換えるか全くの新技術を導入するしかありません。そうすることで、最新のトレンドや流行に追いつくことができるのです。そのような中、CodeMeter Protection Suiteは、常に最新の状態に保ち、新しい機能をもっています。これにより、ソフトウェア開発者は、自身が扱っている新しい環境やテクノロジーに対応する最高の保護機能を利用することが可能となります。このコンセプトの一例として、現在βテスト中である完全に新しいAxProtector Pythonが挙げられます。Pythonスクリプトは現在、記録的な人気を誇っており、日常的なソフトウェア開発タスクによく使用されています。しかしながら、これらの小さなヘルパーが成長し、それ自体が価値あるIPへと変貌すると、ソフトウェア開発者は、労働の成果を保護およびライセンス供与するための最良の手段を必要とするようになります。

スクリプト言語の保護とは?

Pythonは、ソースコード形式のスクリプト言語です。では、Pythonコードの保護方法には、どのようなものがあるでしょうか? 1つのオプション(多くの状況で好ましいとされる選択)としては、Pythonコードをネイティブコードに変換し、結果のバイナリをAxProtectorで暗号化するというものがあります。しかし、ソフトウェア開発者は通常、顧客が自由に選択できるよう、さまざまなプラットフォーム向け、そしてさまざまなバイナリ形式のコードを作成する必要があります。また、コンパイルツールを信頼し、正しいだけでなく、期待どおりスムーズに機能するネイティブコードを作成しなければなりません。場合によっては、コードをネイティブ形式に変換してしまうと、特定のユースケース(例:保護された関数を独自のPythonスクリプトへ統合できる)の実行が困難になる、また完全に不可能になることもあり得ます。つまり、サードパーティのツールを使用するという手間をかけることなく、Pythonなどのスクリプト言語を保護できる新しいソリューションを探す必要があるのです。

最大の問題は、スヌーピングや改ざんから守られた安全な環境で、ライセンスを確認しコードを復号できるかということです。一見すると、ユーザーがソースコード形式でスクリプトにアクセスするということは、不可能な試みのようにみえます。しかし、この問題を解決する方法があります。Wibu-Systemsによって開発された、新しいCodeMeter Protection SuiteランタイムコンポーネントCPSRT(CodeMeter Protection Suiteランタイム)です。これは、詮索する目から遠く離れた場所で、すべてのオペレーションを処理できるネイティブコンポーネントです。

ネイティブライブラリ

問題となる関数の内容は、暗号化されたコードをネイティブCPSRTコンポーネントに渡す手段とともに、保護されたスクリプトで暗号化されます。これにより、必要なライセンスがチェックされ、復号された関数がインタープリターへと返送されて実行されます。また、ネイティブコンポーネントは、スクリプト言語の他のジョブ(例:定期的なライセンスチェックの実施、デバッガーの追跡)を引き継ぐことも可能です。

ネイティブコンポーネントはAxProtectorによって保護されており、攻撃者による改ざんを防ぎます。保護されたアプリケーションとの間の通信に適切な保護手段を設定することと同じくらい、独自の保護を強化することは、重要です。しかし、保護されたアプリケーションとの通信は、理想的な攻撃ポイントになりえます。この通信に侵入できれば、攻撃に必要なものは全て揃っています。これこそが、Wibu-Systemsの開発者が、セキュリティ専門家と共にフールプルーフ通信システムを考案した理由です。

暗号化通信

ネイティブコンポーネントをロードすると、通信回線の暗号化が開始されます。この暗号化は、保護されたアプリケーション用に作成された証明書を使用して行われます。

これらの証明書(コピープロテクションキー証明書および Protectee 証明書)は、ソフトウェア製造者であるお客様のために当社が発行した証明書(ライセンサープライベートキー証明書)から Wibu Systems のルート証明書まで続く署名チェーンの一部です。

保護されたアプリケーション(Protectee)は、Protectee 証明書を使用して、ネイティブコンポーネントに対して自身を認証させ、ライセンスにアクセスして関数を復号する権利があることを示すことができます。逆に、ネイティブコンポーネントには、保護されたアプリケーションで自身を識別し、その真正性を証明するためにWibu-Systemsによって署名された証明書があります。このプロセスによって保証された信頼により、サードパーティによる通信キーへの接触を避け、両者は共に通信キーをネゴシエートすることができます。

ネイティブコンポーネントは、保護されたアプリケーションが適切な証明書をもつファームコードの命令(コードの復号など)のみを実行します。また、これらの証明書を使用して、保護されたアプリケーションの整合性をチェックし、操作されたソフトウェアを最初の起動からトラックで停止することもできます。

証明書

証明書チェーンは、ユニバーサルファームコード(6.000.000以上のファームコード)用に最初に導入されたインフラに基づいていますが、旧CodeMeterファームコードまたはその前身のWibuKeyを使用するソフトウェア開発者も対象となります。また、ファームセキュリティボックス(FSB)を経由することで、同じ証明書インフラで新しいネイティブコンポーネントを使用することもできます。必要な証明書は、すべてのCodeMeterファームコードの次回の更新で自動的に展開されます。自動更新を待たずに、開発者自ら更新することも可能です(無料)。

FSBに証明書がない場合には、次回アプリケーションを暗号化しようとした際に、次に実行すべき手順に関する詳細情報が通知されます。

新しいネイティブコンポーネントは現在、AxProtector .NETおよびAxProtector Pythonで使用されていますが、まもなく他のAxProtectorシリーズでも展開される予定です。さらに安全かつセキュアなソフトウェアの保護メカニズムに、ネイティブコンポーネントの追加機能が付与されることでしょう。

インストールの要件

ネイティブコンポーネントは、ユーザーのコンピュータの使用が必要です。AxProtector .NETを使用すると、暗号化されたアセンブリとその他の必要なファイルが保存されている保護フォルダにコピーされます。アセンブリが最終的に実行されるプラットフォームを.NETで事前に知ることはできないため、ネイティブコンポーネントはいくつかのサブフォルダのCPSRT.dllファイルとして、さまざまなプラットフォームのバージョンに含まれています。バージョン10.70a以降、AxProtector .NETで保護されたアセンブリがCPSRT.dllを検索するメカニズムが改善され、まず、アプリケーションのフォルダとそのサブフォルダを検索し、次にPATH変数で指定された他すべての場所を検索します。

次のCodeMeterバージョン7.30では、インストーラーに含まれているCPSRT.dllが付属し、新しいコンポーネントの最新バージョンをインストールして、手動での配布が無くなります。常に、Wibu-Systemsは下位互換性に取り組んでいるため、CodeMeter Protection Suiteで保護されたアプリケーションは、CPSRT.dllの新しいバージョンで引き続き完全に機能することができます。

 

KEYnote 41 – Edition Spring 2021