Face ID と生体認証によるロック解除
マスターパスワードでデータベースを一度ロック解除すると、Kakuremi は以降のロック解除に Face ID や Touch ID を使用できます。本記事では、生体認証によるロック解除の有効化方法、マスターパスワードの保管場所、生体認証が利用できない場合の挙動について説明します。
まずマスターパスワードで一度ロック解除する
生体認証によるロック解除は、既存のマスターパスワードでのロック解除を前提としています。データベースを初めて開くときは、マスターパスワードを入力します(YubiKey を設定している場合は YubiKey もタップします)。ロック解除画面では、パスワード欄が常に主たる入力手段です。
Face ID ロック解除を有効にする
設定を開き、セキュリティのセクションを探します。Face ID ロック解除をオンにします。「Face ID を有効にする」といった別途の確認ダイアログはありません。iPhone で生体認証が利用でき、このトグルがオンになっていれば、次にマスターパスワードでロック解除したときに Kakuremi がマスターパスワードを保存し、以降のロック解除で Face ID や Touch ID を使えるようになります。
顔や指紋を登録していないシミュレーターでテストしている場合、利用できる生体認証がないため、Face ID ロック解除の行は表示されません。
マスターパスワードの保管場所
生体認証によるロック解除がオンのとき、Kakuremi はマスターパスワードを iOS キーチェーンに、保護クラス WhenUnlockedThisDeviceOnly とアクセス制御 .biometryCurrentSet を付けて保管します。マスターパスワードがデバイスの外に出ることはなく、Secure Enclave には保存されません。iOS は生体認証に成功した後にのみ、これを Kakuremi に渡します。
Face ID でロック解除する、または入力にフォールバックする
以降のロック解除では、Kakuremi が自動的に Face ID または Touch ID を求めます。生体認証に失敗した場合、画面はそのままパスワード欄に留まります。「マスターパスワードを使用」といった別のボタンはありません。続行するには、マスターパスワードを入力してください。
自動ロックと再ロック
Kakuremi は自動ロックのタイムアウト後に保管庫を再ロックします(既定では 1 分。設定で調整できます)。自分で実行したロックの後は、Kakuremi が生体認証を自動的に求めることはありません。改めてデータベースを開くと求められます。
Face ID ロック解除をオフにする
Face ID ロック解除をオフにすると、生体認証ボタンが非表示になり、自動的な認証要求が止まり、マスターパスワードの保存も止まります。さらに、キーチェーンに保存済みの認証情報も消去されるため、次回のロック解除にはマスターパスワードが必要になります。
.biometryCurrentSet に紐付いているため、iOS で新しい顔や指紋を登録すると無効になります。その場合は一度マスターパスワードを再入力する必要があり、その後に生体認証によるロック解除が再開します。