ホーム > プログラム, 趣味 > 架空のdカード プリペイドを作成してみよう!(帰納編)

架空のdカード プリペイドを作成してみよう!(帰納編)

2017 年 2 月 27 日 コメントをどうぞ コメント

突然ですが、架空のクレジットカード番号を不正作出してみたくありませんか? してみたいですよね?

今回は不正利用されやすいと噂の「dカード プリペイド」を対象に、ネット上の情報から各種規則を帰納し、演繹により架空のカード番号を作り出すことに挑戦してみようと思います☆(ゝω・)v

dカード プリペイドとは

dカード プリペイドは、NTTドコモが提供を開始した年会費無料のプリペイドカードです。

従来ドコモが提供していたVisaバーチャルカードの「ドコモ口座」や、iDバーチャルカードの「dカード mini」、ローソンで配布している「dポイントカード」の機能を一枚に統合したプラスチックカードと言えるでしょう。

dカード プリペイドの喜びの声

まずはdカード プリペイド利用者の喜びの声をご覧ください。

dカードプリペイドの10万枚限定ポインコVersionが届いたよ。

Ryuji Suzukiさん(@r.s_drummer)がシェアした投稿 –

……最後のは見なかったことにしましょう。いいですか、良い子のお約束ですよ。

dカード プリペイドの特徴

ある程度サンプルが集まったことですし、クレジットカードの持つ基本情報についておさらいしながら、dカード プリペイドの特徴を確認していきましょう。

dカード プリペイド(ポインコ)

券面デザイン

クレジットカードのカードフェイス(券面)は一種のステータス表現でもありますが、プリペイドカードではステータスもへったくれもありません。

そこでドコモはポインコ兄弟をあしらった「ポインコデザイン」を用意、先着10万名とすることで早期の普及を狙っているようです。「初回限定」の文字に弱い日本人の性質をよく理解していますね。これが後にボディブローのように効いてくるとは知らずに……。

発行者識別番号

カード番号16桁のうち、先頭の6桁は発行者識別番号(IIN:Issuer Identification Number)と呼ばれ、カードの種類に応じて固定となっています。

dカード プリペイドには三井住友カード(SMC)が持つ番号帯の中から「5302-37」が割り当てられています。

これについてはおそらくポインコデザインも通常デザインも共通だと思われます。

発行者会員番号

カード番号16桁のうち、7-15桁目の9桁は発行者が自由に割り当てる会員番号(Issuer Account Number)となっています。

この9桁の番号の推測が困難であることを以てセキュリティに代えているので、カード番号が流出すると世間で大騒ぎになり、流出元はエクストリーム謝罪DEATH。

その割にはレジでカード番号が丸見えの状態で時給数百円のパート・アルバイトに決済処理を任せて平気なんだから日本人不思議ネー。

チェックディジット

カード番号16桁のうち、最後の1桁はチェックディジットとなっています。

発行者識別番号6桁とカード会員番号9桁の計15桁からLuhnアルゴリズム(MOD-10)に基づいて算出される検査用数字です。

あくまでカード番号の入力間違いを検出するための数字なので、セキュリティとしての意味はありません。

名義人

名義人欄は所有者のフルネームがローマ字で表記されます。

通常クレジットカードではインプリンタ処理のためエンボス加工されているところ、プリペイドカードではエンボスレスが一般的です。

さらにdカード プリペイドではPREPAID MEMBER」で固定となっています。名義人を事前に決め打ちしておくことで、発行コストやオペレーションが短縮され、ともすればコンビニなどに並べることも可能というわけです。

カードのオーソリ時に名義人の確認は行っていない(行えない)ことから、こうした運用も可能ではあるのですが、加盟店によっては不正利用対策として独自に注文者氏名とカード名義人を突合しているので「PREPAID MEMBER」カードでは決済が落ちないことがあります。まあ、表記ゆれを考慮した突合なんて面倒なので、Amazonなどでは素通りしてしまう訳ですが。

