본문 바로가기

Internet

[Chrome] User-Agent Reduction; 사용자 에이전트 축소와 사용자 에이전트 클라이언트 힌트(UA-CH)

반응형

 

User-Agent(UA) Reduction

민감한 정보를 제거하고 핑거프린팅을 줄이기 위해 공유되는 브라우저 데이터를 제한하세요.

 

 

 

사용자 에이전트 축소란 무엇입니까?

사용자 에이전트 축소(User-Agent reduction)는 수동 핑거프린팅에 사용될 수 있는 사용자 에이전트 문자열(User-Agent String)에서 공유되는 식별 정보를 최소화하려는 노력입니다. 이러한 변경 사항이 적용되면 모든 리소스 요청에 축소된 User-Agent 헤더가 포함됩니다. 결과적으로 navigator.userAgent, navigator.appVersion 및 navigator.platform을 포함한 특정 Navigator 인터페이스의 리턴값이 축소됩니다.

 

웹 개발자는 사용자 에이전트 문자열의 인스턴스 및 사용에 대한 사이트 코드를 검토해야 합니다. 사이트가 장치 모델, 플랫폼 버전 또는 전체 브라우저 버전을 읽기 위해 사용자 에이전트 문자열 구문 분석에 의존하는 경우 사용자 에이전트 클라이언트 힌트 API를 구현해야 합니다.

 

💡 참고: 사용자 에이전트 문자열(User-Agent string)은 서버와 네트워크가 애플리케이션, 운영 체제(OS), 공급업체 또는 사용자 에이전트 버전을 식별할 수 있도록 하는 HTTP 요청 헤더입니다. 현재 User-Agent는 모든 HTTP 요청에서 공유되고 JavaScript에서 노출됩니다.

 

사용자 에이전트 클라이언트 힌트(UA-CH)

 

사용자 에이전트 클라이언트 힌트는 사용자 에이전트 데이터의 전체 집합에 대한 액세스를 허용하지만 서버가 특정 데이터 조각에 대한 명시적 필요성을 적극적으로 선언하는 경우에만 가능합니다.

 

수동적으로 노출된 사용자 데이터를 제거하면 의도적으로 노출되는 정보의 양을 더 잘 측정하고 제한할 수 있습니다(요청 헤더, JavaScript API 및 기타 메커니즘에 의해).

 

 

축소된 UA 및 UA-CH가 필요한 이유는 무엇입니까?

 

현재 User-Agent 문자열은 HTTP 요청마다 사용자의 브라우저, 운영 체제 및 버전에 대한 대규모 데이터 문자열을 브로드캐스트합니다. 이것은 다음과 같은 이유로 문제가 됩니다.

  • 세부 사항의 세분화와 풍부함은 사용자 식별로 이어질 수 있습니다.
  • 이 정보의 기본 가용성은 트래킹으로 이어질 수 있습니다.

우리는 기본 정보만 공유함으로써 사용자 프라이버시를 향상합니다.

 

축소된 User-Agent는 브라우저의 브랜드와 중요한 버전, 데스크톱 또는 모바일, 플랫폼을 포함합니다. 더 많은 데이터에 액세스하려면 User-Agent Client Hints를 사용하여 감사가 가능한 방식으로 사용자의 장치 또는 상태에 대한 특정 정보를 요청할 수 있습니다.

또한 User-Agent 문자열이 더 길고 복잡해지면서 오류가 발생하기 쉬운 문자열 파싱이 발생되고 있습니다. UA-CH는 이해하기 쉬운 구조화되고 신뢰할 수 있는 데이터를 제공합니다. UA 문자열을 구문 분석하는 기존 코드는 중단되어서는 안 되며(더 적은 데이터를 반환하지만), 사이트에 유효한 사용 사례에 대한 특정 정보가 필요한 경우 UA-CH로 마이그레이션해야 합니다.

 

축소된 UA 및 UA-CH는 어떻게 작동합니까?

다음은 축소된 사용자 에이전트 문자열과 UA-CH가 작동하는 방식에 대한 간단한 예입니다. 더 자세한 예를 보려면 사용자 에이전트 클라이언트 힌트로 사용자 개인 정보 및 개발자 경험 개선을 검토하세요.

 

  1. 사용자가 브라우저를 열고 주소 표시줄에 example.com을 입력합니다.
  2. 브라우저는 웹 페이지를 로드하라는 요청을 보냅니다.
    1. 브라우저에는 축소된 User-Agent 문자열이 있는 User-Agent 헤더가 포함됩니다. 예:
      1. User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Mobile Safari/537.36
    2. 브라우저는 기본 User-Agent Client Hint 헤더에 동일한 정보를 포함합니다. 예를 들어: 
      1. Sec-CH-UA: "Chrome"; v="93" Sec-CH-UA-Mobile: ?1 Sec-CH-UA-Platform: "Android"
    3. 서버는 브라우저에 Accept-CH 응답 헤더와 함께 추가 클라이언트 힌트를 보내도록 요청할 수 있습니다. 예:
      1. Accept-CH: Sec-CH-UA-Arch
    4. 브라우저는 정책 및 사용자 구성을 적용하여 후속 요청 헤더에서 서버로 반환할 수 있는 데이터를 결정합니다. 예를 들어:
      1. Sec-CH-UA: "Chrome"; v="93"
        Sec-CH-UA-Mobile: ?1
        Sec-CH-UA-Platform: "Android"
        Sec-CH-UA-Arch: "arm"

 

초기 요청 시 특정 클라이언트 힌트 세트가 필요한 경우, 클라이언트 힌트 안정성을 참조하여 클라이언트 힌트가 사이트 로드 시 사용 가능하고 최적화되었는지 확인하세요.

 

 

반응형