ページ 11

ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい

Posted: 2013年2月28日(木) 20:27
by moks
現在、C#でアプリケーションを開発しており、そのアプリを何かしらの方法を用いてダウンロード販売したいと思っています

しかし、いざ売ってからそのアプリケーションが無料のアップローダに上げられて、ぼかぼかみんなに使われてしまうのではないか?と、とても危惧しています

windowsやMS officeのように、ライセンスを買った人のみが使えるようにしたいのですが、どのようにすればよいでしょうか?

Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい

Posted: 2013年2月28日(木) 21:00
by softya(ソフト屋)
まずC#の問題は難読化しないと非常にリバースエンジニアリングされやすいと言うことです。
つまり、ソースの復元が容易に出来ますので、有料化するには、まずこの問題を片付ける必要があります。

さて、では有料化する場合はどうすれば良いでしょう。
1つはvectorなどで公開できるシェアウェアと言う考え方です。
この場合はライセンス解除キーをユーザーに提供する必要があります。
「ライセンスキーの種類」
http://www.vector.co.jp/swauth/man/help/ps_key1.html
個人ではプロレジは利用できません。

作者生成テキストキータイプ などを利用すると良いと思います。
このライセンスキー自体はハッシュなどで生成する必要があります。
ココら辺はバレると困るのでみなさん方法を詳しくは公開しておりませんね。

Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい

Posted: 2013年2月28日(木) 21:03
by shiro4ao
やっぱり購入者の個人情報と紐づいた一意のパスフレーズを一人一人に配るのが安全なのかもしれません
そうなると管理するのも大変ですしオンラインで四六時中認証できるようにするならサーバが必要になり
少し大変そうです。

ベクターとかソフト配布しているところがライセンスのやりとりを仲介してくれるかもしれません
(正確なことはよくわからないので、すみません)

Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい

Posted: 2013年2月28日(木) 21:13
by moks
softya(ソフト屋) さんが書きました:このライセンスキー自体はハッシュなどで生成する必要があります。
ココら辺はバレると困るのでみなさん方法を詳しくは公開しておりませんね。
そりゃそうですよね。ネットの海を探しまわっても情報がありませんでしたし‥‥
ハッシュで生成するというやり方をもう少し詳しく教えていただけませんか?

softya(ソフト屋) さんが書きました:まずC#の問題は難読化しないと非常にリバースエンジニアリングされやすいと言うことです。
つまり、ソースの復元が容易に出来ますので、有料化するには、まずこの問題を片付ける必要があります。
盲点でした。言われてみればこれはまずい。
言われてみれば、C#にしろ、javaにしろ、簡単に元のソースが見れてしまいますしね。
難読化用のツールなどでおすすめのものはございますか?

Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい

Posted: 2013年2月28日(木) 21:40
by softya(ソフト屋)
moks さんが書きました:
softya(ソフト屋) さんが書きました:このライセンスキー自体はハッシュなどで生成する必要があります。
ココら辺はバレると困るのでみなさん方法を詳しくは公開しておりませんね。
そりゃそうですよね。ネットの海を探しまわっても情報がありませんでしたし‥‥
ハッシュで生成するというやり方をもう少し詳しく教えていただけませんか?
あくまで例ですよ。
ハッシュ関数はSHA-1あたりを使うとして、シリアルナンバー+ランダム値+ソフトごとの隠しキーワードでハッシュを生成します。
あとは、このハッシュ+シリアルナンバー+ランダム値をライセンスキーとして発行します。

ソフト側では、ハッシュとシリアルナンバー+ランダム値を分離して、ソフトごとの隠しキーワードを元にシリアルナンバー+ランダム値+ソフトごとの隠しキーワードのハッシュを生成します。この生成ハッシュとライセンスキーのハッシュが一致すればライセンス認証がOKと言うことです。
ただし、この場合ソフトに埋め込まれたソフトごとの隠しキーワードとハッシュ関数がバレるとライセンスキーが破られることになります。
moks さんが書きました:
softya(ソフト屋) さんが書きました:まずC#の問題は難読化しないと非常にリバースエンジニアリングされやすいと言うことです。
つまり、ソースの復元が容易に出来ますので、有料化するには、まずこの問題を片付ける必要があります。
盲点でした。言われてみればこれはまずい。
言われてみれば、C#にしろ、javaにしろ、簡単に元のソースが見れてしまいますしね。
難読化用のツールなどでおすすめのものはございますか?
サイトを貼っておきますね。
「.NET アセンブリの難読化ツール - さよならストレス」
http://d.hatena.ne.jp/wwwcfe/20100513/obfuscator
実は難読化の必要性が生じた事がないので、評価しておりません。

Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい

Posted: 2013年3月02日(土) 01:20
by moks
返事遅れて申し訳ありません。


いろいろ考えました結果、サーバーを借りて毎回認証しようかと思います。


ただ、まだ勉強不足な気がするので、もう少しこの手のことに詳しくなってから手を出します。


回答してくださった皆さん、ありがとうございました。解決にさせていただきます。

Re: ソフトウェアを有料で売るにあたって、ライセンス認証(?)を実装したい

Posted: 2013年3月02日(土) 01:35
by softya(ソフト屋)
サーバ認証は考えたことがありますが、次のような問題点があります。
・ラインセンス購入した証明をどうやって得るか。
・ライセンス紛失の後日サポートをどうするか。
・認証サーバーを何年も続けられるだけの自信はあるか。
・毎日のサーバーのバックアップなども十分の出来るのか。
・メール認証やアクティベーションなどの技術的な問題。
・メール認証やアクティベーション出来なかった時の技術サポート体制。
・耐クラック性のあるソフトを作れるのか(高度な耐タンパー性の確保)。
で、結局、それほど売れるソフトで耐クラックの技術や認証技術やサポート体制を導入するほどの価値のものなのか。
ここまで考えて導入すべきだと思います。