ライセンスソフトウェアはまだ解決されていません - または、少なくとも安全に、ユーザーに不便を感じさせることなく、主要インフラストラクチャへの投資なしでは解決されません。
ライセンスステータスを格納する場所/メカニズムはほとんど関係がありません - レジストリはテキストファイルよりも安全ではありません。コンテンツにアクセスするには数秒かかりますが、リモートバックウォーターのエントリを「隠す」レジストリの多くは役に立たない。
おそらく、あなたのソフトウェアには何らかの永続性の問題があります(データベースファイルシステム?)。同じ永続性メカニズムを使用して登録ステータスを保存することができます。
もちろん、あなたのソフトウェアが読み書きできるものは、あなたのソフトウェアに不正にアクセスしようとする人がアクセスできます。したがって、レコードを暗号化することができます。その暗号化メカニズムの鍵を管理するという問題があります。 afaik、今、この堅牢なソリューションはありません。
インターネットに「ライセンスサーバー」がある可能性があります。あなたのソフトウェアはあなたのマシンのユニークな識別子を読み取るかもしれません(例:(MAC address)、それをあなたのライセンスサーバに送り、サーバにライセンスステータスを返させてください。繰り返しますが、これは回避するのは簡単ではなく、今ではソフトウェアを使用するためにユーザーがオンラインになっている必要があります。
ソフトウェアがユーザーにとって遠隔的に魅力的であれば、ハッカーは数日でライセンスキーの保護を解除し、詳細な手順をインターネットに投稿します。 AppleはIphone/Ipad上のソフトウェアを保護するために並外れた長さに行きますが、まだ脱獄アプリはそれらをロック解除します。
私の意見では、あなたのソフトウェアが何千万ドルもの収入を得なければ、あなたの人生をできるだけ簡単にし、セキュリティ面についてはあまり心配しないでください。 @bunting recommends)、またはテキストファイルのために解決する。具体的に
、Iだろう:ライセンスファイルが存在しない場合
、
がいることを比較ライセンスキーを入力するようユーザーに求めるアプリケーションの起動時に有効なライセンスファイルの存在のため
- チェックライセンスキーのキー
- "有効な"ファイルをファイルシステムのアプリケーションディレクトリに書き込みます。代わりに、既存の設定ファイルを変更してください。
これは非常に簡単です。あなたは一歩進んで行くことができます。
第1に、Javaアプリケーションは逆コンパイルが容易で、攻撃者はあなたの「ライセンス」定数を簡単に読み取ることができます。これを困難にするには、難読化ツールを使用する必要があります(不可能ではありません)。
第2に、ローカルライセンスデータを暗号化することができます。これも完全にカジュアルなハッカーにとってより難しくなります。ハッカーは、ライセンスキーを使用してアプリケーションを再配布するだけでは(たとえば、ライセンスキーにマシンのMACアドレスを掛けて)、暗号化スキームにローカルデータを含めることはできません。
どちらの場合でも、ライセンスをアプリに「配線」しています。ハッカーがアプリケーションのライセンスキーを投稿する掲示板があり、新しいキーで新しいバージョンのアプリを発行する以外の方法で対応することはできません。
ソフトウェアを「覚えている」ことは簡単です。ハックするのは簡単ではありません... – Mysticial
license4jアプリケーションを使用すると、YouTubeで動画を確認できます –