エクスコムの情報流出はシステム設計というより業務設計がだめな件

そんなわけでクレジットカード再発行しました。そうです流出です。今年の3月にアメリカ行ったときに海外旅行者向けWiFiルーターレンタル業者を探してたらエクスコムが安かったので申し込みました。まさかこんなことになろうとは、という感じでくやしかったのでブログのネタにしてみました。
 
申し込みから返却まで経緯はこんな感じでした。
 
■3月5日 申し込み

エクスコムのウェブフォームから住所氏名とともにクレジットカード情報を入力して申し込んだら、こんな確認メールが返ってきました。一部省略、伏字にしています。

 Subject: レンタルお申し込みありがとうございます
    Date: 5 Mar 2013 10:46:21 +0900
    From: エクスコムグローバル株式会社

この度は、お申込みいただき、誠にありがとうございます。
ご利用に際しては、以下の注意事項をご確認ください。
(略)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
ご利用料金合計 : 14,455円
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
(略)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
■ 支払い情報
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
クレジットカード
カード会社         : Master
カード番号         : ************9999
セキュリティコード : **9
有効期限           : 99 / 9999
カード名義人       : oooooo oooooo
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
(略)

上記の***は実際のメールでも***と伏字になっています。999の部分は実際のメールではカード番号などの一部だったところを引用時に置き換えました。
このメールを見たときに伏字とはいえセキュリティコードを返送してきたことに疑問を持つべきでした。
 
さらにメールにはこんなことも書いてあります。

■ご請求について
ご返却頂いた3営業日後に、ご請求書を発行もしくはクレジットカード決済いたします。

なんと、このメールは決済完了メールではなかったのです。
さらっと書いてあるこの文の意味は重いです。
 
■3月8日 WiFiルーター受け渡し
さて、受け渡しは出発当日に成田空港のエクスコムのカウンターでおこなうことを選択しました。本当に受け取るだけ。保証金などの支払いも発生しません。
 
■3月18日 WiFiルーター返却
予定通り帰国して成田空港の借りたときと同じカウンターに行って返却しました。このときも一式確認するくらいでお金のやりとりはありません。
 
■3月19日 領収書メール受信
返却の翌日以下のメールが届きました。

 Subject: 【領収書】エクスコムグローバル(株)(No.XXXXXXXXXXXXXX)
    Date: 19 Mar 2013 23:07:55 +0900
    From: [email protected]

平素は格別のご愛顧を賜り、心より御礼申し上げます。
領収書を添付しておりますので、ご査収頂きますようお願い致します。
(略)

 
添付されてきたPDF形式の領収書の一部がこれ。

あー、良く見たら決済日が今日(返却の翌日)になってる。つまり、申し込み日ではなく、返却後に決済する方針なんですね。これを実現するには確かにクレジットカード番号や名義、期限、セキュリティコード情報を少なくとも返却時点まで保管しておく必要がありますね。おそらく、紛失や延滞などの申し込み時点では含まれていない追加料金が発生した場合に二度手間にならず確実に徴収するためにこうしているのでしょう。
 
気持ちはわかるけどだめですね。やっちゃいけない業務設計です。システム開発者の方でも、これは満たしちゃいけない要件だと気づくべきです。
 
Amazonなどのワンクリックショッピングに少し似てますが、あれはAmazonへのログインで当該顧客を特定しているし、なにより購入者が決済タイミングを自覚しています。しかも十分信頼のおける大企業でないとなりたたない方式です。
 
レンタカーなどと違い、WiFiルーターは小さい機器であり、紛失の可能性も多く、海外へ行ってしまうため借りたまま持ち逃げされても取り立てが難しく、乗り継ぎのあわただしい時間で受け渡すようなことを考えるとカウンターでの支払い作業は減らしたい、といったような理由でこうしたのでしょうね。
 
でもだめですね。
 
じゃあ、どうすればいいのかというと、あんまり良い案を思いつきません。たとえば、申し込み時に保証金を乗せた額を提示し決済して返却時にカウンターで保証金分を現金で返すとか、前金制のホテルみたいに最初に通常料金を払って、もし追加料金が発生すれば返却時にカウンターで支払うとか。どちらも手間だけど。
そもそも海外旅行者向けWiFiレンタルという業態がオンライン決済に向いてないのかもしれないとか思ったり。
 
2013/5/31追記
おー、ブクマとかツイートで僕より詳しい人がいろいろコメントしてくれてますね。ありがとうございます。正しいやり方として、申し込み時に与信(オーソリ)だけやって利用後に売上処理をやる、あるいは決済代行会社のカード番号あずかりサービスを利用する、といった方法があるようです。後から売上確定ってシステムは少し携わったことあるけど、あれって確定/キャンセルくらいしかできないかと思ってました。まだまだ修行が足りません。
今回このエントリーを書くにあたって参考にした記事では、エクスコムの担当者も正しいやり方を知らなかったみたいです。僕と一緒に修行しよう。

【速報】イモトのWiFi・グローバルデータが11万件クレジットカード流出。セキュリティコードを含み、発表も1ヶ月後 | ライター三上洋 事務所
Q:なぜ自社サーバーに、クレジットカード番号・セキュリティコード・住所を紐付けて保存していたのか?(筆者注:この手の情報は自社サイトにおかないのが現在では一般的)
A:海外渡航者にWiFiをレンタルする業務を行なっている。決済額はお客様からの申し込み時点ではわからない。日本に帰国後に、空港のカウンターで決済する。申し込み時には決済できないので、クレジットカード番号を自社サーバーに保存していた。