現在、C#でアプリケーションを開発しており、そのアプリを何かしらの方法を用いてダウンロード販売したいと思っています
しかし、いざ売ってからそのアプリケーションが無料のアップローダに上げられて、ぼかぼかみんなに使われてしまうのではないか?と、とても危惧しています
windowsやMS officeのように、ライセンスを買った人のみが使えるようにしたいのですが、どのようにすればよいでしょうか?
ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい
まずC#の問題は難読化しないと非常にリバースエンジニアリングされやすいと言うことです。
つまり、ソースの復元が容易に出来ますので、有料化するには、まずこの問題を片付ける必要があります。
さて、では有料化する場合はどうすれば良いでしょう。
1つはvectorなどで公開できるシェアウェアと言う考え方です。
この場合はライセンス解除キーをユーザーに提供する必要があります。
「ライセンスキーの種類」
http://www.vector.co.jp/swauth/man/help/ps_key1.html
個人ではプロレジは利用できません。
作者生成テキストキータイプ などを利用すると良いと思います。
このライセンスキー自体はハッシュなどで生成する必要があります。
ココら辺はバレると困るのでみなさん方法を詳しくは公開しておりませんね。
つまり、ソースの復元が容易に出来ますので、有料化するには、まずこの問題を片付ける必要があります。
さて、では有料化する場合はどうすれば良いでしょう。
1つはvectorなどで公開できるシェアウェアと言う考え方です。
この場合はライセンス解除キーをユーザーに提供する必要があります。
「ライセンスキーの種類」
http://www.vector.co.jp/swauth/man/help/ps_key1.html
個人ではプロレジは利用できません。
作者生成テキストキータイプ などを利用すると良いと思います。
このライセンスキー自体はハッシュなどで生成する必要があります。
ココら辺はバレると困るのでみなさん方法を詳しくは公開しておりませんね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい
やっぱり購入者の個人情報と紐づいた一意のパスフレーズを一人一人に配るのが安全なのかもしれません
そうなると管理するのも大変ですしオンラインで四六時中認証できるようにするならサーバが必要になり
少し大変そうです。
ベクターとかソフト配布しているところがライセンスのやりとりを仲介してくれるかもしれません
(正確なことはよくわからないので、すみません)
そうなると管理するのも大変ですしオンラインで四六時中認証できるようにするならサーバが必要になり
少し大変そうです。
ベクターとかソフト配布しているところがライセンスのやりとりを仲介してくれるかもしれません
(正確なことはよくわからないので、すみません)
最後に編集したユーザー shiro4ao on 2013年2月28日(木) 21:25 [ 編集 1 回目 ]
Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい
そりゃそうですよね。ネットの海を探しまわっても情報がありませんでしたし‥‥softya(ソフト屋) さんが書きました:このライセンスキー自体はハッシュなどで生成する必要があります。
ココら辺はバレると困るのでみなさん方法を詳しくは公開しておりませんね。
ハッシュで生成するというやり方をもう少し詳しく教えていただけませんか?
盲点でした。言われてみればこれはまずい。softya(ソフト屋) さんが書きました:まずC#の問題は難読化しないと非常にリバースエンジニアリングされやすいと言うことです。
つまり、ソースの復元が容易に出来ますので、有料化するには、まずこの問題を片付ける必要があります。
言われてみれば、C#にしろ、javaにしろ、簡単に元のソースが見れてしまいますしね。
難読化用のツールなどでおすすめのものはございますか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい
あくまで例ですよ。moks さんが書きました:そりゃそうですよね。ネットの海を探しまわっても情報がありませんでしたし‥‥softya(ソフト屋) さんが書きました:このライセンスキー自体はハッシュなどで生成する必要があります。
ココら辺はバレると困るのでみなさん方法を詳しくは公開しておりませんね。
ハッシュで生成するというやり方をもう少し詳しく教えていただけませんか?
ハッシュ関数はSHA-1あたりを使うとして、シリアルナンバー+ランダム値+ソフトごとの隠しキーワードでハッシュを生成します。
あとは、このハッシュ+シリアルナンバー+ランダム値をライセンスキーとして発行します。
ソフト側では、ハッシュとシリアルナンバー+ランダム値を分離して、ソフトごとの隠しキーワードを元にシリアルナンバー+ランダム値+ソフトごとの隠しキーワードのハッシュを生成します。この生成ハッシュとライセンスキーのハッシュが一致すればライセンス認証がOKと言うことです。
ただし、この場合ソフトに埋め込まれたソフトごとの隠しキーワードとハッシュ関数がバレるとライセンスキーが破られることになります。
サイトを貼っておきますね。moks さんが書きました:盲点でした。言われてみればこれはまずい。softya(ソフト屋) さんが書きました:まずC#の問題は難読化しないと非常にリバースエンジニアリングされやすいと言うことです。
つまり、ソースの復元が容易に出来ますので、有料化するには、まずこの問題を片付ける必要があります。
言われてみれば、C#にしろ、javaにしろ、簡単に元のソースが見れてしまいますしね。
難読化用のツールなどでおすすめのものはございますか?
「.NET アセンブリの難読化ツール - さよならストレス」
http://d.hatena.ne.jp/wwwcfe/20100513/obfuscator
実は難読化の必要性が生じた事がないので、評価しておりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい
返事遅れて申し訳ありません。
いろいろ考えました結果、サーバーを借りて毎回認証しようかと思います。
ただ、まだ勉強不足な気がするので、もう少しこの手のことに詳しくなってから手を出します。
回答してくださった皆さん、ありがとうございました。解決にさせていただきます。
いろいろ考えました結果、サーバーを借りて毎回認証しようかと思います。
ただ、まだ勉強不足な気がするので、もう少しこの手のことに詳しくなってから手を出します。
回答してくださった皆さん、ありがとうございました。解決にさせていただきます。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい
サーバ認証は考えたことがありますが、次のような問題点があります。
・ラインセンス購入した証明をどうやって得るか。
・ライセンス紛失の後日サポートをどうするか。
・認証サーバーを何年も続けられるだけの自信はあるか。
・毎日のサーバーのバックアップなども十分の出来るのか。
・メール認証やアクティベーションなどの技術的な問題。
・メール認証やアクティベーション出来なかった時の技術サポート体制。
・耐クラック性のあるソフトを作れるのか(高度な耐タンパー性の確保)。
で、結局、それほど売れるソフトで耐クラックの技術や認証技術やサポート体制を導入するほどの価値のものなのか。
ここまで考えて導入すべきだと思います。
・ラインセンス購入した証明をどうやって得るか。
・ライセンス紛失の後日サポートをどうするか。
・認証サーバーを何年も続けられるだけの自信はあるか。
・毎日のサーバーのバックアップなども十分の出来るのか。
・メール認証やアクティベーションなどの技術的な問題。
・メール認証やアクティベーション出来なかった時の技術サポート体制。
・耐クラック性のあるソフトを作れるのか(高度な耐タンパー性の確保)。
で、結局、それほど売れるソフトで耐クラックの技術や認証技術やサポート体制を導入するほどの価値のものなのか。
ここまで考えて導入すべきだと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。