디지털 프라이버시 입문기

17856바이트

시작은 사소했다. 구글 검색의 결과가 도대체가 견딜 수 없을 만큼 구려진 게 계기였다. 얼마 간은 참아 보려 했으나 더 이상 그럴 수 없었다. 구글의 유일한 BM은 독점적 지위를 남용해 유저 정보를 긁어모은 후 가능한 모든 곳에 “맞춤형” 광고를 때려박는 것이다. 이전까지는 무료로 서비스를 이용하는 대신 재화 대신에 내 개인정보를 지출하는 것 정도로 생각하고 있었으나, 이따위 검색 결과를 제공하는 서비스에 굳이? 한 번 불만이 생기니까 구글 포토 용량으로 장난질 친 것부터 못 본 체 넘겨왔던 온갖 패악질이 떠올랐다. 결국 구글의 서비스를 죄다 버려야 한다는 결론으로 발진하고 말았다.

구글만이 문제냐 하면 그렇지 않다. MS, 아마존, 어느 기업 할 것 없이 부지불식간에 교활하게 정보를 긁어가 수익화하는 것은 다를 바가 없다. 이는 디지털 프라이버시라는 키워드를 발견하고 더 찾아보며 더욱 확실해졌다. 이게 팬데믹의 아마 끄트머리 즈음의 이야기였던 것 같고, 이하는 수 년에 걸쳐 사용하고 있는 기술과 서비스들이다. 프라이버시 운운하면서 블로그에 공개적으로 드러내는 것도 웃기긴 하지만 이런 하꼬 블로그까지 들여다보면서 누가 나를 정성스레 추적할 일은 내가 미 정부의 주목을 끌 만한 위험분자가 애써서 되지 않는 한 일어나지 않을 것이라 생각했다. 단 국내에선 ISP, 각종 웹 서비스 운영자 및 공권력이 비이성적 검열과 공격을 일삼는다는 점을 고려해 일부 정보는 의도적으로 포함하지 않았다.

가능한 경우 셀프 호스트 가능한 쪽, 클라우드 서비스인 쪽을 선호한다. 셀프 호스트를 하는 경우라고 해도 E2EE 설정이 가능한 쪽에 무게를 실었다. 가급적 오픈 소스여야 하되 어느 정도 인지도가 있고 활발히 개발되는 것을 택하고자 했다. 글이 아직도 미완성이라 느껴지지만 수 년을 묵혀둔 이상 미루기도 애매해 아무튼 올려버리련다.

검색

DuckDuckGo를 쓰고 있다. 각종 설정을 통해 UI나 프라이버시 강화와 관련된 동작을 변경할 수 있다. 단순 웹페이지 검색에 지나는 것이 아니라, 컬러 피커를 포함해 재밌는 위젯들이 포함되어 있다. onion site 또한 지원한다. privacy focused 혹은 privacy respecting을 표방하는 소프트웨어에 기본으로 탑재되어 있는 경우가 많아 사용하기 편하다. 검색 결과는 구글에 뒤지는 경우가 잦은데, 정확한 키워드 매칭을 해주는 큰따옴표 연산자를 쓰면 조금 낫다. 다만 LLM 질의 결과를 표시해주는 기능 출시 등 제품 방향성에 의문이 드는 관계로 대안을 찾으면 망설임 없이 갈아탈 생각이다.

Startpage는 기억할 수 없는 이유로 쓰지 않고 있고, Brave Search는 UI가 마음에 들지 않았다. 귀찮음을 이겨내게 된다면 SearXNG를 셀프 호스트해서 써볼 예정이다.

브라우저

