35
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Yubikeyとは?もろもろ検証してみました話

Last updated at Posted at 2019-12-09

エンタメ系企業の社内のいろいろを担当しているakibinです。

2019年10月ごろにYubikeyを購入して検証した内容を綴っていきます。

Yubikey検証の目的

OSログインとGoogleログイン時の2段階認証目をYubikeyでやりたい!

また、検証の目的はログイン簡素化ではなく、従来のID・パスワードログイン後の2段階認証目をYubikeyを使用することで2要素認証を実現、セキュリティ強化を目的としています。(ここ重要)

前提知識(かんたんに)

【FIDO(ファイド)】
Fast IDentity Onlineの略で、従来のパスワード認証に代わる認証技術で、標準規格策定団体であるFIDO Allianceが規格策定と推進を行っている。HPから、様々な企業が参加していることが伺えます。
altaltaltalt  などなど…

そして、FIDOにはUAFU2Fの2つの規格がある
※実際はもう1つFIDO2というWeb認証の規格もあり、この記事では最後の方にちょっとだけ出てきます

【UAF】
Universal authentication Frameworkの略で、主に生体認証などのパスワードレス認証を行う規格

【U2F】
Universal 2nd Factorの略で、ID・パスワードの第1認証の後に、セキュリティキーなどによる第2認証を行う規格
YubikeyはこちらのU2Fにあたる

そもそもYubikeyとはなにかね?

「ユビ」という言葉が日本人に馴染みがありますね。「指人形」や「指相撲」、「指原〇〇」といった著名人や、「湯引き」なんて言葉もあります。
なので、「ユビキー」と初めて聞いたとき、「日本企業のものか…?」と思いましたが、そんなことはない、アメリカ・スウェーデンを拠点とする**Yubico社**が開発したデバイスでした。
もしかしてだけど、ユビキーって名前はユビキタスから来てるんですかね?誰か教えてください。

というわけで、以下の3つのYubikeyを購入してみました。

【YubiKey 5 NFC】
USB-Aタイプで、U2FとFIDO2の他に、ワンタイムパスワード(OTP)などの機能を含むYubiky
alt

【YubiKey 5C】
USB-Cタイプで、機能はYubiKey 5 NFCと同じ。MacbookPro用に購入
alt

【Security Key by Yubico】
USB-Aタイプで、U2FとFIDO2のみに対応
alt

Yubikey検証の理由が「OSログインとGoogleログイン時の2段階認証目をYubikeyで!」なので、OTPなどはいまの所は使用しないですが、いずれは使うかも…ということでYubiKey 5 NFCも購入しました。
ただ、Security Key by Yubicoでも事足りそうなので、こちらも一応購入して、さて!早速検証スタート。

OSログイン検証

Windows

・YubiOn Windowsログオン

ソフト技研さんの提供するYubion Windowsログオンというサービスで、その名の通りWindowsログオン時にYubikeyによる2段階認証を提供するソリューションのようです。ちなみにソリューションの総称をYubionと呼ぶみたいですね。
基本有料のサービスですが、無料版もありましたので、YubiOn Portalというのに登録して試してみました。ちなみにYubikey Portalログイン時にID・パスワードとYubikey認証が必須になっています。

【結果】
Windowsログオン時の[ID・パスワード+Yubikey認証]が実現可能ですが、無料版ですとWindowsログオン画面で[ID・パスワードのみ]か、[ID・パスワード+Yubikey認証]でログオンするか選択可能な感じでした。有料版だと[ID・パスワード+Yubikey認証]を強制できるみたいですね。
いまのところ有料ソリューションを使用する予定がないので断念ですが、非常にスムーズに設定ができたので、追々有料版導入も検討してもいいかも。

・Yubikey for Windows Hello

Windows10より導入されているWindows Hello(指紋認証や顔認証などの生態認証でWindowsへログインする機能)とYubico社が提供するアプリであるYubiKey for Windows Helloを試してみる

【結果】
と思ったのですが、Windows10でYubiKey for Windows Helloを使用するには、こちらもYubico社が提供するYubikey Managerを使ってYubikeyがCCIDモードになっているか、なっていない場合は有効にする必要があるようですが、このCCIDモードがちょっと前のYubike4とかNeoまでしか対応しておらず、5は非対応とのことでした…断念。

・Microsoftアカウントを使用

Yubionの少し前のYubiKey 5 でのパスワードレスログインが Microsoft Accounts にやってきたという記事を見つけ、WindowsにMicrosoftアカウントでログインしてればできんじゃね!?ということで試してみました

【結果】
こちらの記事を参照させてもらいトライ、ブラウザはEdge必須ですが、Yubukeyを使用したMicrosoftアカウントへログインは実現できました!が、ログイン時にYubikeyのみでOKなので2段階認証ではなく簡素化となり、当初の目的と外れてしまったのと、肝心のWindowsログイン時にYubikeyを使用する設定がどこにも見当たらず…しまいにはEdgeからMicrosoftアカウントへのログインも不安定で最終的にYubikeyを使用してできなくなってしまいました…なんだかな~。

・他にもいろいろ試してみたけれど・・・

その他、こちらの記事を参照させてもらい、Yubico社のYubiKey Personalization ToolsYubiKey Logon installation fileを使用した方法をトライしましたが、YubiKey Logon installation fileのインストーラをダウンロードするためのメールがまったく届かず・・・「もういいわ!!」となりました。
様々なサービスがあるようなのですが、結果的に無料でやるとなるとあと一歩やりたいことまでたどり着けませんでした…。

