YubiKeyのOATHをCLIで扱う

はじめに

前回の投稿「Yubico Authenticator 6」ではYubiKey 5OATH 機能をYubico 社の認証アプリYubico Authenticator を使って操作しましたが、今回はYubiKey ManagerCLIツール (ykmanコマンド) を使って操作してみたのでその解説をします。

ykman コマンドの引数にTwitter のQR コードの値 “otpath://totp/Twitter:@RodentGiant?secret=xxxxx&issuer=Twitter” を指定してYubiKey にアカウントを登録して認証コードを発行する、というようなことの解説です。

扱うコマンドはCLI ツールのOATH コマンドで、Yubico 社の公式サイトにマニュアルが掲載されています。

YubiKey のOATH 機能について

前回の投稿「Yubico Authenticator 6」で解説していたので省略。

YubiKey Manager について

Yubico 社が提供するYubiKey Manager には、ウィンドウ操作のGUI ツールと、コマンドライン操作のCLI ツール の2種類のツールがあります。
今回の投稿はコマンドライン操作のCLI ツールを使った解説になります。

GUI ツールについては、過去の投稿「MacにYubiKey Managerをインストール」で解説しているので興味がある方はご参照ください。
なお、GUI ツールはYubiKey のOATH 機能を操作する機能を備えていないです。

環境について

今回の解説で使う環境です。

  • OS:macOS Monterey
  • YubiKey Manager CLI (ver 5.0.0)
  • YubiKey 5 NFC

インストール(CLIツール)

Yubico 社の公式サイトからCLI ツールのパッケージファイルをダウンロードしてインストールすることができますが、GUI ツールにはCLI ツールも同梱されているので、GUI ツールをインストールしてCLI ツールを使うことも可能です。

  • YubiKey Manager (CLIツール)のパッケージファイル
    • インストールすると自動でパス指定される
    • CLI ツールのバージョンが最新(ver. 5.0.0)
  • YubiKey Manager (GUIツール)のパッケージファイル
    • CLI ツールが同梱されている(パス指定が必要)
    • CLI ツールのバージョンが最新ではない(ver. 4.0.7)

ただ、2022年12月23日時点ではありますが、GUI ツールに同梱されているCLI ツールは最新のver.5.0.0 ではないので、最新を使いたい場合はCLI ツールを単体でインストールする必要があります。

もし、GUI ツールと最新のCLI ツールの両方を使いたい場合は、GUI ツールに同梱されているCLI ツールはパス指定が自動で行われないので、両方とも単純にインストールするだけで最新のCLI ツールが使える状態になります。

なお、macOS ユーザーの場合は、Homebrew を使ってCLI ツールをインストールすることもできます。こちらは最新のバージョン(ver. 5.0.0)になっていました。

各リンク先を貼っておきます。

各種環境のインストール方法が掲載されているYuboco 社のページが参考になりそうなのでリンクを貼っておきます。

Homebrew を使ってインストール

今回、Homebrew を使ってCLIツールのみをインストールします。

ターミナルで下記のコマンドを実行してインストールします。

brew install ykman

インストール後にykman コマンドに既にパスが通っていることを確認します。バージョンは5.0.0 です。

% which ykman
/opt/homebrew/bin/ykman

% ykman -v
YubiKey Manager (ykman) version: 5.0.0

OATH 機能を使う(アカウントの登録〜認証コードの生成)

CLI ツールを使ったアカウントの登録は、2要素認証を登録するサービス側が表示するQR コードの情報を使って行います。

例として、Twitter とGoogle で表示されたQR コードのページとQR コードの情報(QR コードをスキャンして読み取ったURI)を載せておきます。

Twitter

Twitter > QRコード
QRコード
Twitter > shared secret
shared secret
otpauth://totp/Twitter:@RodentGiant?secret=ABCDEFGHIJKLMNOP&issuer=Twitter

“Can’t scan the QR code?” をクリックするとshared secret が表示されたページが表示されました。

Google

Google > QRコード
QRコード
Google > shared secret
shared secret
otpauth://totp/Google:[email protected]?secret=abcdefghijklmnopqrstuvwxyz012345&issuer=Google

“スキャンできない場合” をクリックするとshared secret が表示されたページが表示されました。

アカウントの登録(URI を指定する)

QR コードをスキャンして読み取ったURI をそのまま指定して登録します。

ykman oath accounts uri "otpauth://totp/Twitter:@RodentGiant?secret=ABCDEFGHIJKLMNOP&issuer=Twitter"

認証コードの発行にYubiKey のタッチを要求するようにする場合は-t オプションを指定します。

ykman oath accounts uri -t "otpauth://totp/Twitter:@RodentGiant?secret=ABCDEFGHIJKLMNOP&issuer=Twitter"

アカウントの登録(shared secret を指定する)

shared secret を指定して登録します。

Twitter とGoogle では前述のQR コードを表示するページからリンクできるページでshared secret を確認することができます。
また、URI のクエリパラメータsecret の値がshared secret なので、URI で確認することもできます。

URI に含まれる要素を分解してshared secret 以外のオプションを指定するので、オプションの意味が分かりやすいように、ハイフン2つのオプションも併記しておきます。

ykman oath accounts add -i Twitter -o TOTP @RodentGiant ABCDEFGHIJKLMNOP
ykman oath accounts add --issuer Twitter --oath-type TOTP @RodentGiant ABCDEFGHIJKLMNOP

認証コードの発行にYubiKey のタッチを要求するようにする場合は-t オプションを指定します

ykman oath accounts add -i Twitter -o TOTP -t @RodentGiant ABCDEFGHIJKLMNOP

アカウント情報の一覧を表示

YubiKey に登録されているアカウントの情報を一覧で表示します。

% ykman oath accounts list -H -o -P
% ykman oath accounts list --show-hidden --oath-type --period
Twitter:@RodentGiant, TOTP, 30

-H オプションは非表示アカウントを表示するためのもののようですが、そもそも非表示アカウントが何か調べても分かりませんでした。-H オプションは指定しなくても結果は変わらなかったので、指定する必要ないのかもしれません。

認証コードの生成

アカウントを絞り込む条件を指定しないでコマンドを実行します。

% ykman oath accounts code
Google:RodentGiant    [Requires Touch]
Twitter:@RodentGiant            001542

アカウントが2つ登録されている場合、上記のように出力されます。

出力されるアカウントが2つ以上ある場合、アカウントの登録時に-t オプションを指定したアカウントは[Requires Touch] と表示されます。

-tオプションを指定したアカウントの認証コードの発行