有効期限

有効期限は「月/年」形式で表記されます。

プリペイドカードに有効期限などナンセンスですが、既存のクレジットカード決済システムに相乗りする上で必要となるため設定されています。

dカード プリペイドの受付が開始された2016年11月21日に申し込みを済ませた第一陣には、有効期限が「11/21」(2021年11月)のカードが届いていることが見て取れますので、有効期限はカード発行の4年後と推測できます。

カードの在庫状況によっては有効期限が前後する可能性がありますが、そもそも本稿執筆時点で多くても「11/21」「12/21」「01/22」「02/22」の4通りしかないわけですから、いくら有効期限を隠しても、カードが手元に届いたことをアピールした時点で知れたも同然です。

加えて、ポインコデザインは初回限定10万枚ですから、券面デザインから発行時期をある程度絞られるという一種の呪いが掛かっています。

セキュリティコード

さすがに架空のカード番号で決済が通ってしまうのはマズい、ということで考えられたのがセキュリティコードです。

MastercardではCVC2(Card Validation Code)と呼ばれる3桁の数字がカード裏面の署名欄に記載されています。

Wikipediaにはコード値は発行会社のみが知っており、カード番号、有効期限、サービスコードを暗号化キー(CVK = Card Verification Keyという)によって符号化、十進化した結果から算出される。とありますが、どこ情報ですかソレ。

ともかく、セキュリティコードの生成ロジックは門外不出の企業秘密なので、これを計算で導出することは一般的に不可能です。

ただ、その実態は3桁の数字であることから総当たり攻撃に弱く、複数の加盟店で少しづつ数字をずらして試行する分散型推測攻撃で多額の被害が出たという事例もあります。幸いにもMastercardブランドはオンライン決済処理が一元化されているので、この分散型推測攻撃に耐性があるようです。

まあ、そもそもセキュリティコードの入力を求めない決済サイト、Amazonなどでは素通りしてしまう訳ですが。

3Dセキュア

やはり券面情報だけで第三者が決済できてしまうのはマズい、ということで考えられたのが3Dセキュアです。

MastercardではMastercard SecureCodeと呼ばれる任意のパスワードを設定することができます。

ですが、dカード プリペイドは3Dセキュア非対応なので関係ないのでした。

dカード プリペイドの会員番号

以上を踏まえたうえで、改めて上記「dカード プリペイド利用者の喜びの声」をご覧ください。

……どうです、モザイクの向こうが透けて見えるような気がしませんか?

特筆すべきは9-11桁目(3ブロック目)に「0」が連続していること。つまり9桁目以降の番号は昇順なのではないでしょうか。ある程度ランダムだったとしても、下の桁から埋めていることは確かです。

翻って7-8桁目は「03」が多く、他には「04」「07」「09」などが使われていることから、何やらグループ番号らしさを感じます。カードのロットなのか、顧客属性に応じてなのか……。

ここで再びポインコの呪いを思い出してみましょう。先着10万枚、これに昇順で会員番号を割り当てるとしたら、最低5桁が必要となります。そのために8桁目及び12-15桁目を使っていると考えれば、辻褄が合いますね!

dカード プリペイドの帰納結果

ここまでの情報をまとめると、ポインコデザインのdカード プリペイドの帰納結果は次の通りです。

  • カード番号:5302-370h-000l-mnop
  • 名義人:PREPAID MEMBER
  • 有効期限:11/21~
  • セキュリティコード:不明

カード番号の下4桁が判明すると、ほぼ全桁が特定されてしまう危うさがよくわかりますね。

皮肉にも末尾のチェックディジット(p)のおかげで欠けている桁の組み合わせが絞られてしまいます。

次回の演繹編にて、その辺りもお見せできると思います。乞うご期待。


  1. コメントはまだありません。
  1. トラックバックはまだありません。