브라우저 암호화

보안 및 시스템 구조

Revault가 파일을 보호하는 방법과 보호가 끝나는 곳.

보안 모델
브라우저 암호화Next.js PWA
패스키로 로그인Cloudflare Worker
저장 및 업로드PostgreSQL · R2

계정 설정

패스키로 계정을 만드세요. 이메일이나 비밀번호가 필요하지 않습니다.

패스키는 계정 접근을 증명하지만 보관함을 열지는 않습니다. 서버는 공개 키를 보관하며, 세션 토큰은 HttpOnly 및 SameSite 쿠키에 봉인됩니다.

탭을 닫거나 새로고침하면 로그아웃됩니다. 새 탭에서는 보관함 목록을 표시하기 전에 패스키와 보관함 패턴이 필요합니다.

보관함 패턴

패턴과 무작위 256비트 비밀값으로 PBKDF2-SHA256(600,000회)을 통해 래핑 키를 파생합니다. 비밀값은 이 브라우저에 남고, 서비스는 암호화된 마스터 키만 받습니다.

이 패턴은 이 기기만 잠금 해제합니다. 다른 기기를 설정하려면 복구 키를 보관하세요.

업로드 전 암호화됨

각 보관함에는 무작위 AES-256-GCM 마스터 키가 있습니다. 이름과 폴더 구조는 암호화됩니다. 파일은 업로드 전에 크기가 제한된 Tink AES-GCM-HKDF 스트리밍 구간으로 암호화됩니다.

이름, 미리보기, 파일 내용은 암호화됩니다. 개수, 크기, 타임스탬프는 서비스에 계속 표시됩니다.

저장 및 업로드

Next.js PWA는 동일 출처 API 프록시를 사용합니다. Cloudflare Worker는 세션과 소유권을 확인합니다. PostgreSQL은 계정과 암호화된 메타데이터를, R2는 암호화된 파일 청크를 저장합니다.

브라우저 저장 공간을 비우거나 제거할 수 있습니다. 이 브라우저 외부에 암호화된 백업을 보관하세요.

복구 키 저장

브라우저 데이터를 지우면 기기 비밀값이 삭제됩니다. 패스키로 로그인한 뒤 복구 키를 사용해 새 패턴을 선택하세요.

암호화된 백업에는 기기 비밀값이 포함되지 않습니다. 패턴으로 보호된 보관함을 복원하려면 복구 키를 사용하세요. 이전 보관함은 원래 암호문구를 계속 사용할 수 있습니다.

복구 키트에는 복구 비밀과 키 래퍼가 포함되어 있지만 파일은 포함되어 있지 않습니다. 여전히 암호화된 클라우드 복사본이나 자체 포함된 암호화 백업이 필요합니다.

보안 안내

패턴의 조합 수는 적습니다. 누군가 기기 비밀값을 복사하면 오프라인에서 패턴을 시도할 수 있습니다.

기기 패턴을 변경해도 다른 기기나 이전 복구 키는 해제되지 않습니다. 암호화 키가 유출되면 파일을 새 보관함으로 옮기세요.

암호화는 저장된 콘텐츠를 보호합니다. 개체 수, 크기, 타임스탬프 및 계정 연결은 계속 표시됩니다. 손상된 장치 또는 프런트엔드는 잠금 해제된 데이터를 노출할 수 있습니다. Revault는 독립적인 프로젝트이며 독립적인 보안 감사를 받지 않았습니다.