2011-02-08 9 views
13

私はC++/Obj-Cで書かれたWindowsとMac用の小さなクロスプラットフォーム製品を開発中です。私は同じもののためのライセンスモジュールを実装するように頼まれています。この作業は、すべての製品にライセンスを導入する非常に野心的なプロジェクトの一環です。最後に、私たちは、年間更新、ライセンスレベルなどをサポートする、お客様にライセンスを販売できる完全なライセンス制度を設けます。私の問題は、ライセンスチェッカーの実装についての最初のことを知らないことです。誰も私に何かを指摘することはできますか?私が勉強できるオープンソースのライセンスモジュールはありますか?ライセンスチェックライブラリの実装

答えて

16

私はパーシャルキー検証(PKV)のシステムを使用しています。これはC#でPHPジェネレータを使用して実装しました。 Googleはさまざまなヒット、説明、実装を考え出します。しかしブランドンStaggsは(Delphiでいえ!)良い概要を書いて、ここで:

http://www.brandonstaggs.com/2007/07/26/implementing-a-partial-serial-number-verification-system-in-delphi/

PKVはハッシュとともにキーの中の特定の情報(ライセンス・タイプ、シリアル番号、製品、日付など)を符号化することによって動作しますエンコードされた情報をハッシュします。キーの多くは、実際には複数のチャンクハッシュで構成されています。考えられるのは、これらのハッシュのサブセットのみをチェックするということです。発行された正確なサブセットは、何らかのセキュリティのために時間とともに変化し、ある種のリバースエンジニアリングから保護することができます。

また、ライセンス内の各文字の意味をわかりにくくするために、キーを暗号化します。そうでなければ、複数のキーを持つ人が特定の文字位置を特定するかもしれませんが、特定のもの( "ああ、文字3-4はシリアル番号です")を意味します。これはあなたの鎧のちっちゃいかもしれません!

開発したライセンスシステムは不完全になります。それはひどく壊れやすく、あなたの製品が普及していれば、ひどくなります。しかし、正直な人たちを正直に保ち、やや正直な人たちには十分なハードルを生み出すためのライセンス制度が存在するという強い主張がありますが、あまりにも多くのハードルであまりにも不便になることはありません(例えば、 )。あなたのシステムをハッキングする人はおそらくそれを支払うつもりはないでしょう。

+2

+1最後の段落のために、それは決して完璧ではないでしょうが、それが十分であれば大丈夫でしょう。 –

+0

私はあなたの説明、特に最後の段落が大好きです。それはすべてそれを要約する! –