アカウント登録時に-t オプションを指定したアカウントの認証コードを発行するためには、1つのアカウントのみ出力されるようにする必要があります。
YubiKey に複数のアカウントが登録されている場合は、アカウントを絞り込む条件(部分一致)を指定します。

% ykman oath accounts code Google:RodentGiant
Touch your YubiKey...
Google:RodentGiant  302862

2行目でYubiKey のタッチが要求され、タッチすると3行目の抽出したアカウントのアカウント名と認証コードが表示されます。

認証コードのみ出力する

-s オプションを指定して認証コードのみ出力することもできます。
この場合も、1つのアカウントのみ出力されるようにする必要があります。

% ykman oath accounts code -s Twitter:@RodentGiant
% ykman oath accounts code --single Twitter:@RodentGiant
001542

OATH 機能を使う(アカウントの管理)

アカウントの名前変更

% ykman oath accounts rename Twitter:@RodentGiant "Twitter:RenamedName"
Rename account: Twitter:@RodentGiant ? [y/N]: y
Renamed Twitter:@RodentGiant to Twitter:RenamedName.

アカウントにissuer を設定していた場合、変更後の名前の左に”:”(セミコロン)を付けてissuer を指定しないとissuer が削除されます。
上記例では”Twitter” がissuer 、”RenamedName” が変更後のアカウント名です。

アカウントの削除

% ykman oath accounts delete Twitter:@RodentGiant
Delete account: Twitter:@RodentGiant ? [y/N]: y
Deleted Twitter:@RodentGiant.

サービス側の2要素認証の設定も削除する必要があるので注意が必要です。
削除する順番を(1)サービス側の2要素認証の設定を削除、(2)YubiKey 側のアカウントを削除、とすればログイン時にサービス側から2要素認証の認証コードの入力を求められるけれど発行できないという状況は回避できるでしょう。

OATH 機能を使う(パスワード関連)

前回の投稿「Yubico Authenticator 6」のあとがき「YubiKey の紛失や窃取によるアカウント情報の漏洩」で少し解説していますが、YubiKey のOATH 機能にパスワードを設定することができます。
YubiKey を不正に入手した第三者への、YubiKey に登録されているアカウント情報の漏洩と、認証コードの発行を防ぐことができるので、安全のためにはパスワードは設定しておいた方がよさそうです。

なお、これまでの例示したコマンドはパスワードが設定されていない例になります。
パスワードが設定されていると、コマンドを実行する度にパスワードの入力が求められるようになります
アカウント情報の一覧を表示するコマンドの場合、下記のようになります。

% ykman oath accounts list -H -o -P
Enter the password:

-p オプションでコマンドにパスワードの文字列を付加することで、「Enter the password:」を表示しないで結果を得ることができますが、ターミナルに実行したコマンドの記録が残るのは望ましくないと思うので個人的には使わないようにしています。

% ykman oath accounts list -H -o -P -p 123456
Twitter:@RodentGiant, TOTP, 30

パスワードの設定(初期登録・変更)

YubiKey のOATH 機能は、初期状態ではパスワードが設定されていないです。
パスワードを初期登録する場合と、初期登録後に変更する場合で使うコマンドは同じです。

% ykman oath access change
Enter the new password:
Repeat for confirmation:
Password updated.

パスワードの削除

YubiKey のOATH 機能に設定されているパスワードを削除します。削除するとコマンドの実行時にパスワードの入力を求められなくなります。

% ykman oath access change -c
Enter the current password:
Password cleared from YubiKey.

パソコンにパスワードを記憶

パスワードをパソコンに記憶させておくことにより、コマンドを実行する度にパスワードの入力が求められないようにすることができます。
裏で記憶しておいたパスワードが自動入力される感じです。

% ykman oath access remember
Enter the password:
Password remembered.

一度、このコマンドを実行しておけば、同じパソコンであればパソコンを再起動しても記憶された状態が保たれます。
仕組みとしては、~/.ykman/oath.json というファイルに記憶されるようです。

パソコンに記憶したパスワードを削除

パソコンに記憶されているパスワードを削除します。削除した場合、YubiKey のOATH 機能のパスワードが設定されたままだと、コマンドの実行時にパスワードの入力が求められるようになります。

% ykman oath access forget
Password forgotten.

YubiKey のOATH 機能のパスワードの変更や削除をした場合、パソコンに記憶したパスワードは使えなくなるので、パソコンに新しいパスワードを記憶するか、このコマンドでパソコンに記憶されているパスワードを削除します。

あとがき

YubiKey のOATH 機能のパスワード設定について

  • YubiKey 紛失時の備えとして、パスワードは設定しておいた方がよさそう
  • コマンドを入力する度にパスワードを入力するのは面倒なので、パソコンに記憶させる機能は使った方がよい
  • 設定したパスワードを失念すると、パスワードの変更も削除もできなくなる
    • YubiKey に登録したアカウントの認証コードが発行できなくなる
    • YubiKey のOATH をリセットするしかない
    • パスワードはパスワードマネージャーに登録しておいた方がよい

Yubico Authenticator を使えば良いのでは?

YubiKey のOATH 機能は、Yubico Authenticator であればGUI で操作できるので、一般的な用途ではCLI ツールを使う必要がなさそう。
ざっと見た感じ、CLI ツールでできることはすべてYubico Authenticator でできると思われる。

サーバ側で認証コードを発行する仕組みを作るのにCLI ツールを使うにしても、YubiKey 5 のOATH 機能を使う場合、YubiKey 5 のOATH に登録できるOATH-TOTP の上限が32 なので、用途としては向いていなそう。

参照

Yubico Authenticator 6

Yubico 社が Yubico Authenticator 6 の正式版をリリースしました。

ユーザーのクレデンシャルをYubiKey に保存するというのが特徴の認証アプリの使用感がどのようなものか試してみたので、その解説をします。

はじめに

Yubico Authenticator について

いわゆる、2要素認証でユーザIDとパスワードを入力した後に入力する認証コードなどと呼ばれるワンタイムパスワード(OTP)を生成する認証アプリです。

認証アプリとして有名なものに、Google AuthenticatorAuthyMicrosoft Authenticator などがありますが、これらと同じことができるアプリです。

Yubico 社のサイトに、Yubico Authenticator の特徴として以下のような点が挙げられていました。

  • ユーザーのクレデンシャルをモバイル端末ではなくYubiKey内のセキュアエレメントに保存するので、クレデンシャルの漏洩を完全に防ぐことができる
  • YubiKey に保存したクレデンシャルは複数のデバイスでシームレスに利用することができる
  • アプリはWindows, macOS, Linux, iOS, Android で動作するので、パソコンでもモバイル端末でも同じ認証コードを取得できる(ARM 版macOS もサポート)

