4

編集: 誰かがこれが「オフトピック」である理由を説明できますか? FAQに記載されているガイドラインに非常に明確に従っていると思います. 足りないものはありますか?

私は PyQt (python 2.7、PyQt 4.9.5) で Windows デスクトップ アプリケーションを作成しており、販売用のソフトウェアのリリースに近づいています。ライセンス/シリアル番号ベースのソフトウェア アクティベーションのための何らかのシステムを追加する時が来ました。このソフトウェアは、小売価格が約 250 ドルの企業間製品です。

私は Fastspring を使用することを検討しており、以下との統合を提供しています。

  1. アクアティックプライム
  2. ココアFOB
  3. GameShield とソフトウェア パスポート
  4. Yummy Interactive の SoftwareShield
  5. Soraco のクイック ライセンス マネージャー
  6. ソフトラップ
  7. コンセプトソフトウェアのSoftwareKeyシステム

この機能を提供するための適切なオプションは何ですか? 私が遭遇したいくつかのことは、それらのどれもPython APIを提供していないように見えるため、それらのものを私のPythonコードと統合する方法を理解する必要がある. 私はそれをする必要がなかったので、Python との統合の容易さはコストと同様に強力な要因になるでしょう。誰かが私のソフトウェアを盗用するのを防ぐ必要性を強く感じているわけではありません。正しい数のシートを購入できるように、ビジネスを正直に保ちたいだけです。最後に考慮すべきことは、将来的にはクロスプラットフォームにしたいかもしれないということです。

ご協力いただきありがとうございます。

4

1 に答える 1

2

注意すべき点の1つは、Pythonバイトコードの逆コンパイルとリバースエンジニアリング、およびそれに設定した保護の削除は比較的簡単であるため、クラックプルーフ保護の実装に多くの労力と時間を費やすことは通常価値がないということです。あなたはただ人々を正直に保つのに十分なものを置きたいだけです。

企業が正しい数のシートを購入することが懸念される場合、基本的な保護メカニズムの1つは、公開鍵メカニズムを使用して、ライセンスサーバーの秘密鍵を使用してメッセージにデジタル署名を付けることです。メッセージは単なるランダムな文字列であり、ライセンスキーが有効なマシンを制限する一意の識別情報(MACアドレスなど)と、キーを期限切れにする場合はタイムスタンプです。次に、このメッセージと署名は、顧客がプログラムに入力する文字列にエンコードされます。プログラムは、署名がメッセージと一致し、メッセージがマシンと一致することを確認することにより、ライセンスキーを検証します。

ユーザーがキーを持っていることだけが気になる場合は、より単純なスキームがあります(マシンごとに異なるキーを持っているわけではありません)。メッセージには完全にランダムな文字列を使用できます。

このスキームは、ユーザーがコードをリバースエンジニアリングしない限り安全です。プログラムの公開鍵を独自の公開鍵でリバースエンジニアリングすることにより、バイパスすることができます。また、MACアドレスなど、コンピューターの識別に使用される情報を改ざんすることによってバイパスすることもできます。これらの情報を改ざんすると、同じキーを使用して複数のインストールが可能になる場合があります。

于 2013-01-19T23:50:09.360 に答える