KutunaCo 보안 모델
최종 업데이트:
이 페이지의 내용
KutunaCo는 계정 없이 오프라인으로 사용하는 iOS 및 Android용 비밀번호 관리자입니다. 이 페이지에서는 KutunaCo 1.12.0 버전이 무엇을 보호하는지, 데이터가 어디에 보관되는지, 무엇으로부터 데이터를 지키는지 설명하고, 할 수 없는 일도 분명히 밝힙니다.
요약
- 상자와 설정은 휴대폰에서 AES-256으로 암호화되며, 키는 iOS 키체인 또는 Android Keystore에 해당 기기에만 보관됩니다.
- 계정, 서버, 동기화, 광고, 분석 기능이 없습니다. Android용 KutunaCo에는 인터넷 권한조차 없으며, 앱은 네트워크 요청을 할 수 없습니다.
- 백업은 백업 비밀번호에서 Argon2id로 유도한 키(새 백업은 메모리 64 MiB 사용)를 사용해 AES-256-GCM으로 암호화됩니다.
- 앱 잠금은 생체 인식, 기기 암호 또는 4~8자리 앱 PIN으로 해제됩니다.
왜 오프라인인가요?
클라우드 비밀번호 관리자는 수백만 개의 보관함을 같은 서버에 보관하며, 그 서버들은 하나의 거대한 표적이 됩니다. KutunaCo에는 유출될 중앙 데이터베이스도, 공격할 서버도, 탈취될 계정도 없습니다. 상자는 휴대폰과 직접 만든 백업에만 존재합니다.
그만큼 감수해야 할 점도 분명합니다. 기기 간 자동 동기화가 없습니다. 다른 휴대폰으로 옮기려면 암호화된 백업을 만든 후 새 휴대폰에서 가져와야 합니다.
데이터 저장 위치
- 상자 항목과 설정: 앱 전용 폴더에, 무작위로 생성된 256비트 키를 사용해 AES-256으로 암호화되어 저장됩니다.
- 상자 키: iOS에서는 "이 기기에서만" 보호 속성과 함께 키체인에 보관되며(iCloud로 전송되지 않고 다른 기기로 복원되지 않음), Android에서는 Keystore로 래핑되어 보관됩니다.
- 앱 PIN: PIN 자체는 저장되지 않으며, 솔트를 적용한 PBKDF2-HMAC-SHA256 해시(210,000회 반복)만 저장됩니다. 다섯 번째 잘못된 시도부터 30초에서 최대 1시간까지 점점 늘어나는 대기 시간이 적용됩니다.
- 자동 완성 사본: 휴지통에 있지 않은 비밀번호 항목만 전달됩니다. 2FA 키, 메모, 카드 및 API 키 데이터는 자동 완성 저장소에 기록되지 않습니다.
- 백업: 직접 선택한 위치에만 저장되며, 임시 파일은 공유 후 삭제됩니다.
- 2FA QR 스캔: 카메라 프레임은 저장되지 않습니다. 선택한 스크린샷의 임시 사본은 읽은 후 삭제되며, Google Authenticator 계정 이전에서 스캔한 코드는 가져올 때까지 메모리에 머무릅니다.
잠금과 인증
- 잠금은 생체 인식(Face ID, 지문), 기기 암호 또는 앱 PIN으로 해제됩니다. Android에서는 강력한(클래스 3) 생체 인식 또는 기기 암호만 허용됩니다.
- PIN으로만 잠그는 경우, 생체 인식 잠금을 켜면 먼저 PIN을 요청합니다.
- 자동 잠금 옵션: 즉시, 30초, 1분, 5분, 15분 또는 안 함. 기기 시계를 되돌려도 우회할 수 없는 방식으로 시간을 측정합니다.
- 내보내기, 모든 데이터 삭제, 잠금 끄기, PIN 변경 같은 민감한 작업을 할 때는 다시 본인 확인을 요청합니다.
- PIN을 잊은 경우 기기의 화면 잠금 또는 생체 인식으로 본인 확인을 한 후 새 PIN을 설정하세요. 이 방법은 기기 잠금으로 PIN 재설정 허용이 켜져 있을 때(기본값) 사용할 수 있습니다. 기기 암호를 아는 사람이 새 PIN을 설정하지 못하게 하려면 이 옵션을 끄세요. 그러면 PIN을 잊었을 때는 화면 잠금이 없는 기기에서와 마찬가지로 모든 데이터를 삭제하고 백업을 복원해야 합니다.
자동 완성
- Android: 요청한 앱의 패키지 이름과 서명 인증서가 연결된 앱과 일치하거나, 서명이 확인된 알려진 브라우저에서 도메인이 일치할 때만 항목이 추천됩니다. 입력할 때마다 본인 확인을 요청하며, PIN으로만 잠그는 경우에는 앱 PIN도 요청합니다. 입력되는 비밀번호만 복호화됩니다. 안전한 화면 잠금이 없으면 자동 완성이 작동하지 않습니다.
- iOS: 기기 소유자 인증(Face ID, Touch ID 또는 기기 암호) 없이는 아무것도 표시되지 않습니다. 시스템에는 도메인과 사용자 이름만 전달되며, 비밀번호는 전달되지 않습니다.
- 2FA 링크: 웹사이트나 다른 앱이 연
otpauth://링크는 경고와 함께 표시되며, 사용자가 확인한 후에만 저장됩니다. 기존 2FA 키를 덮어쓰는 일은 없습니다.
클립보드와 화면
- 복사한 비밀번호는 민감한 정보로 표시됩니다. Android 13 이상에서는 미리보기나 키보드의 클립보드 기록에 나타나지 않으며, iOS에서는 공통 클립보드를 통해 다른 기기로 전송되지 않습니다.
- 클립보드는 선택한 시간(30초, 60초, 90초 또는 안 함)이 지나면, 그리고 앱이 잠길 때 지워집니다. 복사한 2FA 코드도 민감한 정보로 표시됩니다.
- Android에서는 스크린샷과 화면 녹화가 차단됩니다. iOS에서는 앱이 백그라운드에 있을 때와 화면을 녹화하는 동안 내용이 숨겨집니다.
- 민감한 입력란에서는 키보드 학습과 자동 수정이 꺼져 있습니다.
백업
- 키는 백업 비밀번호에서 Argon2id(메모리 64 MiB, 반복 3회, 레인 4개: RFC 9106 권장 설정)로 유도됩니다. 각 파일에는 자체 매개변수가 기록되어 있으므로 1.8.0 이전에 19 MiB / 반복 2회로 만든 백업도 계속 열 수 있습니다. 내용은 AES-256-GCM으로 암호화되며 헤더도 인증되므로, 변조된 파일은 열리지 않습니다.
- 백업 비밀번호는 10자 이상이어야 합니다. "Password123!"처럼 추측하기 쉬운 비밀번호는 거부되며, 제품 이름인 KutunaCo도 사용할 수 없습니다.
- 비밀번호를 잊으면 저희를 포함해 누구도 백업을 열 수 없습니다.
- 암호화되지 않은 내보내기는 사용자가 명시적으로 확인한 경우에만 진행되며, 그 파일을 여는 사람은 누구나 항목을 읽을 수 있습니다.
알려진 제한 사항
- 앱 잠금은 UI 잠금입니다. 상자 키는 생체 인식에 묶여 있지 않으며, 상자는 기기를 처음 잠금 해제한 후부터 사용할 수 있는 키로 암호화됩니다.
- 생체 인식 잠금은 기기 암호도 허용합니다. 기기 암호를 아는 사람은 상자를 열 수 있습니다.
- 상자는 iCloud 또는 Google 기기 백업으로 새 휴대폰에 옮겨지지 않습니다. 휴대폰을 바꾸거나 초기화하기 전에 암호화된 KutunaCo 백업을 만드세요.
- 유출 확인 기능(Have I Been Pwned 등)은 없습니다. 앱은 인터넷에 연결하지 않으므로 외부 목록을 조회할 수 없습니다. 비밀번호 진단 보고서는 전적으로 기기에서 계산됩니다.
- 패스키는 지원되지 않습니다.
- iOS 자동 완성 확장 프로그램은 앱 PIN을 요청하지 않고 기기 소유자 인증만 요청합니다. 그래서 PIN으로만 잠그고 PIN 재설정을 끈 경우에는 iOS 자동 완성에 비밀번호가 전달되지 않으며, iOS에서는 자동 완성을 사용할 수 없습니다.
- 본인 확인 전에도 자동 완성 추천에는 항목 제목과 사용자 이름이 표시됩니다(iOS QuickType, Android 잠긴 추천). Android에서는 설정 › 보안 › 추천 목록에서 사용자 이름 숨기기로 사용자 이름을 숨길 수 있습니다.
- Android의 QR 코드 스캐너는 Google Play 서비스와 함께 제공되며, 선택한 스크린샷도 이 스캐너로 읽습니다. Google Play 서비스가 없으면 설정 키를 직접 입력하거나 붙여넣으세요. Google Play 서비스는 스캐너가 사용될 때마다 이에 관한 익명 진단 정보(이벤트 종류, 소요 시간, 오류 코드와 휴대폰 모델, 앱 버전 등 기기 및 앱에 관한 정보)를 Google에 전송할 수 있으며, 이미지, QR 코드의 내용, 상자에 있는 항목은 이 정보에 절대 포함되지 않습니다.
- 새 버전이 나왔을 때 알려 드리기 위해 Android 앱은 시작될 때마다, 그리고 앱으로 돌아올 때는 최대 1시간에 한 번, 휴대전화의 Play 스토어 앱에 업데이트가 있는지 물어봅니다(Google Play In-App Updates). 이에 답하기 위해 Play 스토어가 휴대전화 모델과 앱 버전 같은 기기 및 앱 정보를 Google에 전송할 수 있으며, 상자에 있는 항목은 여기에 절대 포함되지 않고 앱 자체는 여전히 어떤 네트워크 요청도 하지 않습니다. iPhone에서는 앱이 아무것도 확인하지 않으며, 설정 › 정보에서 App Store의 KutunaCo 페이지가 열립니다.
- 루팅 또는 탈옥되었거나 악성 코드에 감염된 기기에서는 어떤 앱도 데이터를 완전히 보호할 수 없습니다.
취약점 신고
보안 문제를 발견하면 support@kutuna.co 주소로 알려 주세요. 영향을 받는 버전, 플랫폼, 재현 단계를 함께 보내 주시고, 실제 상자 데이터나 비밀번호는 보내지 마세요. 연락처 정보는 security.txt에도 나와 있습니다.