To top
Resources Resources

Python 再び!

しかし、Pythonアプリケーションをどのように保護してライセンスを取得するのでしょうか?

TIOBE Index は、世界で最も人気のあるプログラミングのチャートであり、現在、長年のチャンピオンであるCとJavaに続いてPythonが3位につけています。Pythonは、その使いやすいAPIと人工知能及び機械学習の分野における最先端のライブラリの膨大な範囲と品質により、大変人気です。

しかし、影のない光はありません。開発者にとってのさらなる快適さは、知的財産のセキュリティについての心配と引き換えられます。一部のPythonアプリケーションは、コードをプレーンテキスト形式で保持し、インタープリターに到達するまですべての人に表示されます。その他、逆コンパイルが特に簡単なプリコンパイル済みコードが含まれています。AI学習アルゴリズムのような貴重なデジタル資産は、攻撃者になる可能性のある者にとっては簡単な餌食です。

実行可能バイナリを作成するために使用される「cx_Freeze」のようなモジュールまたはパッケージは、有能なハッカーにとって実際の障害にはなりません。それらのコンテンツは簡単に抽出され、コミュニティで無料で利用できるツールを使用してソースコードがキャプチャされます。難読化は、それ以上の効果的な保護を提供することはほとんどありません。

これが、Wibu-SystemsがPythonの確立されたインターフェイスと活気に満ちたコミュニティのエネルギーを使用して、CodeMeter Protection Suiteでプログラムの機密部分を暗号化する戦略に取り組んでいる理由です。

容易な統合が可能に

Pythonには、最新の高レベルスクリプト言語の機能を超えて提供できるものが多くあり、マシン指向のアプリケーションで大きな可能性を秘めています。C拡張機能を使用して、選択した関数をよりパフォーマンス重視のCのバイナリに移動できます。Pythonのより快適な構文とCアプリケーションのパフォーマンスを備えた、両方の長所が含まれます。

Wibu-Systemsのテクノロジーは、このタイプのアウトソーシング機能に最適です。CodeMeter Protection Suiteは、.dllや.soなどのライブラリファイルを念頭に置いて開発されており、どちらのタイプにも制限なく使用できます。

Unprotected Python application

これはPythonコードが適切に暗号化されていることを意味するだけでなく、整合性保護・デバッグ防止・リバースエンジニアリング防止機能などのCodeMeter保護メカニズムが、Pythonアプリケーションで機能することも意味します。C拡張機能は、サードパーティのCythonモジュールを使用してPythonコードから自動作成できます。このモジュールは、コードをCythonに変換し、中間コンパイル済みファイルを生成して、プロセスを透過的に保ち、開発者が完全に制御できるようにします。パッケージには、コードのパフォーマンスの向上を認識して推奨するための簡単な分析ツールが含まれています。最終結果の.pydファイルは、Windowsの場合はよく知られている.dllファイル、Unixシステムの場合は.soファイルに似ています。

Protected Python application

次のステップとしてのライセンス

アプリケーションは暗号化された形式で提供されるため、ライセンス管理にはすでに最適です。ますます多くのユーザーがパッケージ取引から離れ、特定の期間または使用回数のいずれかで、必要なモジュールに対してのみ支払うことができるモデルを支持しています。これにより、そこまで資金がなくてもユーザーはソフトウェアにアクセスできます。これは、ユーザーとソフトウェア開発者の双方にとって大きなメリットです。

CodeMeter Protection Suiteには、これに必要なすべての設定と構成があらかじめパッケージ化されており、最新の柔軟なライセンスモデルをすべての開発者が自由に使用できます。

CodeMeter APIとの統合

CodeMeter APIは、アプリケーションのコードを暗号化するだけでなく、Pythonコードに簡単かつ快適に統合できます。

CodeMeter APIは、以下の操作に使用されるライセンスおよび暗号化インターフェイスです。

  • ライセンスの確認
  • ライセンスプロパティの読み取り
  • 他のシステムへのログイン
  • 通信の暗号化
  • 対称および非対称暗号
  • ハッシュ関数とチャレンジ/レスポンスアクション
  • Pythonコードで独自のデータを暗号化
  • 構成またはその他のデータファイルの暗号化

「CmAccess2」関数は、Pythonコード内からライセンスに直接アクセスして、図3の「check」メソッドに示されているように、いくつかのライセンスモデルをサポートします。

The “CmAccess2” function

「CmCrypt2」はデータの暗号化に使用でき、図4で16バイトのバッファーに適用されます。

The “CmCrypt2” function

Pythonアプリケーションを保護する方法への関心が急上昇している兆候があり、Wibu-Systemsは、CodeMeter Protection Suiteへの絶え間ない改善と機能追加、および新しいユースケースの継続的な調査により、市場の要求に応えています。

好奇心は私たちの製品開発の源であり、Pythonは私たちに多くを発見させます。

KEYnote 40 – Edition Fall 2020