二要素認証
Zenavo のアカウントからは接続したすべてのサーバーに手が届くので、2 つ目の要素で守ってください。Account settings → Security で、認証アプリを設定するか、パスキーを追加するか、その両方でオンにできます。
認証アプリ
- Set up をクリックし、認証アプリ(1Password、Google Authenticator、Microsoft Authenticator、Authy など TOTP に対応したもの)で QR コードを読み取ります。読み取れない場合はセットアップキーを入力します。
- アプリに表示された 6 桁のコードを入力します。
- 10 個のリカバリーコードをパスワードマネージャーなど安全な場所に保存します。表示されるのは一度だけです。
最初の 2 つ目の要素(アプリかパスキー)で二要素認証がオンになります。リカバリーコードが作られ、二要素認証なしでサインインしていた他のセッションはサインアウトされます。あとからもう一方を追加しても、リカバリーコードはそのままです。
パスキー
パスキーは単独でも、認証アプリと併用しても使え、サインインの仕上げに使います。パスキーは Touch ID や Face ID(iCloud キーチェーン)、Windows Hello、Google パスワードマネージャー、1Password のようなパスワードマネージャー、YubiKey のようなハードウェアセキュリティキーに保存されます。
- Security → Passkeys で Add passkey をクリックします。
- 「MacBook Touch ID」のように見分けのつく名前を付け、Continue をクリックします。
- ブラウザーの案内に従います。
- これが最初の 2 つ目の要素なら、次に表示されるリカバリーコードを保存します。
デバイスごとに 1 つなど、20 個まで追加できます。それぞれに追加日時、最終使用日時、デバイス間で同期されるかが表示されます。Remove で削除します。
パスキーはコンソールのアドレスに結び付いていて、そこでコンソールを開いたときだけ使えます。
認証アプリの Turn off はアプリだけを外し、パスキーとリカバリーコードは使えるままです。アプリもパスキーもなくなると、二要素認証はオフになり、リカバリーコードは削除されます。
サインイン
パスワードのあと、または GitHub や Google のあと、Zenavo はアプリの現在のコードを求めます。パスキーを追加していれば Use a passkey も選べます。各コードは 1 回だけ使えます。スマートフォンをなくしたら Use a recovery code を選んでください。各リカバリーコードも 1 回だけ使えます。パスキーしかない場合、予備の手段はリカバリーコードです。Security に残りの数が表示され、Generate new codes で全部を入れ替えられます。
メールでのパスワードリセットで変わるのはパスワードだけで、2 つ目の要素は変わりません。その後のサインインにもコードが必要です。
コードを 5 回間違えると、そのアカウントのコード入力は 15 分間ロックされます。
機密性の高い操作
サインイン後は、もうコードを求められません。サーバーの追加、API キーの作成、CLI のサインインの承認、二要素認証の設定変更に必要なのはロールだけです。二要素認証が守るのはサインインです。アカウント自体の変更は、フォームに現在のパスワードの欄があればその入力を求めます(メールアドレス、パスワード、アカウントの削除。アカウントを参照)。チームを削除するときはチーム名の入力を求めます。
新しいサインインのメール
誰かがあなたのアカウントに継続的なアクセスを得たとき、Zenavo はメールを送ります。
- アカウントが使ったことのないブラウザーからのサインイン(パスワード、GitHub、Google、パスワードリセットのリンク)。二要素認証がオンなら、2 つ目の要素が通ったあとに送ります
- あなたが承認した CLI のサインイン
- 新しい API キー
メールには、日時、おおよそのブラウザーとシステム(ブラウザーの user agent から)、IP アドレス、サインイン方法と、そのデバイスをサインアウトさせるための Account settings → Sessions へのリンクが載っています。トークン、コード、シークレットが含まれることはありません。身に覚えがなければ、そのセッションをサインアウトさせ(またはキーを削除し)、パスワードを変更し、二要素認証をオンにしてください。
Zenavo は、サインイン時に残す長期間有効なランダムな Cookie でブラウザーを見分けます。アカウントにはそのハッシュだけを保存します。Cookie のないブラウザー(消去済み、プライベートウィンドウ)でも、最近使ったデバイスやセッションと同じネットワーク(IP の /24、IPv6 なら /48)から同じブラウザーとシステムでサインインすれば、既知とみなします。180 日使われないデバイスは忘れます。登録直後の最初のサインインでは何も送りません。この機能を追加したばかりのコントロールプレーンでは、まだ既知のブラウザーがないため、各ブラウザーからの最初のサインインで 1 通届くことがあります。
これらのメールはデバイスごとに 1 時間に 1 通までです。それぞれ監査ログに記録されます。全員にデフォルトでオンで、Account settings → Notifications でオフにできますが、おすすめしません。
最近のアクティビティ
Security には、最近のサインイン、失敗した試行、API キー、その他のアカウントの変更も、監査ログから表示されます。誰かにアカウントを使われた疑いがあれば確認してください。
保存の仕方
認証アプリのシークレットはコントロールプレーンのマスターキーで暗号化します。リカバリーコードはハッシュだけを保存します。
パスキーについて Zenavo が保存するのは、公開鍵、クレデンシャル ID、認証器のモデル(AAGUID)、付けた名前、署名カウンターだけで、秘密鍵がデバイスを離れることはありません。パスキーの確認ごとに、1 回だけ使える新しいチャレンジに応答します。チャレンジは 5 分で期限が切れ、あなたのセッション(サインイン中はそのサインイン)に結び付いています。パスキーの署名カウンターが戻った場合(鍵が複製された兆候)、Zenavo はそれを拒否して監査ログに記録します。そのパスキーは削除してください。