1

私たちのアプリケーションは、データベース内の他のレコードにさかのぼりたくないユーザーからの情報を保存します。たとえば、(ばかげたものではありますが)ユーザーは、好きな色を匿名で教えてもらうために料金を支払わなければなりません。各カラー レコードを新しい行としてデータベースに保存し、トランザクション情報を追跡したいと考えています。

色とトランザクションを別々のテーブルに保存した場合、サーバーがハッキングされた場合、行のシーケンシャル ID を使用して (色には常にトランザクションがあるため)、または行の作成時刻によって行を相互に関連付けることができます。行。したがって、これを解決するために、色テーブルの連続した ID 列、または色テーブルの更新/変更時間はありません。

現在、色をトランザクションに関連付ける唯一の方法は、実際にデータベース情報を格納するために使用されるファイルを調べることです。これは難しく退屈かもしれませんが、カラー テーブル情報はファイルに順番に保存される可能性があるため、まだ可能だと思います。

これが起こらないように、データベース情報を順不同で保存するにはどうすればよいですか? より一般的な質問は、匿名で安全に情報を保存するにはどうすればよいかということだと思います。(しかし、それは広すぎます)

明らかに、答えはデータベースがハッキングされないようにすることですが、良いものではありません。

4

3 に答える 3

2

何百万もの行を事前に生成し、ランダムに入力できます。

于 2013-01-09T18:07:11.053 に答える
1

データを分析する必要がある場合は、それを理解する必要があり、できれば攻撃者も理解できます。どんな巧妙な解決策を思いついたとしても、相関は依然として可能です。リレーショナル DB トランザクション ログには、いつ、どこで、何が挿入され、更新され、削除されたかが示されます。したがって、同じデータベースを使用する場合、データを 100% 分離することはできません。HSM を使用してデータを暗号化すると、盗まれたデータが攻撃者にとって役に立たなくなります。または、ランダムな遅延またはバッチ処理を使用して、他のマシンにデータを保存することもできます (待機して、1 つではなく 20 レコードを挿入します)。

于 2013-01-09T21:31:38.300 に答える
0

NoSQLなどの非現実的なデータベースを活用することを検討してください。

于 2013-01-09T18:17:48.643 に答える