組み込みに関するセキュリティガイド
PCI 準拠を確認し、顧客とサーバーの通信を保護します。
PCI DSS は、カード保有者のデータまたは機密性の高い認証データを保存、処理、または送信するすべての組織に適用される国際的なセキュリティ基準です。PCI DSS は、消費者保護のベースラインレベルを規定し、決済エコシステム全体における不正利用やデータ侵害の削減に寄与しています。カードデータの処理、送信、または保存に携わるすべての人・組織は、PCI データセキュリティ基準 (PCI DSS) に準拠することを義務づけられます。
PCI 準拠の検証
PCI 準拠は共同責任であり、Stripe とお客様の会社の両方に以下の要件が適用されます。
- Stripe は、すべての PCI 要件を満たすPCI レベル 1 のサービスプロバイダーとして PCI Qualified Security Assessor (QSA) から毎年認定を受けています。
- 支払いを受け付ける企業は、PCI に準拠した方法で支払いを受け付け、毎年この遵守状況を証明する必要があります。
ダッシュボードで会社のドキュメント要件を確認し、このガイドを読み進めて、Stripe が PCI 準拠に関してどのようなサポートを提供しているかをご確認ください。
低リスクのシステムを使用する
一部のビジネスモデルでは、支払いページでトークン化されていない PAN を取り込む必要があります。支払いを受け付ける際に機密性の高いクレジットカードデータを直接処理する場合は、PCI DSS のセキュリティコントロール値を 300 以上にしなければなりません。そのため、専用のセキュリティソフトウェアとハードウェアを購入、実装、保守し、場合によっては年次評価要件を満たすための外部監査人を雇う必要があります。
多くのビジネスモデルでは、機密性の高いカードデータを扱う必要はありません。代わりに、Stripe が提供する低リスクの決済システムでサーバーを経由せずに支払い情報を安全に収集して Stripe に直接送信できるため、PCI の要件を緩和できます。
安全に保存できる対象外のカードデータ
Stripe は支払いリクエストに対するレスポンスとして、機密情報以外のカード情報を返します。この情報にはカードタイプ、カードの末尾 4 桁、カードの有効期限が含まれます。この情報は PCI 準拠の対象ではないため、これらのプロパティはいずれもデータベースに保存できます。さらに、API によって返される情報もすべて保存可能です。
TLS と HTTPS を使用する
TLS とは、クライアント (顧客が使用しているアプリまたはブラウザー) とお客様のサーバーとの間で安全にデータを送信するプロセスを指します。これは当初、Secure Sockets Layer (SSL) プロトコルが実行しましたが、古くなり安全ではなくなりました。TLS が SSL に置き換わりましたが、「SSL」という用語は、 TLS とその送信データを保護する機能を表すときに話し言葉で引き続き使用されています。
支払いページでは、お客様と顧客の両方に対する中間者攻撃のリスクを削減するため、最新バージョン (TLS 1.2 以上) を使用する必要があります。TLS は次の達成を目指しています。
- クライアントとサーバー間のトラフィックを暗号化し、その整合性を検証します。
- クライアントが正しいサーバーと通信していることを確認してください。実際には、これはドメインの所有者とサーバーの所有者が同じエンティティであることの検証を意味し、中間者攻撃の防止に役立ちます。この検証が行われないと、正しい受信者へのトラフィックを暗号化していることが保証されません。
TLS を使用するには、認証局 (CA) が発行するファイルである「デジタル証明書」が必要です。この証明書をインストールすると、クライアントが、なりすましではなく通信先として想定されるサーバーと実際に通信していることが保証されます。デジタル証明書は、次のような定評のある証明書プロバイダーから取得します。
必要に応じて、HTTPS を使用せずに実装内容をテストし、本番環境で決済を受け付ける準備ができたときに HTTPS を有効にすることができます。ただし、お客様のサーバーと Stripe 間のやり取り (Stripe のライブラリの使用時など) にはすべて HTTPS を使用する必要があります。
TLS を設定する
TLS を設定するには次のようにします。
- 適切なプロバイダーから証明書を購入します。
- 証明書が使用されるようにサーバーを構成します。この手順は複雑なため、使用するプロバイダーのインストールガイドに従ってください。
TLS は一連の複雑な暗号化ツールであるため、詳細を見過ごしてしまいがちです。Qualys SSL Labs が提供している SSL Server Test を使用して、すべてが安全に設定されたことを確認することをお勧めします。
セキュリティに関する考慮事項
他のサイトから JavaScript を取り込むと、セキュリティが他のサイトに依存するようになり、セキュリティリスクが生じる可能性があります。そのサイトが侵害された場合、攻撃者がお客様のページで任意のコードを実行する可能性があります。実際には、多くのサイトが Google アナリティクスのようなサービスに JavaScript を使用していて、安全なページもあります。それでもなお、これを最小限に抑えることが重要です。
Webhooks を使用している場合、エンドポイントに TLS を使用して、トラフィックが傍受されたり通知が変更されたりしないようにすることをお勧めします (機密情報が Webhook イベントに含まれることは決してありません)。
データセキュリティ標準に準拠することは重要ですが、セキュリティを常に考慮する必要があります。Web セキュリティを理解するのに役立つリソースを以下に示します。
コンテンツセキュリティポリシー
コンテンツセキュリティポリシーをデプロイしている場合、Checkout、Connect の埋め込みコンポーネント、Stripe.js で必要となるすべてのディレクティブは次のとおりです。
クロスオリジン分離のサポート
現在、クロスオリジン分離サイトはサポートされていません。
クロスオリジン分離には、すべての依存関係によるサポートが必要であり、支払いオファリングを有効にするいくつかの主要な依存関係では、この機能のサポートがまだ提供されていません。