내 프라이버시는 내가 지킨다: SecretDNS와 함께한 좌충우돌 인터넷 생존기
시작은 아주 사소한 짜증으로부터
평소처럼 구글링을 하다가 평소 잘 들어가던 해외 기술 포럼에 접속하려는데, 갑자기 ‘사이트에 연결할 수 없음’이라는 메시지가 떴다. 처음에는 그냥 서버가 죽었나 싶었다. 그런데 스마트폰 LTE로 접속하니 잘만 되는 게 아닌가. 아, 이게 말로만 듣던 그건가 싶었다. 내 인터넷 회선에서 특정 사이트 접근을 막았거나, 아니면 DNS 단계에서 뭔가 꼬인 게 분명했다.
사실 이전에도 비슷한 경험이 있었다. 그때는 그냥 무료 VPN 하나 대충 깔아서 해결했었는데, 이번엔 좀 달랐다. VPN을 켜니까 인터넷 속도가 굼벵이가 됐다. 유튜브는 끊기고, 업무용 슬랙 알림은 한 박자 늦게 온다. 보안도 찜찜했다. 내가 어디 접속하는지 이 무료 VPN 업체가 다 들여다보고 있을 것 같은 기분이 들었으니까. 그래서 결심했다. 속도 손실 없이, 그러면서도 내 정보를 남들이 훔쳐보지 못하게 만드는 좀 더 ‘똑똑한’ 방법을 찾아보기로.
첫 번째 삽질: 브라우저 설정만 믿었던 나의 오만
제일 먼저 시도한 건 크롬 브라우저의 ‘보안 DNS’ 기능이었다. 설정에 들어가서 Cloudflare(1.1.1.1)를 선택하면 끝이라길래 “오, 이렇게 쉬운 걸 왜 여태 안 했지?”라며 기고만장했다. 결과는? 반쪽짜리 성공이었다. 일부 사이트는 접속이 됐지만, 정작 내가 들어가려던 그 포럼은 여전히 요지부동이었다.
여기서 첫 번째 현타가 왔다. 기술적으로 파고들어 보니 DNS만 암호화한다고 해결될 문제가 아니었다. 웹사이트에 처음 접속할 때 내보내는 서버 이름 표시(SNI) 정보가 평문으로 전송되고 있었고, 이걸 중간에서 가로채서 차단하고 있었던 거다. 브라우저 설정만으로는 이 SNI 파편화까지는 제대로 제어하기가 힘들었다. 내가 선택한 방법이 근본적인 해결책이 아니라는 걸 깨닫고 나니, 좀 더 전문적인 툴이 필요하다는 생각이 절실해졌다.
두 번째 실패: 욕심이 불러온 네트워크 먹통 사건
검색 끝에 SecretDNS라는 프로그램을 알게 됐다. 처음엔 ‘이거 또 이상한 광고 프로그램 아닌가’ 의심부터 했다. 하지만 리뷰들을 보니 꽤 진지한 보안 툴 같아 보였다. 문제는 내 성격이었다. 하나를 하면 끝장을 봐야 하는 성격 탓에, 프로그램 설정에 있는 온갖 기능을 한꺼번에 다 켜버렸다. DNS over HTTPS(DoH)는 당연히 활성화하고, SNI 파편화 설정도 제일 빡빡하게 맞췄다. 심지어 기존에 쓰던 다른 프록시 툴이랑 동시에 돌렸다.
결과는 처참했다. 인터넷 자체가 안 된다. 웹브라우저뿐만 아니라 윈도우 업데이트, 게임 런처까지 전부 네트워크 오류를 뿜어냈다. ‘아, 그냥 VPN 쓸걸 그랬나’ 하는 후회가 밀려왔다. 여러 툴이 서로 내 네트워크 주도권을 잡겠다고 싸우는 통에 패킷이 어디론가 증발해 버린 모양이었다. 결국 모든 프로그램을 다 지우고 네트워크 초기화 명령어를 날린 뒤에야 원래대로 돌아왔다. 선택이 과하면 독이 된다는 걸 뼈저리게 느꼈다.
SecretDNS와 본격적인 밀당 시작
다시 마음을 가다듬고 SecretDNS만 단독으로 깔았다. 이번에는 아주 조심스럽게 하나씩 만져보기로 했다. 일단 기본 서버인 Cloudflare 설정을 그대로 뒀다. 이게 제일 안정적이라는 평이 많았으니까. UI는 생각보다 깔끔했다. 군더더기 없이 내가 뭘 켜고 껐는지 한눈에 들어오는 게 맘에 들었다.
여기서 내가 겪은 문제 해결 과정을 그대로 복기해보자면 이렇다. 어떤 사이트는 DoH만 켜도 잘 들어가졌는데, 유독 사진이 안 뜨거나 로그인이 안 되는 사이트들이 있었다. 이건 분명 SNI 차단 때문이라는 판단이 섰다. 그래서 SecretDNS의 핵심 기능인 ‘SNI 파편화’를 켜기로 선택했다. 실행 버튼을 누르고 해당 사이트에 재접속했다.
와, 거짓말처럼 페이지가 열린다. 단순히 막힌 걸 뚫어주는 수준이 아니라, 내가 보낸 데이터가 잘게 쪼개져서 전송되니까 중간에서 누가 훔쳐보려고 해도 ‘이게 대체 어디로 가는 데이터야?’라고 헷갈리게 만드는 원리란다. 이 과정을 직접 겪고 나니 속이 다 시원했다. 물론 처음 접속할 때 0.몇 초 정도의 딜레이가 느껴지긴 했지만, 아예 안 뜨는 것보다는 수만 배 나았다.
다른 도구들과 비교해보니 보이는 것들
사실 GoodbyeDPI 같은 유명한 대안도 있다. 하지만 SecretDNS를 쓰면서 느낀 가장 큰 차별점은 ‘친절함’이다. GoodbyeDPI는 검은색 명령 프롬프트 창에서 뭔가를 조작해야 하는 압박감이 있는데, 이건 버튼 하나로 모든 게 제어된다. 특히 ‘화이트리스트’ 기능이 압권이다. 금융 사이트나 정부 기관 사이트처럼 보안 설정이 민감한 곳들은 가끔 이런 암호화 통신을 공격으로 오해해서 차단하기도 하는데, 그런 사이트들만 골라내서 예외 처리를 할 수 있다.
반대로 불편한 점도 분명히 있다. 모바일 버전이 없다는 게 가장 크다. PC에서는 쾌적하게 인터넷을 하다가 폰을 잡으면 다시 답답해진다. 그리고 가끔 프로그램 업데이트가 있으면 설정이 초기화되는 경우가 있는데, 이건 좀 짜증 난다. 내 입맛에 맞게 맞춰둔 파편화 크기 같은 게 날아가 버리면 다시 하나씩 테스트하며 맞춰야 하니까.
완벽은 없지만, 최선은 있다
솔직히 말해서 SecretDNS를 쓴다고 해서 내 인터넷이 100% 무적의 보안을 갖추게 된 건 아니다. 세상에 완벽한 보안이 어디 있겠는가. 어떤 사이트는 여전히 접속이 불안정하고, 가끔은 프로그램 자체를 껐다 켜야 할 때도 있다. 하지만 확실한 건, 이전처럼 내 정보가 어디서 어떻게 가로채질지 불안해하며 인터넷을 쓰던 시절로는 돌아가지 않을 것 같다는 점이다.
이 프로그램은 특히 ‘프라이버시’에 진심인 사람들에게 추천하고 싶다. 내가 무슨 사이트를 보는지, 어떤 정보를 조회하는지 ISP(통신사)조차 모르게 만든다는 건 꽤 짜릿한 일이다. 물론 설정 과정에서 나처럼 삽질을 좀 할 수도 있겠지만, 그 과정을 통해 내 네트워크 환경을 내가 제어하고 있다는 느낌을 받는 것도 나쁘지 않은 경험이었다.
아직도 해결하지 못한 미스터리도 남아있다. 왜 특정 통신사 회선에서는 SNI 파편화를 켜도 유튜브 업로드 속도가 떨어지는 걸까? 이건 프로그램의 문제일까, 아니면 통신사의 또 다른 꼼수일까. 이런 의문들은 아마 앞으로도 계속될 것 같다. 하지만 뭐 어떤가. 지금 당장 내가 원하는 정보를 자유롭게 보고, 내 비밀스러운 DNS 조회가 안전하게 보호받고 있다면 그걸로 충분하지 않을까 싶다. 완전히 해결되지 않은 문제들은 나중의 내가 또 삽질하며 알아가겠지.
보고서 기능: 의외의 수확
마지막으로 한 가지만 더 언급하자면, 이 프로그램에 있는 보고서 기능이 생각보다 쏠쏠하다. 내가 오늘 하루 동안 어떤 도메인에 얼마나 많은 쿼리를 날렸는지 쭉 리스트로 보여주는데, 이걸 보면 내가 얼마나 많은 광고 서버와 추적 서버에 노출되어 있었는지 실감이 난다. 필요할 때는 이 데이터를 복사해서 분석해볼 수도 있는데, 나중에 회사 보안팀 동료에게 보여줬더니 꽤 흥미로워하더라. 단순한 우회 툴을 넘어, 내 인터넷 생활을 기록하고 분석하는 도구로도 활용할 수 있다는 게 이 녀석의 숨겨진 매력이다. 물론 너무 자세하게 기록되니까 가끔은 내가 나를 감시하는 기분이 들기도 하지만 말이다.
