개인정보, 프라이버시를 지키기 위한 파이어폭스 설정법

이전 포스팅에서 상세히 설명한 바와 같이, 인터넷 공간에서 프라이버시를 지키기 위해서는 맛집 리뷰를 검색하는 등의 아주 일상적인 웹서핑을 할 때도 토르 브라우저Tor Browser를 사용해야 하며 현재로서는 다른 대안은 없다. 그러나 가끔은 토르 브라우저를 쓰기에 적절하지 않은 경우도 있다. 예를 들면 데드라인이 임박한 프로젝트를 1분 1초를 아껴서 끝내야 해서, 검색결과가 1초라도 더 빨리 뜨는 게 중요한 경우가 있을 수 있다.

그럴 때 적절하게 세팅된 파이어폭스를 이용하면, 프라이버시를 그나마 약간이라도 덜 훼손시킬 수 있다.

모바일 DNS, ESNI 설정법

아이폰, 안드로이드 모두 클라우드플레어에서 공식 배포하는 1.1.1.1 앱을 설치하면 클라우드플레어 DNS서버를 DNS over HTTPS로 암호화시켜서 이용할 수 있다. 브라우저 내에서 설정하는 것과 달리, 1.1.1.1앱을 깔면 휴대폰 통신 전체가 DNS over HTTPS를 사용하게 된다는 장점이 있다.

ESNI는 안드로이드 파이어폭스는 about:config에서 PC버전과 같은 방법으로 켤 수 있다. 아이폰 파이어폭스는 애플 정책 때문에 ESNI를 켤 수 없다. 아이폰에서는 VPN 중 그나마 믿을 만한 업체인 ProtonVPN 앱을 설치해서 그걸로 우회하는 걸 추천한다. 무료다.

PC버전 DNS, ESNI 설정법

DNS 및 SNI 암호화 설정은 2019년 현재 파이어폭스 브라우저에서만 가능하다. 파이어폭스를 설치하고 실행한다.

‘설정…’으로 들어온다.

‘일반’ 탭에서 스크롤을 맨 밑으로 내려 ‘네트워크 설정’ 항목의 ‘설정’ 버튼을 누른다.

‘HTTPS를 통해 DNS를 사용하도록 설정’에 체크한다. 이로써 DNS over HTTPS 설정이 완료된다.

주소창에 about:config을 입력해 고급 환경 설정으로 들어온다. 경고창이 뜨면 ‘다음에 이 경고창 계속 보여 주기’에서 체크를 해제하고, ‘위험을 감수하겠습니다!’를 클릭한다.

검색창에 esni를 검색해 network.security.esni.enabled를 찾은 다음, 그걸 더블클릭해 true로 바꿔 준다. 이로써 클라우드플레어 사이트에 대한 ESNI 설정이 완료된다.

network.trr.bootstrapAddress를 더블클릭해 1.1.1.1을 입력한다. 이는 DNS over HTTPS 서버의 주소인 mozilla.cloudflare-dns.com을 resolve할 때 어떤 DNS를 사용할지를 정하는 것으로, 꼭 1.1.1.1로 할 필요는 없고 취향에 따라 다른 걸로 해도 된다. 그러나 이왕 DNS over HTTPS 서버를 클라우드플레어 DNS를 이용할 거라면, 그 DNS 서버 도메인을 resolve할 때도 클라우드플레어 DNS를 이용하는 것이 어울린다. 그래서 여기에 1.1.1.1을 입력하는 것이다.

검색엔진

요즘 컴퓨터를 잘 모르는 사람은 네이버 검색을 쓰고, 컴퓨터를 좀 안다 싶은 사람은 구글 검색을 쓰는 경향이 있다. 그러나 네이버나 구글이나 둘 다 프라이버시와는 거리가 멀다. 누가 언제 뭘 검색했는지를 영구적으로 기록으로 남기고, 날이 갈수록 발전하는 인공지능과 빅데이터 분석기법으로 낱낱이 분석해 사용자 개인의 관심사와 행동을 통계적으로 예측하는 기업들이기 때문이다. 만약 이런 게 꺼려진다면 구글이나 네이버 검색을 메인으로 이용해서는 안 된다. 덕덕고DuckDuckGo와 같은 프라이버시 검색엔진을 주 검색엔진으로 삼아야 한다.

물론 덕덕고 같은 프라이버시 검색엔진은 구글에 비해 검색품질이 떨어지기는 한다. 애초에 구글이 검색어를 수집하고 빅데이터를 분석하는 이유가 사용자를 엿먹이기 위해서가 아니라, 검색결과를 개선하고 개인에게 최적화된 검색결과를 선별해서 보여주기 위함이기 때문에, 그런 걸 하지 않는 프라이버시 검색엔진은 상대적으로 검색품질이 떨어질 수밖에 없는 것이다. 이처럼 프라이버시와 기능 사이에는 언제나 트레이드오프 관계가 있다.