先ほど例示した認証アプリはスマホにインストールした認証アプリ単体で認証コードを発行しますが、Yubico Authenticator は認証アプリをインストールしたスマホやパソコンにYubiKey をNFT やUSB で接続して認証コードを発行します。

認証コードの発行はYubiKey のOATH-TOTH/TOTP 機能を使って行われるので、この機能を備えたYubiKey 5 シリーズが必要となります。(例えばSecurity Key シリーズは対応していない)

YubiKey のOATH-HOTP/TOTP 機能

YubiKey 5 シリーズには、YubiKey 本体にFIDO2 やPIV(Smart Card) など色々な機能がありますが、このYubico Authenticator はYubiKey のOATH(HOTP/TOTP)の機能を使ってOTP を発行しているようです。

OATH には下記の2つの方式がありますが、今回試すTwitterOATH-TOTP のみ対応しているようです。

  • OATH-HOTP
    • HMAC-based OTP
    • OTP の発行回数を使ってOTP を生成する
    • 生成したOTP を認証に使わなかった場合、サーバーの発行回数と同期がとれなくなる
  • OATH-TOTP
    • Time-based OTP
    • 接続したデバイスの現在時刻を使って6〜8桁の数字のOTP を生成する
    • 30秒ごとにOTP が変わる

Google Authenticator、Authy、Duo Mobile、1Passwordなど、どの時間ベースのワンタイムパスワード(TOTP)認証アプリでも使えます

Twitter ヘルプセンター

インストール

Yubico Authenticator のページにOS ごとのインストーラへのリンクがあります。

Yubico Authenticator > Install

今回、Mac とAndroid にインストールしました。

Mac

Mac(macOS)には、下記の2つのインストールする方法が用意されています。

  • AppStore からダウンロード
  • Yubico の公式サイトからdmg ファイルをダウンロード

今回、後者の方法でインストールすることにしました。
※ Homebrew にはなかった
※ 手順は特筆することがないので省略

Android

Google Play を使ってインストールします。
※ 手順は特筆することがないので省略

Yubico Authenticator > Android > Install

使ってみる(Mac)

Launchpad にあるアイコンをクリックしてYubico Auhenticator を起動します。

Yubico Authenticator アイコン (Mac)

Yubico Authenticator のウィンドウが表示されます。
縦長のスマホの画面のようなウィンドウです。

Yubico Authenticator (Dark mode)
Dark mode
Yubico Authenticator (Light mode)
Light mode

Dark modeLight mode の切り替えは、左上の[≡] > Settings > Appearance からできます。

Insert your YubiKey” と表示されているので、パソコン(Mac) のUSBポートにYubiKey を差し込みます。

YubiKey Authenticator (アカウント未登録)

右上のアイコンが差し込んだYubiKey のアイコンに変わり、中央の文言が”No accounts” に変わりました。
このYubiKey のOATH にはアカウントが何も登録されていないです。

ここで一旦、初回のみ行う作業の解説をします。
このアプリは、アカウントを追加する際にブラウザのページ上に表示されるQR コードをスクリーンショットで読み込むので、そのための権限を許可する必要があります。
以下、その手順です。

右上のYubiKey のアイコンをクリックするとメニューが表示されます。

Yubico Authenticator > Authenticator > menu

[Add account] をクリックします。

Yubico Authenticator > Authenticator > Add account

[Scan QR code] をクリックすると、下記のウィンドウが表示されます。

Yubico Authenticator > Macの初期設定

画面収録の許可を求められるので、[“システム環境設定”を開く] をクリックしてシステム環境設定を表示し、セキュリティとプライバシー > プライバシー > 画面収録 のYubico Authenticator.app のチェックをON にします。

初回のみ行う作業は以上です。

アカウントの追加

今回、Twitter アカウントに2要素認証の登録をします。
ブラウザを開き、2要素認証を登録するTwitter アカウントでTwitter にログインし、下記の操作で2要素認証のページを表示します。

  1. サイドメニューの[もっと見る] を開き、[設定とサポート] > [設定とプライバシー] をクリック
  2. [セキュリティとアカウントアクセス] > [セキュリティ] > [2要素認証] をクリック
Twitter > 2要素認証
※ イメージはセキュリティキーが既に設定されていた状態

[認証アプリ] のチェックボックスをクリックします。

Twitter > 2要素認証 1

[はじめる] をクリックします。

Twitter > 2要素認証 2

QR コードが表示されました。

Yubico Authenticator を起動し、右上のYubiKey のアイコンをクリックして表示されるメニューの[Add account] をクリックします。

Yubico Authenticator > Authenticator > Add account 1

下記イメージのようにブラウザ上のQR コードYubico Authenticator アプリの両方が画面に表示された状態にします。

Yubico Authenticator > Authenticator > Add account 2

[Scan QR code] をクリックします。

Yubico Authenticator > Authenticator > Add account 3

値が自動入力され、ボタンが[Scanned QR code] に変わりました。
Issuer とAccount name は変更することができます。
下にあるボタンは、[Require touch] 以外は変更できない状態になりました。

[Require touch] はON/OFF の切り替えができ、ON にすると認証コードの発行にYubiKey のタッチが要求されるようになります。(デフォルトはOFF)

右上の[Save] をクリックして保存します。

Yubico Authenticator > アカウント(Require touch:OFF)
[Require touch] OFF
Yubico Authenticator > アカウント(Require touch:ON)
[Require touch] ON

先ほど、”No accounts” と表示されていた画面にTwitter アカウントが表示されるようになりました。

  • [Require touch] をOFF にすると認証コードが表示されます。認証コードは30秒ごとに別のコードに自動で変わるので、常に最新のコードが表示されます
  • [Require touch] をON にすると認証コードが表示されず、タッチのアイコンが表示されます

[Require touch] をON にしていた場合、アカウントをクリックします。

Yubico Authenticator > Require touch 1

“Touch Required” と表示されると同時に、接続しているYubiKey 本体が点滅し始めるので、YubiKey を指でタッチします。

Yubico Authenticator > Require touch 2

認証コードが表示されました。

Yubico Authenticator > Require touch 3

認証コードは30秒ごとに変わるので、30秒経過すると表示されていた認証コードが灰色になり、クリップボードにコピーする一番左のアイコンは無効になりました。

再度認証コードを発行する場合は左から2つ目のアイコン「↻」をクリックすると”Touch Required” の状態になるので、再度YubiKey をタッチして発行することができます。

