
“平安确认”安全性
“平安确认”可让用户选取一位联系人,如果用户受支持的设备未到达预先确定的目的地,该联系人会收到通知。用户选取一位联系人开始“平安确认”时,该联系人会收到一条 iMessage 信息,带有会话的详细信息并包括其目的地。发起用户的设备还会生成访问令牌和“平安确认”加密密钥。“平安确认”加密密钥会在第二条 iMessage 信息中发送;不过,此信息会由 iMessage 信息服务器保存,而不是立即传送。此信息在用户及其指定联系人之间采用端对端加密,因此 Apple 无法获取其内容。
发起用户的设备朝其目的地前进时,它会定期向 iMessage 信息服务器发送心跳信息,这会延长“平安确认”加密密钥信息发送前的到期时间。如果设备关机或失去连接,时间到期后,iMessage 信息服务器会向联系人自动释放包含加密密钥的 iMessage 信息。如果设备未朝其目的地前进,“平安确认”加密密钥信息也会被释放。以这种方式释放时会包括访问令牌。
“平安确认”会话期间,发起用户的设备会定期收集相关“平安确认”数据(例如,位置和电池电量),通过“平安确认”密钥将其加密,然后上传到 iCloud。Apple 无法访问“平安确认”密钥,也无法访问上传的数据。
结束“平安确认”会话需要用户认证。如果用户取消会话,加密数据和包含“平安确认”加密密钥的 iMessage 信息会安全地从服务器删除。
如果“平安确认”设备未按预期到达其目的地,或配置的计时器到期,所选联系人会收到包含“平安确认”加密密钥的 iMessage 信息。有两种场景可能会发生这种情况:
失去连接后:在这种情况下,指定的联系人没有访问令牌,并且联系人的设备会执行第二次检查以确定距离上次心跳的时间是否足够长。联系人的设备会从服务器请求加密的“平安确认”数据,并且服务器会执行第三次检查以进一步确认距离上次心跳是否经过了足够的时间。如果是,服务器会将加密的“平安确认”数据提供给联系人,联系人可使用其“平安确认”密钥将其解密。
用户的设备确定其未朝目的地前进后:在这种情况下,除非用户在收到提示时取消或延长“平安确认”,否则服务器会将访问令牌和“平安确认”加密密钥同时提供给指定的联系人。联系人的设备将访问令牌提供给服务器,从而允许它下载加密的“平安确认”数据。该数据之后可通过“平安确认”密钥解密。