2

私たちの製品のライセンス スキーマを実装するように依頼されました。それらは非常に高価な製品であり、世界中にまばらに分散している少数の顧客がおり、基本的にすべての製品に設計環境 (単一の Windows マシンにインストールされた Windows アプリケーション、顧客ごとに 1 ~ 150 のクライアント マシン) と、運用環境をホストする Web サーバーがあります。 (顧客ごとに 1 ~ 8 台のマシン)。当社の製品はサーバーでの使用が許可されているため、顧客は任意の数のクライアントを使用できます。サーバー部分は (SLA 契約の対象となるため) ライセンスを取得せず、クライアントのみをライセンス付与することにしました。これは、しばらくクライアントを使用できなくなると、システムが基本的に役に立たなくなるためです。

私たちの基本的な前提は、顧客が「正直」であり、期限付きライセンスで適切にライセンスされていない場合にクライアントの設計環境を停止することだけです。

さまざまなライセンス製品を評価しましたが、それらは高すぎるか、管理が難しすぎるため、次の簡単な解決策を考え出しました。

  • ライセンスは単純な署名付き XML ファイルであり、w3c の標準 XML 署名機能を使用して署名され、USB キーで管理部門に提供される秘密鍵を使用します。彼らがそれを紛失した場合、ライセンススキーマは失敗しますが、それは彼らのせいです
  • クライアントは起動時にライセンス ファイルを開き、バイナリに埋め込まれた公開鍵を使用してその有効性を確認します。
  • ライセンス XML が有効であり、その中のデータ (有効期限と製品名) がデザイナーの作業よりも正しい場合。そうでない場合は、適切なメッセージが表示されます

考えられる問題やシナリオを改善する方法についてのアイデアはありますか?

4

4 に答える 4

10

十分な関心があれば、数週間で壊れなかったライセンス スキームはまだ見たことがありません。あなたのスキームは非常に良さそうです (ただし、誰かが本当にやりたいと思ったら、彼らはそれを破るだろうと確信してください)。

何をするにしても、Eric Sink のアドバイスに従う必要があります。

目標は、単に「正直な人を正直に保つ」ことであるべきです。これより先に進むと、次の 2 つのことだけが起こります。

  1. 私たちは勝てない戦いをしています。カンニングしたい人は成功します。
  2. 私たちは製品を使いにくくすることで、製品の正直なユーザーを傷つけています。

企業向けに設計されたプログラムのライセンス スキームを実装しているので、さらに単純化して、何らかの ID と有効期限をクライアントに簡単な署名とともに保持し、ライセンスの有効期限が切れているか署名に失敗した場合は開始を拒否することができます。 . それを破るのはそれほど難しくありませんが、ライセンス スキームはありません。顧客が正直であると考えるなら、これで十分です。

于 2008-10-04T09:12:42.097 に答える
1

私はスティーブンA.ロウに同意します(私は15の評判を持っていないので、彼に投票することができませんでした)。

これも複雑すぎるようです。壊れないようにしたいですか?できません。十分にやる気のある教祖なら誰でもそれを回避する方法を見つけるでしょう。

単純なライセンススキームが最適な場合があります。

管理者がクライアントがアクセスできる場所に置く単純な暗号化ファイルをお勧めします。このファイルには、クライアント名と有効期限が含まれます。印刷されるすべてのレポートでファイルのクライアント名を使用します(これは、ほとんどのPHBが気にすることです。そうすれば、他の人の名前を印刷するライセンスを使用しなくなります)。

于 2008-10-07T08:04:46.817 に答える
1

彼らに秘密鍵を渡した場合、あなたから追加のライセンスを購入する代わりに、彼らが署名付きの XML ファイルを作成するのを防ぐにはどうすればよいでしょうか? それともサイトライセンスですか?後者の場合、他の人/サイトのライセンスを作成できないようにするにはどうすればよいですか?

一般に、開発ライセンス スキームは、MAC アドレスおよび/またはハード ドライブのシリアル番号を使用して、または場合によってはアクティベーション キー (通常はハードウェア情報の単なるハッシュ) を使用して、ライセンスを特定のマシンに結び付けます。

通常、エンコードは秘密にしておく秘密鍵で行われ、ライセンスは公開鍵で検証されます。クライアントは秘密鍵を持っていません。それ以外の場合は、必要に応じて独自のライセンスを生成できます。

于 2008-10-04T12:30:44.660 に答える
1

あなたの質問から、あなたのスキームがどのように機能するかは完全には明らかではありません。クライアント ソフトウェアのすべてのインスタンスに異なるキーがありますか? ライセンスの有効期間はどのくらいですか? 顧客ごとに異なるキーを持っていますか? ライセンス料はどのように支払われますか? ライセンスはどのように更新されますか?

クライアントコードの使用回数を制御しようとしている場合、上記の最初のものだけがそれを行います。

結局のところ、あなたが住んでいるように見える世界では、ライセンスのあからさまな侵害がないことを信頼して生きなければならないのではないかと思います. ほとんどのまともな規模の組織 (顧客のように聞こえます) は、ライセンス契約に違反した場合に重大な結果につながる可能性がある侵害をしない責任があります。それらも定期的に監査され、おそらくあなたはそれらの使用法をチェックする法的権利を持っています(そうでない場合は、ライセンス契約に記載する必要があります).

あなたにとって非常に危険なのは、USB キーの内容が Web に流出した場合です。その点で、公開された鍵を使用するスキームは、秘密の故意の開示に対して脆弱です。

このテーマについては多くの文献があると確信しているので、研究を続ける価値があるでしょう。

ところで、サーバー ライセンスに関する中間部分の SLA への言及についてはよくわかりません。ライセンスと SLA は大きく異なります。ライセンスはクライアントの義務であり、SLA はあなたのものです。

于 2008-10-04T09:14:38.007 に答える