TOTPの仕組みや安全性について考えてみた!

先日、ソーシャルネットワークサービス(SNS)「Twitter」上で「セキュリティ」設定についての話題がありました。その際、某氏のツイートに引用の形でワンタイムパスワード(今回はTOTPとして解説する)設定についてアプリの紹介画像とともに簡単に解説したところ、想像以上にいいね!やリツイートを頂きました。

筆者としては些細なつぶやき程度だったのですが、その反響を見て「なるほど、人々はこういった設定を知らなかったか、あるいは知っていても手順がよく分からず設定していなかったり、困っていたのかもしれない」という気付きを得ました。

TOTPとはいわゆる「2段階認証方式」の中でも非常に強固で安全性の高いシステムです。人によってはSMS認証やメール認証よりも安全であると言い切るほどですが、その利用と認知は意外と進んでいません。

感性の原点からテクノロジーの特異点を俯瞰する連載コラム「Arcaic Singularity」。今回はTOTPの仕組みや安全性、利用範囲が拡大している現状などについて解説します。

as-274-002
TwitterでTOTP、使ってますか?


■TOTPってなんだ?
はじめに、TOTPについて簡単におさらいしておきましょう。

TOTPとは「Tme-based One-Time Password」の略称であり、一定時間内だけ有効となるパスワード生成システム(およびそこで生成されたパスワード)を指します。

ワンタイムパスワードには他にも1回だけ利用可能なハッシュコードを発行する「HMAC-based One-Time Password」(HMACはHash-based Message Authentication Codeの略)などもありますが、こちらはあまり一般的ではありません。

そのため、ワンタイムパスワードあるいは日本語の略称としての「ワンパス」などと表現する場合のほとんどはTOTPを指しているものと考えて問題はありません。

TOTPは前述のように一定時間(多くの場合は30秒~1分間)だけ有効なパスワードを発行するため、仮に悪意ある第三者がウェブサイトなどのIDを盗み出したとしても、そのIDと紐付けされたTOTP発行アプリや物理的な暗号発行機(トークン)を所持していない限り、暗号の解読や特定が時間的に間に合わず、外部からの侵入が非常に困難となるのです。

as-274-003
TOTPであれば、このように公開してしまったところで何の問題もない。もはや無効なパスワードだからだ


■スマホ決済の普及とTOTP普及の「必然」
TOTPが広く普及し始めた背景には、スマートフォン(スマホ)の普及と昨今のセキュリティー事故の経験が教訓となっています。

TOTPは「紐付けされたトークンで時限式パスワードを発行するだけ」という簡便な仕組みであるため、以前はキーホルダータイプの専用のトークンが用いられてきました。

しかし、これには「トークン自体を盗まれて利用される」という致命的な弱点があります。また、物理的なトークンであるために生産コストがそれなりに掛かり、1個1000円~3000円程度と購入費用がかかるのが問題でした。

さらに、物理トークンは電池駆動であることが多く、しかも電池交換できない場合がほとんどです。そのため利用可能期間が5~10年程度に設定されている場合が多く(利用頻度によってはもっと長く使える場合はある)、定期的な交換が必要になります。

これらのことから、金融機関などでも2000年代初頭から導入され始めていたにも関わらず、なかなか一般への普及が進まなかったのです。

as-274-004
オンラインゲームでは20年以上も前からTOTPトークンが利用されてきた


しかし時代が進み、1人1台スマホを持つようになった現在、スマホ用のトークンアプリの登場によって状況が大きく変化し始めました。

まず、盗難による悪用のリスクが大きく低下しました。スマホを盗まれたら終わりじゃないか、と思う方もいるかも知れませんが、スマホにはPINコードや生体認証によるロックが掛けられるため、万が一スマホを盗まれたとしても、トークンアプリどころかスマホ自体を利用できません(スマホのロック解除コードまで盗まれれば終わりだが)。

また、トークンアプリは物理的な生産コストがほとんど掛からないため、基本的に無料で提供されています。多くは金融機関や利用しているオンラインサービスの運営企業が提供していますが、Googleの「Google Authenticator」やMicrosoftの「Microsoft Authenticator」のように、提携企業のトークンとして一括管理・利用が可能なトークンアプリもあります。

スマホを買い替えるたびにトークンアプリを引き継げるため、利用可能期間も事実上無限です(引き継ぎ手順が必要な場合もあり)。

as-274-005
MicrosoftやGoogleのトークンアプリの場合、それぞれの個人アカウントと紐付けされるため個人認証という点でも信頼性が高い


そして何より、ここ数年頻発していた電子決済やポイントシステムに関連した詐欺事件や事故などが大きく関わっています。

オンラインショッピングだけではなく実店舗でも電子マネー決済などが普及し始めると、それらを悪用した詐欺や、事前に盗み出したIDややパスワードを利用した犯罪が多発しました。

原因やシステム上の弱点は事案によって様々ですが、確実に言えることは「TOTPを導入していれば防げた事案は数多くあった」という点です。

そもそも、個人を特定するIDだけではなくパスワードまでが固定された文字列で利用され、しかも殆どの場合IDとともに保管されている事自体がリスクそのものです。

だからこそ多くの企業や専門家は、定期的なパスワードの変更やできるだけ長いパスワードの利用を訴え、さらに意味のない文字の羅列によるパスワードを推奨してきたわけですが、TOTPであればそういった面倒や手間は一切必要ありません。

これらのことから、人々がスマホで数多くのショッピングや金融サービスを利用するようになった今、トークンアプリの導入と普及もまた必然であり必須だったと言えるでしょう。

as-274-006
スマホ自体が生体認証などでロックされ、さらにアプリでも生体認証やTOTPでロックされる。セキュリティー的に非常に強固でありながら利用者が煩わしさを感じることはほぼない


■TOTPが真の利便性と安全性へのカギとなる
冒頭で紹介したTwitterのTOTP導入についても、導入の仕方が分からない、という声を散見しました。

筆者のように日頃から金融機関やオンラインゲームでTOTPを利用している者としては非常に簡単な仕組みと導入方法だと思っていますが、始めて触れる人々にとってはこれでもまだまだ敷居の高さを感じるところなのかもしれません。

以前、当連載コラムにて2段階・2要素認証システムについて解説した際にもご紹介しましたが、企業によってはユーザーに手間や負担をかけないために、企業側でワンタイムパスワードを発行してSMSやメールで送信するという手法を用いているところもあることをお伝えしました。

しかしながら、この方法は通信が使えない環境では利用できない点や、スマホのSIM情報を乗っ取ってしまう「SIMハイジャック」と呼ばれるハッキング手法に弱いという欠点もあります。

リスクやコスト、手間などをすべて考慮した場合、どの方法が最善とは言い切れませんが、少なくとも平文でパスワードを保管するよりは、いずれの方法も圧倒的に安全だと言えるでしょう。

【過去記事】秋吉 健のArcaic Singularity:転ばぬ先の認証システム。2段階・2要素認証などのオンラインサービスで利用される認証方式を分かりやすく解説【コラム】


もしも、みなさんが利用しているオンラインサービスや金融機関などでTOTPを採用しているものがあるなら、早めに導入することをオススメします。

アカウントが乗っ取られたり、お金が盗み出されてからでは遅いのですから。

as-274-007
これからの時代、カギは持ち歩くものではなく使うときだけ作るものである


記事執筆:秋吉 健


■関連リンク
エスマックス(S-MAX)
エスマックス(S-MAX) smaxjp on Twitter
S-MAX - Facebookページ
連載「秋吉 健のArcaic Singularity」記事一覧 - S-MAX