ホワイトペーパーとアナリストレポート

InterSystems Caché を使用して、
クレジットカードデータを安全に保存する

Andreas Dieckow
(インターシステムズコーポレーション、主席プロダクトマネージャ)

pdfPDFファイルのダウンロード

要約

今日、クレジットカードでの購入や決済は、これまで以上に増加しています。クレジットカード決済を行う業者やサービス提供者は、顧客の重要な情報を保護する義務がありますが、使用されているソフトウェアソリューションは、クレジットカード情報を保護する「ベストプラクティス(最善慣行)」をサポートしていない場合もあります。この問題に対処するため、クレジットカード情報保護のためのセキュリティ基準が確立され、広く採用されています。

PCI DSS(The Payment Card Industry Data Security Standard:クレジットカード国際情報セキュリティ基準)は、安全にクレジットカード情報を扱うためのガイドラインです。この条項には、顧客情報をデータベースに保存する場合の勧告が含まれています。このホワイトぺーパーでは、現在・将来において、PCI DSS のデータ保存に関するガイドラインを遵守する上で、ソフトウェアベンダがInterSystems Caché®データベースを利用する利点について、解説しています。

クレジットカード情報保護の使用例

データベース情報を安全に保護する最良な方法は、データを永続化しない(保存しない)ことです。しかし、当然、クレジットカードデータを扱う企業は、カード所有者名、カード番号(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を(メモリ上で)判読し、クレジットカード処理を行うことが可能です。

PCI DSS は、定期的に「強力な」暗号化・再暗号化された情報を使うことを要求しています。また、暗号化鍵は、ユーザアカントあるいは、ユーザアカウントに関連するところへの保存は、禁止されています。

Caché による安全なデータの保存方法

Caché は、アプリケーションに強力で一貫性のある高性能のセキュリティ構造を提供し、国際セキュリティ認証(Common Criteria)を受けています。
現在のリリース(Caché 2010)で、アプリケーションがどのように安全にPANなどのデータを保存するのか、以下に記します。

  • ハッシュ化
    Caché は、いくつかのハッシュ関数(Secure Hash Algorithms:SHA-1など)に対するビルトインアクセスを提供しています。
  • トランケーション
    完全にサポートし、Caché が稼働しているアプリケーションの一部として実装されています。
  • データベースの暗号化
    Caché は、次世代標準暗号化方式として規格化された新暗号規格(Advanced Encryption Standad: AES)を実装しています。

    データベースの暗号化では、データベース全体が一つの暗号鍵で暗号化されます。鍵へのアクセスは、システムによって管理されているため、ユーザアカウント(プロセスなど)はデータベース暗号鍵を持ちません。
    インデックスを含む全ての情報は、暗号化されて保存され、データベースは保護されています。
  • データ要素の暗号化
    開発者は、暗号化スイートを使って、個々の情報片を暗号化することが可能です。PANのような取り扱いに注意が必要な情報の保存には、データ要素の暗号化が好まれます。なぜなら、それによって、(正しい規定に従って)データベースにアクセスを中断することなく、データ要素の再暗号化が可能になるからです。
  • 監査
    Caché は、堅牢で、不正アクセス監査システムを提供し、セキュリティモデルへの全ての変更を監査します。アプリケーションの開発者は、アプリケーションコードにおいて、監査システムの呼び出しをすることで、同じ監査データベースの使用が可能です。

Cachéのセキュリティモデルに追加された機能強化について

PCI DSS は広く採用されているので、この基準に準拠するアプリケーションを、より簡単に設計するためのいくつかの変更点が、Cachéに追加されています。この機能強化は、Caché 2011より利用可能です。主な強化点は、データ要素の暗号化で使用される鍵管理に関するものです。

マネージドキ―(鍵管理)

この機能強化では、データ要素の暗号化に使われる暗号鍵の要素は、データベース暗号鍵と同じ保護されたメモリに保存されることで、システムによって安全が保持されています。アプリケーションは、一意の鍵IDでそれぞれの暗号鍵を参照します。これにより、鍵の要素自身への、ダイレクトアクセスをなくします。

このデータ要素の暗号化という新しい方法を利用する場合、開発者の手間が省けるように、鍵IDは、結果として生成された暗号文に埋め込まれています。これにより、復元処理において、自動的にデータを暗号化している鍵を特定することが可能です。新しいマネージドキ―システムは、データベース暗号鍵に加え、いくつかの鍵をサポートしています。これにより、アプリケーション開発者は、簡単に、必要な要素をリアルタイムで再暗号化することができ、導入されたアプリケーションの性能には、仮想的に何の影響も及ぼしません。

まとめ

PCI DSSは、安全にクレジットカード情報を扱う必要のある世界各国の販売業者やサービス提供者によって採用されています。アプリケーションプロバイダは、ソリューションが、確実にこの基準に準拠している必要があります。InterSystems Caché を使うと、PCI DSSに準拠したアプリケーションが構築可能です。Caché 2011での機能強化により、開発に係るこの負荷をより軽くすることが可能になります。