サイトのAPI図鑑B版
掲載情報が正確でない可能性があります。
決済・フィンテックAPI

クレジットカード決済APIのセキュリティ対策【PCI DSS・3Dセキュア対応】

ECサイトのクレジットカード決済に必要なPCI DSS準拠・3Dセキュア2.0・不正利用対策・トークン化について、実装観点から詳しく解説します。

#PCI DSS#3Dセキュア#不正対策#トークン化

クレジットカード決済のセキュリティリスク

ECサイトへのサイバー攻撃の多くは、クレジットカード情報の窃取を目的としています。カード情報漏洩が発生した場合、ブランドの信頼失墜・多額の罰則・不正利用の補償など、事業者への影響は甚大です。適切なセキュリティ対策を実施することは、顧客保護と事業継続の両面から不可欠です。

PCI DSS(Payment Card Industry Data Security Standard)

PCI DSSはVisa・Mastercard・JCBなどの国際カードブランドが制定した、カード情報を扱うすべての事業者が準拠すべきセキュリティ基準です。12の要件からなり、カード情報の保護・ネットワークセキュリティ・アクセス制御・監視などを包括します。

PCI DSS準拠レベルの決め方

準拠のレベル(SAQ:自己問診票の種類)は、カード情報の取り扱い方によって異なります。Stripe ElementsやPayPay等の外部決済フォームを使い、自社サーバーにカード番号を通過させない実装を採用することで、要件の少ないSAQ Aへの準拠で済むケースが多いです。

カード情報の非保持化とトークン化

日本では2018年以降、ECサイトに「カード情報の非保持」または「PCI DSS準拠」が義務付けられました。カード情報の非保持を実現する主な方法は以下の2つです。

決済代行会社のフォームを使う(リダイレクト型)

決済代行会社が提供するカード入力ページにユーザーを誘導します。カード情報は決済代行会社のサーバーにのみ送信されます。UXの制御が制限されますが、実装が最も簡単です。

決済代行会社のJavaScriptを使う(非通過型)

Stripe ElementsのようなJavaScriptコンポーネントを自社サイトに組み込みます。カード情報はブラウザから直接決済代行会社のサーバーに送信され、自社サーバーにはトークン(カード情報の代替ID)のみが渡されます。UIの自由度が高く、ユーザーが外部サイトに遷移する必要がありません。

3Dセキュア(本人認証)の実装

3Dセキュアはカード決済時にカード会員本人であることを確認する追加認証の仕組みです。現在の主流は3Dセキュア2.0(EMV 3DS)で、リスクベース認証によりほとんどの低リスク取引で追加認証なしの「フリクションレスフロー」が実現されています。

3Dセキュアのメリット:

  • 不正利用リスクの低減
  • チャージバック(不正利用によるキャンセル)のライアビリティシフト
  • 3DS2のフリクションレスフローによるカゴ落ち率の改善

Stripe・GMO-PG・ペイジェントなどの主要決済代行は3DS2に対応しており、APIパラメーターで有効化できます。

不正利用対策

機械学習による不正検知

Stripe Radarのような機械学習ベースの不正検知ツールは、数百万件のトランザクションデータから不正パターンを学習し、高精度でリスクスコアを算出します。ルールエンジンと組み合わせて、高リスク取引を自動で拒否または追加認証へ誘導します。

速度制限(Velocity Checks)

同一カード番号・同一IPアドレスからの短時間に大量の決済試行を検知し、ブロックします。カードテスティング(盗まれたカード番号の有効性確認のための少額試し決済)対策に有効です。

住所確認(AVS)・セキュリティコード照合(CVV)

カード請求先住所とセキュリティコード(CVV/CVC)の照合は基本的な不正対策です。一致しない取引のリスクスコアを上げるか拒否する設定を活用します。

セキュリティ対策チェックリスト

  • カード情報の非保持化(トークン化・外部フォーム)
  • HTTPS(TLS 1.2以上)の強制
  • 3Dセキュア2.0の実装
  • 不正検知ツールの導入
  • CVV照合の有効化
  • 定期的なセキュリティスキャン・脆弱性診断
  • アクセスログの監視・異常検知アラート

まとめ

クレジットカード決済のセキュリティは「カード情報の非保持化」「PCI DSS準拠」「3Dセキュア」「不正検知」の4本柱で構成されます。Stripe・GMO-PGなどの信頼性の高い決済代行を使うことで、これらのセキュリティ要件の多くをプラットフォーム側に委譲できます。事業者としては実装方針の選択とWebhookでの適切な処理実装に集中することが、コストパフォーマンスの良いセキュリティ対策になります。

よくある質問

Q.PCI DSSのSAQ A・SAQ A-EP・SAQ Dの違いは何ですか?

SAQ A:カード情報を自社で保持・処理・送信せず、完全に外部委託(Stripe Elements等)の場合。最も要件が少ない。SAQ A-EP:外部のJavaScriptでカード情報を処理するが自社サーバーを経由しない場合。SAQ D:自社サーバーでカード情報を処理・保管する場合。最も要件が多い。

Q.3Dセキュア2.0と旧バージョンの違いは何ですか?

3Dセキュア2.0(3DS2)はリスクベース認証を採用しており、低リスクと判断された取引はユーザーに追加認証を求めずに処理されます(フリクションレスフロー)。旧バージョン(3DS1)はすべての取引でパスワード入力が求められ、カゴ落ちの原因になっていました。

Q.不正利用が発生した場合、EC事業者は損失を負担しますか?

原則としてはチャージバック(異議申し立て)が行われ、EC事業者が損失を負担します。ただし3Dセキュア認証を実施した取引では、多くの場合カードブランドへのライアビリティシフトが適用され、カード会社が損失を負担します。不正対策と3Dセキュアの導入は事業者リスクの低減に直結します。

関連記事