Yubico OTP

YubiKeyにはOTPを生成する機能があります。OTPとはワンタイムパスワードの略で、一度のみ有効なパスワードを発行できます。

次の表のようにOTPは文字数や桁数が一致しますが、出力されるパスワードがYubiKeyクリック毎に異なります。

OTPの機能を使うには、YubiKey Manager >> InterfacesでOTPにチェックを入れておく必要があります。

YubiKeyクリック回数 入力されるOTP
1回目 ccccccujcchebikulltcrbifvddlevbetcjkftkidbke
2回目 ccccccujcchebikulltcrbifvddlevbetcjkftkidbke
3回目 ccccccujcchebikulltcrbifvddlevbetcjkftkidbke

YubiKey OTP の初期設定

YubiKey Manager >> Applications >> OTPを開くと、Yubico OTPの設定画面が出てきます。初期状態では「Short Touch(Slot1) = Yubico OTP」が設定されています。

Short Touch とLong Touch

YubiKey では、ふたつの OTP を設定して操作で使い分けることができます。

  • Short Touch = ボタンをワンタップする操作
  • Long Touch = 3〜4秒ボタンを押し続ける操作

「Short Touch(Slot1)」「Long Touch(Slot2)」には、それぞれで異なるパスワードを設定できます。

  • 「Short Touch(Slot1)」… ボタンをワンタップしてOTPが自動入力される前にボタンを離します。ボタンから指を離した瞬間「Short Touch(Slot1)」で設定したOTPが自動入力されます。
  • 「Long Touch(Slot2)」… 3〜4秒程度ボタンを押す操作でOTPが入力されるまでボタンを押し続けると「Long Touch(Slot2)」で設定したOTPが自動入力されます。

Swap

「Swap」をクリックすると「Short Touch」で設定した内容と「Long Touch」で設定した内容を入れ替えることができます。

(次の表はSwapの例を示しています)

Slot 機能 入力されるOTP
Short Touch(Slot1) Yubico OTP vvrgifgifldlvjtjfddllfvjgbfgjuelihhjceufedgb
Long Touch(Slot2) OATH-HOTP 238603

↑↓「Swap」をクリック

Slot 機能 入力されるOTP
Short Touch(Slot1) OATH-HOTP 662480
Long Touch(Slot2) Yubico OTP vvrgifgifldldlulukchlgfdflvtbfrnhncjhbeunvtf

OTPの種類

上記の画面で「Short Touch」または「Long Touch」いずれかで[Configure] をクリックすると、OTPの種類を選択する「Select Credential Type」が表示されます。

<注意>
「Slot」にどのOTPを登録している場合でも、[Configure] をクリックすると「Select Credential Type」では「Yubico OTP」が選択されている画面からスタートします。現在のYubiKey状態を確認することはできません。

それぞれの機能は次の表のようになっています。

このドキュメントでは主にYubico OTP、Static passwordについて紹介します。

機能 用途
Yubico OTP Yubico独自のOTP 44文字の文字列で生成されます
Static password 自動で生成したパスワードが保存でき、繰り返し使えます
Challenge-response チャレンジレスポンス認証に使えます
OATP-HOTP OTPが6or8桁の数字で生成されます

YubiKey OTP

Yubico OTPとはYubico独自のOTPの形式で、OTPが44文字の文字列で生成されます。
初期状態では「Short Touch」で「Yubico OTP」が設定されているので、下記のような設定をせずにそのまま「Yubico OTP」を使えます。
既にSlotにOTPを登録していてSlotの情報を変更、上書きする場合は「Public ID」,「Private ID」,「Secret key」の設定をする必要があります。

YubiKey Managerでの設定

  1. 「Select Credential Type」で「Yubico OTP」を選択します
  2. 「Public ID」,「Private ID」,「Secret key」を設定します。「Use serial」,「Generate」をクリックすると自動で生成されます。アップロードに使うため、設定した「Public ID」,「Private ID」,「Secret key」をメモしておく必要があります。 設定が完了したら[Finish]をクリックします

<注意>

  • 一度使った Public ID は使えません
  • Public IDを手入力する場合は「vv」から始めて12文字の文字列にする必要があります
  1. アップロードページにアクセスします
    各項目の内容を入力したら、「Upload」をクリックします
    アップロードできなかったら、エラーの内容を確認してIDなどを修正してください
  2. アップロードが完了したら[Try it out]をクリックします
  3. YubiKeyのボタンを押して、OTPが有効なものか確認します。チェック印が表示されていればOTPは有効です

以上でYubico OTPの設定は完了です。

<補足>

  • ① YubiKey serial number…YubiKey Manager >> Homeで確認できます
  • ② Public identity、③ Private identity、④ Secret key…先ほどメモしたものを使います
  • ⑤ OTP from YubiKey…YubiKeyのボタンを押すことでOTPが自動入力されます

OneLoginの認証要素に
Yubico OTPを利用する方法

  1. ユーザーでOneLoginにログインして、ポータル右上の名前の部分からプロフィールページを開きます
  2. プロフィール > セキュリティ要素を開き、「ファクタを追加」をクリックします
  3. クリックすると、セキュリティ要素を選択する画面が表示されるので「Yubikey」をクリックします
  4. USBポートに Yubikey を挿入します。Yubikey を挿入したら、ボタンを押します。ボタンを押すと、画像のようにOTPが入力されます
  5. 正常に登録されると、「デバイスが無事登録されました」と表示されます

