0

私のプログラムがアンチウイルスだとしましょう。「Signatures.dat」というファイルがあるとします。スキャンするウイルスのリストが含まれています。そのファイルを暗号化して、どのコンピューターでもアンチウイルスで開くことができるようにしたいのですが、ユーザーはそのファイルの内容を見ることができません。

どうすればそのタスクを達成できますか?

私はDPAPIのようなものを見ていましたが、ユーザーの設定に基づいているため、私の場合はうまくいかないと思います。私のソリューションは普遍的である必要があります。

暗号化する方法はありますが、キーを保存する方法がわかりません。コードに保存するのは本当に安全ではないことを知っているので、この時点で何をすべきか本当にわかりません.

4

2 に答える 2

5

ユーザーのコンピューターがファイルを読み取れるようにし、ユーザーのコンピューターがファイルを読み取れないようにする必要があります。ご覧のとおり、これは矛盾であり、解決することはできません。

実装しているのは基本的にDRMスキームです。TPMを使用しない限り(いいえ、実際には機能しません。考えもしないでください)、単に安全にすることはできません。難読化を使用して、リバースエンジニアリングとキーの取得を可能な限り困難にすることができます。キーの一部をサーバーに保存してオンラインで取得することもできますが(基本的にはEAがゲームで行ったことを実行します)、おそらく正当なユーザーが製品を使用するのを難しくするだけであり、本当に使いたい人は誰でもそうしますキー、つまりファイルを取得できます。

于 2012-12-31T07:00:31.160 に答える
0

あなたの例では、ファイルの整合性を検証しようとしていますか (ファイルが変更されていないことを確認するため)、または内容を非表示にしようとしていますか?

コンテンツを非表示にしようとしている場合は、最終的に述べられているようにできません。

ファイルが変更されていないことを確認したい場合は、ハッシュを介してこれを行うことができます。2 つのユースケースを混同しているようには見えませんが、ファイルが改ざんされていないことを確認するために暗号化を使用していると思われることがあります。

あなたの最善の策は、両方の方法を使用することかもしれません. 次に、サーバーでファイルのハッシュを確認します (https を使用し、証明書の拇印を確認してください)。これにより、誰かが暗号化を解読した場合でも、ファイルが変更されていないことが保証されます。

于 2012-12-31T11:20:13.937 に答える