この記事は、NetBSD Advent Calendar 2022の24日目の記事です。
Google Titan Security Keyとは?
Google Titan Security Keyというのは、
多要素認証をするために利用される機器です。
いつも日本のGoogle Storeでは品切れだったのですが、最近は在庫があるようです。
品切れだった時は、ページを開くとエラーページが表示されるという状況でした。
今回、私が購入したのは、USB Type-C接続をするタイプです。
スマートフォン向けに、NFCも搭載されています。
今回は、NetBSD/amd64 10.99.2で動くpkgsrc/www/firefoxをアップデートするのに使う予定のFirefox 108.0.1で試して書いていますが、
現在pkgsrc/www/firefoxとして利用できる107.0.1でも同様に動作します。
Google Titan Security Keyを接続してみる
NetBSD/amd64 10.99.2を動かしているHP Envy 13-ay1052AUというラップトップPCに接続すると、以下のようにdmesgに出力され
認識されます。
uhidev3 at uhub5 port 1 configuration 1 interface 0
uhidev3: FS (0x096e) ePass FIDO (0x085b), rev 1.10/31.00, addr 5, iclass 3/0
uhid7 at uhidev3: input=64, output=64, feature=0
実を言うと、NetBSD/amd64 10.99.2にはlibfido2が含まれています。最近ブランチの切られたNetBSD 10にも同様に含まれています。
fido2-tokenコマンドを使って、認識されるか確認してみます。
$ fido2-token -L
/dev/uhid7: vendor=0x096e, product=0x085b (FS ePass FIDO)
このように認識されました。
この表示を見ると、Google Titan Security Keyは、FEITIAN Technologies社の
ePass FIDOのラインナップのOEMなようです。
Firefoxでは、libfido2を使うのではなくRust言語で書かれたthird_party/rust/authenticator以下にある実装を経由して
Google Titan Security Keyを利用することになるはずですので、これ以上libfido2を追求するのは止めておきます。
Googleアカウントに登録する
2 段階認証プロセスにセキュリティ キーを使用するという
Googleのヘルプページのパソコン向けの手順に従って登録してみます。
まず、Googleアカウントに登録します。2段階認証の登録画面
から登録して行きます。
Nextボタンをクリックし、表示に従ってUSBポートにGoogle Titan Security Keyを接続し、Security Key registeredと表示されたら認識されました。
名前を決めて入力し、Doneをクリックすれば登録は完了です。
Googleにログインする
さきほど設定したGoogleアカウントからログアウトしてもらうか、Firefoxのプライベートウィンドウでログインすれば、Google Titan Security Keyを正しく登録できたか
確認できます。今回はプライベートウィンドウで試してみます。ログイン画面へ遷移しユーザーIDを入力し、パスワードも入力します。
次の画面に進み、Google Titan Security Keyを接続すると、接触センサーの部分に触れるようにうながされます。
接触センサーに触れると、ユーザー認証は完了です。
おわりに
今回は、Google Titan Security KeyをNetBSD/amd64 10.99.2上で動くFirefoxで利用し、Googleアカウントにログインできました。
WebAuthnを採用したGoogle以外のウェブサービスを使ったり、他の用途でも使えるかもしれません。
いずれ試してみたいと思います。