web-dev-qa-db-ja.com

クレジットカード番号の保存

私はWebサイトのメンバーシップタイプのオプションを使用してWebサイトを作成します。トランザクションの実行にはAuthorize.Netを使用する可能性が高いですが、クレジットカードの保存に使用できる暗号化の種類を知る必要がありますMySQLデータベース内の番号?

11
im UT

Authorize.NetのCustomer Information Manager API を使用して、PCIコンプライアンスとセキュリティの問題を完全に解決し、そのために必要なすべてのことを彼らに任せることができるのに、それをMySQLデータベースに保存する理由君は? CIMを使用すると、顧客のクレジットカード情報を顧客側に保存し、トランザクション時に支払いプロファイルIDを参照するだけで、いつでも必要なときにいつでもそのプロファイルに対して課金して、顧客の支払いプロファイルを作成できます。

14
John Conde

あなたが守らなければならない主要な規制ペイメントカード業界のデータセキュリティ基準(PCI DSS) であり、ここで特に重要なのはセクションです3.4-

保存されているカード会員データの保護

レンダリングPAN(ポータブルデジタルメディア、バックアップメディア、ログなどを含む)保存されている場所では、次のいずれかの方法を使用して読み取ることができません。

  • 強力な暗号化に基づく一方向ハッシュ(ハッシュはPAN全体のものでなければなりません)
  • 切り捨て(ハッシュを使用してPANの切り捨てられたセグメントを置き換えることはできません)
  • インデックストークンとパッド(パッドは安全に保管する必要があります)
  • 関連するキー管理プロセスと手順を備えた強力な暗号化

セクション3の残りの部分も詳しく読む価値があります。

12
Rory Alsop

データベースからアクセスできない場所に格納されているキーを使用して機密データによく知られている対称暗号(AESやblowfish/twofishな​​ど)を使用する場合、おそらく(下記の注を参照)要件を満たします。結果は印刷できないため、結果を16進数またはbase64でエンコードして保存できます。

自動の暗号化と復号化を行うシステムはすべて、手動のシステムよりも本質的に安全性が低くなります。これは、キーがサーバー上に保存されている必要があるためです。しかし、それらを分離できるほど、優れています。

さらに良いことに、いくつかの例を挙げると、Authorize.netのCIMやPaypalの参照トランザクションなど、顧客のカードをサーバーに保存する必要がないメカニズムを利用できるゲートウェイプロバイダーが多数あります。

これは法的またはセキュリティ上のアドバイスを構成するものではなく、そのように解釈されるべきではありません。質問や懸念がある場合は、常に地元のセキュリティ専門家を雇う必要があります。

2
tylerl