MIXI MにおけるPCI 3DS準拠のための道のり

k-asm
MIXI DEVELOPERS
Published in
9 min readSep 5, 2023

--

開発本部MIXI M事業部の@k-asmです。この度MIXI MではPCI 3DSの準拠認定を受けました。この記事では、PCI 3DSの概要と、MIXI Mで準拠認定を受けるために行った技術的な対応について書いていきます。

なおMIXI Mとは、認証から決済までをワンストップで提供できる基盤システム & WALLETサービスです。主にMIXI社の提供するサービス向けに決済基盤を提供しているのと同時に、プリペイドカードを発行して日々の決済に利用できるようになっています。この機会に是非ご利用をご検討ください。

目次

1. PCI 3DSとは何か
2. PCI DSSとの関係について
3. PCI 3DS準拠のための対応
3DSシステムとアプリケーションの保護
セキュアなWeb構成
3DS認証基盤における鍵管理
セキュアなリモートアクセス
4. おわりに
5. 参考文献

PCI 3DSとは何か

3-D Secure (3DS) は、カード所有者(カードホルダー)がオンライン取引をする際に、発行者(イシュアー)によるユーザー認証を可能としたメッセージングプロトコルです。この仕様はカードを利用したオンライン決済のセキュリティを強化することを目指しています。

3DSの仕様は EMV® 3DS により定義されており、Europay, Mastercard, Visaの三社によって設立されたEMVCoにより管理・維持されています。

PCI 3DS Core Security Standard (PCI 3DS) は、クレジットカード業界のセキュリティ基準を策定する組織であるPCI SSCにより公開されているセキュリティ基準です。このセキュリティ基準は3DSを利用した認証基盤を提供する際に準拠が求められます。MIXI Mでは現在3DSを利用した認証基盤の内製開発を進めており、PCI 3DSへの準拠が必要となりました。

PCI 3DSでは3DS認証基盤を構成するコンポーネントを提供する際のセキュリティコントロールについて定められており、これに従って認証基盤の開発と運用をする必要があります。また、QSAと呼ばれる外部の監査機関による審査を受ける必要があります。

PCI DSSとの関係について

PCI 3DSはPart 1, Part 2で構成されています。

  • Part 1: Baseline Security Requirements
  • Part 2: 3DS Security Requirements

Part1はPCI 3DSとは別のセキュリティ基準であるPCI DSS要件の一部です。Part2はPCI DSS要件と被るものもありますが、基本的にPCI 3DS独自の要件となります。

PCI DSSはカード会員データを取り扱う際に必要となるセキュリティ基準であり、MIXI Mではすでに準拠しています。今回、MIXI Mで3DSデータを取り扱う環境 (3DE) は、PCI DSS準拠されたカード会員データを取り扱う環境 (CDE) 上に構築したため、PCI 3DS Part 1を含む一部の要件は免除されています。

PCI 3DS準拠のための対応

以下では、MIXI MにおいてPCI 3DSに準拠するために行った対応の一部を紹介していきます。なおMIXI Mでは基本的にAWS基盤上にシステムを構築しているため、以降はAWS基盤上のシステムを前提とした記述になります。

3DSシステムとアプリケーションの保護

PCI 3DSではシステムイメージや設定ファイルなどのベースライン構成を攻撃者から保護すること、また動作しているアプリケーションが未認証の変更から保護されることが要件として求められます。PCI 3DS上のImplementation Guidanceによれば、これは変更管理プロセスだけでは不十分で、デジタル署名やハッシュ値などを利用した検証プロセスを検討することが推奨されています。

MIXI MではPCI DSSで求められているIDS/IPS利用要件をクリアするために、アプリケーションとして動作しているFargateコンテナは全て読み取り専用 (readonlyRootFilesystem) にしています。この設定により、動作しているコンテナのファイルシステムは変更不可能であるため、要件を満たすことができました。

セキュアなWeb構成

3DS認証基盤では、カードブランドや加盟店をはじめとした他コンポーネントとトランザクションが通信する際にはmTLSで認証することが仕様上求められます。