この時点ではYubico Authenticator (YubiKey)側のアカウント登録しかできていないので、Twitter の2要素認証を有効にするためにブラウザに戻ります。

ブラウザに戻ったら、QR コードの下にある[次へ] をクリックします。

Yubico Authenticator > Authenticator > Add account 4

認証コードの入力が求められるので、Yubico Authenticator に表示されている認証コードを入力し、[確認] をクリックします。

Yubico Authenticator > Authenticator > Add account 5

これでTwitter の2要素認証が有効になりました。

上の画像の赤枠の箇所にバックアップコードが表示されています。
バックアップコードは、ログイン時の2要素認証で使うことができる使い捨てのコード(12桁の英数字)で、万が一YubiKey を紛失した場合に代替手段として使うことができるので、どこか安全な場所に保管しておくことをお勧めします。

Yubico Authenticator を使った2要素認証のログイン

パソコンのブラウザでTwitter にログインします。
Yubico Authenticator が発行する認証コードを使ってログインできるか確認します。

Yubico Authenticator > Twitter ログイン 1

電話番号/メールアドレス/ユーザー名 を入力して[次へ] をクリックします。

Yubico Authenticator > Twitter ログイン 2

パスワードを入力して[ログイン] をクリックします。

Yubico Authenticator > Twitter ログイン 3
Chrome の小ウィンドウ

[キャンセル] をクリックします。

Yubico Authenticator > Twitter ログイン 4

[コード表示アプリを使用] を選択し、[次へ] をクリックします。

Yubico Authenticator > Twitter ログイン 5

認証コードの入力が求められるので、Yubico Authenticator アプリに表示されている認証コードを入力し、[次へ] をクリックするとログインが成功しました。

使ってみる(Android)

アプリのアイコンをクリックしてYubico Auhenticator を起動します。

Yubico Authenticator アイコン (Android)

Yubico Authenticator のウィンドウが表示されます。

スクリーンショットが禁止されているようで、キャプチャした画像は画面が黒い状態でした。残念ながらここからはイメージなしの解説になります。

Android 版は画面のレイアウトやできることがパソコン版と基本的に同じだったので、パソコン版との違いを確認できた範囲で解説します。

Yubico Authenticator 起動直後の状態

  • パソコン版
    • “Insert your YubiKey” と表示される
  • Android 版
    • Insert or tap your YubiKey” と表示される

Android 版は、USBポートへのYubiKey の物理的な差し込みに加え、YubiKey をかざしてNFC 接続することができます。

参考まで、Pixel でYubiKey をかざす際のかざす位置(NFC チップがある場所)が分かるリンクを貼っておきます。

アカウントの追加

  • パソコン版
    • USB ポートにYubiKey を差し込まないと、右上の”Add account” を含めたメニューが表示されない
  • Android 版
    • YubiKey と接続(*1) すると、右上の”Add account” を含めたメニューがパソコン版と同じように表示される
    • YubiKey と接続(*1) せずに右上のアイコンをクリックすると、カメラが起動してQR コードをスキャンする状態になる。
      このままQR コードをスキャンするとパソコン版と同じように値が自動入力され、[Save] をタップすると”Tap your key” と表示されるので、このタイミングでYubiKey と接続するとアカウントが保存される
    • つまり、YubiKey の接続はQR コードを読み込む前でも後でもよい

(*1) USBポートへのYubiKey の物理的な差し込み、YubiKey をかざしたNFC 接続

Yubico Authenticator で認証コードを発行

“Require touch” をOFF にして登録したアカウントの認証コードをAndroid 版YubiKey をかざしてNFC 接続する場合だけ、特徴的な違いがありました。

“Require touch” OFF“Require touch”ON
パソコンUSB常に最新のコードが表示されるYubiKey をタッチした時のコードが表示され、
30秒過ぎたら再度タッチして再発行
AndroidUSB同上同上
AndroidNFCYubiKey をかざした時のコードが表示され、
30秒過ぎたら再度かざして再発行
YubiKey をかざした時のコードが表示され、
30秒過ぎたら再度かざして再発行

当然ではありますが、認証コードの発行はYubiKey が行うので、常時接続しているUSB と違いNFC の場合は、新しい認証コードを発行するために30秒過ぎる度にスマホにYubiKey をかざす必要があります。

あとがき

複数のデバイスでシームレスに利用できる

YubiKey に登録した同じアカウントで、パソコンとAndroid のYubico Authenticator が発行する認証コードを使って2要素認証のログインができるかをそれぞれ試したら問題なくできた。

YubiKey が手元にあればどの端末でもYubico Authenticator をインストールするだけで認証コードを発行できるので、パソコンやスマホの機種変更の際は、新しい端末にYubico Authenticator をインストールするだけでよいということになる。
つまり、端末の機種変更の際はアカウント情報の移行やユーザ認証等は不要。

YubiKey の紛失や窃取によるアカウント情報の漏洩

YubiKey を入手した第三者に、YubiKey に登録されているアカウントのサービス名とそれに紐づくユーザID、2要素認証の認証コードが伝わってしまうと、残りのパスワードが特定されると不正ログインを許すことになる。
パスワードの使い回しをしていた場合、どこかのサービスで同じユーザIDとパスワードの組みが漏洩していると、その第三者が漏洩したリストを入手してパスワードを特定することが可能になる。

前述「アカウントの追加」で記載したように、QRコードを読み込むとIssuer(サービス名) とAccount Name(ユーザID) が自動入力されるので、それらの情報と認証コードがYubico Authenticator がインストールされた第三者の端末にYubiKey を接続するだけで表示されてしまっては、上記のようなアカウント情報の漏洩が起きてしまうことになる。
それを防ぐ方法は、下記の2つがある。

  • YubiKey にアカウントを追加する際に、QRコードを読み込んで自動入力されたIssuer とAccount Name を変更してから登録する(登録後の変更も可能)
  • YubiKey のOATH 機能にパスワードを設定する
    • Yubico Authenticator の右上のYubiKey のアイコンをクリックして表示されるメニューの[Set password] からパスワードを設定できる
    • パスワードを設定しておくと、端末にYubiKey を接続するとYubico Authenticator からパスワードの入力を求められるようになる

推奨は後者のパスワード設定。設定したパスワードは1Password などのパスワードマネージャに登録しておけばよい。
もしパスワードを忘れた場合は、OATH をリセットするしかない。

前者はアカウントを追加する際に変更し忘れる可能性があるのと、アカウント名を変更することで使い勝手が悪くなるので運用上無理がありそう。

