web-dev-qa-db-ja.com

暗号化されたカードデータをサーバーに渡すということは、サーバーがPCIに準拠している必要があるということですか?

なんらかの購入システムを提供するWebアプリケーションのネットワークをセットアップしようとしています。各Webアプリケーションのサーバーで脆弱性スキャンを実行する必要がないようにするため、代わりに、各Webアプリケーションに、ネットワーク上の唯一のPCI準拠サーバーである支払い処理サーバーで作成されるトークン値を与えたいと思います。

次に、Webアプリケーションはこのトークンを支払い処理サーバーに送信し、そこで解読されて課金されます。

また、カードの詳細を支払い処理サーバーに保存したくないので、提案するプロセスは次のとおりです。

  • Webアプリケーションクライアント(SPA)がカードの詳細を収集し、暗号化されたトークンを直接支払い処理サーバーに要求します。

    {
      "number": "4242424242424242",
      "exp_month": "12",
      "exp_year": "2018",
      "cvv": "123"
    }
    
  • 支払い処理サーバーはこのデータを暗号化し(たとえば、AES256とパスワード "test"を使用してみましょう)、トークンをWebアプリケーションクライアントに返します。

    {
      "token": "DmR7/sQW7+EqKc1MvdaMgQ/DPVNIJuGTpoe2uwEfA4UJTdcaXuf63GhLyTvfihK77iTknNQArUHRVhm7kdET1KjetIg7Qj/aImlPXqM6GzwlgVljoofxtuHa8rRkU4/TqKHC+mfabYQrs4E+eb39qIeIenosPTr2b/+I+IOSZ6s="
    }
    
  • Webアプリケーションクライアントは、このトークンを注文情報と共にWebアプリケーションサーバーに送信します。

    {
      "token": "DmR7/sQW7+EqKc1MvdaMgQ/DPVNIJuGTpoe2uwEfA4UJTdcaXuf63GhLyTvfihK77iTknNQArUHRVhm7kdET1KjetIg7Qj/aImlPXqM6GzwlgVljoofxtuHa8rRkU4/TqKHC+mfabYQrs4E+eb39qIeIenosPTr2b/+I+IOSZ6s=",
      "items": [
        {
          "id": 5,
          "quantity": 1
        }
      ]
    }
    
  • Webアプリケーションサーバーは注文の詳細を受け取り、支払い処理サーバーへの支払いを要求します。

    {
      "token": "DmR7/sQW7+EqKc1MvdaMgQ/DPVNIJuGTpoe2uwEfA4UJTdcaXuf63GhLyTvfihK77iTknNQArUHRVhm7kdET1KjetIg7Qj/aImlPXqM6GzwlgVljoofxtuHa8rRkU4/TqKHC+mfabYQrs4E+eb39qIeIenosPTr2b/+I+IOSZ6s=",
      "provider": "stripe",
      "currency": "aud",
      "price": 123.45
    }
    
  • 次に、支払い処理サーバーはトークンを復号化して、請求するカードの詳細を検出し、請求を続行します。支払い処理サーバーは、請求が成功したかどうかを返し、Webアプリケーションサーバーは注文に処理済みのマークを付けることができます。

このシナリオでは私の主な懸念は、暗号化されたカードの詳細をWebアプリケーションサーバーに渡すことがPCIコンプライアンスの問題と見なされるかどうかです

Stripe.jsのようなサービスを使用して、dumbトークンを取得することができることを知っています(文字通りStripeへの参照のみで、カードデータはまったくありません)ただし、支払い処理システムは複数のプロバイダーをサポートする場合があり、その中にはトークン化システムが導入されていない場合があるため、ここですべてのベースをカバーする必要があります。

ありがとう。

2
mitchdav

このシナリオでは私の主な懸念は、暗号化されたカードの詳細をWebアプリケーションサーバーに渡すことがPCIコンプライアンスの問題と見なされるかどうかです

あなたが説明したシナリオでは、暗号化されたカードの詳細を渡していません。支払いプロセッサによって生成され、ウェブクライアントを介して返されたトークンを渡します。これは、プロセッサによって(ユーザーによって)一度渡された実際のカードデータへのルックアップを表します。

このシナリオでは、おそらく顧客のブラウザーがカードの詳細をプロセッサーに送信する原因となるiframeまたはjavascriptを含むショッピングカートページがサーバーによって処理されます。その場合、SAQ A-EP に従って、PCIコンプライアンスの対象となります:(強調は私のものです):

SAQ A-EPは、それ自体はカード会員データを受信しないが、支払い取引のセキュリティに影響を与えるWebサイトを持つeコマース商人に適用される要件に対処するために開発されました。または、消費者のカード会員データを受け入れるページの整合性

SAQ A-EP販売者は、eコマース決済チャネルをPCIに部分的に外部委託するeコマース販売者ですDSS検証済みのサードパーティであり、電子的に保存、処理しません、またはシステムまたは施設でカード会員データを送信します。

4
gowenfawr