개인정보처리방침
Android 26.8.5는 Firebase Analytics의 사용 분석 수집을 비활성화하며 앱 내 광고·구매 기능을 제공하지 않습니다. 오류 진단, 앱 설정, 무결성 확인과 선택적 로그인·동기화에서는 데이터를 계속 처리합니다. 아래의 사용 분석·구매 항목은 해당 기능을 제공한 이전 버전에 적용됩니다.
Crashlytics와 관련 Firebase Installations·Sessions는 크래시·안정성 지표를 위해 설치 식별자, 기기·앱 정보와 세션 시각을 처리합니다. Android 26.8.5에는 이 수집을 끄는 앱 내 설정이 없습니다. Remote Config는 기능 설정 조회를 위해 설치 식별자, 국가·언어 코드, 시간대와 앱·OS 버전을 처리합니다. 선택적 로그인 시 프로필 이름이 전달될 수 있으며, Firebase Authentication은 부정 이용 방지를 위해 IP 주소도 처리합니다.
비번저장(이하 “본 앱”)은 사용자의 계정·비밀번호·TOTP 비밀키를 기본적으로 기기 내부에 암호화하여 로컬로 저장합니다. 사용자가 동기화를 켠 경우에만 Google/Apple 로그인으로 암호문 소유자를 확인하고, Firebase Firestore에는 기기에서 암호화한 계정 데이터, nonce/ciphertext/MAC 형태로 감싼 동기화 키, 그리고 동기화에 필요한 레코드 ID·수정 시각·변경 버전·삭제 상태, 동기화 키 봉투의 변경 버전·임의 변경 ID, KDF salt를 포함한 암호화 메타데이터를 저장합니다. 계정명·비밀번호·TOTP 비밀키는 암호문 안에만 포함됩니다. 오류 추적, 사용 분석, 결제 처리, 선택 동기화를 위해 제한된 데이터가 제3자 SDK를 통해 처리될 수 있습니다.
1. 평문으로 수집·전송하지 않는 정보
- 계정명, 비밀번호 및 TOTP 비밀키: 기기 내 암호화 데이터베이스(SQLCipher)에 저장됩니다. 동기화를 켠 경우에도 이 정보의 내용은 앱 안에서 먼저 암호화되어 암호문 안에서만 전송되며, 아래에 명시한 동기화 메타데이터는 별도 필드로 전송됩니다.
- 자동입력 연결 식별자: 웹 도메인, Android 패키지명, iOS service identifier는 로그인 화면 매칭을 위해 계정 메타데이터로 저장됩니다. 동기화를 켠 경우에도 암호화된 계정 레코드 안에만 포함되며 평문으로 분석·오류·광고·결제 SDK에 전송하지 않습니다.
- 마스터 비밀번호, DB 암호화 키, 로컬 백업 파일: Firebase Auth, Firestore, Analytics, Crashlytics, 결제 SDK로 전송하지 않습니다.
- 앱 잠금을 설정한 경우 PIN/생체인증 상태는 기기 보안 저장소에 보관됩니다.
- 동기화를 사용하지 않으면 계정 데이터는 로컬 전용으로 유지됩니다.
Chrome 확장 프로그램의 로컬 처리
Passwordmanager Chrome Extension은 별도로 설치된 macOS 데스크톱 앱과 함께, 사용자가 요청한 현재 HTTPS 로그인 페이지에 선택한 계정 정보를 채우거나, 명시적 승인 후 지원되는 회원가입·계정 변경 페이지에 입력한 자격 증명을 저장·업데이트합니다.
- 사용자가 확장 프로그램 팝업에서 검색을 요청한 경우에만 현재 최상위 페이지의 정확한 HTTPS origin을 고정된 로컬 Native Messaging 호스트로 전달합니다. 이 origin은 일치하는 계정을 찾는 데만 사용되며, 확장 프로그램이나 개발자 서버에 저장·전송되지 않습니다.
- 자동 입력 시 페이지에서는 지원되는 계정명·비밀번호 필드의 존재 여부만 확인하고 입력값을 읽지 않습니다. 저장·업데이트 시에는 사용자가 확장 프로그램 자체 저장 UI를 열고 감지된 작업을 확인한 뒤에만 지원되는 계정명·비밀번호 필드 값을 읽습니다. selector, DOM 텍스트, HTML, 관련 없는 필드 또는 일반 양식 내용은 수집하지 않습니다.
- 저장·업데이트 값은 고정된 로컬 앱에만 전달됩니다. 앱은 신규 생성·비밀번호 변경·계정명 변경 제안을 표시하고 앱 자체 확인과 운영체제 인증을 요구합니다. 이후 확장 프로그램은 동일한 최상위 HTTPS 문서와 필드에 승인된 값이 그대로 있는지 확인한 뒤 한 번만 커밋합니다. 페이지 이동, 값 변경, 취소, 만료, 재사용, iframe, 앱 잠금 또는 통신 실패 시 변경하지 않습니다.
- 사용자가 계정을 선택하면 계정명과 비밀번호가 실행 중인 로컬 앱에서 확장 프로그램을 거쳐 사용자가 선택한 현재 페이지의 캡처된 필드로 일시 전달됩니다. 대상 웹사이트는 채워진 값을 처리할 수 있으므로 신뢰하는 사이트에서만 사용해야 합니다.
- 확장 프로그램은 Vault, 마스터 비밀번호, 키, 계정, 비밀번호, origin 또는 방문 기록을 브라우저 저장소에 보관하지 않습니다. Firebase, 개발자 서버, 분석, 광고, 오류 보고 또는 사람의 검토로 보내지 않으며 관련 payload를 로그에 남기지 않습니다.
- 자동 입력 후보 상태는 service worker 메모리에 최대 30초, 저장 승인 대기 상태는 최대 60초만 유지됩니다. 앱 잠금, 이동, origin·문서 불일치, iframe, 만료, 재사용 또는 통신 실패 시 계정 정보를 전달하거나 저장하지 않습니다.
확장 프로그램이 처리하는 정보는 공개된 단일 기능을 제공하는 데만 사용되며 Chrome Web Store User Data Policy의 Limited Use 요건을 준수합니다. 광고, 개인화, 판매, 신용 평가 또는 관련 없는 목적으로 사용·이전하지 않습니다. 확장 프로그램을 제거하면 브라우저 구성요소가 제거되며, 별도의 로컬 앱 데이터는 앱의 기존 보관·삭제 정책을 따릅니다.
2. 수집·전송되는 정보
본 앱은 다음 제3자 SDK를 통해 아래 데이터를 처리합니다. 다만 키 세대·lifecycle 기반 원격 삭제·재활성화 기능과 이에 사용되는 Firebase Functions는 아직 운영에 활성화되지 않았습니다. 아래의 키 epoch·generation ID·lifecycle 상태·임시 작업 메타데이터와 lifecycle 전용 제한 사용 App Check 토큰·재사용 방지 처리는 해당 기능이 운영에 활성화되고 사용자가 관련 기능을 실행한 경우에만 적용됩니다. 별도로 App Check가 포함된 앱 버전에서는 Firebase App Check가 Android의 Google Play Integrity 또는 iOS의 Apple App Attest/DeviceCheck를 사용해 저장된 계정 내용을 포함하지 않는 앱·기기 무결성 신호를 초기화·토큰 발급 과정에서 처리할 수 있습니다.
| 데이터 유형 | 구성요소 | 목적 | 처리 주체 |
|---|---|---|---|
| 앱 활동 / 식별자 | 앱 인스턴스 ID, 사용 이벤트 | 사용 분석·앱 개선 | Firebase Analytics |
| 진단 / 오류 | 크래시 로그, 기기·OS 정보 | 안정성 개선 | Firebase Crashlytics |
| 앱/기기 무결성 | 앱 증명 토큰과 앱·기기 무결성 신호(저장된 계정 내용은 포함하지 않음) | App Check 초기화·토큰 발급 및 원격 동기화 삭제·재활성화 요청의 위조·재사용 방지 | Firebase App Check, Google Play Integrity, Apple App Attest/DeviceCheck |
| 로그인 식별자 | Firebase uid, 로그인 provider 정보, 제공자가 전달하는 이메일 등 로그인 계정 정보 | 선택 동기화의 암호문 소유자 확인 | Firebase Auth, Google/Apple Sign-In |
| 동기화 데이터 | 계정 레코드의 ID, 수정 시각, 변경 버전(revision), 삭제 상태, 콘텐츠·암호화·KDF 식별자와 nonce/ciphertext/MAC. 동기화 키 봉투의 변경 버전, 임의 변경 ID, 키 epoch·임의 generation ID, lifecycle 상태·시각, 콘텐츠·암호화·KDF 식별자, Argon2id KDF salt, nonce/ciphertext/MAC 형태의 wrappedKey. 삭제·재활성화 중에는 불투명 요청 ID, 대상 세대, 상태와 페이지 커서가 일시 저장됩니다. 임의 ID는 사용자 데이터나 키에서 파생되지 않습니다. 계정 암호문 안에는 계정명, 비밀번호, TOTP 비밀키, 자동입력 연결 식별자가 포함될 수 있습니다. | 사용자가 켠 기기간 동기화와 안전한 삭제·재활성화 | Firebase Firestore/Functions |
| 구매 내역 | 인앱 구매 거래 정보 | 후원 처리 | Apple App Store / Google Play |
3. 제3자 공유
위 데이터는 해당 기능 제공을 위해 다음 사업자에게 전달됩니다. 본 앱은 데이터를 판매하지 않습니다.
- Google(Firebase): 분석, 진단, 로그인 식별자 처리, 동기화 데이터 저장(암호문 및 메타데이터), App Check/Play Integrity 무결성 검증
- Apple: App Attest 또는 DeviceCheck를 통한 Apple 플랫폼 앱 무결성 검증
- Apple / Google: Apple/Google 로그인 및 인앱 구매 처리
각 사업자의 처리에 대해서는 Google 개인정보처리방침 및 Apple 개인정보처리방침을 참고하세요.
4. 데이터 보안
- 계정·비밀번호·TOTP 비밀키는 SQLCipher로 암호화되어 기본적으로 기기에 저장됩니다.
- 동기화를 켠 경우 Firestore에는 기기에서 암호화한 계정 데이터, nonce/ciphertext/MAC 형태로 감싼 동기화 키, 키 봉투 변경 버전·임의 변경 ID와 KDF salt를 포함한 평문 동기화·암호화 메타데이터가 저장됩니다. 계정명·비밀번호·TOTP 비밀키는 평문으로 저장되지 않습니다.
- 마스터 비밀번호는 기기에서 동기화 키를 감싸거나 푸는 용도로만 사용되며 서버로 전송되지 않습니다. 마스터 비밀번호를 잃어버리면 암호화된 동기화 데이터를 복구할 수 없습니다.
- 사용자가 앱 잠금(PIN/생체인증)을 켜면 앱 진입 시 무단 접근을 차단합니다.
- 비밀번호 복사 시 일정 시간 후 클립보드를 자동 삭제합니다.
- 네트워크로 전송되는 데이터는 전송 구간 암호화(HTTPS)됩니다.
5. 보관 및 삭제
- 계정·비밀번호·TOTP 비밀키 등 로컬 데이터는 앱 안에서 항목을 삭제하거나 앱을 삭제하면 제거됩니다.
- 동기화를 켠 경우 항목의 삭제 여부는 Firestore의 평문 삭제 상태 메타데이터로 동기화됩니다.
- 현재 운영 중인 원격 동기화 데이터 삭제는 암호화된 계정 레코드와 감싼 키를 삭제하는 시점 기준 작업입니다. 다른 기기에서 동기화가 계속 켜져 있으면 암호화된 레코드가 다시 업로드될 수 있으므로, 원격 데이터를 삭제하려면 해당 기기에서도 동기화를 꺼야 합니다. 키 세대·lifecycle 기능이 운영에 활성화된 이후에는 최근 재인증과 App Check 검증을 거쳐 삭제하고, 폐기된 세대의 재업로드를 막기 위해 계정 내용·비밀번호·키를 포함하지 않는 epoch, 임의 generation ID, 삭제 상태 및 서버 시각의 lifecycle tombstone을 유지합니다.
- Firebase Auth/Firestore 계정 데이터, 분석·진단 데이터 삭제 요청은 아래 연락처로 문의해 주세요.
6. 아동의 개인정보
본 앱은 아동을 주 대상으로 하지 않으며, 아동의 개인정보를 고의로 수집하지 않습니다.
7. 방침 변경
본 방침은 법령·서비스 변경에 따라 개정될 수 있으며, 개정 시 본 페이지에 게시하고 시행일을 갱신합니다.
8. 연락처
개인정보 관련 문의: me@nine20.net