볼트 암호화
- 임의의 256비트 데이터 키는 AES-256-GCM으로 압축된 저장소를 암호화합니다.
- 마스터 비밀번호는 128비트 랜덤 솔트, 64MiB 메모리, 3회 반복 및 병렬 처리 4를 갖춘 Argon2id 1.3을 사용하여 별도의 래핑 키를 파생합니다.
- 래핑 키는 AES-256-GCM을 사용하여 볼트 데이터 키를 암호화합니다. 마스터 비밀번호를 변경하면 볼트 데이터 암호화를 약화시키지 않고 데이터 키를 다시 래핑할 수 있습니다.
- 형식, 암호, 압축, 키 식별자 및 키 래핑 매개변수는 추가 데이터로 인증되므로 자동 메타데이터 변조가 거부됩니다.
각 암호화 작업은 필요한 경우 새로운 무작위 IV를 사용합니다. 현재 암호화된 봉투 및 볼트 데이터 스키마는 버전 4입니다.
잠금 해제 세션과 빠른 잠금 해제
잠금 해제에 성공한 후 브라우저 세션 저장소는 마스터 비밀번호가 아닌 래핑 해제된 256비트 데이터 키와 활동 메타데이터를 임시로 보관합니다. 수동 잠금, 구성된 자동 잠금 및 브라우저 세션 종료를 통해 해당 세션 상태가 지워집니다.
지원되는 경우 선택적 빠른 잠금 해제는 WebAuthn PRF 확장을 사용하여 동일한 데이터 키를 로컬 인증자와 연결된 자료로 래핑합니다. OTPManager를 운영 체제 키체인으로 전환하지 않으며 브라우저 및 장치 보안의 적용을 받습니다.
원격 저장소 경계
WebDAV 및 S3 호환 공급자는 암호화된 봉투와 암호화된 백업 스냅샷을 받습니다. 자격 증명은 암호화된 저장소 내부에 저장됩니다. 로컬 개발을 위한 명시적 루프백 주소를 제외하고 연결에는 기본적으로 HTTPS가 필요합니다. 클라이언트는 안전하지 않은 경로 또는 개체 키, 내장된 끝점 자격 증명 및 원본 간 WebDAV 리디렉션을 거부하고 응답 크기, 항목 수 및 시간 초과 제한을 적용합니다.
암호화는 공급자의 모든 메타데이터 신호를 숨기지 않습니다. IP 주소, 타이밍, 경로 및 암호문 크기는 계속 관찰될 수 있습니다.
웹페이지 격리
페이지 콘텐츠 스크립트에는 감지 및 채우기에 필요한 최소한의 데이터만 제공됩니다. 볼트를 직접 읽을 수 없으며 TOTP 시드 또는 동기화 자격 증명을 수신하지 않습니다. 확장 페이지는 제한적인 콘텐츠 보안 정책을 사용하고 확장 패키지에서 실행 가능한 코드를 로드합니다.
위협 모델 제한
- 취약하거나 재사용된 마스터 비밀번호도 여전히 추측할 수 있습니다. Argon2id는 비용을 높이지만 엔트로피를 생성할 수는 없습니다.
- 잠금 해제된 확장 프로그램을 디버깅할 수 있는 악성 코드, 손상된 브라우저 프로세스, 제어되는 장치 또는 로컬 행위자가 신뢰 경계 내에 있습니다.
- 악의적인 웹 사이트는 귀하가 의도적으로 해당 웹 사이트의 필드에 코드를 배치한 후 코드를 관찰할 수 있습니다.
- 원격 공급자는 개체를 삭제하거나 롤백할 수 있습니다. 백업 및 충돌 검사는 우발적인 손실을 줄이지만 독립적인 복구 복사본을 대체하지는 않습니다.
- 소프트웨어 보안 설명은 취약점이 존재하지 않는다는 것을 보장하지 않습니다.
취약점 보고
제목에 'OTPManager 보안 보고서'를 기재하여 samler@foxmail.com로 이메일을 보내주세요. 영향을 받는 버전, 브라우저, 재현 가능한 단계, 영향 및 안전한 개념 증명을 포함합니다. 실제 TOTP 비밀, 비밀번호, 원격 저장소 자격 증명 또는 다른 사람의 데이터를 포함하지 마세요.