前号: No 422 / 次号: No 424 / 一覧(note.com)へ / ブログページに戻る

メールマガジン「がんばりすぎないセキュリティ」No423 (25/09/15)

Authenticator(オーセンティケータ)という謎アプリ


GoogleやMicrosoftからAuthenticator(オーセンティケータ)と呼ばれるアプリが提供されています。
他にも、1Passwordなどにも同様の機能を持っているアプリもあります。

じゃあ、このAuthenticatorってナニするアプリ?と聞かれると、イマイチよくわからないという方が大半ではないでしょうか。

今回は、このAuthenticatorというアプリが何をしているのか?についてお話します。


1. Authenticatorが謎すぎる

Windows11では、通常のパスワード以外に、数字6ケタのPINコードでのログインが可能です。 ところが、これを行うためには、  1. Authenticatorという謎アプリをダウンロードし、  2. Windowsの画面上に表示された謎のQRコードを読み込み、  3. その謎アプリに表示される謎の6ケタの数字を入力する という3段階の作業が必要になります。 あまりに謎だらけでワケがわからないですよね。 もちろん、これには全て理由があります。 その中心は安全性を高めるためのワンタイムパスワードというシカケにあります。 Authenticatorというアプリは、多要素認証用にワイタイムパスワードとよばれる一度だけ使える6ケタの数字を生成するアプリなのです。 今回は、Authenticatorが利用する、ワンタイムパスワード(OTP)方式、中でもタイムベースドワンタイムパスワード(TOTP)方式についてお話します。

2. ワンタイムパスワード

ワンタイムパスワード(OTP)というのは、名前の通り、一度しか使えないパスワードのことを言います。 一度だけしか使えないというのが、通常のパスワードとの大きな違いです。 仮に誰かに盗み見されたりしても、既に使った後ならパスワードとして期限切れです。 なので、かなり安全な方式です。 そんなに良いものなら今のパスワードなんてやめてしまえば良さそうですが、そうはいかない事情があります。 ワンタイムパスワードは通常のパスワードの代用品ではないのです。 パスワードとワンタイムパスワードはこんな風に違っています。 パスワード  ・利用者自身が設定する。  ・「(利用者の)知識」を確認する。  ・変更しない限り永続的に使える ワンタイムパスワード  ・サービス事業者側が設定する。  ・ワンタイムパスワードをスマホなどで受信させる。   →関接的にスマホの「所有」を確認する  ・一度しか使えない。 つまり、ワンタイムパスワードはパスワードの代用品ではなく、通常のパスワードとの「合わせ技」で安全性を高める方式なのです。

3. ワンタイムパスワードの利用方法と課題

通常のパスワードと異なり、毎回値が変わるのがワンタイムパスワードです。 ということは、利用者側(ログインさせたい側)とサービス提供側(ログインさせたい側)の双方が同じワンタイムパスワードを共有できないと困ります。 シンプルな方式としては、事前に一定数(例えば100回分)のワンタイムパスワードのリストを伝えておく方式があります。 サービス利用開始時に、サービス提供元から100個分のワンタイムパスワードのリストを受け取ります。 初めてのログイン時は、1つ目のワンタイムパスワード、2回目のログイン時は2つ目のパスワードを入力するという方式です。 これはシンプルでいいのですが、いくつか問題があります。 まず、パスワードリストを失うと全くログインできなくなるという問題。失なうまでいかずとも、パスワードリストが手元にないとログインできないというのは不便です。 また、現在のログインが何回目かがわからなくなると、正しいワンタイムパスワードが選べないという問題もあります。 こういったワンタイムパスワードの面倒臭さを解決しようとして考えられたのが、Authenticatorというアプリなのです。

4. Authenticatorは何を解決したのか?

上記の2つの課題を解消するため、Authenticatorではタイムベースドワンタイムパスワード(TOTP)方式を利用しています。 これは、Authenticatorというアプリの中で、日時と秘密鍵(合言葉)を使ってワンタイムパスワードを(その場で)作る方式です。 ここで言う秘密鍵というのは、サービス提供元とAuthenticatorアプリ内で共有する情報で、冒頭で書いた「謎のQRコード」に埋め込まれています。 日時と秘密鍵を使って、ワンタイムパスワードをその場で生成すれば、もやはリストを持ち歩く必要はありません。 このワンタイムパスワードは、サービス提供側もまったく同じ手順にしておきます。 同じ、日時と秘密鍵を使うわけですから、計算結果は必ず一致します。 違っていれば、秘密鍵が違う、つまり不正なログインだ、と言えますよね。 このアイデアは、2つ目の課題、つまり、いくつ目のパスワードまで使ったかがわからなくなる課題も同時に解決します。 同じ手順で計算を行うわけですから、何回ログインしたかは関係なくなるからです。

5. 実は「謎」ではないAuthenticator

本記事の冒頭では謎だらけのように書いたAuthenticatorですが、こう考えると「謎」の部分はないことがわかります。  1. Authenticatorは謎アプリか?  →TOTPという認証方法を実現するアプリ。  2. Windowsの画面上に表示された謎のQRコード  →QRコードに、秘密鍵などが含まれる。  →秘密鍵はAuthenticator内での計算に使う。  3. その謎アプリに表示される謎の6ケタの数字を入力する  →6ケタの数時は、現在の日時と秘密鍵から計算された値。   ※計算方法はかなり複雑ですので、今回は解説していません。

6. まとめ

今回は、Authenticatorという非常にわかりにくいアプリについてお話をしました。 多要素認証(2要素認証)というと、SMSやメールで6ケタ程度の値を送ってくるSMS認証やメール認証がまだまだ主流です。 Authenticatorの採用したタイムベースドワンタイムパスワードも、多要素認証の方式のひとつですが、SMS認証やメール認証より進化した方式と言えます。 IDとパスワードが盗まれたり、不正利用されることが多くなっている現在、Authenticatorなどの多要素認証はみなさんの資産を守ってくれる頼もしい味方です。 なお、Google Authenticatorも Microsoft Authenticatorも相互に互換性があります。 どちらでも、お好きな方をインストールして大丈夫です。 積極的にご利用いただくことを強くおススメします。 今日からできること:  ・Authenticatorは安全なアプリです。   →積極的に利用して大丈夫です。  ・多要素認証は積極的に利用しましょう。 (本稿は 2025年9月に作成しました)

前号: No 422 / 次号: No 424 / 一覧(note.com)へ / ブログページに戻る