realfp.com

폰트 지문이란 무엇인가요?

폰트 지문은 브라우저 지문의 또 다른 중요한 차원입니다. 사용자의 기기에 특정 폰트가 설치되어 있거나, 일부 폰트가 누락되어 있는 경우 이러한 정보는 고유한 식별자를 생성하는 데 사용될 수 있습니다.



각 사용자의 기기에 설치된 폰트 조합은 고유합니다——특히 많은 비표준 폰트를 설치한 사용자에게는 이러한 고유성이 더욱 두드러집니다. 따라서 폰트 정보는 상당히 정밀한 브라우저 지문 구성 요소가 될 수 있습니다.



폰트 지문의 구현 원리

폰트 지문은 주로 브라우저의 JavaScript API를 통해 구현됩니다. 핵심 원리는 다음과 같습니다. 브라우저는 사용자 기기에서 사용 가능한 폰트 목록을 가져와 보고할 수 있으며, 이러한 폰트 정보는 다른 브라우저 및 기기 특성과 결합되어 고유한 지문을 형성합니다.



일반적인 폰트 지문 수집 방법은 다음 세 가지입니다.



방법 1: 폰트 열거(Font Enumeration)



가장 직접적인 방법입니다. 웹사이트는 브라우저가 제공하는 API를 통해 설치된 폰트의 전체 목록을 직접 가져옵니다. 이는 기기에 어떤 애플리케이션이 설치되어 있는지 확인하는 것만큼 간단합니다.



방법 2: 폰트 감지(Font Detection)



이는 더 은밀한 방법입니다. 웹사이트는 브라우저가 특정 폰트로 텍스트를 렌더링하도록 한 뒤, 해당 텍스트의 크기를 측정합니다. 해당 폰트가 설치되어 있다면 텍스트의 표시 크기가 기본 폰트와 달라집니다——웹사이트는 이러한 “시행착오” 방식으로 특정 폰트가 사용자의 기기에 존재하는지 하나씩 판단합니다.



방법 3: 캔버스 지문(Canvas Fingerprinting)에서의 폰트 감지



이는 더 복잡한 방법입니다. 웹사이트는 보이지 않는 가상 캔버스에 텍스트를 그린 다음, 해당 텍스트의 픽셀 배열 방식을 분석합니다. 서로 다른 폰트는 픽셀 배열의 차이를 유발하며, 웹사이트는 이러한 픽셀 패턴을 비교하여 사용자의 기기에 특정 폰트가 설치되어 있는지 판단합니다.