사용자 에이전트 축소 오리진 트라이얼

사용자 에이전트 축소는 사용자 에이전트(UA) 문자열의 정보를 브라우저의 브랜드와 주요 버전, 데스크톱 또는 모바일 차별화, 브라우저가 실행되는 플랫폼으로만 줄여 수동적인 디지털 지문 수집 영역을 줄이기 위한 것입니다. 현재 UA 문자열은 모든 HTTP 요청에서 공유되며 브라우저에서 로드하는 모든 리소스에 자바스크립트로 노출됩니다. 여기에는 브라우저, 실행 중인 플랫폼, 기능에 관한 중요한 정보가 포함되어 있습니다. 사용자 에이전트 클라이언트 힌트 (UA-CH)는 사이트에서 필요한 UA 정보만 요청하도록 허용하면서 전체 UA 문자열과 동일한 정보를 제공할 수 있습니다.

Chrome 95 베타부터는 사이트에서 축소된 UA 문자열을 수신하도록 선택할 수 있도록 사용자 에이전트 축소오리진 트라이얼을 공개합니다. 이렇게 하면 축소된 UA가 Chrome의 기본 동작이 되기 전에 사이트에서 문제를 발견하고 수정할 수 있습니다 (2022년 2분기에 축소가 시작될 예정임). 안정화 버전 사용자를 대상으로 출시되기 전에 95 베타 사용자를 대상으로 오리진 트라이얼을 테스트하려면 Chrome 95 출시일 (2021년 10월 19일 현재 예정) 전에 선택하여 테스트해야 합니다.

다음은 오리진 트라이얼의 개요와 예상되는 결과이며, 항상 그렇듯이 UA Reduction GitHub 저장소에서 이 체험판에 관한 의견이나 문제를 보내주세요.

User-Agent란 무엇인가요?

사용자 에이전트(UA) 문자열은 모든 HTTP 요청에서 공유되며 자바스크립트로 브라우저에 의해 로드된 모든 리소스에 노출됩니다. 현재 이 파일에는 브라우저 및 브라우저가 실행되는 플랫폼에 관한 중요한 정보가 포함되어 있습니다.

사용자 에이전트가 축소되는 이유는 무엇인가요?

사용자 에이전트 축소는 2020년 1월에 처음 발표된 Chrome 브라우저의 수동 디지털 지문 노출 영역을 줄이기 위한 노력입니다. UA 문자열의 정보를 브라우저의 브랜드와 주요 버전, 데스크톱 또는 모바일 차별화, 애플리케이션이 실행되는 플랫폼으로만 줄이면 개별 사용자를 식별하기가 더 어려워집니다.

웹 개발자에게는 어떤 영향을 미치나요?

사이트는 축소된 UA 문자열을 받을 준비를 하고 오리진 트라이얼에 참여하는 것을 고려해야 합니다 (자세한 내용은 아래 참고). 감소된 사용자 에이전트 값은 다음 위치에 표시됩니다.

  • User-Agent HTTP 요청 헤더
  • navigator.userAgent 자바스크립트 getter
  • navigator.platform 자바스크립트 getter
  • navigator.appVersion 자바스크립트 getter

축소된 사용자 에이전트가 공유하는 것보다 더 많은 클라이언트 정보를 수신하려면 사이트를 새로운 User-Agent Client Hints API로 이전해야 합니다. 마이그레이션 전략에 대한 자세한 내용은 User-Agent 클라이언트 힌트로 이전을 참고하세요.

사용자 에이전트 축소 요금제에는 현재 iOS 및 WebView가 포함되지 않으므로 해당 플랫폼에서는 전체 사용자 에이전트 문자열을 계속 가져옵니다. 주된 이유는 이러한 플랫폼에서 아직 사용자 에이전트 클라이언트 힌트를 구현하지 않았기 때문입니다.

이 오리진 트라이얼의 작동 원리는 무엇인가요?

