2012-05-13 7 views
1

私は自分のソフトウェアにソフトウェアライセンスを追加しようとしていますが、これは販売を計画しています(正しい場合はライセンス、ソフトウェアにはアクセス権を与えます。私はサーバーを持っていないので、接続できません。私は自分のソフトウェアを販売するために有償のオンラインサービスを利用するつもりです(私はライセンスのためにサーバサポートを利用したくないので、休憩が必要です)。だから、私はクライアント側の検証を使うことにしました。とにかく、私はライセンスを生成する方法(ライセンスアルゴリズム)とそれを検証する方法(ライセンスアルゴリズムに従って)を混同しています。私は自分のやり方でそれをすることができますが、このセキュリティ問題を混乱させたくないので、専門知識の助けを借りることに決めました。このライセンスジェネレータとValidatorの作成方法の例を教えてください。アルゴリズムを使った例文を投稿している場合は、それが複雑だと思ったら、説明するほど親切にしてください。だから私だけが自分のものを作ることができるから。ライセンスキーアルゴリズムについてのアイデアが必要

それ以外は、別の疑問がある。つまり、ソフトウェアに1つのライセンスキーしか持たないのですか?したがって、問題なくソフトウェアにハードコードすることができます。

助けてください。

+0

どのような種類のアルゴリズムも壊れている可能性があります。オンライン検証チェックを破ることはずっと難しくなります(偽装するのは難しいでしょう)。また、http://stackoverflow.com/a/454541/248065にリンクしたいと思います。ここでは、アクティブになっているかどうかの通常のチェックをバイパスするのが簡単だと言います。 –

+0

@TheGuyまあRSAと共同はうまくいけないことです(それはニックピッキングです)。問題は、あなたが指摘するように、それほど簡単にチェックをしないことです。実際の唯一の解決策は、すべてのビジネスロジックをサーバー側に置くことです。これは基本的にWebアプリケーションを作成することを意味します。最も重要なこと:あなたがしていることとは関係なく、アプリケーションを海賊のために使いやすくしてください。/ – Voo

+0

21174-324242-8327429に短縮すると、より多くの衝突が発生することは間違いありません。 -2384727フォーマット。 –

答えて

0

実際には任意の保護に、このいずれかを開始する場合の世話をしなければならないものの片鱗を取得するために設計上の考慮事項を見てみましょう。問題は、ハッカーがどの程度の努力を払う必要があるかということです。

ハードコーディングされたキーを1つ持つことは、キーを簡単に共有できる限り、選択できる最悪の解決策である可能性があります。キーはf(system_id)でなければならないので、キー共有は機能しません。

ハードコードされたキー検証を行うことはよくありません。ハッカーは、コードのこの部分をkeygenにコピー/ペーストするだけです。

より良い解決策は、サーバー側のキーを確認することです。http://activation-cloud.comと同じです。しかし、現時点ではC++だけです。

+1

ここで行うべきことは、推薦時にactivation-cloud.comとの著者の所属を指摘することでした。 –

4

公開鍵暗号システムを使用してください。アプリケーションには、ライセンス署名機関の公開鍵が含まれている必要があるだけなので、新しいライセンスを生成するのに必要な鍵はありません(あなただけがそれを持っています)。署名された文書には、有効/無効にする必要のある任意の機能をリストすることができます。ファイルに署名して署名を検証するためのサンプルコードを含むチュートリアルは、ここにあります:http://docs.oracle.com/javase/tutorial/security/apisign/index.html

0

@James Youngman氏は、PPKが行く方法だと述べています。これを使用するためのショートカットが必要な場合は、TrueLicenseを参照してください。

は、少なくとも、あなたがひび割れすることができ、独自の

関連する問題