Trong luồng xử lý này, việc chỉ hỗ trợ thiết bị Apple dường như là ranh giới về triển khai và chính sách sản phẩm, chứ không phải yêu cầu mật mã tuyệt đối buộc thiết bị phải do Apple sản xuất. Khi máy Linux cung cấp đúng thông tin tài khoản, danh tính thiết bị, chứng chỉ, năng lực được hỗ trợ và hành vi mạng mà dịch vụ Apple kỳ vọng, máy chủ đã xem nó như một thiết bị nhận đáng tin cậy khác.
Điều đó không có nghĩa bất kỳ ai cũng có thể mở Find My trên một máy Linux vô danh rồi truy vấn dữ liệu. Thử nghiệm cho thấy một hệ điều hành không phải của Apple có thể mô phỏng hành vi của ứng dụng chính thức sau khi hoàn tất các bước xác thực và đăng ký với Apple.
Dự án ghép nối nhiều thành phần vốn bị che khuất trong hệ sinh thái Apple:
Xác thực tài khoản: Zerotistic sử dụng giao thức đăng nhập GrandSlam của Apple. Quy trình được mô tả gồm trao đổi Secure Remote Password (SRP) và xác thực hai yếu tố, sau đó tạo ra các mã định danh tài khoản cùng một token tương đương mật khẩu có thời hạn ngắn.
Đăng ký thiết bị: Máy khách tạo yêu cầu cấp chứng chỉ PKCS#10, chứa khóa RSA 2.048 bit và chữ ký SHA-1. Yêu cầu này được gửi tới endpoint đăng ký hồ sơ authenticateDS kiểu cũ của Apple, nơi trả về chứng chỉ Apple Identity Services.
Đăng ký với IDS: Có chứng chỉ và các thông tin nhận dạng thiết bị đi kèm, Linux có thể đăng ký như một thiết bị hỗ trợ Identity Services, khai báo các kiểu mã hóa tương thích, đăng ký các dịch vụ nhắn tin cần thiết và nhận thông tin xác thực để phân phối dữ liệu qua Apple Push Notification Service (APNs).
Đồng bộ Find My: Máy khách tái tạo chuỗi yêu cầu của Find My People, gồm khởi tạo, làm mới dữ liệu và yêu cầu SubscribeAndFetch với intent: distributeKeys cùng mode: proactive. Apple sau đó chỉ thị cho thiết bị của người đã đồng ý chia sẻ vị trí gửi vật liệu khóa vị trí hiện tại tới danh tính vừa đăng ký thông qua IDS và APNs.
Giải mã cục bộ: Gói dữ liệu IDS được mã hóa chứa thông tin quan hệ chia sẻ và các khóa SearchParty. Thư viện mã nguồn mở pypush xử lý lớp push và IDS, còn FindMy.py truy vấn, giải mã báo cáo Find My rồi chuyển chúng thành tọa độ, thời điểm và dữ liệu độ chính xác.
Đây là quá trình mô phỏng giao thức, không phải làm giả chứng chỉ Apple. Máy chủ vẫn cấp thông tin xác thực sau khi quy trình xác thực tài khoản và đăng ký thiết bị hoàn tất.
Hành vi SubscribeAndFetch được trình diễn cho thấy Apple có thể gửi vật liệu khóa vị trí hiện tại tới một thiết bị mới được cấp quyền, miễn là quan hệ chia sẻ đã tồn tại. Đây là yêu cầu thực tế đối với việc thay thiết bị hoặc đồng bộ tài khoản: người dùng không nên phải yêu cầu từng liên hệ dừng rồi bật lại chia sẻ vị trí mỗi khi thêm điện thoại hoặc thiết bị mới.
Theo mô tả, payload nhận được gồm mã định danh quan hệ, chỉ số khóa, khóa quảng bá đã băm dài 32 byte và một biểu diễn khóa riêng dài 85 byte. Các trường này cho thấy việc giải mã báo cáo vị trí Find My phụ thuộc vào vật liệu gắn với từng quan hệ chia sẻ và từng phiên bản khóa, đồng thời trạng thái khóa hiện tại có thể được phân phối lại qua IDS.
Bài viết kỹ thuật công khai trình bày hành vi đồng bộ và xoay vòng khóa, nhưng chưa xác lập một chu kỳ xoay vòng chung cho mọi trường hợp. Vì vậy, không thể từ nghiên cứu này suy ra đầy đủ lịch quản lý khóa của Apple; những gì được làm rõ là cách trạng thái khóa hiện tại được gửi tới thiết bị đã được cấp quyền.
Máy khách được thử nghiệm có phạm vi cố ý rất hẹp. Nó chỉ đọc một lượt chia sẻ vị trí đã được chấp nhận trên tài khoản Apple của nhà nghiên cứu, sau đó xử lý dữ liệu ngay trên máy Linux. Logic tạo vùng địa lý cũng chạy cục bộ, không phải thông qua một tính năng geofence do Apple lưu trữ trên máy chủ.
Theo bài viết của Zerotistic, máy khách không có chức năng:
Vì thế, đây nên được hiểu là một phát hiện về khả năng tương thích và ranh giới tin cậy, không phải lỗ hổng cho phép theo dõi từ xa bất kỳ người nào. Rủi ro thực tế hơn liên quan đến việc tài khoản hoặc thiết bị đáng tin cậy bị chiếm quyền: nếu kẻ tấn công kiểm soát tài khoản Apple hoặc đăng ký một thiết bị trái phép vào tài khoản đó, các lượt chia sẻ mà tài khoản vốn được phép xem có thể bị lộ.
Hai nghiên cứu tác động tới những phần khác nhau của Find My và đặt ra hai mô hình đe dọa khác nhau.
Zerotistic tập trung vào Find My People. Công trình này tái tạo phía nhận dữ liệu của một quan hệ chia sẻ đã được cấp quyền. Tài khoản và thiết bị phải được Apple chấp nhận, đồng thời người kia phải chủ động chia sẻ vị trí với tài khoản đó.
nRootTag nhắm vào Find My Network và tính năng tìm kiếm ngoại tuyến. Các nhà nghiên cứu cho biết dịch vụ Find My chấp nhận nhiều loại địa chỉ Bluetooth hơn dự kiến. Điểm yếu này có thể giúp kẻ tấn công khiến một máy tính có Bluetooth hoạt động như một beacon kiểu AirTag, tận dụng các thiết bị Apple ở gần để chuyển tiếp vị trí mà chủ thiết bị không hay biết.
Nói ngắn gọn, dự án của Zerotistic nhận dữ liệu mà tài khoản đã được phép xem; nRootTag tìm cách tạo ra một cơ chế theo dõi không cần sự cho phép. Đánh đồng hai trường hợp sẽ khiến màn trình diễn trên Linux có vẻ nguy hiểm và mạnh hơn so với những gì bằng chứng cho thấy.
Động lực ban đầu được mô tả là tự động hóa có sự đồng thuận. Một người bạn vốn đã chia sẻ vị trí đồng ý để hệ thống Linux duy trì các vùng địa lý cục bộ và gửi thông báo Discord khi người đó đến hoặc rời những địa điểm cụ thể.
Ban đầu, Zerotistic nghĩ công việc chỉ cần một yêu cầu web có xác thực và ước tính mất khoảng một buổi tối. Tuy nhiên, quá trình phân tích ngược đã mở rộng đáng kể so với dự tính. Các nguồn hiện có không xác nhận tổng thời gian chính xác để hoàn thành dự án, nên đưa ra một con số cụ thể hơn sẽ là suy đoán.
Các nguồn được trích dẫn xác nhận màn trình diễn, nhưng chưa đưa ra tuyên bố công khai đã được kiểm chứng của Apple về riêng triển khai Find My People trên Linux này. Chưa có thông tin xác nhận về bản sửa lỗi cụ thể hay kết quả chương trình tiền thưởng lỗi liên quan đến phát hiện.
Bài học chính vẫn rõ ràng: giới hạn một tính năng trên phần cứng Apple không tự động biến phần cứng thành ranh giới bảo mật. Nếu máy chủ chủ yếu cấp quyền dựa trên thông tin xác thực, chứng chỉ, năng lực và hành vi giao thức, một máy khách đủ tương thích trên hệ điều hành khác có thể vượt qua ranh giới sản phẩm—nhưng vẫn bị giới hạn bởi quyền tài khoản và các khóa mã hóa mà nó thực sự được cấp hợp lệ.
Trong luồng xử lý này, việc chỉ hỗ trợ thiết bị Apple dường như là ranh giới về triển khai và chính sách sản phẩm, chứ không phải yêu cầu mật mã tuyệt đối buộc thiết bị phải do Apple sản xuất. Khi máy Linux cung cấp đúng thông tin tài khoản, danh tính thiết bị, chứng chỉ, năng lực được hỗ trợ và hành vi mạng mà dịch vụ Apple kỳ vọng, máy chủ đã xem nó như một thiết bị nhận đáng tin cậy khác.
Điều đó không có nghĩa bất kỳ ai cũng có thể mở Find My trên một máy Linux vô danh rồi truy vấn dữ liệu. Thử nghiệm cho thấy một hệ điều hành không phải của Apple có thể mô phỏng hành vi của ứng dụng chính thức sau khi hoàn tất các bước xác thực và đăng ký với Apple.
Dự án ghép nối nhiều thành phần vốn bị che khuất trong hệ sinh thái Apple:
Xác thực tài khoản: Zerotistic sử dụng giao thức đăng nhập GrandSlam của Apple. Quy trình được mô tả gồm trao đổi Secure Remote Password (SRP) và xác thực hai yếu tố, sau đó tạo ra các mã định danh tài khoản cùng một token tương đương mật khẩu có thời hạn ngắn.
Đăng ký thiết bị: Máy khách tạo yêu cầu cấp chứng chỉ PKCS#10, chứa khóa RSA 2.048 bit và chữ ký SHA-1. Yêu cầu này được gửi tới endpoint đăng ký hồ sơ authenticateDS kiểu cũ của Apple, nơi trả về chứng chỉ Apple Identity Services.
Đăng ký với IDS: Có chứng chỉ và các thông tin nhận dạng thiết bị đi kèm, Linux có thể đăng ký như một thiết bị hỗ trợ Identity Services, khai báo các kiểu mã hóa tương thích, đăng ký các dịch vụ nhắn tin cần thiết và nhận thông tin xác thực để phân phối dữ liệu qua Apple Push Notification Service (APNs).
Đồng bộ Find My: Máy khách tái tạo chuỗi yêu cầu của Find My People, gồm khởi tạo, làm mới dữ liệu và yêu cầu SubscribeAndFetch với intent: distributeKeys cùng mode: proactive. Apple sau đó chỉ thị cho thiết bị của người đã đồng ý chia sẻ vị trí gửi vật liệu khóa vị trí hiện tại tới danh tính vừa đăng ký thông qua IDS và APNs.
Giải mã cục bộ: Gói dữ liệu IDS được mã hóa chứa thông tin quan hệ chia sẻ và các khóa SearchParty. Thư viện mã nguồn mở pypush xử lý lớp push và IDS, còn FindMy.py truy vấn, giải mã báo cáo Find My rồi chuyển chúng thành tọa độ, thời điểm và dữ liệu độ chính xác.
Đây là quá trình mô phỏng giao thức, không phải làm giả chứng chỉ Apple. Máy chủ vẫn cấp thông tin xác thực sau khi quy trình xác thực tài khoản và đăng ký thiết bị hoàn tất.
Hành vi SubscribeAndFetch được trình diễn cho thấy Apple có thể gửi vật liệu khóa vị trí hiện tại tới một thiết bị mới được cấp quyền, miễn là quan hệ chia sẻ đã tồn tại. Đây là yêu cầu thực tế đối với việc thay thiết bị hoặc đồng bộ tài khoản: người dùng không nên phải yêu cầu từng liên hệ dừng rồi bật lại chia sẻ vị trí mỗi khi thêm điện thoại hoặc thiết bị mới.
Theo mô tả, payload nhận được gồm mã định danh quan hệ, chỉ số khóa, khóa quảng bá đã băm dài 32 byte và một biểu diễn khóa riêng dài 85 byte. Các trường này cho thấy việc giải mã báo cáo vị trí Find My phụ thuộc vào vật liệu gắn với từng quan hệ chia sẻ và từng phiên bản khóa, đồng thời trạng thái khóa hiện tại có thể được phân phối lại qua IDS.
Bài viết kỹ thuật công khai trình bày hành vi đồng bộ và xoay vòng khóa, nhưng chưa xác lập một chu kỳ xoay vòng chung cho mọi trường hợp. Vì vậy, không thể từ nghiên cứu này suy ra đầy đủ lịch quản lý khóa của Apple; những gì được làm rõ là cách trạng thái khóa hiện tại được gửi tới thiết bị đã được cấp quyền.
Máy khách được thử nghiệm có phạm vi cố ý rất hẹp. Nó chỉ đọc một lượt chia sẻ vị trí đã được chấp nhận trên tài khoản Apple của nhà nghiên cứu, sau đó xử lý dữ liệu ngay trên máy Linux. Logic tạo vùng địa lý cũng chạy cục bộ, không phải thông qua một tính năng geofence do Apple lưu trữ trên máy chủ.
Theo bài viết của Zerotistic, máy khách không có chức năng:
Vì thế, đây nên được hiểu là một phát hiện về khả năng tương thích và ranh giới tin cậy, không phải lỗ hổng cho phép theo dõi từ xa bất kỳ người nào. Rủi ro thực tế hơn liên quan đến việc tài khoản hoặc thiết bị đáng tin cậy bị chiếm quyền: nếu kẻ tấn công kiểm soát tài khoản Apple hoặc đăng ký một thiết bị trái phép vào tài khoản đó, các lượt chia sẻ mà tài khoản vốn được phép xem có thể bị lộ.
Hai nghiên cứu tác động tới những phần khác nhau của Find My và đặt ra hai mô hình đe dọa khác nhau.
Zerotistic tập trung vào Find My People. Công trình này tái tạo phía nhận dữ liệu của một quan hệ chia sẻ đã được cấp quyền. Tài khoản và thiết bị phải được Apple chấp nhận, đồng thời người kia phải chủ động chia sẻ vị trí với tài khoản đó.
nRootTag nhắm vào Find My Network và tính năng tìm kiếm ngoại tuyến. Các nhà nghiên cứu cho biết dịch vụ Find My chấp nhận nhiều loại địa chỉ Bluetooth hơn dự kiến. Điểm yếu này có thể giúp kẻ tấn công khiến một máy tính có Bluetooth hoạt động như một beacon kiểu AirTag, tận dụng các thiết bị Apple ở gần để chuyển tiếp vị trí mà chủ thiết bị không hay biết.
Nói ngắn gọn, dự án của Zerotistic nhận dữ liệu mà tài khoản đã được phép xem; nRootTag tìm cách tạo ra một cơ chế theo dõi không cần sự cho phép. Đánh đồng hai trường hợp sẽ khiến màn trình diễn trên Linux có vẻ nguy hiểm và mạnh hơn so với những gì bằng chứng cho thấy.
Động lực ban đầu được mô tả là tự động hóa có sự đồng thuận. Một người bạn vốn đã chia sẻ vị trí đồng ý để hệ thống Linux duy trì các vùng địa lý cục bộ và gửi thông báo Discord khi người đó đến hoặc rời những địa điểm cụ thể.
Ban đầu, Zerotistic nghĩ công việc chỉ cần một yêu cầu web có xác thực và ước tính mất khoảng một buổi tối. Tuy nhiên, quá trình phân tích ngược đã mở rộng đáng kể so với dự tính. Các nguồn hiện có không xác nhận tổng thời gian chính xác để hoàn thành dự án, nên đưa ra một con số cụ thể hơn sẽ là suy đoán.
Các nguồn được trích dẫn xác nhận màn trình diễn, nhưng chưa đưa ra tuyên bố công khai đã được kiểm chứng của Apple về riêng triển khai Find My People trên Linux này. Chưa có thông tin xác nhận về bản sửa lỗi cụ thể hay kết quả chương trình tiền thưởng lỗi liên quan đến phát hiện.
Bài học chính vẫn rõ ràng: giới hạn một tính năng trên phần cứng Apple không tự động biến phần cứng thành ranh giới bảo mật. Nếu máy chủ chủ yếu cấp quyền dựa trên thông tin xác thực, chứng chỉ, năng lực và hành vi giao thức, một máy khách đủ tương thích trên hệ điều hành khác có thể vượt qua ranh giới sản phẩm—nhưng vẫn bị giới hạn bởi quyền tài khoản và các khóa mã hóa mà nó thực sự được cấp hợp lệ.