2009-05-12 1 views
2

私はユーザーアクションに関するログレコードを生成しています。プライバシー上の理由から、これらはN日後に匿名化する必要があります。しかし、この匿名化されたデータに対してレポートを実行する必要もあります。一人のユーザーのレコードは、まだログに1(偽の)利用者の記録を残さなければなりません -古いデータと新しいデータとの関係を壊さずに新しいログレコードを匿名化する方法は?

私は実ユーザAによってすべてのアクションが匿名化ログに偽のユーザーXの下に表示されるようにしたいです。これは明らかに、新しいレコードを匿名化する際に使用する、実際のユーザーと偽のユーザーの間にマッピングをいくつか用意する必要があることを意味します。もちろん、これは完全に匿名化のポイントを打ち負かします。マッピングがあれば元のユーザーデータを復元できます。

例:

ユーザーフランクミュラーは、スープの3缶を買いました。

三日後、ユーザーフランク・ミュラーは、スープの3缶の払い戻しを求めました。

私が2番目のログエントリを匿名化すると、最初のものはすでに匿名化されています。私は、両方のログレコードが同じユーザーを指すようにしたい。まあ、それは実際には私にとってはほとんど不可能に思えるので、私は、データをできるだけ完全に保つことを可能にするデータを分割するいくつかの方法を使いたいと思います。おそらくログをデータウェアハウスとして使用して、すべてを事実に分割し、いくつかの次元を分析できないという事実を受け入れるだけでしょうか?

以前にこのようなシナリオに遭遇しましたか?私の選択肢は何ですか?私は明らかに何らかの妥協案を作る必要があります - あなたにとって効果的であることは証明されていますか?そのようなデータを最大限に活用するには?知識をひけらかすされる危険が

答えて

6

は、あなたが記述するもの匿名データではなく、むしろペンネームデータ。あなたは、偽名生成を実行するために、HMAC-SHA1のようなある種のキー付きハッシュ関数を使用することを検討しましたか?

  • 分析とOLTPデータベースを分けることができます。両方にアクセスできる人の数を最小限に抑えます。
  • いずれのデータベースからもアクセスできない分析データベースにデータをコピーするアプリケーションに対して、HMACキーを非公開にします。おそらく、アプリケーションをインストール時に生成させ、ハードコードされたキーを使用して難読化するようにしてください。システム管理者もソフトウェア開発者も、結託することなく簡単に入手できます。
  • 実際の名前とアドレス、またはユーザ番号、請求書番号などの同等または容易にリンク可能なキーをコピーすることはできません。 OLTPデータベースからハッシュせずにコピーしてください。

これを行うと、仮名から実際の身元を取得するための2つの主要な攻撃経路があります。

  • 直接攻撃:HMACキーを取得し、既知の各ユーザーの仮名を計算し、結果の表のルックアップを元に戻します。 (HMACは元に戻すことができません:元の値を実現可能にすることはできません。)
  • 情報融合攻撃:鍵とアイデンティティのリストが分からない場合、次の最良のものは、単に匿名他のデータとのデータ - おそらくOLTPデータベースの盗まれたコピー。

ペンネームのデータセットは、情報融合攻撃にnotoriously vulnerableている - あなたがストリップする必要が正確にどのくらいの「ぼかし」、このような攻撃に耐性のデータセットを作成するための鍵相関多くの情報を取り除くか、する必要がありますが、 topic of current researchです。

+0

匿名の一方向ハッシュ、再識別のリスクとキー管理をカバーする優れた答えです。 – npdoty