セキュリティキー(FIDO)を使った2要素認証との使い分け

サービス側がセキュリティキー(FIDO)に対応しているのであれば、フィッシング攻撃に耐性のあるセキュリティキー(FIDO)を有効にしておき、メインの2要素認証として使うようにしておけば最強ともいえるセキュアな状態にすることができる。

この場合、同じYubiKey でTOTP を使った認証コードの設定をする意味は全くなさそう。むしろ下手に設定することで前述したような不正ログインのリスクを作ることになりかねない。

認証アプリの種類と使い分け

サービス側がセキュリティキー(FIDO)に対応していないが、TOTP を使った認証コードに対応している場合は、フィッシング攻撃に耐性がないがTOTP を使った認証コードを有効にしておくことで、パスワード認証のみよりはセキュアな状態にすることができる。

どの認証アプリを使うかの選択は、利便性を含めて使う側の好みにもよるので、ざっくりとした比較だけしておく。

クレデンシャルの保存場所と
認証コードの発行
クレデンシャルの
サーバへの保存
認証アプリ
認証アプリ保存されないGoogle Authenticator、Microsoft Authenticator
同上保存されるAuthy、1Password
YubiKey (OATH)Yubico Authenticator

パソコンのYubico Authenticator をメインで使う

YubiKey 5 NanoYubikey 5C Nano であれば、パソコンに常時接続しておくと邪魔にならずに便利そう。
ただ、コンパクトであることが仇になりかねないので、ログインしようとしたらYubiKey が無くなっていることに気づいたということが起きかねない環境でパソコンを使う際は要注意。

スマホのYubico Authenticator をメインで使う

YubiKey 5 NFCYubiKey 5C NFC などNFC を搭載したYubiKey の方が便利そう。
Android とUSB 接続して使えることを今回確認したが、普段そのような使い方はしないと思う。

YubiKey Manager command line tool (ykman)

Yubico Authenticator 6 のリリースについてYubico 社が公開したブログより抜粋。

To support this new app we also needed to improve the library aspects of ykman, which resulted in the release of ykman 5.0.

デスクトップ版 のYubico Authenticator は、YubiKey Manager command line tool (ykman) をライブラリと使っていて、今回の対応でykman 5.0 をリリースすることになったとのこと。
ykman 5.0 では、ykman コマンドでpython のスクリプトを実行してYubiKey を設定できるのだとか。

ykman 5.0 のことが気になったので、YubiKey Manager (GUI版) をインストールした際に同梱されていた現在使っているバージョンを確認。

% which ykman
/Applications/YubiKey Manager.app/Contents/MacOS/ykman

% ykman -v
YubiKey Manager (ykman) version: 4.0.7

このYubiKey Manager (GUI版) は最新版だったので、ykman 5.0 が同梱されているバージョンはまだ公開されていなかった。

Yubico Authenticator をインストール後にYubico Authenticator.app 内を探してみたけれど、ykman は見つからず。Yubico Authenticator にはykman は同梱されていなかった。

GitHub にはykman 5.0 があったので、使いたい場合は個別にインストールする必要があるみたい。
Homebrew のykman は5.0 になっていたので、Mac ユーザであればこちらも利用可能。

ykman 5.0 のインストールは保留にして、とりあえず現在のykman 4.07 でOATH に登録したTwitter のアカウントを確認するコマンドを実行してみた。

% ykman oath accounts list -H -o -P
Twitter:@RodentGiant, TOTP, 30

他にもアカウント登録など色々なオプションがあるので気になるけれど、収拾つかなくなりそうなのでとりあえず今回はここまでとする。

参照

Pixel 6aへの機種変更

Google のPixel 6a 買いました。

メインで使っているスマホはAndroid なので、Android からAndroid への移行を行います。

Android 同士の移行には、旧スマホのデータをGoogle のクラウド、有線接続、WiFi接続のいずれかを使ってコピーする便利な方法が提供されていますが、不要なものはコピーしたくない、ゼロからセットアップする手順を見たいという理由から、この便利な方法は使わずに新スマホをセットアップすることにしました。

なので、Android 同士の移行をする方法としてあまり参考にならないかもしれませんが、どのような手順があるのかどのような移行の注意点があるのかが後から見て分かるように記録できればと思います。

方針・前提事項

  • Android ユーザが新しいAndroid 端末に移行する手順です
  • Google のクラウド、有線接続、WiFi接続のいずれかを使ってコピーする便利な方法がありますが使わないです
  • 新Android へのアプリのインストールは、パソコンのブラウザ上でGoogle Play のページを開いてアプリを一つ一つ選択して行います(最低限のアプリしかインストールしたくない、スマホよりパソコンの方が効率的に作業できそうということでこの方法になりました)
  • 旧Android に保存されているデータの移行はアプリの移行が完了してから考える

手順

1. Pixel 6a の初回起動

