에이전트 비밀번호 관리자
Phi에서 일하는 에이전트는 언젠가 로그인 화면 앞에서 멈추게 돼요. 채팅에 비밀번호를 붙여넣는 건 가장 나쁜 답이라서, Phi는 더 나은 방법을 준비했어요. 에이전트 비밀번호 관리자는 에이전트를 내 비밀번호 관리자(현재는 Bitwarden)에 연결해서, 보관함의 로그인 정보로 사이트에 로그인할 수 있게 해요. 대부분의 경우 에이전트가 비밀번호를 아예 보지 못하도록 설계돼 있어요.
기본값은 꺼짐이고, 모든 개별 요청은 먼저 사용자에게 물어보며, 유지 중인 승인은 언제든 철회할 수 있어요.
왜 Bitwarden인가
AI 에이전트에게 내 비밀번호로 가는 길을 열어 주는 건 신뢰가 필요한 일이라서, 그 뒤에 있는 보관함이 블랙박스여서는 안 돼요. Bitwarden은 오픈 소스라서 클라이언트와 서버를 누구나 감사할 수 있고, 셀프 호스팅을 지원하니 보관함을 남의 클라우드가 아니라 직접 운영하는 서버에 둘 수 있어요. 그러면 자격 증명이 어디에 있는지 처음부터 끝까지 직접 통제할 수 있어요. 내 인프라에 있는 보관함이 내 Mac에서 잠금 해제되고, 내가 승인할 때만 전달돼요. Phi의 도우미는 Bitwarden 공식 SDK를 기반으로 만들어졌고, 로그인할 때 셀프 호스팅 서버도 지원해요.
여기서 누가 무엇을 맡는지는 분명히 해 둘게요. 보관함 서비스의 제공자는 Bitwarden이고, 이 서비스에 대한 관계는 Bitwarden과 맺는 것이며, Bitwarden의 약관과 개인정보 처리방침이 적용돼요. 보관함을 bitwarden.com에 둘지, bitwarden.eu에 둘지, 직접 호스팅하는 서버에 둘지는 사용자가 선택하고, 그 선택이 보관함의 위치와 적용되는 법을 결정해요. Phi가 하는 일은 내 Mac에서 보관함을 잠금 해제하고, 특정 요청을 승인했을 때 로그인 정보 하나를 에이전트에게 전달하는 것뿐이에요. 보관함은 Phinomenon에 전달되지 않고, 마스터 비밀번호도 마찬가지예요.
비밀 정보를 지키는 구조
보관함은 브라우저 안에서 열리지 않아요. Phi는 앱을 대신해 Bitwarden과 통신하는 별도의 도우미 프로세스를 함께 제공해요. Phi와 에이전트 요청에 쓰이는 로그인 정보는 이 도우미가 보관하므로 비밀번호는 브라우저 프로세스에 전달되지 않아요. 잠금 해제된 보관함 키는 도우미의 메모리에만 존재하고, 보관함이 잠기는 순간 폐기돼요. 도우미는 Phi 자신에게서 오는 연결만 받아들이고, Phi도 무언가를 맡기기 전에 도우미의 코드 서명을 검증해요.
여기에 더해, 에이전트가 로그인 정보를 사용하는 기본 방식은 자동 입력이라서 비밀 정보가 에이전트에게 아예 닿지 않아요. Phi가 페이지의 입력란을 직접 채우고, 에이전트는 입력이 이루어졌다는 사실만 알게 돼요.
켜는 방법
에이전트 비밀번호 관리자는 설정의 개발자 탭에 있고, 이 탭은 개발자 모드를 켜면 나타나요:
- 설정 → 일반을 열고 개발자 모드를 켜요.
- 개발자 탭에서 에이전트 비밀번호 관리자를 찾아 Bitwarden 비밀번호 관리자를 켜요.
- Bitwarden 계정에 로그인해요. 미국, 유럽, 셀프 호스팅 서버를 지원하고, 2단계 로그인을 사용하는 계정도 지원해요. 그런 다음 마스터 비밀번호로 보관함의 잠금을 해제해요.
이 기능을 켜면 Phi가 Chrome 웹 스토어에서 Bitwarden 브라우저 확장 프로그램 설치를 함께 제안할 수도 있어요. 이 확장 프로그램은 평소 브라우징 중에 로그인 정보를 자동으로 입력해 주는, 나를 위한 별도의 편의 기능이에요. 에이전트 요청은 이 확장 프로그램을 사용하지도 않고 필요로 하지도 않으니, 나중에를 눌러 거절해도 에이전트 접근은 그대로 동작해요.
모든 요청은 먼저 물어봐요
에이전트가 로그인 정보를 요청할 때마다 Phi는 어떤 에이전트가 요청하는지, 어떤 사이트 또는 항목을 원하는지, 그리고 에이전트가 밝힌 이유를 담은 승인 프롬프트를 보여줘요. 응답하기 전에는 아무것도 전달되지 않고, 응답 없이 놔둔 프롬프트는 60초가 지나면 스스로 거부돼요.
프롬프트에는 확인 버튼 하나가 아니라 실제 선택지가 있어요:
- 요청을 승인하거나 거부해요.
- 승인이 유지되는 기간을 골라요: 한 번만, 10분 동안, 항상.
- 원한다면 요청한 에이전트 하나만이 아니라 모든 에이전트에 승인을 적용할 수도 있어요. 한 번만 승인하는 경우에는 선택할 수 없어요.
요청이 들어왔을 때 보관함이 잠겨 있으면 Phi가 먼저 마스터 비밀번호를 물어 잠금을 해제해요. 이 비밀번호는 도우미에게 곧바로 전달되고 브라우저에는 절대 저장되지 않아요.
세 단계의 노출 수준
모든 요청이 같지는 않고, 프롬프트는 그 차이를 숨기지 않아요. 각 요청은 세 가지 종류 중 하나이고, 비밀 정보가 얼마나 멀리 이동하는지에 따라 색으로 구분돼요:
| 종류 | 실제로 일어나는 일 |
|---|---|
| 🟢 자동 입력만 | Phi가 저장된 로그인 정보를 페이지에 직접 입력해요. 에이전트는 입력을 실행시킬 뿐 사용자 이름이나 비밀번호를 받지 않아요. |
| 🟠 명령 사용 | 에이전트가 실행하는 명령이 쓸 수 있도록 값이 에이전트에게 전달돼요. 예를 들어 데이터베이스 비밀번호를 CLI 환경 변수에 주입하는 경우예요. 에이전트의 도구가 출력에서 값을 지우지만, 에이전트가 값을 보관하는 것까지 Phi가 막을 수는 없어요. |
| 🔴 전체 접근 | 비밀번호, 메모, 카드, 신원 정보, 키일 수 있는 저장된 항목이 에이전트에게 직접 공유되고, 에이전트가 이를 자신의 컨텍스트에 기록할 수 있어요. |
기억된 승인은 승인받은 종류에만 적용돼요. 자동 입력만 승인했다면 에이전트가 비밀번호를 직접 읽을 수 있게 되는 일은 없어요.
자동 입력에는 안전장치가 하나 더 있어요. 입력이 출처(origin)에 묶여 있다는 점이에요. 에이전트가 보고 있는 페이지가 로그인 정보를 저장해 둔 사이트의 것이 아니면 Phi는 입력을 거부해요. 위장 페이지가 비밀번호를 훔치려 할 때 쓰는 방식이 바로 이것이거든요. 입력된 비밀번호는 "비밀번호 표시" 토글을 눌러도 페이지에서 가려진 상태로 유지돼요.
에이전트가 절대 받을 수 없는 것
어떤 승인을 했더라도 넘을 수 없는 선이 있어요:
- 2단계 인증 코드는 절대 전달되지 않아요. 유효한 2단계 인증 코드를 에이전트에게 넘기면 두 인증 요소가 프롬프트 하나 뒤로 무너지기 때문에, 이 단계는 언제나 사용자의 몫이에요. 에이전트가 제어권을 돌려주면 코드를 직접 입력해요.
- 모호하면 아무것도 전달하지 않아요. 요청에 일치하는 보관함 항목이 여러 개면 Phi는 사용자를 대신해 계정을 추측하지 않고, 요청을 거부한 뒤 에이전트에게 범위를 좁혀 달라고 해요.
- 모든 요청이 기록되고, 값은 기록되지 않아요. 각 요청은 어떤 에이전트가, 어떤 사이트에, 어떤 종류의 접근을 요청했는지 감사 로그에 남아요. 비밀 정보 자체는 절대 남지 않아요.
보관함에는 로그인 정보만 있는 게 아니라서 보안 메모, 카드, 신원 정보, SSH 키도 요청될 수 있어요. 하지만 페이지에 자동 입력될 수 있는 건 로그인 정보뿐이에요. 나머지는 모두 위에서 설명한 명시적 승인 프롬프트를 거쳐요.
승인 확인과 철회
같은 설정 섹션의 에이전트 자격 증명 승인…에서 유지 중인 승인을 모두 볼 수 있어요. 어떤 에이전트가, 어떤 사이트에, 어떤 종류의 접근을, 얼마 동안 승인받았는지 나와요. 기간이 있는 승인은 저절로 만료돼요. 항상 승인은 개별적으로, 또는 모두 철회로 철회할 때까지 유지돼요.
이 시트에는 모든 비밀번호 접근 허용 스위치도 있어요. 어떤 에이전트든 묻지 않고 저장된 모든 로그인 정보를 사용할 수 있게 하는, 의도적으로 마련된 전체 허용이에요. 괜히 경고의 빨간색으로 표시된 게 아니고, 켜기 전에 Phi가 한 번 더 확인을 요청해요. 무엇을 내주는지 완전히 이해한 경우가 아니라면 꺼 두세요.
보관함 세션 만료 시간
보관함이 잠금 해제 상태로 유지되는 시간은 사용자가 정해요. 에이전트 비밀번호 관리자 섹션에서 세션 만료 시간을 1시간, 4시간, 시스템 잠금 시, 브라우저 재시작 시(기본값), 안 함 중에서 고르고, 만료됐을 때의 동작도 선택해요. 잠금은 다시 사용하려면 마스터 비밀번호가 필요하고, 로그아웃은 계정에서 완전히 로그아웃해요.
끄는 방법
이 스위치들은 기능을 숨기는 게 아니라 실제로 꺼 버려요:
- Bitwarden 비밀번호 관리자를 끄면 보관함이 잠기고 기간제 승인이 삭제돼요. 나중에 다시 켤 수 있도록 계정 로그인 상태는 디스크에 유지되지만, 꺼져 있는 동안에는 항상 승인이 있는 요청을 포함해 모든 에이전트 요청이 거부돼요.
- 개발자 모드를 끄는 건 킬 스위치예요. 에이전트 접근과 에이전트 비밀번호 관리자가 함께 비활성화되고, 다시 켜도 자동으로 복구되는 건 없어요. 각 기능을 하나씩 직접 다시 켜야 해요.
다음 읽을거리
- phi-browser 스킬, 코딩 에이전트가 자신의 에이전트 스페이스에서 Phi를 조종하는 방법이에요.
- 자동화와 Phi Link, 요청형 작업, 백그라운드 작업, 그리고 통제권을 유지하는 방법이에요.
- 개인정보 보호와 내 데이터, 내 데이터가 어디에 있고 AI는 어떻게 다뤄지는지에 대한 내용이에요.