Brave를 쓰고 있다. 기본적으로 Chromium 브라우저이고 사용하는 데 큰 어려움이나 문제가 없다. 광고 차단 기능도 내장되어 있고, 새로운 필터를 추가하는 것도 아주 쉽다. 동기화는 E2EE이 적용된다. 다만 바이낸스 레퍼럴 코드 삽입을 비롯해 납득하기 힘든 행보를 보인 바 있고, Web3니 크립토니 하는 관심도 없는 것들을 자꾸 입에다 쑤셔넣으려 하는 통에 그건 불만이 있다. 관련 기능을 제거한 포크도 있다곤 하는데 이 정도 다운스트림에 오면 활발히 유지보수되는 것을 바라는 것이 사치에 가까울 터라 알아보지 않았다.

브라우저 확장은 공격 표면을 늘리니까 최대한 자제하라는 게 일반적인 지침이지만, Vimium에 손이 익어버린 이상 확장 없는 브라우징은 할 수 없는 처지이다. 각종 핑거프린팅 방지나 프론트엔드 리디렉션 등 프라이버시 관련 확장도 설치해보았으나 사용성만 해친다고 판단되어 쓰다 말았다. 특히 타임존 스푸핑은 실제 타임스탬프를 알아보려면 더하고 빼기 암산을 일일히 해주어야 하는 게 자괴감이 들었다.

Cover Your Tracks 기준으로는 일단 괜찮은 점수이고 AmIUnique 같은 곳도 참고할 수 있겠으나 빅 테크의 추적 기술이 이런 웹사이트에 제시되어 있는 것들에 국한되어 있을 거라 생각하지는 않는다.

브라우저는 잘 모르지만, 그리고 모질라 재단도 정말 응원하지만, 파이어폭스가 Chromium의 종합적인 개발 속도를 이길 수 있을 것 같진 않다. Arkenfox도 입혀봤으나 파이어폭스를 주 브라우저로 쓰는 결정은 내리지 않았다. Mullvad는 엔진과 별개로 세션 유지 없이는 브라우저 못 쓰는 몸이라 주력으로 쓰기 어렵다고 판단했고, ungoogled-chromium은 핑거프린팅 방지 등의 기능이 미비할 뿐 아니라 자동 업데이트 기능이 없어 (이것도 별도 런처가 있다곤 하는데 아까 말한 관리의 이유도 있고) 사용하지 않았다.

VPN

VPN은 어떤 경우에도 익명성을 보장하지 않는다. 익명성과 프라이버시, 보안은 함께 취급되는 경우가 많고 심지어 서로 흔히 혼동되지만 명백히 다른 개념이다. 다만 나의 위협 모델에서는 완전한 익명성이 필요하지 않기 때문에 VPN을 써도 괜찮다고 판단했다.

후술할 한정적 경우를 제외하고는 Mullvad를 쓰고 있다. 상당히 괜찮다. 가격도 합리적으로 보이고 크립토커런시뿐 아니라 특이하게 우편으로 현금 결제를 지원한다. 제품과 약관, 운영 방침 등에서 프라이버시에 전념하고 있음이 느껴져 신뢰가 가고 기술 스택 또한 현대적이다. UI/UX도 합격선이다. 한국 서버가 없긴 한데 이 나라의 가공할 만한 검열 및 통제 수준을 고려하면 서버가 없는 편이 오히려 믿음이 간다. 다만 OTT 등에서는 VPN을 막는 경우가 있어 이런 경우와 드물게 한국 IP로 접속이 필요한 경우에 한정해 NordVPN을 썼다. OTT 플랫폼은 계정이 필요하기 때문에 어차피 내가 특정되긴 하겠지만 굳이 VPN을 더 쓰는 이유로는 혹시 차단되지 않은 각종 서드 파티 트래커가 있을 수 있단 점, 나의 IP를 굳이 노출시킬 필요도 없단 점, ISP를 어떤 경우에도 신뢰하고 싶지 않다는 점 등이 작용했다. 그러나 그 뒤로 Proton 구독을 시작한 관계로 이 용도에 대해서는 Proton VPN으로 갈아탄 상태이다.

