KeepWatch 개인정보 처리방침
이 번역은 편의를 위해 제공되는 것입니다. 구속력을 갖는 것은 영문본이며, 내용이 다를 경우 영문본이 우선합니다.
요약. KeepWatch는 계정 없이 사용자 자신의 네트워크에 있는 카메라를 찾아 그 카메라가 보는 것을 보여 줍니다. 카메라의 주소와 로그인 정보, 사용자가 보는 것, 되감아 보기 위해 휴대폰이 보관한 영상, 사용자가 저장한 스냅샷과 클립, 앱이 찾아낸 움직임은 모두 휴대폰에 남습니다. 기본 설정에서는 당사가 직접 운영하는 서버로 전송되는 오류 보고서와, 앱을 시작할 때 앱의 원격 설정을 Google의 Firebase에 묻는 요청 외에는 아무것도 휴대폰을 떠나지 않습니다. 연결되지 않는 카메라에 관한 보고서는 사용자가 보낼 때만 휴대폰을 떠나며, 익명 이용 현황 리포트는 사용자가 켜기 전까지 꺼져 있습니다. Apple이나 Google로, 또는 이메일 주소로 받은 코드로 로그인하면 당사는 사용자의 이메일 주소와, Google의 경우 이름과 프로필 사진 링크도, 그리고 로그인 상태를 유지하는 기록을 보유합니다. 중계를 켜면 집에 있는 휴대폰이 보고 있는지와 관계없이 자신의 모든 카메라 영상을 그 휴대폰에만 보관하고, 카메라 목록, 곧 카메라 이름과 집 네트워크에서의 주소, 로그인 정보, 사용자의 구역과 멀티뷰를 당사가 열 수 없는 중계 암호 문구로 봉인하여 당사에 보내고, 영상과 스냅샷, 카메라 명령도 같은 암호 문구로 봉인된 채 사용자의 한 휴대폰에서 다른 휴대폰으로 갑니다. 사용자의 휴대폰들은 서로 직접 연결을 시도하며, 직접 연결할 수 없으면 그 봉인된 트래픽이 저장되는 일 없이 실시간으로 당사 서버를 거쳐 가고, 그곳에서도 당사는 그것을 읽을 수 없습니다. 동기화를 켜면 사용자의 구성이 다른 휴대폰들을 위해 같은 암호 문구로 봉인된 채 당사 서버에 보관됩니다. Pro는 App Store 또는 Google Play에서 구매하며, 구매에 관한 어떤 것도 당사 서버에 도달하지 않습니다. 이용 현황 리포트를 켰다면 Google의 Firebase가 그 리포트의 일부로 구매를 집계하지만, 사용자와 연결하지는 않습니다. 당사는 광고를 표시하지 않으며, 광고를 위해 개인정보를 판매하거나 공유하지 않습니다.
이 방침은 KeepWatch 앱(이하 "앱")이 어떤 데이터를 다루고, 무엇이 HYPER C(이하 "당사")에 도달하며, 무엇이 사용자의 휴대폰과 네트워크에 남는지를 설명합니다. iOS 및 Android 앱, 그 뒤의 중계 서비스, 그리고 그로 인해 당사가 보내는 이메일에 적용됩니다. HYPER C는 대한민국의 개인사업자 임중혁의 상호(사업자등록번호 494-01-04265)이며, 이 방침에서 "당사"는 HYPER C(대표 임중혁)를 가리킵니다. 문의는 [email protected]로 보내주십시오. 이 방침은 영어로 작성되었으며 스페인어, 포르투갈어, 프랑스어, 일본어, 중국어 간체, 한국어로도 게시됩니다. 번역본은 편의를 위해 제공되며, 번역본이 영어 원문과 다를 경우 영어 원문이 우선합니다.
1. 휴대폰에 남는 데이터
앱은 계정이 없어도 온전히 동작합니다. 앱에 필요한 것은 모두 휴대폰 안에 있습니다.
- 카메라 — 각 카메라의 이름과 모델, 네트워크에서의 주소, 함께 저장된 스트림 주소, 그리고 앱이 그 카메라에 로그인할 때 쓰는 사용자 이름이 사용자의 구역과 멀티뷰와 함께 앱의 로컬 데이터베이스에 저장됩니다. 각 카메라의 비밀번호와, 로그인 정보가 들어 있는 스트림 주소는 그 데이터베이스와 따로 휴대폰의 보안 키 저장소(iOS 키체인 / Android Keystore)에 보관됩니다. iPhone에서는 그 휴대폰에서만, 그것도 휴대폰을 켠 뒤 한 번 잠금을 해제한 다음에만 읽을 수 있습니다. 이 값들은 휴대폰의 클라우드 백업과 새 휴대폰으로의 기기 이전에서 빠지므로, 백업에서 복원한 휴대폰에는 카메라는 돌아오지만 카메라마다 비밀번호를 다시 묻습니다. 앱은 카메라에 로그인하려고 이 값들을 다시 읽으므로, 잠금이 풀린 휴대폰과 앱을 쓸 수 있는 사람이라면 여전히 이를 사용할 수 있습니다.
- 사용자가 보는 것 — 실시간 영상은 사용자 자신의 네트워크를 통해 카메라에서 휴대폰으로 바로 옵니다. 카메라나 멀티뷰가 화면에 있는 동안 거기서 재생되는 영상은 되감아 볼 수 있도록 휴대폰 안 앱의 임시 저장 공간에만 보관되며, 다른 곳에는 보관되지 않습니다. 중계를 켠 휴대폰은 그 휴대폰에서 본 것보다 더 많이 보관합니다. 중계가 켜져 있는 동안에는 누가 보고 있는지와 관계없이 그 휴대폰의 모든 카메라 영상을 같은 휴대폰의 같은 저장 공간에 보관하여, 사용자의 다른 휴대폰이 되감아 볼 수 있게 합니다. 중계 탭의 "재생" 아래에 있는 "모든 카메라 영상 보관" 스위치를 끄지 않는 한 그렇게 하며, 이 스위치는 사용자가 끄기 전까지 켜져 있습니다. 끄면 휴대폰은 그 휴대폰에서 본 영상만 보관합니다. 이미 보관된 영상은 카메라를 닫은 뒤에도, 중계나 이 스위치를 끈 뒤에도 그곳에 남아 있고, 오래되었다는 이유로 지워지지는 않습니다. 보관에 쓸 공간은 설정의 "재생 보관 공간"에서 256 MB부터 5 GB까지 정할 수 있으며, 바꾸지 않으면 1 GB입니다. 중계가 켜져 있어서 보관되는 영상도 그 휴대폰에서 본 영상과 이 공간을 함께 씁니다. 그 공간이 가득 차면 새 영상을 위해 가장 오래된 영상부터 지워집니다. 그 밖에, "보는 영상 보관"을 끄거나 설정에서 지우면 보관된 영상이 모두 지워지고, 이 스위치가 꺼져 있는 동안에는 중계가 켜져 있든 아니든 아무것도 보관되지 않습니다. 한 카메라에 대해 보관된 영상은 그 카메라를 앱에서 제거할 때 지워지며, 중계를 통해 사용자의 다른 휴대폰으로 본 카메라에 대해 보관된 영상은 로그아웃할 때 지워집니다. 임시 저장 공간이므로, 휴대폰의 저장 공간이 부족해지면 휴대폰 시스템이 이를 비울 수도 있습니다. 남아 있는 동안에는 같은 계정으로 로그인한 사용자의 다른 휴대폰이 중계를 통해 그 영상을 되감아 볼 수 있습니다. 그 영상은 실시간 영상과 마찬가지로 한 휴대폰에서 다른 휴대폰까지 봉인된 채 전달되며, 당사 서버에는 전혀 보관되지 않습니다(제4조).
- 스냅샷과 클립 — 사용자가 찍은 사진과 휴대폰이 보관한 영상으로 만든 클립은 삭제하기 전까지 휴대폰 안 앱 자체의 보관함에 저장됩니다.
- 이벤트 — 움직임은 휴대폰에서, 화면에 보이는 영상 안에서 찾으며, 찾아낸 것은 그 순간의 사진과 함께 이벤트 목록에 기록됩니다. 이벤트는 설정에서 고른 일수가 지나면 지워집니다. 어떤 카메라에도 움직임을 당사에 보고하라고 요청하지 않으며, 휴대폰이 찾아낸 것은 휴대폰을 떠나지 않습니다.
- 방송 — 방송 탭을 켜면 휴대폰의 카메라가, 그리고 소리 스위치를 켠 경우 마이크가, 같은 Wi-Fi에서 요청하는 기기에 카메라가 그러하듯 비밀번호 없이 제공됩니다. 그 Wi-Fi에 있는 어떤 기기든 볼 수 있습니다. 중계도 켜져 있으면 휴대폰은 같은 계정으로 로그인한 사용자의 다른 휴대폰들에도, Wi-Fi가 없을 때에도, 중계를 통해 중계가 실어 나르는 다른 모든 것과 똑같이 봉인하여 자신의 방송을 제공합니다. 방송이 켜져 있는 동안에만 제공되며 사용자의 카메라에 추가되는 일이 없으므로 동기화가 그것을 복사하지도 않습니다. 중계가 켜져 있는 동안에는, 중계 탭의 "모든 카메라 영상 보관"이나 설정의 "보는 영상 보관"을 끄지 않은 한, 휴대폰은 자신의 방송으로 보내는 것도 녹화로 보관합니다. 영상이 보관되며, 소리 스위치를 켠 경우에는 소리도 함께 보관됩니다. 녹화는 그 휴대폰에만, 앱 자체의 캐시 폴더에 보관됩니다. "재생 보관 공간"에서 허용한 것과 같은 크기의 공간을 따로 쓰므로, 둘을 합치면 휴대폰은 그 수치의 두 배까지 보관할 수 있으며, 가장 오래된 것부터 지워집니다. 녹화는 방송 탭의 "녹화" 아래 "현재 보관 중"에서 하나씩 또는 모두 지울 수 있고, "보는 영상 보관"을 꺼도 모두 지워집니다. 설정에서 보관된 영상을 지우면 카메라에 대해 보관된 영상만 지워지고 방송 녹화는 그대로 남습니다. 방송을 볼 수 있는 기기는 같은 방식으로 그 녹화를 되감아 볼 수도 있습니다. 그 Wi-Fi에 있는 어떤 기기든 비밀번호 없이, 그리고 사용자의 다른 휴대폰은 중계를 통해 볼 수 있으며, 당사 서버에는 전혀 보관되지 않습니다. 그 밖에 녹화가 앱을 떠나는 것은 사용자가 그 페이지에서 동영상으로 공유하거나 사진첩에 저장할 때뿐입니다. 중계가 꺼져 있거나 "모든 카메라 영상 보관"이 꺼져 있으면 방송은 새로 아무것도 보관하지 않습니다. 그 전에 보관된 것은, 이전 버전의 앱이 만든 녹화를 포함하여, 공간이 필요해지거나 사용자가 지울 때까지 남습니다. 카메라와 마이크는 그 밖의 어떤 용도로도 쓰이지 않으며, 스위치를 켜기 전까지는 어느 쪽도 건드리지 않습니다.
- 구성 파일 — 내보낸 구성 파일에는 카메라의 이름과 주소, 스트림, 사용자의 구역과 멀티뷰, 카메라별 움직임 감지 영역, 그리고 설정이 담깁니다. 카메라 로그인 정보는 파일을 암호 문구로 봉인하는 경우에만, 그것도 봉인된 채로만 들어갑니다. 파일은 사용자가 보내는 곳으로만 갑니다.
- 앱 설정과 사용자의 답변 — 테마, 언어, 스트리밍, 재생, 움직임, 알림 설정, 이용 현황 리포트에 동의했는지 여부(다시 묻지 않도록 저장합니다), 그리고 App Store 또는 Google Play가 Pro에 대해 마지막으로 알려 준 내용.
- 계정과 중계 키 — 로그인하면 로그인 상태를 유지하는 토큰이 휴대폰의 보안 키 저장소(iOS 키체인 / Android 키스토어)에 보관됩니다. 중계 암호 문구를 설정하면 휴대폰은 암호 문구 자체가 아니라 그로부터 유도한 키를 그곳에 보관하며, 중계를 통해 보는 휴대폰이나 다른 휴대폰이 봉인한 구성을 동기화하는 휴대폰은 사용자가 그 휴대폰에 암호 문구를 입력했을 때 유도한 키를 보관합니다. 이 중 어느 것도 당사에 도달하지 않습니다.
권한도 같은 선을 따릅니다. iPhone에서 로컬 네트워크 권한은 앱이 카메라를 찾고 카메라와 통신할 수 있게 하는 권한이고, 카메라와 마이크는 방송에서만 쓰이며, 사진 앱에는 추가 전용 접근만 요청하므로 앱은 스냅샷이나 클립, 녹화를 그곳에 넣을 수는 있어도 이미 들어 있는 것은 볼 수 없습니다.
2. 기본 설정에서 휴대폰을 떠나는 것
계정이 없을 때 휴대폰을 떠나는 것은 다음뿐입니다. 세 가지는 저절로, 네 번째는 사용자가 보낼 때만 떠납니다.
- 충돌 및 오류 보고서 — 제삼자가 아니라 당사가 직접 운영하는 오류 추적 서버(GlitchTip, Sentry 호환)로 전송됩니다. 보고서에는 오류 내용, 앱 버전, 기기 모델, 운영체제 버전이 담기며, 네트워크 안의 카메라 주소가 적힐 수 있습니다. 카메라 비밀번호, 스트림 주소에 들어 있는 로그인 정보 부분, 그리고 계정이 있다면 이메일 주소와 토큰은 모든 보고서에서 전송 전에 제거됩니다. 개인을 식별하는 항목과 화면 캡처는 보고 클라이언트에서 꺼져 있습니다. 이 앱의 화면 캡처는 곧 사용자의 집 안을 찍은 사진일 것이기 때문입니다.
- 카메라 문제 보고서, 사용자가 보낼 때만 — 카메라가 검색에 나타나지 않거나 연결되지 않으면, 카메라를 추가하는 단계와 저장한 카메라의 페이지에 "아직 안 보이나요? 보고서 보내기" 또는 "아직 연결되지 않나요? 보고서 보내기"가 나타납니다. 열리는 시트에서 보내기를 누르기 전까지는 아무것도 전송되지 않으며, 그 시트가 무엇이 전송되는지 알려 줍니다. 보고서는 오류 보고서와 같은 오류 추적 서버로 별도의 이벤트로 전송되며, 사용자가 있던 단계, 사용자가 쓴 메모(쓴 경우), 관련 카메라의 주소와 모델과 각 카메라의 응답, 앱의 최근 로그 최대 200줄, 그리고 오류 보고서에도 담기는 앱 버전과 기기 모델, OS 버전을 담습니다. 비밀번호는 절대 담기지 않습니다. 비밀번호 칸에 입력한 값과 모든 주소의 로그인 부분은 전송 전에 보고서의 모든 내용에서 지워집니다. 앱의 개인정보 및 데이터 화면에는 "직접 보내는 보고서"로 표시됩니다.
- 이용 현황 리포트는 사용자가 켜기 전까지 꺼져 있습니다. 앱은 Google Analytics for Firebase를 사용하여 어떤 화면이 열리는지와 어떤 단계가 진행되는지(카메라 추가, 스트림 열기, 클립 저장 등)를 세고, 카메라가 한 대인지 여러 대인지처럼 앱이 어떻게 설정되어 있는지에 관한 몇 가지 대략적인 사실을 함께 세되, 카메라가 몇 대인지는 결코 세지 않습니다. 켜져 있는 동안에는 Firebase SDK가 App Store 또는 Google Play를 통해 앱에서 이루어진 구매, 곧 어떤 상품을 샀는지와 그 이름, 가격도 다른 이벤트와 마찬가지로 스스로 측정합니다(제6조). 수집은 앱의 빌드 설정에서 비활성화되어 있으며, 첫 실행 소개의 마지막에 있는 체크박스를 켜거나 설정 → 내 데이터의 스위치를 켜기 전까지 꺼진 채로 유지됩니다. 켜져 있을 때 이벤트는 계정이 아니라 익명의 앱 인스턴스 식별자에 연결되며, 앱은 어떤 이벤트도 카메라의 이름이나 주소, 사용자 이름이나 비밀번호, 구역이나 멀티뷰의 이름, 사진을 담을 수 없도록 만들어져 있습니다. 광고 관련 동의는 사용자가 무엇을 선택하든 SDK에 거부됩니다. 리포트를 끄면 익명 식별자를 삭제해 달라고 Google에 요청하기도 하므로, 이전 이벤트는 프로필의 나머지를 기다리며 남는 대신 연결이 끊긴 상태가 됩니다.
- 앱의 원격 설정 — 앱은 시작할 때마다 Pro를 판매하는지 여부처럼 당사가 그곳에서 바꾸는 몇 가지 설정을 Google의 Firebase Remote Config에 묻습니다. 이 요청에는 Firebase가 이 앱 설치마다 만드는 식별자(사용자의 계정이나 휴대폰 하드웨어와 연결되지 않습니다)와 함께 앱 버전, 휴대폰의 OS 버전, 언어, 지역 설정, 시간대가 담기며, Firebase는 이를 이용해 보낼 설정을 고릅니다. 카메라에 관한 것은 아무것도 담기지 않으며, 이용 현황 리포트가 켜져 있든 꺼져 있든 보내집니다.
카메라의 영상은 이 경로로 휴대폰을 떠나는 일이 결코 없으며, 휴대폰을 떠나는 것 가운데 휴대폰에 설정된 지역과 시간대보다 사용자가 어디에 사는지를 더 자세히 말해 주는 것은 없습니다.
3. 로그인한 경우 당사가 받는 데이터
로그인은 선택 사항입니다. 로그인은 중계와 동기화가 같은 사람의 휴대폰들을 이어 줄 수 있도록 하기 위해 존재합니다. Apple이나 Google로, 또는 여섯 자리 코드를 받는 이메일 주소로 로그인하며, 당사에 설정할 비밀번호는 없습니다. 로그인 방법마다 별개의 계정이 됩니다. 당사는 이메일 주소로 계정을 합치지 않으므로, Apple로 로그인한 뒤 나중에 같은 주소로 받은 코드로 로그인하면 서로 다른 두 계정이 생깁니다.
- 계정 식별 정보 — 이메일 주소, 그리고 그 언어로 메일을 보낼 수 있도록 휴대폰이 사용하는 언어.
- Apple 또는 Google — Apple이나 Google로 로그인하면 당사는 Apple 또는 Google이 사용자의 계정에 대해 당사에 주는 식별자(다음번에 사용자를 알아보는 데 쓰입니다)와 사용자의 이메일 주소를 받습니다. Apple에서는 사용자가 공유하기로 고른 주소를 받으며, 이는 Apple이 사용자의 실제 주소로 전달해 주는 비공개 릴레이 주소일 수 있습니다. Google에서는 Google이 확인한 경우 사용자의 주소를 받습니다. Google 로그인에는 사용자의 Google 계정 이름과 프로필 사진 링크도 담겨 오며, 당사는 이를 보관합니다. 이름은 당사가 보내는 이메일에서 사용자를 부르는 데에만 쓰고, 링크는 받은 그대로 보관하며 사진 자체는 가져오지 않습니다. 앱은 Apple에 사용자의 이름을 요청하지 않습니다. Apple에서 받은 토큰도 암호화하여 보관하는데, 그 유일한 용도는 Apple의 요구에 따라 사용자가 KeepWatch 계정을 삭제할 때 사용자의 Apple 계정에 대한 KeepWatch의 접근을 철회하는 것입니다. 사용자가 KeepWatch에서 Apple 계정 사용을 중단하거나, 그 Apple 계정을 삭제하거나, 비공개 릴레이 주소로의 전달을 끄면 Apple이 당사에 알려 주며, 당사는 그에 따라 사용자의 세션을 끝내거나, 그 로그인 방법을 제거하거나(그것이 유일한 방법이었다면 계정 삭제를 예약합니다), 그 주소로 메일 보내기를 멈춥니다. 당사는 사용자의 Apple 또는 Google 비밀번호를 결코 보지 못합니다.
- 로그인 코드 — 이메일로 로그인하는 경우, 코드의 해시된 사본을 코드를 받은 이메일 주소, 코드를 요청한 앱, 축약된 네트워크 주소와 함께 보관하여 코드 발급을 제한하고 남용을 탐지합니다. 코드는 몇 분 안에 만료되고 몇 번 틀리면 소진되며, 그 기록에는 코드가 읽을 수 있는 형태로 담기는 일이 없고 사용자의 계정과 연결되지도 않습니다.
- 세션 — 로그인한 휴대폰마다 해시된 갱신 토큰, 휴대폰 이름, 앱 식별자, 축약된 네트워크 주소. 갱신 토큰은 60일 뒤 만료되어 토큰이 만료된 휴대폰은 다시 로그인해야 하며, 로그아웃하면 세션은 즉시 끝납니다. 끝난 세션의 기록은 끝났다는 표시와 함께 계정이 삭제될 때까지 남습니다.
- 휴대폰 기록 — 로그인한 각 휴대폰은 앱이 중계를 위해 만들어 낸 설치 식별자(휴대폰의 하드웨어 식별자가 아니라 무작위 숫자), 사용자가 휴대폰에 붙인 이름, iPhone인지 Android 휴대폰인지, 실행 중인 앱의 버전, 중계가 켜져 있는지 여부, 마지막으로 연결된 시각을 등록합니다.
- 감사 기록 — 계정에서 일어난 중요한 행위(로그인, 삭제 등)를 축약된 네트워크 주소와 함께 남긴 기록으로, 보안과 분쟁 대응을 위해 보관합니다.
네트워크 주소는 당사 데이터베이스에 저장되기 전에 축약됩니다. IPv4는 /24, IPv6는 /48까지만 남기므로, 당사가 거기에 보관하는 것은 기기가 아니라 대략적인 접속 지역을 가리킵니다. 제한된 기간만 보관되는 서버의 요청 로그에는 요청이 온 전체 주소가 담길 수 있습니다.
4. 중계나 동기화를 켠 경우 당사가 받는 데이터
중계를 사용하면 같은 계정으로 로그인한 다른 휴대폰에서 집에 있는 카메라를 볼 수 있습니다. 집에 있는 휴대폰은 앱이 화면 앞에 열려 있는 동안 당사 서버와의 연결을 열어 두고, 집 밖에 있는 휴대폰은 같은 서버에 연결하며, 당사 서버가 둘을 이어 줍니다. 서버는 두 휴대폰이 서로 직접 연결하도록 돕고, 직접 연결할 수 없을 때는 둘 사이의 트래픽을 서버가 대신 실어 나릅니다. 이를 위해 세 종류의 데이터가 당사를 거쳐 갑니다.
- 카메라 목록(봉인됨) — 집에 있는 휴대폰은 다른 휴대폰이 같은 격자를 보여 줄 수 있도록 자신이 보는 것의 설명, 곧 각 카메라의 이름과 모델, 집 네트워크에서의 주소, 함께 저장된 스트림 주소와 사용자 이름, 비밀번호, 사용자의 구역과 멀티뷰, 그리고 자신의 방송이 켜져 있는 동안에는 사용자의 다른 휴대폰들도 볼 수 있도록 그 휴대폰 자신을 게시합니다. 이 모두는 집에 있는 휴대폰을 떠나기 전에 봉인됩니다. 사용자가 고른 중계 암호 문구로부터 유도한 키로 암호화되며, 사용자가 그 암호 문구를 입력한 휴대폰만이 열 수 있습니다. 그래서 암호 문구를 설정하기 전에는 중계가 작동하지 않습니다. 당사는 여는 키가 없는 봉인된 사본과 함께, 그 휴대폰이 쓰는 설정 형식과 중계 봉인의 버전만을 담은 짧은 헤더를 저장합니다. 이 목록은 무언가 바뀔 때마다 다시 전송되며, 가장 최신 사본이 그 휴대폰이 계정에서 제거되거나 계정이 삭제될 때까지 당사 서버에 저장됩니다. 당사는 봉인된 사본의 크기와 그것이 언제 바뀌는지는 볼 수 있지만 그 내용은 결코 볼 수 없으며, 당사가 내용을 바꾸면 사용자의 다른 휴대폰이 그 사본을 거부합니다. 당사가 할 수 있는 것은 새 사본을 전달하지 않거나 이전 사본을 전달하는 것입니다. 암호 문구를 잊으면 당사는 복구해 드릴 수 없으며, 집에 있는 휴대폰에서 새 암호 문구를 설정하고 다른 휴대폰에 다시 입력해야 합니다.
- 연결 정보 — 사용자의 휴대폰들이 서로 직접 연결을 시도할 수 있도록, 당사 서버는 연결을 맺는 동안 각 휴대폰의 연결 정보를 다른 휴대폰에 전달합니다. 이는 WebRTC 세션 설명과 네트워크 후보로, 휴대폰의 IP 주소와 포트를 담고 있습니다. 서버는 이를 전달할 뿐 저장하지 않습니다.
- 중계되는 트래픽(봉인됨) — 휴대폰들이 서로 직접 연결할 수 없을 때, 실시간 영상과 소리(휴대폰 자신의 방송을 포함합니다), 스냅샷, 팬, 틸트, 줌을 비롯한 카메라 명령, 녹화 목록, 그리고 집에 있는 휴대폰이 보관한 영상은 모두 사용자의 휴대폰들 사이에서 실시간으로 당사 서버를 거쳐 갑니다. 이 모두는 카메라 목록과 같은 키로 사용자의 한 휴대폰에서 다른 휴대폰까지 종단 간 봉인됩니다. 각 부분이 향하는 카메라의 주소도 마찬가지입니다. 당사 서버는 그 어느 것도 읽을 수 없으며, 도중에 바뀌거나 빠지거나 다시 보내진 것은 사용자의 휴대폰에서 열리지 않고 더 나아가지 않습니다. 서버가 보는 것은 전달에 필요한 것, 곧 각 조각이 어떤 종류의 메시지인지, 사용자의 어느 연결에 속하는지, 길이가 얼마인지, 언제 지나가는지뿐입니다. 그래서 휴대폰들 사이에 얼마나 많은 양이 언제 오가는지는 알 수 있어도 무엇이 오가는지는 알 수 없습니다. 서버는 트래픽을 전달할 뿐 아무것도 보관하지 않습니다. 그 어느 것도 저장되지 않습니다. 당사 로그에 기록되는 것은 사용자의 각 휴대폰과 중계 사이의 연결이 언제 열리고 닫혔는지뿐이며, 그 연결을 지나간 내용에 관해서는 아무것도 기록되지 않습니다. 봉인에 더해, 각 휴대폰과 당사 서버 사이의 연결도 암호화됩니다.
휴대폰들이 직접 연결되면 카메라 트래픽은 당사를 거치지 않습니다. 두 휴대폰 사이의 경로를 찾기 위해 각 휴대폰은 공개 STUN 서버(기본값은 Google의 stun.l.google.com과 Cloudflare의 stun.cloudflare.com)에 자신의 공인 IP 주소와 포트를 묻고, 그런 다음 두 휴대폰이 WebRTC로 서로 연결합니다. 연결된 뒤에는 카메라 영상, 카메라에 쓰는 로그인 정보, 그 밖의 카메라 트래픽이 중계되는 트래픽과 마찬가지로 중계 암호 문구에서 유도한 키로 봉인되고, WebRTC 자체의 암호화(DTLS)에 한 번 더 싸여 사용자의 한 휴대폰에서 다른 휴대폰으로 바로 가며, 당사 서버는 이를 보지 못합니다. 따라서 사용자의 각 휴대폰은 상대 휴대폰의 IP 주소를 알게 됩니다. 이 연결은 사용자 자신의 휴대폰끼리만 이어 주며, 다른 사용자와 공유되는 것은 없습니다.
중계가 켜져 있는 동안 당사는 집에 있는 휴대폰이 연결되어 있는지와 몇 대의 휴대폰이 그것을 통해 보고 있는지도 알게 되며, 이것이 앱이 사용자에게 보여 주는 정보입니다. 이 정보는 연결이 끝나면 보관되지 않습니다.
중계는 같은 계정으로 로그인한 휴대폰 사이에서만 동작합니다. 중계를 통해 다른 누구에게도 카메라에 대한 접근을 줄 수 없으며, 당사 역시 카메라를 볼 수 없습니다.
동기화는 사용자의 계정으로 로그인하고 설정 맨 위의 동기화 스위치를 켠 모든 휴대폰에서 사용자의 구성을 똑같이 유지합니다. 사용자가 켜기 전까지는 꺼져 있습니다. 동기화가 당사 서버에 보관하는 것은 구성 파일에 담기는 내용을 계정마다 한 부씩입니다. 카메라의 이름과 주소, 스트림과 그 로그인 정보, 사용자의 구역과 멀티뷰, 카메라별 움직임 감지 영역, 그리고 설정입니다. 이 모두는 휴대폰을 떠나기 전에 휴대폰에서 봉인됩니다. 중계와 같은 중계 암호 문구로 사용자의 계정에 묶여 봉인되므로 당사는 읽을 수 없고, 다른 계정으로 옮겨진 사본은 열리지 않습니다. 그 옆에 당사가 저장하는 것은 어떤 버전의 구성 형식을 쓰는지 알려 주는 헤더뿐입니다. 중계와 마찬가지로 당사는 사본의 크기와 언제 바뀌는지는 볼 수 있지만 그 내용은 결코 볼 수 없으며, 당사가 할 수 있는 일은 새 사본을 저장하지 않거나 더 오래된 사본을 돌려주는 것입니다. 이벤트, 스냅샷, 클립, 보관된 영상, 방송 녹화는 동기화로 가지 않고, 그것을 만든 휴대폰에 남습니다.
어떤 휴대폰에서 동기화를 끄면 그 휴대폰은 동기화를 멈추고, 계정의 사본은 다른 휴대폰들을 위해 남습니다. 사본은 계정과 함께 삭제됩니다. 암호 문구를 잊으면 당사는 그것을 복구하거나 사본을 열 수 없습니다. 휴대폰 한 대에서 새 암호 문구를 설정하면 사본이 그것으로 다시 봉인되니, 다른 휴대폰들에서 그 암호 문구를 입력하십시오.
5. 당사가 보내는 이메일
당사는 사용자가 한 행동 때문에만 이메일을 보냅니다. 로그인 코드, 그리고 계정 삭제가 예약되었거나 완료되었다는 안내입니다. Apple로 로그인하면서 주소를 숨기기로 했다면 이런 메일은 Apple이 당사에 준 비공개 릴레이 주소로 가고, Apple이 이를 전달합니다. 메일은 미국에서 Amazon Web Services가 운영하는 Amazon Simple Email Service를 통해 발송됩니다. 당사는 어떤 계정 안내를 누구에게 보냈는지에 대한 기록(로그인 코드는 즉시 발송되며 이런 기록을 남기지 않습니다)과, 반송되었거나 수신 중단을 요청한 주소의 목록을 보관하여 그런 주소로 계속 메일을 보내지 않도록 합니다.
6. 결제
KeepWatch Pro는 App Store 또는 Google Play를 통해 구매하는 구독입니다. 결제는 Apple 또는 Google이 각자의 약관과 개인정보 처리방침에 따라 받으며, 당사 서버는 카드 번호나 청구 정보, 그 밖에 구매에 관한 어떤 것도 결코 받지 않습니다. 영수증이나 구매가 유효하다는 확인조차 받지 않습니다. 앱은 시작할 때마다, 그리고 사용자가 앱으로 돌아올 때 사용자의 Apple ID 또는 Google 계정이 Pro를 보유하고 있는지 휴대폰의 스토어에 묻고, 신호가 없어도 Pro를 쓸 수 있도록 스토어의 마지막 답을 휴대폰에 보관합니다. 앱 자체는 구매를 어디에도 보내지 않으며, 당사는 자체 서비스든 다른 누구의 서비스든 구매 관리 서비스를 쓰지 않습니다. 유일한 예외는 이용 현황 리포트입니다. 이를 켰다면 앱이 그 리포트에 쓰는 Google Analytics for Firebase가 App Store 또는 Google Play를 통해 앱에서 이루어진 구매를 감지하여 어떤 상품을 샀는지와 그 이름, 가격을 기록하며, 이 기록은 다른 이용 이벤트와 같은 익명의 앱 인스턴스 식별자에 연결될 뿐 KeepWatch 계정이나 스토어 계정에는 결코 연결되지 않습니다. 이용 현황 리포트가 꺼져 있으면 구매에 관해 아무것도 기록하지 않습니다. Pro는 KeepWatch 계정이 아니라 구매한 스토어 계정에 속합니다. 그래서 로그인하지 않아도 쓸 수 있고, 다른 스토어를 쓰는 휴대폰으로는 따라오지 않습니다.
7. 당사가 하지 않는 일
당사는 개인정보를 판매하지 않고, 교차 맥락 행태 광고를 위해 공유하지 않으며, 광고를 표시하지 않습니다. 앱에는 광고 SDK가 없고, 광고 식별자 권한을 요청하지 않습니다. 당사는 사용자의 카메라를 보지 않으며, 볼 수도 없습니다. 중계가 없으면 카메라에 관한 어떤 것도 당사에 도달하지 않고, 중계가 있어도 영상은 봉인된 채 한 휴대폰에서 다른 휴대폰으로, 직접 또는 휴대폰들이 직접 연결할 수 없을 때는 당사 서버를 거쳐 가며, 서버는 그것을 열 수 없고 아무것도 저장하지 않습니다. 당사는 카메라 목록과 동기화된 구성, 곧 카메라의 이름과 주소, 비밀번호를 읽을 수 없으며, 이것들은 봉인된 채로만 당사에 도달합니다. 연락처, 위치, 사진 등 이 방침이 열거하지 않은 어떤 것도 수집하지 않습니다.
8. 보유와 삭제
- 휴대폰에서 — 보관된 영상은, 중계를 켠 휴대폰이 그 모든 카메라에 대해 보관하는 영상을 포함하여, 오래되었다는 이유로 지워지지는 않습니다. 재생 보관 공간이 가득 찰 때까지 남아 있고, 가득 차면 새 영상을 위해 가장 오래된 영상부터 지워집니다. 그 전이라도 "보는 영상 보관"을 끄거나, 해당 카메라를 앱에서 제거하거나, 사용자의 다른 휴대폰을 통해 본 카메라의 경우 로그아웃하면 지워지며(제1조), 설정에서 언제든지 지울 수 있습니다. 중계나 "모든 카메라 영상 보관"을 끄면 더 이상 보관되지 않을 뿐, 이미 보관된 영상은 지워지지 않습니다. 이벤트는 설정한 일수가 지나면 지워집니다. 스냅샷과 클립은 사용자가 삭제할 때까지 남습니다. 방송 녹화는 그 공간이 가득 차 가장 오래된 것부터 지워질 때까지, 또는 방송 탭에서 지우거나 "보는 영상 보관"을 끌 때까지 남습니다. 설정에서 보관된 영상을 지워도 방송 녹화는 지워지지 않으며, 이전 버전의 앱이 만든 녹화도 마찬가지로 남습니다. 앱을 삭제하면 운영체제의 백업 설정에 따라 모든 로컬 데이터가 제거됩니다.
- 계정 — 앱 안에서(설정 맨 위 카드의 계정을 누른 뒤 계정 삭제) 또는 당사에 요청하여 삭제할 수 있습니다. 삭제에는 14일의 유예 기간이 있으며 요청할 때 안내됩니다. 유예 기간이 끝나기 전에 다시 로그인하면 요청이 취소됩니다. 그 뒤에는 계정과 휴대폰 기록, 봉인된 카메라 목록, 봉인된 동기화 구성, 세션이 당사 서버에서 영구히 제거되며, Apple로 로그인했다면 사용자의 Apple 계정에 대한 KeepWatch의 접근을 철회해 달라고 Apple에 요청합니다. 감사 항목은 같은 시점에 사용자와의 연결을 잃습니다.
- 제거한 휴대폰 — 앱에서 휴대폰을 계정에서 제거하면 그 휴대폰의 기록과 그것이 게시한 목록이 즉시 삭제됩니다. 집에 있는 휴대폰에서 중계를 끄면 그 연결이 닫히며, 다시 켤 때까지 아무것도 중계되지 않습니다.
- 로그인 코드와 세션 — 코드는 몇 분 안에 만료되며 읽을 수 있는 형태로는 결코 보관되지 않고, 세션은 로그아웃하거나 토큰이 만료되거나 계정이 삭제될 때 끝나며 그 기록은 계정과 함께 삭제됩니다.
- 중계되는 트래픽과 연결 정보 — 둘 다 저장되지 않으므로 삭제할 것이 없으며, 휴대폰들 사이를 직접 오가는 것은 아예 당사에 도달하지 않습니다. 연결에 관한 로그 줄은 다른 서버 로그와 마찬가지로 서비스 운영과 보안을 위해 제한된 기간만 보관된 뒤 삭제됩니다.
- 백업 — 당사 데이터베이스는 정해진 주기로 백업됩니다. 백업은 당사 인프라를 떠나기 전에 암호화되고 정해진 기간만 순환 보관되므로, 삭제된 계정은 삭제 후에도 제한된 기간 백업에 남아 있다가 사라집니다.
- 충돌 보고서, 문제 보고서, 이용 이벤트 — 디버깅, 카메라 지원 개선, 제품 판단에 필요한 기간만 보관하며, 그 뒤에는 당사 오류 추적 도구와 Firebase의 보존 설정에 따라 삭제됩니다. 앱의 원격 설정에 쓰이는 설치 식별자는 오랫동안 쓰이지 않으면 Firebase가 삭제합니다.
9. 처리의 법적 근거
GDPR 또는 영국 GDPR이 적용되는 경우, 당사는 다음 근거로 데이터를 처리합니다. 사용자가 요청한 계정과 중계, 동기화에 대해서는 계약의 이행, 오류 보고와 사용자가 보내기로 한 카메라 문제 보고서, 앱의 원격 설정, 보안, 남용 방지, 감사 기록, 서버 로그에 대해서는 정당한 이익, 이용 현황 리포트와 그 밖에 법이 동의를 요구하는 사항에 대해서는 동의입니다. 대한민국 개인정보 보호법이 적용되는 경우, 이용 현황 리포트는 선택적 동의 항목이며 이를 거부하더라도 서비스 이용이 제한되지 않습니다.
당사는 법적 효력을 갖는 자동화된 의사결정에 사용자의 데이터를 이용하지 않습니다.
10. 사용자의 권리
EU, EEA 또는 영국에 있는 경우, 개인정보에 접근하고 정정하고 삭제하고 그 사본을 받을 권리, 처리에 반대하거나 처리를 제한할 권리, 그리고 언제든지 동의를 철회할 권리가 있습니다. 현지 감독기관에 민원을 제기할 수도 있습니다.
캘리포니아 주민인 경우, 당사가 수집하는 개인정보를 알 권리, 그것을 삭제할 권리, 정정할 권리, 그리고 그 판매나 공유를 거부할 권리가 있습니다. 당사는 CCPA/CPRA가 정의하는 의미로 개인정보를 판매하거나 공유하지 않으며, 권리를 행사했다는 이유로 사용자를 차별하지 않습니다.
대한민국에 있는 경우, 개인정보 보호법이 보장하는 바에 따라 개인정보의 열람, 정정, 삭제, 처리정지를 요구할 권리와 동의를 철회할 권리가 있습니다.
대부분의 권리를 행사하는 가장 빠른 방법은 앱 안에 있습니다. 이용 현황 리포트는 스위치 하나이고, 계정 삭제도 앱에 내장되어 있습니다. 데이터 사본을 포함한 그 밖의 사항은 [email protected]로 이메일을 보내주십시오. 당사는 적용되는 법이 정한 기한 안에 답변합니다. 카메라 목록과 동기화된 구성은 봉인된 채로만 당사에 도달하므로 사본에는 암호문으로만 담길 수 있으며, 중계된 영상은 보관되지 않으므로 복사할 것이 없습니다.
11. 국외 이전
당사 서버는 사용자의 국가 밖에 있을 수 있으며, 당사의 수탁사 가운데 두 곳이 미국에 있습니다. 이메일 발송과 암호화된 백업을 맡는 Amazon Web Services, 그리고 이용 현황 리포트와 앱의 원격 설정을 맡는 Google입니다. 개인정보 보호법이 요구하는 경우, 이전은 유럽연합 집행위원회의 표준계약조항이나 적정성 결정과 같은 적절한 보호조치에 근거합니다. 대한민국은 EU 적정성 결정의 대상입니다.
12. 아동
KeepWatch 계정은 만 14세 이상을 위한 것이며, 거주 지역의 법이 데이터 처리에 대한 동의 연령을 더 높게 정한 경우에는 그 연령 이상을 위한 것입니다. 당사는 아동의 개인정보를 알면서 수집하지 않습니다. 아동이 당사에 데이터를 제공했다고 생각되면 연락해 주십시오. 삭제하겠습니다.
13. 보안
로그인 정보를 포함한 카메라 목록과 동기화된 구성은 당사에 도달하기 전에 휴대폰에서, 중계가 실어 나르는 것은 한 휴대폰에서 다른 휴대폰까지, 당사가 결코 보지 못하는 암호 문구로 봉인됩니다. 휴대폰 안에서 카메라 비밀번호는 보안 키 저장소에 보관되며 백업에서 빠집니다. 앱과 당사 서버 사이의 모든 통신은 암호화된 연결을 지나며, 휴대폰들이 직접 연결로 주고받는 것도 마찬가지입니다(DTLS). 세션 토큰은 해시하여, Apple에서 받은 토큰은 암호화하여 저장하고, 네트워크 주소는 당사 데이터베이스에 저장하기 전에 축약하며, 중계되는 트래픽은 저장 없이 전달되고, 오류 추적은 식별 항목을 끄고 카메라 비밀번호를 지운 채 당사 자체 서버에서 돌아갑니다. 카메라 자체의 보안 — 비밀번호, 펌웨어, 네트워크에 또 누가 있는지 — 은 사용자의 몫이며, 방송으로 휴대폰을 같은 Wi-Fi의 모두를 위한 카메라로 만들지에 대한 선택도 마찬가지입니다. 보안 문제를 발견하셨다면 공개하지 마시고 [email protected]로 알려주십시오. 당사는 그 소식을 이르게, 그리고 비공개로 듣기를 바랍니다.
14. 수탁사와 제삼자
당사는 소수의 수탁사만을 이용하며, 각 수탁사는 그 역할에 필요한 것만 받습니다.
- Google Firebase — 앱의 원격 설정, 그리고 이용 현황 리포트와 그에 따른 스토어 구매 측정(켠 경우에만).
- Amazon Web Services — 이메일 발송, 그리고 백업의 암호화된 보관.
- 당사 자체 호스팅 — 중계 서비스, 그 데이터베이스, 오류 추적 서버.
사용자의 카메라는 당사의 수탁사가 아닙니다. 앱은 사용자를 대신하여 사용자의 네트워크에서 카메라와 통신하며, 카메라 제조사는 당사로부터 아무것도 알게 되지 않습니다.
Apple과 Google은 사용자가 그것으로 로그인하거나 그 스토어에서 Pro를 구매할 때 당사의 수탁사가 아닙니다. 사용자는 각자의 개인정보 처리방침에 따라 그들과 직접 거래하며, 로그인으로 당사에 도달하는 것은 3항에 열거한 것입니다.
중계가 휴대폰들을 직접 연결할 때 각 휴대폰이 자신의 주소를 묻는 공개 STUN 서버(기본값은 Google과 Cloudflare의 서버)도 당사의 수탁사가 아닙니다. 각 휴대폰이 스스로 묻고, 그 서버는 휴대폰의 공인 IP 주소와 포트를 보게 되며, 당사는 그 서버에 아무것도 보내지 않습니다.
15. 이 방침의 변경
이 방침을 의미 있게 바꾸는 경우 위의 날짜를 갱신하며, 로그인한 사용자에게 영향을 주는 중대한 변경은 앱에서 알려드립니다. 변경 후에도 계속 이용하면 갱신된 방침이 적용됩니다.
16. 연락처
임중혁(HYPER C)
개인정보 보호책임자: 임중혁
데이터에 관한 모든 문의는 [email protected]
보안 문제는 [email protected]