이를 보완하기 위해 때로는 구글이나 네이버 검색을 이용해야 할 수도 있다. 구글, 네이버 검색을 이용하는 가장 좋은 방법은 토르 브라우저를 사용하는 것이다. 그러면 구글, 네이버는 그 검색을 한 사람이 정확히 누구인지 알지 못할 것이기 때문이다.

그러나 만약 토르 브라우저를 쓰고 싶은 기분이 아니라면, 파이어폭스에서 간단하게 구글, 네이버 검색을 할 수 있는 방법이 있다. 위 사진처럼 ‘원클릭 검색 사이트’에 검색엔진별로 단축키를 설정해 두면 주소창 검색을 할 때 그 단축키를 입력함으로써 쉽게 해당 사이트에서 검색할 수 있다. 예를 들어 기본 검색엔진을 DuckDuckGo로 설정해 놓은 상태에서 주소창에 ‘삼다수’를 입력하면 당연히 DuckDuckGo로 검색이 되겠지만, 위와 같이 네이버 검색을 ‘n’으로 설정해 놓고 주소창에 ‘n 삼다수’를 입력하면 네이버에서 ‘삼다수’가 검색된다는 것이다.

트래킹 차단

트래킹 차단을 한다고 해서 말 그대로 트래킹이 완벽하게 차단되는 것은 아니다. ‘없는 것보다는 나으니까’ 하는 것이다. 파이어폭스의 콘텐츠 차단 기능은 Disconnect 리스트를 사용하는데, 이 경우에도 45~60%의 데이터가 여전히 수집되는 것으로 알려져 있다(Bashir & Wilson, 2018). 트래킹을 확실하게 차단하려면 토르 브라우저를 사용해야 한다.

파이어폭스의 트래킹 차단 기능을 사용하려면, 설정에서 ‘개인 정보 및 보안’ 탭으로 이동해 ‘콘텐츠 차단’에서 ‘사용자 정의’를 선택하고, 추적기는 체크 후 ‘사생활 보호 창에서만’이 아닌 ‘모든 창에서’ 선택, 쿠키는 체크 후 ‘제3자 추적기’ 선택, 크립토마이너와 핑거프린터도 각각 체크해 준다.

그리고 ‘차단 목록 변경’을 클릭해 ‘레벨 2 차단 목록’을 선택한다.

경고문구에도 써 있듯이, 트래킹을 강하게 차단할수록 웹사이트가 깨질 확률이 높아진다. 만약 본인이 자주 가는 웹사이트가 깨져서 불편하다면 해당 사이트에서만 차단기능을 끌 수 있다.

그러나 나는 아직 위와 같은 설정 하에서 깨지는 사이트를 발견하지 못했다. 참고로 앞서 말한 45~60%라는 수치는 레벨 2 차단 목록 기준이다.

기타 프라이버시 설정

설정에서 ‘개인 정보 및 보안’ 탭에서 ‘접근성 서비스가 브라우저에 접근하지 못하게 함(A)’을 체크하고 파이어폭스를 재시작한다. 이는 컴퓨터에 설치된 보안프로그램 등이 파이어폭스로 로딩되는 웹페이지 내용을 감시하는 것을 차단하기 위함이다.

‘사기성있는 내용과 위험한 소프트웨어 보호’ 하에 있는 3가지 항목을 모두 해제한다. 이걸 켜 두면 ‘위험한’ 사이트에 들어갔을 때 그 주소가 구글로 전송되고, 파이어폭스를 이용해 다운받은 모든 파일의 해쉬값도 구글로 전송되므로 프라이버시 수준이 낮아진다. (※ 이걸 끄더라도 파이어폭스 또는 그 밖의 프로그램을 이용해 다운받은 모든 파일의 제목과 해쉬값은 Windows SmartScreen에 의해 마이크로소프트에 전송되며, 이를 방지하려면 ‘Windows 보안’에서 SmartScreen을 꺼야 한다.)

‘Firefox 데이터 수집과 사용’ 항목 중 ‘Firefox가 개인화된 확장 기능 추천을 하도록 허용’은 끄는 것을 추천한다. 이걸 켜 놓으면 수시로 별 쓸데없는 확장 기능 추천이 떠서 귀찮다. 그 위에 있는 2개는 취향에 따라 끄거나 켜면 될 것으로 보인다.

‘쿠키와 사이트 데이터’에서 ‘Firefox가 닫힐 때 쿠키와 사이트 데이터를 삭제’에 체크한다. 쿠키를 이용한 트래킹을 보다 비효율적으로 만들기 위함이다.

