1 điểm bởi GN⁺ 3 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Loupe là ứng dụng iOS·iPadOS đọc các giá trị thực từ API iOS công khai và hiển thị chúng ở dạng thô, cho phép kiểm tra trực tiếp những giá trị mà thiết bị để lộ thông qua các API mà ứng dụng bên thứ ba có thể gọi
  • Ngay cả khi không có tên, email hay vị trí, nhiều giá trị đọc khác nhau khi kết hợp lại vẫn có thể tạo thành fingerprint để nhận diện lại người dùng trên nhiều ứng dụng và website
  • Các giá trị đọc được nhóm thành ba cấp theo chi phí truy cập
    • Passive: locale, múi giờ, màn hình, pin... mà mọi ứng dụng đều có thể thấy mà không cần hiện prompt
    • Needs Permission: các giá trị kích hoạt prompt iOS như contacts, photos, location, calendars
    • Advanced: sử dụng side channel của API công khai như URL-scheme probing qua canOpenURL, hay Keychain persistence vẫn còn sau khi gỡ và cài lại ứng dụng
  • Các giá trị Loupe đọc được sẽ không rời khỏi thiết bị trừ khi được xuất ra một cách rõ ràng; chúng được hiển thị dưới dạng giá trị thô, không tổng hợp hay băm, và không bị upload, đồng bộ hoặc chia sẻ
  • Việc build yêu cầu Xcode 26 trở lên; mở code/Loupe.xcodeproj, điền DEVELOPMENT_TEAM và bundle identifier vào Signing.local.xcconfig, sau đó build và chạy trên thiết bị hoặc simulator
  • Ứng dụng dùng buildable folders của Xcode để các file Swift mới tự động được phản ánh mà không cần sửa file dự án; cũng có thể build cho macOS, nhưng phiên bản Mac vẫn cần thêm một số công việc trước khi đạt trạng thái polished
  • Loupe là mã nguồn mở miễn phí; source code được phát hành theo MIT License, nhưng tên Loupe, logo, biểu tượng ứng dụng, hình ảnh, icon và các file nguồn thiết kế không thuộc phạm vi áp dụng của MIT License

