Published on

クレジットカード番号の検証

Authors
  • avatar
    Name
    丸山 竜輝
    Twitter
    @5yuim

はじめに

普段目にしているクレジットカードの番号ですがこれにも様々なルールやセキュリティ対策がなされています。今回はそれについて説明していきます。

番号の概要

まずクレジットカード番号がどのように構成されているかですがクレジットカード番号はISO/IEC 7812にて策定されており、6桁のBIN(Bank Identification Number, 銀行識別番号)もしくはIIN(Issuer Identification Number, 発行者識別番号)+残りの番号はイシュアによって決定されます。

BIN、IINについて

BIN、IINもまた複数要素で構成されており最初の1桁はMII(Major industry identifier, 主要産業識別子)と呼ばれており、カードを使用する業界を示し対応表を下記のとおりです。

MII値産業
0ISO予約値
1航空
2航空 / その他将来発生する産業
3旅行・娯楽/銀行・金融
4銀行・金融
5銀行・金融
6運送 / 銀行・金融
7石油 / その他将来発生する産業
8ヘルスケア / 医療 / 通信 / その他将来発生する産業
9国毎に割り当て可能

また以下は主な過去に存在していた若しくは現在存在するBINのリストです。

カードの種別プレフィックス番号長検証
American Express34, 3715Luhnアルゴリズム
中国銀聯 (China UnionPay)622126-622925, 624-626, 6282-628816なし
Diners Club International300-303574, 3095, 36, 38-3914Luhnアルゴリズム
Discover Card60110, 60112-60114, 601174-601179, 601186-601199, 644-649, 6516Luhnアルゴリズム
JCB3528-358916Luhnアルゴリズム
MasterCard510000 - 559999, 222100 - 27209916Luhnアルゴリズム
UATP115不明
Visa413, 16Luhnアルゴリズム

チェックディジットに関して

クレジットカード番号にはLuhnアルゴリズムが使用されており、主な目的として連番での発行をさせず、入力ミス等で他人のカードが決済されるのを防ぐためだと推測される。但しこれは計算可能な為悪意のある決済を防ぐ為のものではない。

セキュリティ面での検証

以上のルールを踏まえ当方が検証した内容を記述する。

検証概要

近年ではApple Pay等でクレジットカード番号の下4桁が管理用に表示され尚且つApple Payの場合クレジットカードデザインからある程度イシュアが特定可能な為そこからクレジットカード番号が推測できないか検証してみた。

BIN,IINの特定

まずカードデザインよりBINを特定してみる、BIN等は公にはされていないが以下サイト等で調べることができるがカード会社によっては途方もないBINの登録がありこの時点でカード番号を特定できるイシュアーが限られてくるが続きはBINが特定されたものとして進めていくBIN search

カード番号の特定

BINが特定されたものとして話を進めていきます。この時点で6桁のBIN+下4桁が判明していることになります。ここで全てのLuhnアルゴリズムに当てはまる数字を算出してみました(今回は16桁で)下記サイトでチェックしましたがゆうに100件を超えており特定が不可能でした。credit card number generator

まとめ

以上の通りスクリーンショットやレシート画像等から番号特定は現実的にはほぼ不可能という結果になりましたまた近年ではセキュリティコードの必須化や3D secure導入等が進んでおり仮に割れたところで現実的には決済できる加盟店は存在しないでしょう。