‘방문 기록’에서 ‘방문 기록 사용자 정의 설정 사용’을 선택하고, ‘방문 및 다운로드 기록 저장’은 체크 해제, ‘검색 및 입력 기록 저장’도 체크 해제, ‘Firefox 닫을 때 방문 기록 삭제’는 체크한다. 쓸데없는 브라우징 히스토리가 하드에 저장되는 걸 막기 위함이다.

기타 about:config 설정

주소창에 about:config를 입력해서 들어간다. 그리고 privacy.resistFingerprintingtrue로 바꿔 준다.

핑거프린팅 방지 기능이다. 아까 설정에서 ‘핑거프린터’를 차단한 것과의 차이점은, 설정에 있는 ‘핑거프린터 차단’은 핑거프린팅을 하는 스크립트 자체를 최대한 식별해 내서 차단하겠다는 것이고, about:config에 있는 핑거프린팅 방지기능은 이 옵션을 켠 파이어폭스 유저들이 모두 동일한 핑거프린트를 갖게 함으로써 미처 차단하지 못한 핑거프린터들이 핑거프린팅을 시도하더라도 개별 유저를 식별해 내지 못하게 하기 위한 것이다.

이걸 켜면 몇 가지 불편한 점이 생길 수 있다. 예를 들면, 창 크기를 조절해도 새 창을 열거나 브라우저를 껐다 켜면 다시 이전과 같은 크기의 조그마한 창이 열린다. 이는 창 크기viewport를 통한 핑거프린팅을 방지하기 위함이다. 또한 일부 웹사이트에서 예쁜 그림이 못생긴 타일 문양으로 대체되거나, 부드럽게 움직이는 그림이 조금 뻣뻣하게 움직이게 될 수 있다.

그럼에도 불구하고 이 옵션은 켜면 여러 가지 좋은 점이 많으므로 되도록이면 켜는 걸 추천한다.

privacy.firstparty.isolatetrue로 바꿔 준다.

각 사이트마다 별개의 쿠키 저장소를 사용하게 해 주는 기능이다. 한 번에 여러 탭을 띄워 놓고 여러 사이트를 탐색할 때, 그 각 사이트를 탐색하는 사람이 동일인이라는 사실을 노출시키지 않기 위함이다. 그래서 예를 들어 이걸 켜고 ‘유튜브’에서 구글 계정에 로그인한 상태로 ‘구글독스’에 들어가면, ‘구글독스’에는 로그인이 안 돼 있는 걸 볼 수 있다.

이걸 켜면 프라이버시는 크게 증진되지만, 대신 인터넷쇼핑 사이트에서 결제과정에서 오류가 나거나, 페이스북 계정으로 별개의 사이트에 가입했을 때 그 사이트에서 페이스북 계정으로 로그인이 안 되는 등의 문제가 생길 수 있다. 해 보고 불편하게 느껴지면 끄면 된다.

browser.urlbar.speculativeConnect.enabledfalse로 바꿔 준다. Speculative Connect 기능을 끄기 위함이다.

Speculative Connect란, 주소창에 뭔가를 입력할 때 자동 완성되는 주소가 있으면 엔터를 치기 전부터 해당 주소에 대한 DNS 쿼리 및 TLS handshake를 미리 해 놓음으로써 웹사이트에 들어갈 때 반응속도를 수 초 빨라지게 하여 인터넷 속도를 높이는 기술이다. (크롬, 엣지 등 다른 브라우저에도 비슷한 기능이 있다.)

이 기능은 속도 측면에서는 좋지만 프라이버시 측면에서는 별로 좋지 못하다. 예를 들어, 남에게 노출시키지 않고 싶은 사이트에 VPN을 켜고 몰래 들어갔다가, 그 사이트를 북마크에 저장해놓고, 나중에 VPN을 끈 상태에서 주소창에 뭘 입력하다가 그 북마크된 사이트가 자동완성돼 버렸다고 하자. 그러면, 여러분이 최종적으로 그 사이트를 엔터를 치지 않았다 하더라도, 자동완성이 된 순간 이미 파이어폭스는 마치 여러분이 자의로 그 사이트에 들어간 것과 마찬가지로 해당 사이트에 접속요청을 보낸다. 숨기고 싶은 사이트에 접속을 시도한 기록이 ISP 및 정부의 HTTPS 감시시스템에 남아 버리는 것이다.

따라서 이 기능은 false로 설정해서 끄는 걸 추천한다. 단, 이걸 끄면 인터넷 속도가 체감될 정도로 느려질 수 있다.

extensions.pocket.enabledfalse로 바꿔 준다. 파이어폭스에 기본으로 들어 있는 쓸모없는 플러그인인 Pocket을 비활성화하기 위함이다.

그 외의 about:config 세팅은 https://www.privacytools.io/browsers/#about_config (onion link)을 참조해서 취향껏 하기 바란다.

플러그인, 확장기능, 부가기능

