ข้อจำกัดที่ดูเหมือนว่า Find My People ใช้ได้เฉพาะบนอุปกรณ์ Apple อาจเป็นเส้นแบ่งด้านผลิตภัณฑ์และการนำไปใช้งาน มากกว่าจะเป็นข้อกำหนดทางคริปโตกราฟีที่บังคับว่าต้องใช้ฮาร์ดแวร์ Apple เท่านั้น เมื่อไคลเอนต์ Linux ส่งข้อมูลประจำตัวบัญชี อัตลักษณ์อุปกรณ์ ใบรับรอง ความสามารถ และรูปแบบการสื่อสารที่ระบบของ Apple คาดหวัง เซิร์ฟเวอร์ก็ปฏิบัติต่อไคลเอนต์ดังกล่าวเสมือนเป็นตัวรับข้อมูลที่ได้รับความไว้วางใจอีกเครื่องหนึ่ง
นี่ไม่ได้หมายความว่าใครก็ตามจะเปิดคอมพิวเตอร์ Linux แบบไม่ระบุตัวตนแล้วเรียกข้อมูลจาก Find My ได้ งานวิจัยแสดงเพียงว่า ระบบปฏิบัติการที่ไม่ใช่ของ Apple สามารถเลียนแบบพฤติกรรมของไคลเอนต์ที่เกี่ยวข้องได้ หลังผ่านขั้นตอนยืนยันตัวตนและลงทะเบียนอุปกรณ์ของ Apple แล้ว
โครงการนี้เชื่อมต่อส่วนประกอบหลายอย่างที่ผู้ใช้ทั่วไปไม่เคยเห็นโดยตรงเข้าด้วยกัน ได้แก่
ยืนยันตัวตนบัญชีด้วย GrandSlam — Zerotistic ใช้โปรโตคอลล็อกอิน GrandSlam ของ Apple ซึ่งมีการแลกเปลี่ยนแบบ Secure Remote Password หรือ SRP และการยืนยันตัวตนสองขั้นตอน จากนั้นจึงได้ตัวระบุบัญชีและโทเคนระยะสั้นที่ทำหน้าที่เทียบเท่ารหัสผ่าน
ลงทะเบียนอุปกรณ์ — ไคลเอนต์สร้างคำขอลงนามใบรับรอง หรือ CSR ในรูปแบบ PKCS#10 โดยใช้กุญแจ RSA ขนาด 2,048 บิตและลายเซ็น SHA-1 ก่อนส่งไปยังปลายทางลงทะเบียนโปรไฟล์ authenticateDS แบบเดิมของ Apple ระบบตอบกลับด้วยใบรับรอง Apple Identity Services หรือ IDS
ลงทะเบียนกับ IDS — เมื่อมีใบรับรองและข้อมูลประจำอุปกรณ์แล้ว Linux สามารถลงทะเบียนเป็นอุปกรณ์ที่รองรับ IDS ระบุประเภทการเข้ารหัสที่รองรับ สมัครใช้งานบริการส่งข้อความย่อยที่จำเป็น และรับข้อมูลรับรองสำหรับการส่งการแจ้งเตือนผ่าน Apple Push Notification Service หรือ APNs
ซิงก์ข้อมูลกับ Find My — ไคลเอนต์จำลองลำดับคำขอแบบเดียวกับ Find My People ทั้งการเริ่มต้น การรีเฟรช และคำขอ SubscribeAndFetch ที่ใช้ intent: distributeKeys กับ mode: proactive จากนั้น Apple จึงสั่งให้อุปกรณ์ของผู้ติดต่อที่ยินยอมแชร์ ส่งข้อมูลกุญแจตำแหน่งปัจจุบันไปยังอัตลักษณ์ที่เพิ่งลงทะเบียนผ่าน IDS และ APNs
ถอดรหัสภายในเครื่อง — ข้อมูล IDS ที่เข้ารหัสไว้มีข้อมูลความสัมพันธ์ระหว่างบัญชีและกุญแจของ SearchParty โดยไลบรารีโอเพนซอร์ส pypush จัดการส่วนการแจ้งเตือนและ IDS ขณะที่ FindMy.py ใช้เรียกและถอดรหัสรายงาน Find My ให้กลายเป็นพิกัด ตำแหน่งเวลา และค่าความแม่นยำ
กระบวนการนี้คือการจำลองโปรโตคอล ไม่ใช่การปลอมใบรับรอง Apple เซิร์ฟเวอร์ยังคงเป็นผู้แจกจ่ายข้อมูลรับรอง หลังจากบัญชีผ่านการยืนยันตัวตนและขั้นตอนลงทะเบียนแล้ว
พฤติกรรมของคำขอ SubscribeAndFetch ชี้ว่า Apple สามารถส่งกุญแจตำแหน่งปัจจุบันไปยังอุปกรณ์ใหม่ที่ได้รับอนุญาต หลังจากมีความสัมพันธ์ในการแชร์ตำแหน่งอยู่แล้ว กลไกนี้มีเหตุผลในเชิงการใช้งาน เพราะเมื่อผู้ใช้เปลี่ยนโทรศัพท์หรือเพิ่มอุปกรณ์ พวกเขาไม่ควรต้องขอให้ผู้ติดต่อทุกคนหยุดและเริ่มแชร์ตำแหน่งใหม่อีกครั้ง
ข้อมูลที่มีการสาธิตประกอบด้วยรหัสความสัมพันธ์ ดัชนีกุญแจ กุญแจแฮชสำหรับโฆษณาขนาด 32 ไบต์ และตัวแทนกุญแจส่วนตัวขนาด 85 ไบต์ ฟิลด์เหล่านี้บ่งชี้ว่า การถอดรหัสรายงานตำแหน่งของ Find My ใช้ข้อมูลที่ผูกกับทั้งความสัมพันธ์ระหว่างผู้ใช้และเวอร์ชันของกุญแจ ซึ่งสามารถแจกจ่ายซ้ำผ่าน IDS ได้
อย่างไรก็ดี รายงานสาธารณะสาธิตพฤติกรรมด้านการซิงก์และการหมุนเวียนกุญแจเท่านั้น ยังไม่ได้ระบุช่วงเวลาการเปลี่ยนกุญแจแบบตายตัวที่ใช้กับทุกกรณี จึงไม่ควรสรุปเกินหลักฐานว่าได้เห็นข้อกำหนดการจัดการกุญแจของ Apple ทั้งหมด
ไคลเอนต์ที่ทดสอบมีขอบเขตค่อนข้างแคบ มันอ่านข้อมูลแชร์ตำแหน่งที่ Apple Account ของผู้วิจัยได้รับอนุญาตอยู่ก่อนแล้ว และประมวลผลข้อมูลดังกล่าวภายในเครื่อง ระบบกำหนดพื้นที่เฝ้าระวังหรือ geofencing ก็ทำงานบน Linux หลังการถอดรหัส ไม่ได้ทำงานผ่านฟีเจอร์ที่ Apple ให้บริการบนเซิร์ฟเวอร์
ตามรายงาน ไคลเอนต์ไม่มีความสามารถในการ:
ดังนั้น กรณีนี้ควรถูกมองว่าเป็นการค้นพบเกี่ยวกับการทำงานร่วมกันและขอบเขตความไว้วางใจ ไม่ใช่ช่องโหว่ที่ใช้ติดตามใครก็ได้จากระยะไกล ความเสี่ยงด้านความเป็นส่วนตัวที่เป็นรูปธรรมกว่าคือกรณีบัญชี Apple หรืออุปกรณ์ที่ได้รับความไว้วางใจถูกยึด หากผู้โจมตีควบคุมบัญชีหรือเพิ่มอุปกรณ์ที่ไม่ได้รับอนุญาตเข้าไปได้ ข้อมูลที่บัญชีนั้นมีสิทธิ์ดูอยู่แล้วก็อาจถูกเปิดเผย
งานของ Zerotistic กับ nRootTag แตะคนละส่วนของ Find My และมีรูปแบบภัยคุกคามต่างกันอย่างชัดเจน
Zerotistic มุ่งเป้าไปที่ Find My People โดยจำลองฝั่งผู้รับข้อมูลของความสัมพันธ์แชร์ตำแหน่งที่ได้รับอนุญาตแล้ว บัญชีและอุปกรณ์ต้องผ่านการยอมรับจาก Apple และเจ้าของตำแหน่งต้องเคยแชร์ข้อมูลให้บัญชีนั้น
nRootTag มุ่งเป้าไปที่ Find My Network และการค้นหาอุปกรณ์ออฟไลน์ นักวิจัยรายงานว่าบริการของ Apple ยอมรับประเภทที่อยู่ Bluetooth มากกว่าที่ควรจะเป็น จุดอ่อนนี้อาจทำให้ผู้โจมตีเปลี่ยนคอมพิวเตอร์ที่รองรับ Bluetooth ให้ทำงานคล้ายบีคอนของ AirTag และใช้เครื่อง Apple ใกล้เคียงช่วยรายงานตำแหน่งโดยที่เจ้าของอุปกรณ์เป้าหมายไม่รู้ตัว
สรุปง่าย ๆ คือ Zerotistic รับข้อมูลที่บัญชีมีสิทธิ์เห็นอยู่แล้ว ขณะที่ nRootTag พยายามสร้างกลไกติดตามที่ไม่ได้รับอนุญาต การนำสองกรณีมาปนกันจะทำให้ความสามารถของการสาธิตบน Linux ดูเกินกว่าหลักฐานที่มีอยู่
แรงจูงใจดั้งเดิมของโครงการเป็นระบบอัตโนมัติที่มีความยินยอม เพื่อนคนหนึ่งซึ่งแชร์ตำแหน่งกับบัญชีของ Zerotistic อยู่แล้ว ยินยอมให้ระบบ Linux สร้าง geofence ภายในเครื่อง และส่งการแจ้งเตือนผ่าน Discord เมื่อเพื่อนเดินทางถึงหรือออกจากสถานที่ที่กำหนด
ในช่วงแรก Zerotistic คาดว่างานนี้อาจเป็นเพียงการส่งคำขอเว็บที่ผ่านการยืนยันตัวตน และประเมินว่าน่าจะใช้เวลาประมาณหนึ่งค่ำคืน แต่การย้อนวิศวกรรมขยายตัวมากกว่าที่คาดไว้ รายงานที่มีอยู่ไม่ได้ระบุระยะเวลารวมของโครงการอย่างแม่นยำ ดังนั้นการให้ตัวเลขที่ละเอียดกว่านี้จะเป็นการคาดเดา
ข้อมูลจากแหล่งข่าวที่อ้างถึงยืนยันว่าการสาธิตเกิดขึ้นจริง แต่ยังไม่มีแถลงการณ์สาธารณะจาก Apple ที่ตรวจสอบได้เกี่ยวกับการใช้งาน Find My People บน Linux ในกรณีนี้ รวมถึงยังไม่มีการยืนยันว่า Apple แก้ไขแล้วหรือมีผลการจ่ายรางวัลจากโครงการรายงานช่องโหว่
บทเรียนหลักจึงยังชัดเจน: การจำกัดฟีเจอร์ให้ใช้ได้เฉพาะบนฮาร์ดแวร์ของบริษัท ไม่ได้หมายความว่าฮาร์ดแวร์นั้นเป็นขอบเขตความปลอดภัยโดยตัวมันเอง หากเซิร์ฟเวอร์ให้ความไว้วางใจจากข้อมูลรับรอง ใบรับรอง ความสามารถ และพฤติกรรมของโปรโตคอลเป็นหลัก ไคลเอนต์บนระบบปฏิบัติการอื่นที่เข้ากันได้มากพอก็อาจข้ามเส้นแบ่งด้านผลิตภัณฑ์ได้—แต่ยังถูกจำกัดด้วยสิทธิ์ของบัญชีและกุญแจเข้ารหัสที่ได้รับมาอย่างถูกต้อง
ข้อจำกัดที่ดูเหมือนว่า Find My People ใช้ได้เฉพาะบนอุปกรณ์ Apple อาจเป็นเส้นแบ่งด้านผลิตภัณฑ์และการนำไปใช้งาน มากกว่าจะเป็นข้อกำหนดทางคริปโตกราฟีที่บังคับว่าต้องใช้ฮาร์ดแวร์ Apple เท่านั้น เมื่อไคลเอนต์ Linux ส่งข้อมูลประจำตัวบัญชี อัตลักษณ์อุปกรณ์ ใบรับรอง ความสามารถ และรูปแบบการสื่อสารที่ระบบของ Apple คาดหวัง เซิร์ฟเวอร์ก็ปฏิบัติต่อไคลเอนต์ดังกล่าวเสมือนเป็นตัวรับข้อมูลที่ได้รับความไว้วางใจอีกเครื่องหนึ่ง
นี่ไม่ได้หมายความว่าใครก็ตามจะเปิดคอมพิวเตอร์ Linux แบบไม่ระบุตัวตนแล้วเรียกข้อมูลจาก Find My ได้ งานวิจัยแสดงเพียงว่า ระบบปฏิบัติการที่ไม่ใช่ของ Apple สามารถเลียนแบบพฤติกรรมของไคลเอนต์ที่เกี่ยวข้องได้ หลังผ่านขั้นตอนยืนยันตัวตนและลงทะเบียนอุปกรณ์ของ Apple แล้ว
โครงการนี้เชื่อมต่อส่วนประกอบหลายอย่างที่ผู้ใช้ทั่วไปไม่เคยเห็นโดยตรงเข้าด้วยกัน ได้แก่
ยืนยันตัวตนบัญชีด้วย GrandSlam — Zerotistic ใช้โปรโตคอลล็อกอิน GrandSlam ของ Apple ซึ่งมีการแลกเปลี่ยนแบบ Secure Remote Password หรือ SRP และการยืนยันตัวตนสองขั้นตอน จากนั้นจึงได้ตัวระบุบัญชีและโทเคนระยะสั้นที่ทำหน้าที่เทียบเท่ารหัสผ่าน
ลงทะเบียนอุปกรณ์ — ไคลเอนต์สร้างคำขอลงนามใบรับรอง หรือ CSR ในรูปแบบ PKCS#10 โดยใช้กุญแจ RSA ขนาด 2,048 บิตและลายเซ็น SHA-1 ก่อนส่งไปยังปลายทางลงทะเบียนโปรไฟล์ authenticateDS แบบเดิมของ Apple ระบบตอบกลับด้วยใบรับรอง Apple Identity Services หรือ IDS
ลงทะเบียนกับ IDS — เมื่อมีใบรับรองและข้อมูลประจำอุปกรณ์แล้ว Linux สามารถลงทะเบียนเป็นอุปกรณ์ที่รองรับ IDS ระบุประเภทการเข้ารหัสที่รองรับ สมัครใช้งานบริการส่งข้อความย่อยที่จำเป็น และรับข้อมูลรับรองสำหรับการส่งการแจ้งเตือนผ่าน Apple Push Notification Service หรือ APNs
ซิงก์ข้อมูลกับ Find My — ไคลเอนต์จำลองลำดับคำขอแบบเดียวกับ Find My People ทั้งการเริ่มต้น การรีเฟรช และคำขอ SubscribeAndFetch ที่ใช้ intent: distributeKeys กับ mode: proactive จากนั้น Apple จึงสั่งให้อุปกรณ์ของผู้ติดต่อที่ยินยอมแชร์ ส่งข้อมูลกุญแจตำแหน่งปัจจุบันไปยังอัตลักษณ์ที่เพิ่งลงทะเบียนผ่าน IDS และ APNs
ถอดรหัสภายในเครื่อง — ข้อมูล IDS ที่เข้ารหัสไว้มีข้อมูลความสัมพันธ์ระหว่างบัญชีและกุญแจของ SearchParty โดยไลบรารีโอเพนซอร์ส pypush จัดการส่วนการแจ้งเตือนและ IDS ขณะที่ FindMy.py ใช้เรียกและถอดรหัสรายงาน Find My ให้กลายเป็นพิกัด ตำแหน่งเวลา และค่าความแม่นยำ
กระบวนการนี้คือการจำลองโปรโตคอล ไม่ใช่การปลอมใบรับรอง Apple เซิร์ฟเวอร์ยังคงเป็นผู้แจกจ่ายข้อมูลรับรอง หลังจากบัญชีผ่านการยืนยันตัวตนและขั้นตอนลงทะเบียนแล้ว
พฤติกรรมของคำขอ SubscribeAndFetch ชี้ว่า Apple สามารถส่งกุญแจตำแหน่งปัจจุบันไปยังอุปกรณ์ใหม่ที่ได้รับอนุญาต หลังจากมีความสัมพันธ์ในการแชร์ตำแหน่งอยู่แล้ว กลไกนี้มีเหตุผลในเชิงการใช้งาน เพราะเมื่อผู้ใช้เปลี่ยนโทรศัพท์หรือเพิ่มอุปกรณ์ พวกเขาไม่ควรต้องขอให้ผู้ติดต่อทุกคนหยุดและเริ่มแชร์ตำแหน่งใหม่อีกครั้ง
ข้อมูลที่มีการสาธิตประกอบด้วยรหัสความสัมพันธ์ ดัชนีกุญแจ กุญแจแฮชสำหรับโฆษณาขนาด 32 ไบต์ และตัวแทนกุญแจส่วนตัวขนาด 85 ไบต์ ฟิลด์เหล่านี้บ่งชี้ว่า การถอดรหัสรายงานตำแหน่งของ Find My ใช้ข้อมูลที่ผูกกับทั้งความสัมพันธ์ระหว่างผู้ใช้และเวอร์ชันของกุญแจ ซึ่งสามารถแจกจ่ายซ้ำผ่าน IDS ได้
อย่างไรก็ดี รายงานสาธารณะสาธิตพฤติกรรมด้านการซิงก์และการหมุนเวียนกุญแจเท่านั้น ยังไม่ได้ระบุช่วงเวลาการเปลี่ยนกุญแจแบบตายตัวที่ใช้กับทุกกรณี จึงไม่ควรสรุปเกินหลักฐานว่าได้เห็นข้อกำหนดการจัดการกุญแจของ Apple ทั้งหมด
ไคลเอนต์ที่ทดสอบมีขอบเขตค่อนข้างแคบ มันอ่านข้อมูลแชร์ตำแหน่งที่ Apple Account ของผู้วิจัยได้รับอนุญาตอยู่ก่อนแล้ว และประมวลผลข้อมูลดังกล่าวภายในเครื่อง ระบบกำหนดพื้นที่เฝ้าระวังหรือ geofencing ก็ทำงานบน Linux หลังการถอดรหัส ไม่ได้ทำงานผ่านฟีเจอร์ที่ Apple ให้บริการบนเซิร์ฟเวอร์
ตามรายงาน ไคลเอนต์ไม่มีความสามารถในการ:
ดังนั้น กรณีนี้ควรถูกมองว่าเป็นการค้นพบเกี่ยวกับการทำงานร่วมกันและขอบเขตความไว้วางใจ ไม่ใช่ช่องโหว่ที่ใช้ติดตามใครก็ได้จากระยะไกล ความเสี่ยงด้านความเป็นส่วนตัวที่เป็นรูปธรรมกว่าคือกรณีบัญชี Apple หรืออุปกรณ์ที่ได้รับความไว้วางใจถูกยึด หากผู้โจมตีควบคุมบัญชีหรือเพิ่มอุปกรณ์ที่ไม่ได้รับอนุญาตเข้าไปได้ ข้อมูลที่บัญชีนั้นมีสิทธิ์ดูอยู่แล้วก็อาจถูกเปิดเผย
งานของ Zerotistic กับ nRootTag แตะคนละส่วนของ Find My และมีรูปแบบภัยคุกคามต่างกันอย่างชัดเจน
Zerotistic มุ่งเป้าไปที่ Find My People โดยจำลองฝั่งผู้รับข้อมูลของความสัมพันธ์แชร์ตำแหน่งที่ได้รับอนุญาตแล้ว บัญชีและอุปกรณ์ต้องผ่านการยอมรับจาก Apple และเจ้าของตำแหน่งต้องเคยแชร์ข้อมูลให้บัญชีนั้น
nRootTag มุ่งเป้าไปที่ Find My Network และการค้นหาอุปกรณ์ออฟไลน์ นักวิจัยรายงานว่าบริการของ Apple ยอมรับประเภทที่อยู่ Bluetooth มากกว่าที่ควรจะเป็น จุดอ่อนนี้อาจทำให้ผู้โจมตีเปลี่ยนคอมพิวเตอร์ที่รองรับ Bluetooth ให้ทำงานคล้ายบีคอนของ AirTag และใช้เครื่อง Apple ใกล้เคียงช่วยรายงานตำแหน่งโดยที่เจ้าของอุปกรณ์เป้าหมายไม่รู้ตัว
สรุปง่าย ๆ คือ Zerotistic รับข้อมูลที่บัญชีมีสิทธิ์เห็นอยู่แล้ว ขณะที่ nRootTag พยายามสร้างกลไกติดตามที่ไม่ได้รับอนุญาต การนำสองกรณีมาปนกันจะทำให้ความสามารถของการสาธิตบน Linux ดูเกินกว่าหลักฐานที่มีอยู่
แรงจูงใจดั้งเดิมของโครงการเป็นระบบอัตโนมัติที่มีความยินยอม เพื่อนคนหนึ่งซึ่งแชร์ตำแหน่งกับบัญชีของ Zerotistic อยู่แล้ว ยินยอมให้ระบบ Linux สร้าง geofence ภายในเครื่อง และส่งการแจ้งเตือนผ่าน Discord เมื่อเพื่อนเดินทางถึงหรือออกจากสถานที่ที่กำหนด
ในช่วงแรก Zerotistic คาดว่างานนี้อาจเป็นเพียงการส่งคำขอเว็บที่ผ่านการยืนยันตัวตน และประเมินว่าน่าจะใช้เวลาประมาณหนึ่งค่ำคืน แต่การย้อนวิศวกรรมขยายตัวมากกว่าที่คาดไว้ รายงานที่มีอยู่ไม่ได้ระบุระยะเวลารวมของโครงการอย่างแม่นยำ ดังนั้นการให้ตัวเลขที่ละเอียดกว่านี้จะเป็นการคาดเดา
ข้อมูลจากแหล่งข่าวที่อ้างถึงยืนยันว่าการสาธิตเกิดขึ้นจริง แต่ยังไม่มีแถลงการณ์สาธารณะจาก Apple ที่ตรวจสอบได้เกี่ยวกับการใช้งาน Find My People บน Linux ในกรณีนี้ รวมถึงยังไม่มีการยืนยันว่า Apple แก้ไขแล้วหรือมีผลการจ่ายรางวัลจากโครงการรายงานช่องโหว่
บทเรียนหลักจึงยังชัดเจน: การจำกัดฟีเจอร์ให้ใช้ได้เฉพาะบนฮาร์ดแวร์ของบริษัท ไม่ได้หมายความว่าฮาร์ดแวร์นั้นเป็นขอบเขตความปลอดภัยโดยตัวมันเอง หากเซิร์ฟเวอร์ให้ความไว้วางใจจากข้อมูลรับรอง ใบรับรอง ความสามารถ และพฤติกรรมของโปรโตคอลเป็นหลัก ไคลเอนต์บนระบบปฏิบัติการอื่นที่เข้ากันได้มากพอก็อาจข้ามเส้นแบ่งด้านผลิตภัณฑ์ได้—แต่ยังถูกจำกัดด้วยสิทธิ์ของบัญชีและกุญแจเข้ารหัสที่ได้รับมาอย่างถูกต้อง