
ความปลอดภัยของเช็คอิน
เช็คอินช่วยให้ผู้ใช้เลือกผู้ติดต่อที่จะแจ้งเตือนหากอุปกรณ์ที่รองรับของผู้ใช้ไม่ได้ไปถึงปลายทางที่กำหนดไว้ เมื่อผู้ใช้เลือกผู้ติดต่อเพื่อเริ่มเช็คอิน iMessage จะถูกส่งไปยังผู้ติดต่อนั้นพร้อมรายละเอียดเกี่ยวกับเซสชั่น รวมถึงปลายทางของผู้ใช้ อุปกรณ์ของผู้ใช้ที่เริ่มต้นยังสร้างโทเค็นการเข้าถึงและกุญแจการเข้ารหัสเช็คอินอีกด้วย กุญแจการเข้ารหัสเช็คอินจะถูกส่งไปใน iMessage ที่สอง แต่ข้อความนี้จะถูกเก็บไว้โดยเซิร์ฟเวอร์ iMessage แทนที่จะถูกส่งทันที เนื่องจากข้อความนี้ได้รับการเข้ารหัสแบบต้นทางถึงปลายทางระหว่างผู้ใช้และผู้ติดต่อที่กำหนด Apple จึงไม่สามารถเข้าถึงเนื้อหาได้
ในขณะที่อุปกรณ์ของผู้ใช้ที่เริ่มต้นกำลังเคลื่อนที่ไปยังปลายทาง อุปกรณ์จะส่งข้อความการเต้นของหัวใจไปยังเซิร์ฟเวอร์ iMessage เป็นระยะๆ ซึ่งจะขยายเวลาหมดอายุออกไปก่อนที่ข้อความกุญแจการเข้ารหัสเช็คอินจะถูกส่ง ถ้าอุปกรณ์ปิดใช้อยู่หรือสูญเสียการเชื่อมต่อ เซิร์ฟเวอร์ iMessage จะปล่อย iMessage ที่มีกุญแจการเข้ารหัสไปยังผู้ติดต่อโดยอัตโนมัติเมื่อถึงเวลาหมดอายุ ข้อความกุญแจการเข้ารหัสเช็คอินยังสามารถถูกปล่อยได้อีกด้วย หากอุปกรณ์ไม่ได้เคลื่อนที่ไปยังปลายทาง เมื่อปล่อยในลักษณะนี้ โทเค็นการเข้าถึงจะถูกรวมไว้ด้วย
ระหว่างเซสชั่นเช็คอิน อุปกรณ์ของผู้ใช้ที่เริ่มต้นจะรวบรวมข้อมูลเช็คอินที่เกี่ยวข้องเป็นระยะๆ (เช่น ตำแหน่งที่ตั้งและระดับแบตเตอรี่) เข้ารหัสด้วยกุญแจเช็คอิน แล้วอัปโหลดไปยัง iCloud Apple ไม่มีสิทธิ์เข้าถึงกุญแจเช็คอิน และไม่สามารถเข้าถึงข้อมูลที่อัปโหลดได้
การสิ้นสุดเซสชั่นเช็คอินต้องมีการตรวจสอบสิทธิ์ของผู้ใช้ ถ้าผู้ใช้ยกเลิกเซสชั่น ข้อมูลที่เข้ารหัสและ iMessage ที่มีกุญแจการเข้ารหัสเช็คอินจะถูกลบออกจากเซิร์ฟเวอร์อย่างปลอดภัย
ถ้าอุปกรณ์เช็คอินไม่ได้ไปถึงปลายทางตามที่คาดไว้ หรือตัวจับเวลาที่กำหนดค่าหมดเวลา ผู้ติดต่อที่เลือกจะได้รับ iMessage ที่มีกุญแจการเข้ารหัสเช็คอิน มีสองสถานการณ์ที่อาจเกิดขึ้นได้:
หลังจากสูญเสียการเชื่อมต่อ: ในกรณีนี้ ผู้ติดต่อที่กำหนดจะไม่มีโทเค็นการเข้าถึง และอุปกรณ์ของผู้ติดต่อจะดำเนินการตรวจสอบครั้งที่สองเพื่อพิจารณาว่าเวลาผ่านไปนานเพียงพอแล้วหรือไม่นับตั้งแต่การเต้นของหัวใจครั้งสุดท้าย อุปกรณ์ของผู้ติดต่อจะร้องขอข้อมูลเช็คอินที่เข้ารหัสจากเซิร์ฟเวอร์ และเซิร์ฟเวอร์จะทำการตรวจสอบครั้งที่สามเพื่อยืนยันเพิ่มเติมว่าเวลาผ่านไปนานเพียงพอแล้วหรือไม่นับตั้งแต่การเต้นของหัวใจครั้งสุดท้าย ถ้าเวลาผ่านไปนานเพียงพอแล้ว เซิร์ฟเวอร์จะให้ข้อมูลเช็คอินที่เข้ารหัสแก่ผู้ติดต่อ และผู้ติดต่อสามารถถอดรหัสข้อมูลดังกล่าวโดยใช้กุญแจเช็คอินของตนได้
หลังจากที่อุปกรณ์ของผู้ใช้พิจารณาแล้วว่าผู้ใช้ไม่ได้เคลื่อนที่ไปยังปลายทาง: ในกรณีนี้ นอกจากว่าผู้ใช้จะยกเลิกหรือขยายเวลาเช็คอินเมื่อได้รับแจ้ง ผู้ติดต่อที่กำหนดจะได้รับทั้งโทเค็นการเข้าถึงและกุญแจการเข้ารหัสเช็คอิน อุปกรณ์ของผู้ติดต่อจะมอบโทเค็นการเข้าถึงให้กับเซิร์ฟเวอร์ ทำให้สามารถดาวน์โหลดข้อมูลเช็คอินที่เข้ารหัสได้ จากนั้นจึงสามารถถอดรหัสข้อมูลโดยใช้กุญแจเช็คอินได้