を出すにはどうしたらいいんですよび検証ソフトウェアのライセンスーション-キーとは何ですか。

StackOverflow https://stackoverflow.com/questions/599837

  •  11-09-2019
  •  | 
  •  

質問

私は現在開発に取り組んで製品開発のクライアントまで、フルのC#)ただきダウンロード、インストールは無料ですが、非常に限られます。アクセスするにはすべての機能により、ユーザーが支払うライセンス料を受けるものとする。そのキーを入力への応用"解除"のフルバージョン。

使用ライセンスキーのような種類の通った:

  1. される、通常は解決?
  2. かのキーとか、どうする検証を利用していますか?
  3. どうもる必要性を回避するために鍵となくインターネット上に公開し、他の方に使われていると思払のライセンス(キーというものはな"あ").

といったところかも提携の鍵のバージョンを適用できることでしょうからできる新しいキーを特集します。

何かを考えるべきであると思いこのシナリオ?

役に立ちましたか?

解決

警告:できないユーザーからの海賊がりやすくなるので素直なユーザーのケースでは、正しいことです。

と仮定していない特殊な構築のための各ユーザー:

  • を自分の秘密鍵の製品
  • のユーザー名
  • Concatentateのユーザー名および秘密鍵のハッシュについては、例えばSHA1
  • 梱包を解SHA1ハッシュとしての英数字文字列になります。これは、個々のユーザーの"製品キー"
  • プログラム内で同じハッシュとの比較を行う製品。場合に等しい。

しかし、"リピート こんな海賊行為防止


