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