브라우저 플러그인은 너무 많이 설치하지 않는 것이 좋다. 플러그인이 하나씩 늘어날 때마다 그와 관련된 보안 취약점도 늘어나고, 노트북이라면 배터리도 더 빨리 닳게 된다. 또한 브라우저 플러그인들은 ‘브라우저’ 플러그인이라는 특성상 유저의 브라우징 관련 개인정보를 수집해서 재판매하는 경우도 많기 때문에, 잘못된 플러그인을 깔면 프라이버시 수준도 낮아진다. 예를 들면 스타일리시Stylish는 각종 웹사이트 디자인을 자기 마음대로 변경할 수 있게 해 주는 유명 플러그인으로 시밀러웹SimilarWeb Ltd.이 소유하고 있다. 스타일리시는 크롬 버전은 2017. 1.부터, 파이어폭스 버전은 2018. 3.부터* 사용자가 방문하는 모든 웹사이트 주소를 각 사용자에 대한 고유 식별자unique identifier와 함께 스타일리시 서버로 전송한다.* 플러그인은 꼭 필요한 최소한의 것만 설치해서 쓰자.

그리고 만약 플러그인의 기능이, 해당 플러그인 사이트에 직접 들어가서도 수행할 수 있는 것이라면 되도록 플러그인을 깔지 말고 사이트에 들어가서 그걸 하는 것이 좋다. 일반적인 플러그인들이 갖고 있는 권한보다, 웹사이트에 들어갔을 때 그 웹사이트가 사용하는 콘텐츠 영역의 권한이 낮기 때문에 같은 작업이라도 플러그인 말고 사이트에 들어가서 하는 것이 보안성이 더 높다.

추천 플러그인은 다음과 같다.

HTTPS Everywhere: HTTPS를 지원하는 사이트 및 서드파티 트래커에 HTTPS로 접속하게 해 주는 플러그인이다. 제작기관인 EFF는 2018. 12. 13. 기준으로도 여전히 HTTPS Everywhere를 설치하는 것이 보안에 도움이 된다고 밝혔다.* 오픈소스다.*

Decentraleyes: CDN 리소스를 로컬로 대체해 준다. 프라이버시에 도움이 될지는 알 수 없지만 이론상 인터넷 속도가 빨라질 수 있다. 오픈소스다.*

uBlock Origin: 광고, 트래커차단 플러그인이다. 이런 류의 플러그인 중 리소스를 가장 적게 잡아먹는다고 한다. 파이어폭스의 ‘콘텐츠 차단’ 기능과 같이 켜 두어도 충돌이 일어나지 않으므로 괜찮다. 오픈소스다.*

기타

웹 브라우저 외에도 사용자에 대한 행태정보를 수집해 가는 프로그램들은 많다. 예를 들면 윈도우 설정의 개인 정보→피드백 및 진단에서 진단 데이터를 ‘전체’로 설정해 놓으면 윈도우는 사용자가 어떤 프로그램을 실행시킬 때마다 실행 시각, 프로그램 이름, 종료 시각 등을 마이크로소프트로 전송한다.* 윈도우에 기본 탑재된 보안 기능인 Windows Defender SmartScreen은 사용자가 인터넷에서 다운받은 파일명, 파일 크기, 해쉬값, 다운 URL, 전자서명정보 등을 마이크로소프트로 전송한다.* 거의 모든 은행, 관공서 사이트에서 설치를 요구하는 AhnLab Safe Transaction은 “웹 브라우저 등을 통해 다운로드 된 응용프로그램에 대한 정보. 예: 파일명, URL, IP, 파일 크기, 서명자”를 수집함으로써 마치 SmartScreen과 유사한 기능을 한다.* 세계적으로 유명한 보안 프로그램인 AVG는 사용자가 방문하는 사이트 URL을 수집하며 그렇게 수집한 브라우징 히스토리 정보를 제3자에게 판매함으로써 수익을 창출한다고 개인정보처리방침에 명시했던 적이 있다.* 게임 플랫폼인 스팀 프로그램은 사용자가 핵 사이트에 들어갔는지를 알아보기 위해 OS의 DNS 캐시 데이터를 수집한다.*

이를 막기 위해서는 불필요한 프로그램을 완전히 제거하기 위해 윈도우를 클린 재설치하고 기본 프라이버시 세팅을 완료하며, ActiveX가 필요한 은행, 관공서 사이트에 들어가기 위해 Hyper-V 가상머신 또는 듀얼부팅 윈도우 환경을 만들어 메인으로 쓰는 윈도우가 ActiveX에 오염되지 않게 하고, 일상생활에 꼭 필요한 각종 뷰어나 유틸리티 프로그램을 설치할 때도 신중을 기하는 것이 바람직하다. 덤으로 장치 보안을 설정하고 BitLocker 암호화도 활성화해 두면 좀 더 다양한 위협에 유연하게 대처할 수 있다.