realfp.com

브라우저 언어란 무엇인가요?

디지털 시대에 개인정보 보호는 점점 더 많은 사람들이 주목하는 핵심 이슈가 되었습니다. 브라우저 핑거프린팅을 이야기할 때 우리는 보통 Canvas 핑거프린트, WebGL 핑거프린트 또는 오디오 핑거프린트 같은 기술적 수단을 떠올립니다. 그러나 겉보기에는 무해해 보이는 정보 차원 역시 기기 식별에 사용될 수 있습니다——바로 사용자의 언어 설정입니다.



선호 언어: 브라우저의 언어 기본 설정

브라우저의 언어 설정은 단순한 표시 옵션에 그치지 않습니다. 브라우저의 언어 기본 설정을 열어보면 일반적으로 우선순위에 따라 정렬된 언어 목록을 볼 수 있습니다. 예를 들어 영어(미국)를 선호 언어로 설정하고, 그다음으로 영어, 프랑스어, 포르투갈어 등을 설정할 수 있습니다.



이 언어 목록은 브라우저 인터페이스의 표시 언어를 결정하는 데만 사용되는 것이 아닙니다. 사용자가 웹사이트에 접속하면 이러한 언어 기본 설정 정보가 HTTP 요청에 포함되어 서버로 함께 전송됩니다. 웹사이트는 간단한 JavaScript 스크립트만으로도 사용자 브라우저의 선호 언어 목록을 가져올 수 있습니다. 이는 사용자가 웹페이지에 접속할 때마다 사용자의 언어 기본 설정이 웹사이트에 사용자에 관한 일부 정보를 “알려주고” 있다는 뜻입니다.



요청 헤더 언어: HTTP 요청의 Accept-Language

HTTP 요청 헤더에는 Accept-Language라는 필드가 있으며, 이 필드는 사용자 브라우저의 선호 언어에 대한 상세 정보를 담고 있습니다. 이 필드의 형식은 일반적으로 다음과 같습니다:



Accept-Language: en-US, en;q=0.9, fr-FR;q=0.8, fr;q=0.7



이 코드의 의미를 살펴보겠습니다:



en-US:선호 언어가 미국식 영어이며, 가장 높은 가중치를 가진다는 의미입니다.



en;q=0.9:미국식 영어를 사용할 수 없는 경우 영어(일반)를 허용할 수 있지만, 우선순위는 조금 낮으며 가중치는 0.9입니다.



fr-FR;q=0.8:프랑스식 프랑스어를 허용할 수 있으며, 가중치는 0.8입니다.



fr;q=0.7:어떤 프랑스어든 허용할 수 있으며, 가중치는 가장 낮은 0.7입니다.



가중치의 범위는 0부터 1까지이며, 값이 높을수록 사용자가 해당 언어를 더 선호한다는 의미입니다. 웹사이트는 이 필드를 분석하여 사용자의 언어 환경 기본 설정을 파악할 수 있으며, 이에 따라 해당 언어 버전의 페이지 콘텐츠를 제공함으로써 사용자가 웹사이트를 더 쉽게 탐색하고 이해할 수 있도록 합니다.



비유하자면, Accept-Language는 식당에서 주문할 때 종업원에게 건네는 메뉴와 같습니다——무엇을 원하는지, 우선순위가 어떤지를 상대방에게 명확히 알려줍니다. 서버는 요리사처럼 사용자의 “메뉴”에 따라 가장 적합한 “요리”(즉, 현지화된 콘텐츠)를 준비합니다.



Internationalization API: 더 정교한 현지화 지원

HTTP 요청 헤더의 언어 필드 외에도, 브라우저는 Internationalization API(국제화 API)라는 JavaScript 인터페이스 모음을 제공합니다. 이 API의 목표는 개발자가 웹사이트의 국제화를 구현하도록 돕는 것입니다. 즉, 사용자의 언어 및 지역 설정에 따라 날짜, 시간, 숫자를 적절한 형식으로 표시하고, 현지화된 문자열 번역 등의 기능을 제공하는 것입니다.



