クラッキングやハッキングなどからソフトウェアをどのように保護しているのか知りたい.
ある種のシリアル番号チェックを採用していますか? ハードウェアキー?
サードパーティのソリューションを使用していますか?
ライセンスの問題をどのように解決しますか? (例: フローティング ライセンスの管理)
編集:私はオープンソースについて話しているのではなく、厳密に商用ソフトウェア配布について話している...
クラッキングやハッキングなどからソフトウェアをどのように保護しているのか知りたい.
ある種のシリアル番号チェックを採用していますか? ハードウェアキー?
サードパーティのソリューションを使用していますか?
ライセンスの問題をどのように解決しますか? (例: フローティング ライセンスの管理)
編集:私はオープンソースについて話しているのではなく、厳密に商用ソフトウェア配布について話している...
利用可能な保護は、非常に多く、非常に多くあります。キーは次のとおりです。
壊れないものはありません。そのため、余裕のある最高の (最悪の) 保護を単純に平手打ちするよりも、これらのことを評価して適切な保護を選択することが重要です。
そして、上記のバリエーション。
どのようなルートをたどっても、公正な価格を請求し、アクティベートを簡単にし、無料のマイナー アップデートを提供し、ソフトウェアを決してアクティベート解除しないでください。ユーザーに敬意を持って接すれば、彼らはあなたに報酬を与えてくれます。それでも、何をしても海賊版になってしまう人もいます。
しないでください。
海賊は海賊します。どんな解決策を思いついたとしても、クラックされる可能性があります。
一方、あなたの実際のお金を払っている顧客は、がらくたによって不便を感じている人です.
盗むよりも簡単に買えるようにしましょう。大量のコピー防止機能を追加すると、本物を所有する価値がかなり低くなります。
シンプルなアクティベーション キーを使用し、いつでもアクティベーション キーを取得したり、紛失した場合にソフトウェアを再ダウンロードしたりできることを顧客に保証します。
コピー防止機能 (マルチプレイヤー ゲームや銀行に接続する金融ソフトウェアなどのオンラインのみのコンポーネントを除く) は、無効になると想定できます。ソフトウェアを違法にダウンロードすることは、少なくとも購入するよりも少し難しくしたいと考えています。
私は一度も開いたことのない PC ゲームを持っています。なぜなら、そのゲームには非常に多くのコピー防止ジャンクが含まれているため、実際には偽のバージョンをダウンロードする方が簡単だからです。
ソフトウェア保護はお金に見合うものではありません。あなたのソフトウェアが需要がある場合、それは何があっても打ち負かされます。
とはいえ、ハードウェア保護はうまく機能します。うまく機能する方法の例は次のとおりです。ソフトウェアの (かなり) シンプルだが必要なコンポーネントを見つけて、Verilog/VHDL に実装します。公開鍵と秘密鍵のペアを生成し、チャレンジ文字列を受け取って秘密鍵で暗号化する Web サービスを作成します。次に、公開鍵を含み、ランダムなチャレンジ文字列を生成する USB ドングルを作成します。ソフトウェアは、USB ドングルにチャレンジ文字列を要求し、それをサーバーに送信して暗号化する必要があります。ソフトウェアはそれをドングルに送信します。ドングルは暗号化されたチャレンジ文字列を公開鍵で検証し、「有効」モードに入ります。HDL で記述した操作を実行する必要があるときはいつでも、ソフトウェアがドングルを呼び出します。
編集:検証の一部が本来あるべきものとは逆になっていることに気付きましたが、アイデアが伝わると確信しています.
マイクロソフト ソフトウェア ライセンス スキームは、中小企業にとって非常に高価です。自分でセットアップする場合、サーバーの費用は約 12,000 ドルです。心のフェイントにはお勧めしません。
実際、製品にIntellilockを実装したばかりです。ライセンスをどの程度厳格にするかをすべて決定することができ、費用対効果も非常に高くなります。さらに、難読化、コンパイラ防止などを行います。
中小企業が使用しているのを私が見たもう1つの優れたソリューションは、SoloServerです。これは、e コマースおよびライセンス管理システムに近いものです。少し複雑すぎるかもしれませんが、非常に構成可能です。しかし、私が聞いたところによると、それは非常にうまく機能します。
私も過去にドットネットのデサウェアライセンス制度を利用したことがあります。上記の2つに比べてかなり軽量なシステムです。これは、暗号学的に健全な点で非常に優れたライセンス管理システムです。しかし、これは非常に低レベルの API であり、アプリが実際に使用するほとんどすべてを実装する必要があります。
Digital "Rights" Management は、業界で最大のソフトウェア スネークオイル製品です。古典的な暗号化からページを借りるための典型的なシナリオは、チャーリーがそれを読むことができないように、アリスがボブにメッセージを送りたいということです。DRM は機能しません。そのアプリケーションでは、ボブとチャーリーは同一人物だからです。
「自分のソフトウェアを盗むのではなく、どうすれば購入してもらえるか」という逆の質問をしたほうがよいでしょう。そして、それは非常に幅広い質問です。しかし、それは一般的に調査を行うことから始まります。販売したいソフトウェアの種類を誰が購入するかを把握し、それらの人々にアピールするソフトウェアを作成します。
これに対する追加のプロングは、更新/アドオンを合法的なコピーのみに制限することです. これは、購入トランザクション中に受け取った注文コードと同じくらい簡単なものです。
Stardock ソフトウェア、WindowBlinds のメーカー、および Sins of a Solar Empire などのゲームをチェックしてください。後者には DRM がなく、200 万ドルの予算からかなりの利益を上げています。
プロセッサ ID を使用して「アクティベーション キー」を生成するなど、いくつかの方法があります。
肝心なのは、誰かがそれを十分に望んでいる場合、彼らはあなたが持っている保護をリバースエンジニアリングするということです.
最も安全な方法は、実行時にオンライン検証を使用するか、ハードウェア hasp を使用することです。
幸運を!
少し時間があれば、ソフトウェアは常にクラックされます。これを確認するために、よく知られているソフトウェアのクラックされたバージョンを検索できます。しかし、ソフトウェアになんらかの保護を追加する価値は十分にあります。
不正な人はあなたのソフトウェアにお金を払うことはなく、常にクラックされたバージョンを見つけて使用することはありません。非常に正直な人は、そのような人だからといって、ライセンススキームがなくても、常にルールに固執します. しかし、ほとんどの人は、この両極端の中間に位置しています。
いくつかの簡単な保護スキームを追加することは、中間にいる大部分の人々を正直に行動させる良い方法です. これは、ソフトウェアが無料ではなく、適切な数のライセンスに対して料金を支払う必要があることを思い出させる方法です。多くの人が実際にこれに反応します。マネージャーは自分のお金を使わないので、ビジネスはルールを守るのが特に得意です。消費者は自分のお金なので、ルールを守ろうとしません。
しかし、Electronic ArtsのSporeなどのリリースに関する最近の経験から、ライセンスに関してはかなりのことができることがわかります。合法的な人々でさえ、常に検証されているために犯罪者のように感じさせると、彼らは反抗し始めます. したがって、単純なライセンスを追加して、不正を行っているかどうかを人々に思い出させますが、それ以上のことは売り上げを伸ばす可能性が低い.
あなたが探している答えとは正確には異なりますが、著作権侵害を行う理由について海賊に積極的に尋ねたゲーム開発者からの著作権侵害に関する優れたリソースです. そして、あなたが選んだ答えの最初の部分に関連しています。
Talking to Piratesで読んでください 。
World of Warcraft (WoW) のようなオンラインのみのゲームが作成され、誰もが毎回サーバーに接続する必要があるため、アカウントを常に確認できます。Bean に対して機能する方法は他にありません。
一般に、混同されることが多い 2 つのシステムがあります。
商用パッケージを使用するライセンスについて、FlexLM多くの企業はライセンスに多額の資金を投資し、セキュリティも確保できると考えています。
使用量に基づいて合法的に支払う企業に販売する場合にのみライセンスをお勧めします。
製品が成功するにつれて、すべてのライセンスとセキュリティ対策が最終的に破られることを忘れないでください。そのため、本当に努力する価値があるかどうかを今すぐ判断してください。
何年も前に FlexLM のクリーン ルーム クローンを実装しました。また、バイナリ攻撃に対するアプリケーションを強化する必要がありました。その長いプロセスは、リリースごとに再検討する必要があります。それはまた、あなたが販売するグローバル市場、またはあなたが何をする必要があるかについてのあなたの主要な顧客ベースがどこにあるかにも大きく依存します.
DLL のセキュリティ保護に関する別の回答を確認してください。
指摘されているように、ソフトウェア保護は絶対確実であるとは保証されていません。何を使用するかは、ターゲット ユーザーによって大きく異なります。たとえば、ゲームは永久に保護できるものではありません。一方、サーバー ソフトウェアは、多くの理由により、インターネット上で配布される可能性がはるかに低いものです (製品の浸透と責任が思い浮かびます。大企業は、海賊版ソフトウェアの責任を問われることを望んでいません。海賊は十分に大きな需要があるものだけを気にかけます)。正直なところ、知名度の高いゲームの場合、おそらく最善の解決策は、トレントを自分で (秘密裏に!) シードし、何らかの方法で変更することです (たとえば、2 週間プレイした後、メッセージがポップアップ表示されるようにします)。正当なコピーを購入して開発者を支援することを検討してください)。
保護を配置する場合は、2 つの点に注意してください。第一に、低価格は、人々が購入価格を支払う傾向を高めることによって、コピー保護を補完します. 次に、保護がユーザーの邪魔になってはなりません。最近の例については、Spore を参照してください。
海賊にそれを使用させるというこの考えの問題は、とにかくそれを購入することはなく、購入する可能性のある友人に 2 つのことを示すことになります。
サードパーティのサービスを使用するソフトウェアでは、海賊版が貴重な帯域幅/リソースを使い果たし、正当なユーザーのエクスペリエンスを悪化させ、ソフトウェアの人気が実際よりも高くなり、サードパーティのサービスがサービスに対してより多くの支払いを求めてきます。使用されている帯域幅。
多くのカジュアルなユーザーは自分で SW をクラックすることを夢見ていませんが、piratebay のようなサイトに簡単に評価できるクラックがあればそれを使用し、なければ購入するかもしれません。
発見された海賊版ソフトウェアを無効にしないというこの概念もおかしいように思えます。なぜ誰かが使用すべきではないソフトウェアを使用し続けなければならないのか理解できません。
また、プログラムをクラックしにくくすることも重要ですが、正当なコピーが共有されるのを防ぐ必要もあります。そうしないと、誰かが 1 つのコピーを購入しただけ
で、トレント サイトを介して何千人もの他のユーザーと共有する可能性があります。名前/電子メール アドレスがライセンスに埋め込まれているという事実だけでは、誰もがこれを行うことを思いとどまらせるには十分ではありません。問題が発生するのは 1 つだけです。
これを防ぐ唯一の方法は、次のいずれかです。
プログラムの起動時に毎回サーバーでライセンスをチェックしてロックし、プログラムの終了時にライセンスを解放します。最初のクライアントがライセンスを持っている間に、別のクライアントが同じライセンスで開始した場合、そのクライアントは拒否されます。この方法では、ライセンスが複数のユーザーによって使用されることは防止されませんが、複数のユーザーが同時に使用されることは防止されます。これで十分です。また、正当なユーザーが自分のコンピューターのいずれかにライセンスを転送できるため、エクスペリエンスが向上します。
最初のクライアント起動時に、クライアントはサーバーにライセンスを送信し、サーバーはそれを検証して、クライアント ソフトウェア内でフラグを設定します。同じライセンスを持つ他のクライアントからのそれ以降の要求は拒否されます。このアプローチの問題点は、元のクライアントがソフトウェアを再インストールしたり、別のコンピューターを使用したりする場合に問題が発生することです。
違法な配布を防止することは事実上不可能です。RIAAに聞いてください。デジタル コンテンツは単にコピーできます。アナログコンテンツをデジタル化してコピーできます。
不正な実行の防止に注力する必要があります。他人のマシンでコードが実行されるのを完全に防ぐことはできませんが、一定の手順を踏むことで、ハードルを十分に高くして、ソフトウェアを海賊版よりも購入しやすくすることができます。
ライセンスを念頭に置いてアプリケーションを開発するための最善の方法について説明している記事「ソフトウェア保護とライセンスの開発」を参照してください。
必須の免責事項とプラグイン: 私が共同設立した会社は、.NET 用の OffByZero Cobalt ソフトウェア ライセンス ソリューションを作成しています。
DRM これ、DRM それ - プロジェクトに DRM を強制するパブリッシャーは、利益が出るからやっています。彼らのエコノミストは、私たちの誰も見ることのないデータに基づいてこれを結論付けています. 「DRM は悪」という荒らしは少し行き過ぎです。
知名度の低い製品の場合、単純なインターネット アクティベーションによって、カジュアルなコピーは停止します。他のコピーは、最終的な収益にとって無視できる可能性があります。
なんらかの生体指紋認証を使用したとしても、誰かがそれを解読する方法を見つけます。それを回避する実際的な方法は本当にありません。ソフトウェアのハッキング防止を試みる代わりに、コピー防止機能を追加することでどれだけの収益が得られるか、それを実装するのにかかる時間と費用を考えてみてください。ある時点で、より厳密でないコピー保護スキームを使用する方が安価になります。
それはあなたのソフトウェア製品が正確に何であるかに依存しますが、1 つの可能性は、プログラムの「価値のある」部分をソフトウェアの外に移動し、それをあなたの排他的な管理下に置くことです。ソフトウェアに適度な料金を請求し (主に印刷と配布の費用をまかなうため)、外部コンポーネントから収益を得ることができます。たとえば、安価で販売されている (または他の製品に無料でバンドルされている) ウイルス対策プログラムですが、ウイルス定義更新サービスのサブスクリプションを販売しています。そのモデルでは、更新サービスに加入している海賊版コピーが大きな経済的損失をもたらすことはありません。「クラウド内」のアプリケーションの人気が高まるにつれて、この方法の実装が容易になっています。クラウドでアプリケーションをホストし、クラウド アクセスに対してユーザーに課金します。これはしません。
消費者に販売する予定のソフトウェアの保護に関心がある場合は、さまざまなライセンス キー生成ライブラリ (ライセンス キー生成に関する Google 検索) のいずれかをお勧めします。通常、ユーザーはメールアドレスや名前などのシードを提供する必要があり、登録コードが返されます。
いくつかの会社は、ソフトウェアをホストして配布するか、統合して自動的に実行できる完全なインストール/購入アプリケーションをおそらく追加費用なしで提供します。
私はソフトウェアを消費者に販売してきましたが、これがコスト/使いやすさ/保護の適切なバランスであることがわかりました。
シンプルで最善の解決策は、前もって充電することです。あなたと彼らのために働く価格を設定します。
お金を払っている顧客に、支払いを済ませた後にお金を払っていることを証明するように求めることは、彼らを怒らせるだけです。ソフトウェアが実行されないようにするコードを実装すると、時間とお金が無駄になり、正当な顧客にバグや迷惑がかかります。その時間を使ってより良い製品を作ったほうがいいでしょう。
多くのゲーム/その他は、最初のバージョンを「保護」し、実際の顧客との互換性の問題により、最初のパッチで保護を解除します。多少の保護を主張するのであれば、それは不合理な戦略ではありません。
ほとんどすべてのコピー防止は効果がなく、ユーザビリティの悪夢です。顧客のマシンにルートキットを配置するなど、その一部はまったく非倫理的になります
簡単なアクティベーション キーをお勧めします (たとえそれが壊れている可能性があることを知っていたとしても)、あなたのソフトウェアがユーザーの邪魔をすることを本当に望んでいません。
彼らがソフトウェアを再ダウンロードできることを確認してください。私は、彼らが支払いを済ませた後にのみログに記録してソフトウェアをダウンロードできる Web ページを提案します (もちろん、何回でも質問なしで直接ダウンロードできるはずです)。あなたの側の理由について)。
何よりも有料ユーザーを突き詰めてください。正当なユーザーであるにもかかわらず、犯罪者であると非難されることほど腹立たしいことはありません (DVD の著作権侵害防止警告は誰にでも警告しています)。
オンライン時にサーバーに対してキーをチェックするサービスを追加できます。2 つの異なる IP が同じキーを使用している場合は、別のライセンスを購入するための提案がポップアップ表示されます。
しかし、それを無効にしないでください。あなたのソフトウェアを友達に見せて喜んでいるユーザーかもしれません!!!!
ソフトウェアベースのコピープロテクトスキームは熟練したソフトウェアの海賊行為を抑止できないという多くの投稿者に同意します。.NET ベースの商用ソフトウェアの場合、Microsoft Software License Protection (SLP) は非常に手頃な価格のソリューションです。期限付きライセンスとフローティング ライセンスをサポートしています。価格は月額 10 ドル + アクティベーションあたり 5 ドルからで、保護コンポーネントは宣伝どおりに機能しているようです。ただし、かなり新しい製品なので、購入者は注意してください。
製品の一部を、接続と認証を必要とするオンライン コンポーネントにします。ここではいくつかの例を示します。
ただし、このパラダイムはこれまでのところ限定されており、一部の消費者をオフにする可能性があります.
あなたがソフトウェア開発者である場合、考えられる解決策の 1 つは、メタデータを製品に直接埋め込むことです。redsunrise のインスタンス破壊セキュリティ ツールを確認してください。
私たちは、私たちが販売しているもの (ライセンス管理ツール) である独自のライセンス システムを使用して、商用ソフトウェアのライセンスを取得しています。通常はサブスクリプション ライセンスを販売していますが、必要に応じて使用量に基づいて販売することもできます。これまでのところ安全です: www.agilis-sw.com