- - PR -
ライセンス情報の保存場所
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-01-31 14:12
いつもお世話になっております。
Microsoft Visual Studio .NET をターゲットとしたビジュアルなコンポーネントの作成http://www.microsoft.com/japan/msdn/net/general/pdc_vsdescmp.aspx 上記を参考に、コンポーネントにライセンスを実装しました。 サンプルコードではGetLicenseメソッドで、レジストリに特定のWordがあればライセンスを発行しています。 しかしレジストリにライセンス情報(暗号化されている)を登録するのは安直過ぎるような気がするのですが、 一般的にどのような方法でライセンス情報は保存するものなのでしょうか? 例えばサードパーティ製のツールなどは、レジストリにはインストールパスのみが登録されています。 ここは各自の工夫次第なのだと思いますが、知識不足のため全く何も思いつきません。 一般的にはどうのような方法があるのか検索したいのですが、検索ワードも思いつかない次第です。 検索ワードだけでもいいので何かアドバイスを頂けないでしょうか。 よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2008-01-31 22:31
私が関わったものは、CSIDL_APPDATA または CSIDL_COMMON_APPDATA に、XML でしまいました。
インストールされている PC の IP アドレスなど、一意になるであろう情報のダイジェストを収集し、ライセンス発行サーバに送信。ライセンス発行サーバが、収集したダイジェストを含むライセンス情報に署名。ソフトウェアは、公開キーで署名を確認しています。 「LicenseProvider」で検索すると、MSDN マガジンの記事が見つかると思います。 | ||||||||||||
|
投稿日時: 2008-02-01 10:05
Jitta様 ありがとうございます。
>「LicenseProvider」で検索すると、MSDN マガジンの記事が見つかると思います。> これのことでしょうか? http://codezine.jp/a/article.aspx?aid=62 イメージ的には ライセンス情報ファイルのキーが一致する場合、製品版として使用でき、 それ以外の場合はトライアル版として使用できるように考えています。 ランタイム時は無条件に使用できます。 レジストリにライセンス情報を書き込むのではなく CSIDL_APPDATA等にライセンス情報ファイルを暗号化して置いておき LicenseProviderで復元してチェックという方法でもいいですね。 暗号化のキーをどうするか(どこに保存するか?)また疑問がでてきますが・・・ [ メッセージ編集済み 編集者: 未記入 編集日時 2008-02-01 10:06 ] | ||||||||||||
|
投稿日時: 2008-02-02 10:26
ありゃ!!失礼しました。ずっと MSDN マガジンで読んだと思いこんでいました。 CodeZine は公開が終わっているので、japan.internet.com の方がいいですね。
しばらく .NET から離れているのでスワップアウトされた記憶が戻って来にくく、具体的に提示できなくて申し訳ないですが、デザイン時かどうかを判別できるプロパティがありますので、それでライセンスチェックを行うかどうかを決めます。ただ、そのプロパティは、コンストラクタ内では機能できないので、その点は注意が必要です。 (前記事「アプリケーションライセンスとコントロールライセンス」の項参照)
Crypto Service Provider を使います。まぁ、バックアップをどこにどうするかは、別の問題として存在しますけど。 あ、クライアントに渡す方ですか?私はアプリケーションに埋め込みましたよ。だって、秘密に守らなければならないのは、ライセンス発行サーバに保存する秘密キーで、署名の検証に使う公開キーは、公開してかまいませんから。 その他の参考: http://msdn2.microsoft.com/ja-jp/library/fe8b1eh9.aspx http://www.atmarkit.co.jp/fdotnet/vblab/appqa_05/appqa_05_01.html http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_02/idnfw11_02_02.html |
1