보안
정책이 아닌 수학이에요.
대부분의 비밀번호 관리자는 "고객님의 데이터를 절대 읽지 않습니다"라고 말해요. 하지만 Clavitor의 아키텍처는 우리가 읽을 수 없다는 것을 의미해요. 지문, 얼굴 또는 보안 키로 암호화 키를 파생하며, 이 키는 어떤 서버에도 존재하지 않아요. 우리가 금고를 보관하지만, 키는 오직 고객님만 가지고 있어요.
이 모든 것이 작동하게 만드는 세 가지 요소가 있어요.
01 — 필드
필드별 암호화
모든 필드는 고유한 암호화 수준을 가져요. API 키는 이를 필요로 하는 에이전트가 읽을 수 있지만, 같은 항목에 있는 신용카드는 읽을 수 없어요. 같은 레코드여도 접근 범위는 달라요.
02 — 하드웨어
하드웨어 파생 키
가장 민감한 필드는 기기에서 파생된 키(지문, 얼굴 또는 보안 키)로 암호화돼요. 이 키는 브라우저에서 계산되며, 기기를 절대 떠나지 않아요.
03 — 거리
닿을 수 없는 곳
볼트는 AI 에이전트가 접근할 수 없는 별도 인프라에서 실행돼요. 자격 증명은 제한된 API를 통해 제공되며, 에이전트별로 접근 범위가 제한돼요. 노트북에는 아무것도 없어요. .env 파일에도 아무것도 없어요.
Tier 1 — Vault encryption
모든 데이터는 저장 시 암호화돼요.
Every record in your vault — every field, every entry, every byte — is encrypted at rest with AES-256-GCM. The encryption key is 8 bytes, derived from a 32-byte master secret that was randomly generated when your vault was created. That master secret is never stored on disk. It exists only inside a WL3 file, wrapped with the output of your hardware key.
누군가 볼트 파일을 탈취한다면(도난당한 백업, 침해당한 호스트, 악의적인 시스템 관리자) 그들은 암호문만 얻게 돼요. 항목 제목, 사용자 이름, 비밀번호, 카드, 메모 등 모든 것이 암호화돼요. 8바이트 키는 무차별 대입 공격이 계산상 사실상 불가능할 정도로 강력하며, 설령 그렇다 하더라도 내부 필드는 더 높은 암호화 수준에서 다시 암호화돼요.
이것은 기본 사항이에요. 모든 비밀번호 관리자는 저장 시 암호화를 제공해요. 중요한 것은 이 기준선 위에서 일어나는 일이에요.
Tier 2 — Credential encryption
에이전트는 자격 증명만 읽을 수 있어요. 그 외에는 아무것도 못 해요.
볼트 계층 위에서 모든 자격 증명 필드(API 키, 비밀번호, TOTP 시드, OAuth 토큰, SSH 키)는 고유한 파생 키로 개별 암호화돼요. 암호화 키는 완전한 엔트로피를 가진 16바이트이며, 계산상 해독이 불가능해요.
AI 에이전트는 작업을 수행할 수 있도록 이 키를 받아요. 이는 의도된 설계예요. 코드를 배포하는 에이전트에게는 SSH 키가 필요하니까요. 하지만 이 키에는 키로 수행되는 작업을 제어하는 네 가지 방어 계층이 함께 제공돼요.
범위 제한 토큰. 각 에이전트는 특정 항목으로만 접근 범위가 제한되는 토큰을 받아요. 배포 에이전트는 SSH 키와 AWS 자격 증명만 볼 수 있어요. Stripe 키, 이메일 비밀번호 또는 동료의 항목은 볼 수 없어요. 자신의 범위를 벗어나는 자격 증명을 열거하거나, 탐색하거나, 검색하거나, 발견할 수 없어요. 지정된 항목만 가져올 수 있고, 지정되지 않은 것은 찾을 수 없어요.
거리. 볼트는 노트북에 있지 않아요. 에이전트가 접근할 수 없는 별도 인프라에서 실행돼요. 에이전트는 제공하거나 거부하는 제한된 API를 통해 상호작용해요. 읽을 파일 시스템도, 검사할 프로세스 메모리도, 탈취할 로컬 캐시도 없어요. 볼트가 에이전트와 동일한 머신에 있다면, 침해당한 스킬이 시스템을 샅샅이 뒤져 원하는 것을 추출할 수 있을 거예요. 거리는 이러한 가능성을 완전히 제거해요.
속도 제한. 분당 3개 이상 또는 시간당 10개 이상의 고유 자격 증명에 접근하는 에이전트는 제한돼요. 2시간 내에 두 번째 위반이 발생하면 완전 잠금이 트리거되어 에이전트가 동결되며, 잠금을 해제하려면 하드웨어 키가 필요해요. 일반적인 에이전트는 2~3개의 자격 증명만 필요로 해요. 10개를 읽는 에이전트는 잘못 구성되었거나 침해당한 거예요. 어느 쪽이든 작동이 중단돼요.
IP 화이트리스트. 모든 에이전트 토큰은 첫 연결 시 소스 IP에 바인딩돼요. 다른 IP에서 사용된 도난 토큰은 핸들러가 실행되기 전 미들웨어 계층에서 거부돼요. 공격자가 키를 가지고 있더라도 발급받은 머신 외의 어느 곳에서도 사용할 수 없어요.
결과적으로 침해당한 에이전트의 피해 범위는 해당 범위와 IP로 제한되며, 의미 있는 유출이 발생하기 전에 잠금이 트리거되는 속도로 제한돼요. 다른 에이전트, 다른 자격 증명, 신원 필드는 영향을 받지 않아요.
Tier 3 — Identity encryption
가장 민감한 데이터는 기기로 암호화돼요. 우리는 이를 읽을 수 없어요.
신용카드, CVV, 여권 번호, SSN, 복구 코드, 개인 메모, 서명 키 등은 신원 필드예요. 볼트 생성 시 무작위로 생성된 32바이트 키로 암호화돼요. 고객님은 이 키를 모르고, 우리도 가지고 있지 않아요. 어떤 서버에도 존재한 적이 없어요.
The key lives inside a WL3 file, wrapped with the 32-byte output of your hardware key's PRF extension (WebAuthn PRF). To unwrap it, you need the physical device — your fingerprint reader, your face sensor, or your YubiKey. The unwrapping happens in your browser. The plaintext key exists in browser memory for the duration of one operation, then it's gone.
어떤 에이전트도 이 키를 받지 않아요. 어떤 API 엔드포인트도 이를 제공하지 않아요. 어떤 서버 측 프로세스도 이를 파생할 수 없어요. 신원 필드는 모든 서버, 모든 백업, 모든 복제 대상, 모든 시점에서 암호문으로 존재해요. 저희 인프라가 침해당해 모든 바이트가 완전히 유출되더라도, 모든 볼트의 모든 신원 필드는 암호문으로만 유출돼요. 복호화 키는 유출된 데이터에 포함되지 않아요. 애초에 그곳에 존재한 적이 없기 때문에 포함될 수 없어요.
우리는 고객님의 신원 필드를 복호화할 수 없어요. 가지고 있지 않은 키를 제출하도록 강요받을 수도 없어요. 이는 정책적 약속이 아닌 시스템의 수학적 속성이에요.
오직 고객님만 접근할 수 있어요
그리고 마스터 비밀번호는 존재하지 않아요.
잊을 것도, 피싱할 것도, 침해 사고 시 해독할 것도 없어요. 고객님의 기기(지문, 얼굴 또는 보안 키)가 유일한 진입 경로예요. 모든 연결은 최신 암호 알고리즘과 HSTS를 갖춘 TLS 1.3을 사용해요. 자격 증명은 제한된 API 엔드포인트를 통해 범위 제한 에이전트 토큰으로 제공되며, 절대 로깅되지 않아요. AI 지원조차 고객님의 자격 증명을 볼 수 없어요. 시크릿을 저희로부터 숨기는 것과 동일한 암호화가 지원 도구로부터도 이를 숨겨요.
위협 모델
우리가 방어하는 대상이에요.
모든 자격 증명 플랫폼은 동일한 공격 표면에 직면해요. Clavitor가 각 위협에 어떻게 설계되었는지 알려드릴게요.
| 위협 | 방어 방법 | 결과 |
|---|---|---|
| 자격 증명 피싱 | 사용자는 자신의 비밀번호를 알지 못해요(32바이트 무작위, 절대 표시되지 않음). 확장은 URL이 일치할 때만 자동 완성해요. 사용자는 자신이 모르는 것을 입력할 수 없어요. | 구조적으로 차단됨 |
| OTP / 2FA 피싱 | TOTP는 볼트에 저장되며, 실제 도메인으로 접근 범위가 제한돼요. 잘못된 도메인에서는 코드를 받을 수 없어요. 비밀번호와 동일한 방어 체계예요. | 구조적으로 차단됨 |
| 서버 침해 | 신원 필드는 저희가 절대 보유하지 않는 하드웨어 파생 키로 암호화돼요. 자격 증명 필드는 자동 교체돼요. 유출된 평문은 몇 시간 내에 만료돼요. | 피해 제한됨 |
| 침해당한 AI 에이전트 | 각 에이전트는 범위 제한 토큰을 받아요. 침해당하더라도 에이전트의 범위만 노출될 뿐, 전체 볼트가 노출되지는 않아요. | 피해 범위 제한됨 |
| 엔드포인트 멀웨어 | 볼트는 로컬이 아닌 원격에 있어요. 세션 토큰은 시간이 제한돼요. WebAuthn 챌린지는 오리진에 바인딩되어 있어 멀웨어가 사용자를 대신해 서명할 수 없어요. | 완화됨 |
| 내부자 공격 | 신원 필드는 수학적으로 저희가 접근할 수 없어요. 소환장이 발부되더라도 평문을 제출할 수 없어요. | 우리의 접근 불가 |
암호화뿐만 아니라 플랫폼 자체를 신뢰할 수 있어요.
암호화는 세 가지 보장 중 하나일 뿐이에요. 나머지 두 가지는 무언가 실패할 때, 즉 서비스나 고객님의 접근 권한에 문제가 생길 때 일어나는 일에 관한 것이에요.
복원력 — 서비스는 계속 제공돼요
클라우드, DNS, 등록 기관, 이메일, 자체 소프트웨어 등 모든 계층이 실패하면 어떻게 되는지 고려했어요. 아키텍처는 항상 동일한 답변이 나오도록 설계되었어요. 바로 볼트가 계속 서비스를 제공한다는 것이에요. 솔직한 위협 목록 →
복구 — 계속 접근할 수 있어요
하드웨어 키를 분실하더라도 다시 접근할 수 있어요. 고객님 측의 분할 지식 코드, 저희 측의 복구 앵커, 그리고 고객님이 선택한 검증 자료가 포함된 Zoom 통화를 통해서예요. 이메일 재설정, SMS, 보안 질문은 없어요. 복구 작동 방식 →
심층 분석을 읽어봐요.
기술 전문가를 위한 내용이에요. 암호화 세부 정보, 위협 모델 문서, 그리고 우리가 놓친 부분을 찾아달라는 공개적인 초대예요.