Nord도 마찬가지인데 Express를 비롯한 수많은 대형 VPN들은 극도로 공격적 마케팅을 펼치고 있는 점이 신뢰를 깎아먹고, 한국 ISP에 비하면 선녀이지만, 로그 정책 등에 있어 문제가 있기 때문에 주력으로 선택하지 않았다. IVPN은 물리적으로 한국에 인접한 서버가 적다는 점과 소폭 비싸다는 점이 단점이었으며, Proton은 기술적인 하자가 없다고 할지언정 메일 프로바이더와 같은 운영사의 VPN을 전면적으로 사용하기가 꺼려졌다. 느리고 믿을 수 없는 무료 VPN들은 애초에 고려하지 않았다.

Tor

많이 개선되었다고는 해도 너무 느리고 종합적으로 사용성이 떨어져서 일상적으로는 못 쓰겠다. 세션 유지와 관련된 문제도 있다. 대신 봉사의 의미로 가드 릴레이를 하나 운영한 지 수 년 이상 되었고 여력이 된다면 출구도 운영해보고 싶다.

DNS

Mullvad DNS를 그대로 사용하고 있다. VPN을 사용할 수 없는 환경에서는 Quad9을 사용하고 있는데 큰 이유는 없고 기준 하한선에 들어맞는 것들 중에 IPv4 주소를 외우기가 가장 쉬웠기 때문이다.

패스워드 매니저

Vaultwarden을 셀프 호스트하여 사용하고 있다. 셀프 호스팅도 매우 간단하고, 크롬 내장 매니저 따위와는 비교할 수 없도록 강력하다. E2EE는 물론이고 비밀번호 생성, TOTP 등을 지원한다.

다른 클라우드 솔루션은 특별히 알아보지 않았다. LessPass를 써보려고도 했으나 마스터 패스워드의 중요도가 필요 이상으로 높다는 구조적 결함이 있다. 별도로 기기 간 동기화를 유지해주어야 하는 로컬 솔루션은 고려하지 않았다.

데스크탑 OS

“잘 쓰이지 않는” 종류의 윈도에 privacy.sexy 스크립트를 입혀 사용했다. 윈도를 놓지 못했던 이유는 다른 게 아니라 게임을 해야 하기 때문이었다. Wine은 도무지 카카오톡 하나 설치해서 쓰는 데에도 어렵고 복잡하고 자꾸 뭐가 안 되어서 그걸로 게임까지 돌리려는 엄두가 나지 않았다.

EndeavourOS를 설치해 사용하고 있는 디스크도 있었다. Endeavour는 간편한 GUI 인스톨러를 지원한다. 롤링 릴리즈라는 점도 가산점이었다. yay의 사용성도 좋다. 사실 PPA 가지고 귀찮게 막 해야 하는 APT 정도 빼면 메이저 패키지 매니저 및 저장소는 다 비슷한 것 같긴 하다. 데스크탑 환경은 KDE를 쓰고 있다. 윈도에 상당히 익숙해져 있는 나로서는 크게 문제가 없고, 이것도 되나 싶을 정도로 자잘한 설정이 지원되어 마음만 먹으면 훨씬 강력하게 쓸 수 있을 것 같다. Arch를 특별히 선호하는 건 아니지만 Endeavour 대신 굳이 Arch를 쓰지 않을 이유도 없어보였다.

하지만 결국은 환경 격리와 재현에 강점을 갖는 것으로 알려진 NixOS를 택하게 되었다. 환경을 코드로 관리할 수 있다는 점이 아주 강력하고 마음에 든다. 다만 Nix 설정이 익숙해지기 쉽지 않은 점, 용어나 개념이 아직도 헷갈리는 점이 있지만 반대로 말하면 그 정도 수준에서도 충분히 쓸 수 있는 난이도의 배포판이라는 것이다. 이 배포판을 쓰면서 게이밍도 리눅스에서 하는 쪽으로 갈아탔고, 커널 레벨 안티 치트가 있다든가 해서 호환 레이어를 써도 안 되는 게임은 그냥 안 하고 마는 중이다.

