1Passwordアプリ統合セキュリティー
1Passwordマニュアル|1Password CLIとデスクトップアプリの統合で、セキュリティーを強化しつつ効率的にアカウント管理が可能です。
1Password app integration security
Security model
1Password CLI を 1Password アプリと統合すると、 1Password デスクトップ アプリに追加したアカウントを 1Password CLI で使用できるようになります。新しいターミナル ウィンドウまたはタブで 1Password CLI を使うたびに、生体認証による認証を求められます。この認証により、使用のたびに自動的に更新される 10 分間のセッションが確立されます。
1Password アカウントには、ユーザーが明示的に生体認証を行った後にのみ 1Password CLI からアクセスできます。認証は一度に 1 つのアカウントに制限されています。ユーザーには、1Password アカウントの表示名 (例:AgileBitsまたはWendy Appleseed's Family) と認証されるプロセス (例:iTerm2またはTerminal) を含むプロンプトが表示されます。ユーザーは、1Password CLI が要求されたアカウントの詳細にアクセスできるように、プロンプトを確認する必要があります。
1Password アプリがロックされているときに 1Password CLI の使用を承認すると、1Password アプリのロックが解除されます。1Password アプリがロックされると、以前の承認はすべて取り消されます。1Password CLI を新たに呼び出すには、新しい承認が必要になります。承認が取り消されたとき、または期限が切れたときにプロセスが実行中の場合は、タスクを完了して終了できます。
認可モデル
1Password CLI での認証はアカウントごとに行われます。複数のアカウントにサインインする場合は、各アカウントを個別に認証する必要があります。
ターミナル セッションで 10 分間操Createが行われないと、認証は期限切れになります。12 時間というハード リミットがあり、その後は再度認証する必要があります。
新しいターミナル ウィンドウまたはタブで 1Password CLI コマンドを使うたびに、アカウントを再度認証する必要があります。
macOS および Linux では、認証はターミナル セッションに限定されますが、そのウィンドウ内のサブシェル プロセスにも拡張されます。
Windows では、サブシェルで実行されるコマンドには個別の認証が必要です。
許容されるリスク
同じシステムでルート/管理者レベルの権限を持つユーザーまたはアプリケーションは、1 つ以上のセキュリティ対策を回避し、1Password アプリがロック解除されている場合に限り、1Password CLI を介して許可なく 1Password アカウントにアクセスできる可能性があります。
macOS でアクセシビリティ権限が付与されているアプリケーションは、認証プロンプトを回避できる可能性があります。
技術設計
セッション資格情報
セッション資格情報は、1Password CLI が呼び出されるターミナル ウィンドウまたはアプリケーションを識別するために使用されます。目的は、付与された認証を単一のターミナルに制限することです。ユーザーがaccount X1 つのターミナル ウィンドウで認証した場合、account y別のターミナル ウィンドウで使うには、ユーザーからの別の承認が必要です。これらの資格情報には、機密情報や秘密情報は含まれません。
Mac
macOS のセッション資格情報は、現在の tty に開始時間を加えた ID です。このようにして、ID が再利用された後でも、全てのセッション資格情報は一意になります。
Linux
Linux のセッション資格情報は、現在の tty に開始時間を加えた ID です。このようにして、ID が再利用された後でも、全てのセッション資格情報は一意になります。
Windows
Windows のセッション資格情報は、1Password CLI を呼び出すプロセスの PID と開始時刻に基づいた ID です。これにより、ID が再利用された後でも、全てのセッション資格情報は一意になります。
1Password CLI は 1Password アプリとどのように通信しますか?
1Password CLI はプロセス間通信を使用して 1Password アプリにアクセスし、アプリにSaveされているアカウントにアクセスします。
Mac
IPC には NSXPCConnection XPC API が使用されます。 1Password アプリは、XPC サーバーとして機能するサービス (1Password Browser Helper) をセットアップします。 1Password CLI と 1Password アプリの両方がこのサーバーに接続します。両方の信頼性は、コード署名を検証することによって確認されます。 1Password ブラウザ ヘルパーは、1Password アプリと 1Password CLI 間のメッセージ中継として機能します。
Linux
1Password CLI は、1Password アプリによって開かれた Unix ソケットに接続します。ソケットは現在のユーザー/グループによって所有されており、このユーザーによって開始されたプロセスはソケットに接続できます。 1Password CLI は onepassword-cli グループによって所有されており、Linux では set-gid ビットが設定されています。 1Password アプリは、UNIX ソケットで接続しているプロセスの GID が onepassword-cli グループの GID と等しいかどうかを確認することで、1Password CLI の信頼性を検証します。 GID が一致しない場合、メッセージが受け入れられる前に接続がリセットされます。
Windows
1Password CLI は、1Password アプリによって開かれた名前付きパイプに接続します。アプリは、プロセスの実行可能ファイルの Authenticode 署名を検証することで、名前付きパイプ上で接続するプロセスの信頼性を検証します。 1Password CLI は、1Password アプリの信頼性を同様の方法で検証します。
認証プロンプト
ユーザーには、1Password CLI を介してアカウントにアクセスできるようにすることを実際に許可するかどうかを確認するための認証が求められます。
Mac
macOS では、OS のデフォルトの生体認証プロンプトが使用可能な場合は、それを使用して認証が要求されます。このプロンプトを確認するには、TouchID または Apple Watch を使用できます。生体認証が使用できない場合は、代わりにユーザーのデバイス パスワードを確認するプロンプトが使用されます。
Linux
Linux では、PolKit を使用して、ユーザーの認証チャレンジ (通常は指紋またはユーザーの OS パスワード) を含むプロンプトを生Createします。
Windows
Windows では、Windows Hello を使用して、ユーザーの認証チャレンジ (通常は指紋、顔、またはユーザーの OS パスワード) を含むプロンプトを表示します。Windows Hello がないと、1Password CLI で生体認証を使うことはできません。