2012-12-19 9 views
7

私は、エンドユーザが直接読むことを望まないデータファイルを同梱したプログラムを持っています。ユーザーのハードドライブ上にある間は、常に暗号化されています(プログラムが使用している間も)。受取人がそれを読むことができないようにファイルを配布する

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

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

私はそれを回避するためのいくつかのアイデアを考え出しましたが、うまくいかないか、非常に複雑です。私はむしろあまり複雑ではない解決策を思いつくでしょう。

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

+0

暗号化が機能しないのはなぜですか?アプリケーションでしか認識されていないキーで暗号化すると、何が問題になりますか? –

+4

私はなぜ暗号化がうまくいかないのかわかりませんが、私はここで達成しようとしているのはどういうことでしょうか?これはちょうど「何なの?なぜあなたはこれをしますか? –

+2

も参照してください:[** The XY Problem **](http://meta.stackexchange.com/q/66377/135887)。 – Charles

答えて

3

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

難しくすることができます。人々は一般的にこの機能をDRMと呼び、いくつかのDRMスキームは壊れにくいです。復号化を処理し、セキュリティ保護されていないコンポーネントがデータにアクセスすることを許可しない特殊なハードウェアを使用すると、それらは非常に強くなり、中断しにくくなります。しかし、結局、その周りには常に方法があります。専用のユーザーは常に、ロジックアナライザーを適切なバスに接続し、そのデータを読み取ることができます。

本当に夢中になりたければ、改ざんのないハードウェアを構築することができます。基本的に自己破壊機能が組み込まれたハードウェアであるため、ユーザーがコンピュータを開こうとすると、データが破壊されます。これはむしろユーザーに対して敵対的な行為ですが、場合によっては、敵が入手できないようにする暗号鍵を持ったカードが必要です。

しかし、これはすべて非常に困難で高価であり、ユーザーの生活をより困難にしています。どこかに小さな穴が1つあれば、その人が壊れることがあります。そして、データを抽出してどこかに投稿できます。ほとんどの人がバイパスするのは難しいことではありません。一人の人ができる限り、ゲームはアップです。

もちろん、これらのハードウェアベースのメカニズムはすべて、ユーザーにそれらをサポートする特殊なハードウェアを必要とします。あなたが純粋にソフトウェアベースのソリューションをやっているなら、ゲームはすでに始まっています。ユーザーはプログラムのメモリにデバッガをポイントし、読み込んだときにファイルの内容を読み出すことができます。

このような機能が必要かどうか再評価する必要があります。このデータは本当に敏感ですか?もしそうなら、それをあなたの支配下に置くことができ、あなたが提供する機能へのゲートウェイを提供するあなたのサーバーにインターネット経由で話す必要がありますか?

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

関連する問題