Google の公式サイトを見るとPixel のセットアップは、(1)今までのスマートフォンに保存されているデータからの移行(2)新しいデバイスとしてセットアップの2つの方法があります。
今回は(2)新しいデバイスとしてセットアップの方をやります。

  1. 電源を入れる(電源ボタンを5秒間長押しする)
  2. “Welcome to your Pixel” と表示される
    • “English (United States)” をタップして”日本語” に変更
    • “アシストオプション” はそのまま
    • [始める] をタップ
  3. モバイルネットワークへの接続
    • SIMカードをSIMスロットに挿入する ※挿入すると自動的に次へ
    • “SIMをダウンロードしますか?” はそのまま
  4. Wi-Fi に接続
    • 接続するアクセスポイントをタップしてパスワードを入力
    • アクセスポイントの詳細表示の中身はデフォルトのまま(以下一部抜粋)
      • 従量制:自動的に検出
      • プライバシー:ランダムMACを使用
    • [接続] をタップ
  5. “スマートフォンの設定中…” と表示される ※10秒程度
  6. アプリとデータのコピー
    • [次へ] ではなく、[コピーしない] をタップ
  7. “情報を確認しています…” と表示される ※5秒程度
  8. ログイン:Google アカウントでログインしましょう
    • メールアドレスに自身のGoogle アカウントのアドレスを入力して[次へ] をタップ
    • パスワードを入力して[次へ] をタップ
    • 2段階認証プロセスで使用している方式を使う
      • YubiKey を使っているので、”NFCでセキュリティキーを使用する” を選択してスマホの背面にセキュリティキーを当てる
    • “電話番号を追加しますか?” で[はい、追加します] をタップ
  9. Google 利用規約、プライバシーポリシーのリンクが表示される
    • [同意する] をタップ
  10. “アカウント情報を取得しています…” と表示される ※5秒程度
  11. Google サービス ※許可するものをONにする
    • 位置情報の使用:ON(デフォルト)
    • スキャンの許可:ON(デフォルト)
    • 使用状況データや診断データの送信:ON(デフォルト)
    • [同意する] をタップ
  12. スマートフォンをGoogle One でバックアップ ※以下参考情報
    • Google アカウントの保存容量の15GB アップアップに使う
    • 自動でバックアップ ※充電器とWi-Fiに接続されている時
    • [ONにする] をタップ
  13. PINの設定
    • 数値4桁以上を入力して[次へ] をタップ
    • PIN の再入力
  14. 指紋認証によるロック解除の設定
    • [同意する] をタップ
    • “指紋の登録方法” で[開始] をタップ
    • “指紋認証センターを長押ししてください” で画面に表示される指紋マークに指紋認証に使う指(左手の親指)を押し当てる→振動→押し当てる→振動 を何度か繰り返す
    • “指紋の登録完了” で”別の指紋を登録” をタップ
    • 右手の親指で同じように指紋を登録する
    • [次へ] をタップ
  15. “セットアップを続けますか?” と表示される
    • [中断し、リマインダーを受け取る] ではなく、[続行] をタップ
  16. “Google にハンズフリーで話しかける” と表示される
    • [同意する] ではなく、[スキップ] をタップ
    • ※アシスタントの設定で変更できる
  17. “デバイスのロックを解除しないでアシスタントにアクセス” と表示される
    • [同意する] ではなく、[スキップ] をタップ
    • ※ロック画面でアシスタントの使用を許可するかどうか
  18. “スマートフォンですばやくお支払い” と表示される
    • [次へ] ではなく、[スキップ] をタップ
    • ※Google Pay の設定
  19. “さらに設定を続けますか?” と表示される
    • ※他のアカウント追加, フォントサイズ変更, アプリ追加, 壁紙変更, ロック画面に表示する情報の管理, ディスプレイ常時ON などが続けてできる
    • [いいえ] をタップ
  20. “ヒントやアドバイスを受け取る” と表示される
    • ※Google の製品やサービス等の情報をメールで受け取るかどうかの設定
    • [登録する] ではなく、[スキップ] をタップ(確か既に登録済みのはず)
  21. “スマートフォンでのスワイプ操作” と表示される
    • [スキップ] ではなく、[試してみる] をタップ
      • ホームに戻る →画面を下から上にスワイプ
      • 直前の画面に戻る →画面の左か右から中央にスワイプ
      • アプリを切り替える →画面を下から上にスワイプして長押ししてから指を離す
  22. “設定完了” と表示される
    • “システムナビゲーションの設定” をタップ
      • “ジェスチャーナビゲーション”(デフォルト) と”3ボタンナビゲーション”(画面の切り替えが画面下部のボタンで行う) のどちらかを選択する
    • 上にスワイプするとホームに移動する
Google Pixel 6a 初回起動完了

2. Google アカウントに電話番号を追加の続き

メッセージアプリにメッセージが届いているのでメッセージアプリをタップすると、”Google による電話番号の確認” というメッセージが届いていました。
Pixel の初回起動の#8 で電話番号を追加する選択をしたので、このメッセージが送信されたようです。
ということで、電話番号追加の確認手順を進めます。

  1. “Google による電話番号の確認” というメッセージにhttps://goo.gl/で始まるURLのリンクがあるのでリンクをタップ
  2. Chrome が起動するので[同意する] をタップ
  3. “同期を有効にしますか?” と表示されるので、[いいえ] ではなく[有効にする] をタップ
  4. “Android ヘルプ” の”Androidスマートフォンの電話番号の確認手続きを行う” のページが表示される

このタイミングで、”Pixel のセットアップを完了してください” という通知が表示されました。
この通知をタップすると、Pixel の初回起動の#18 でスキップしたGoogle Pay の設定や、データのコピー、それ以外の設定をすることができましたが、これらは後で必要であればやればよいと思っていたことなのでスキップしました。

3. プリインストールアプリを確認する

16個のアプリをインストールしました” という通知が来ているので、初回起動直後の既にインストールされているアプリを確認しておきます。

全部で34個のアプリのアイコンがありました。

Google Pixel 6a アプリ(1/2)
Google Pixel 6a アプリ(2/2)

4. アプリをインストールする

アプリのインストールは、Playストアのアプリではなく、パソコンのブラウザで開いたGoogle Play のページ上で行います。

  1. パソコンのブラウザでGoogle Play のページを開く
    • Pixel の初回起動の#8 と同じGoogle アカウントでログインする
  2. 右上のアイコンをクリックすると表示されるメニューから「ライブラリとデバイス」をクリック
  3. ライブラリというページが開くので、上のメニューの「デバイス」をクリック
    • 旧Android と新Android が表示されているはずです
    • ここでAndroid のニックネームを変えることができます
  4. 上のメニューの「アプリ」をクリック
    • 旧Android でインストールしていたアプリが表示されます
    • 新Android へのアプリのインストールはこのページでインストールしたいアプリを選択して1つずつインストールする操作を行います
  5. まずは、LINE アプリをインストールするので、LINE のアイコンをクリック
  6. LINE アプリのページが開くので、[他のデバイスへのインストール] をクリック
  7. デバイスの選択ウィンドウが開くので、新Android(今回は”Google Pixel 6a”)を選択して[インストール] をクリック
  8. これで新Android へのLINE アプリのインストールが開始されます

この#4 のアプリ一覧のページでインストールしたいアプリをひとつひとつ選んでインストールする作業をひたすらやります。
面倒ではありますが、これで最低限必要なアプリしかインストールされていない環境にすることができます。

この作業に微妙なコツがあったので手順を記載しておきます。

  1. アプリ一覧でCommand ボタンを押しながらアプリのアイコンをクリックして新しいタブでアプリのページを開く(Macのショートカット)
  2. [他のデバイスへのインストール] をクリック
  3. デバイスを選択して[インストール] をクリック
  4. アプリのページのタブを閉じると、アプリ一覧のタブが同じ場所で表示される

#1 の操作のように新しいタブで開かないと、アプリのページからアプリ一覧のページに戻った時にページの一番上に戻ってしまい、直前のインストールしたアプリの所までスクロールすることになってしまいます。

今回は42個のアプリをインストールしたので、この手順によって作業負荷やかかる時間がそれなりに違ったと思います。

