はじめに
クレジットカードを使って購入や支払いが行われる機会はますます増え続けています。クレジットカードを取り扱う加盟店やサービスプロバイダには、顧客の機密情報を守る義務がありますが、使われているソフトウェアソリューションは、クレジットカード情報のセキュリティを確保するためのベストプラクティスに対応していない場合があります。この課題に対処するため、クレジットカード情報用のセキュリティ基準が開発され、幅広く導入されています。
PCI(Payment Card Industry)DSS(Data Security Standard)は、クレジットカード情報を安全に取り扱うための一連のガイドラインです。顧客情報をデータベースに格納する際の推奨事項などが規定されています。本書では、ソフトウェアベンダが InterSystems IRIS Data Platform™ をどのように利用すれば、PCI DSS 内のデータストレージに関するガイドラインを遵守できるかを概説します。
クレジットカード情報のセキュリティ確保に関するユースケース
データベース内の情報のセキュリティを確保する最善の方法は、情報を全く永続化(格納・保存)させないことです。しかし、クレジットカードデータを取り扱う企業は、カード保有者の名前、個人アカウント番号(PAN)、有効期限、サービスコードなどの一部の情報を保存せざるを得ません。PCI DSS は、カード保有者データの必要最低限の情報のみを永続化させることを推奨しています。カード保有者データを保存しなければならない場合、PCI DSS は、(少なくとも)データベース内やあらゆるジャーナルログ内でPANを判読不能にすることを求めています。
PAN のセキュリティを確保する方法の詳細は、ユースケースによって異なる場合があります。一般に、ユースケースは、「クレジットカードを認証目的にのみ使用する場合」と「クレジットカードで商品やサービスの支払いを行う場合」の2つのうちいずれかのカテゴリに分類されます。
クレジットカードを検証に使用
クレジットカードをある種の ID として取り扱うようアプリケーションが設計されている場合(例えば、カードを使って飛行機の予約記録を取得する場合)は、使用可能なクリアテキストのPANを保存する必要性は全くありません。PCI DSS によると、認証目的に十分なバージョンの PAN を保存する場合には、ハッシュまたはトランケーションのいずれかを使うことができます。
- ハッシュ複雑なアルゴリズムに従って情報が変換され、変換された(ハッシュ化された)バージョンの情報のみが保存されます。ハッシュのアルゴリズムは、一方向にのみ機能します。ハッシュ化されたバージョンからオリジナルの情報を一意に特定することは不可能です。認証目的の場合、カード保有者から提供された PAN のハッシュ化されたバージョンを、保存済みのハッシュ値と比較することができます。
- トランケーション情報の一部のみが保存されます。認証目的の場合、カード保有者から提供されたPANが同様にトランケーションされ(一部を切り捨てる)、これを保存済みの値と比較することができます。一般に、トランケーションの場合は、ハッシュよりもセキュリティが弱くなります。
クレジットカードを支払いに使用
クレジットカードによる支払いを取り扱うアプリケーションは、トランザクションを処理するために、使用可能なPANにアクセスできる必要があります。PCI DSS では、PAN情報の取り扱い方として、3つの方法が認められています。
- PAN を全く永続化させない(ディスクに保存しない)このシナリオが起こり得るのは、例えば、クレジットカードでオンライン業者から何かを購入し、「ゲスト」としてチェックアウトする場合です。カード保有者は、何かを購入するたび、完全なPAN を入力する必要があります。アプリケーションは、このPANをメモリ内で使用しますが、永続化させません。(PCI DSS には、転送中のPANやその他の機密情報のセキュリティ確保に関するガイドラインも含まれていますが、本書ではそれらには触れません。)
- トランケーションPAN の一部のみが保存されます。アプリケーションがメモリ内で PAN を再構成できるようにするため、カード保有者は、欠落している情報を提供する必要があります。使用可能な PAN は、メモリ内にのみ存在し、ディスク上には存在しません。
- 暗号化複雑なアルゴリズムに従い、暗号化キーを使って、PAN が暗号化テキストまたはクリアテキストに変換されます。ただし、保存されるのは暗号化テキストのみです。ハッシュと異なり、暗号化では、二方向で変換を行うことができます。アプリケーションは、暗号化キーを使って PAN を解読し、これをクレジットカードトランザクションの処理に(メモリ内で)使用することができます。PCI DSSは、「強い」暗号化を使用すること、および情報を定期的に再暗号化することを求めています。また、暗号化キーは、ユーザアカウントの中に保存したり、ユーザアカウントと関連付けたりしてはなりません。
InterSystems IRIS でデータストレージのセキュリティを実現
InterSystems IRIS Data Platform は、強固で一貫性のある高性能なセキュリティ構造をアプリケーションに提供します。
InterSystems 製品を以下のように使用すれば、PAN のようなデータをアプリケーションで安全に保存できるようになります。
- ハッシュInterSystems IRIS では、データをハッシュ化するための複数の Secure Hash Algorithm(SHA-1など)にそのままアクセスできます。
- トランケーションInterSystems IRIS 内で実行されるアプリケーションの一部として、トランケーションが完全にサポートされ、実装されています。
- 保存データの暗号化InterSystems IRIS は、AES(Advanced Encryption Standard)アルゴリズムを実装しています。保存データの暗号化においては、データベース全体、およびイメージ前/イメージ後ジャーナルが、単一の暗号化キーを使って暗号化されます。キーへのアクセスはシステムによって管理されるため、特定のユーザアカウント(つまり特定のプロセス)がデータベースの暗号化キーを持つことはありません。暗号化されたデータベースに格納されているすべての情報(インデックスを含む)が保護されます。
- データ要素の暗号化InterSystems IRIS では、開発者が暗号化スイートにアクセスできるようになっているため、個別の情報を暗号化することもできます。データ要素の暗号化は、通常、PAN のような機密情報を保存する場合に好まれる手法です。なぜなら、データベースアクセスを中断しなくても、(適切なプロビジョニングによって)データ要素を再暗号化することができるからです。
- 監査InterSystems IRIS には、改ざん防止の堅牢な監査システムが付属しており、セキュリティモデルへのあらゆる変更を監査できます。アプリケーション開発者は、監査システムへの呼び出しをアプリケーションコード内に組み込むことで、同じ監査データベースを使用することができます。
InterSystems IRIS セキュリティモデル内でのキー管理
PCI DSS は幅広く使われていることから、InterSystems IRISには、アプリケーションを標準に合わせて構築しやすくするために設計されたいくつかの機能が含まれます。これらは主に、データ要素の暗号化を行う際に使われるキー管理に関連する機能です。
マネージドキー
データ要素の暗号化に使われる暗号化キーマテリアルは、システムによって安全に保持されています。具体的には、データベースの暗号化キーと同じ、保護されたメモリ位置に格納されています。アプリケーションは、一意の KeyID を使って、個別の暗号化キーを参照します。そのため、キーマテリアルそのものに直接アクセスすることはありません。
開発者にとって作業をしやすくするため、このデータ要素暗号化の新手法を用いる場合は、結果として生成される暗号化テキストに KeyID が埋め込まれます。これにより、データを暗号化するために使われたキーを解読プロセスで自動的に特定することができます。この新しいマネージドキーシステムは、データベース暗号化キーに加え、上記のような複数のキーをサポートしています。これによりアプリケーション開発者は、リアルタイムで再暗号化の要件を満たしやすくなります。配置されたアプリケーションのパフォーマンスに対する影響は事実上ありません。
まとめ
PCI DSS は、クレジットカード情報を安全に取り扱わなければならない世界中の加盟店やサービスプロバイダに採用されています。アプリケーションプロバイダは、それぞれのソリューションがこの標準に準拠していることを確認する必要があります。
InterSystems IRIS は、PCI DSS に準拠したアプリケーションを構築できる能力を開発者に提供するだけでなく、このタスクを今まで以上に容易化します。
インターシステムズ は、世界の中でも極めて重要なアプリケーションの基盤となっているエンジンです。医療、金融、官公庁など、人々の命や生活がかかっているあらゆる分野において、不可欠な原動力を提供しています。1978年創業のインターシステムズは、米国マサチューセッツ州ケンブリッジに本社を置く株式非公開企業で、世界中に拠点を持っています。そのソフトウェア製品は、80か国以上の数百万もの人々によって毎日使用されています。
詳細については、プリンシパルプロダクトマネージャを務める Andreas Dieckow、またはインターシステムズジャパンまでお問い合わせ下さい。
InterSystems.com/jp/IRIS