이 오리진 트라이얼은 표준 오리진 트라이얼과 약간 다릅니다. 표준 오리진 트라이얼은 응답의 동작만 제어할 수 있습니다 (예: 응답의 자바스크립트에서 API에 대한 액세스 제어). 이 체험판의 목표는 JavaScript API에서 제공하는 UA 문자열을 수정하는 것뿐만 아니라 HTTP 요청에서 전송된 사용자 에이전트 헤더도 수정하는 것입니다.

이를 위해 Sec-CH-UA-Reduced라는 임시 클라이언트 힌트를 정의합니다. 임시 클라이언트 힌트는 요청에 있으면 사용자 에이전트 헤더 값에 축소된 UA 문자열이 포함되어 있음을 나타냅니다. Sec-CH-UA-Reduced 클라이언트 힌트는 오리진 트라이얼 토큰이 유효한 경우에만 축소된 UA 문자열과 함께 전송되며 오리진 트라이얼이 만료된 후 Sec-CH-UA-Reduced 클라이언트 힌트가 작동하지 않습니다. Critical-CH header를 설정하지 않는 한 첫 번째 탐색 요청은 축소되지 않은 사용자 에이전트 문자열을 계속 수신합니다.

동일한 출처에 대한 하위 리소스 요청은 전송된 최상위 요청과 동일한 사용자 에이전트 문자열을 자동으로 전송합니다. 서드 파티 출처에 대한 하위 리소스 요청도 최상위 요청과 동일한 사용자 에이전트 문자열을 전송합니다. 여기에는 권한 정책에서 허용하는 경우 오리진 트라이얼 토큰이 유효한 경우 줄어든 UA 문자열이 포함됩니다.

User-Agent Reduction(사용자 에이전트 축소) 오리진 트라이얼에 참여하려면 어떻게 해야 하나요?

  1. 오리진 트라이얼에 등록하고 도메인의 토큰을 받으려면 사용자 에이전트 축소 무료 체험판 페이지를 방문하세요.

  2. HTTP 응답 헤더를 업데이트합니다.

    1. HTTP 응답 헤더에 Origin-Trial: <ORIGIN TRIAL TOKEN>를 추가합니다. 여기서 <ORIGIN TRIAL TOKEN>에는 오리진 트라이얼에 등록할 때 받은 토큰이 포함됩니다.
    2. HTTP 응답 헤더에 Accept-CH: Sec-CH-UA-Reduced를 추가합니다.
    3. Accept-CH를 설정하면 축소된 사용자 에이전트 문자열만 출처에 대한 후속 요청 시 전송됩니다. 축소된 사용자 에이전트 문자열로 첫 번째 탐색 요청을 다시 보내려면 Accept-CHOrigin-Trial 헤더 외에 HTTP 응답 헤더에 Critical-CH: Sec-CH-UA-Reduced를 추가합니다.
    4. 참고: 응답 헤더에 유효한 Origin-Trial 토큰과 Accept-CH: Sec-CH-UA-Reduced가 포함되어 있으면 요청의 출처가 오리진 트라이얼에 등록되지 않은 경우에도 모든 하위 리소스 요청 (예: 이미지 또는 스타일시트) 및 하위 탐색 (예: iframe)에서 축소된 UA 문자열을 전송합니다.
  3. Chrome M95 이상에서 웹사이트를 로드하고 축소된 UA 문자열을 수신하기 시작합니다.

  4. UA 축소 GitHub 저장소에 문제나 의견을 제출하세요.

  5. 오리진 트라이얼에 관한 간단한 데모는 https://uar-ot.glitch.me/를 참고하세요 (소스 코드와 함께).

서드 파티 삽입으로 오리진 트라이얼에 참여하려면 어떻게 해야 하나요?

Chrome 96부터 서드 파티 삽입 (예: 다른 사이트 내의 iframe)은 최상위 사이트를 등록하지 않고도 오리진 트라이얼에 참여할 수 있습니다.

서드 파티 삽입으로 등록하려면 다음 단계를 따르세요.

  1. 사용자 에이전트 축소 무료 체험판으로 이동하여 등록을 클릭합니다.
  2. 토큰을 만들 때 Third-party matching 체크박스를 선택해야 합니다.
  3. 서드 파티 삽입에서 축소된 사용자 에이전트 헤더를 수신하려면 HTTP 응답 헤더를 업데이트합니다.
  4. JavaScript API에서 줄어든 사용자 에이전트 문자열을 수신하려면 자바스크립트를 통해 시도 토큰을 삽입해야 합니다.

