# Loupe - 네이티브 iOS 앱이 볼 수 있는 기기 핑거프린팅 표면을 보여주는 iOS 앱

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=30687](https://news.hada.io/topic?id=30687)
- GeekNews Markdown: [https://news.hada.io/topic/30687.md](https://news.hada.io/topic/30687.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-06-21T20:33:39+09:00
- Updated: 2026-06-21T20:33:39+09:00
- Original source: [github.com/mysk-research](https://github.com/mysk-research/loupe)
- Points: 1
- Comments: 1

## Topic Body

- **Loupe**는 공개 iOS API에서 실제 값을 읽어 원시 형태로 보여주는 iOS·iPadOS 앱이며, 서드파티 앱이 호출할 수 있는 API를 통해 기기가 노출하는 값을 직접 확인하게 함
- 이름, 이메일, 위치 없이도 여러 읽기 값이 함께 모여 앱과 웹사이트를 가로질러 사용자를 다시 인식하는 **핑거프린트**를 형성할 수 있음
- 읽기 값은 접근 비용에 따라 세 단계로 묶임
  - **Passive**: 프롬프트 없이 모든 앱에 보이는 locale, time zone, screen, battery 등
  - **Needs Permission**: contacts, photos, location, calendars처럼 iOS 프롬프트를 트리거하는 값
  - **Advanced**: `canOpenURL`을 통한 URL-scheme probing, 재설치 후에도 남는 Keychain persistence 같은 공개 API의 사이드채널 사용
- Loupe가 읽는 값은 명시적으로 내보내지 않는 한 기기를 떠나지 않으며, 집계나 해싱 없이 원시 값으로 표시되고 업로드·동기화·공유되지 않음
- 빌드에는 **Xcode 26 이상**이 필요하며, `code/Loupe.xcodeproj`를 열고 `Signing.local.xcconfig`에 `DEVELOPMENT_TEAM`과 bundle identifier를 채운 뒤 기기나 시뮬레이터에서 빌드·실행함
- Xcode의 buildable folders를 사용해 새 Swift 파일이 프로젝트 파일 수정 없이 자동으로 반영되며, macOS용으로도 빌드되지만 Mac 버전은 polished 상태가 되기 전 몇 가지 작업이 더 필요함
- Loupe는 무료 오픈소스이며, **source code**는 MIT License로 배포되지만 Loupe 이름·로고·앱 아이콘·이미지·아이콘·디자인 소스 파일은 MIT License 적용 대상이 아님

## Comments



### Comment 60070

- Author: neo
- Created: 2026-06-21T20:33:40+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48608645) 
- 앱의 **인터넷 접근**이 왜 기본 차단 후 선택 허용이 아닌지 이해가 안 감  
  데이터 유출을 막으면 이런 피해 대부분을 줄일 수 있고, 애초에 많은 앱은 인터넷에 접속할 필요가 없음  
  혈압을 읽으려고 왜 GE 계정을 만들어야 하는지 모르겠고, 적어도 그건 나를 이용한다는 걸 알 수라도 있는데, 이건 명백히 남용임
  - 앱의 99%가 인터넷 접근을 요구하고, 허용하지 않으면 동작하지 않게 만들어 사용자가 무감각하게 허용하게 될 것임  
    대부분의 앱에는 인터넷 접근이 필요한 정당한 이유도 있어서, 단순한 **예/아니오 권한**만으로는 큰 효과가 없다고 봄
  - 차라리 **Little Snitch** 같은 도구가 운영체제에 내장되어야 함  
    모든 네트워크 요청, 대상 도메인, 전송 데이터에 대한 상세 로그를 보여주면 좋겠음
  - 중국 본토에서 구매한 iPhone, 즉 모델 번호가 CH/A로 끝나는 기기는 앱별 **인터넷 접근 권한** 설정을 제공함  
    옵션은 끄기, WLAN만, WLAN 및 셀룰러 세 가지임 [0]  
    [0] [https://old.reddit.com/r/ios/comments/aib10i/in_china_ios_al...](<https://old.reddit.com/r/ios/comments/aib10i/in_china_ios_allows_you_to_turn_off_mobile_data/>)
  - AOSP에서는 네트워크가 앱의 일반 권한이라서, 적어도 Lineage에서는 Google Play services 같은 앱까지 포함해 어떤 앱이든 네트워크를 끌 수 있음  
    GrapheneOS는 써보지 않아 모르겠지만, Android 자체는 이를 완전히 지원하는데 대부분의 휴대폰 제조사가 왜 자기 ROM에서 이 권한을 제거하는지 모르겠음
  - **GrapheneOS**는 앱 설치 시점에 어떤 앱이든 인터넷 접근을 제한할 수 있음  
    다만 이런 기능은 모든 곳에 있어야 한다는 데 동의함

- 여기 일부 댓글에 대한 정정: iOS 앱은 설치된 모든 앱을 나열할 수 없음  
  설치 여부를 확인하거나 열려고 하는 특정 앱/스킴만 **LSApplicationQueriesSchemes**로 지정해 확인할 수 있음  
  서로 관련 없는 앱을 긴 목록으로 넣으면 Apple의 앱 심사에서 거절됨  
  Apple은 설치된 앱 목록이 지문 추적과 사생활 침해적 프로파일링에 쓰일 수 있어서 이런 제한을 추가했음
  - 그래도 앱 하나가 최대 **50개 앱**의 존재 여부를 요청할 수 있는 것 아닌가?  
    그리고 데이터 브로커나 집계 업체는 수천 개 앱에서 그런 데이터를 사들여 합친 뒤 다시 팔 수 있음
  - 큰 목록일 필요는 없을 것 같음  
    아주 식별력이 높은 작은 목록만 있어도, 유출된 다른 데이터와 결합해 개인을 고유하게 식별할 만큼의 **추가 엔트로피**를 제공할 수 있음
  - 앱이 내 휴대폰에 설치된 다른 앱의 존재를 알 수 있다는 사실 자체가 무섭다  
    그 목록을 어디서 볼 수 있나?
  - Apple이 막기 전에는 Facebook이 이걸 **대규모로 악용**했음

- “iPhone last setup or erased on ...” 정보는 정말 악질적임  
  사용자가 이걸 두고 실제로 뭘 할 수 있나? 운영체제가 어떻게든 이 값을 흐리게 만들어야 할 것 같음
  - 전반적으로 iPhone은 설치된 앱으로부터의 **지문 추적 방지**를 고려해 설계되지 않은 것 같음  
    유일한 보호책은 앱 설치를 피하고 가능하면 웹브라우저를 쓰는 것임
  - 내가 너무 둔한 걸 수도 있지만, 왜 운영체제가 이런 정보를 앱에 제공하는지 모르겠음
  - 위협 모델이 여러 앱을 넘나들며 사용자의 행동을 상관분석해 추적하는 것이라면, 앱 하나만 봐서는 값 흐리기가 드러나지 않을 것임

- **볼륨 생성 날짜**는 꽤 심각함  
  이 값과 Pasteboard changeCount가 그렇게 세밀해야 할 이유가 보이지 않음  
  “Installed Apps Probe” 유출도 놀라웠지만, 그래도 Android의 현재 상태보다는 나음
  - Graphene은 이 부분에서 훨씬 앞서 있음
  - **Pasteboard 카운터**는 앱이 버퍼의 같은 항목에 대해 다시 묻지 않도록 돕기 위해 존재함  
    그리고 매일 초기화하지 못하게 막는 것도 없음

- 훌륭함  
  이런 걸 보니 시각적으로 인지하게 해주는 도구가 얼마나 필요한지 실감함  
  웹용으로 비슷한 걸 만들었음: [https://neberej.github.io/exposedbydefault/](<https://neberej.github.io/exposedbydefault/>)  
  Github: [https://github.com/neberej/exposedbydefault](<https://github.com/neberej/exposedbydefault>)

- iPhone이 없거나 앱을 설치하고 싶지 않은 사람은 여기서 데모를 볼 수 있음  
  같은 영상의 다른 플랫폼 버전임  
  [https://odysee.com/@techlore:3/permission-not-required-the-o...](<https://odysee.com/@techlore:3/permission-not-required-the-open-source:3>)  
  [https://www.youtube.com/watch?v=_n_SpEWtqog](<https://www.youtube.com/watch?v=_n_SpEWtqog>)  
  [https://inv.nadeko.net/watch?v=_n_SpEWtqog](<https://inv.nadeko.net/watch?v=_n_SpEWtqog>)  
  [https://techlore.tv/w/d7dh4P7y4dVngNoL7u7s3B](<https://techlore.tv/w/d7dh4P7y4dVngNoL7u7s3B>)

- 특별 권한을 주지 않은 임의의 앱이 왜 이렇게 많은 정보에 접근할 수 있고, Apple은 왜 이 중요한 정보를 사용자에게 알려주지 않는지 모르겠음  
  Apple이 카테고리별·앱별로 허용/차단할 수 있는 **긴 체크박스 목록**을 만들 수는 없나?  
  예를 들어 아무 권한도 주지 않은 앱이 기기에 설치된 모든 앱 목록을 즉시 갖고, Tinder/Bumble/Hinge 존재만으로 데이트 중인지, 심지어 바람을 피우는지까지 추론할 수 있다는 걸 몰랐음  
  이것만으로도 비양심적 행위자가 “파트너가 바람피우는지 확인” 같은 서비스로 $10을 받고 확률적 답을 파는 식의 수익화가 가능해 보임
  - 멍청한 아이디어임  
    그런 “파트너가 바람피우는지 확인” 앱을 대체 어떻게 상대방 휴대폰에 설치하게 만들 건가?
  - 그런 앱이 피해자의 기기에 어떻게 설치되어 다른 앱들을 감지할 수 있나?

- Android 휴대폰에도 비슷한 것이 이미 있나?

- 오늘은 그냥 개인정보를 공유하지 않으려는 시도를 포기했음  
  대신 모든 광고를 차단하고, **광고 차단 없이는 쓸 수 없는 앱/웹사이트**는 쓰지 않음  
  내가 좋아하는 아이스크림 맛 같은 세부 정보까지 그들이 많이 갖고 있을 수 있지만, 광고를 전혀 보지 않으니 크게 신경 쓰지 않음  
  물론 아무도 이런 정보를 갖지 않는 편이 좋겠지만, 이런 끔찍한 사회에서는 실용적으로 굴 수밖에 없음

- 그래서 앱 설치를 피하고 많이 깔아두지 않음
  - 내가 소유하는 **주머니 속 컴퓨터**를 갖는 편이 더 낫지 않을까?
