2 điểm bởi GN⁺ 2025-01-28 | 1 bình luận | Chia sẻ qua WhatsApp
  • OpenHaystack là một framework dùng mạng Find My của Apple để theo dõi các thiết bị Bluetooth cá nhân, cho phép tạo thẻ theo dõi riêng bằng Mac và BBC micro:bit hoặc thiết bị hỗ trợ Bluetooth
  • Khi iPhone ở gần phát hiện quảng bá BLE của phụ kiện OpenHaystack, nó sẽ mã hóa vị trí và tải lên máy chủ Apple, còn OpenHaystack sẽ tải các báo cáo vị trí đó xuống, giải mã và hiển thị trên bản đồ
  • Dự án này là kết quả của phân tích bảo mật và đảo ngược giao thức mạng Find My từ Secure Mobile Networking Lab của TU Darmstadt, và lỗ hổng truy cập dữ liệu vị trí CVE-2020-9986 đã được Apple vá
  • Ứng dụng macOS sử dụng plugin Apple Mail để nhận báo cáo vị trí, và trong quá trình cài đặt cần tạm thời tắt Gatekeeper cũng như phải mở Mail khi sử dụng
  • Đây là phần mềm thử nghiệm nên mã nguồn chưa được kiểm thử đầy đủ và còn chưa hoàn thiện; các phụ kiện dựa trên firmware được cung cấp sẽ phát một khóa công khai cố định nên cũng có thể bị các thiết bị khác ở gần theo dõi

OpenHaystack làm gì

  • OpenHaystack là một framework để theo dõi thiết bị Bluetooth cá nhân thông qua mạng Find My của Apple
  • Người dùng có thể tự tạo thẻ theo dõi để gắn vào các vật như móc khóa, ba lô, hoặc tích hợp vào thiết bị hỗ trợ Bluetooth như laptop
  • Những gì cần có là một máy Mac và BBC micro:bit hoặc thiết bị khác hỗ trợ Bluetooth
  • Ngay cả khi không có kết nối di động, iPhone ở gần vẫn có thể phát hiện phụ kiện và tải vị trí của nó lên máy chủ Apple khi có kết nối mạng

Nền tảng nghiên cứu và phân tích bảo mật

  • OpenHaystack xuất phát từ kết quả đảo ngược giao thức và phân tích bảo mật của Find My network hay tính năng offline finding của Apple
  • Secure Mobile Networking Lab thuộc TU Darmstadt đã bắt đầu phân tích từ sau khi Apple công bố offline finding vào tháng 6 năm 2019
  • Hệ thống này kết hợp các thành phần sau
    • Quảng bá Bluetooth

      • mật mã khóa công khai
      • cơ sở dữ liệu trung tâm cho các báo cáo vị trí đã mã hóa
      • trong quá trình phân tích, hai lỗ hổng đã được phát hiện
      • lỗ hổng nghiêm trọng nhất cho phép ứng dụng độc hại truy cập dữ liệu vị trí
      • lỗ hổng đó đã được Apple vá và được định danh là CVE-2020-9986
      • phân tích liên quan về bảo mật và quyền riêng tư được trình bày trong bài báo PoPETs 2021 Who Can Find My Devices? Security and Privacy of Apple's Crowd-Sourced Bluetooth Location Tracking System

Giới hạn vì là phần mềm thử nghiệm

  • OpenHaystack là phần mềm thử nghiệm, mã nguồn chưa được kiểm thử và còn chưa hoàn chỉnh
  • Các phụ kiện OpenHaystack dùng firmware được cung cấp sẽ phát một khóa công khai cố định
    • vì vậy chúng cũng có thể bị các thiết bị khác ở gần theo dõi
    • hành vi này có thể sẽ thay đổi trong các bản phát hành sau
  • OpenHaystack không phải là dự án liên kết với Apple Inc. hay được Apple bảo chứng

