Privacy Policy
개인정보처리방침
이 방침의 근거
이 방침은 추상적인 문구가 아니라 실제 아키텍처(코드·DB 스키마)에 근거해 수집 항목과 미수집 항목을 하나씩 대조해 작성했습니다. 각 절 말미에 근거가 되는 파일·컬럼을 함께 밝힙니다. 내용이 변경되면 아래 10. 개정 고지에 따라 공지합니다.
언번디오(unbundio) 준비팀(이하 "운영자")은 「Credseal」(이하 "서비스")를 운영하며, 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 관련 고충을 신속히 처리하기 위해 다음과 같이 개인정보처리방침을 수립·공개합니다.
이 서비스의 근본 설계 — 종단간 암호화(E2EE) 블라인드 릴레이
이 서비스는 이용자가 저장하는 비밀번호·자격증명을 이용자의 기기에서만 암호화·복호화하며, 운영자의 서버는 그 평문도, 복호화에 필요한 키도, 마스터 비밀번호 자체도 저장하지 않습니다. 서버는 암호문과 계정·메타데이터 및 새 기기 인증용 단방향 키의 해시와 공개 salt를 보관합니다. 이 해시는 볼트를 열지 못하지만 DB 유출 시 오프라인 비밀번호 추측 위험이 남습니다. 운영자는 이용자가 저장한 비밀번호의 내용을 열람할 수 없습니다. 이 구조는 아래 "5. 개인정보의 안전성 확보조치"의 핵심입니다.
1. 개인정보의 처리 목적
운영자는 다음의 목적으로 개인정보를 처리하며, 목적이 변경될 경우 사전 동의를 받습니다.
- 회원 식별 및 인증: 이메일 주소로 계정을 식별하고, 이메일 매직링크(1회용 확인 링크)로 본인 확인 및 로그인을 처리합니다.
- 로그인 상태 유지: 세션 토큰으로 로그인 상태를 유지합니다.
- 서비스 제공 및 무결성 보장: 팀(그룹) 비밀번호 공유, 기기 등록·해제, 변경 이력(감사 로그)의 위·변조 방지를 위한 전자서명 검증.
- 유료 요금제 결제: Pro 요금제를 이용하는 경우 구독 생성·유지와 결제 처리(결제 자체는 아래 4.의 결제대행사가 수행합니다).
- 문의 응대 및 공지: 서비스 관련 안내·문의 처리.
2. 처리하는 개인정보 항목
2-1. 운영자가 식별 가능한 형태로 처리하는 항목
| 항목 | 내용 | 근거(저장 위치) |
|---|---|---|
| 이메일 주소 | 계정 식별·매직링크 발송 | users.email, magic_tokens.email |
| 이름(선택) | 이용자가 입력하는 경우에 한함 | users.name (nullable) |
| 세션 토큰 | 로그인 유지용 임의 토큰(비밀번호 아님) | sessions.token |
| 기기 공개키·라벨 | 전자서명 검증용 공개키(개인키 아님) | devices.pubkey_jwk, devices.label |
| 그룹 멤버십·역할 | 어떤 이용자가 어떤 그룹의 어떤 역할인지 | memberships |
| 감사 이벤트(서명된 메타) | "누가(이용자 식별자)·어떤 기기로·언제·무슨 동작을" | events.payload_json 외 |
| 접속 IP 주소 | 감사 이벤트·계정 이벤트가 기록될 때 서버가 관찰해 함께 저장하는 접속 경로(4요소 감사의 "어느 경로"). 자동 요청 차단(rate limit) 카운터의 식별자로도 쓰입니다. | events.ip, account_events.ip, rate_limits.key |
| 열람 알림 기록 | 내가 만든 항목을 누가 언제 열람했는지(항목 이름·내용이 아닌 식별자만) | notifications |
| 구독·결제 메타 | 유료 요금제 이용 시 결제대행사가 발급한 고객·구독 식별자와 구독 상태·청구주기· 좌석 수(카드번호 등 결제수단 정보는 포함되지 않습니다) | pro_subscriptions |
| 서비스 오류 진단 로그 | 서버에서 오류가 났을 때 그 요청의 경로·방식·시각과 오류 내용. 무작위로 발급된 이용자·그룹 식별자가 포함될 수 있으며, 이메일 주소·토큰·키·비밀번호류는 기록 전에 자동으로 제거합니다(접속 IP는 기록하지 않습니다) | Cloudflare Workers Logs(데이터베이스가 아닌 인프라 로그) |
2-2. 운영자가 복호화할 수 없는(암호문으로만 보관하는) 항목
아래는 이용자 기기에서 암호화되어 전송·저장되며, 운영자는 그 내용을 볼 수 없습니다.
| 항목 | 내용 | 근거 |
|---|---|---|
| 볼트 항목 | 자원명·계정ID·비밀번호·접속주소·메모 (전부 암호문) | items.ciphertext |
| 그룹명 | 암호문 | groups.name_enc |
| 개인키 봉인 블롭 | 마스터 비밀번호로만 열리는 봉인값 | key_blobs.blob |
| 래핑된 그룹키 | 각 멤버 공개키로 래핑된 대칭키 | wrapped_group_keys.wrapped_key |
| 복구 키블롭 | 복구 키로만 열리는, 개인키를 봉인한 두 번째 암호문 | recovery_key_blobs.blob |
2-3. 운영자가 결코 수집·저장하지 않는 항목
- 마스터 비밀번호: 서버에 전송·저장되지 않으며 이용자 기기를 벗어나지 않습니다. 새 기기 확인에는 비밀번호에서 분리해 유도한 단방향 인증키를 사용하며 서버는 그 해시와 KDF salt만 보관합니다. 인증키와 그 해시로는 볼트를 열 수 없습니다.
- 볼트 평문 및 복호화 키: 서버에 존재하지 않습니다.
근거서버에는 새 기기 확인용 인증키의 해시가 저장되며 마스터 비밀번호와 볼트 복호화 키는 기기에 남습니다.
3. 개인정보의 보유·이용 기간
- 매직링크 토큰: 발급 후 15분 경과 시 만료, 1회 사용 시 즉시 소비(재사용 불가).
- 세션 토큰: 발급 후 30일 만료. 이용자가 기기를 원격 해제하면 즉시 폐기.
- 계정 정보 및 볼트 데이터: 회원 탈퇴(계정 삭제) 시까지 보유하며, 탈퇴 시 지체 없이 파기.
- 감사 이벤트·계정 이벤트(접속 IP 포함): 그룹이 존재하는 동안 보유합니다. 감사 이벤트는 서명된 해시 체인이라 중간을 지우면 남은 구성원의 무결성 검증이 불가능해지기 때문에, 요금제와 무관하게 삭제하지 않습니다. 요금제가 정하는 것은 보관 기간이 아니라 조회·내보내기 범위입니다(무료 최근 30일, Pro 전체 기간). 계정을 삭제하면 그 계정의 계정 이벤트는 함께 삭제됩니다.
- 결제·거래 기록: 「전자상거래 등에서의 소비자보호에 관한 법률」에 따라 계약·청약철회 기록은 5년, 대금결제 및 재화 공급 기록은 5년, 소비자 불만·분쟁 처리 기록은 3년 동안 보관합니다(같은 법 시행령 제6조). 이 기간에는 회원 탈퇴 후에도 해당 기록만 분리 보관하며 다른 목적으로 이용하지 않습니다.
- 서비스 오류 진단 로그: 기록 후 최대 7일이 지나면 자동으로 삭제됩니다. 오류 원인 파악과 장애 대응 외의 목적으로 이용하지 않습니다.
근거SESSION_TTL_MS = 30일, TOKEN_TTL_MS = 15분 (apps/relay/src/routes/auth.ts).
4. 개인정보 처리의 위탁 및 제3자 제공
운영자는 이용자의 개인정보를 제3자에게 제공하지 않습니다. 다만 서비스 운영을 위해 아래 업무를 위탁하며, 위탁계약 시 개인정보보호법에 따른 안전조치를 명시합니다.
| 수탁자 | 위탁 업무 | 처리 항목 |
|---|---|---|
| Cloudflare, Inc. (미국) | 서버·데이터베이스 인프라(저장·전송), 서비스 오류 진단 로그 보관 | 위 2-1·2-2 전체(2-2는 암호문) |
| Resend, Inc. (미국) | 매직링크 이메일 발송 | 수신자 이메일 주소 |
| Paddle.com Market Ltd (영국) | 유료 요금제 결제·청구·세금 처리 대행(판매자 지위, Merchant of Record) 및 결제 관련 고객 응대 | 이메일 주소, 결제·구독 내역(결제수단 정보는 Paddle이 직접 수집·보관하며 운영자 서버를 거치지 않습니다) |
국외 이전 고지위 수탁자는 모두 국외 사업자입니다(Cloudflare·Resend는 미국, Paddle은 영국). 이전 시점과 방법은 다음과 같습니다 — Cloudflare는 서비스 요청 처리·데이터 저장 시점에 HTTPS로, Resend는 매직링크 발송 시점에 API 호출로, Paddle은 이용자가 유료 결제를 시작하는 시점에 API 호출로 각각 전송됩니다(개인정보보호법 제28조의8). 이전되는 항목과 보유 기간은 위 표와 3항에 적힌 것과 같습니다. 국외 이전을 원하지 않는 경우 서비스 이용을 중단하고 아래 6.의 연락처로 계정 삭제를 요청할 수 있으며, 유료 결제를 이용하지 않으면 Paddle로의 이전은 발생하지 않습니다.
오류 수집서버 오류는 위 Cloudflare의 로그 기능(Workers Logs)에 기록되며, 기록 전에 이메일 주소·토큰·키·비밀번호류를 자동으로 제거하고 최대 7일 뒤 자동 삭제됩니다. 이용자 기기(브라우저)에서 발생하는 오류는 수집하지 않습니다. 별도의 오류 수집 서비스 (Functional Software, Inc. dba Sentry — 미국 등)는 사용하지 않습니다. 도입하는 경우 이 절의 위탁 표에 수탁자로 추가하고 시행 전에 공지합니다.
5. 개인정보의 안전성 확보조치
- 종단간 암호화(E2EE): 볼트 항목·그룹명·개인키는 이용자 기기에서 암호화되며 서버는 복호화 키를 갖지 않습니다(항목 AES-256-GCM, 그룹키 래핑 ECDH P-256 + HKDF-SHA256, 마스터 비밀번호 기반 Argon2id 키 유도).
- 마스터 비밀번호 미보관: 「개인정보 보호법」 시행령상 이용자 비밀번호의 일방향 저장 요건에 대해, 이 서비스는 마스터 비밀번호를 서버에 전송·저장하지 않아 해당 요건을 초과 충족합니다.
- 전자서명 기반 무결성: 변경 이력을 기기 전자서명(ECDSA P-256)과 해시체인으로 보호합니다.
- 전송 구간 암호화(TLS), 접근권한 통제, 접속기록 보관 등 관리적·기술적 보호조치를 시행합니다.
6. 정보주체의 권리·의무 및 행사 방법
이용자는 언제든 개인정보 열람·정정·삭제·처리정지를 요구할 수 있습니다. 다만 볼트에 저장된 비밀번호 등 암호문 항목은 운영자가 복호화할 수 없으므로, 그 내용의 열람·정정은 이용자 본인이 자신의 기기(앱)에서 직접 수행하며, 운영자는 해당 암호문 레코드의 삭제만 처리할 수 있습니다. 권리 행사는 [email protected] 으로 요청할 수 있습니다.
7. 개인정보의 파기 절차 및 방법
보유기간이 경과하거나 처리 목적이 달성된 개인정보는 지체 없이 파기합니다. 전자적 파일은 복구·재생되지 않도록 안전하게 삭제하며, 관계 법령에 따라 별도 보존하는 기록은 그 목적 외의 용도로 이용하지 않습니다.
8. 개인정보 자동 수집 장치
이 서비스는 로그인 상태 유지를 위해 이용자 기기의 브라우저에 세션 쿠키를 저장합니다. 이 세션 쿠키는 HttpOnly 속성으로 설정되어 자바스크립트가 읽을 수 없으며, 같은 사이트 요청에만 전송되도록 제한(SameSite)됩니다. 아울러 위조 요청(CSRF)을 막기 위한 보안용 쿠키를 함께 사용합니다. 브라우저 로컬 저장소에는 언어 설정과 가입 직후의 단기 표식만 둡니다. 이용자는 브라우저 설정으로 이를 삭제할 수 있으며, 삭제 시 재로그인이 필요합니다. 광고·추적용 쿠키는 사용하지 않습니다.
9. 개인정보 보호책임자
| 구분 | 내용 |
|---|---|
| 개인정보 보호책임자 | 「기입 필요: 보호책임자 성명」 (Credseal 운영 총괄) |
| 연락처 | [email protected] / 「기입 필요: 대표 전화번호」 |
정보주체는 개인정보 침해에 대한 신고·상담을 개인정보침해신고센터(privacy.kisa.or.kr, 118), 개인정보 분쟁조정위원회(kopico.go.kr, 1833-6972), 대검찰청(1301), 경찰청(182)에 문의할 수 있습니다.
10. 개정 고지
이 방침은 아래 시행일자부터 적용되며, 내용 추가·삭제·수정이 있을 경우 시행 7일 전(중요한 변경은 30일 전)부터 공지합니다.
게시 전 확인「기입 필요: …」로 표시된 항목은 사업자등록 완료 후 실제 값으로 채워야 하며, 값이 채워지기 전에는 유료 결제를 개시하지 않습니다.