
윈도우 11에 여러분이 모르는 사이에 생긴 식별자가 하나 있어요. GDID(Global Device ID)라고 하는데요, 이걸 삭제하고 재생성까지 막아주는 오픈소스 도구 deGDID가 깃허브에 공개됐어요. 도구 자체도 흥미롭지만, 이 식별자가 어떻게 만들어지고 어디로 전송되는지가 알아둘 만한 내용이라 정리해 볼게요.
GDID가 뭐길래
윈도우 11 24H2부터(23H2에도 KB5044384로 백포트) 윈도우는 첫 부팅 때 128비트 식별자를 만들어서 마이크로소프트의 '디바이스 그래프'에 등록해요. 이 값이 뭐로 만들어지느냐가 핵심인데요, TPM의 EK(보증 키), 펌웨어 시리얼, MAC 주소를 조합해서 해시한 값이에요. TPM이 뭐냐면, 메인보드에 붙어 있는 보안 칩으로 암호 키를 하드웨어 수준에서 보관하는 장치예요. 윈도우 11 설치 요구사항에 들어 있어서 이름은 들어보셨을 거예요. 그러니까 GDID는 소프트웨어가 아니라 하드웨어의 뿌리에서 결정론적으로 다시 계산되는 값이라, 광고 ID처럼 리셋할 수도 없고 OS를 밀고 재설치해도 똑같은 값이 다시 만들어져요. 이 값은 텔레메트리(DiagTrack), 윈도우 업데이트 요청, 디펜더 클라우드 조회에 실려 전송되고, 문서화되지 않은 브로커 API를 통해 앱들도 조회할 수 있대요. 마이크로소프트는 '매끄러운 크로스 디바이스 경험'을 위한 것이라고 설명하지만, 저장소 작성자의 표현을 빌리면 'OS 재설치를 견디고 앱이 조회할 수 있는 기기 식별자는 슈퍼쿠키이고, 내 하드웨어에 그걸 달지 말지는 내가 정해야 한다'는 거죠.
deGDID는 어떻게 동작하나
세 가지를 해요. 첫째, 저장된 GDID를 지워요. 레지스트리(HKLM\\SOFTWARE\\Microsoft\\DeviceGraph), DiagTrack 데이터베이스, 그리고 TPM NV 인덱스에 캐시된 값까지요. 관리자 권한과 TPM 소유권이 필요해요. 둘째, 재생성을 막아요. WMI 이벤트 구독과 예약 작업으로 DeviceGraph 키가 생기는 순간 지워버리고, DiagTrack 설정을 패치해서 '디바이스 그래프 옵트아웃' 상태로 보고하게 해요. 재미있는 건 이 옵트아웃 플래그가 EU의 DMA(디지털시장법) 준수를 위해 유럽 빌드에 이미 존재하는 코드 경로라는 점이에요. 마이크로소프트가 직접 테스트해 둔 길을 재활용하는 거라 상대적으로 안전하다는 논리죠. 셋째, 브로커 API의 접근 제어 목록을 바꿔서 앱이 조회하면 접근 거부(E_ACCESSDENIED)가 반환되게 해요. 바이너리를 패치하는 방식이 아니라 레지스트리와 서비스 수준에서만 동작해서 시스템 파일 검사에도 걸리지 않는대요.
대가는 있어요
이런 도구는 항상 트레이드오프가 있죠. 윈도우 업데이트는 계속 동작하지만 기기 단위 점진 배포 입장에서는 실행할 때마다 새 기기처럼 보이게 되고, '내 디바이스 찾기'와 기기 간 이어서 작업하기 기능은 의도적으로 깨져요. 디펜더 클라우드 보호는 익명 제출로 폴백하고요. ARM64에서는 테스트되지 않았고, 피처 업데이트에서 마이크로소프트가 그래프를 다시 활성화할 수 있어서 큰 업데이트 후에는 다시 실행해야 한대요.
어떻게 봐야 할까
윈도우에는 원래도 식별자가 여럿 있었어요. 광고 ID는 사용자가 리셋할 수 있고, 머신 SID는 재설치하면 바뀌죠. GDID가 다른 건 하드웨어에서 파생돼 영속한다는 점이에요. 브라우저 세계에서 쿠키를 지워도 되살아나는 슈퍼쿠키가 논란이 됐던 것과 같은 구도인데, 이번엔 OS 레벨이라는 거죠. EU 사용자에게는 DMA 덕분에 옵트아웃이 존재하는데 다른 지역 사용자에게는 같은 선택지가 없다는 점도, 규제가 만드는 지역 간 프라이버시 격차를 보여주는 사례고요. 한 가지 꼭 당부하고 싶은 건, 회사에서 지급받은 PC나 Entra(구 Azure AD)에 조인된 기기에서는 이런 도구를 함부로 돌리면 안 된다는 거예요. 기기 관리와 보안 정책이 이 식별에 의존할 수 있고, 그건 개인 프라이버시가 아니라 회사 자산 관리의 영역이니까요. 개인 기기에서 쓰더라도 레지스트리와 TPM을 건드리는 도구인 만큼, MIT 라이선스로 공개된 코드를 직접 읽어보고 백업해 둔 뒤에 시도하시길 권해요.
한 줄 정리: 하드웨어에서 파생돼 OS 재설치를 견디는 식별자가 조용히 생겼고, 그걸 끌 권리는 지금 EU 사용자에게만 기본 제공된다. 여러분은 크로스 디바이스 편의 기능과 영속 식별자의 트레이드오프를 어디까지 받아들일 수 있나요? OS 벤더가 이런 식별자를 만들 때 최소한 지켜야 할 조건은 뭐라고 생각하세요?
🔗 출처: Hacker News