セゾンコネクトにおける二要素認証について
想定している読み手:CS営業担当者、クライアント側ビジネスサイド
二要素認証(以下2FA)とは、「本人だけが知っている何か」「本人だけが所有している何か」「本人自身の特身体的特徴」のうち、2つの要素を組み合わせて本人を確認する仕組みです。
セゾンコネクトでは利用者本人がセゾンNetアンサーのIDとパスワードを「知っている」ことと、カード発行時に登録しているメールアドレスないしは電話番号を「所有していること」をワンタイムパスコードを送信することによって間接的に確認し、しかる後に決済・ポイント利用などのセキュリティーリスクの高いアクションを許可する仕組みを設けています。
ID・パスワードによる認証の弱点と2FAの必要性
想定している読み手:CS営業担当者、クライアント側ビジネスサイド
一般的にWebサービスのID・パスワードは、エンドユーザによって他サイトと「使い回し」(同じID・パスワードの文字列を使って別にサイトに登録)されるケースが多く、IDを使い回しされたサイトの中で、最もセキュリティ水準が低いサイトからIDとパスワードがセットで流出します。
このときセゾンNetアンサーのID・パスワードも流出元の他サイトと同じ文字列が登録されていた場合、実質的にNetアンサーのID・パスワードが流出したのと同じと評価できます。
よってNetアンサーのIDとパスワードについては、既に悪意を持った人物に流出済みであると考えた方が自然です。(この流出したID・パスワードをリスト化し、スクリプトに読み込ませることにより別のサービスへのログインを連続的に試みる攻撃をリストアタックといいます。)
このような悪意を持った人物が本人に成りすまして当社サービスにログインし、決済やポイント交換を実行されてしまうと直接的・間接的な金銭的損害やレピュテーションリスクが発生し得るため、セゾンのWebサービスでこのようなアクションを伴うサービスについてはID・パスワードだけで認証するのではなく、2FAを標準的に実施しています。
そのぶん顧客体験は劣化します。
2FAの手法には簡便でない順に、来店いただく、出向く、郵送する、OTPトークンを持たせる、電話で本人確認する、メールを送る、SMSを送るなどのやり方がありますが、SMS送信が最も簡便(=顧客体験の劣化が小さい)なため、セゾンコネクトではこれを利用しています。
上記のように2FAは、たとえIDとパスワードが流出していたとしても、お客様の情報を守るために必要な仕組みです。
プログラム実装上の注意事項
想定している読み手:クライアント側エンジニア
クライアント側でアクセストークン取得後に2FAを実行します。
- 2FA完了以後の24時間以内のユーザーを2FA済状態として扱います。
- この間、TEB001でauth_levelを取得すると2が返ります。通常は1が返ります。
- 2FAを実施するとアクセストークンが2FA済状態に遷移させます。
- たとえ24時間以内であっても、アクセストークンが無効になると同時に2FA済状態も無効化されます。
2FAの実施タイミング
クライアント側での2FA実施のタイミングは概ね以下の2種類となります。(クライアント側の要件に依存します)
-
アクセストークン取得時に2FAを実施する
サブスクリプションサービスの初回登録時など
-
決済やポイント交換の直前に2FAを実施する
物販の決済時など
GMOPG、Veritransの決済トークンは一度取得すれば永続的に利用できる場合があるため、物販系サービスでも初回登録時にセゾンコネクトの2FAを行い、決済代行会社の決済トークンを取得してしまった方がいいケースもありえます。