메일을 절대 보지 않는 맥용 프라이빗 Gmail 클라이언트
개인정보를 지키는 이메일 클라이언트라는 말은 직접 확인할 수 있어야 합니다. 이 페이지는 메일이 절대 저희 서버를 거치지 않는다는 Hark의 주장 뒤에 있는 구조를, 확인할 수 있을 만큼 자세히 설명합니다. 저희에게 실제로 전달되는 몇 가지, 메일이 닿을 수 있는 제3자, 그리고 각각을 결정하는 설정도 함께 다룹니다.
기본 구조
당사자는 둘뿐입니다. 사용자의 Mac과 Google입니다. Hark는 Mac에서 실행되며, 사용자의 기기에서 TLS를 통해 Google의 Gmail, Calendar, Tasks, People API로 Google과 통신합니다. 그 경로에 제3자는 없습니다. 저희는 메일을 동기화하거나, 중계하거나, 색인하거나, 백업하거나, “빠르게” 만들어 주는 서버를 운영하지 않습니다. 따라서 저희 인프라에는 해킹당하거나, 법원 명령으로 제출되거나, 유출될 메일 사본 자체가 없습니다.
이는 나중 버전에서 슬그머니 뒤집을 수 있는 정책상의 선택이 아니라, 앱이 만들어진 방식 그 자체입니다. 동기화 엔진은 앱 안에 있으며, 경로에 서버를 끼워 넣으려면 엔진을 서버 중심으로 다시 만들어야 합니다.
데이터가 정확히 어디에 있는가
- Google 토큰: macOS 키체인에. Hark가 사용자의 계정에서 작업할 수 있게 해 주는 자격 증명은 키체인 항목으로 저장되며, macOS가 암호화하고 접근을 제어합니다. Hark 자체 파일에는 절대 기록되지 않습니다.
- 캐시: Application Support에, 본인만 읽을 수 있게. 메일, 일정, 할 일은
~/Library/Application Support/Hark아래의 로컬 데이터베이스에 계정마다 폴더 하나씩 보관되며, 파일 권한상 현재 사용자만 읽을 수 있습니다. 다운로드한 첨부 파일은~/Library/Caches/Hark아래에 캐시됩니다. 캐시된 외부 이미지, 보낸 사람 사진, 로고는~/Library/Caches/hark-url-cache,~/Library/Caches/hark-image-cache, 그리고 앱의 WebKit 저장소에 있으며, 모두 사용자 자신의 Library 폴더 안입니다. FileVault가 저장된 모든 데이터를 암호화합니다. Hark는 그 위에 자체 암호화 계층을 추가하지 않습니다. FileVault가 나에게 중요한지 직접 판단할 수 있도록 분명히 밝혀 둡니다. - 설정: 환경설정 파일에. 윈도우 위치, 보기 선택 등은 앱의 일반 macOS 환경설정 파일에 저장되며, 최근 검색어(최근 25개)와 음소거한 대화의 ID도 여기에 있습니다. 메일 내용은 전혀 들어가지 않습니다.
- 로그아웃하면: 권한 취소, 삭제, 제거. Hark는 Google에 부여된 권한을 취소하고, 키체인 항목을 삭제하며, 디스크에서 해당 계정의 캐시를 지웁니다.
저희에게 실제로 전달되는 것과 그 시점
읽고, 쓰고, 정리하고, 한 주를 살펴보는 일상적인 사용에서는 메일에 관한 그 무엇도 전달되지 않습니다. 저희 서버가 관여하는 일은 다섯 가지이며, 그중 네 가지는 사용자가 직접 무언가를 할 때만 일어납니다.
- 활성 Mac 수 세기. Hark가 열려 있는 동안 하루에 한 번, 이 용도로만 만든 무작위 사용 ID, 날짜, Hark 버전·빌드·업데이트 채널, macOS 주 버전을
logs.harkmail.app으로 보냅니다. 어떤 계정과도 연결되지 않으며 메일에서 가져온 것은 아무것도 담기지 않습니다. 서버는 IP 주소를 보관하지 않으며 기록은 13개월 후에 삭제합니다. - 업데이트 확인. 자동 확인을 허용하면(Hark는 두 번째로 실행할 때 묻습니다) 대략 하루에 한 번(베타 빌드는 매시간)
updates.harkmail.app에서 작은 업데이트 피드 파일을 가져오고, 새 빌드를 수락하면 그곳에서 다운로드합니다. 이와 별도로, 자동 확인을 꺼 두더라도 Hark는 현재 버전이 아직 지원되는지 알아보기 위해서만 실행할 때와 하루에 한 번 같은 공개 파일을 읽으며, 접속할 수 없으면 15분마다 다시 시도합니다. 식별자는 전송되지 않습니다. 서버는 IP 주소와 시각을 보고, 요청의 User-Agent에는 앱과 macOS 버전이, 요청에는 Accept-Language 설정이 담깁니다. 계정에 관한 정보는 전혀 없습니다. - 직접 보내는 버그 리포트. Help › Report a Bug는 입력한 내용, 버그인지 요청인지 여부, 선택한 영역, 직접 첨부한 이미지, 이름 또는 이메일 필드(로그인한 주소가 미리 채워져 있고 편집할 수 있으며, 지우면 익명으로 보낼 수 있음), 그리고 앱과 기기에 관한 정보(앱 버전·빌드·커밋, macOS 버전, 하드웨어 모델, CPU 코어 수, 메모리 크기, 남은 디스크 공간, 로케일, 시간대, 발열 상태, 저전력 모드, 부팅 후 경과 시간, 보낸 시각, 연결된 계정 수(개수만), 설치마다 무작위로 생성되는 ID)를
logs.harkmail.app으로 보냅니다. 메일 내용, 제목, 다른 사람의 주소, 토큰, 로그는 절대 보내지 않습니다. 신경 써야 할 부분은 이미지입니다. 받은편지함 스크린샷은 곧 받은편지함 그 자체니까요. - 충돌 리포트(직접 켠 경우에만). 기본적으로 꺼져 있습니다. Settings에서 스위치를 켜면 충돌이 발생했을 때 스택 트레이스, 예외 유형, 시그널과 종료 사유, 충돌한 스레드, 발생 시각과 해당 충돌에 대한 macOS의 ID, 앱 버전·빌드·커밋, macOS 버전과 하드웨어 모델을 보냅니다. 이 리포트에는 메일을 담을 수 있는 필드가 하나도 없습니다.
- Google Drive 파일 첨부. Google의 파일 선택 창은 웹 구성 요소이므로, Drive 파일을 고르면 브라우저에서
harkmail.app의 페이지가 열립니다. 저희 호스트는 여느 웹사이트와 같은 정보(IP, 시각, 일회용 ID)만 볼 뿐, 사용자의 주소나 파일, 어떤 파일을 골랐는지는 보지 못합니다. 선택 창의 Google 자격 증명은 브라우저에서 생성되며, 사용자가 직접 고른 파일에 대한 접근 권한만 부여할 수 있습니다.
나중에 한 가지가 더 생깁니다. 베타가 끝난 뒤 구독하면 결제 계정이 만들어집니다. 이는 Google 계정과 분리된 별도의 신원으로, 직접 정한 이메일 주소 또는 Gmail 접근 권한이 없는 클라이언트를 통한 Google 로그인을 사용합니다. 저장되는 정보의 전체 목록은 개인정보 처리방침에 있습니다.
메일이 닿을 수 있는 제3자
이메일은 닫힌 시스템이 아닙니다. Google 밖에서 오는 것을 하나도 보여 주지 않는 클라이언트라면 깨진 메일을 잔뜩 보여 주게 될 겁니다. 메일 때문에 생길 수 있는 외부 연결과, 각각을 제어하는 설정은 다음과 같습니다.
- 메일 속 외부 이미지. 뉴스레터와 영수증은 보낸 사람의 서버에서 이미지를 가져옵니다. 기본 설정인 Always display external images에서는 Hark가 이미지를 직접 불러오며, 이때 해당 서버는 사용자의 IP 주소와 메일을 열었다는 사실을 알게 됩니다. Settings › General에서 Ask before displaying external images를 선택하면 클릭하기 전까지 아무것도 가져오지 않습니다.
- 보낸 사람 로고와 아바타. 개인의 사진은 메일과 같은 연결을 통해 Google에서 가져옵니다. 회사 로고는 브랜드가 직접 공개한 레코드(Google DNS 서비스로 보낸 사람의 도메인을 조회한 뒤 브랜드 서버에서 로고 파일을 가져옴)나 Google의 파비콘 서비스에서 가져올 수 있습니다. 둘 다 같은 External images 설정을 따르므로, Ask로 설정하면 어느 조회도 일어나지 않습니다.
- Gravatar(직접 켠 경우에만). 기본적으로 꺼져 있습니다. 켜면 Hark가 사진을 찾기 위해 각 연락처 주소의 해시를 gravatar.com으로 보내며, 이로 인해 누구와 연락하는지가 해당 서비스에 노출됩니다. 설정의 스위치 옆에도 이 점이 적혀 있습니다.
직접 확인하는 방법
이 페이지의 말을 그대로 믿을 필요는 없습니다. Mac의 아웃바운드 방화벽을 쓰면 앱이 통신하는 모든 호스트를 볼 수 있습니다. Hark를 평소처럼 쓸 때는 로그인 중에 accounts.google.com, 메일·캘린더·할 일·연락처를 위한 Google API 호스트(googleapis.com과 그 하위 도메인), 연락처 사진을 위한 Google 이미지 호스트(실제로는 lh3.googleusercontent.com)가 보여야 합니다. 업데이트를 확인할 때는 updates.harkmail.app이, 익명 활성 Mac 수를 세기 위해 하루에 한 번 logs.harkmail.app이 보이고, 그 밖에는 리포트를 보낼 때(또는 충돌 리포트를 켰다면 충돌이 발생한 후)에만 보여야 합니다. External images를 Ask로 설정했다면 이미지를 요청하기 전까지 보낸 사람의 서버는 전혀 보이지 않아야 합니다. 다른 것이 보인다면 꼭 알려 주세요: support@souplin.com.
Hark는 각 기능을 구현하는 데 필요한 가장 좁은 권한만 Google에 요청합니다. 예를 들어 메일을 영구 삭제할 수 있는 권한은 요청하지 않으므로, 앱은 메일을 휴지통으로 옮기는 것까지만 할 수 있습니다. 또한 Google 데이터 사용은 Google의 제한된 사용(Limited Use) 정책을 따릅니다. 권한과 각각의 용도는 도움말 페이지에 나와 있습니다.
질문
Hark는 제 이메일을 서버에 저장하나요?
아니요. 메일, 캘린더, 연락처, 할 일을 받거나 중계하거나 저장하는 Hark 서버는 없습니다. 앱은 Mac에서 Google과 직접 통신하며, Google 밖에 있는 유일한 사본은 사용자 자신의 디스크에 있는 캐시입니다.
Hark를 만드는 사람들이 제 메일을 읽을 수 있나요?
아니요. 저희 쪽에는 읽을 것이 아무것도 없습니다. 메일함의 내용이 저희에게 전달될 수 있는 유일한 경우는 사용자가 직접 버그 리포트에 스크린샷을 첨부할 때뿐입니다. 아무것도 첨부하지 않으면 메일의 어떤 내용도 Mac을 떠나지 않습니다. 단, 버그 리포트에는 이름 또는 이메일 필드가 포함되며, 지우지 않는 한 로그인한 주소가 미리 채워져 있습니다.
로컬 캐시는 암호화되나요?
저희가 아니라 Mac이 암호화합니다. 캐시는 Application Support 폴더에 있으며 사용자 계정만 읽을 수 있고, FileVault가 디스크의 다른 모든 것과 함께 저장된 캐시를 암호화합니다. Hark는 별도의 자체 암호화 계층을 추가하지 않습니다. FileVault가 꺼져 있다면 켜는 것이 캐시를 보호하는 방법입니다.
로그아웃하면 어떻게 되나요?
세 가지 일이 일어납니다. Hark가 Google에 계정 접근 권한을 취소하도록 요청하고, 키체인에서 토큰을 삭제하며, 해당 계정의 로컬 캐시를 지웁니다. 로그아웃은 단순히 비밀번호를 잊는 것이 아니라, Google에 부여한 권한까지 함께 사라지는 것입니다.
이메일 속 이미지 때문에 메일을 열었다는 사실이 드러나나요?
어떤 클라이언트에서든 그럴 수 있습니다. 기본 설정에서 Hark는 보낸 사람이 올려 둔 곳에서 메일의 외부 이미지를 직접 불러오므로, 보낸 사람의 서버에 사용자의 IP 주소와 시각이 드러납니다. Settings › General에서 External images를 Ask before displaying으로 설정하면 허락하기 전까지 아무것도 불러오지 않습니다.