web-dev-qa-db-ja.com

配布可能なソースで利用可能なソフトウェアプロジェクトの「ライセンスキー」を作成するにはどうすればよいですか?

ソフトウェアを収益化するためにライセンスサーバーに接続する必要のあるダウンロードできるものをすべて見たので、久しぶりです(そして、前回見たとき、ソフトウェアプロバイダーがライセンスの中止を決定したとき、それは非常にうまくいきませんでしたサーバ)。

したがって、このサーバーへの実際の認証を処理するコードの暗号化/難読化(Zend Guardなど)とは別に、配布可能なオープンソースプロジェクト用の認証システムの種類を作成する他の方法(ある場合)はありますか?

SaaSスタイルを提供する以外に方法はありますか?

3
Voycey

「オープンソース」には通常、プログラムのソースコードを理解しやすく、コンパイル可能な形式およびで変更可能な形式で提供することが含まれます。したがって、あらゆる種類の人工的なライセンスチェックは、コードをコンパイルでき、プログラミングの基本的な知識を持っている人なら誰でも簡単に無効にすることができます。

もちろん、プログラム内の変更を禁止する(または少なくともソフトウェアの変更されたブランチを配布する)ことを禁止するライセンスを使用することもできます。そのため、人々はプログラムを読むことだけが許可され、変更することはできません。ただし、強制できないことは、ユーザーがライセンスキーチェックを秘密裏に削除すること、またはユーザーが管轄外で行うことです。また、ライセンススキームが完全にオープンな場合、元のコードを変更しなくても、そのライセンススキームを模倣したり、独自のキーを生成したり、偽のライセンスサーバーを提供したりすることを妨げることはできません。 (実際、これはプログラムがクローズドソースの場合でも定期的に行われますが、オープンソースプログラムの場合は、リエンジニアリングの経験がある人だけでなく、「平均的な開発者」にとってもこの「アプローチ」をより実現可能にします。)

したがって、オープンソースに対して支払いを受ける最も人気のあるアイデアの1つは、サーバーから提供する部分である、ソフトウェアの重要な部分をソースコードに含めないことです。サーバー側に配置する機能が多ければ多いほど、サーバーが他の誰かによって再構築されるリスクが少なくなります。 「特定のライセンスキーが有効」である場合にブール情報のみを提供するサーバーは、コピーするのが簡単すぎます。実際、これは収益化モデルがサービスモデルになることを意味します。たとえば、マルチプレーヤーゲームのベンダーとして、ゲームクライアントはオープンソースであるかもしれませんが、サーバーはゲームの致命的な部分を制御し、特定の期間そのサービスを使用することに対して人々に請求することができます。

収益化のもう1つのオプションは、オープンソースライブラリを作成することです。これは、非商用ソフトウェア、社内ソフトウェア、および商用ソフトウェアから自由に誰でも自由に使用できます。ライセンス違反はあなたが証明できるという特定のリスクがあり、彼らは彼らのソフトウェアに対して支払われ(そのため、あなたはそのお金の一部をあなたに使うように努力することができる)、そして彼らはアップデートを入手したいので、人々はあなたに支払うでしょうあなたからあなたのライブラリの。ただし、このような配布モデルの場合、通常はライセンスキーは必要ありません。

編集:もちろん、上記の2つよりもオープンソースソフトウェアのお金を稼ぐためのより多くの選択肢があります。これは Wikipediaの記事 にいくつかリストされています。

5
Doc Brown