Windowsアプリケーションのライセンスを提供したい。として、私はMACアドレスを使用できることをオンラインで検索していましたが、同時に、なりすましの可能性があります。そして、次のようなすべてのキーに問題があります:
- CPUID
- マザーボードID
- HDDシリアル番号
これに対する解決策は何ですか?
英語が下手でごめんなさい。
このタイプのライセンスを行う場合、顧客のライセンスを追跡するための継続的な管理作業になることを予測する必要があります。数百人の顧客がいると、キーの変更を要求する電話が頻繁にかかることに驚かれることでしょう。そうしないと、顧客がマシン全体を交換し、新しいマシンでソフトウェアを実行するために更新されたライセンスが必要になる場合があります。私が働いていた会社では、これらの電話はほぼ毎日受けました。
また、顧客に新しいキーを渡した場合は、古いコンピューター(またはネットワークアダプター)でのソフトウェアの使用を停止することを顧客に信頼する必要があります。そもそも彼らが免許に従うことを信頼できなかったとしたら、彼らが古い鍵を捨ててしまうことをどうやって信頼できるでしょうか。
この管理アクティビティをどのようにサポートするかを計画していない場合は、この方法で製品のライセンスを取得しないでください。とにかく協力していたであろうあなたの良い顧客に不便をかけるだけでしょう。
USBドングルを介してライセンスを取得するためのテクニックを参照してみてください
アプリケーションをコンピューターにリンクするように安全を確保したいのはなぜですか。ユーザーが自分のマシンにインストールされているアプリを購入した場合、突然、そのマシンが気に入らなくなったと判断し、アプリのライセンスが必要な場合にのみ新しいマシンを購入します。そのマシンに関連して、それは彼がアプリをもう一度購入しなければならないことを意味します...。
代わりに、独自のキージェネレーターを使用するだけで、この例がたくさんあります。同じマシンに複数のバージョンのアプリをインストールしたくない場合は、いつでも登録にメモをとることができます。
ここにいくつかの例があります
http://www.codeproject.com/Articles/11012/License-Key-Generation
標準のPCには、一意に識別するために使用できる情報はありません。あなたが言ったように、あなたのベストショットはコンポーネントのシリアル番号を使用することです。アーキテクチャのため、Windowsドライバーモデルなど。開いている場合、これらはなりすましの可能性があります。また、これらのコンポーネントが失敗した場合、ユーザーがこれらのコンポーネントを交換する可能性があることを考慮する必要があります。これにより、ライセンスの検証が失敗する可能性があります。
携帯電話などの最新のデバイスには、この種の目的のために一意に識別可能な情報(例:AndroidのデバイスID)があります。
マシンではなく、ユーザーを特定するのが最善の方法だと思います。可能であれば、サーバー側から検証するユーザー名とパスワードの組み合わせを使用してください。それ以外の場合は、シリアル番号を使用してチャンスをつかむ必要があります。
AppStore / Marketのようなサードパーティのソリューションを使用できます。これは、アプリケーションが起動するたびに、基本的にサーバー側で検証を行います。一例として、WindowsVistaで導入されたMicrosoftDigital Lockerがありますが、現在は使用できません。