Novaz Authenticator는 안전한가요?
요약하면, 설정 키는 iPhone의 키체인에 보관되며 저희에게 전송되지 않습니다. 사용자가 선택한 경우에만 암호화된 백업으로 iPhone 밖에 저장됩니다. 계정도 없고, 코드를 보관하는 서버도 없습니다. 아래에서 한계를 포함해 자세히 설명합니다.
이 페이지는 앱 버전 1.0.5를 코드와 대조해 확인한 내용입니다. 여기에 적힌 내용이 바뀌면 페이지와 위의 날짜를 업데이트합니다. 앱과 이 웹사이트가 정보를 처리하는 방식은 개인정보 처리방침에 있습니다.
설정 키가 저장되는 곳
추가하는 모든 계정에는 설정 키가 있습니다. 설정 키는 코드를 계산하는 데 쓰이는 비밀 값입니다. Novaz는 키를 iPhone 키체인에 보호 등급 AfterFirstUnlockThisDeviceOnly로 저장합니다. 실제로는 다음과 같습니다.
- 이 기기에만. 키의 기본 사본은 iCloud 키체인으로 동기화되지 않습니다. 빠른 시작으로 옮겨지지 않으며, iPhone 백업을 다른 iPhone에 복원해도 옮겨지지 않습니다. 계정을 새 iPhone으로 옮기려면 아래의 선택 백업 중 하나를 사용하세요. 인증 앱을 새 iPhone으로 옮기는 방법을 참고하세요.
- 처음 잠금 해제한 후. 재시동한 후에는 iPhone을 한 번 잠금 해제하기 전까지 키를 읽을 수 없습니다. “암호가 설정된 경우”로 지정된 항목과 달리, iPhone 암호를 꺼도 키는 그대로 남습니다.
- 저희 서버에는 없음. Novaz 계정도, 키를 보관하는 서버도 없습니다. 저희가 원하더라도 키나 코드를 볼 수 없습니다.
카운트다운 스타일, 앱 잠금 사용 여부 같은 앱 설정도 기기에 저장됩니다.
백업(선택 사항)
설정의 백업에서 다음 중 하나를 켜지 않는 한 아무것도 iPhone 밖으로 나가지 않습니다.
- iCloud 백업(PRO). Novaz가 계정 사본을 iCloud 키체인에 별도 항목으로 저장합니다. Apple은 이 항목을 종단 간 암호화하고, 같은 Apple ID로 로그인한 기기에 동기화합니다. iCloud 키체인이 켜져 있어야 합니다. 새 iPhone에서는 비어 있는 코드 화면에 iCloud에서 복원이 표시됩니다. 복원은 무료 버전에서도 됩니다. iCloud 백업을 끄면 모든 기기의 iCloud에서 그 사본이 삭제됩니다. iPhone에 있는 코드는 그대로 유지됩니다.
- 백업 파일(무료). **파일로 내보내기…**는 직접 정한 8자 이상의 암호로 암호화한 파일에 계정을 저장합니다. 파일은 AES-256-GCM으로 암호화되며, 키는 PBKDF2-HMAC-SHA256과 600,000회 반복으로 암호에서 만들어집니다. 파일을 저장할 곳은 파일 앱이나 AirDrop처럼 사용자가 정합니다. **파일에서 가져오기…**는 암호를 입력하면 파일을 다시 읽어 옵니다. 저희는 파일을 열 수 없고 암호를 복구할 수도 없습니다.
Apple Watch, 위젯, 자동 완성(선택 사항, PRO)
이 기능들은 설정에서 켜기 전까지 꺼져 있습니다. 각 기능은 시스템의 다른 부분에 코드를 넘겨줍니다.
- Apple Watch에 코드 표시는 계정을 페어링된 Apple Watch의 Authenticator로 보냅니다. 계정은 Apple Watch의 키체인에 저장되고 Apple Watch 암호로 보호됩니다.
- 위젯에 코드 표시는 앱의 위젯과 공유하는 키체인 항목에 계정을 기록하며, 이 항목은 “이 기기에만”으로 지정됩니다. 위젯의 코드는 앱을 잠금 해제하지 않아도 볼 수 있습니다. 잠금 화면에서는 iPhone을 잠금 해제할 때까지 숨겨집니다.
- 코드 자동 완성은 웹사이트나 앱이 코드를 요청할 때 iOS가 코드를 제안하게 합니다. 앱 잠금이 켜져 있으면 Novaz는 코드를 채우기 전에 Face ID나 암호를 요구합니다.
이 중 하나를 끄면 그 기능이 쓰던 사본이 삭제됩니다.
코드가 만들어지는 방식
코드는 표준 시간 기반 일회용 비밀번호 알고리즘(TOTP, RFC 6238)으로 iPhone에서 계산됩니다. HMAC은 Apple의 CryptoKit을 사용합니다. Novaz가 지원하는 항목은 다음과 같습니다.
- SHA-1, SHA-256, SHA-512
- 6~8자리 코드
- 1~300초 간격
이 범위를 벗어나는 값을 요구하는 설정 링크는 저장되지 않고 거부됩니다. 카운터 기반 코드(HOTP)와 MD5는 지원하지 않습니다.
앱 잠금
앱 잠금은 선택 사항입니다. Novaz는 앱을 처음 열 때 앱 잠금을 제안합니다. 나중에 설정의 보안에서 앱 잠금으로 켤 수 있고, 잠금 해제 방법에서 방식을 고를 수 있습니다.

