# 정밀한 위치 추적을 가능하게 하는 Wi-Fi 위치 결정 시스템

> Clean Markdown view of GeekNews topic #24525. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24525](https://news.hada.io/topic?id=24525)
- GeekNews Markdown: [https://news.hada.io/topic/24525.md](https://news.hada.io/topic/24525.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-22T06:43:01+09:00
- Updated: 2025-11-22T06:43:01+09:00
- Original source: [amoses.dev](https://www.amoses.dev/blog/wifi-location/)
- Points: 21
- Comments: 1

## Summary

노트북이 GPS 없이도 몇 미터 단위로 위치를 알아내는 이유는, 우리가 매일 사용하는 **Wi-Fi 네트워크의 SSID와 BSSID 데이터**가 이미 전 세계적으로 거대한 **위치 데이터베이스**로 구축되어 있기 때문입니다. 브라우저의 **Geolocation API**는 이 정보를 Google 등 서비스에 전송해 정밀한 위치를 계산하며, 대학의 출석 시스템 같은 서비스도 이런 기술 위에서 작동합니다. 하지만 이 과정에서 **개인 이동 경로 노출**이나 **데이터 오남용** 위험이 꾸준히 제기되고 있어, ‘_nomap’ 같은 **opt-out 메커니즘**이 다시 주목받고 있습니다. 기술의 정밀함이 곧 투명함을 의미하지는 않는다는 점이, 개발자로서 가장 생각하게 만드는 부분입니다.

## Topic Body

- **브라우저의 위치 권한 요청**은 단순한 IP 기반 위치 추정이 아니라, 주변 **Wi-Fi 액세스 포인트 정보를 이용한 정밀 위치 측정**을 수행  
- 이 과정에서 브라우저는 **SSID, BSSID, 신호 세기(RSSI)** 등의 데이터를 수집해 Google 등 서비스 제공자의 데이터베이스와 대조  
- 이러한 데이터베이스는 과거 **워드라이빙(wardriving)** 및 사용자 기기의 지속적 데이터 전송을 통해 구축되어 있음  
- 과거 Google Street View 차량의 **비암호화 데이터 수집 사건** 등, 개인정보 침해 논란이 여러 차례 발생  
- 오늘날 대부분의 기기가 기본적으로 이 시스템을 사용하며, **BSSID를 등록하거나 SSID에 ‘_nomap’을 추가해 제외(opt-out)** 가능  
  
---  
  
### 출석 시스템과 위치 확인  
- Wisconsin대의 알고리듬 수업에서 사용된 **TopHat 플랫폼**은 출석 확인을 위해 학생의 실제 위치를 검증  
  - 단순한 출석 코드 입력 외에, “**[Secure Attendance](https://support.tophat.com/article/Educator-Taking-Attendance#SecureAttendance)**” 기능이 **기기 위치 정보**를 이용해 학생이 강의실 근처에 있는지 판단  
- IP 기반 위치 추정은 오차가 크기 때문에, TopHat은 **브라우저의 Geolocation API**를 사용  
  - 이 API는 사용자에게 명시적 권한을 요청하며, **수 미터 단위의 정확도**로 위치를 파악  
  
### Geolocation API의 작동 방식  
- Geolocation API는 GPS, IP, Wi-Fi 등 다양한 소스를 활용하지만, **노트북 등 비-GPS 기기에서는 Wi-Fi Positioning System(WPS)** 이 주로 사용  
- 브라우저는 `getCurrentPosition()` 호출 시 **주변 Wi-Fi AP의 SSID, BSSID, 신호 세기**를 수집  
  - BSSID는 MAC 주소 기반의 고유 식별자이며, 이를 통해 동일한 SSID를 가진 여러 네트워크를 구분 가능  
- 수집된 정보는 Google 등 위치 서비스 제공자에게 전송되어, **이미 축적된 데이터와 비교해 정확한 위치를 계산**  
  
### Wi-Fi 위치 결정의 역사와 데이터 수집  
- 2000년대 초 **Skyhook Wireless**가 상용화한 **[워드라이빙(wardriving)](https://en.wikipedia.org/wiki/Wardriving)** 기법에서 시작  
  - 차량에 GPS 수신기를 장착해 이동 중 주변 Wi-Fi 네트워크의 위치와 신호 세기를 기록  
- 이후 Google은 **Street View 차량**을 이용해 Wi-Fi 정보를 수집했고, Apple·Microsoft 등도 **사용자 기기에서 자동 수집**하는 방식으로 전환  
- 오늘날 대부분의 스마트폰과 노트북은 **위치 서비스 활성화 시 주변 Wi-Fi 정보를 제조사 서버로 전송**, 이를 통해 다른 기기의 위치 추정에 활용  
  
### 개인정보 및 보안 논란  
- Google이 2010년 Street View 차량으로 **비암호화 HTTP 데이터 약 600GB를 수집**한 사실이 공개되어 논란 발생  
- Microsoft의 위치 API 버그로 **[사용자의 이동 경로를 복원할 수 있었던 사례](https://elie.net/blog/privacy/using-the-microsoft-geolocalization-api-to-retrace-where-a-windows-laptop-has-been)** 도 보고됨  
- [2024년 Maryland대 연구](https://arxiv.org/abs/2405.14975)에서는 Apple 위치 서비스의 취약점을 이용해 **약 20억 개의 BSSID 위치를 추출**할 수 있었음  
  - 이 정보는 개인 추적이나 인구 이동 감시 등 악용 가능성이 있음  
- 주요 기업들은 이후 API 보안을 강화하고, **SSID에 ‘_nomap’을 추가하거나 BSSID를 등록해 데이터베이스에서 제외**할 수 있는 기능을 제공  
  
### 결론 및 공개 데이터베이스  
- 이 기술은 **[Wi-Fi Positioning System(WPS)](https://en.wikipedia.org/wiki/Wi-Fi_positioning_system)** 으로 불리며, 현재도 활발히 사용 중  
- **[wigle.net](https://wigle.net/)** 은 25년간 약 20억 개 네트워크를 수집한 **크라우드소싱 기반 공개 데이터베이스**로, 사용자는 자신의 네트워크가 등록되었는지 확인 가능  
- **[beacondb.net](https://beacondb.net/)** 은 공개 도메인 기반의 무선 위치 데이터베이스로, 상용 서비스와는 다른 독립적 데이터셋을 제공  
- 노트북이 위치를 정확히 파악할 수 있는 이유는, **수많은 사용자가 무의식적으로 제공한 Wi-Fi 데이터 덕분**임  
- 강의 출석 확인조차 이러한 **집단적 데이터 축적의 결과물** 위에서 작동하고 있음

## Comments



### Comment 46664

- Author: neo
- Created: 2025-11-22T06:43:01+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=45985867) 
- 나는 Firefox 설정에서 집 근처의 특정 위치로 **위치를 고정**해둠  
  `user_pref("geo.provider.network.url", 'data:application/json,{"location": {"lat": 45.0, "lng": -122.0}, "accuracy": 128.0}');`  
  이렇게 하면 Wi-Fi 데이터가 외부로 새지 않는다고 믿고 있음
  - MacOS, Linux, 전체 기능 비활성화를 위한 여러 옵션이 있음  
    예를 들어 `geo.provider.use_corelocation`, `geo.provider.use_geoclue`, `geo.enabled` 등을 `false`로 설정해야 함  
    또한 `geo.provider.testing`을 `true`로 해야 할 수도 있음  
    관련 참고 링크: [Bugzilla 이슈](https://bugzilla.mozilla.org/show_bug.cgi?id=1063572), [StackOverflow](https://stackoverflow.com/questions/24932199/how-to-change-firefox-location-setting#comment97076486_40377823), [Security StackExchange](https://security.stackexchange.com/a/268825)
  - 사이트별로 위치 정확도를 조절할 수 있는 **LocationGuard** 플러그인이 있음  
    [Chrome 버전](https://chromewebstore.google.com/detail/location-guard-v3/hhnhplojcganfmfimkeboiipphklcbih), [Firefox 버전](https://addons.mozilla.org/en-US/firefox/addon/location-guard/)

- 예전에 Zoom 경쟁사에서 일할 때, 참가자들이 **같은 방에 있는지 감지**하는 기능을 실험했음  
  각 노트북이 고유한 고주파음을 내고 서로의 신호를 듣는 방식이었음  
  실험실에서는 잘 됐지만 현실에서는 실패했음. 그래도 재미있는 시도였음
  - 사람들은 기본적인 예절을 배워야 함. 헤드폰 없이 화상회의를 하는 건 미친 짓임  
    배경음, 피드백, 스피커 소리 등으로 회의가 엉망이 됨
  - [Microsoft Teams](https://techcommunity.microsoft.com/discussions/microsoftteamspublicpreview/now-in-public-preview-ultrasound-howling-detection-in-teams-meetings/3752205)도 초음파 기반 하울링 감지를 지원함
  - [Google Meet](https://support.google.com/meet/answer/14263133?hl=en-NZ)도 비슷한 기능을 제공함
  - 고주파를 방출하는 건 **귀에 해로울 수 있음**  
    관련 기사: [Science.org](https://www.science.org/content/article/sounds-you-cant-hear-can-still-hurt-your-ears)
  - Cisco Teams/Webex도 초음파로 회의실 내 참석자를 감지하는 기능이 있었음

- 나는 최근에 **where-am-i**라는 작은 CLI를 만들어봤음  
  [GitHub 링크](https://github.com/denysvitali/where-am-i)  
  실내 GPS가 형편없기 때문에 이런 **지오로케이션 기술**이 정말 유용하다고 느낌
  - 실내에서 GPS가 왜 필요한지 궁금함. 대부분의 경우 위치를 알고 있지 않음?
  - Linux에는 `/usr/libexec/geoclue-2.0/demos/where-am-i`라는 데모도 있음
  - 하지만 대형 쇼핑몰, 기차역, 공항 같은 곳에서는 방향 감각을 잃기 쉬움

- 요즘 똑똑한 컴공 학생들은 아마도 **Wi-Fi 환경을 중계하는 프록시 앱**을 안드로이드 폰에 돌리고 있을 것 같음  
  친구들이 브라우저 플러그인이나 Linux 해킹으로 그 데이터를 받아 위치를 속이는 식으로
  - 실제로 브라우저의 **지오로케이션 API**는 단순히 좌표를 반환하므로, 위치 속이기가 꽤 쉬움  
    교실의 좌표만 알면 됨

- 내 PC에는 무선 연결이 없어서 Geolocation API가 항상 실패함  
  아마 수업 출석 확인에서 탈락했을 듯함  
  브라우저를 해킹해서 **가짜 위치를 반환**하도록 만들 수도 있을 것 같음  
  나중에 Firefox 설정으로 해결할 수 있다는 걸 알고 허탈했음

- 관리자 권한이 있다면 **위치 스푸핑**이 가능한지 궁금함  
  예를 들어 친구가 있는 교실의 SSID/BSSID 목록을 복제해서 내가 그곳에 있는 것처럼 속이는 실험을 해보고 싶음
  - [Skylift](https://github.com/adamhrv/skylift)는 OS 대신 **ESP8266/ESP32 하드웨어**로 필요한 비콘을 송출함
  - 나도 이걸 우연히 경험했음. Wi-Fi 공유기를 새 집으로 옮긴 직후, 폰이 여전히 예전 집 위치로 인식했음  
    30초쯤 지나서야 제대로 수정되었음

- 이건 예전 대학 시절의 **클리커(clicker)** 시스템의 현대판 같음  
  친구에게 맡겨 출석을 대신 찍게 하는 ‘패치 불가능한 전략’이 여전히 통함

- 나는 Symbian을 오래 썼는데, 이런 **Wi-Fi 스캐닝 관행**이 있다는 걸 최근에야 알게 됨  
  Google Street View 차량이 내 라우터를 스캔하는 건 괜찮지만, 내 폰이 몰래 나를 추적하는 건 불쾌함  
  GrapheneOS 같은 Android 포크는 이런 걸 막아줄 거라 기대함
  - 적어도 사용자가 **검증 가능한 제어권**을 가질 수 있음

- 오스트리아에서 공부했을 때는 대학이 학생을 거의 **자율에 맡겼음**  
  출석 강제는 이해가 안 됨. 시험만 통과하면 되는 거 아닌가 생각함  
  실험실 수업은 예외지만, 참여 안 하면 바로 드러남
  - 우리 대학도 출석을 안 챙겼지만, 어떤 학교들은 이유가 있음  
    1. 학생들이 자기 통제력이 부족해서 출석이 동기부여가 됨  
    2. 토론 중심 수업에서는 참여가 필수임  
    3. 외국인 학생 비자 요건 때문에 출석 기록이 필요함  
    4. 불만 제기 시 공정한 판단을 위해 출석 데이터가 필요함  
    결국 **학교의 수준과 학생 자율성**에 따라 다름
  - 영국에서 물리학을 공부했을 때도 출석은 자유로웠음  
    대신 실험 프로젝트는 팀 단위로 진행돼서, 참여 안 하면 결과를 얻을 수 없었음
  - 나는 대학에서 여전히 **수동 출석 체크**를 함  
    장학금, 출석-성적 상관 그래프 등 데이터가 필요하기 때문임  
    하지만 기본적으로 학생은 성인이므로, 학습은 본인 책임이라 생각함
  - 2004년에 미국에서 졸업했는데, 그때도 강의 출석은 의무가 아니었음
  - 요즘 미국 대학생들은 성숙이 늦어져서, 대학이 **보호자 역할**을 해야 하는 상황임

- 이 기술은 이미 **20년 넘게 널리 사용**되고 있음  
  GPS는 정확하지만 느리고, 실내나 도시 환경에서는 불안정함  
  반면 Wi-Fi 데이터는 풍부하고, **1초 이내에 정확한 위치**를 얻을 수 있음
