セキュリティ知識薄目なエンジニアがYubikeyと格闘して得た使い方。
introduce
最初yubikeyが認識されなくてつまずきました。
Authentticatorアプリや、yubikey managerなどおいてあるアプリは全部インストールしてみてもダメ。NFCにかざすと反応はするので、壊れてはないよねえと思いつつ。
全然認識されないので、スマートカードを使うためにminidriverというドライバを入れてもちゃんとインストールされず途中で止まったりしてました。
原因よくわかってないのですが、最終的に更新が来ていたwindows UpdateとPasoriのファームウェアアップデートをしたら解決しました。
windows updateは随時やってるんですけどね。。
「英語わからない」、「セキュリティワード分からない」というところで勉強がてらまとめてみました。
セットアップするアプリ
Yubikey Manager
英語ですが、こちらからダウンロードしてください。
https://www.yubico.com/support/download/yubikey-manager/
Windows (x64) Download(windowsの方はほぼこれだと思います)Pasoriなど、お使いのNFCリーダーのファームウェアアップデート
インストール時に必要な設定はないです。
インストールし、アプリ起動後(最初だけ、管理者モードで起動)USBにさすとこのような画面が出ると思います。NFCリーダーにおいてもでません。
これが出たら正しく認識しているということです。
FIDO2設定
「Fast IDentity Online」の略語。直訳すると「素早いオンライン認証」です。簡単に言うとパスワードを使わずに安全に認証する仕組みというところでしょうか。
まず、最初に設定するべきはPINコードです。このPINコードは、セキュリティキーの持ち主である証明になりますが、初期値は123456となっているため変更が必要です。
Applications > FIDO2(管理者モードで起動しないとエラーになります。)
こちらでPINコードをPINコードを設定します。
Change PINで、PINを変更してください。アルファベットもいけるみたいです。
8回間違うと、リセットせざるを得ない状況になりますのでご注意ください。
(やったことないので、なんともですが厳密に書くと3回失敗したらYubikey差し直さないといけないらしいです。刺しなおさずに4回目失敗したらどうなるか分かりません。。。)
これでYubikeyを使う準備が整いました。
一般的によく知られているサービスとしては
Apple(2本必須)、Google、Microsoft、Twitter、Githubなどで利用できます。
各サービスのアカウントページにいけばと大体登録の仕方が分かるのではないかと思います。
iPhoneからの登録はiOS16.3以上でないと、対応していないのでバージョンを確認してご利用ください。
私は、全部PCから設定をしたので特段問題なかったのですが、スマホからNFCを利用して登録する場合は、うまくいかない場合もあるかもしれません。
試しにiPhoneでNFCを使い認証を行おうとしたところ、Microsoft、Twitter、Github認証に関してうまく動作しなかったです。
NFCは感知して通知メッセージは出るんですけどね・・・。
あと大事なことを一つ、Yubikey2本買ったんだけどバックアップとして簡単に設定できないのかと思う方もおられるかと思いますが、私の知る限りではできません。面倒なのでいっぺんにやったほうがいいです。
(FIDO2などの秘密鍵を一致させることができたらいけるかもしれませんが・・詳しいことはわかりません)
BitLockerを解除するスマートカードを作る
1.インストールするもの
先ほどのYubikey Managerとminidriverというスマートカードドライバーです。下記URLからスマートカードドライバーをダウンロードしてインストールしてください。
windowsだとほとんどのの方の場合、「YubiKey Minidriver for 64-bit systems – Windows Installer」になるはずです。
2.認証ファイルを作成
こちらをコピーしてテキストファイルとして保存しましょう。
bitlocker-certificate.txtとしておきましょうか。
[NewRequest]
Subject = "CN=BitLocker"
KeyLength = 2048
HashAlgorithm = Sha256
Exportable = TRUE
KeySpec = "AT_KEYEXCHANGE"
KeyUsage = "CERT_KEY_ENCIPHERMENT_KEY_USAGE"
KeyUsageProperty = "NCRYPT_ALLOW_DECRYPT_FLAG"
RequestType = Cert
SMIME = FALSE
ValidityPeriodUnits = 99
ValidityPeriod = Years
[EnhancedKeyUsageExtension]
OID=1.3.6.1.4.1.311.67.1.1
3.グループポリシーの編集
ローカルグルプポリシーエディターを開きます。Windows + R,で gpedit.mscと打ってください。
コンピュータの構成 > 管理者用テンプレート > Windowsコンポーネント > BitLockerドライブの暗号化を選択
その中にある「スマートカード証明書の使用規則の準拠を検証する」をダブルクリック。
有効を設定して、オブジェクト識別子を「1.3.6.1.4.1.311.67.1.1」と設定する。
※先ほど、作ったテキストファイルに記述されているOIDと一致させる必要があります。
4.レジストリエディタの編集
次にWindows + Rを押してから、regeditと入力し、[OK]をクリックしてレジストリエディタを開きます。
コンピュータ\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\FVEを開く。右側のウィンドウペインで右クリックし、次の項目を選択します。
新規 -> DWORD (32 ビット) 値
キーの名前を「SelfSignedCertificates」とする
キーをダブルクリックして開き、値を 1 に設定します。
5.証明書を作成する
PowerShell を開いて、BitLocker と YubiKey で使用する証明書を生成します。これは、YubiKeyにロードされる証明書です。
2で作った、作ったテキストファイルの場所へ移動します。
下記のコマンドを実行します。
certreq -new .\bitlocker-certificate.txt
この時に生成されるreqファイルと 2で作った .txt ファイルを削除してください。
6.Bitlockerの証明書をエクスポートする。
Windows のスタート メニューを開き、「ユーザー証明書の管理」と入力すると出てきます。
クリックすると、証明書マネージャー プログラムが開きます。
参照先: 証明書 – 現在のユーザー > 個人 > 証明書
そこに、BitLocker というタイトルの証明書が表示されます。
右クリックして選択します:すべてのタスク->エクスポート...
[次へ] をクリックし、[はい、秘密キーをエクスポートします] を選択して、もう一度 [次へ] をクリックします。
[次へ]をクリックし、[パスワード:]チェックボックスをオンにして、証明書のパスワードを入力します。このパスワードは、1度しか使わないので何でも構いません。
[次へ]、[参照...] の順にクリックし、ファイルを bitlocker-certificate.pfx として保存し、[次へ]、[完了] の順にクリックします。
7.YubiKeyマネージャープログラムを開いて、証明書をYubiKeyにインポートします。
まだ行っていない場合は、YubiKeyをPCに挿入します
YubiKeyマネージャーアプリを開く
Application -> PIV -> Certificates -> Card Authentication
importボタンをクリックし、前の手順でつくった、bitlocker-certificate.pfx ファイルをクリックして参照し、選択します。
6 で証明書に割り当てたパスワードを入力します。
[use Default] チェックボックスをオンにして、[OK] をクリックします。
(PIVの方のPINを設定済みの場合はPINを入力する必要があります)
PCからbitlocker-certificate.pfxファイルを削除します。
ただし、2つのYubikeyに設定する場合には、このpfxを削除する前に同じ手順で設定してください。
なお、こちらのページを参考にしました。英語ですけど、ページ翻訳するとわかりやすいですね。特段つまらずに設定することができました。
こちらのページでやったところ、3と4を逆転しないとできなかったので、上記手順は逆にしています。また、2つ目のキーに設定するには.crtファイルでとありましたが、認識されなかったので.pfxで設定する方法を記載しています。
「Generateすれば早いんじゃ、、、」と思ってGenerateボタン押しましたがBitlockerには適用できませんでしたのでご注意を。。
また、こちらのページには書いてなかったので割愛したんですが、セキュリティガチガチにしたい場合、PIVのPINコード・PUKコードは変えておいた方がいいです。(FIDO2のPINとはまた違うので忘れるとアウトです。ご注意を!)
USBメモリを暗号化する(Bitlocker)
USBメモリを刺し、エクスプローラー上から右クリックで、「Bitlockerを有効にする」
このとき、スマートカードを設定したYubikeyが刺さってない場合、エラーになります。NFCだと不安定なときがあります。
スマートカードを使用してドライブのロックを解除するにチェック
回復キーは、Yubikeyをなくした場合に必要になりますので必ずファイルに保存するか印刷して保管してください。どちらかを行うと次へ進めます。
ドライブを暗号化する範囲の選択。こちらは、任意で選んでください。
使用する暗号化モードを選ぶ。今回はUSBメモリを前提としてますので、互換モードで設定します。
こちらの画面がでてきたら、スマートカードを設定したYubikeyを用意します。
開始で、暗号化が始まるので完了となったら終了です。
USBメモリのBitlockerを解除する
暗号化完了後はロックが解除されているので、一度刺しなおしてください。
右クリックで、「ドライブのロックを解除」をクリックします。
NFCでもできますが、反応しない時もあるのでご注意。
PIVのPINコード(デフォルトだと123456)を入力しOKをクリック。
成功であれば何も表示されずに、カギアイコンが消えて中身が表示できるようになるはずです。
認証アプリは不要か?
本当にセキュリティでガチガチにしたい場合は、Yubikeyのみが一番でしょう。ただ、USBやライトニングを挿せない場合、NFC一択になります。
iPhoneしか使ってないのでAndroidはわかりませんが、アプリ内ブラウザを使った場合の認証系は全部NFCが使えませんでした。
やはり、まだ認証アプリは必要だと思います。
余談
Yubico Authenticatorをインストールしてみたのですが、いまいち利便性を感じておりません、、なぜならいちいちYubikeyを刺さないといけないので・・。Yubikeyに保存されるため、セキュリティ自体はばっちりだとは思いますが、使いにくい・・・。2つくらい試しに登録はしましたが使ってません。
これで、個人情報などを安心して持っておけるようになったかと思います。
Yubikeyさえ普及してくれれば、色んな使い方できるんですけど、日本じゃネットバンクさえセキュリティーキー導入してないので難しいですね。
もうちょっと安心して使いたいものです。
PINコードや回復キーの取り扱いにはくれぐれもご注意ください~!!