2020年に銀行口座からキャッシュレス決済事業者への不正出金が一斉に判明した問題で、銀行や決済サービス事業者がセキュリティ対策を強化した。その中で、頻繁に話題に出てくるのが「2要素認証」と「2段階認証」、そして「eKYC」だ。eKYCについては、携帯キャリアでもオンライン契約で導入を進めつつある。不正へのセキュリティ対策として、万全ではないし唯一の解でもないが、各社が採用を進めるこれらの技術について、一通りまとめてみたい。

●オンラインで身元確認を行う「eKYC」

 スマホ決済不正利用の問題は、大きく言えば「本人確認の問題」だ。この本人確認とは、「その人が確かにその人である」という身元確認と、「アクセスした人が確かにその人である」という当人認証という2つの意味を持っている。この2つは意味が異なり、それぞれのシーンにおいては確かに本人確認であるが、区別が必要だ。

 身元確認とは、文字通りその人の身元を確認するもの。その人が確実に本人であることを明らかにするために、一般的には公的な身分証明書と本人を照合することで確認される。写真付き身分証明書としては運転免許証やマイナンバーカードが代表例だ。その身分証明書と本人が一致して、住所や氏名、電話番号などを登録するのが身元確認だ。法的には、銀行口座の開設には本来厳密な身元確認があるし、音声通話を利用する携帯電話の契約にも身元確認が必要だ。

 こうした身元確認は「KYC(Know Your Customer)」という。身分証明書を使った身元確認では、通常は対面した状態で人の目で確認するが、これをスマートフォンのカメラなどを使って遠隔で行うのがeKYCだ。「electronic(電磁的な)」という言葉が付け加えられたわけだ。

 eKYCは、基本的には顔写真付き身分証明書をスマートフォンのカメラで撮影。角度を変えて撮ることで、きちんと厚みがあって偽造ではないことを示し、さらに本人の顔を自撮りする。こちらも角度を変えて写真を張り付けるなどした偽物ではないことを示し、さらにランダムな指示に従って頭を動かすなど、過去の映像ではないことを証明する手法も組み込まれている。これを送信することで身元確認を行う。

 顔写真付き身分証明書にICチップがあれば、それを読み込んで送信するといった、幾つか手法の違いはあるが、機械的なチェックとともに最終的に人間が目で確認するのは変わらない。

 顔写真のない身分証明書でも、郵送などを組み合わせることで身元確認とする方法もある。銀行口座の開設でもこうした手法が法的に認められているが、ゆうちょ銀行が偽造証明書で口座を開設してしまった例もある。その点、eKYCは顔写真付き身分証明書限定だ。

 eKYCのメリットは、現地に行かずに、いつでも身元確認できるようになることだ。人間のチェックが入るため即時対応できるわけではないが、深夜でもデータを送信しておくことはできる。時間と場所に制約されないという点は大きなメリットといえる。

●当人認証で使われるIDとパスワード

 当人認証とは今回の場合、「サイトにログインしようとしているのが確かにそのユーザーである」ことを確認するというものだ。他人が勝手にアクセスしないように制限し、本人だけがアクセスできるよう認証を行う。

 一般的に用いられるのがID・パスワード認証だ。会員登録時に設定した固有のIDとパスワードを使ってログインする。少なくともパスワードは秘密情報なので、「当人しか知り得ない情報」として、当人であると認証する。

 パスワード認証は簡便なため広く使われているが、パスワードを他人が知っていれば、誰でも認証を突破してログインできてしまう。簡単なものだと推測も可能なので、「一定以上の長さと複雑さを備えたパスワードであり、他のサイトで使い回しをせず、漏えいしていない」といったことが前提だ。ユーザー側だけでなく、ログインされるサイト側も、「ブルートフォース(総当たり攻撃)などパスワードを窃取する攻撃や脆弱(ぜいじゃく)性への対策をしている」ことなどが必要だ。

 必ずしもセキュリティレベルが高くないため、これにさまざまな対策を組み合わせるのが一般的。前述の攻撃対策に加え、IPアドレスや時間帯など、さまざまな情報を組み合わせてログイン試行を確認して追加認証をする「リスクベース認証」などがある。

●「2要素認証」と「2段階認証」の違いは?

 2段階認証もリスクベース認証の1つだ。これは、認証を2段階にすることでセキュリティレベルを高めるというもの。よく使われるのが、ID・パスワードに加えて、登録した携帯番号にSMSを送信して、そこに記載された1回だけ有効な数字を入力させる、というものだ。

 こうした一定時間、1回だけ有効の数字などを使う仕組みを「ワンタイムパスワード(OTP)」という。スマートフォンアプリでOTPを表示したり、専用デバイスを使ったりして入力させる仕組みもよく使われる。

 一方で2要素認証は、パスワードや暗証番号などの「記憶認証」、乱数表やトークンなどの「所持認証」、指紋や虹彩などの「生体認証」のうち、2つを組み合わせた認証のこと。

 2要素認証の代表格がキャッシュカードとATMだ。ATMでお金を下ろす際に、「当人しか持っていないキャッシュカード(所持認証)」と「当人しか知り得ない暗証番号(記憶認証)」によってお金を引き出せる。暗証番号が4桁で成立するのは、物理カードであるキャッシュカードが本人の手元にあるという前提がある上に、直接ATMの前に行かなければいけないからだ。そのため、カードが盗まれれば4桁の暗証番号は脆弱だし(とはいえ総当たりはできない)、オンラインの認証でカードを使わずに暗証番号だけですませようとすると簡単に突破されてしまう。

 先に説明したID・パスワードとSMSを使った2段階認証は、ID・パスワードによる記憶認証、SMSの送付先である携帯電話による所持認証を行っているので、2要素認証にもなる。一方で、事前に設定した質問に答えることで本人確認をする「秘密の質問」を併用する場合は、どちらも記憶認証に該当するため、2段階認証ではあるが、2要素認証にはならない。

 身元確認をした上で携帯番号を登録したサイトが、認証時にその番号にSMSを送信する場合、その番号は本人のものである確度が高く、SMSを受信できる端末を持っているのは当人と判断できる。パスワードを突破されても、SMSでOTPを送信すれば、当人かどうかがより確実に判断できる、というわけだ。

 SMS認証で大事なのは「身元確認時に登録した電話番号」という点だ。その場合、SMS認証は本人確認(当人認証)の1要素として利用できる。しかし、身元を隠してSMSが受信できる携帯番号の取得自体は可能であり、他人が勝手に携帯番号を登録してしまえば、SMSを送信しても当人認証にはならない。

 2要素認証かつ2段階認証が本人確認として最もセキュリティレベルの高い手法というわけではない。ドコモ口座の不正出金に端を発した事件の拡大を受けて、銀行、キャッシュレス決済事業者は早期に対策を打ち出す必要があり、よく使われている2段階・2要素認証を採用したのだろう。

 セキュリティレベルやユーザー体験として、これらの仕組みは決定版とはいえないので、今後さらに安全で使いやすいログイン認証の手段が採用されることを期待したい。