정밀한 위치 추적을 가능하게 하는 Wi-Fi 위치 결정 시스템
(amoses.dev)- 브라우저의 위치 권한 요청은 단순한 IP 기반 위치 추정이 아니라, 주변 Wi-Fi 액세스 포인트 정보를 이용한 정밀 위치 측정을 수행
- 이 과정에서 브라우저는 SSID, BSSID, 신호 세기(RSSI) 등의 데이터를 수집해 Google 등 서비스 제공자의 데이터베이스와 대조
- 이러한 데이터베이스는 과거 워드라이빙(wardriving) 및 사용자 기기의 지속적 데이터 전송을 통해 구축되어 있음
- 과거 Google Street View 차량의 비암호화 데이터 수집 사건 등, 개인정보 침해 논란이 여러 차례 발생
- 오늘날 대부분의 기기가 기본적으로 이 시스템을 사용하며, BSSID를 등록하거나 SSID에 ‘_nomap’을 추가해 제외(opt-out) 가능
출석 시스템과 위치 확인
- Wisconsin대의 알고리듬 수업에서 사용된 TopHat 플랫폼은 출석 확인을 위해 학생의 실제 위치를 검증
- 단순한 출석 코드 입력 외에, “Secure Attendance” 기능이 기기 위치 정보를 이용해 학생이 강의실 근처에 있는지 판단
- 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) 기법에서 시작
- 차량에 GPS 수신기를 장착해 이동 중 주변 Wi-Fi 네트워크의 위치와 신호 세기를 기록
- 이후 Google은 Street View 차량을 이용해 Wi-Fi 정보를 수집했고, Apple·Microsoft 등도 사용자 기기에서 자동 수집하는 방식으로 전환
- 오늘날 대부분의 스마트폰과 노트북은 위치 서비스 활성화 시 주변 Wi-Fi 정보를 제조사 서버로 전송, 이를 통해 다른 기기의 위치 추정에 활용
개인정보 및 보안 논란
- Google이 2010년 Street View 차량으로 비암호화 HTTP 데이터 약 600GB를 수집한 사실이 공개되어 논란 발생
- Microsoft의 위치 API 버그로 사용자의 이동 경로를 복원할 수 있었던 사례 도 보고됨
-
2024년 Maryland대 연구에서는 Apple 위치 서비스의 취약점을 이용해 약 20억 개의 BSSID 위치를 추출할 수 있었음
- 이 정보는 개인 추적이나 인구 이동 감시 등 악용 가능성이 있음
- 주요 기업들은 이후 API 보안을 강화하고, SSID에 ‘_nomap’을 추가하거나 BSSID를 등록해 데이터베이스에서 제외할 수 있는 기능을 제공
결론 및 공개 데이터베이스
- 이 기술은 Wi-Fi Positioning System(WPS) 으로 불리며, 현재도 활발히 사용 중
- wigle.net 은 25년간 약 20억 개 네트워크를 수집한 크라우드소싱 기반 공개 데이터베이스로, 사용자는 자신의 네트워크가 등록되었는지 확인 가능
- beacondb.net 은 공개 도메인 기반의 무선 위치 데이터베이스로, 상용 서비스와는 다른 독립적 데이터셋을 제공
- 노트북이 위치를 정확히 파악할 수 있는 이유는, 수많은 사용자가 무의식적으로 제공한 Wi-Fi 데이터 덕분임
- 강의 출석 확인조차 이러한 집단적 데이터 축적의 결과물 위에서 작동하고 있음
Hacker News 의견
-
나는 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 이슈, StackOverflow, Security StackExchange - 사이트별로 위치 정확도를 조절할 수 있는 LocationGuard 플러그인이 있음
Chrome 버전, Firefox 버전
- MacOS, Linux, 전체 기능 비활성화를 위한 여러 옵션이 있음
-
예전에 Zoom 경쟁사에서 일할 때, 참가자들이 같은 방에 있는지 감지하는 기능을 실험했음
각 노트북이 고유한 고주파음을 내고 서로의 신호를 듣는 방식이었음
실험실에서는 잘 됐지만 현실에서는 실패했음. 그래도 재미있는 시도였음- 사람들은 기본적인 예절을 배워야 함. 헤드폰 없이 화상회의를 하는 건 미친 짓임
배경음, 피드백, 스피커 소리 등으로 회의가 엉망이 됨 - Microsoft Teams도 초음파 기반 하울링 감지를 지원함
- Google Meet도 비슷한 기능을 제공함
- 고주파를 방출하는 건 귀에 해로울 수 있음
관련 기사: Science.org - Cisco Teams/Webex도 초음파로 회의실 내 참석자를 감지하는 기능이 있었음
- 사람들은 기본적인 예절을 배워야 함. 헤드폰 없이 화상회의를 하는 건 미친 짓임
-
나는 최근에 where-am-i라는 작은 CLI를 만들어봤음
GitHub 링크
실내 GPS가 형편없기 때문에 이런 지오로케이션 기술이 정말 유용하다고 느낌- 실내에서 GPS가 왜 필요한지 궁금함. 대부분의 경우 위치를 알고 있지 않음?
- Linux에는
/usr/libexec/geoclue-2.0/demos/where-am-i라는 데모도 있음 - 하지만 대형 쇼핑몰, 기차역, 공항 같은 곳에서는 방향 감각을 잃기 쉬움
-
요즘 똑똑한 컴공 학생들은 아마도 Wi-Fi 환경을 중계하는 프록시 앱을 안드로이드 폰에 돌리고 있을 것 같음
친구들이 브라우저 플러그인이나 Linux 해킹으로 그 데이터를 받아 위치를 속이는 식으로- 실제로 브라우저의 지오로케이션 API는 단순히 좌표를 반환하므로, 위치 속이기가 꽤 쉬움
교실의 좌표만 알면 됨
- 실제로 브라우저의 지오로케이션 API는 단순히 좌표를 반환하므로, 위치 속이기가 꽤 쉬움
-
내 PC에는 무선 연결이 없어서 Geolocation API가 항상 실패함
아마 수업 출석 확인에서 탈락했을 듯함
브라우저를 해킹해서 가짜 위치를 반환하도록 만들 수도 있을 것 같음
나중에 Firefox 설정으로 해결할 수 있다는 걸 알고 허탈했음 -
관리자 권한이 있다면 위치 스푸핑이 가능한지 궁금함
예를 들어 친구가 있는 교실의 SSID/BSSID 목록을 복제해서 내가 그곳에 있는 것처럼 속이는 실험을 해보고 싶음- Skylift는 OS 대신 ESP8266/ESP32 하드웨어로 필요한 비콘을 송출함
- 나도 이걸 우연히 경험했음. Wi-Fi 공유기를 새 집으로 옮긴 직후, 폰이 여전히 예전 집 위치로 인식했음
30초쯤 지나서야 제대로 수정되었음
-
이건 예전 대학 시절의 클리커(clicker) 시스템의 현대판 같음
친구에게 맡겨 출석을 대신 찍게 하는 ‘패치 불가능한 전략’이 여전히 통함 -
나는 Symbian을 오래 썼는데, 이런 Wi-Fi 스캐닝 관행이 있다는 걸 최근에야 알게 됨
Google Street View 차량이 내 라우터를 스캔하는 건 괜찮지만, 내 폰이 몰래 나를 추적하는 건 불쾌함
GrapheneOS 같은 Android 포크는 이런 걸 막아줄 거라 기대함- 적어도 사용자가 검증 가능한 제어권을 가질 수 있음
-
오스트리아에서 공부했을 때는 대학이 학생을 거의 자율에 맡겼음
출석 강제는 이해가 안 됨. 시험만 통과하면 되는 거 아닌가 생각함
실험실 수업은 예외지만, 참여 안 하면 바로 드러남- 우리 대학도 출석을 안 챙겼지만, 어떤 학교들은 이유가 있음
- 학생들이 자기 통제력이 부족해서 출석이 동기부여가 됨
- 토론 중심 수업에서는 참여가 필수임
- 외국인 학생 비자 요건 때문에 출석 기록이 필요함
- 불만 제기 시 공정한 판단을 위해 출석 데이터가 필요함
결국 학교의 수준과 학생 자율성에 따라 다름
- 영국에서 물리학을 공부했을 때도 출석은 자유로웠음
대신 실험 프로젝트는 팀 단위로 진행돼서, 참여 안 하면 결과를 얻을 수 없었음 - 나는 대학에서 여전히 수동 출석 체크를 함
장학금, 출석-성적 상관 그래프 등 데이터가 필요하기 때문임
하지만 기본적으로 학생은 성인이므로, 학습은 본인 책임이라 생각함 - 2004년에 미국에서 졸업했는데, 그때도 강의 출석은 의무가 아니었음
- 요즘 미국 대학생들은 성숙이 늦어져서, 대학이 보호자 역할을 해야 하는 상황임
- 우리 대학도 출석을 안 챙겼지만, 어떤 학교들은 이유가 있음
-
이 기술은 이미 20년 넘게 널리 사용되고 있음
GPS는 정확하지만 느리고, 실내나 도시 환경에서는 불안정함
반면 Wi-Fi 데이터는 풍부하고, 1초 이내에 정확한 위치를 얻을 수 있음