1 bình luận

 
Ý kiến trên Hacker News
  • Không hiểu vì sao quyền truy cập Internet của ứng dụng lại không bị chặn mặc định rồi mới cho phép theo lựa chọn của người dùng
    Nếu ngăn rò rỉ dữ liệu thì có thể giảm được phần lớn kiểu thiệt hại này, mà ngay từ đầu nhiều ứng dụng cũng chẳng cần truy cập Internet
    Tôi không hiểu tại sao phải tạo tài khoản GE chỉ để đọc huyết áp, và ít nhất với cái đó thì còn biết là họ đang khai thác mình, còn chuyện này rõ ràng là lạm dụng

    • 99% ứng dụng sẽ yêu cầu quyền truy cập Internet, và nếu không cho thì chúng sẽ không hoạt động, khiến người dùng tê liệt cảm giác và cứ thế cho phép
      Phần lớn ứng dụng cũng có lý do chính đáng để cần Internet, nên tôi không nghĩ một quyền có/không đơn giản sẽ mang lại nhiều hiệu quả
    • Thay vào đó, nên tích hợp sẵn vào hệ điều hành một công cụ kiểu Little Snitch
      Sẽ rất tốt nếu nó hiển thị nhật ký chi tiết của mọi yêu cầu mạng, tên miền đích và dữ liệu được gửi đi
    • iPhone mua tại Trung Quốc đại lục, tức các máy có mã model kết thúc bằng CH/A, có cung cấp cài đặt quyền truy cập Internet theo từng ứng dụng
      Các tùy chọn là tắt, chỉ WLAN, hoặc WLAN và di động [0]
      [0] https://old.reddit.com/r/ios/comments/aib10i/in_china_ios_al...
    • Trên AOSP, mạng là một quyền chung của ứng dụng, nên ít nhất trên Lineage thì có thể tắt mạng cho bất kỳ ứng dụng nào, kể cả các ứng dụng như Google Play services
      Tôi chưa dùng GrapheneOS nên không rõ, nhưng bản thân Android hỗ trợ điều này đầy đủ, và tôi không hiểu vì sao đa số nhà sản xuất điện thoại lại gỡ quyền này khỏi ROM của họ
    • GrapheneOS cho phép hạn chế truy cập Internet của bất kỳ ứng dụng nào ngay tại thời điểm cài đặt
      Dù vậy, tôi đồng ý là tính năng này nên có ở mọi nơi
  • Đính chính một số bình luận ở đây: ứng dụng iOS không thể liệt kê toàn bộ các ứng dụng đã cài
    Chỉ những ứng dụng/scheme cụ thể mà nó muốn kiểm tra đã cài hay muốn mở mới có thể được khai báo trong LSApplicationQueriesSchemes để kiểm tra
    Nếu nhét vào một danh sách dài các ứng dụng không liên quan, ứng dụng sẽ bị từ chối trong quá trình xét duyệt của Apple
    Apple thêm giới hạn này vì danh sách ứng dụng đã cài có thể bị dùng cho fingerprinting và profiling xâm phạm quyền riêng tư

    • Nhưng chẳng phải một ứng dụng vẫn có thể yêu cầu kiểm tra sự tồn tại của tối đa 50 ứng dụng sao?
      Và các data broker hay bên tổng hợp dữ liệu có thể mua loại dữ liệu đó từ hàng nghìn ứng dụng, gộp lại rồi bán tiếp
    • Có lẽ không cần một danh sách lớn
      Chỉ một danh sách nhỏ nhưng có khả năng phân biệt rất cao cũng đủ cung cấp entropy bổ sung để nhận dạng duy nhất một cá nhân khi kết hợp với dữ liệu rò rỉ khác
    • Chỉ riêng việc một ứng dụng có thể biết những ứng dụng nào khác được cài trên điện thoại của tôi đã thấy đáng sợ rồi
      Xem danh sách đó ở đâu?
    • Trước khi Apple chặn, Facebook đã lạm dụng việc này trên quy mô lớn
  • Thông tin “iPhone last setup or erased on ...” thực sự rất tệ
    Người dùng thực tế có thể làm gì với thứ này? Có vẻ như hệ điều hành nên làm mờ giá trị này bằng cách nào đó

    • Nhìn chung, có vẻ iPhone không được thiết kế với mục tiêu ngăn fingerprinting từ các ứng dụng đã cài
      Biện pháp bảo vệ duy nhất là tránh cài ứng dụng và dùng trình duyệt web khi có thể
    • Có thể tôi quá chậm hiểu, nhưng tôi không biết vì sao hệ điều hành lại cung cấp loại thông tin này cho ứng dụng
    • Nếu mô hình đe dọa là theo dõi người dùng bằng cách đối chiếu hành vi qua nhiều ứng dụng, thì việc làm mờ giá trị sẽ không lộ ra khi chỉ nhìn từ một ứng dụng đơn lẻ
  • Ngày tạo volume khá nghiêm trọng
    Tôi không thấy lý do gì để giá trị này và Pasteboard changeCount phải chi tiết đến vậy
    Vụ rò rỉ “Installed Apps Probe” cũng gây sốc, nhưng dù sao vẫn còn tốt hơn tình trạng hiện tại của Android

    • Graphene đi xa hơn rất nhiều ở khía cạnh này
    • Bộ đếm Pasteboard tồn tại để giúp ứng dụng không hỏi lại cùng một mục trong bộ nhớ đệm
      Và cũng chẳng có gì ngăn việc đặt lại nó mỗi ngày
  • Tuyệt vời
    Những thứ như thế này khiến người ta thực sự nhận ra các công cụ giúp trực quan hóa vấn đề là cần thiết đến mức nào
    Tôi đã làm một thứ tương tự cho web: https://neberej.github.io/exposedbydefault/
    Github: https://github.com/neberej/exposedbydefault

  • Nếu không có iPhone hoặc không muốn cài ứng dụng, bạn có thể xem demo ở đây
    Đây là các phiên bản trên nền tảng khác của cùng một video
    https://odysee.com/@techlore:3/permission-not-required-the-o...
    https://www.youtube.com/watch?v=_n_SpEWtqog
    https://inv.nadeko.net/watch?v=_n_SpEWtqog
    https://techlore.tv/w/d7dh4P7y4dVngNoL7u7s3B

  • Không hiểu vì sao một ứng dụng bất kỳ không được cấp quyền đặc biệt lại có thể truy cập nhiều thông tin đến vậy, và vì sao Apple không thông báo cho người dùng về những thông tin quan trọng này
    Apple không thể làm một danh sách checkbox dài để cho phép/chặn theo từng danh mục và từng ứng dụng sao?
    Ví dụ, tôi không biết rằng một ứng dụng không được cấp bất kỳ quyền nào vẫn có thể ngay lập tức có danh sách mọi ứng dụng cài trên thiết bị, rồi chỉ từ sự hiện diện của Tinder/Bumble/Hinge mà suy ra bạn đang hẹn hò, thậm chí đang ngoại tình
    Chỉ riêng điều này thôi cũng có vẻ đủ để một kẻ vô đạo đức kiếm tiền bằng kiểu dịch vụ “kiểm tra xem đối tác có ngoại tình không” với giá $10 cho một câu trả lời mang tính xác suất

    • Ý tưởng ngớ ngẩn
      Làm cách nào bạn định cài một ứng dụng kiểu “kiểm tra xem đối tác có ngoại tình không” lên điện thoại của người kia?
    • Làm sao một ứng dụng như vậy có thể được cài lên thiết bị của nạn nhân để phát hiện các ứng dụng khác?
  • Đã có thứ tương tự trên điện thoại Android chưa?

  • Hôm nay tôi просто bỏ cuộc với chuyện cố không chia sẻ dữ liệu cá nhân
    Thay vào đó, tôi chặn toàn bộ quảng cáo, và không dùng các ứng dụng/trang web không thể dùng nếu không có chặn quảng cáo
    Họ có thể có rất nhiều thông tin về tôi, kể cả chi tiết như vị kem tôi thích, nhưng vì tôi chẳng bao giờ nhìn thấy quảng cáo nên cũng không bận tâm lắm
    Tất nhiên tốt hơn là không ai có loại thông tin này, nhưng trong xã hội khủng khiếp như hiện nay thì đành phải thực dụng

  • Vì vậy tôi tránh cài ứng dụng và cũng không cài quá nhiều

    • Có lẽ tốt hơn là nên có một máy tính bỏ túi thực sự thuộc sở hữu của mình?