7

エンドユーザーに直接読み取らせたくないデータファイルが付属しているプログラムがあります。それがユーザーのハードドライブ上にある間、それは常に暗号化されます(私のプログラムがそれを使用している間でさえ)。

ただし、データファイルは非常に簡単に抽出できるため、インストーラーにデータファイルを含めることはできません。暗号化機能を試しましたが、正しく機能していないようです。

そのため、配布中にユーザーがファイルを読み取れないように、ファイルを配布する方法を見つけようとしています。PHP over HTTPを介して暗号化された形式でファイルをダウンロードするさまざまな方法を考えましたが、とにかく暗号化キーを送信せずにダウンロードすることは困難です。言うまでもなく、私はHTTPの問題についてあまり経験がありません。

私はそれを回避するためのいくつかのアイデアを思いついたが、それらは機能しないか、非常に複雑である。私はむしろもっと複雑でない解決策を考え出すことを望みます。

これは安全すぎる必要はありませんが、HTTPスニファに対抗する必要があります。これを達成するための最良の方法は何でしょうか?

4

1 に答える 1

3

これを純粋にソフトウェアで行うことは基本的に不可能です。ユーザーのマシンで実行されているプログラムがそれを読み取ることができる場合、ユーザーのマシンで実行されている別のプログラムがそれを読み取ることができます。ユーザーはその他のプログラムを制御し、ファイルの内容を抽出できます。

あなたはそれを難し​​くすることができます。人々は一般にこの機能を DRM と呼んでおり、一部の DRM スキームは破るのが困難になっています。復号化を処理し、保護されていないコンポーネントがデータにアクセスすることを許可しない特殊なハードウェアを使用すると、それらははるかに強力になり、破るのがより困難になります。しかし、結局のところ、それを回避する方法は常にあります。専用のユーザーはいつでもロジック アナライザーを適切なバスに接続し、そこからデータを読み取ることができます。

本当にクレイジーになりたい場合は、改ざん防止ハードウェアを組み込むことができます。基本的に、自己破壊機能が組み込まれたハードウェアであるため、ユーザーがコンピューターを開こうとすると、データが破壊されます。これはかなりユーザーに敵対的な動作ですが、状況によっては必要になります (敵に取得させたくない暗号化キーを含むカード)。

ただし、これはすべて非常に難しく、コストがかかるため、ユーザーの生活がより困難になります。そして、どこかに小さな穴が 1 つでもあれば、それを 1 人で割ることができれば、データを抽出してどこかに投稿することができます。ほとんどの人にとって回避するのが難しすぎることは問題ではありません。

そしてもちろん、これらのハードウェア ベースのメカニズムはすべて、ユーザーがそれらをサポートする専用のハードウェアを必要とします。純粋にソフトウェア ベースのソリューションを実行している場合は、ゲームは既に起動しています。ユーザーは、デバッガーをプログラムのメモリに向けるだけで、ファイルを読み取るときにファイルの内容を読み取ることができます。

したがって、そのような機能が必要かどうかを再評価する必要があります。このデータは本当に機密情報ですか? もしそうなら、それをあなたの管理下に置き、ソフトウェアが提供する機能へのゲートウェイを提供するサーバーとインターネット経由で通信するようにソフトウェアを要求できますか?

ユースケースについてもう少し情報を提供していただければ、特定の問題に対するより良い解決策を提供できるかもしれません。たとえば、カジュアルなユーザーから保護したいだけの場合は、暗号化して、暗号化を解除するキーとコードを難読化できます。これはあまり保護を提供しませんが、誰かがコンテンツをちらりと見ただけでコンテンツを見るのを防ぐことができます. ライセンスが必要な場合は、ソフトウェアがチェックバックするセキュリティ ドングルまたはライセンス サーバーの使用を検討してください。しかし、防弾のアプローチはありません。最終的に、エンドユーザーのマシンでこのデータを使用して何かを行おうとすると、プロセスからデータを抽出できるようになります。

于 2012-12-19T05:16:10.207 に答える