純粋にソフトウェアでこれを行うことは基本的に不可能です。ユーザーのマシン上で動作しているプログラムがそれを読み取ることができれば、そのユーザーのマシン上で動く別のプログラムがそれを読むことができます。ユーザはその他のプログラムを制御し、ファイルの内容を抽出することができる。
難しくすることができます。人々は一般的にこの機能をDRMと呼び、いくつかのDRMスキームは壊れにくいです。復号化を処理し、セキュリティ保護されていないコンポーネントがデータにアクセスすることを許可しない特殊なハードウェアを使用すると、それらは非常に強くなり、中断しにくくなります。しかし、結局、その周りには常に方法があります。専用のユーザーは常に、ロジックアナライザーを適切なバスに接続し、そのデータを読み取ることができます。
本当に夢中になりたければ、改ざんのないハードウェアを構築することができます。基本的に自己破壊機能が組み込まれたハードウェアであるため、ユーザーがコンピュータを開こうとすると、データが破壊されます。これはむしろユーザーに対して敵対的な行為ですが、場合によっては、敵が入手できないようにする暗号鍵を持ったカードが必要です。
しかし、これはすべて非常に困難で高価であり、ユーザーの生活をより困難にしています。どこかに小さな穴が1つあれば、その人が壊れることがあります。そして、データを抽出してどこかに投稿できます。ほとんどの人がバイパスするのは難しいことではありません。一人の人ができる限り、ゲームはアップです。
もちろん、これらのハードウェアベースのメカニズムはすべて、ユーザーにそれらをサポートする特殊なハードウェアを必要とします。あなたが純粋にソフトウェアベースのソリューションをやっているなら、ゲームはすでに始まっています。ユーザーはプログラムのメモリにデバッガをポイントし、読み込んだときにファイルの内容を読み出すことができます。
このような機能が必要かどうか再評価する必要があります。このデータは本当に敏感ですか?もしそうなら、それをあなたの支配下に置くことができ、あなたが提供する機能へのゲートウェイを提供するあなたのサーバーにインターネット経由で話す必要がありますか?
あなたのユースケースに関する情報をもう少しあげても、私たちはあなたの特定の問題に対してより良い解決策を提供できるかもしれません。たとえば、カジュアルなユーザーからの保護をしたいだけなら、そのユーザーを暗号化し、それを解読するキーとコードを難読化することができます。これは多くの保護を提供することはありませんが、誰かがそれを見てコンテンツを見るのを防ぐことができます。ライセンスを取得する場合は、ソフトウェアがチェックバックするセキュリティドングルまたはライセンスサーバーの使用を検討することもできます。しかし、アプローチは防弾ではありません。最後に、エンドユーザーのマシンでこのデータを使用して何かをしようとすると、プロセスからデータを抽出することができます。
暗号化が機能しないのはなぜですか?アプリケーションでしか認識されていないキーで暗号化すると、何が問題になりますか? –
私はなぜ暗号化がうまくいかないのかわかりませんが、私はここで達成しようとしているのはどういうことでしょうか?これはちょうど「何なの?なぜあなたはこれをしますか? –
も参照してください:[** The XY Problem **](http://meta.stackexchange.com/q/66377/135887)。 – Charles