クレジットカード番号もDHCP化してイイんじゃないか。

 この20年、IP(v4)アドレスの枯渇問題の話が度々出るが、クレジットカード番号はどうだろうか。

 4桁×4なので1京種類の番号を発行でき、一度使われた番号は永久欠番にし、1人何枚も持ったとしても、何世代後も枯渇はしないっぽい。

 かれこれ10年以上前から思っていることなんだが、インターネット決済用のクレジットカード番号とは、そもそも動的発行でイイんじゃないか。IPアドレスで言うDHCP割り当て的な。

 クレジットカードアカウントにログインし「決済用一時カード番号の発行」ボタンを押すと使い捨て番号が発行(本カード番号に紐付け)され、決済が済んだら割り当てが解除される仕組み。

 更にカード裏面の3桁または4桁のセキュリティコードもワンタイム化すれば強靱なセキュリティを保てる。

 カード会社側は、XX月XX日XX時XX分XX秒にこの使い捨て番号が割り当てられていたのはどのアカウント(本カード番号)だと履歴を残しておけば利用者を特定できる。

 すなわち物理的に発行される本カード番号が実体アカウントとして存在し、インターネット決済用の使い捨てカード番号はエイリアスとして動的発行される仕組み。

 情報とは、価値があるほど悪党にとって収集価値があり、収集コストをかける意味が出てくる。その価値ある情報を守るためにセキュリティレベルを強化するコストをかけるといういたちごっこになり、最終的には本人の端末にスパイウェアが入っていれば漏れる。

 ならば情報自体の価値を失わせてしまえば収集価値もなくなるという単純な考え方。

 使い捨てカード番号は決済が完了した時点でそのアカウントや氏名との割り当てが解除されるから(当該番号はその後一定期間は再利用しない)、キーロガーや画面をモニタリングされていたとしても、もうその番号と氏名の組み合わせに意味がなくなる。

 セキュリティコードをワンタイム化する場合、同じアカウント画面上に表示してしまうとリアルタイムにモニタリング(画面共有のような)されている場合は不正利用される可能性がゼロではないので、ショートメールで携帯電話番号あてに通知する仕組みが良い。

 そうすれば、電話もパソコンも監視されていない限り、カード番号とセキュリティコードが一致することはないし、本人の決済が完了するまで(割り当てが解除されるまで)の間に総当たりは無理と言って良い。3回間違えたら割り当て自体を解除(カード番号の無効化)する仕様にすれば良いから。

 ここまで実装し、物理カードの本番号はインターネット決済に使えない仕様にすれば、店頭で使用したカードの券面・裏面のセキュリティコードの写真やコピーを取られ、後で海外のどこかのインターネット上で不正利用されるという心配もしなくて良い。物理カードを複製するには合鍵作成のようにはいかず、ICチップも偽造する必要があるので、できたとしても時間とコストがかかりすぎる。

 またこの仕様なら、インターネット上のお店が一度利用されたカード番号+氏名+セキュリティコードの情報をサーバーに保持していてそれが漏洩したとしても不正利用される心配がない。決済された時点でその組み合わせは存在しなくなるから。

 よって収集価値がなくなる。

 使い捨て番号の発行機能は基本仕様にする必要はなく、心配な人だけが利用するオプションとしても良い。プラチナやブラックカードの特典にするのもアリだろう。