メンバーシップの詳細とクレジットカードの詳細を保存するように設計されたソリューションを開発しています。可能な限りPCIDSSに準拠しようとしています。これまでの私のデザインは次のとおりです。
PAN=プライマリアカウント番号==クレジットカードの長い番号
- サーバーAはリモートサーバーです。すべてのメンバーシップの詳細(名前、住所など)を保存し、保存されているPANごとに個別のキーAを提供します
- サーバーBはローカルサーバーであり、実際には暗号化されたPANとキーBを保持し、復号化を行います。
PANを取得するには、クライアントは両方のサーバーで認証する必要があり、サーバーAにそれぞれのキーAを要求してから、キーAをサーバーBに渡します。これにより、PANがクライアントに返されます(認証が成功した場合)。サーバーAは、キーAをサーバーBの公開鍵でのみ暗号化します。これは、事前に暗号化されているためです。サーバーBはおそらく最初にソルトを送信する必要がありますが、暗号化する必要はないと思います
上記に関しては、実装(つまりコーディング)の詳細についてはまだ考えていませんが、ソリューションはJavaのCajoフレームワーク(RMIのラッパー)を使用しているため、サーバーは相互に通信します(現在、メンバーシップの詳細は転送されます)この上)。
クライアントではなくサーバーBに復号化を実行させたい理由は、サーバーではおそらく同じくらい悪いのに、復号化キーがクライアントのRAMに入るのを恐れているからです...
誰かが上記のデザインに何か問題があるのを見ることができますか?上記を変更する必要があるかどうかは関係ありません。
ありがとう
jtnire