우분투는 캐노니컬이 도무지 이해하고 싶지도 않은 행보를 거듭하고 있어 개인 서버 호스팅에 쓰기마저 꺼려진다. 만자로를 썼던 적도 있지만 맛탱이가 간 그 배포판을 다시 쓸 생각은 전혀 없다. macOS는 내가 애플 제품을 쓸 생각이 없기도 하지만, 여느 빅 테크와 다를 바 없이 교묘한 텔레메트리가 가득할 게 뻔할 뿐더러 방화벽으로 장난질까지 치면서 그 폐쇄적인 특성 상 이런 문제들을 수정할 방법조차 어렵거나 없다는 점에서 눈길을 줄 이유가 없었다.

모바일 OS

GrapheneOS를 쓰고 있다. 프로젝트의 대빵인 Micay가 안 좋은 의미의 또라이인 걸로 정평이 자자해 마음에 걸렸지만, 일련의 사건 이후로 내려오기도 했고, 현존하는 모바일 OS 중 프라이버시와 보안 양쪽에서 최고의 수준을 갖춘 것은 익히 알려진 사실이다. 구글 픽셀 시리즈만 지원하며 그 픽셀의 최신 기종은 극도로 폐쇄적인 국내 4G 환경 탓에 사용이 까다롭다는 난점이 있다. LG U+만 어느 정도 실사용이 가능한 것으로 알려져 있다. 굳이 Graphene까지 쓰기는 스스로 생각에도 다소 과해 보이지만, 빈 기기에 Sailfish OS도 깔아본 적이 있고 이것저것 돌려보는 거 자체를 좋아해서 선택했다.

업데이트가 될 때마다 재부팅을 한 후에 다소 번거로운 VoLTE 관련 설정을 일일히 해주어야 한다는 점은 거슬린다. 그러나 보안 및 프라이버시 기능은 아주 훌륭하며 앱별 네트워크 권한이나 저장소/연락처 스코프 기능도 Graphene을 떠날 수 없는 이유가 되어 버렸다.

개발이 중지된 CalyxOS는 microG를 사용한다는 점 등 Graphene에 전반적으로 뒤쳐지는 것으로 파악되며 지원 기기 목록 또한 거의 동일하다. DivestOS는 구닥다리 기기들만 지원하고 있어 VoLTE까지 고려하면 기기를 구하기에 난점이 있을 뿐더러 어째 구할 만한 기기들도 디자인이 하나같이 영 아니라서 마음을 놨는데 프로젝트가 종료되고 말았다. 관련해서 국내 자료가 전무하다는 문제도 있었다. Lineage는 지원 기기가 훨씬 많지만 보안과 프라이버시 양면에서 열등하기 때문에 고려하지 않았다.

디스크 암호화

전부 FDE 설정으로, 윈도 환경에선 BitLocker, 리눅스 환경은 LUKS 암호화를 사용했다. 성능 저하 등의 문제는 체감하지 못했다.

VeraCrypt는 OS에 내장 또는 통합된 대안들보다 불안정한 요소가 있을 것 같고 혹시라도 일이 터지면 여간 골치아픈 일이 아닐 것 같았다. BitLocker에 백도어가 있다고 여기는 건 음모론의 영역일 뿐더러 내가 걱정할 수준의 문제는 아니라고 생각했다.

이메일

Proton을 쓰고 있다. UI도 미려하며, VPN이나 캘린더, 드라이브 등 서비스를 함께 제공한다. 이메일이라는 것 자체가 낡은 설계에서 오는 근본적 취약점이 있어 (따라서 일반적인 프라이버시 지침에서는 가능하다면 별도의 메신저를 사용할 것을 권한다) 최대한 믿을만한 프로바이더를 사용하고 싶었다. 프랑스 정부의 요청으로 로그를 토해낸 적이 있긴 해도 최소한 변은 있고, 여전히 기성 메일 프로바이더들에는 비하기 미안할 정도이다.