서드 파티 삽입에서 오리진 트라이얼을 실행할 때 중요한 사항은 다음과 같습니다. + 서드 파티 삽입에는 Critical-CH를 지정할 수 없으므로 첫 번째 탐색에서는 감소된 UA 문자열을 전송하지 않지만 서드 파티 삽입의 하위 리소스 요청은 감소된 UA 문자열을 전송합니다. 서드 파티 삽입의 출처에 대해 오리진 트라이얼이 검증되면 최상위 탐색에서 동일한 출처에 후속 요청을 보내면 축소된 UA 문자열이 전송됩니다. 따라서 최상위 수준과 삽입 요청 모두 오리진 트라이얼 참여를 늘리는 것이 좋습니다. 사용자 에이전트가 서드 파티 쿠키를 사용 중지한 경우 자바스크립트 API는 여전히 감소된 UA 문자열을 가져오더라도 서드 파티 삽입 요청의 User-Agent 헤더에 오리진 트라이얼이 작동하지 않습니다.

오리진 트라이얼이 효과가 있는지 확인하려면 어떻게 해야 하나요?

오리진 트라이얼이 작동하는지 확인하려면 요청 헤더를 검사하여 다음 사항을 확인하세요.

  1. 사용자 에이전트 헤더에는 축소된 버전이 포함되어 있습니다. 줄어든 UA 문자열 샘플 목록을 참고하세요. 쉽게 알 수 있는 방법은 Chrome 마이너 버전 문자열에 0.0.0가 포함되어 있다는 것입니다.
  2. Sec-CH-UA-Reduced 헤더가 ?1로 설정됩니다.

오리진 트라이얼 토큰을 포함하는 초기 응답의 헤더는 다음과 같습니다.

출발지 체험판 토큰이 포함된 초기 응답 헤더입니다.

축소된 UA 문자열을 포함하는 이후의 요청 헤더는 다음과 같습니다.

축소된 UA 문자열이 포함된 후속 요청 헤더.

사용자 에이전트 축소 오리진 트라이얼 참여를 중지하려면 어떻게 해야 하나요?

무료 체험 기간 중 언제든지 참여를 중지하고 전체 사용자 에이전트 문자열을 수신할 수 있습니다. 참여를 중단하려면 다음 단계를 따르세요.

  1. Sec-CH-UA-Reduced를 포함하지 않는 HTTP 응답에 Accept-CH 헤더를 전송합니다. 참고: 사이트에서 다른 클라이언트 힌트를 요청하지 않는 경우 Accept-CH를 빈 값으로 사용하면 됩니다.
  2. HTTP 응답에서 User-Agent Reduction 시도를 위한 Origin-Trial 헤더를 삭제합니다.
  3. 설정된 경우 HTTP 응답의 Critical-CH 헤더에서 Sec-CH-UA-Reduced를 삭제합니다.

오리진 트라이얼은 얼마 동안 지속되나요?

UA 축소 오리진 트라이얼은 최소 6개월 동안 진행되며 이는 약 6개의 Chrome 마일스톤에 해당합니다. 오리진 트라이얼이 M95에 표시되고 M101에 종료될 예정입니다. 이때 Chrome은 출시 계획에 따라 감소된 사용자 에이전트 문자열을 점진적으로 전송하기 전에 오리진 트라이얼의 의견을 평가합니다. 사이트에 더 오랜 시간이 필요한 경우 후속 지원 중단 오리진 트라이얼을 선택하여 최소 추가로 6개월 동안 전체 UA 문자열에 액세스할 수 있습니다. 지원 중단 체험판이 준비되면 자세한 내용을 게시하겠습니다.

사용자 에이전트 축소 오리진 트라이얼에 관한 의견을 공유하려면 어떻게 해야 하나요?

UA 축소 GitHub 저장소에 문제나 의견을 제출하세요.