사용자가 웹사이트를 열면, 웹사이트는 Internationalization API를 사용하여 사용자가 브라우저에 설정한 언어 기본 설정을 가져올 수 있습니다. 예를 들어 사용자의 브라우저 언어가 영어로 설정되어 있다면, API가 반환하는 문자열은 "en" 또는 "en-US"일 수 있습니다.



대표적인 활용 사례는 소셜 미디어 플랫폼입니다. 전 세계 사용자가 동일한 소셜 웹사이트에 접속할 때, 웹사이트는 Internationalization API를 활용해 사용자의 언어 선호도를 감지하고, 사용자가 익숙하지 않은 언어가 아니라 익숙한 언어 인터페이스를 자동으로 표시합니다. 이러한 현지화 경험은 제품의 사용성과 사용자 만족도를 크게 향상시킵니다.



언어 정보는 어떻게 핑거프린트 식별에 참여하나요?

언어 정보만 따로 보면 식별력이 그리 강하지 않아 보입니다——결국 전 세계에는 영어를 선호 언어로 설정한 사용자가 수백만 명에 달하기 때문입니다. 그러나 언어 정보가 다른 핑거프린트 데이터(예: Canvas 핑거프린트, WebGL 핑거프린트, 오디오 핑거프린트, 화면 해상도, 시간대 등)와 결합되어 사용될 때 상황은 완전히 달라집니다.



언어 선호도의 조합 방식은 매우 다양합니다. 선호 언어의 종류뿐만 아니라 대체 언어의 순서, 각 언어의 가중치 값, 그리고 Internationalization API를 통해 가져온 세부적인 지역 설정까지 포함됩니다. 이러한 매개변수들은 함께 비교적 독특한 “언어 핑거프린트”를 구성합니다.



더 중요한 점은 언어 설정이 대체로 상당히 안정적이라는 것입니다——일반 사용자는 브라우저의 언어 기본 설정을 자주 변경하지 않습니다. 이는 웹사이트가 사용자의 언어 핑거프린트 조합을 한 번 기록하면, 이후 접속에서 이 정보를 활용해 사용자의 기기를 식별하는 데 도움을 받을 수 있음을 의미합니다. 사용자가 Cookie를 삭제하거나 IP 주소를 변경하더라도 마찬가지입니다.



언어 핑거프린트를 보호하는 방법은?

언어 정보가 핑거프린트 추적에 사용될 위험을 줄이고 싶다면, 다음과 같은 방법을 고려할 수 있습니다:



1. 개인정보 보호 브라우저 사용:Tor 브라우저와 같은 개인정보 보호 우선 브라우저는 언어 관련 요청 헤더를 표준화하거나 무작위화하여 기기 간 차이를 줄입니다.



2. 브라우저 확장 프로그램 사용:Privacy Badger, uBlock Origin 등 일부 개인정보 보호 확장 프로그램은 HTTP 요청 헤더의 언어 정보를 수정하거나 제한할 수 있습니다.



3. 핑거프린트 브라우저 사용:전문적인 안티 디텍트 브라우저는 사용자가 언어 관련 매개변수를 사용자 지정하고 위조할 수 있도록 하며, “비활성화”가 아니라 “대체”하는 방식으로 웹사이트가 사용자를 언어 선호도가 다른 일반 사용자로 인식하게 합니다.



정리

언어 정보——HTTP 요청 헤더의 Accept-Language 필드이든, Internationalization API가 제공하는 언어 기본 설정이든——그 자체는 사용자를 추적하기 위해 설계된 것이 아닙니다. 웹사이트가 처음 이러한 기술을 채택한 목적은 전 세계 다양한 지역 사용자의 요구를 충족하기 위해 더 나은 사용자 경험을 제공하는 것이었습니다.



그러나 브라우저 핑거프린트 식별이라는 큰 틀 안에서, 겉보기에는 무해해 보이는 이러한 언어 선호 데이터도 수집되고 활용될 수 있으며, 다른 핑거프린트 기술과 결합되어 더 정밀한 사용자 식별 정보를 함께 구축할 수 있습니다. 이 메커니즘을 이해하는 것이 개인 프라이버시를 보호하는 첫걸음입니다.