背景: サーバー、データベース、電子商取引の統合など、サードパーティのライセンス システムの上に構築されたアクティベーション ベースのシステムを展開しました。また、RSA キーを使用して C# アクティベーション システムを個別に作成しましたが、展開したことはありません。
製品のアクティベーションとは、通常、特定のマシンでソフトウェアをアクティベートする必要があることを意味します。それがあなたの言いたいことだと思います。「デモ」と「購入済み」を意味する 2 つの文字列があれば、数時間以内に復号化されて配布されます (製品に価値があると仮定します)。意味がありません。
そう。「アクティベーション」が必要な場合、ユーザーがソフトウェアを購入するときに、次のプロセスを実行する必要があります。
- 注文処理ソフトウェアは、サーバーに「購入キー」を生成してユーザーに送信するよう指示します
- ユーザーが「購入キー」をソフトウェアに入力
- ソフトウェアは、購入キーと一意のマシン ID をサーバーに送信します。
- サーバーは、購入キーとマシン ID を組み合わせて文字列にし、証明書で署名してユーザーに返します。
- ソフトウェアは、サーバーの公開鍵を使用して署名が有効であることを確認します。
- ソフトウェアは多くの場所でチェックできます。多くの場所で sig をロードし、他の場所でチェックします。
購入キーを生成するとき、サーバーは購入した農産物だけでなく、どのレベルの製品も保存できます。また、期間限定の「無料」製品を用意して、ユーザーがソフトウェアのフル バージョンを 30 日間試用できるようにすることもできます。
C# を使用しているため、dotfuscator または同等のツールを使用してバイナリを難読化してください。ただし、それでも、断固たるハッカーに対してできることは何もありません。あなたの目標は、無料のユーザーに自分自身をハッカーにするか、クラックされたバージョンを使用する危険を冒さなければならないことを強制することだと思います。YMMV。
チェックを行うコードは、保護が必要なすべてのアセンブリに含まれている必要があります。そうしないと、攻撃者は、チェックを行うアセンブリを置き換えることで、簡単に保護を削除できます。必要に応じて、コードをカット アンド ペーストします。
または、何かを購入するだけです。
もう 1 つのオプションは、サーバーに「購入キー」を事前に生成させて注文フルフィルメント サービスに提供させることですが、そのキーを顧客の詳細にリンクすることはできません (少なくとも顧客が登録するまで)。購入が行われたときに e コマース サーバーがサーバーにヒットし、サーバーがそれを送信するようにすることをお勧めします。
難しいのはアクティベーション キーの生成ではなく、サーバー、データベースの作成、e コマース ソフトウェアとの統合、そして何よりも人的問題です。購入キーごとに無制限のインストールを許可しますか? 1のみ?1つだけの場合は、カスタマーサポートと、ユーザーが新しいマシンにインストールできるようにする方法が必要です. それはたった1つの問題です。あらゆる種類の楽しみ。