こんにちは!
スタッフ19号です!
セキュリティについて今までも記事を書いてきましたが、まだまだ知らないことが多く、初めて聞く言葉がたくさん出てくるのですが、今回はその中でもOTP、TOTP、HOTPについて調べていきたいと思います!
OTPとは?
OTPとは、ワンタイムパスワード(One-Time Password)のことで、一度しか使えないパスワードのことを言います。
セキュリティを強化するために、追加の認証方法として使われることが多いです。以前書いた記事の多要素認証でも、二要素目として、OTPが出てきましたね!
身近な例でいうと、銀行の取引の時や、何かのサービスに登録するときなどに、SMSにOTPが送られてきたり、専用のOTPアプリを使用したり、OTPが書かれたメールが届いたりと、みなさんも見たことがあると思います。
そして、OTPには、OTPの生成方法の違いで、TOTP、HOTPというものがあります。
TOTPとは?
TOTPとは、時間ベースのOTP(Time-based One-time Password)のことです。
時間に基づいた乱数からパスワードを生成します。
パスワードは、30秒~1分ほどで切り替わるため、不正なアクセスなどのリスクを抑えられます。
TOTPやこの後出てくるHOTPを利用するには、OTPを表示するためのトークンが必要になります。
例えば、ソフトウェアトークンでいうと、スマホのアプリのGoogle認証システム。
ハードウェアトークンでいうと、キーホルダー型やカード型の、液晶がついていて、そこにOTPが表示されるようなものなどがあります。
また、TOTPは、認証に関する標準規格を策定する国際的な団体であるOATH(initiative for Open AuTHentication)が、TOTPの共通規格である「OATH規格」を公開しています。
TOTPの規格は2011年にIETFによってRFC 6238として標準化されています。
では、次にHOTPについても調べます!
HOTPとは?
HOTPとは、Hash-based Message Authentication Code(HMAC)を用いたイベントベースのOTPです。
HOTPでは、秘密鍵とカウンタ値をHMACアルゴリズムにかけ、その結果からOTPを生成します。
カウンタ値は、事前に共有されたシークレット情報を含むメッセージとして、サーバーとクライアント間で同期されます。
また、HOTPもRFC 4226として標準化されています。
TOTPとの違いは、TOTPは時間が経つとOTPが更新されていきますが、HOTPは、ユーザが次のOTPを要求するまで利用できます。
実装のしやすさでみると、HOTPよりTOTPの方が実装がしやすいため、TOTPの方がよく利用されています。
調べてみて、少しずつ、OTPについても理解でき、詳しくなれたと思うので、これからも知識を増やしていって、覚えたことはまた発信していきたいと思います!
身近なところで使われている技術について知っていくのは、そうだったんだ!!となって楽しいですね。
では、今回のお話はここまでにしたいと思います。
TOTP、HOTPの仕組みについてもっと詳しい認証方法が知りたい人などは調べたらすぐ出てくるのでぜひ調べてみてください♪