Hacker News 의견들
  • 이 연구가 정말 인상적이고 글도 아주 잘 쓰였다고 느낌
    끝에 제품 광고가 나올 줄 알았는데 없어서 오히려 놀라움
    다만 이 회사 제품이 핑거프린팅을 한다면 왜 이 취약점을 Mozilla에 제보했는지는 궁금함
    비윤리적이더라도 경쟁사와 차별화하려면 비공개로 들고 있는 편이 사업적으로 더 낫지 않나 싶음
    위협 행위자들이 책임 있는 공개로 자기들 zero-day를 태우는 경우는 거의 못 봄

    • 나는 우리 제품에서 취약점을 사용하지 않음
    • 내 생각엔 애초에 그 취약점에 의존하지 않았고, 공개해버리면 다른 쪽도 못 쓰게 된다는 점이 중요함
  • 기사에 나온 대로 식별자가 Firefox 프로세스가 살아 있는 동안 유지될 수 있으니, Tor Browser는 세션이 끝나면 꼭 완전히 종료해야 함
    한 세션 안에서 서로 다른 용도를 섞어 쓰지 않는 것도 중요함

  • OP가 건 링크는 내 Tor 환경에서 타임아웃이 났지만, Wayback 버전은 문제없이 열렸음
    그리고 이 주제를 다루는 학계 연구자가 있는지도 궁금함
    EFF 같은 단체의 활동은 알고 있지만, 나는 NGO 활동가보다는 대학 교수나 MSR, PARC 같은 순수 연구소 쪽을 더 찾고 있음
    프라이버시에 관심이 많은 입장에서 noscript, ublock origin, firefox containers라는 개인적 holy trinity로 보안은 꽤 챙길 수 있어도, 익명성은 핑거프린팅 때문에 자꾸 손가락 사이로 빠져나가는 느낌임
    stylometry까지 넓게 핑거프린팅으로 보면 더 그렇다고 봄

    • fingerprint는 공격과 방어 양쪽 모두에서 활발히 연구되는 분야임
      예시로 PETS 같은 학회를 찾아보면 도움 됨
  • 나는 웹사이트가 이런 정보를 사용자에게 묻거나 알리지도 않고 접근할 수 있다는 점 자체가 의문임
    왜 브라우저는 휴대폰처럼 서버나 앱이 이런 정보에 접근할 때 권한 허용을 받도록 만들지 않는지 궁금함

    • 브라우저 핑거프린팅은 브라우저가 제공하는 기능들의 부작용에 가깝다고 봄
      브라우저 버전을 알려주는 user agent도 그럭저럭 합리적이고, 시스템에 어떤 폰트가 있는지 묻는 기능도 글꼴 지원상 완전히 없애기 어려움
      시간대, 언어, 키보드 레이아웃, 화면 크기, 창 크기 역시 정상적인 웹 동작에 필요함
      비디오나 오디오 플레이어가 어떤 포맷을 지원하는지 알아야 적절한 미디어를 줄 수 있는 것도 당연함
      JavaScript가 시간을 읽을 수 있는 이상 서버 시간과 비교해 시스템 시계 오차를 알아내는 것도 쉬움
      이렇게 하나씩 쌓이다 보면 거의 모든 브라우저가 결국 고유하게 식별됨
    • 가장 많이 쓰는 브라우저를 만드는 곳이 광고 회사
      게다가 그 회사가 최대 경쟁자의 자금도 상당 부분 댐
      그러니 이런 현실이 놀랍지 않다고 봄
    • 그래도 앱보다는 낫다고 느낌
      앱은 식별자와 디바이스 특성에 훨씬 더 많이 접근할 수 있음
      Google Play services가 없는 비교적 잘 보호된 시스템에서도 그렇다고 봄
    • 그 말은 Android 같은 폰을 떠올리게 함
      오히려 Apple 쪽은 세밀한 제어가 거의 없어서 아쉽다고 느낌
    • 웹 사용성을 유지하는 것과 핑거프린팅을 막는 것, 그리고 사용자에게 수십 수백 개의 권한 팝업을 뿌리지 않는 것 사이엔 아주 미묘한 선이 있다고 봄
      브라우저가 이미 OS에 맞먹는 복잡도를 가지는 만큼 시스템의 어느 부분이든 의도치 않게 노출되고 악용될 수 있음
  • 글에 나온 process-scoped라는 표현이 조금 헷갈렸음
    Mozilla가 2021년에 Firefox용 실험적 one-process-per-site를 공개하면서, 데스크톱 Firefox에서 모든 사이트 사이에 운영체제 프로세스 수준 경계를 만든다고 설명했던 것으로 기억함
    관련 글은 Introducing Site Isolation in Firefox
    그래서 이 기능이 아직 완전히 배포되지 않은 건지, 아니면 배포는 됐지만 IndexedDB가 그 격리 바깥에 있는 건지 궁금함

    • 이 댓글을 보고 나서야, 일부 전역 동작이 남아 있어서 그 틈으로 핑거프린팅이 가능하다는 뜻으로 이해하게 됨
      그렇다면 꽤 흥미로운 설명이라고 느낌
  • 이 설명대로라면 브라우저를 재시작하면 유지되지 않는 것처럼 들리는데, 그렇다면 공격자 입장에서는 유용성이 꽤 줄어들지 않나 싶음

    • 기사에서 인용한 이 부분이 위험을 잘 설명해준다고 느낌
      Firefox Private Browsing에서는 모든 사설 창을 닫아도 Firefox 프로세스가 계속 살아 있으면 식별자가 유지될 수 있음
      Tor Browser에서는 쿠키와 방문 기록을 지우고 새 Tor 회선을 쓰는 완전 초기화를 의도한 New Identity를 써도 안정적인 식별자가 유지된다고 이해함
    • 이런 상황에서 쓰는 방식이 id bridging
      먼저 웹사이트가 브라우저를 핑거프린팅하고 쿠키에 ID와 핑거프린트를 저장함
      다음 세션에서 다시 핑거프린팅해 쿠키와 비교하고, 값이 바뀌었으면 예전 핑거프린트와 새 핑거프린트를 서버에 함께 알려 연결하는 방식임
    • 많은 사용자는 브라우저를 몇 달씩 켜둔 채로 사용함
    • 정말 유용성이 크게 줄어드느냐는 의문이 있음
      국가기관은 이미 많은 노드를 알거나 추적할 수 있을 가능성이 있고, 여러 메타정보를 교차 연결하면 사람을 꽤 정확히 식별할 수 있다고 봄
      항상 100퍼센트 정확할 필요도 없고, 주변 지역 정보나 벽 너머에서 얻는 정보처럼 대상 자체 외의 간접 정보만 많이 모아도 된다는 생각임
      나는 이런 걸 일종의 proxy 정보로 식별하는 방식으로 느낌
  • 솔직히 말해 Web Standards의 상당수는 실제 기능보다 핑거프린팅에 더 많이 쓰이는 것처럼 보임
    IndexedDB도 실제 저장 용도로 쓰는 사이트는 소수 같고, 누가 그걸 꼭 필요로 하나 싶음
    그래서 웹 표준을 계속 확장하는 방향 자체가 잘못됐다고 봄
    브라우저는 기기와 상호작용하는 최소한의 API만 제공하고, IndexedDB 같은 기능은 가치 있는 데이터를 새지 않게 하는 WebAssembly 라이브러리로 구현할 수도 있다고 생각함
    예를 들어 canvas가 플랫폼별 라이브러리를 호출하는 그리기 루틴 없이 그림 버퍼 접근만 제공했다면 핑거프린팅 가치가 크게 줄었을 것이라고 봄

    • "Local Storage Editor" 같은 브라우저 확장을 쓰면 사이트의 Local Storage 내용을 직접 볼 수 있음
      내가 지금까지 본 사례로는 gmail 같은 곳에서 오래가는 이미지를 캐시하거나, 쿠키 대신 로그인 상태를 유지하는 다른 방식으로 쓰는 경우가 있었음
  • 나는 여기서 좀 헷갈렸음
    IndexedDB의 UUID가 모든 origin에 공유된다면, 순서가 아니라 데이터베이스 내용 자체로 브라우저를 식별하면 되지 않나 싶었음

    • 페이지에 이해하기 쉬운 예시가 있음
      어떤 페이지가 a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p라는 데이터베이스들을 만들고 순서를 조회하면, 전역적인 이름-UUID 매핑에 따라 예를 들어 g,c,p,a,l,f,n,d,j,b,o,h,e,m,i,k 같은 결과를 얻을 수 있음
      핵심 취약점은 Firefox 프로세스가 살아 있는 동안은 어떤 웹사이트가 같은 이름 집합의 데이터베이스를 만들더라도, 내용과 무관하게 정확히 같은 순서를 보게 된다는 점임
      그래서 이건 시간에 걸쳐 유지되는 안정적이고 엔트로피가 높은 식별자, 즉 fingerprint가 됨
      origin을 넘어 공유되고, 사이트 데이터를 삭제한 뒤에도 같은 이름으로 다시 만들기만 하면 순서를 통해 핑거프린트를 재획득할 수 있음
    • 데이터 내용은 당연히 origin 범위로 제한된다고 봄
      그렇지 않으면 IndexedDB는 너무 쉬운 evercookie가 됐을 것임
    • 브라우저에서 origin을 넘어 공유되는 건 데이터베이스 내용이 아니라 UUID 매핑
      각 origin에는 그 origin과 연결된 데이터베이스 하위집합만 노출된다고 이해함
  • Tor Browser가 아직도 기본으로 JavaScript를 허용하는지 궁금했음
    내가 이해한 바로는 JavaScript 실행을 막으면 이 취약점 영향도 받지 않을 것 같음

    • 실제로는 JavaScript를 끄면 핑거프린트가 크게 더 눈에 띄게
      JS를 끄는 사용자가 많지 않아서 곧바로 훨씬 작은 집단으로 들어가고, 그 안에서 고유해지기 쉬워짐
      물론 JS가 없으면 세부 정보를 수집하는 선택지는 줄어들지만, 그만큼 적은 정보로도 구별되기 쉬워짐
      게다가 Tor Browser는 이상하게도 navigator.platform을 전혀 spoof하지 않아서 User-Agent가 Windows로 위장돼도 사이트는 여전히 Linux 사용 여부를 볼 수 있음