Yubikeyでは、Mac OS Xログイン時にパスワードとセットでYubikeyを使用しないとログインできないようにする(二要素認証設定ができる)ことができるので、実際やってみることにした。 手順も用意されていて結構簡単に実現できるようになっている。 参考にする手順はこれ(2016年12月)。 事前に、Yubikeyでチャレンジレスポンスの設定(手順上はSlot2なので、検証時はSlot2で行った)をしておくこと。

まず、こちらのページから「Mac OS X Logon (using Yubico-PAM)」をクリックし、pamモジュールのインストーラーをダウンロード、2要素認証を設定するMacにインストールする。 インストール後、「/usr/local/lib/security/pam_yubico.so」が配置されていることを確認する。

確認できたら、YubikeyをMacに差し込んで、以下のコマンドをログイン対象のユーザで実行し対象のYubikeyを登録する。

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

登録後、以下のようにpamの設定ファイルを変更、Yubikeyなしではログインできないようにする。 ※念のため、先にscreensaverファイルだけでテストしてからのほうがいいだろう。 screensaverの場合はYubikeyが刺さっていれば、パスワード入力してそのまま入れる(authorizationの方はタッチが必要)ので、一度Yubikeyを抜いた状態でログインできない事・Yubikeyを刺した状態でパスワード入力してログインできることを確認するといい。

/etc/pam.d/screensaver
# screensaver: auth account auth optional pam_krb5.so use_first_pass use_kcminit auth required pam_opendirectory.so use_first_pass nullok auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response account required pam_opendirectory.so account sufficient pam_self.so account required pam_group.so no_warn group=admin,wheel fail_safe account required pam_group.so no_warn deny group=admin,wheel ruser fail_safe
/etc/pam.d/authorization
# authorization: auth account auth optional pam_krb5.so use_first_pass use_kcminit auth optional pam_ntlm.so use_first_pass auth required pam_opendirectory.so use_first_pass nullok auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response account required pam_opendirectory.so

これで、OSログイン時にパスワードとYubikeyの2つが無いとログインできなくなった。 つまりYubikeyを無くすとログインできなくなるということにもつながるので、念のためバックアップキーは作っておいた方が良いだろう。