私は最近、このアプローチは暗号法論的には非常に音が出ます。でもこのソリューションはすでに衰弱している(としてのソフトウェア自体の秘密鍵のどこかにではないと思いこの発見を無効に解決しているにすぎないことが分かる。

かんべきである旨を記載することが;一歩間違えれば得ながら、この注意を。

他のヒント

さまざまですが、生のライセンスキーが非常に少数の方が本当に安心です。では非常に残念な会社のライセンスキーはほぼ同じ値として金銭にて行います。

理想的には、だいたいお客様は、ライセンスキーについては、以下の特性:

  1. みおつき会社を創出できるライセンスキーは、お客様の製品をもっていても全く逆の技術者の商品までにないから。Obfuscatingのアルゴリズムまたは隠れてい暗号化キー内のソフトウェアは本当の問題の場合深刻な制御についてライセンス.場合はお客様の製品が成功すると、人は、鍵ジェネレータの日からリリース。

  2. ライセンスキーは使用できる唯一のコンピュータ(または少なくとも対応することができるでしょうこく)

  3. ライセンスキーを短くするタイプまたはそのに便利です。によってお使いのお客様の呼び出しの技術サポートいわからない場合は、キーが含まれて"l"または"1"お支援部うまこまいコスト低減。

だからどうやってこれらの課題を解決する?

  1. その答えは単純ですが技術的に挑戦す:デジタル署名公開鍵暗号通信を提案している。ライセンスキーが署名した書類"を含む、有用なデータ署名したのは、貴社するものとする。の署名入れるべきであるとのライセンスキーです。製品を検証し、ライセンスキーに対応する公開鍵があります。この場合でも、誰かがフルアクセスをお客様の製品のロジックしなくてはならないため、生のライセンスキーさんがをするものとする。ライセンスキーのようになります:BASE32(CONCAT(データPRIVATE_KEY_ENCRYPTED(ハッシュ(データ)))) 最大の課題は、古典的な公開鍵アルゴリズムを大きくして署名のサイズです。RSA512は、1024ビットの署名を表します。によってお使いのお客様は、ライセンスキーを数百の文字です。最も強力な手法を用の楕円曲線暗号(切に実装を避けるため、既存の特許).ECCキーのように6回以RSA鍵の強さです。きさらに低減させるために署名サイズ用アルゴリズムのようにSchnorrデジタル署名アルゴリズム(特許出願終了しました2008年-:))

  2. これによって達成され得る製品活性化(Windows)。基本的には、顧客のための有効なライセンスキーを作成す一部の"活性化データである"署名付きメッセージの埋め込みコンピュータのハードウェアidとして署名したデータです。これは、通常はインターネット上での一製品のライセンスキーのコンピュータのハードウェアidをアクティベーションプロトコルやインタフェースを活性化サーバーを送信し、署名したメッセージを作成しても短く、簡単に考える。その時から、この製品はチェックのライセンスキーの起動時に、その活性化データが必要な、コンピュータを同じになるようにするための検証(その他のデータが違うと思うと、デジタル署名のない検証).この活性化データのチェックを必要としない検証のインターネット:では十分な検証のためのデジタル署名の活性化データの公開鍵が既に組み込みの商品です。

  3. でも、冗長除去のように文字を"1","l","0","o"から鍵となります。分割のライセンスキーの文字列のグループの文字です。

シンプルな答え - どんなにあなたがそれを使用するもののスキーム割れることができません。

ハッカーは関係なく、それをクラックされますよう、ハッカーを防ぐためのものシステムと正直な顧客を処罰しないでください。

自分の電子メールまたは同様に結び付けられ、単純なハッシュ化されたコードは、おそらく十分です。人々は、ハードウェアを再インストールまたは更新する必要があるときに、ハードウェアベースのIDは常に問題となっています。

問題のグッドスレッド: http://discuss.joelonsoftware.com/default.asp?biz.5.82298.34

鍵を生成する場合、

、バージョンを連結し、あなたは上のハッシュを計算する文字列に番号を構築することを忘れないでください。その方法は、あなたがこれまでにリリースされたすべてのすべてのロックを解除し、単一のキーがありません。

あなたには、いくつかのキーまたはに浮かんでパッチを見つけたら astalavista.box.sk のはあなたが成功したことを知っていますよ誰かがクラックするために気にすることを十分に人気のある何かを作ります。喜べ!

すでに述べてきたもの以外にも....

.NETアプリケーションの任意の使用は、中間言語の問題の本質壊れやすいです。 .NETコードの簡単な分解は誰にもあなたの製品を開きます。彼らは簡単にその時点であなたのライセンスコードをバイパスすることができます。

あなたも、もうキーを作成するには、ハードウェアの値を使用することはできません。仮想マシンは今、誰かが「ライセンスさ」マシンのイメージを作成し、彼らが選択した任意のプラットフォーム上でそれを実行することができます。

それは高価なソフトウェアなら、他のソリューションがあります。そうでない場合は、単にカジュアルなハッカーのための十分なことを困難にします。そして、最終的にそこにライセンスされていないコピーがあるという事実を受け入れます。

お使いの製品が複雑である場合は、

、固有のサポートの問題はあなたのためにいくつかの保護を作成されます。

私たちは今、オープンソースとして維持されているライセンスキーの生成に使用するC#/。NETエンジンます:

https://github.com/appsoftware/.NET-Licence-Key-発電するます。

これは、あなたの配布にコンパイルされるようにしているキーを生成するために使用するキーのサブセットのみを意味し、「部分的なキーの確認」システムに基づいています。あなたはあなたの自己のキーを作成し、そのライセンスの実装では、お使いのソフトウェアに固有のものです。

あなたのコードを逆コンパイルすることができれば、上述したように、

、それはほとんどのライセンスシステムを回避するために、比較的簡単です。

私は過去に Crypkey を使用しました。これは、多くの利用可能なの一つだ。

あなただけの任意のライセンススキームでポイントにソフトウェアを保護することができます。

私はあなたが取得したいどのように精巧知りません。

が、私は.NETは、ハードドライブのシリアル番号にアクセスすることができると信じています。

は、

(ユーザー名とNICのMACアドレスのように)あなたにその何かのelesを送信するプログラムを持つことができます

あなたはオフに基づいてコードを計算し、キーをそれらをバックにメールます。

彼らは鍵を持った後、マシンを切り替えからそれらを維持します。

私は開発者の背後に Cryptolens ソフトウェアライセンス取得プとしてライセンスシステムの時代から14.この答えしていくつかのヒント経験に基づく取得します。

最良の方法の解決この設定によってライセンスキーのサーバーそれぞれのインスタンスにアプリケーションから電話を検証するためにライセンスキーです。

特典のライセンスキーサーバー

のライセンスキーサーバーではない

  1. きを常に更新またはブロックのライセンスキーに対し、ただちに効力を発する.
  2. 各ライセンスキーロックすることができる台数(これにはユーザーから出版のライセンスキーのオンラインを利用)。

への配慮

が確認ライセンスのオンラインで制御の各インスタンスアプリケーションのインターネット接続がないもの(ある場合は特に目標の大企業はいないので他の方法は、ライセンスキー証を行います。

このセクションを常にサインのライセンスキーのサーバから応答を用いる公開鍵暗号などのRSAまたはECCれる場合、プランに組み込みシステム).お申込みの 公開鍵 検証のためのライセンスキーに応じます。

この場合もインターネット接続に利用できます前回のライセンスキー対応です。確認し、 機械の識別子 の応答を確認したことのあるも例することができますがユーザーがオフラインで最大30日間等)のライセンスキー反応に属する正しい装置です。

