7

これは実際の状況ではありません。当てはまらないと思われる法的な問題は無視してください。

ソフトウェアのライセンスアルゴリズムの架空の部分に対して200個の既知の有効なライセンスキーのセットがあり、ライセンスキーは5文字の英数字の大文字と小文字を区別しない(すべて大文字)文字の5セットで構成されているとします。例:HXDY6-R3DD7-Y8FRT-UNPVT-JSKON

システムの他の可能なキーを推定することは可能です(または可能性があります)?

セットが連続していることがわかっている場合はどうなりますか。この状況でメソッドはどのように変化し、これはどのような利点をもたらしますか?

「keygens」については以前聞いたことがありますが、既知の有効なキーを調べるのではなく、ライセンスソフトウェアを逆コンパイルすることによって作成されたものだと思います。この場合、キーのセットのみが与えられ、アルゴリズムを決定する必要があります。また、これは業界標準のアルゴリズムであると言われているので、おそらく基本的なものではないでしょうが、チャンスは常にあると思います。

これがStackOverflowに属していない場合は、少なくとも私が調べたり質問したりするための別の場所を提案してください。私は正直なところ、このような問題からどこから始めればよいのかわかりません。私はこの種の問題の用語さえ知りません。

4

5 に答える 5

1

オフラインで検証されるキーは、いくつかのプロパティのセットによって定義される傾向があります。ビットの特定のサブセットには、特定の値または対称性があります。特定のファンクターに渡されたバイトの特定のサブセットが期待される結果を返す場合、キーは有効であると見なされます。

キーを生成するための一般的なアルゴリズムを研究した場合、おそらく可能なプロパティの世界を思い付く可能性があります。次に、帰納論理プログラミングを使用して、これらのプロパティのどれがすべての有効なキーに適用されるが、無効なキーには適用されないかを見つけることができます。(無効なキーのセットも必要ですが、それらは簡単に生成できます)。結果から、理論的にはkeygenを書くことができます。あなたがそれを機能させることができれば、おそらくそれから紙を書くこともできます。幸運を。

ただし、オンラインで検証されている場合は、データベースに対してチェックされる疑似乱数である可能性があります。その場合、あなたはSOLです。

于 2010-05-19T21:53:03.527 に答える
1

システムが暗号的に強力であると仮定すると、これらのキーを知っていても何の役にも立ちません。現在、そのようなシステムの多くは、実際のkeygenを購入するには安すぎる人によって実装されているため、まだ希望があるかもしれません。

エンベロープ推定の少し後ろに、そのようなキーには125ビットの情報があると書かれています(それをキャッチしてくれてありがとう)、そのスペースを十分にサンプリングした場合、ある種の攻撃を行うことができるかもしれませんが、あなたは膨大な数のサンプルポイントについて話します。でもねえ、あなたはあなたの暇な時間のために他にどんな計画を持っていましたか?

大物でさえこれを台無しにします。半ダース年前、MSDNキーの生成方法に誤りがあり、ある種のブルートフォース攻撃が可能でした。企業ライセンスバンドルの一部としてeBayでMSDNサブスクリプションを販売している人を見つけるでしょう。情報を送信すると、数日以内に事前登録されたMSDNアカウントが提供されます。彼らは実装のバグを利用していて、1つがスタックするまで登録をブルートフォース攻撃していたと確信しています。

私が働いていた会社がそれを購入しました。私たちがそれを購入したときは賢明ではなかったので、マイクロソフトはそれを尊重しましたが、彼らはそれを私たちに販売した人の住所に興味を持っていました。

于 2010-05-19T21:40:23.557 に答える
1

これは、一般的なケースでは解決が難しいことで有名です。ただし、

また、業界標準のアルゴリズムだとも言われています

この場合、それらの「標準アルゴリズム」のリストを取得し、それらの弱点を分析する必要があります。

私の素朴な推測では、ほとんどのキー生成はx||の形式です。hash(x || fixed)、ここでxは各キーに対してランダムに生成された値であり、fixedは固定値です。このフォームを使用すると、キーを非常に簡単に検証できます(xを抽出し、hash(x || fixed)を計算し、一致するかどうかを確認します)。

使用されている正確なアルゴリズムを知っていると仮定すると、アルゴリズムの弱点を見つける必要があります(既知の脆弱性を持つハッシュを使用している場合を除いて、可能性は低いです)、固定値をブルートフォースするなどです。

既知の脆弱性を持たないハッシュがたくさんあることを考えると、固定値を選択した人が愚かではないと仮定すると...これは、優れた暗号解読スキルがない限り、難しいCookieになる可能性があります。

したがって、アルゴリズムを設計した人が愚かでなければ、問題を解決するのは非常に困難です。しかし、彼らはそうかもしれません...

于 2010-05-19T22:29:22.473 に答える
0

システムはキーをランダムに生成し、クライアントに中央サーバーをチェックさせることができます。これは、他のDRMアルゴリズムと同じくらい安全です。つまり、まったく安全ではありません。この場合、外挿は不可能です。

于 2010-05-19T21:36:15.500 に答える
0

一般的に、答えは「いいえ、あなたは何も役に立つことはできません」です。

キーを生成する人々が怠惰になり、インデックス番号からある種の暗号品質のハッシュを使用できなかった場合(あなたの側での検査を阻止するのに十分なビットミキシングを使用)、ある種の関数形式の乱数を想定する可能性があります数値生成を行い、たとえば、線形合同乱数ジェネレーターのモジュラス、またはJenkinsハッシュ関数などの一連のビット混合シフトと加算などをバックアウトできるかどうかを確認します。

見つけた一般的な構造から、その構造を生成するアルゴリズムに移行するためのアルゴリズムはありません。これに似た何かがあなたが求めているように見えるものです。(このようなアルゴリズムは一般に不可能であることが証明されています。キーを計算できる最も単純なアルゴリズムが必要な場合、問題はコルモゴロフ複雑度の計算と同型であり、計算が非常に困難です(「これまでのところ事実上不可能」)。)

于 2010-05-19T21:41:35.300 に答える