以上でYubicoOTPのOneLoginへの登録は完了です。

Static password

「Static password」では自動で生成したパスワードを登録しておくと、YubiKeyのボタンを押すだけで登録したパスワードが自動入力されます。

YubiKey Managerでの設定

  1. 「Select Credential Type」で「Static password」を選択します。「Generate」をクリックするとパスワードが自動で生成されます
  2. パスワードを入力します。「Generate」をクリックすると自動で生成されます。「Finish」をクリックすると「Static password」が登録されます

以上で「Static password」の設定は完了です。

Githubの新規アカウントで「Short Touch」の「Static password」を利用する方法

  1. https://github.co.jp/を開き、「Githubに登録する」をクリックします
  2. パスワードの欄にカーソルを合わせたら、YubiKeyのボタンを「Short Touch」するとパスワードが自動で入力されます
    その他項目を入力するとアカウントが作成できます
  3. Githubにサインインするとき、パスワード欄で同様にYubiKeyのボタンを「Short Touch」するとパスワードが自動で入力されます
  • 他のサービスでもパスワード欄でYubiKeyのボタンを押すことで同様に「Static password」が使えます
  • 記憶している数文字「例) xyz」の手入力と「Static password」を組み合わせると、より安全性が高くなりオススメです

以上で「Static password」を使ったパスワードの設定は完了です。

ykmanコマンド集

YubiKey Managerで行っていた設定をコマンドラインで行うことができます。

ykmanの環境設定

Mac

ターミナルを開いて、「brew install ykman」と入力するとコマンドラインツールがインストールされてコマンドラインでYubiKeyの設定を行えるようになります。

Windows

Windows環境では、YubiKey Managerをインストールすると、一緒にコマンドラインツールもインストールされています。Windowsのコマンド環境を管理者として開いて、C:\Program Files\Yubico\YubiKey Manager> にディレクトリを移動することでコマンドラインでYubiKeyの設定を行えます。

  • アプリの有効化(例 USB接続で「OTP」を有効にする)
    > ykman config usb -e OTP
    Enable OTP.
    Configure USB interface? [y/N]: y
  • アプリの無効化(例 NFC接続で「PIV」を無効にする)
  • > ykman config nfc -d PIV
    Disable PIV.
    Configure NFC interface? [y/N]: y
  • Swap
  • > ykman otp swap
    Swap the two slots of the YubiKey? [y/N]: y
    Swapping slots...
  • スロットのステータスを表示(スロットを構成していれば「programmed」、スロットを構成していなければ「empty」と表示されます)
  • > ykman otp info
    Slot 1: programmed
    Slot 2: empty
  • スロットの削除(例 スロット1の設定を削除します)
  • > ykman otp delete 1
    Do you really want to delete the configuration of slot 1? [y/N]: y
    Deleting the configuration of slot 1...
  • Yubico OTPの設定(例 スロット2にYubico OTPを設定します。Public IDは「vvcccljllgcc」に設定、private ID、secret keyは自動生成します)
  • > ykman otp yubiotp -Pvvcccljllgcc -g -G -u 2
    Using a randomly generated private ID: 5cfa64bb13a5
    Using a randomly generated secret key: 4ffcd84907a5bd1a727e5bc46ef5a362
    Upload to YubiCloud initiated successfully.
    Program an OTP credential in slot 2? [y/N]: y
    Opening upload form in browser: https://upload.yubico.com/proceed/3908ebe0-2d00-435c-a836-f9baa18e90b7

    「Program an OTP credential in slot 2? [y/N]:」で「y」と入力すると自動でアップロードページにアクセスできます。
    YubiKey Managerで設定する場合と異なり、IDなどが自動で入力されます。「OTP from YubiKey」の欄でYubiKeyのボタンを押してOTPを出したら、「Upload」をクリックします。

    その後はYubiKey Managerでの設定と同様に画面の指示に従えば、アップロードができます。

  • チャレンジレスポンスの設定(例 シークレットキーを自動生成して、スロット1にチャレンジレスポンスを設定)
  • > ykman otp chalresp -g 1
    Using a randomly generated key: 77a4c088bbaf832ce792da8b9e3e1f46bb26f15c
    Program a challenge-response credential in slot 1? [y/N]: y
  • チャレンジレスポンスの実行(例 現在の時刻をチャレンジとしてTOTPコードを生成)
  • > ykman otp calculate -T 2
    523964
  • OATP-HOTPの設定(例 生成されるコードを8桁、セキュリティーキーを「chchchchchch」として、スロット1にOATP-HOTP
    を設定)
  • > ykman otp hotp -d 8 1 chchchchchch
    Program a HOTP credential in slot 1? [y/N]: y

    「-d 8」を入れなければ生成されるコードは6桁です。

  • Static passwordの設定(例 ランダムな38文字のStatic passwordをスロット1にプログラムします)
  • > ykman otp static -g 1 --length 38
    Slot 1 is already configured. Overwrite configuration? [y/N]: y

その他のコマンドについてはこちらをご覧ください