- 2005년에 Private Browsing(개인정보 보호모드)을 발명했을 때, 목표는 동일한 기기를 공유하는 사람들로부터 사용자의 브라우징을 보호하는 것이었음
- 사용자가 브라우징의 로컬 영구 흔적을 남기지 않는 모드를 만들었고, 결국 다른 모든 브라우저도 동일한 기능을 제공하게 되었음. 이를 "ephemeral browsing"이라고도 함
- 2003년 Safari 1.0부터 쿠키 정책을 통해 모든 Safari 브라우징에 크로스 사이트 추적 방지를 적용했고, 지난 20년 동안 프라이버시 보호를 점진적으로 강화해 왔음
- 다른 유명 브라우저는 추적 방지에 있어 우리의 주도를 따르는 데 그다지 빠르지 않았지만, 진전은 있음
- Apple은 사용자가 자신도 모르게 동의 없이 웹에서 추적되어서는 안 된다고 믿음
- Private Browsing에 진입하는 것은 사용자가 프라이버시 침해에 대해 최상의 보호를 원하면서도 웹을 즐기고 활용하고 싶어한다는 강력한 신호임
- 크롬의 시크릿 모드와 같이 사생활 보호 모드를 2005년 정의대로 단순히 임시적인 것으로만 유지하는 것은 더 이상 충분하지 않음
- 사용자는 더 많은 것을 기대하고 받을 자격이 있음
- Safari 17.0에서 Private Browsing에 전혀 새로운 수준의 프라이버시 보호 기능을 추가했고, 17.2와 17.5에서 이를 더욱 강화
- 사용자가 활성화하면 새로운 모든 보호 장치가 일반 Safari 브라우징에서도 사용 가능함
- 이 작업으로 웹 프라이버시를 크게 향상시켰고, Private Browsing이 어떠해야 하는지에 대한 새로운 산업 표준을 세우기를 희망함
Safari의 Enhanced Private Browsing 기능 요약
- Safari 17.0에 들어간 보호 및 방어 기능
- 링크 추적 방지
- CNAME으로 위장된 것을 포함해 알려진 트래커의 네트워크 로드 차단
- 고급 핑거프린팅 방지
- 웹사이트나 방문 기록에 접근하는 확장 프로그램은 기본적으로 꺼져 있음
- 추가로 모든 브라우징 모드에 추가된 보호 및 방어 기능
- 위장된 제3자 IP 주소에서 설정된 쿠키의 수명 제한
- 파티션된 SessionStorage
- 파티션된 blob URL (Safari 17.2부터)
- 또한 URL의 추적 매개변수를 대체하기 위해 Web AdAttributionKit(이전의 Private Click Measurement)를 확장했음
- Private Browsing에서도 개발자가 마케팅 캠페인의 성과를 이해할 수 있도록 도움
웹사이트 호환성을 깨먹는 것의 위험과 그에 대한 완화 방안
- 웹에서 프라이버시를 보호하기 위한 많은 아이디어가 있지만, 불행히도 그 중 많은 것이 사용자 경험을 해칠 수 있음
- 현실 생활에서의 보안 보호와 마찬가지로, 균형을 맞추어야 함
- 새로운 Private Browsing은 웹사이트를 절대 중단시키지 않으려고 시도하면서 그 선까지 가는 것임
- 하지만 일부 사이트의 일부분이 작동하지 않을 위험이 있음
- 이를 해결하기 위해 사용자에게 사이트별로 프라이버시 보호를 줄일 수 있는 수단을 제공함
- 이러한 프라이버시 보호의 변경은 사이트 내에서 브라우징하는 동안만 기억됨
- 이 옵션은 프라이버시 보호로 인해 웹 페이지를 사용할 수 없을 때 최후의 수단임
- iOS, iPadOS, visionOS에서는 설정 > 앱 > Safari > 고급 > 고급 추적 및 핑거프린팅 방지로 이동하여 "모든 브라우징"을 활성화
- macOS에서는 Safari > 설정 > 고급으로 이동하여 "모든 브라우징에서 고급 추적 및 핑거프린팅 방지 사용"을 활성화
링크 추적 방지
- 사파리는 URL의 쿼리 파라미터와 프래그먼트를 제거해 사이트 간 사용자 활동 추적을 어렵게 만듦
- 광범위한 사용자/클릭 수준 추적에 사용되는 쿼리 파라미터는 네트워크 전송 전에 제거됨
- 캠페인 속성에 사용되는 파라미터는 통과시킴
- 목적지 사이트에서 전체 URL에 액세스하려는 제3자 스크립트는 쿼리 파라미터나 프래그먼트가 없는 URL만 볼 수 있음
Private Browsing의 Web AdAttributionKit
- Web AdAttributionKit은 광고주, 웹사이트 및 앱이 프라이버시를 보호하는 방식으로 광고 속성과 클릭 측정을 구현하는 방법임
- Private Browsing에서 특정 제한 사항을 가지고 동작함
- 개별 Private Browsing 탭으로 범위가 지정되며, 링크 클릭 시 새 탭으로 속성 전송함
- 탭을 닫으면 보류 중인 속성 요청이 폐기됨
알려진 추적기의 네트워크 로드 차단
- 자동으로 활성화된 콘텐츠 차단기를 사용해 알려진 추적기로의 네트워크 로드를 차단함
- DuckDuckGo 데이터와 EasyList의 EasyPrivacy 필터링 규칙을 사용해 컴파일됨
- 대부분의 광고는 계속 로드되도록 의도적으로 허용함
- Private Browsing은 CNAME 은폐나 제3자 IP 주소 은폐를 통해 매핑된 추적 도메인으로의 은폐 네트워크 요청도 차단함
네트워크 프라이버시 개선
- Private Browsing은 다음과 같은 보호 기능을 모든 사용자에게 추가함:
- 암호화된 DNS를 사용해 DNS 쿼리를 보호함
- 암호화되지 않은 HTTP 리소스를 프록시해 로컬 네트워크의 공격자로부터 보호함
- iCloud+ 가입자는 iCloud Private Relay를 켜서 다음과 같은 기능을 추가로 사용할 수 있음:
- 각 Private Browsing 탭마다 별도 세션을 사용함
- 기본적으로 위치정보 프라이버시를 제공함
- IP 주소 공개 전에 경고를 표시함
Private Browsing의 확장 프로그램
- 웹사이트 데이터 및 브라우징 기록에 액세스할 수 있는 확장 프로그램은 기본적으로 꺼져 있음
- 사용자는 여전히 확장 프로그램이 Private Browsing에서 실행되도록 선택할 수 있음
- 웹 페이지 콘텐츠나 브라우징 기록에 액세스하지 않는 확장 프로그램은 Safari에서 켜져 있으면 Private Browsing에서도 기본적으로 켜져 있음
고급 핑거프린팅 방지
- 상태 저장 추적이 제한됨에 따라 많은 추적기가 핑거프린팅으로 전환함
- 핑거프린팅 유형:
- 디바이스 핑거프린팅: 하드웨어, OS, 브라우저 등 디바이스 특성 기반
- 네트워크 및 지리적 위치 핑거프린팅: 인터넷 연결 방식과 지리적 위치 감지 수단 기반
- 사용자 설정 핑거프린팅: 다크/라이트 모드, 로케일, 글꼴 크기 조정, 창 크기 등 사용자 설정 상태 기반
- 사용자 행동 핑거프린팅: 마우스 포인터 사용, 입력 속도 등 사용자 행동 패턴 감지
- 사용자 특성 핑거프린팅: 관심사, 연령, 건강 상태 등 사용자 특성 파악
- 핑거프린트 안정성은 시간이 지남에 따라 변화하는 요소들로 인해 도전받음
- 핑거프린팅 프라이버시 문제:
- 사이트 간 추적
- 사이트별 사용자 재호출
- 사이트별 방문자 고유성
- 사이트 간 추적 및 사이트별 사용자 재호출은 브라우저가 해결해야 할 프라이버시 문제임
- Safari의 접근 방식:
- 핑거프린트를 사이트별로 고유하게 만들고, 데이터 제거 시마다 새로운 고유 핑거프린트 생성
- 다중 홉 프록시를 사용해 IP 주소 숨기기
- 핑거프린트 가능한 웹 API 수 제한
- 웹 API 반환 값에 노이즈 주입
- 2D Canvas, WebGL, Web Audio API에 노이즈를 주입하고 창/화면 메트릭 관련 API 결과를 고정하여 핑거프린팅을 어렵게 만듦
Topics API와 같은 핑거프린트 가능한 API를 웹에 추가하지 말아야 함
- 기존 웹 API는 핑거프린트 가능성을 억제하는 데 어려움이 있음
- 새로운 핑거프린트 가능한 API로 문제를 악화시키지 않는 것이 중요함
- Chrome에 도입된 Topics API에 반대하는 이유:
- 사용자의 관심사를 브라우저가 추론하여 광고주에게 전달함
- 사용자에게 어떤 주제가 노출되는지 사전에 알려주지 않음
- 단순한 관심사 조합만으로도 사용자 프로파일링과 재식별에 활용될 수 있음
두 가지 브라우징 모드에서의 프라이버시 개선
- 은폐된 제3자 IP 주소에 대한 방어와 SessionStorage 및 Blob URL 파티셔닝은 일반 브라우징과 Private Browsing 모두에서 기본적으로 활성화됨
- ITP는 은폐된 제3자 IP 주소의 응답에서 쿠키 만료 기간을 7일로 제한함
- Safari 16.1부터 사이트 간 Session Storage를 첫 번째 파티 웹사이트별로 분할함
- Safari 17.2부터 사이트 간 Blob URL을 첫 번째 파티 웹사이트별로 분할하고, 제3자가 첫 번째 파티 Blob URL을 사용할 수 없게 함
산업 표준 설정
- Safari 17.0, 17.2, 17.5의 개인 정보 보호 기능은 사용자 보호를 위한 새로운 기준을 제시
- 모든 Safari 사용자와 웹 자체가 이 작업의 혜택을 누리게 되기를 기대