ITエンジニアのための勉強会・イベントレポート情報メディア

「7Pay」は
trend

「7Pay」は"二段階認証さえ導入しておけば良かった"!? エンジニアなら考えたい "セキュリティ"と"ユーザー体験"の一筋縄ではいかない関係とは?

2019.08.22

 
  • このエントリーをはてなブックマークに追加

「7Pay」の”ずさんな仕組み”と
指摘されているのは何?

大きな話題となったコンビニ「セブン-イレブン」のスマートフォン決済「7Pay」の事故。セキュリティ対策がずさんだったと指摘され、結果として事故を起こしているのだから、セブン&アイ側には弁解の余地もない。しかし、「二段階認証さえしておけば防げた」という報道については、エンジニアはより深く考える必要がある。そんな単純な話ではないのだ。

「7Pay」のずさんな仕組みとして指摘されているのは、パスワードリセットの方法とSNSなどとの外部ID連携の脆弱性だ。

「7Pay」のアカウント「7iD」(実際はオムニ7会員アカウントと共用している)のパスワードを忘れた場合、「アカウント」(ほとんどがメールアドレス)、「生年月日」「電話番号」の3つを入力することで、パスワードをリセットできる。ところが、「7Pay」から7iDを作るときは、生年月日は必須入力項目ではなく、未設定の場合、自動的に2019年1月1日に設定されてしまう。

つまり、特定のメールアドレスに対して、誕生日は2019年1月1日のまま、電話番号を0000-0000から9999-9999までの順番で入力していけば、パスワードのリセットができてしまうことになる。さらに、リセット確認のメールを別のメールアドレスに送信することもできるようになっていた。つまり、本人も気がつかないうちにパスワードをリセットし、アカウントを乗っ取ることが可能になっていた。

もうひとつの外部ID連携の脆弱性についても、複数の専門家が技術的詳細をつけて指摘している。

しかし、8月1日の「7Payを9月末で終了する」と宣言した記者会見では、世間で言われているこの2つの脆弱性を利用した不正利用の事例は、その時点で見つかっていないと説明された。セブン&アイでは、「他のサイトから漏洩したアカウント情報に基づいたリスト型攻撃の可能性が強い」と認識しているという。

フィッシングサイトに騙されて自分でアカウント情報を入力してしまう、あるいは他のサイトが攻撃されて流出するなどしたアカウント情報は、ダークウェブなどで売買をされている。これは「7Pay」のアカウント情報ではないが、多くの人が他のアカウントと「7Pay」アカウントを同じアカウント名、パスワードにしている。これを利用して、「7Pay」に対して、アカウントとパスワードの組み合わせを大量に入力していく。使い回しをしているユーザーがいれば、アカウントに侵入ができるというものだ。ユーザーがパスワードの使い回しをしているという脆弱性を利用した攻撃手法だ。

二段階認証をいれておけば、
防ぐことができたか、
すぐに対処できたのは事実

結局、「7Pay」事故の真の原因はいまだにわからないままだが、報道されているように、二段階認証をいれておけば、防ぐことができたか、あるいは事故が起きてもすぐに発覚して被害が小さいうちに対処することができた。

一般的な二段階認証では、アカウントの作成、決済口座との連携などの重要な操作、設定をするときは、登録した携帯電話番号にSMSで認証コードを送り、この認証コードを入力しないと、操作を先に進めることができない。

この二段階認証を導入しておけば、攻撃者がパスワードリセットなどを行うと、本人のスマートフォンに身に覚えのないSMSがいくことになり不審に思うし、攻撃者のスマートフォンにはSMSが届かないので検証コードをすることができないということになる。

“セキュリティ”と”ユーザー体験”の
関係とは!?

だから、二段階認証を導入しておけばよかったということになっているのだが、ぜひ読者には”セキュリティ”と”ユーザー体験”の関係を考えていただきたい。

8月1日の記者会見で、「7Pay」の奥田取締役営業部長はこう答えている。「開発段階では二段階認証を想定していたが、使用感を考慮して入り口を低くした」「決済が利用されるのはセブン-イレブンの店舗のみであり、不正が起きても、モニタリングによって事後的に対処できると考えていた」。

つまり、ユーザー体験を重視して、二段階認証を採用しないことにしたのだ。この発想は理解できる。「7Pay」は、リテラシーの高いネットユーザーだけが使うものではない。むしろ、普段セブン-イレブンで買い物をするごくごく普通のスマホユーザーを対象としている。このようなサービスで、セキュリティの敷居を高くすると、途中で設定が面倒になって離脱をしてしまう人が増加する。さらに、コールセンターへの問い合わせが殺到し、サポート業務も滞ることになる。特に「7Pay」開始初日にこういった事態は避けたかっただろう。

実際、それに類した事態が起きた。不正利用のリスクをゼロにするため、「7Pay」は機能を停止し、7月30日に全ユーザーのパスワードを強制リセットした。そして、全ユーザーに対して、より複雑なパスワードの再設定をするように通知をした。すると、再設定をしたユーザーの間で、「7Payの残高が0円になってしまった」「クーポンがすべて消えてしまった」という声が相次いだ。