Mac

こちらの記事を参照させてもらい、Yubico社の提供するYubiKey Personalization ToolとmacOS Logon Toolを使用して設定しました。
※途中にあるComputer Logon Toolsダウンロードのリンクが切れていますが、macOS Logon Tool Configuration GuideからmacOS Logon Toolをダウンロード、インストール可能です

大まかな設定の流れは以下。
1.YubiKey Personalization ToolをインストールしてMacでYubikeyを使用するための設定を行う
2.PAMモジュールであるmacOS Logon Toolをインストールする
3.YubikeyをMacに差し込んで、以下のコマンドをログイン対象のユーザで実行し対象のYubikeyを登録(ユーザ毎に設定)

~/
mkdir -m0700 -p ~/.yubico
ykpamcfg -2

4.PAMの設定ファイルに以下を追加(ユーザ毎に設定)

/etc/pam.d/screensaver
# screensaver: auth account
auth       required       /usr/local/lib/security/pam_yubico.so mode=challenge-response
/etc/pam.d/authorization
# screensaver: auth account
auth       required       /usr/local/lib/security/pam_yubico.so mode=challenge-response

この設定でYubikeyを挿入しないとMacにログインできなくなりましたが、これYubikeyなくした場合はどうなっちゃうんだろう…普通にログインできなくなりますよね。そうなるとバックアップ用のYubikeyを設定しておかないといけない?全ユーザにそれやるとなると、何個Yubikey必要なんだろ・・・。
うーん、あまり現実的ではないし、ローカルにデータを保存しないようにしておけば、OSへのログインはYubikey使わない方向の方がいいかも、Yubikey紛失時に他のバックアップ方法があればOSも考えてもいいかもね!と考えました。

各サービス検証

メジャーなもので以下を検証してみました。

サービス名 使用可否 手順へのリンク
G Suite Googleアカウントヘルプ
Slack × ※Slackに問い合わせたらU2F非対応とのこと
AWS AWSユーザガイド
GitHub こちら参照させてもらいました
Microsoftアカウント 先ほど紹介した手順で可能でしたが、あとからログインできなくなる

あと、G Suiteに関してはいくつか懸念点があり、検証した結果が以下です。

懸念点 検証結果
2段階認証の発生頻度をコントロールできるのか? 特権管理者で管理コンソールから可能。こちらのヘルプページも参照
ドライブファイルエクストリームへのログインはYubikeyで可能か? Windows、Mac共にドライブファイルエクストリームから直接Yubikey認証ではなく、ブラウザからYubikeyを使用してGoogleにログインすることで認証される
Android端末でYubikey認証可能か? 物理的に挿入できればYubikey認証可能
iPhoneでYubikey認証可能か? 物理的に挿入する方法ではなく、WindowsやMacのブラウザからYubikeyを使用してGoogleにログインして認証コードを発行、それをiPhoneで入力する必要がある

各サービス共にYubikeyを紛失しても、管理者権限で2段階認証を無効にするなどしてバックアップできるのが安心ですね。
G Suiteの場合は2段階認証の頻度を調整するなど対応が必要ですが、概ねWebサービスへのYubikeyの導入は有効と思いました。

そしてYubikeyも次のステップへ・・・

私以外のエンジニアにYubikey使ってみてもらったところ、「端末の生体認証などを使用したWebAuthとの併用ができなかった。」といった声があったのですが、最近生体認証の規格であるFIDO2(WebAuth)に対応したYubikey Bioなるものが発表されていました!!
こちらも購入して使ってみよう!ということで、検証結果はまた今度アップしますーー。

G Suiteのログインセッション継続期間を短くしてみて検証(2020年5月14日追記)

G Suiteのログインセッション継続期間はデフォルトで14日、そこから1時間や24時間、30日などに調整ができます。
ちなみに設定した変更が有効になるのは既存の継続期間が終了してログオフして再度ログインした時からです。なので、デフォルトの継続期間(14日)経過するか手動でログオフしないとこの設定は有効になりません。
メーラーやモバイルアプリなどは14日を待ってどのような動作するかを待ちましたよ、待ちましたよ俺は…。

セッション継続期間を調整、各アプリでどのような動きをしたかは以下です。

  • PCのブラウザ(chrome)

    継続期間を迎えるとログオフするが、ログイン時に[このパソコンでは次回から表示しない]にチェック有り無しで動作が変わる。

    有り:再ログイン時にID/PWのみ要求され、2段階認証(Yubikey)は要求されない

    無し:再ログイン時にID/PWと2段階認証が要求される
  • PCのメーラー(Outlook)

    継続期間を迎えても再ログイン自体が要求されない
  • ドライブ ファイル ストリーム

    継続期間を迎えても再ログイン自体が要求されない!
  • モバイルアプリ(AndroidのGmail)

    継続期間を迎えても再ログイン自体が要求されないじゃない!!

PCブラウザでみんな無意識でチェックしちゃう[このパソコンでは次回から表示しない]を有効にしたり、他のアプリでも一度ログインしちゃうとその後Yubikeyの出番は無いようです…。

とはいえ、セキュリティ向上をメインではないにしても、手軽な2要素認証デバイスとして、またSSOメインで使用すれば、Yubikeyは使い勝手いいかもっすね!


◆ Twitterアカウント
@AkibinMusic

◆ Youtubeチャンネル
https://www.youtube.com/channel/UC-JOpwEnJn3gCrUA4NdCYgg

35
29
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?