개인정보보호법도 발효되고 사생활 보호라는 주제가 여러 곳에서 화두가 되고 있지만 정작 개별 사용자들은 자신의 사적 데이터가 어떻게 노출될 수 있는지 잘 모르고 있을 것이다. 이 글에서는 웹 개발자라면 알 수 있는 여러 기법에 의해 웹사이트 방문자에 대해 알아낼 수 있는 정보가 어떤 것이 있는지 나열해보고자 한다.

어떤 웹사이트에 일단 가입하면 e메일 주소나 전화번호를 입력하게 돼 있으니까 그런 건 기술적으로 알아내는 게 아니므로 논외로 한다. 또한 사회관계망(SNS) 웹사이트라면 관계 분석을 통해 더 많은 정보를 알아낼 수 있겠으나 역시 단순히 방문자 한 사람에 대한 기술적 정보로 알아낼 수 있는 게 아니므로 논외로 한다.

IP 주소

가장 손쉽게 알아낼 수 있는 정보로 사용자의 IP 주소가 있다. IP 주소는 웹이라는 통신 규격상(TCP/IP 프로토콜 기반) 기본적으로 서로 교환되는 정보기 때문에 접속을 시작하자마자 바로 밝혀지는 정보다. 이 정보는 도용(spoofing)이 가능하긴 하지만 일반 사용자로서는 그대로 웹사이트에 노출되게 된다.

IP 주소가 밝혀지면 IP 주소를 보유한 통신사업자가 밝혀지며 지리적으로 어느 위치에 있는지도 대략적으로(시구군 단위 정도) 밝혀진다. 본 블로그에도 "브라우저 정보 확인"이라는 페이지를 뒀지만 간단한 방법으로 IP 주소에서 지리적 위치를 찾아낼 수 있다.

지리적 위치

IP 주소에서 대략적인 위치를 알아낼 수 있지만 HTML5에서 도입된 지리적위치(geolocation) API를 사용하면 경우에 따라서는 100% 정확한 지리적 위치를 알아낼 수 있다. 단, 이러한 API를 웹사이트에서 사용할 경우 브라우저는 사용자에게 위치 정보 제공을 허용할지 물어보게 된다. 사용자는 본인의 사생활 침해가 우려된다면 당연히 정보 제공을 허용하면 안된다.

일단 정보 제공을 허용한다면 특히 모바일 기기의 웹브라우저를 통해 사용자의 위치 정보를 시간에 따라 파악하고 분석할 수 있을 것이다. 어느 시간에 어디에 있는지 앎으로써 어떤 방식으로 살아가는지 대략 파악할 수도 있기 때문이다.

컴퓨터 정보

웹브라우저에는 브라우저 자신의 정보나 OS 정보를 담은 변수들이 있어서 웹사이트에서는 이 값을 통해 사용자의 컴퓨터 정보를 몇 가지 알아낼 수 있다. 다만 이 정보도 IP 주소처럼 임의로 조작 가능하므로 사용자가 이 정보를 노출하지 않겠다면 충분히 은폐 가능하다. 또한 브라우저마다 똑같이 모든 정보가 제공되는 것은 아니다.

링크 제공자(리퍼러) 정보

웹사이트에 들어갈 때 어떤 다른 링크를 눌러서 들어간다면 웹사이트에는 리퍼러(referer)라는 정보가 제공된다. 링크를 제공한 원래 웹페이지의 주소를 말한다. 예를 들어 네이버에서 어떤 페이지 A에서 링크를 눌러 웹사이트에 들어갔다면 네이버의 그 A라는 페이지 주소가 웹사이트에 전해진다. 웹사이트 입장에서는 이 정보를 통해 사용자의 방문 방식을 이해할 수 있으며 이 정보를 종합하므로써 방문 통계를 낼 수 있다.

e메일 열람 여부

웹메일이나 마케팅용 e메일의 경우 작은 이미지를 메일 내용 안에 숨겨 놓는 경우가 있다. 사용자가 메일 내용을 볼 때 이 이미지가 딸려오게 되는데 이때 웹사이트 입장에서는 이 이미지가 호출됨으로써 사용자가 메일을 열었는지 알 수 있게 된다. 네이버 웹메일에서는 읽은 편지 확인으로 제공되는 정보다. 보내는 쪽 입장에서는 메일의 효과성을 어느 정도 판단할 수 있게 된다. 또한 단순한 이미지가 아니라 위의 정보들을 종합할 수 있는 프로그램이 서버측에서 동작하는 이미지를 제공하는 것이라면 메일을 보는 사용자의 IP 주소, 컴퓨터 정보 역시 알아낼 수 있게 된다.

이 이미지 내장 기법은 예전에 싸이월드에서 누가 방문했는지 알아내기 위한 개인간 해킹(?) 기법으로 많이 사용됐었으며(얼마 후 싸이월드에서 막았지만…) 현재도 마케팅용, 광고용 e메일에서 많이 사용되는 방법이다. 하지만 구글 G메일이나 대부분의 메일 클라이언트에서는 바로 이런 문제로 인한 사생활 보호를 위해 이미지를 바로 보여 주지 않는다.(그러나 바로 엊그제 구글은 이미지를 미리 불러와서 자기네 서버에 저장해서 보여주기로 함으로써 이미지를 보여주면서도 개인 정보를 노출하지 않도록 만들었다. 알고나니 간단히 구현할 수 있는 문제였는데 왜 이제 이렇게 했나 생각이 들 정도.)

개인 취향, 관심사

단순한 기술적인 문제는 아니지만 회원 가입을 하지 않았더라도 방문자가 어떤 컨텐트를 자주 보고 어떤 링크를 자주 클릭하는지는 알 수 있다. 웹사이트는 이를 바탕으로 방문자의 개인 취향이나 관심사를 추측할 수 있고 그에 따라 광고를 배치하게 된다. "맞춤 광고"란 결국 이러한 관심사를 힌트로 한 컨텐트 추천 시스템이라 할 수 있다.

맺음말

위에서 몇 가지 언급했지만 다른 놓친 게 있는지도 모르겠다. 그리고 중요한 것은 이것은 회원 가입을 하지 않은 방문자에 대해 단순한 기술적 분석을 통해 알아낼 수 있는 정보라는 것이다. 회원 가입을 한 경우는 최소한 e메일을 남기게 되고 더한 경우는 주소, 전화번호를 남기게 되므로 이를 통해 갖가지 개인 정보를 알아낼 수 있게 된다.

개인정보 보호 또는 사생활 보호는 눈에 보이는 문제가 아닐 수 있다. 하지만 우리가 모르는 새에 누군가 나에 대해 나보다 더 잘 알아낼 수 있다는 건 참으로 무서운 일이 아닌가?