Thành phần và luồng sử dụng

  • OpenHaystack gồm hai thành phần
    • Ứng dụng macOS: hiển thị vị trí được báo cáo gần nhất của thiết bị Bluetooth cá nhân
    • Ảnh firmware: khiến thiết bị Bluetooth phát beacon để iPhone có thể phát hiện
  • Yêu cầu hệ thống là macOS 11 Big Sur
  • Khi tạo phụ kiện mới, người dùng nhập tên và có thể chọn biểu tượng cùng màu sắc
    • ứng dụng sẽ tạo một cặp khóa mới để dùng cho việc mã hóa và giải mã báo cáo vị trí
    • khóa riêng được lưu trong Keychain của Mac
  • Việc triển khai thiết bị được hỗ trợ bằng cách kết nối thiết bị được hỗ trợ với Mac qua USB rồi dùng nút Deploy trong ứng dụng
    • thay vì triển khai tích hợp, cũng có thể sao chép khóa công khai dùng trong quảng bá để triển khai thủ công
  • Có thể mất tới 30 phút trước khi báo cáo vị trí đầu tiên xuất hiện trên bản đồ
    • bản đồ hiển thị vị trí mới nhất của tất cả mục
    • nhấp vào từng mục có thể xem thời điểm nhận cập nhật cuối cùng
    • có thể làm mới báo cáo vị trí bằng nút reload

Plugin Mail và cách cài đặt

  • Ứng dụng OpenHaystack yêu cầu plugin tùy chỉnh cho Apple Mail để tải báo cáo vị trí từ máy chủ Apple
  • Plugin này hoạt động bằng cách kế thừa quyền của Apple Mail, vốn cần thiết để sử dụng API không công khai
  • Trong quá trình cài đặt cần tạm thời vô hiệu hóa Gatekeeper
    • tắt Gatekeeper bằng sudo spctl --master-disable
    • vào Preferences → General → Manage Plug-Ins của Mail và bật OpenHaystackMail.mailbundle
    • sau đó bật lại Gatekeeper bằng sudo spctl --master-enable
  • Plugin được nói là không truy cập các dữ liệu cá nhân khác như email
  • Trong lúc tải báo cáo vị trí, ứng dụng OpenHaystack sẽ giao tiếp với plugin nên phải mở Mail

Cách mạng Find My hoạt động

  • OpenHaystack mô tả hệ thống offline finding của Apple qua bốn bước
  • Ghép cặp

    • để dùng mạng Find My, hệ thống tạo một cặp khóa công khai/riêng dựa trên đường cong elliptic P-224
    • khóa riêng được lưu an toàn trong Keychain của Mac
    • khóa công khai được triển khai lên phụ kiện như micro:bit
  • Trạng thái thất lạc

    • phụ kiện sẽ phát khóa công khai dưới dạng quảng bá Bluetooth Low Energy
    • iPhone ở gần không thể phân biệt phụ kiện OpenHaystack với thiết bị Apple thật hoặc phụ kiện được chứng nhận
  • Được phát hiện

    • khi iPhone ở gần nhận quảng bá BLE, nó sẽ lấy vị trí hiện tại bằng GPS
    • iPhone mã hóa vị trí bằng khóa công khai có trong quảng bá rồi tải báo cáo đã mã hóa lên máy chủ Apple
    • iPhone chạy iOS 13 trở lên mặc định thực hiện hành vi này
    • OpenHaystack không tham gia vào bước này
  • Truy xuất

    • Apple không biết vị trí đã mã hóa nào thuộc về tài khoản Apple hay thiết bị nào
    • nếu biết khóa công khai tương ứng, người dùng Apple có thể tải xuống bất kỳ báo cáo vị trí nào
    • các báo cáo được mã hóa đầu-cuối nên không thể giải mã nếu không có khóa riêng
    • OpenHaystack tải các báo cáo dành cho phụ kiện OpenHaystack từ Apple, giải mã chúng bằng khóa riêng lưu trong Keychain của Mac rồi hiển thị vị trí mới nhất trên bản đồ
    • Apple giới hạn quyền tải báo cáo vị trí trong cơ sở dữ liệu bằng cách chỉ cho phép người dùng Apple đã xác thực thực hiện việc này

Thiết bị hỗ trợ và mở rộng

  • Về nguyên tắc, có thể biến thiết bị Bluetooth thành phụ kiện OpenHaystack có thể được theo dõi qua mạng Apple Find My
  • Hiện tại, cách triển khai firmware thuận tiện chỉ hỗ trợ một số thiết bị nhúng nhất định
  • Thiết bị Linux được hỗ trợ qua script HCI thông thường
  • Ví dụ hỗ trợ gồm
    • Nordic nRF51: đã thử nghiệm trên BBC micro:bit v1, hỗ trợ triển khai qua ứng dụng, hiện chỉ hỗ trợ nRF51822
    • Espressif ESP32: đã thử nghiệm trên ESP32-WROOM và ESP32-WROVER, hỗ trợ triển khai qua ứng dụng, việc triển khai có thể mất tới 3 phút và cần Python 3
    • Linux HCI: đã thử nghiệm trên Raspberry Pi 4 và Raspbian, về lý thuyết sẽ hỗ trợ mọi máy Linux
  • Có thể port sang các thiết bị khác hỗ trợ Bluetooth Low Energy dựa trên mã nguồn firmware và đặc tả trong bài báo

