web-dev-qa-db-ja.com

PCI DSS要件に従ってSQLサーバーデータベースに保存するためにクレジットカード番号を暗号化する方法?

PCI-DSS 3.4要件によると:

レンダリングPAN以下のメソッドを使用して、保存されている場所では判読できません:

  1. 一方向ハッシュ
  2. 切り捨て
  3. インデックストークンとパッド
  4. 関連するキー管理プロセスと手順を備えた強力な暗号化

上記の要件に基づく私の質問は:

  1. それで、クレジットカードの詳細を暗号化する必要がある場合、どちらがより良いプロセスでしょうか?

  2. ストレージ用にクレジットカード番号を暗号化する場合は、クレジットカード番号を暗号化するためのデータ暗号化キー(DEK)が必要です。それでは、各クレジットカード番号を暗号化するために一意の暗号化キーを生成する必要がありますか? orユーザーごとに一意の暗号化キーを生成するには(各ユーザーは2つ以上のCCを持つ場合があります)? orすべてのクレジットカード番号を暗号化するための単一の暗号化キーを生成するには?

  3. また、ワンタイムパッドに関するリンクを提供したり、それについて説明してください。

4
RajeshKannan
  1. 最初の2つのオプション(一方向ハッシュ、切り捨て)では有効な番号が残っているわけではないため、将来このカードを再び使用することが予想される場合は、これらは機能しません。スペクトルの反対側では、強力な暗号化によってその能力が得られますが、それはより難しく、プロセスのセットアップ(キーのローテーションや管理など)を伴います。

  2. 鍵のローテーション要件があるため、ソリューションは通常、鍵をユーザーやカードとペアにするのではなく、暗号期間全体で1つの鍵を使用することを目的としています。

    通常、DEKのOUP(Originator Usage Period)の期間中、複数のカードの暗号化には1つのDEK(DK1と呼ぶ)を使用します。 OUPが3か月であるとしましょう。 3か月後、新しいDEK(DK2)を生成します。新しいカードの暗号化はすべて、代わりにその番号を使用し始めます。ただし、最初の3か月で暗号化したすべてのカードについて、それらを解読する必要があるかもしれませんよね?そのため、DK1は、RUP(Recipient Usage Period)が長い(たとえば12か月)間、既存の暗号化カードの復号化に引き続き使用される可能性があります。

    したがって、常に、少なくとも1つのDEKがOUP and RUPとして使用され、他の3つのDEKがRUPとしてのみ使用されます。そして、最も古いDEKがRUPの終わりに近づくと、すべてのカードを新しいDEKで再暗号化する必要があります。

    PCIが「関連するキー管理プロセスと手順を使用して」とは、それが意味することです。上記の用語は、NIST 800-57からのものです。PCIは、DSS 3.6.4。

    また、KEK(Key Encrypting Key)を使用して、この安定したDEKを保護する必要があります。

  3. いいえ。 <意見>ワンタイムパッドは現実的な解決策ではありません。暗号的に安全ですが、使用可能な規模で管理することはできません。 #2について言ったことを想像してみてください。ただし、カードごとに1枚のDEKを使用します!</ OPINION>

4
gowenfawr