また3DS仕様上定義されるTLSバージョン(EMV® 3DSコア仕様Version 2.2.0では1.2以上が要件です)や暗号スイートでの通信が求められ、下位TLSバージョンや未承認の暗号スイートにロールバックしないこと、構成がモニタリングされていることがPCI 3DSでは求められます。

MIXI MではAmazon API GatewayのHTTP APIApplication Load BalancerのHTTPSリスナーを使うことでmTLS認証とTLS接続をしています。

API GatewayとApplication Load Balancer(ALB) において、適切なセキュリティポリシーを設定することで、適切なTLS構成で通信が行われることを担保します。これらの構成は全てCloudFormationで管理されているため、ドリフト検知機能により構成の監視が可能です。

さらにAWS Configを使ってリソースの変更にフックして構成監視を行っています。AWS ConfigのConfig RuleではカスタムLambdaルールを使って柔軟に評価ロジックを記述できます。

例えば、ALBのリスナーの情報を取得して、意図通りのProtocol(HTTPS) とSslPolicy(ELBSecurityPolicy-TLS-1-2-2017-01) が設定されていることを確認するLambdaのコード(抜粋)は以下のように書けます。

# Application Load Balancer のリスナーを取得
response = elbv2_client.describe_listeners(LoadBalancerArn=resource_id)

# リスナーを確認し、TLS と SecurityPolicy を検証
for listener in response['Listeners']:
if listener['Protocol'] != 'HTTPS':
return create_non_compliant_result(resource_type, resource_id, creation_time)

if listener['SslPolicy'] != 'ELBSecurityPolicy-TLS-1-2-2017-01':
return create_non_compliant_result(resource_type, resource_id, creation_time)

# リスナーが準拠している場合、準拠結果を送信
return create_complaint_result(resource_type, resource_id, creation_time)

3DS認証基盤における鍵管理

3DS認証基盤ではいくつかの秘密鍵を取り扱いますが、その一部の秘密鍵は、PCI 3DSで定義された要件を満たしたHSMで生成・管理することが求められています。この定義は、PCI 3DSに付随した文書である、Data Matrixに記載があります。

HSMは以下の要件のいずれか(PCI 3DS Version 1.0の要件)を満たす必要があります。

  • FIPS 140–2 Level 3 (overall) or higher certified
  • PCI PTS HSM approved

MIXI Mでは当初AWS CloudHSMやデータセンターの利用を検討していたのですが、2023年5月にAWS KMSのHSMがFIPS 140–2 Level 3に認定されたことでAWS KMSがPCI 3DSのHSM要件を満たすようになりました。これにより、Data Matrixで定義された秘密鍵はAWS KMSで生成・管理すればPCI 3DSの要件を満たすため、当初の予定よりも運用負荷を軽減できました。

HSMの鍵管理に関しては、鍵操作における監査ログの要件や、論理的・物理的アクセスからの保護要件などもあります。これもAWS KMSを利用する方針にすることで容易に解決できました。

セキュアなリモートアクセス

PCI 3DSでは、3DS認証基盤への非コンソールアクセスや3DEに接続するリモートアクセスに対して、多要素認証が求められています。またリモートアクセス運用の文書化や特権の監視なども求められます。

MIXI Mでは、PCI DSSにおいて求められているシステムコンポーネントへのアクセス基準をクリアするため、基盤上の全てのシステムに対してリモートアクセスできない運用にしています。操作の際にはAWS Consoleを経由したアクセスが必要です。AWS Consoleにログインする際には多要素認証を必須としているため、これによりPCI 3DSの要件も満たすことができます。

おわりに

MIXI Mでは、運用負荷の軽減をテーマにDynamoDBや各種フルマネージドサービスを積極活用しています。PCI 3DSにおいてもAWSで提供される機能を利用することで、大きな負担なく対応できました。

3DS認証基盤については基本的な機能開発は完了し、EMVCoによる認証取得が完了しています。現在カードブランドと接続するべく開発が進行しています。3DS認証基盤の開発については別途記事にする予定です。

MIXI Mでは3DS認証基盤の他にも、国際的な決済ネットワークへの接続システム、プリペイドカードのオーソリゼーションやカードの売上を精算するシステムなど、様々な決済基盤を内製で開発しています。MIXI M開発メンバーによる過去の外部発表スライドもご覧ください。

参考文献

--

--