1

私は最近暗号化について少し読んでいて、ライセンスファイルを改ざんから保護することに興味があります。さて、これはそれを行うための最良の方法ではないかもしれません。その場合、私は提案を受け入れます。しかし、私がそれを保護することを考えていた1つの方法は、単にそれを暗号化することです。

ただし、暗号化を使用する場合は、対称鍵を使用する必要がありますが、これには疑問があります。リフレクターなどのツールを使用してソースコードにキーを保存した場合、それは本当に価値がありますか?初期化ベクトル、ソルト、キーなどを取得して暗号化を解除するのは、かなり簡単な作業のようです。ソースのキーを保護する方法はありますか?それとも、これは完全に間違ったアプローチですか?

4

4 に答える 4

8

改ざんを防ぎたい場合は、暗号化ではなく、署名/ハッシュが必要です。同様の理論-ただし、サーバーに保持している(そしてライセンスの発行に使用する)秘密鍵を必要とせずに、アプリの公開鍵を使用してファイルを検証できることを意味します。

暗号化ハッシュ/署名を検索します。

于 2009-07-04T15:38:18.583 に答える
1

システムのクライアント側にあるものはすべて危険にさらされる可能性があります。

ファイルを暗号化する場合は、プログラムに復号化キーを配置する必要もあります。16進エディターを持っている人なら誰でも、コードをステップ実行してこのキーを見つけ、ライセンスファイルを復号化して、システムのキーを作成することができます。

インターネットのアクティベーションは良い方法ですが、以前はこれらの道を進んでいたので、これを行うサードパーティを見つけることができるかどうかを確認します。

つまり、ライセンスファイルをAES256暗号化で実行しても問題はありません:)。

于 2009-07-04T15:25:15.003 に答える
1

MS / .NET環境について話している場合は、DPAPIをお勧めします。これは、パスワードで保護されたデータを保存するために使用されるAPIです。次に、「しかし、同じ問題が発生します」と尋ねることができます。このシナリオでは、データを保護するためにユーザーパスワードを使用するため、答えはノーです。したがって、データにアクセスするために必要なことは、特定の資格情報の下でアプリケーションを実行することです。MS環境では、それが最良のソリューションです。

ドキュメントから:

DPAPIは、ユーザーにデータ保護を提供することに重点を置いています。保護を提供するにはパスワードが必要なため、論理的な手順は、DPAPIがユーザーのログオンパスワードを使用することです。これは、ある意味で使用されます。DPAPIは、実際にはユーザーのログオン資格情報を使用します。ユーザーがパスワードを使用してログオンする一般的なシステムでは、ログオン資格情報は単にユーザーのパスワードのハッシュです。ただし、ユーザーがスマートカードを使用してログオンするシステムでは、クレデンシャルは異なります。問題を簡単にするために、ユーザーパスワード、ログオンパスワード、または単にパスワードという用語を使用して、この資格情報を参照します。

于 2009-07-04T15:26:02.680 に答える
1

あなたが試みているのはDRMです。現在のPCハードウェアでこれを行う100%の方法はありません。プログラムの一部を難読化するために実行できる対策はたくさんあります。これは、難読化する量と、有料の顧客に通過させたいハードルの数との間のトレードオフです。

于 2009-07-04T17:50:43.890 に答える