6

IP セキュリティなどに関するタイムリーな投稿がいくつかありましたが、具体的にアルゴリズムに対処しているものは見つかりませんでした。私の現在のプロジェクトの 1 つで、オフラインの登録キー システムを採用することにしました。

私たちの最終的なユーザーベースのほとんどは正直になると思いますので、あまり心配する必要はないと思います. 一方で、私はかなりの汗と涙なしにカジュアルなクラッカーにアクセスしてもらいたくない.

では、キーを生成 (および検証) する方法にはどのようなオプションがありますか? インストール モデルがイントラネット サーバー上の samba 共有から実行されるため、ハードウェア キーイングはおそらくアウトです。また、キーの長さはどれくらいですか?

第 2 に、たとえ難読化されていたとしても、検証アルゴリズムが単純に反映される危険性はどれほど大きいでしょうか? 代わりにアンマネージ コードでアルゴリズムを記述した方がよいでしょうか?

4

5 に答える 5

10

私の意見では、あなたが直面する主な問題は、登録アルゴリズムと難読化のレベル (または欠如) ではありません。

むしろ、これは次のとおりです。コードのある時点で、実行するか終了するかの単純なバイナリ決定になります。システムをハッキングするには、この決定点を見つけて微調整するだけです。

他のすべて (難読化、強力な署名、改ざん検出) は、これをより困難にすることを目的としていますが、それほど困難にすることはできませ

于 2009-01-18T02:42:33.183 に答える
2

通常、キーの所有者や有効期限など、キーに含めたいデータを選択します。アプリケーションが適切に動作するために必要なコードの小さな断片でさえも可能です (したがって、キーなしで動作させることが難しくなります)。キー)。次に、RSA などのデジタル署名方式を使用して、会社の秘密鍵で鍵にデジタル署名します。アプリケーションの実行可能ファイルとともに公開鍵を配布します。次に、キーをロードするときに、署名が有効であることを確認してから、キーに含まれるデータを使用します。これには 1024 または 2048 ビットのキーで十分です。

もちろん、あなたのコードがどれほど洗練されていても、誰かがいつでもそれを壊したり回避したりできます。ですから、あなたが自問しなければならない質問は、それをどのくらい難しくしたいかということです (より難しいスキームは、コード化して維持するのが難しくなることを覚えておいてください)。リターンが減少するポイントがあり、通常はかなり低いです。プログラムがキーなしでは動作せず、キーが十分に複雑で、16 進エディタでキーを偽造 (または有効期限などを変更) できない限り、おそらく問題ありません。

于 2009-01-17T20:33:07.890 に答える
1

コードをうまくロックダウンする方法は1つしか見つかりませんでした。ほぼすべての形式のシリアル検証は、平均的な2年目のプログラマーが簡単に解読できます。

私が行った方法は、.NETでLicenseオブジェクトを使用することです。私の自家製のライセンスオブジェクト内で、「ライセンス」ファイルを読み取って「自宅」がどこにあるかを調べます。そのライセンスは暗号化された文字列です。文字列の秘密鍵はLicenseオブジェクトにあります。

次に、Licenseオブジェクトは、暗号化された秘密のパスワードを使用して自宅に電話をかけます。サーバーはパスワードを復号化して検証します...不正調査の場合はIPとユーザー名もログに記録します。サーバーがパスワードを検証できる場合、サーバーは秘密の応答で応答し、なりすましができないように再度暗号化されます。検証できない場合、接続は切断されます。応答が送信されないため、もう一方の端のLicenseオブジェクトは失敗します。

統合されたLicenseオブジェクトに障害が発生すると、自動的に例外がスローされ、アプリケーションは強制的に失敗し、ライセンスが呼び出された時点で終了します。

サーバーとLicenseオブジェクトを作成するのに約2営業日かかったので、少しのトレーニングですが、ロケット科学ではありません。

サンプルソースや詳細情報が必要な場合は、お知らせください。できることをお届けできることをうれしく思います。

于 2009-01-18T03:03:42.547 に答える
1

キーをリファクタリングする限り、マネージドからアンマネージドへの呼び出しサイトを強制終了した場合、アンマネージドで書き込んでも役に立たない可能性があります。Dotfuscator プロフェッショナルを使用している場合の難読化のオプションの 1 つは、「改ざん検出」を有効にすることです。基本的に、彼らはアセンブリにタグを付け、誰かが変更した場合、コードにさまざまなことを実行させることができます。もちろん、ハッカーはこれを取り除くことができますが、それにはさらに多くの汗と涙が伴います。

于 2009-01-17T21:33:20.343 に答える
0

あなたはこの質問への答えを見たいと思うかもしれません

于 2009-01-17T20:20:58.443 に答える