5. アプリの初期設定

どういう順番でアプリの初期設定をするかを考えてみました。

  1. パスワードマネージャ
    • 1Password
  2. 認証アプリ(ワンタイムパスワードを発行するアプリ)
    • Google 認証システム、Twilio Authy Authenticator
  3. 移行にミスるとやり直しが利かなそうなアプリ
    • LINE ※引き継ぎが必要
    • モバイルSuica ※引き継ぎが必要
    • ヨドバシゴールドポイントカード
  4. 認証アプリを使ってワンタイムパスワードを扱うアプリ(2段階認証)
    • Twitter、Facebook、Amazon、etc.
  5. 認証アプリを使わないでワンタイムパスワードを扱うアプリ
    • 三菱UFJ銀行
  6. 上記以外

5-1. 1Password

「サインアップコードを読み取る」というQRコードを使う方法で簡単にできました。

  1. 【旧スマホの1Password アプリ】QRコードを表示
    • アプリを開き、[アカウント] > (自身のアカウント名) > [別のデバイスをセットアップ] > [セットアップコード] を選択してQRコードを表示する
    • パソコンの1Password アプリでもQRコードを表示できます
  2. 【新スマホの1Password アプリ】QRコードをスキャン
    1. アプリを起動し、[セットアップコードを読み取る] をタップしてQRコードをスキャン
    2. パスワードを入力するとサインイン完了(2要素認証を有効にしている場合は2要素目の入力も必要)

新スマホで1Password アプリが使える状態になりました。

5-2. Google 認証システム

登録しているアカウントの移行をQRコードを使って簡単にできました。

  1. 【旧スマホのGoogle 認証システムアプリ】QRコードを表示
    1. アプリを開き、右上のメニューから[アカウントを移行] > [アカウントのエクスポート] をタップ
    2. “アカウントの選択” ページで移行するアカウントのチェックをON にして[次へ] をタップするとQRコードが表示される
  2. 【新スマホのGoogle 認証システムアプリ】QRコードをスキャン
    1. アプリを起動し、[QRコードをスキャン] をタップしてQRコードをスキャンする
  3. (続きがある場合、下記を繰り返す)
    1. 旧スマホのアプリで[次へ] をタップして次のQRコードを表示
    2. 新スマホのアプリでQRコードをスキャン

新スマホのGoogle 認証システムアプリに旧スマホと同じアカウントが表示されました。6桁コードは旧スマホと新スマホで同じ番号が表示されています。

<補足> Google 認証システムに登録しているアカウントの数が多いと、1つのQRコードでは収まらないので複数のQRコードに分けて全てのアカウントを移行できるようになっているようです。ちなみに今回は3つのQRコードが表示されました。1つ目と2つ目は細かいQRコードで、3つ目はそれ程細かくないQRコードでした。

5-3. Twilio Authy Authenticator

登録しているアカウントを旧スマホでバックアップすることで簡単にできました。

  1. 【旧スマホのAuthyアプリ】バックアップを有効にする
    本来はAuthyアプリにアカウントを登録したタイミングで行う作業
    1. アプリを開き、右上のメニューから[Settings] > [ACCOUNTS]タブ > Backups をON にする
    2. Backup用に登録するパスワードを入力して[Enable Backup] をタップ
  2. 【新スマホのAuthyアプリ】
    1. アプリを起動し、登録している電話番号を入力して[Submit] をタップ
    2. [Use existing device with Authy installed] をタップ
  3. 【旧スマホのAuthyアプリ】
    1. アプリを開くと、New Device の画面が表示されるので[ACCEPT] をタップ
    2. “OK” のテキスト入力するよう求められるので、“OK”(2文字)を入力して[OK] をタップ
  4. 【新スマホのAuthyアプリ】
    1. [Settings] > [DEVICES]タブ に”Android” という名前のデバイスが2つ表示されているので、Allow multi-device をOFF にする

新スマホのAuthyアプリにアカウントが表示されました。
ちなみに登録しているSenGrid アカウントの表示されているコードが旧スマホと新スマホで異なっていましたが、新スマホの番号を使ってSendGird にログインすることができました。

5-4. LINE

「かんたん引き継ぎQRコード」というQRコードを使う方法で簡単にできました。
ただ、Android 同士の移行ではこれだけだとトーク履歴が移行されないので「トーク履歴のバックアップと復元」で旧スマホのトーク履歴をGoogle ドライブに保存してトーク履歴も移行します。

  1. 【旧スマホのLINE アプリ】トーク履歴のバックアップ、QRコードを表示
    1. アプリを開き、[設定] > [トーク履歴のバックアップ・復元] でバックアップ用のPINコードを設定して、現時点のバックアップをGoogle ドライブに保存する
    2. [設定] > [かんたん引き継ぎQRコード] をタップしてQRコードを表示する
  2. 【新スマホのLINE アプリ】QRコードをスキャン
    • アプリを起動し、[ログイン] > [QRコードでログイン] > [QRコードをスキャン] をタップしてQRコードをスキャンする
  3. 【旧スマホのLINE アプリ】QRコードスキャンの承認
    • “このQRコードをスキャンしましたか?” と表示されるので、”はい、スキャンしました” のチェックをONにしてから[次へ] をタップする
  4. 【新スマホのLINE アプリ】トーク履歴の移行
    1. Google アカウントを選択するページが表示されるので、Google アカウントを選択して[トーク履歴を復元] をタップするとトーク履歴の復元が始まるので、そのまま[次へ] をタップする
    2. “端末の位置情報の提供”と “LINE Beacon の利用” の同意ページで[OK] をタップ ※両方とも任意なので提供・利用したくなければチェックを外す

新スマホでLINE アプリを使える状態になりました。トーク履歴もあります。

旧スマホのLINE アプリを見ると、”利用することができません” と表示されています。同じアカウントを複数のスマホで同時に使うことができない仕組みになっているようです。

<補足> メールアドレスと電話番号、パスワードの位置付けがよく分からなかったので調べてみたら下記の扱いのようでした。

  • 電話番号:必須(スマホを紛失・故障した際のLINEアカウントの引き継ぎ時に使う)
  • パスワード:必須(スマホの紛失・故障・機種変更した際のLINEアカウントの引き継ぎ、パソコン版LINE利用時に使う)
  • メールアドレス:任意(スマホの機種変更でLINEアカウント引き継ぎ時にパスワードを忘れていても再設定できる)

参考

5-5. モバイルSuica

