📱

ワンタイムパスワードはテキストデータだから所有要素ではなくて知識要素なんじゃないの?

2023/09/15に公開

ワンタイムパスワードはいろんな解説を読むと所有要素として説明していることを見るのが多いのですが、
最後に入力するのはテキストデータなのだから所有要素ではなくて知識要素なんじゃないの? と思ったので一度じっくり考えてみました。


話の前提として多要素認証とは次の3つの要素のうちの2つ以上を組み合わることで、セキュリティの水準を向上することを言います。

・知識要素
パスワードや生年月日などの伝達可能な情報

・所有要素
ICカードやスマフォなどの物体

・生体要素
指紋や顔などの身体的な情報


所有要素に関連して「物体」とはなにかをもう少し深掘りして考えると
・世界でただ一つしか存在しない
・複製できない
という特性をもつと言えます。

上記2つの特性のため所有要素を認証で使用する場合には、
情報にアクセス出来る人はその物体を所持している人のみということを期待出来ます。


ワンタイムパスワードを発行するアプリは同時に1台しか利用出来ないようになっていることが多いです。
別端末に移行するときには旧端末からアプリの移行手続きなどをしないといけず、
IDとパスワードでログインするだけでは移行が出来ません。
これは「世界でただ一つしか存在しない」「複製できない」という状態となるような実装をすることで、「所有要素」としての条件を満たすことを狙っていると思われます。

参考: UFJ銀行の場合
https://direct.bk.mufg.jp/btm/banking/sp_change.html

機種変更されたお客さまへ
スマートフォンアプリ「三菱UFJ銀行」でワンタイムパスワードをご利用いただいている場合、ワンタイムパスワードの再登録が必要です。

またワンタイムパスワードを入力する際に制限時間と一度利用したパスワードは再利用ができません。
時間制限があることで第三者がなりすましをするための試行する機会を削減できます。
テキストデータを利用できる人をワンタイムパスワードを発行した本人しか使えない状態にすることで、ワンタイムパスワードをあたかも「物体」であるかのように扱うことを意図していると思われます。

参考: 三菱UFJモルガン・スタンレー証券の場合
https://faq.sc.mufg.jp/faq/show/919?category_id=147&site_domain=default

Eメールによるワンタイムパスワードの有効期限は、メール送信後、10分間になります。有効期限内にワンタイムパスワードを入力できない場合は、画面の記載の通り再度ワンタイムパスワードの発行をお願い致します


ただしこれらの工夫をした上でも生成したワンタイムパスワード自体は「知識要素」であるテキストデータであることには変わらないため、ワンタイムパスワードが無効化するまでは情報を盗むことが可能です。

というわけでワンタイムパスワードは実装の工夫によって一見すると「所有要素」として見えてしまうが、あくまで「知識要素」である。 というのが自分の結論です。
リアルタイム型フィッシング詐欺はこのことを利用した攻撃なのでしょう。

参考: https://www3.nhk.or.jp/news/special/jiken_kisha/kishanote/kishanote78/

利用者がIDやパスワードを偽サイトに入力するのをリアルタイムで把握し、次々に別の認証画面も表示させて個人情報を抜き取り、あっという間に不正送金してしまう手口です。

ワンタイムパスワードなどの最終的にテキストデータを入力する方法を多要素認証の文脈において「所有要素」として理解してしまうのは現在ではもはやリスクがあるなと感じました。

少なくともワンタイムパスワードを「所有要素」として理解していると、リアルタイム型フィッシング詐欺の原因の理解をすることが難しくなりますし。

これらの弱点を解決するための技術が WebAuthn/FIDO2 やら Passkeys といった新しい認証方法なのだろうと思います。

https://www.yubion.com/post/パスキー(passkeys)ってなんだろう?(前編)

あんまり使ったことがないので理解を深めようと思います。

Discussion