注意 常にチェックをしておく必要がある証明書のライセンスキー反応場合でも、インターネットに接続されるため、確なものとするために変更されていないので、サーバー(こもることが可能になった場合でもAPIのライセンスキーのサーバーを使https)

守秘密アルゴリズム

ます。アプリケーションできるリバース-エンジニアリングが非常に容易に(あとdiassemblerによるマイクロソフト社のILコードや一部の商品でも取得するソースコード例C#).もちろん、常に蓑をコードすが、なんてことはありませんが100%で固定します。

私はほとんどの場合、目的のソフトウェアライセンス液は、誠実な人正直(その誠実なユーザー支払いを忘れないで支払いをした後、試験終了します。

しかし、まだまだ一部のコードでよいが漏れを公開すか?アルゴリズムを予測する株価します。この場合のみでの道のりを APIの評価項目 ることにご注意願います電話のメソッドは実行されます。が必要なのでインターネット接続が確保され秘密のコードは実行され、クライアント機です。

実施

したくない場合に実施すべて自分のものをお勧めしますみ このチュートリアル (一部の Cryptolens)

あなたが尋ねたすべてを行うための唯一の方法は、サーバとのインターネット回線と検証を必要とすることです。アプリケーションは、キーを使用してサーバーにサインインする必要があり、その後、IPアドレスのように、セッションの詳細を保存する必要があります。これは、いくつかの異なるマシン上で使用されているから鍵を防ぐことができます。これは通常、アプリケーションのユーザーと非常に普及していない、これは非常に高価で複雑なアプリケーションがある場合を除き、それはそれだけの価値はありません。

あなただけのアプリケーションのライセンスキーを持っているし、キーが良いですが、他のユーザーにこのキーを配布することが容易であり、逆コンパイラを使用して新しいキーを生成することが可能ならば、クライアント側をチェックすることができます。

私は、サーバーのデータベースに格納されているライセンスを参照するライセンスキーが必要です私の会社のソフトウェアのインターネットベースのワンタイム活性化(C#.NETを)実装しました。ソフトウェアは、キーでサーバーをヒットし、その後に格納し、それをクライアントコンピュータ上のいくつかの変数から生成されたRSAキー(頻繁に変更されませんCPUIDや他のものの組み合わせ)を使用して、ローカルに暗号化されているライセンス情報を与えていますレジストリ。

これは、いくつかのサーバー側のコーディングを必要とするが、それは私たちのために本当によく働いており、私たちは、ブラウザベースのソフトウェアに拡張したとき、同じシステムを使用することができました。また、あなたの営業担当者に、ソフトウェアが使用されているについての素晴らしい情報を提供します。局所的にのみ処理される任意のライセンス・システムは、特に.NETで反射すると搾取、のに十分に脆弱です。誰もが言っているようしかし、何のシステムは完全に安全なものはありません。

あなたは、Webベースのライセンスを使用していない場合は、

私の意見では、すべてのソフトウェアを保護することに本当のポイントはありません。 DRMを引き起こす可能性が頭痛で、それはそれは苦しむことのために実際に支払ったユーザーに公平ではない。

私は強くあなたがソースコードにライセンス生成のために必要不可欠な情報を含める必要はありませんので、唯一の公開鍵暗号ベースのライセンスシステムは、ここに正しいアプローチであると、信じています。

過去には、私が使ってきたの Treekのライセンスライブラリを何回も、理由それは、この要件をfullfillsし、本当に良い価格を提供しています。これは、エンドユーザーに同じライセンスの保護を使用し、自身と誰もが今までその割れました。また、著作権侵害や割れを回避するために、ウェブサイト上で良いヒントを見つけることができます。

などが挙げられ、私は大きな 相手 の敵対するお客様によりデフォルト"からのライセンス業界では悪名高い。思拡大に良いソリューションを提供する問題 もはお客様のUX.

るということであるが、い"限定の"バージョンアプリを作成できるソフトウェアにいることを使うとに変換しのお客様に"グレードアップ"のためのアプリケーションです。のかを探っていると言っても過言ではあり 特集ライセンス 製品例お客様にご購入のライセンス 特徴-X または 特徴-Y.

私たちのた Keygen このタイプのライセンスです。KeygenはライセンスREST API管理できるユーザーアカウント、ライセンス、またトラックを機械利用組合.

んでセット2 ライセンスの種類政策 内Keygen)の拠点である政策の限定無料版のための政策の有料バージョン。

お使いいただくことによってご利用のお支払が、そのときのようなストライプ(愛標準現在)の提供 web通知.Keygenもweb通知(どちらを使用するにしても、すべてのことだ。ま指向の技術と統合することを可能Keygen話でのご決済サービス-プロバイダーを使用web通知らの両面を考: customer.created->をベースライセンスのため、お客様 license.created->料顧客の新規ライセンス)。

での活用によるweb通知し自動化ライセンスを作りますので、ご覧ください。いうライセンス認証、アプリケーション内です。これを行うには、次のようなさまざまな方法で、最も分かりやすい方法では必要なお客様への長いライセンスキーの入力欄でそれを検証す;こういう ひどい を扱う時にライセンスの検証お願います。

なぜだと思いる。でもまず、必要なお客様に入力tediously長ライセンスキーとその他の事由による事故があった機械の消費、および秒 ご必要なお客様のイラストとtediously長ライセンスキー.

大丈夫、その代替?私のインタビューを受けたことがあって何かをするすべてのお客様をお使い: できるアカウントを作成するには貴社製品を使用するメール/パスワード.できればすべてのライセンス その機 れます。それで代わりに入力するライセンスキーをするようになってからのログを活用した情報。

何を活かせるのか? まず、行動の便が良いことから、消のためにお客様のライセンスキー ですべてのシーン中のユーザーアカウント もっとも重要: では、今までのご提供お客様の自己とライセンスや機械化! すなわちすべてのライセンスや機械に関するユーザーアカウントできる迅速している場合はライセンスを購入時の火のアプリケーションに認識機です。

現在へのライセンスの検証:場合は必ずご利用には、アプリケーションから利用とその電子メール/パスワード照会できますそのユーザーアカウントのライセンスは、自身がするかどうかを確認するために使用でき 特徴-X または 特徴-Y.以来、お客様の現在 自己と, できることのできないお客様の購入のほから直接内。

私の導入 トン 自動化に弊社のライセンスシステムまで、ライセンス個人 特徴 (限前フルバージョン)、私たちが提供する UXとし、お客様には、さまざまな緩和の最大の理由のための支援要求: ライセンスキーを回復しました。

になったので思いっ!

完全にソフトウェアの著作権侵害を防止することが可能ではありません。あなたはカジュアルな著作権侵害を防ぐことができ、それがどのようなすべてのライセンスソリューションアウトその致します。

あなたはライセンスキーの再使用を防止したい場合はノード(マシン)ロックされたライセンスがベストです。私は私のソフトウェアのために今およそ年 Cryptlex に使用されています。それはを自由に計画を持っているのあなたはあまりにも多くの顧客を期待していない場合にも、あなたが自由のためにそれを使用することができます。

あなたは、このようなQuantum-Key.Netそれが無料だし、それはあなたのために作成したWeb販売ページを通じてペイパルを通じて支払いを処理し、電子メールやロックキーの使用を経由して、鍵発行としてあなたのためにこれを処理するために、無料のサードパーティのソリューションを使用することができます著作権侵害を防ぐために、特定のコンピュータ。

あなたも、あなたのコードを暗号化/難読化するように注意する必要があるか、それは簡単に逆なDe4dotや.NetReflectorなどのソフトウェアを使用して操作することができます。優れた無料のコードの難読化ツールは、ConfuserExのウィッヒは、迅速かつ簡単に使用すると、高価な代替案よりも効果的です。

あなたはそれをリバースエンジニアリングし、クラッカーは、彼らが同じことをしたかどうかを確認でしょうし、あなたが露出したりあからさまな重要なコードを残していないことを確認するものを見るためにDe4Dotと.NetReflectorて完成したソフトウェアを実行する必要があります。

あなたのソフトウェアがまだクラックできるだろうが、カジュアルなクラッカーのためにうまくそれらを先送りするのに十分で、これらの簡単な手順もまた、あなたのコードを抽出して再使用されなくなります。

https://quantum-key.netする

ConfuserExを使用するには?

https://github.com/0xd4d/de4dotする

https://www.red-gate.com /動的/製品/ DOTNET開発/反射/ のダウンロード

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top