TOTPとは?仕組みやメリット・デメリット、OTP/HOTPとの違いまでわかりやすく解説
さまざまなWebサービスを利用する昨今、ログインの際にはあらゆる認証の仕組みを利用する機会が増えています。そのなかでも、近年利用する機会が多い仕組みがTOTPです。私用・業務用を問わず、あらゆるサービスを安全に利用するためにも、TOTPについて理解を深めておいたほうが良いといえるでしょう。
この記事では、TOTPの概要や仕組み、メリット・デメリットと併せて、OTPやHOTPとの違いについて解説します。
■TOTPとは?
TOTPはTime-based One-Time Passwordの略称です。一度しか利用できない「ワンタイムパスワード」の一種であり、時間に基づいた乱数からパスワードを生成します。生成されるパスワードは30秒から1分ほどで切り替わるため、不正アクセスなどのリスクを抑えられるのが特徴です。
近年、クラウドサービスなどが普及したことで、私たちが利用するサービスの数は大幅に増加しました。そんななか、固定パスワードのみの認証方式では、不正アクセスやなりすましのリスクが高くなります。安全性を確保するために、ワンタイムパスワードが用いられることが増えているのです。
ワンタイムパスワードは多要素認証(MFA)として用いられることが多く、さまざまなサービスやシステムで導入が進んでいます。そして、ワンタイムパスワードの実装としてTOTPが利用される機会が増えており、誰もが一度はTOTPを利用したことがある状況になっているといえるでしょう。
TOTPを利用するための代表的なアプリとしては、Google Authenticator(Googleオーセンティケーター)というGoogle認証システムが有名です。TOTPを利用するサービスとGoogle認証システムを連携することで、アプリでワンタイムパスワードを管理できます。
その他、インターネットバンキングなどでもTOTPが利用されているなど、安全性の高い認証方式としてさまざまな場面での利用が進んでいます。
■TOTPの仕組みについて
TOTPを利用するためには、ワンタイムパスワードを表示するためのトークンが必要です。トークンは、デバイスによってソフトウェアトークンとハードウェアトークンに分けられます。
ソフトウェアトークン:スマートフォンのアプリ(Google認証システム)など
ハードウェアトークン:専用のカード、キーホルダーなど
トークンはユーザーごとの乱数発生キーを持っており、認証サーバーと連携しています。ユーザーごとの乱数と、時刻からの経過時間をかけ合わせて計算することで、ワンタイムパスワードを生成する仕組みです。トークンと認証サーバー間では変更のタイミングがシンクロしており、お互いの計算結果から導き出されるパスワードが一致するようになっています。
ソフトウェアトークンやハードウェアトークン、認証サーバーなど、ワンタイムパスワードの仕組みを自社開発ですべて用意することは大変です。それぞれのサービスが異なる仕様のTOTPの仕組みを利用していても、汎用性がないため好ましくありません。
そこで、認証に関する標準規格を策定する国際的な団体であるOATH(initiative for Open AuTHentication)は、TOTPの共通規格である「OATH規格」を公開しています。Google認証システムなどはOATH規格に準拠しているため、サービス提供側もOATH規格に対応することで独自にトークンを準備する必要がなくなります。
Google認証システムのほかにも、Microsoft AuthenticatorなどさまざまなトークンがOATH規格に準拠しています。
■TOTPとOTP、HOTPとの違いとは?
TOTPと似た言葉として、OTPやHOTPが挙げられます。TOTPをより深く理解するためにも、それぞれの違いについて見ていきましょう。
◇OTPとは
OTPはOne-Time Passwordの略称であり、ワンタイムパスワードの仕組みそのものを表す言葉です。OTPを実現する方式として、TOTPとHOTPが存在します。HOTPについては後述しますが、近年では、ワンタイムパスワードというとTOTPを指している場合が多くなっています。
◇HOTPとは?
HOTPの“H”はHash-based Message Authentication Code(HMAC)を意味しています。HOTPはHMACを用いたイベントベースのワンタイムパスワードです。TOTPでは時間経過によってワンタイムパスワードが生成されますが、HOTPではユーザーにパスワードを要求されて検証されるタイミングで生成されます。
また、TOTPでは時間が経過することで次々とワンタイムパスワードが更新されますが、HOTPで生成されたワンタイムパスワードは、ユーザーが次のワンタイムパスワードを要求して認証サーバーに検証されるまで利用できます。
一見するとHOTPのほうがユーザーの利便性が高そうですが、HOTPはサーバー側とトークン側でズレが発生しやすい点が欠点です。現在では、実装が容易なことからTOTPが利用されるケースが多くなっています。
■TOTPを利用するメリット・デメリット
TOTPは多くのメリットをもたらしますが、同時に知っておくべきデメリットも存在します。ここではTOTPのメリット・デメリットを確認しましょう。
◇メリット
TOTPを利用する最大のメリットは、セキュリティを高められることです。TOTPによってワンタイムパスワードを導入すると、IDとパスワードによる認証と組み合わせられるため、多要素認証が実現できます。
また、ワンタイムパスワードの生成にはトークンが必要になるため、仮にパスワードが知られたとしても、すぐに不正アクセスにはつながりません。
さらに、TOTPとHOTPを比較した場合、TOTPはサービス・システム側で実装しやすい点がメリットの一つです。加えて、HOTPは仕組み上ブルートフォースアタック(総当たり攻撃)の余地がありますが、TOTPであればパスワードの有効時間が短いため、安全性が高くなっています。
◇デメリット
TOTPによるワンタイムパスワードのデメリットとしては、従来の固定パスワードのみの認証に比べて入力の手間が増える点が挙げられます。
また、TOTPでは30秒から1分ほどでパスワードが更新されるため、短い時間内にパスワードを入力しなければなりません。ユーザーによっては、入力が間に合わずに不便に感じることもあるでしょう。
サービス・システムの提供側は、セキュリティ対策として複数回認証に失敗したユーザーをロックする機能をつけていることもありますが、この場合注意が必要です。
TOTPは短い間隔でパスワードが更新されることから、ユーザーが入力ミスをする可能性が高くなっています。そのため、通常よりも不本意なロックが発生する可能性が高いといえます。
このことから、TOTPで入力されるパスワードに関しては、ロックしないようにするなどの対策が必要です。
■「トラスト・ログイン」なら安全かつ便利なパスワード管理を実現!
近年では、一人の従業員が業務で複数のサービスを利用することも珍しくありません。その際の課題として、個人でパスワードを管理することが難しくなっていることが挙げられます。
ワンタイムパスワードの標準化が進み、TOTPを導入したサービスも多く登場していますが、サービスのログインごとにワンタイムパスワードを入力する手間が増え、業務の効率が低下することも考えられます。
このような課題を解決するための方法としては、一度のログインで複数のサービスへ自動的にログインする“シングルサインオン”がおすすめです。シングルサインオンはユーザーの利便性を向上させ、セキュリティを高められます。
「トラスト・ログイン」は、そんなシングルサインオンを簡単に導入するためのクラウドサービスです。トラスト・ログインを導入することで、複数のサービスを一括管理でき、一度のログインでシームレスに各サービスを利用できるようになります。
トラスト・ログインへのログイン時には、Google認証システムやMicrosoft Authenticatorなどを使ったTOTPも利用できるため安心です。99.99%の稼働率で高い安定性を誇るIDaaSであり、2022年7月度には満足度の高いシングルサインオンツールとして選ばれています。
■まとめ
TOTPはワンタイムパスワード(OTP)の一種であり、30秒から1分ほどでパスワードが切り替わる方式です。ワンタイムパスワードの方式には、TOTPのほかにもHOTPがありますが、近年ではTOTPのほうが利用される機会が多くなっています。
TOTPはサービス・システム側の導入も容易で、セキュリティを高めるために重要です。シングルサインオンと組み合わせることで、ユーザーの利便性とセキュリティの向上が期待できます。
シングルサインオンを簡単に導入できるトラスト・ログインは、TOTPにも対応しています。基本料金0円で始められるため、この機会にトラスト・ログインを導入してみてはいかがでしょうか。
この記事を書いた人
GMOグローバルサイン株式会社
トラスト・ログイン事業部
プロダクトオーナー
森 智史
国内シェアNo.1のSSL認証局GMOグローバルサインで10年間サポート部門に従事。抜群の知識量と分かり易い説明で多くのお客さまからご支持いただく。
現在は自社IDaaSのプロダクトオーナーとしてお客さまの意見を伺いながら使いやすくセキュリティの高いサービスを開発者たちと共に作成中。