2011-07-03 9 views
0

基本的なコードを実行できる小さなスクリプトエンジンがあります。私は、ユーザーがコードを保護するなら、誰も私のプログラムを除いてコードを開くことができなくてはなりません。VB.NETで改ざん防止のファイル

Base64エンコードを使用してコードを暗号化するhttp://www.codeproject.com/KB/aspnet/TamperProofQueryString.aspxというリンクが見つかりました。これは、暗号化と復号化にキーを使用します。

私はどのように私のアプリにキーを格納することができますので、誰も知りたくないと思っていました。私は私のプログラムを難読化するので、文字列などは簡単には読み込めません。それは役に立ちます。変数を使用し、EXEファイル自体にキーを格納することは別として。他にどのような安全なオプションがありますか?

上記の方法で安全に暗号化して解読するロジックは安全ですか?私は十分なセキュリティがほしい、おそらく幻想的ではないかもしれない。

さらに、上記のコードの利点は、ユーザーが一時ファイルなどを検索できないように、解読するために一時ファイルを作成する必要がないことです。

貴重なアドバイスをいただけると幸いです。

+1

ユーザはプログラムにアクセスできますか、またはアクセスしていますか。 Webサービスを介して? 最初のケースでは、完全なセキュリティを達成するために何もできません。プログラムに何かを解読するためのすべての情報が含まれていれば、ユーザーはそれにアクセスできます。 2番目のケースでは、公開鍵暗号化を使用して99%のセキュリティを確保することができます。 – Compuholic

+0

私のプログラムは私のサーバーにアクセスできますが、ここではセキュリティはそれほど重要ではありません。私は私のプログラムのタイトルなどからキーのテキストを派生させます。 – Greatchap

答えて

2

この質問は何度も繰り返し尋ねられます。簡単に言えば、アプリケーションがキーにアクセスできる場合は、鍵にアクセスすることは困難ですが、不可能ではありません(少なくとも汎用ハードウェアとソフトウェアで)。ゲームコンソールの秘密鍵のような閉鎖されたロックされたシステムでも、遅かれ早かれハードウェアから抽出されます。

概要:ユーザーに擬似コードのための何らかのソフトウェア保護を提供したいと考えています。これは、ネイティブコードと解釈されたコードに対して確実に解決されていないタスクです。このタスクはおそらくさらに複雑です。

キーの難読化は、ほとんどの非常に熟練していない攻撃者を追い払うでしょう。キーを難読化する最も簡単な方法は、プログラムのテキストフレーズをキーとして使用することです。これにより、時折の犯罪者にとって鍵の操作が不明確になります(専門家は、アプリケーション内で暗号鍵を見つけるさまざまな方法を知っています)。

もう1つの問題は、ユーザーのコードをエンジンで実行するために復号化する必要があることです。そして、現時点では、平均的な熟練したハッカーは、メモリをキャプチャしてメモリからスクリプトを選ぶことができます。

+0

あなたの入力をありがとうEugene。 "鍵を難読化する最も簡単な方法は、あなたのプログラムのテキストフレーズを鍵として使うことです"。もし私が秘密鍵= "xyzabc"をすれば。私のアプリを難読化しても大丈夫でしょうか?プラスは暗号化のための私のalgoです。 – Greatchap

+0

@Greatchap対称暗号化アルゴリズムを使用している場合は、アプリケーション内のテキスト(エラーメッセージやアプリケーションのタイトルなど)を一定にしてキーを取得します(http://stackoverflow.com/questions/6482883/how-toを参照)。鍵と葉を使用してパスフレーズを生成する)、既知の暗号化アルゴリズムを使用します。あなたが参照したコードはシナリオで可能なオプションです、はい。 –

+0

ユージンに感謝します。私は自分のプログラムの一部からキーのテキストを派生させます。 – Greatchap

関連する問題