最近、サーバー側のクレジットカード処理でHSMが使用されていることを知りましたが、そのスペースで作業しておらず、なぜそれが必要なのか悩んでいます。
ATMマシンで使用されていることがわかります。検証のためにサーバーに送信されるデータを暗号化するためです。
しかし、いったんファイアウォールの内側に入ったら、DBからカードの詳細を照会するだけでなく、それを復号化して、ネットワーク経由で取得したものと比較して、カードプロセッサに送信します。このパスにHSMが必要なのはなぜですか?
編集:HSMが通常どのように機能するかを理解しています。私が知らないのは、それらが支払い処理でどのように使用されるかです。誰かがそれに光を当てることはできますか?
@ thomas-porninと@PwdRschでHSMの機能について説明しましたが、支払い処理で何が使用されているかを知りたいことを明確にしました。ショートバージョンは、プロセッサが使用する暗号化保護を強化するために使用されます。
あなたがクレジットカード処理業者を意味すると仮定しましょう。 PCI HSMセキュリティ要件 は、HSMを適用できる場所がいくつかあることを示しています。
いくつかの単純な使用法は、クレジットカードプロセッサが準拠しなければならないPCIデータセキュリティ標準の要件から推測できます。 DSS 2.0要件4は、プロセッサが
強力な暗号化およびセキュリティプロトコルを使用して、オープンなパブリックネットワーク経由での送信中に機密のカード会員データを保護します。
したがって、DSSはWebサーバーにHTTPSが必要であると言います。 HSMは秘密鍵を保存できます その設定をより安全にします。IPSecは要件4を満たす方法かもしれません;それはHSMからも恩恵を受けることができます。
DSS要件3.4には、
レンダリングPAN保存されている場所では判読できません... [関連する]キー管理プロセスと手順を使用した強力な暗号化
したがって、たとえば、データベースに保存されているクレジットカード番号は暗号化する必要があります。 データベースの暗号化をサポートするためにHSMを使用できます 。
支払い処理業者は暗号化を必要とします。 HSMは暗号化を行います...
ハードウェアセキュリティモジュール(HSM)は本質的には、通常のサーバーオペレーティングシステムの外部で暗号化キー(または署名キー)を管理する信頼できるコンピューターです。サーバーにキーを提供するのではなく、サーバーは暗号化されたblobをHSMに渡し、HSMはプレーンテキストの結果を返します。逆も同様です。
HSMがこのように使用される主な理由は、攻撃者がキーにアクセスすることを非常に困難にするためです。犯罪者はアプリケーションまたはサーバーをハッキングできますが、それでもHSMを制御できません。侵害されたサーバーを介して、一度に1つずつHSMに復号化要求を送信できますが、暗号化されたレコードとキーを抽出して自由に復号化を実行するよりも便利ではありません。
この手順をスキップしてサーバーにキーを保持することはできますが、そのリスクは一部の組織では受け入れられない場合があります。
[〜#〜] hsm [〜#〜] は、大きなスマートカードのようなものです。暗号化キーを格納し、外部システムに代わって暗号化操作を実行します。ただし、攻撃者がマシンに物理的にアクセスできる場合でも、含まれている秘密キーの抽出を決して許可しないように設計されています。
HSMの実際のセキュリティの向上は、通常想定されるほど大きくありません。 HSMから暗号化操作を要求することが許可されている外部システムにハッキングする攻撃者は、同じことを実行できます。 HSMが署名キーを格納している場合、攻撃者は自由に署名できます。ただし、HSMは秘密キーの抽出を許可しないため、攻撃者がキーを使って自分の巣に後退するのを防ぎます。これは、攻撃者が外部システムの制御を維持している間のみ、秘密キーを使用できることを意味します。または、攻撃者がHSMを物理的につかんで逃げたかもしれませんが、ここでも、目立たなくなります。ある意味で、HSMはある種の高度な永続的な脅威を打ち負かすために存在します。キーの侵害が発生した場合、すぐに終了します。それ。
一部のHSMはプログラム可能であり、ハードウェアシールドの保護下で、アプリケーションロジックの一部をHSMにプッシュできます。これは概念的にははるかに優れたセキュリティを可能にしますが、簡単ではない特定の開発が必要です(HSMの内部はnot典型的なUnixのようなものですすべての機能を備えたオペレーティングシステム。