- Face ID 또는 Touch ID는 Apple의 LocalAuthentication 프레임워크를 사용합니다. Novaz는 얼굴이나 지문 데이터를 보지 못하며, 확인을 통과했는지 여부만 알 수 있습니다. 앱 암호가 없으면 iPhone 암호가 대체 수단입니다. 여섯 자리 앱 암호를 설정하면 그 암호가 대신 대체 수단이 됩니다.
- 여섯 자리 앱 암호는 저장되지 않습니다. Novaz는 무작위 솔트와 100,000회 반복을 적용한 PBKDF2-HMAC-SHA256 해시를 이 기기의 키체인에 보관합니다. 해시가 느리게 계산되므로, 그 항목의 사본을 손에 넣더라도 암호를 추측하는 데 큰 비용이 듭니다.
- 틀린 암호를 입력하면 대기 시간이 점점 길어집니다. 다섯 번째로 틀리면 30초, 그다음 1분, 5분, 15분, 아홉 번째 시도부터는 1시간입니다. 시도 횟수는 키체인에 저장되므로 앱을 닫아도 초기화되지 않습니다.
- 잠금 해제 요구. 설정에서 즉시, 1분 후, 5분 후 중에서 고르세요. 앱을 벗어난 뒤 다시 잠기기까지의 시간입니다.
- 암호를 잊어버린 경우. Novaz는 암호 자체를 저장하지 않으므로 암호를 보여 주거나 어딘가로 보낼 수 없습니다. 암호를 대체 수단으로 두고 Face ID를 사용한다면 Face ID로 계속 앱을 열 수 있습니다.
- 앱 전환기. 앱이 백그라운드로 가면 화면이 가려지므로 앱 전환기에 코드가 나타나지 않습니다.
- 탭하기 전까지 코드 숨김. 이 옵션(설정의 보안)을 켜면 코드를 탭하기 전까지 점으로 표시되고, 앱을 벗어나면 다시 숨겨집니다.
클립보드
코드를 복사하면 Novaz는 두 가지 제한을 걸어 클립보드에 넣습니다.
- 코드가 더 이상 유효하지 않을 때 만료됩니다.
- 로컬 전용이므로 유니버설 클립보드가 다른 Apple 기기로 보내지 않습니다.
카메라와 사진
- 카메라. 카메라는 설정 QR 코드를 읽기 위해 QR 코드 스캔 화면이 열려 있는 동안에만 사용됩니다. 아무것도 녹화하거나 저장하지 않습니다.
- 사진. Novaz는 사진 보관함 접근 권한을 요청하지 않습니다. 스크린샷을 선택하면 iOS의 사진 선택기가 그 이미지 한 장만 앱에 전달합니다. 앱은 그 이미지에서 QR 코드를 읽고 다른 것은 보관하지 않습니다.
앱이 보내는 네트워크 요청
Novaz는 오프라인에서 작동합니다. 코드를 만드는 데 인터넷 연결이 필요 없습니다. 온라인 상태일 때 앱은 다음 요청을 보냅니다.
| 요청 | 이유 | 전송되는 내용 |
|---|---|---|
https://www.apple.com/에 보내는 HEAD 요청 |
응답에서 현재 시각을 읽어 iPhone 시계가 어긋났으면 알려 주기 위해. 앱을 열거나 앱으로 돌아올 때, 최대 10분에 한 번. | 사용자나 계정에 관한 데이터가 없는 빈 요청. |
https://novaz.app/apps.json, Apple의 itunes.apple.com/lookup, Apple 이미지 서버의 앱 아이콘 |
설정을 열 때 다른 앱에 Novaz의 다른 앱을 표시하기 위해. 최대 6시간에 한 번. | 표준 요청 데이터만. 계정과는 관련이 없습니다. |
novaz.cc의 페이지 |
설정에서 가이드, 지원, 개인정보 처리방침, 서비스 약관을 탭할 때만. 앱 내 브라우저에서 열립니다. | 표준 웹 요청 데이터. |
| Apple이 운영하는 iCloud 키체인 | iCloud 백업을 켠 경우에만. Apple이 암호화된 백업을 기기 간에 동기화합니다. | Apple이 종단 간 암호화한 백업. 저희는 받지 않습니다. |
| StoreKit을 통한 App Store | 가격을 표시하고 PRO 구독을 처리하기 위해. | Apple이 처리합니다. 저희는 결제 정보를 보지 못합니다. |
앱에는 분석, 광고, 추적 SDK가 없습니다. App Store 개인정보 보호 라벨은 “데이터가 수집되지 않음”입니다.
Novaz가 막을 수 없는 것
한계를 분명히 알면 앱을 어떻게 쓸지 정하는 데 도움이 됩니다.
- 백업 없이 iPhone을 잃어버린 경우. 키는 저희에게 전송되지 않으므로 저희가 복원해 드릴 것이 없습니다. iCloud 백업을 켜거나 백업 파일을 보관하고, 각 서비스의 백업 코드도 다른 곳에 보관해 두세요.
- 약한 백업 암호. 백업 파일을 가진 사람이 암호를 알아내면 키를 읽을 수 있습니다. 다른 곳에서 쓰지 않는 긴 암호를 사용하세요.
- iPhone을 잠금 해제할 수 있는 사람. 앱 잠금이 꺼져 있으면 그 사람은 앱을 열어 코드를 볼 수 있습니다. 앱 잠금은 잠깐 들여다보는 것을 막아 주지만, 본인만 아는 iPhone 암호를 대신하지는 못합니다.
- 보안이 침해된 기기. 탈옥한 iPhone이나 시스템 권한을 가진 악성 코드가 실행 중인 iPhone에서는 어떤 앱도 데이터를 비공개로 지킨다고 약속할 수 없습니다.
- 피싱. 가짜 로그인 페이지가 현재 코드를 요구한 뒤 바로 사용할 수 있습니다. 코드를 입력하기 전에 항상 진짜 웹사이트인지 확인하세요.
보안 문제 신고
앱이나 이 웹사이트에서 취약점을 발견했다고 생각되면, 제목에 “Security”(보안)를 넣어 support@novaz.app으로 이메일을 보내 주세요. 세부 사항을 공개하기 전에 저희가 고칠 기회를 주시기 바랍니다. security.txt에도 같은 연락처가 있습니다.