YubiKeyでTOTP

  • 3
    いいね
  • 4
    コメント
この記事は最終更新日から1年以上が経過しています。

ハードウェアが時計に該当するものを持たないため、YubiKey単体でTOTPに基づいた入力を得ることは出来ない。ただ、OSから時間を受け取ることでTOTPも一応発行できる。言い換えるとGoogle Authenticatorアプリ等なしにGoogle2段階認証ができる。

ただし、YubiKeyハードウェアについているボタンからの操作でTOTPを生成することは出来るわけではない。クライアントソフトをOS上で起動して時刻をそのソフトから送信することで数値を得る。ユーザはクライアントソフト経由でトークンを得るわけで、HOTPの時と比べると利便性は大分落ちると思う。

Windows向けには、公式のクライアントソフトが存在し、システムに常駐させられる。(Personalization Tool等と異なり)、このツール自体は他のプラットフォームで直接動作するものではない。
https://www.yubico.com/applications/internet-services/gmail/

Mac上のVirtual BoxでWindows 8.1を起動した状態でVM内で使うことができることを確認した。値は別途QRコード経由でGoogle Authenticatorにインストールしたアプリが生成するものと同じため、正しく動作しているように見える。

スクリーンショット 2015-01-12 19.38.11.png

スクリーンショット 2015-01-12 19.42.23.png

スクリーンショット 2015-01-12 19.44.20.png

常駐ソフトではないが、Yubico自らPythonスクリプトを公開しているため、Linux等でもこれに似たフローを行うことは出来る。

https://github.com/Yubico/python-yubico

yubico-cやyubikey-personalizationといったプロジェクト(もしくは関連パッケージ)を利用することで別途初期化する必要はあるだろう。Windows版の常駐クライアントはTOTPフローのための初期化ツールも内蔵しており(スクリーンショット参照)、YubiKey PersonalizationのGUIクライアントを必要としない。