web-dev-qa-db-ja.com

トランザクションごとの派生一意キー(DUKPT)ベース派生キー(BDK)をパートナーと共有する

仮定:

  • 私たちの唯一のBDKから派生したキーが注入されたデバイスがフィールドに出ています。
  • デバイスは、挿入された派生キーを使用してデータを暗号化します。
  • すべてのデバイスは、データが復号化されるサーバーに接続します。
  • サーバーは、トランザクション処理のために2つの異なるプロセッサー(AおよびB)に接続します。

ここで、プロセッサBがデータを暗号化したままにすることを望んでいると言い、貴重なBDKを共有してデータを復号化できるように依頼します。これを行うための推奨される方法は何ですか?

プロセッサBでBDKが危険にさらされても、プロセッサAのすべてのデバイスが安全なままになるようにしたいと考えています。明白な方法は、BDK-AとBDK-Bの2つのBDKを作成することです。プロセッサAのすべてのデバイスはBDK-Aを使用し、プロセッサBのすべてのデバイスはBDK-Bを使用します。しかし、そうすることの欠点は、キーインジェクションの時点で、デバイスがどのプロセッサに対応しているかを把握し、それに応じてキーをインジェクトする必要があることです。これにより、デバイス準備プロセスの運用コストが高くなります。

運用をシンプルに保ちながら、プロセッサBでの妥協の影響を最小限に抑える方法があるかどうかを知りたいです。

2
Fayez

Bがフィールドデバイスからそれらに暗号化されたデータend-to-endを具体的に必要とする場合、実際には、Bが認識しているBDKの下に挿入されたデバイスが必要です-生成してBに提供するか、Bそれ自体を生成し、あなたまたはあなたのベンダー/インジェクション設備に渡しました-そしてできれば他の誰かによって使用されたり、共有されたりしてはいけません。

どのタイプのデバイスとユーザー/設定に関係があるかは言いません。私は(米国で)2つの異なるBDKの下でtwoデバイスキーを挿入できる小売/販売時点(磁気ストライプの「スワイプ」とピンパッド、場合によってはEMV)デバイスを見てきました。しかし、私が見たものはハイエンドである傾向があり(したがって、より高価です)、特定のトランザクション/データ項目に使用するキーchoosingの問題が依然としてあります。キャッシュレジスター/レジなど、関係する人間とインターフェースをとるシステムは、この決定を行い、デバイスに命令するように変更されます。

Bが暗号化されているデータについてのみ懸念している場合常時攻撃に対して脆弱ではない場合、ネットワーク内でサーバーを単一の(異常にビジーな)デバイスとして扱うことは十分に満足できる可能性があります- -つまり、theirBDKの下で初期鍵(および対応する初期KSN)を割り当てます。 BDK-Aキーの下でデバイスによって暗号化された各トランザクションを取得し、それを復号化してすぐにre-encrypt BDK-Bキーの下でそれを送信し、それをBに送信します。

暗号化に[〜#〜] hsm [〜#〜]を使用している場合、および支払いに機密性の高い大量のデータを使用する必要がある場合、これは多くの場合、呼び出される単一の操作として提供されます- "translate"-つまり、「キー#3で復号化」してから「キー#17で暗号化」する代わりに、ソフトウェアで「キー#3からキー#17への変換」を要求できます。プレーンテキストは、専用のハードウェア保護されたHSM内でのみ、CPU /メモリ/スワップに表示されることはありません。

取引量によっては、これはTCTRの値が2 ^ 21とやや少ないのでかなり高速に焼き尽くす可能性があるため、Bは別の「デバイス」キー(または数個)を毎月、週、またはその他に送信しなければならない場合があります。間違いを避けるために、安全かつ可能な限り自動化されたメカニズムを使用します。ボリュームの急増や何らかの障害により早期に切り替えざるを得なくなった場合に備えて、新しいキーが必要になると予想される少なくとも1週間前に、できればそれ以上の準備をしておくことをお勧めします。しかし、あなたが送った取引で彼らがお金を稼いでいて、おそらくそうでなければあなたのビジネスを受け入れないなら、彼らは管理することができるはずです。

3

DUKPTトランザクションごとの派生一意キー(DUKPT)スキームは、POS(POS)環境で使用されます。名前が示すように、トランザクションごとの派生一意キーは、トランザクションごとに新しいキーを生成します。この手法には、Base Derivation Key(BDK)とKey Serial Number(KSN)の使用が含まれます。各トランザクションで、PINパッドは、秘密のBDKおよび非秘密のKSNから派生した新しい暗号化キーを生成します。これは、PINキー、次に暗号化されたPINとキーのシリアル番号の両方を取得者に転送します。DUKPTの利点は、これらのワンタイム暗号化キーの1つが発見された場合、1つのトランザクションのみが侵害された場合、同じPOSデバイスからの他のトランザクションはいずれもそのキーで復号化できなくなります。DUKPTのANSI X9.24-1:2009メソッドPINキー導出が使用されることに注意してください。

基本導出キー

取得者ホストは、ベース派生キーを維持する責任があります。 HSMでは、PINエントリによって生成されたワンタイム暗号化キーは、元のベース派生キーとPINエントリによって提供されたキーシリアル番号を使用して「派生」されます。実際のアプリケーションでは、取得ホストは複数のBDKを持ち、おそらく異なるPINエントリデバイス用です。トランザクションを処理する場合、アクワイアラーは、初期化に使用された、または元のPINエントリデバイスに挿入されたBDKを知ることが重要です。これを実現するために、Base Derivation Key識別子がKey Serial Number文字列に埋め込まれています。

トランザクションごとに、アクワイアラーホストは、KSN文字列のBDK IDによって識別される適切な暗号化されたベース派生キーを内部ストレージから抽出します。アクワイアラホストは、BDKクリプトグラムリスト(アクワイアラホストで維持されているBDKプロファイル)内で一致を見つける必要があります。データベースで一致が見つからない場合、トランザクションは拒否されます。詳細: http://www.writeulearn.com/dukpt/

1
swapnil

セキュリティと制御の両方を維持する1つの方法は、プロセッサBにデータセンターにインストールする物理的なHSMを提供することですが、契約上はお客様に帰属します。これには2つの大きな利点があります。

  1. デバイスのセキュリティはあなたの決断であり、HSMはプロセッサーによるデバイスの違反を防止します。
  2. デバイスを所有しているので、ビジネス上の理由に厳密に基づいて支払いプロセッサを自由に変更できます。契約の最後に事業者がプロセッサを変更したい場合は、HSMを取り戻すだけです。導入済みの何千もの端末にコストのかかるキーを再挿入する必要はありません。これにより、長期的な遅延が生じます。

もちろん、これはコストがかかりますが、他のソリューションで発生する可能性のある問題よりも安価です。

0
John Deters