2011-01-20 3 views
3

私たちの(Windowsデスクトップまたはサーバー)アプリケーションのライセンスを、プリペイド式のキーで特定の時間数使用できるようにしたいと考えています。それを停止して再起動すること、およびユーザーが選択した実行期間を可能にする必要があります。時間は秒に記録する必要はありませんが、分は問題ありません。それは技術的に有能なユーザーによる詐欺行為に対して証明する必要がありますが、政府機関のレベルでの攻撃に抵抗する必要はありません!ユーザーが後で別のキーを購入するまで、アプリはインストールされたままになることができます。 「キー」 はソフトウェアのみでなければならず、ドングルはこのアプリケーションには適していません。時間単位でアプリのライセンスを取得する手段が必要

理想的には、独自のDelphi(XE)コードでこれをどのようにしっかり実装するかについてのアイデアをお伝えしたいと思いますが、別の言語のアプリケーションでも同じように行うことができます。私たちはです。私はこれを実装するためにコンポーネントを購入することにはオープンしていますが、私は、この要件だけでなく、ライセンスツールのために多額のお金を払うつもりはありません。特定の日付以降の使用を防ぐライセンスメカニズムは既に用意されています。

+0

起動時にサーバーに連絡することはできますか? – CodesInChaos

答えて

1

ユーザーが数時間購入すると、ユーザーに(一意の)ライセンスキーを与えることができます。また、このキーを自分のWebサーバーのlicensing.yourdomain.comに保存することもできます。これまでの分(いわゆる「分カウンタ」)(つまり0)が費やされました。さて、このアプリケーションでは、TTimerによって、1分に1回実行される関数CheckLicensed: booleanが実行されます。これにより、軽量のPOSTlicensing.yourdomain.comに送信され、ライセンスキーが送信されます。次に、サーバーは分カウンターを1つ増やします。分カウンタが購入した分数より少ない場合は、関数CheckLicensedがtrueを返します。一方、ライセンスの有効期限が切れている場合はfalseを返し、機能を無効にしたり、アプリケーションを終了することもできます(もちろん、アプリケーションの性質によって異なります)。

もちろん、アプリケーションが実行されていない場合、分カウンタは増加しないため、ライセンスは無駄になりません。また、ユーザーにTTimerを一時停止するオプションを与えることができるかもしれませんが、もちろん、プログラム内のいくつかのボタン(該当する場合)も無効になります。

このアプローチでは、インターネットに常にアクセスする必要がありますが、それは問題ではない可能性があります。それは非常に安全です。例えば、エンドユーザは自分のシステム時間を変更するか、分カウンタを変更することで不正行為をすることはできません(それはサーバ上にあり、政府機関だけがそれにアクセスすることができます)。

POSTリクエストを送信するにはどうすればよいですか?私はHow to send a HTTP Post Request in Delphi 2010 using WinInet

+1

ありがとう、私はこの単純な考えが本当に好きです。また、ユーザーがソフトウェアとキーを複製すると、カウンタは2倍の速さで実行されるため、キーとソフトウェアを物理マシンに結びつけるという問題も回避されます(送信IPアドレスも確認できます)。私の唯一の予約は、私たちのWebサーバーの堅牢さと可用性がそれにまで及んでいるかどうかということですが、おそらくこの問題を解決するどこかに見つけることができます。私はこの答えを受け入れるだろう。 – frogb

+2

私は、応答が私たちから来て、迂回されていないことを確認するために、単に「真」ではなく、キーから毎回計算された回答を返すこともできます。 – frogb

+0

1時間までにアプリケーションのライセンスを取得していませんが、これはおおよそユーザーライセンスが有効かどうかを確認する方法です。非常に軽量で、クライアント側で実行する時間がほとんどありません。また、猶予期間を設けて、インターネット接続なしでアプリケーションを使用することもできますが、それはあなたの状況に適していません。また、サーバー上のライセンスデータベースから既に未解決のライセンスを取り消すこともできます。 – Bascy

1

は、に基づいて、鍵を生成し、eコマースのストアから呼び出し可能なWebサービスを持っている: ユーザー名+メール+のDateTime + NumHoursPurchased は、AES256でその文字列を暗号化するなどの単純なアルゴリズムを使用してください。

アプリでは、名前と電子メールを入力します。次に、彼らは電子商取引ストアから受け取るキーを貼り付けます。今、彼らはそれを購入した時、そして何時間を知っています。購入日時が最近のもの(過去30分以内)の場合は、アプリのロックを解除して時計を開始してください。時間を自分で追跡し、安全な場所に保管し、理想的には暗号化したり隠したりする必要があります。

+0

あなたの応答に感謝しますが、私は、Andreasによって提案された同様の、しかし少しシンプルなソリューションを好むので、私はそれをマークしました。 – frogb

2

で以前にその質問への答えを与えている私はあなたがOreansからWinLicenseに見てお勧め:http://www.oreans.com/winlicense.php

彼らのトライアルライセンスは、あなたが何をしたいのかを正確に行います。非常に多くの累積的な時間が経過した後で、ライセンスの有効期限を簡単に設定できます。

WinlicenseはDelphiに簡単に統合され、多数の設定オプションがあります。私は過去1年間それを使用しており、ソフトウェアとそのサポートに非常に満足しています。

alt text

+0

これは出版社のサーバーに接続していませんか?これは、十分に有能なエンドユーザーが制限をバイパスできることを意味します。 –

+4

「十分に有能なエンドユーザ」は、クライアント/サーバ通信を容易に傍受し、このダイアログをバイパスまたはシミュレートします。ユーザーにとって単純なままであれば、簡単に保護することができます。 – TridenT

+0

この種のセキュリティコードを追加することは努力する価値があるのか​​、それとも破られないのかという話題は、やや宗教的戦争につながります。はい、すべてのセキュリティは「十分に有能なエンドユーザー」によって壊れる可能性があります。しかし、私たちのほとんどは、IMOは、プロのクラッカーの注目を得ることは決してないニッチ製品を販売しています... – RobertFrank

0

私はアルマジロ保護エンジン上に構築されているソフトウェアのパスポートをお勧めします。それは何年にもわたって私を大いに役立ってきました。

1分で、Armadilloのプロライセンスが必要です。証明書を作成してからx分で期限切れになる証明書を作成することができましたが、ソフトウェアパスポート(Armadilloは別個の製品だった)の出現により、サイトはそれほど明確ではありませんが、標準になります。

ソフトウェアパスポートはDigital Riverから提供されているため、デジタルリバーバックアップされたすべてのソフトウェアポータルサイトと「ショッピングカート」を簡単に統合することができます。

もう1つの利点は、私が正しく理解していれば(使用していない)、自動キー配信と呼ばれるものを使用できることです。ソフトウェアを包み込んだセキュリティエンベロープがデジタルリバーサーバーに接続し、あなたのソフトウェアにまっすぐに。ユーザーが実際のキーを見ることができないということを意味します。(エンドユーザーによるキーのコピーを防止するのに非常に便利です)。

作成者:http://www.siliconrealms.com/

+0

応答のためにありがとう、この場合は適切ではありません。このアプリは、このようにして販売されていないより大きな製品を(時間によって制限する必要がある)1つの部分です。 – frogb

関連する問題