これはそのユーザーがパスワードを再設定したのではなく、以前のアカウントとは別にまったく新しいアカウントを作ってしまったことが原因だ。そのようなユーザーのリテラシーの低さを笑うわけにはいかない。多くの人は「7Pay」のためだけに生きているわけではないので、「7Pay」からの通知もそんなに注意深くは読まないし、そもそも「新規アカウントの作成」「新規パスワードの再設定」は取り違えしやすい。間違えて混乱をする人が一定数出るのは仕方のないことで、インターネットビジネスはそれをも想定してサービスを運営していかなければならない。

もし、「7Pay」がサービス当初から二段階認証を導入していたら、一部で混乱が起き、ユーザー数は伸び悩むことになっていた可能性もある。



(セブン-イレブンアプリの中でも、パスワード再設定後に残高やクーポンが消えたという問題に対するFAQが掲載されている)



(残高やクーポンが消えてしまったのは、パスワードを再設定するのではなく、誤って別に新しく7iDを作ってしまったことが原因だが、冒頭部の説明を初見で読んで、意味がわかる人は少ないと思う。また、2つのボタン「7iDの照会」で、「オムニ7会員」と「アプリで会員登録された方」の2つのボタンに分けられているのもものすごく混乱しやすい。しかも、下にスクロールすると「外部IDでアプリをご利用のお客様の再設定」という謎のボタンが登場してくる。「7Pay」のアカウントは、オムニ7経由、アプリ経由、SNSなどの外部IDを使った3種類の登録方法が混在をしている。ユーザーが混乱をするのは当然のことかもしれない)

ECサイトでは大きな課題になっている
”セキュリティ”と”ユーザー体験”の問題

このような”セキュリティ”と”ユーザー体験”の問題は、ECサイトでは大きな課題になっている。ECサイトで商品を購入するとき、クレジットカードで決済をすることが多いと思うが、この時、セキュリティコードの入力を省いているECサイトがけっこうな数あることに気づかれているだろうか。

セキュリティコードとは、クレジットカード背面に印刷されている3桁または4桁の数字のことで、ネット決済をする時は、パスワード代りになる。正しいセキュリティコードを入力することで、間違いなく正しいカードであるということを確認しているのだ。

このセキュリティコードの入力を省くということは、カード番号、氏名、有効期限の3つだけで決済ができてしまうことになり、チラ見して覚えてしまえば、他人のカードでも買い物ができてしまうことになる。

ECサイトでは、セキュリティコードの入力をさせることで、離脱率が上がることを懸念している。多くのECサイトで、カード情報は保存され、購入ページに自動的に表示されるが、カード業界とのルールでセキュリティコードの保存は許されていない。そのため、セキュリティコードの入力をさせる仕様にしておくと、ユーザーは「あれ? カードはどこにしまったかな?」となり、結局面倒になって買い物をやめて、離脱してしまう人が何%か出てくることになる。

もちろん、セキュリティコードなしで決済をするのは、セキュリティ的には危うい方法だ。多くのECサイトでは、身分確認が甘くても契約できる賃貸住宅の住所リストや、次々と住所を変える購入者、換金性の高い商品の大量購入などの監視を自動化しており、このような不審な購入については、電話確認をするなどの対策を行っている。

このようなECサイトでは、離脱率が上がることによる機会損失と、セキュリティコード入力を省くことによる不正利用の想定被害額を算出して、どちらが利益を最大化できるかを考えて、セキュリティコードを入力させる、させないかを判断している。

経験の浅いセキュリティエンジニアは、セキュリティ度を上げる提案ばかりをしてしまいがちだ。しかし、企業が目指しているのは利益の最大化であり、セキュリティを厳しくして、離脱率が上がるのでは意味がないと考える。セキュリティサイドとビジネスサイドで対立するポイントでもある。

優れたセキュリティエンジニアが
考えるべきこととは!?

優れたセキュリティエンジニアが考えるべきことは、ユーザー体験を損なうことなく、セキュリティを確保することだ。そのためには、セブン&アイの「入り口を低くして、事後的に対処する」という発想自体は決して非難できない(結果的には誤った判断だったが)。

スマートフォンの指紋認証や顔認証は、ユーザー体験を向上させつつ高いセキュリティが確保できるテクノロジーだ。しかし、一部のユーザーしか慣れていない、機種変更をした場合に引き継ぎが面倒になるなどの課題もある。このような課題をどうやって解決をして、ビジネスの目的である利益の最大化に寄与するかを考えるのがセキュリティエンジニアの仕事だ。決して、知識を振り回して、多重セキュリティを提案することではない。

キャッシュレス決済が普及をしていくとともに、こういったセキュリティ問題はますますクローズアップをされていくことになる。高い視野からセキュリティを見ることができるセキュリティエンジニアがますます求められていくことになる。

原稿:牧野武文(まきの・たけふみ)

テクノロジーと生活の関係を考えるITジャーナリスト。著書に「Macの知恵の実」「ゼロからわかるインドの数学」「Googleの正体」「論語なう」「街角スローガンから見た中国人民の常識」「レトロハッカーズ」「横井軍平伝」など。

「7Pay」は

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW