0

私たちのクライアントは私たちにデータベースを提供したいと思っています。元のデータベースには電話番号の列があります。彼は私たちに電話番号を教えたくない。どういうわけか私には理由がわかりません-クライアントが128ビットのAESキーで暗号化された暗号化された電話番号を私たちに提供することが決定されました。

ある目的のためにどの電話番号を候補リストに載せるかをクライアントに伝えますが、実際の電話番号が何であるかはわかりません。暗号化された番号だけがわかります。

これが私が理解していないことです:

  1. この目的に適した128ビットAESキー暗号化を使用していますか?
  2. クライアントが数値の変換に使用されるAESキーを保持する必要があるか、またはキーを保持する代わりにクライアントが元の数値を暗号化された数値にマッピングするデータベースを作成する必要があります
  3. すべての数値または異なる数値を変換するために同じキーを使用する必要があります
  4. ランダムに生成されたキーを使用して番号を暗号化する場合、2つの電話番号で暗号化されたテキストが同じになる可能性はありませんか?
4

2 に答える 2

5

IMOこれは間違ったアプローチです。電話番号を暗号化する代わりに、それでも復号化する可能性があります(たとえば、誰かがキーを漏らしたため)。クライアントは、電話番号を実際の電話番号のテーブルを指すIDに置き換える必要があります。もちろん、このルックアップテーブルは彼のそばにあります。あなたはそれを決して手に入れません。

IE

元のテーブル:

Name   | Phone
-------+---------
Erich  | 555-4245
Max    | 1234-567

あなたが得る:

Name   | Phone
-------+---------
Erich  | 1
Max    | 2

あなたのクライアントだけが持っています:

ID | Phone
---+---------
1  | 555-4245
2  | 1234-567
于 2009-11-20T09:44:04.960 に答える
1

懸念事項に順番に対処する:

  1. そうかもしれないし、そうでないかもしれない。実際、目的が何であるかについては、実際にはまったく言及していません。

    • なぜ暗号化が必要なのですか?
    • 誰から保護されていますか?
    • データの価値(または失われた場合のあなたへの責任)は何ですか?
    • 架空の攻撃者はどの程度動機付けられていると想定されていますか?
    • セキュリティの向上にはどのようなパフォーマンスの低下が許容されますか?
    • どのハードウェアを利用できますか?
    • システムのさまざまな部分に物理的/論理的にアクセスできるのは誰ですか?

    などなど。状況を知らなければ、これが適切な暗号化方式であるかどうかを判断することはできません。(それは確かな選択である可能性が高いですが)。

  2. 確かにそれはクライアントが決めることですか?ただし、後者の場合は暗号化の目的を完全に無効にしているように思われます。
  3. どの電話番号を解読するためにどのキーを使用するかを覚えておくためにキーをジャグリングするのが好きでない限り、すべての番号を変換するために同じキーを使用する必要があります。セキュリティシステムが適切に設計されている場合、これは追加のセキュリティを提供せず、奇妙な頭痛の種になります。
  4. 暗号化の定義により、いいえ。これは常にリバーシブルマッピングであるため、ハッシュで取得するような情報が失われることはありません。その結果、暗号文のすべてのインスタンスには、(特定のキーを使用して)暗号化する単一の一意の平文があります。

全体として、これは必要とは思えませんが。誰かが技術的なメリットではなく外観に基づいて決定を下しているように思えます。「ブラウザで使用されているのと同じ128ビット暗号化で電話番号を暗号化する」というのは良いことのように聞こえますが、実際に必要ですか?

于 2009-11-20T09:43:18.687 に答える