OpenHaystack Mobile

  • OpenHaystack Mobile là ứng dụng tái triển khai hoàn toàn ứng dụng macOS OpenHaystack cho smartphone
  • Ứng dụng cung cấp chức năng tạo phụ kiện và theo dõi, đặc biệt nhắm tới việc cải thiện khả năng sử dụng cho người dùng mới
  • Không giống ứng dụng macOS, smartphone không thể trực tiếp lấy báo cáo vị trí
    • để truy cập mạng Find My, cần một máy chủ proxy được host trên phần cứng Mac
    • máy chủ proxy có thể được nhiều người dùng truy cập đồng thời qua mạng
  • Để kết nối tới máy chủ proxy, cần cấu hình đúng URL trong openhaystack-mobile/lib/findMy/reports_fetcher.dart
  • OpenHaystack Mobile được xây dựng bằng Flutter framework và chạy trên Android lẫn iOS

Giấy phép và tài liệu tham khảo

1 bình luận

 
GN⁺ 2025-01-28
Ý kiến trên Hacker News
  • Ước gì cũng có một lựa chọn tốt cho những người không dùng Apple. Theo những gì tôi nghe được, phiên bản của Google đúng như dự đoán là khá tệ
    giới hạn về tần suất bạn có thể tìm kiếm thẻ của mình, không hiển thị vị trí cho đến khi được nhiều điện thoại phát hiện, và độ phủ cũng kém
    Trong một bài thử nghiệm, mạng của Samsung được cho là tốt hơn, nhưng điều đó nghe vô lý vì điện thoại Samsung chỉ là một phần trong toàn bộ số điện thoại Android thuộc mạng của Google. Dù về lý thuyết trông có vẻ tốt, đây vẫn đúng kiểu sản phẩm Google: triển khai tệ hại dù đã nhiều năm kể từ khi Apple chỉ ra cách làm
    https://security.googleblog.com/2024/04/find-my-device-netwo...
    https://9to5google.com/2024/08/01/find-my-device-stress-test...
    https://9to5google.com/2024/08/03/google-android-find-my-dev...
    https://www.androidcentral.com/accessories/testing-new-googl...

    • Thật khó tin khi người phụ trách mạng tìm kiếm của Google ưu tiên quyền riêng tư đến mức làm hỏng chức năng duy nhất của sản phẩm
      Với lựa chọn này, Google có được vài bài viết về cải tiến quyền riêng tư “đột phá” trước khi hiệu năng thực tế tệ đến mức nào được kiểm chứng, nhưng lại đánh mất cơ hội cạnh tranh với Apple trong lĩnh vực này, đồng thời gây tác động xấu tới hệ sinh thái Android/Pixel và thị phần. Mức độ kém cỏi này thật khó mà bịa ra được
    • Thật khó tin là Google đã làm hỏng mạng của mình như vậy. Lẽ ra nhờ thị phần Android, họ phải áp đảo mạng của Apple
      Với tư cách một người du mục, mạng Apple không đặc biệt hữu ích. Lý do là tôi không đi tới những thành phố giàu có có nhiều điện thoại Apple, mà tới “phần còn lại của thế giới”, nơi thị phần Android gần 90%. Vậy mà ngay cả ở đó, Apple dường như vẫn làm tốt hơn Google
    • Tôi gắn một cái vào chìa khóa, và khi thử dùng nó, dù làm mới nhiều lần, nó chỉ hiện một vòng tròn bán kính 0,25 dặm
      Thực ra nó nằm ngay trong chiếc túi bên cạnh
    • Giải pháp của Samsung không phải là một tập con, mà là một cách riêng biệt và tốt hơn
      Ngay cả ở sân bay hay làng mạc tại những quốc gia rất hẻo lánh, tôi vẫn tìm được 2 thẻ rất ổn nên khá yên tâm. Video này cũng kết luận rằng dù là người dùng iPhone thì Samsung SmartTag vẫn là tốt nhất
      https://m.youtube.com/watch?v=9wefUV_bR0Y
    • Có lẽ Google cũng nên cứ tham gia Find My cho rồi
  • Nhìn vào mã, có vẻ họ dùng quyền Apple Mail cá nhân để lấy vị trí do các thiết bị trong mạng FindMy thu thập
    https://github.com/seemoo-lab/openhaystack/blob/8d214aa5eb68...
    Tôi tự hỏi nếu tạo tài khoản nhà phát triển Apple thì liệu cũng làm được việc này không

    • Có những phiên bản không cần tương tác với Apple Mail
      Thứ cần thiết chỉ là tài khoản Apple, và cũng không cần chạy mã trên phần cứng Apple
      https://github.com/biemster/FindMy
  • Tôi muốn tìm lại tài liệu đã xem trước đây. Apple thông báo cho người dùng về “thẻ có thể đi theo bạn”, và tôi nhớ là có ai đó đã tạo một triển khai dùng hàm dẫn xuất khóa (KDF) để xoay vòng những thứ như địa chỉ MAC hoặc khóa riêng, nhưng các giá trị dẫn xuất đó đủ dự đoán được để có thể theo dõi
    Ở nơi tôi sống, vấn đề trộm vặt thực sự rất nghiêm trọng, nên thời gian dành cho việc liên tục sửa cửa sổ bị đập vỡ hoặc dọn dẹp dấu vết đột nhập cưỡng bức là khá lớn. Tôi hoàn toàn không có ý định đối đầu trực tiếp với ai, nhưng muốn một ngày nào đó có thể tạo được lộ trình di chuyển để đưa cho thám tử tư hoặc cơ quan thực thi pháp luật

    • Cứ mua thiết bị theo dõi GPS qua mạng di động và dùng một SIM IoT thật rẻ, thậm chí miễn phí, là được
      Hoặc bạn có thể mang một thùng nước đóng chai đến điểm tụ tập của những người nghiện ma túy gần đó và nhờ họ làm ơn thôi trộm đồ
    • Theo tôi biết thì AirTag dù sao cũng xoay vòng khóa riêng, nên tôi không rõ điều đó có giúp giải quyết vấn đề hay không
      Tuy nhiên chu kỳ xoay vòng có thể chậm, và tôi cũng không biết rõ thuật toán chính xác
    • Trong danh sách bài gửi của tôi có liên kết tới một bài viết về OpenHaystack và cảnh báo của nó. Tóm lại, iOS chưa từng cảnh báo một lần nào về thiết bị theo dõi dựa trên OpenHaystack mà tôi để trong xe một thời gian
      Tuy nhiên đó là chuyện vài năm trước, nên bây giờ có thể đã khác
  • Sẽ tốt nếu có cách tích hợp với ứng dụng Find My thay vì lấy vị trí bằng một quy trình tự chế không ổn định
    Các bản sao Trung Quốc vẫn có thể gắn thương hiệu riêng, nên rõ ràng bằng cách nào đó là có thể

    • Ở đây điều đó trông giống khu vườn có tường rào của Apple. Trước đây tôi từng đọc đặc tả của Apple dành cho đối tác chính thức, và trong quá trình ghép đôi, thiết bị ký một thứ gì đó bằng chứng chỉ/khóa mà Apple cấp cho nhà phát triển đó. Điều quan trọng là đó là khóa có được sau hợp đồng, tức là tiền, và khác với cặp khóa dùng để phát sóng thực tế
      Chữ ký đó được Apple xác minh, nhờ vậy thiết bị có thể được thêm vào tài khoản Apple ID và ứng dụng tương ứng. Trong khi đó, các khóa mà thiết bị phát đi ở chế độ mất là tùy ý và hoàn toàn mờ đục, đến mức Apple cũng không có cách nào liên kết chúng với ID, thiết bị hay nhà phát triển. Dự án này hoạt động cũng là vì cuối cùng các khóa đó được đưa lên máy chủ Apple
      Các bản sao có vẻ đã lấy cắp khóa hợp lệ dùng cho quá trình ghép đôi. Nếu Apple quyết tâm tìm ra khóa đó thì có lẽ họ có thể gỡ mọi thiết bị khỏi mọi tài khoản, nhưng bản thân thiết bị vẫn tiếp tục phát sóng và vẫn có thể truy cập vị trí bằng cách thô sơ như trên. Tôi cũng tò mò liệu chủ sở hữu khóa gốc sau này có nhận một hóa đơn lớn tính theo tiền bản quyền trên mỗi thiết bị hay không, nếu Apple đếm trong cơ sở dữ liệu “số thiết bị được ký bằng khóa này và đã được thêm vào Apple ID”
    • “Bản sao Trung Quốc” là sản phẩm được hỗ trợ chính thức, và cách làm nằm ở đây: https://developer.apple.com/find-my/
    • Các bản sao Trung Quốc dùng chương trình Apple Find My, nên là các thẻ chính thức có thể hiển thị trong ứng dụng
      OpenHaystack là một kiểu hack dùng khóa khác, nên vì lý do mật mã học nó không thể hiển thị trong ứng dụng
    • Chẳng phải các bản sao cũng có hạn chế sao? Ví dụ tôi nhớ là không có các tính năng như Tìm hướng, nhưng cũng có thể tôi nhớ nhầm điều đã đọc ở đâu đó
  • Thật sự rất hay. Tôi thích Apple AirTag nhưng nó quá dày và hình dáng cũng hơi lỡ cỡ
    Tôi muốn có một AirTag dạng thẻ tín dụng có thể bỏ vào ví, và cũng muốn có một AirTag nhỏ hơn để gắn vào vòng cổ mèo

    • Trên Temu hoặc Aliexpress có thể mua thẻ tương thích Find My của bên thứ ba với giá khoảng 5 đô la. Kích thước tương tự AirTag thường, nhưng rẻ hơn và dễ tháo hơn nếu muốn bỏ vỏ
      Tôi đã lấy một cái mình có ra khỏi vỏ để xem có thể làm mỏng hơn ở đâu, thì phần lớn độ dày đến từ khay pin CR2032, loa và nút bấm. Loa và nút có lẽ có thể bỏ sau khi thiết lập ban đầu, còn khay pin cũng có thể tháo ra rồi cấp nguồn từ cạnh bên thay vì từ phía trên nếu muốn một form factor dạng thẻ mỏng
    • Đã có thẻ siêu mỏng tương thích AirTag bỏ vừa ví rồi
    • Đây là ảnh AirTag mà con mèo tam thể nặng 8,5 pound của tôi đã đeo trên vòng cổ từ khi nó 3 tháng tuổi
      https://imgur.com/a/r9EGSOc
      Ảnh vừa được chụp bằng kính Meta Stories
    • Tôi đang dùng cái này cho chó, rất tối giản
      https://www.amazon.com/gp/product/B09DCVFNFF/
      Tuy nhiên cần quấn băng keo trong để AirTag không bị vặn xoay và rơi khỏi giá đỡ
  • Tôi chưa tìm hiểu kỹ, nhưng tò mò liệu có thể dùng cái này để gửi kèm payload dữ liệu tùy ý nhỏ hay không

    • Có thể. Gần đây có một dự án dùng mạng AirTag để truyền dữ liệu từ keylogger phần cứng
      Ngay cả khi máy tính hoàn toàn cách ly, dữ liệu vẫn có thể quay về thông qua iPhone của người đang gõ phím
    • Tôi đã thấy một trường hợp dùng nó để theo dõi trạng thái hộp thư. Cảm biến tiếp xúc bên trong hộp thư xoay vòng khóa phát sóng theo số lần được kích hoạt
      Khi khóa đổi và xuất hiện một thiết bị khác mới, nghĩa là có thư đến; khá thông minh
  • Tôi tò mò giới hạn trên về lưu lượng mà một thiết bị đơn lẻ có thể đẩy lên máy chủ Apple là bao nhiêu. Nếu thiết bị Apple không có sóng di động hoặc Wi-Fi, lịch sử ping vị trí đó sẽ còn lưu trên thiết bị bao lâu?
    Tôi cũng tò mò liệu ở đây có khả năng tấn công từ chối dịch vụ hay không. Kiểu như kẻ tấn công giả lập hơn 1 triệu thiết bị Bluetooth, nạn nhân tình cờ đi ngang qua, rồi điện thoại bị đơ vì có số lượng thiết bị khổng lồ ở một địa điểm và liên tục tải lên máy chủ Apple

  • Nhưng liệu có thể dùng cái này để thực sự thiết lập AirTag mà không cần thiết bị Apple khác như iPhone hay Mac không?

  • Bài trước: https://news.ycombinator.com/item?id=26342504

  • Có thể ghép đôi những thứ này với ứng dụng Apple Find My thật để tìm trong ứng dụng không?