旧スマホのおサイフケータイアプリにログインしているGoogle アカウントと同じアカウントで新スマホのおサイフケータイアプリにログインすることで、Suica カードをGoogle アカウント経由で旧スマホから新スマホに移行するようです。
モバイルSuica アプリとおサイフケータイアプリの2つのアプリを使うので、何のための操作をしているのか感覚的に分かりづらく感じました。

  1. 【旧スマホのモバイルSuicaアプリ】カードを預ける(Step 1)
    1. アプリを開き、[会員メニュー] > [カードを預ける(機種変更)] > [「おサイフケータイ」アプリ起動] > [アプリ起動] をタップすると、おサイフケータイアプリが起動する
  2. 【旧スマホのおサイフケータイアプリ】カードを預ける(Step 2)
    1. [カードを預ける(機種変更)] > [はい] をタップ
    2. “カードを預ける” におサイフケータイアプリにログインしているGoogleアカウントのメールアドレスが表示されるので[預ける] をタップ
    3. “このカードのおサイフケータイアプリでの受け取りには、ご利用中のGoogle アカウントが必要です” と表示されるので[閉じる] をタップ
    4. マイサービスに表示されていたモバイルSuica が表示されなくなった
  3. 【新スマホのおサイフケータイアプリ】おサイフケータイアプリの初期設定
    1. アプリを起動し、[次へ] をタップ
    2. 利用規約のチェックをONにして[次へ] をタップ
    3. “初期設定完了” と表示されたら[次へ] をタップ
    4. “おサイフケータイアプリ「Googleでログイン」について” と表示されたら[次へ] をタップ
    5. “Googleでログインしてください” と表示されたら[Google でログイン] をタップ
    6. マイサービスが表示される
  4. 【新スマホのモバイルSuicaアプリ】カードを受け取る(Step 1)
    1. アプリを起動し、[スキップ] > [はじめる] をタップ
    2. [すでに会員の方はこちら] をタップ
    3. メールアドレスとパスワードを入力して[ログイン] をタップ
    4. “カードを受け取る” で[次へ] をタップ
    5. “受け取るSuicaを選んでください” で表示されたSuica カードから移行するカードを選択して[受け取る] をタップ
    6. “おサイフケータイを起動します” で[アプリ起動] をタップすると、おサイフケータイアプリが起動する
  5. 【新スマホのおサイフケータイアプリ】カードを受け取る(Step 2)
    1. “受け取るカードの選択” で[受け取る] をタップ
    2. 受け取る選択をしたSuica カードが表示された
  6. 【新スマホのモバイルSuicaアプリ】
    1. アプリを開き、パスワードを入力して[ログイン] をタップ
    2. 受け取る選択をしたSuica カードが表示された

新スマホでモバイルSuica アプリを使える状態になりました。
見た目上は旧スマホと同じ状態なので、たぶん改札を通れるはずです。

旧スマホのモバイルSuica アプリを見ると、新規登録かカードの受け取りかを選択する画面が表示されています。同じSuica カードを複数のスマホで同時に使うことができない仕組みになっているようです。

5-6. ヨドバシゴールドポイントカード

ヨドバシカメラの公式サイトを見ると、新スマホで自身のアカウントでログインすればポイント残高はそのまま使えるという記述がありますが、機種変更時の手順は(1) 旧スマホのアプリで削除、(2) 新スマホのアプリで再登録、となっているので素直に従います。

  1. 【旧スマホのヨドバシゴールドポイントカードアプリ】
    1. アプリを開き、左上のメニューから[xx様のマイページ] > [ゴールドポイントカード登録解除] をタップ
    2. “アプリのゴールドポイントカードの登録解除” で[解除する] をタップ
  2. 【新スマホのヨドバシゴールドポイントカードアプリ】
    1. アプリを起動し、会員ID(メールアドレス)とパスワードを入力し[ログイン] をタップ
    2. 生年月日を入力し[送信] をタップ
    3. “ゴールドポイントの登録が完了しました” と表示されたら[おサイフケータイを登録する] をタップ ※[今はしない] の選択も可能
    4. ゴールドポイント残高に金額が表示された

新スマホでヨドバシゴールドポイントカード アプリを使える状態になりました。

5-7. 三菱UFJ銀行

三菱UFJ銀行の公式サイトを見ると、スマホを機種変更した場合は再度ワンタイムパスワードの利用登録が必要という記述があります。このワンタイムパスワードは振込などの取引をする際に使うものなので、初期セットアップのタイミングで登録しておきます。

  1. 【新スマホの三菱UFJ銀行アプリ】
    1. アプリを起動し、[ログイン] をタップ
    2. 利用規約の[同意してアプリを利用する] をタップ
    3. 契約番号とログインパスワードを入力して[ログイン] をタップ
    4. ログインに成功すると”ワンタイムパスワード利用登録” のウィンドウが表示されるので[登録に進む] をタップ
    5. 電話、運転免許証またはマイナンバーカードのいずれかを選択して認証すると設定が完了する

旧スマホの三菱UFJ銀行アプリで解除などの操作は何もやらなかったのですが、旧スマホの三菱UFJ銀行アプリを見ると、アプリ初回起動時のような状態になっていました。

6. 旧スマホのデバイスに紐づいた設定を解除する

6-1. Google アカウントのスマートフォンのセキュリティキーの登録を削除

Google アカウントの2段階認証で旧スマホを使ったAndroidスマホをセキュリティキーとして使う機能を有効にしていたので、これを無効にします。

  1. パソコンのブラウザでGoogle アカウントのページを開く
  2. サイドメニューの[セキュリティ] をクリックし、”Google へのログイン” の[2段階認証プロセス] をクリック
  3. アカウントのパスワードを入力して[次へ] をクリック
  4. “2 段階認証プロセス” で[セキュリティキー] をクリック
  5. “セキュリティ キー” に”Titan セキュリティを使用” とコメントが書かれた”スマートフォンのセキュリティ キー” があるので、右のゴミ箱アイコンをクリックして削除

2段階認証プロセスに他のセキュリティキーや認証アプリ、SMS などの手段を登録しているので後で削除すればよい気もしますが、この設定が残っていて何もよいことはないのでこのタイミングで忘れず削除しておきます。

あとがき

最近、既存のパスワードに置き換わるユーザ認証の仕組みとしてPasskey が話題になっているので、スマホの機種変更がPasskey によってどうなるのかを体験してみたかったのですが、Android とChrome の一般ユーザへのサービス提供は今年の11月後半の予定とのことだったので、待ちきれませんでした。
スマホの機種変更に関係なく安全なユーザ認証を実現する技術として期待されているので、情報は追っていきたいと思います。

参照