Windows Formアプリケーション(C#)のライセンス管理で良い方法はありますか？


Windows Formアプリケーション(.Net C#)をwindowsパソコンにインストールして利用して頂く際に  
ライセンス管理をしたいと考えています。

アプリケーションの仕様  
･windows 7/8/10上での動作を想定  
･windowsサーバに接続してアプリケーションで利用するデータを取得する。(WCFを検討）

ライセンス管理方法案  
･インストールできる台数を制限する。  
･サーバに同時接続できるアプリ数を制限する。  
･ClickOnceのテクノロジーでダウンロード数の制限をかける。

サーバで管理する、ローカルで制御するなど方法はいろいろあるかと存じますが、  
何か良い方法をご存知の方がおりましたら、  
参考URL等の情報でも構いませんのでご教示頂きたく、よろしくお願いいたします。




お目汚しでございますが(実績に基づいた回答はできていません)、メモ程度の内容を記載します。実際に利用するには追加調査等が必要です。

ライセンス管理について:  
資料を見かけた程度の情報しかありませんが、.NET Framework が提供するLicenseManagerというクラスがあるようです。  
そのほかの解決策として、あまり高額ではないソフトウェアでファイルベースのライセンス認証を行うコードなどが以下のサイトにありました。ライセンスファイルをWCFを利用してネットワーク経由で取得するというのも良いでしょう。  
<https://stackoverflow.com/questions/3624149/license-for-c-sharp-desktop-
application>

同時利用制限について:  
利用時の制限については、WCFで可能のように思います。注意点としては同時接続数の管理や、セキュリティを適用する(不特定多数からのアクセス)場合、公的証明機関から証明書の取得が必須になることです。  
オフラインで同時利用制限を課したい場合は、ライセンスサーバーを準備させるか、ハードウェアキーでの制限が考えられます。

ライセンス回避の対策:  
ソフトウェアという資源のため、ライセンス認証を回避されることがあります(逆アセンブル等をされやすい)。費用が掛かりますがハードウェアキーを利用する等の対策をとることも可能です。  
一般的には難読化や、ネイティブコードへの変換が考えられます。併せて、複数のDLLから成るソフトウエアであるのならば署名を追加することでDLL入れ替えを防ぐことは可能と考えています(このときアセンブリバージョンの変更は要注意)。




お目汚しでございますが(実績に基づいた回答はできていません)、メモ程度の内容を記載します。実際に利用するには追加調査等が必要です。

ライセンス管理について:  
資料を見かけた程度の情報しかありませんが、.NET Framework が提供するLicenseManagerというクラスがあるようです。  
そのほかの解決策として、あまり高額ではないソフトウェアでファイルベースのライセンス認証を行うコードなどが以下のサイトにありました。ライセンスファイルをWCFを利用してネットワーク経由で取得するというのも良いでしょう。  
<https://stackoverflow.com/questions/3624149/license-for-c-sharp-desktop-
application>

同時利用制限について:  
利用時の制限については、WCFで可能のように思います。注意点としては同時接続数の管理や、セキュリティを適用する(不特定多数からのアクセス)場合、公的証明機関から証明書の取得が必須になることです。  
オフラインで同時利用制限を課したい場合は、ライセンスサーバーを準備させるか、ハードウェアキーでの制限が考えられます。

ライセンス回避の対策:  
ソフトウェアという資源のため、ライセンス認証を回避されることがあります(逆アセンブル等をされやすい)。費用が掛かりますがハードウェアキーを利用する等の対策をとることも可能です。  
一般的には難読化や、ネイティブコードへの変換が考えられます。併せて、複数のDLLから成るソフトウエアであるのならば署名を追加することでDLL入れ替えを防ぐことは可能と考えています(このときアセンブリバージョンの変更は要注意)。