이제 이름을 바꾼 Tutanota는 타이핑할 때마다 철자가 헷갈리고, 시뻘건 게 보기 좀 그렇고, 무엇보다 무료 계정이 비활성화되면 삭제하는 정책이 마음에 걸려 쓰지 않았다.

캘린더

EteSync를 셀프 호스팅해서 썼다. 하지만 개발 속도가 현저히 느려 그냥 때려쳤다. etesync-dav를 Kalendar에 물려서 썼는데 뭐가 문젠지 투두 업데이트도 안 되고 불편해서 헛수고만 잔뜩 했다. Nextcloud는 E2EE에 문제가 있는 것으로 악명이 높은데 그밖에 셀프 호스팅이 가능한 대안이 딱히 안 보여서, Proton 구독을 쓰는 김에 캘린더까지 같이 사용하고 있다. 불편한 점 없이 잘 쓰고 있다.

파일 동기화

SyncThing을 쓰고 있다. 큰 문제 없이 사용하고 있다. iOS에서 SyncThing을 사용하는 데에는 난점이 있지만, 아이폰을 안 써버리면 그만이다. Backblaze나 Wasabi 등 저렴한 오브젝트 스토리지에 restic으로 백업을 돌릴까도 생각하고 있다. 아직은 일부 자료만 Proton Drive에 올려둔 정도이다.

Nextcloud는 전술한 E2EE 문제로 선지에서 제외했다.

메모

Joplin을 사용하고 있다. 마크다운을 지원하고 다양한 종류의 동기화 백엔드를 선택할 수 있다. 사용성에 있어 불편한 점이나 직관에 어긋나는 부분이 없다. 동기화를 비롯해 기능에도 문제가 생긴 적이 없었다. Keep을 쓰던 때에 비하면 에디터 기능도 많고 편집하기 여러 모로 속편하다.

Standard Notes는 셀프 호스팅이 다소 복잡해 제외했고, Cryptee는 E2EE라고는 해도 오픈 소스가 아니다. Obsidian이 반짝하긴 했는데 E2EE가 가능하긴 해도 기본이 아니라는 점, Joplin에서도 마크다운 편집에 문제가 없는 점, 이미 Joplin에 정리를 마쳐두었는데 또 옮기기가 번거롭다는 점 때문에 사용하지 않았다.

코드 에디터

VS Code를 쓰고 있다. 가능하면 Codium을 쓰고 싶지만 자꾸 하나씩 귀찮고 불편한 뭔가가 튀어나와서 이 정도로 타협하게 되었다.

코드 에디터는 Visual Studio나 Jetbrains사의 IDE를 특별히 써야 하는 이유가 없다면 VSC가 이미 평정한 상태라고 생각한다. 회사에서는 Jetbrains IDEA를 쓰고 있긴 한데 업무 외에 개인적으로 JVM쪽 코드를 쓸 일이 생기더라도 나는 VSC/Codium에서 작업할 생각이다.

대체 프론트엔드/클라이언트

안드로이드에서 NewPipe를 쓰는 것 외에는 거의 사용하지 않고 있다. 자동으로 리디렉션을 해주는 브라우저 확장은 구글의 간악한 술수에서 기인한 매니페스트 버전 문제로 사용하기 너무나 까다로운 상태이다. 안정적이고 빠른 인스턴스를 찾는 것도 쉽지 않다. 이 부분은 아쉽고 고민이 되지만 마땅한 대안이 없다. 여력이 남는다면 Piped 등을 셀프 호스팅 해보고 싶긴 하다.

AI

로컬에서 Kobold, Open Web UI와 Stable Diffusion을 구동하고 있다. 폐쇄 모델은 업무에서 쓰는 경우 외에는 거른다.

기타

호스팅은 프리 티어가 눈 돌아가게 후한 OCI를 쓰고 있다. 애널리틱스는 PostHog를 쓰고 있고, 개인 코드 저장소는 Gitea로 해두었으나 Forgejo로 갈아탈 예정이다.