NetBSD/amd64 10.99.2で動かすFirefoxで、Google TItan Security Keyを使ってログインしてみる

この記事は、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以外のウェブサービスを使ったり、他の用途でも使えるかもしれません。 いずれ試してみたいと思います。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

Asterisk 16で、ソフトフォンとの間をPJSIPによる通信に変更する

Asteriskに接続している一部のクライアントはIAX2で通信するようにしたのだが、 もう1台はZoiPerではなく baresip+ を使っているので、 IAX2にすることはできない。 そこで、この端末についてもchan_sipではなくPJSIPに乗り換える...