MitseaBlog/content/post/d5fdd30556ed48fea630ccb8c7667bf9/index.zh-cn.md
2024-07-31 16:52:27 +08:00

29 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
author = "FlintyLemming"
title = "【转载】iOS 13 上 Find My 工作原理概述"
slug = "d5fdd30556ed48fea630ccb8c7667bf9"
date = "2020-05-31"
description = ""
categories = ["Apple"]
tags = ["iOS"]
image = "https://img.mitsea.com/blog/posts/2020/05/iOS%2013%20%E4%B8%8A%20Find%20My%20%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E6%A6%82%E8%BF%B0/title.avif"
+++
> 原文转载自 ZW Cai 的 Facebook 动态,他的 Facebook 地址是:<https://www.facebook.com/x43x61x69>
> 只做了简繁体转换和必要的排版
今年 WWDC 除了刨起司器之外,最重要的东西应该是隐私保护。其中最让我惊艳的是 Apple 在新的「Find My」系统上所采用的方式。过去「Find My Phone」或「Find My Friends」靠的都是回传使用者的 GPS 位置,这样做有几个缺点:
1. 使用者在传输过程(中间人攻击)或在 Apple 主机(主机被入侵)留存的资料会透露出真实位置资讯。
2. 使用者装置在没有网路的状态下无法回报位置(国外无漫游、被窃后 SIM 卡遭移除等等)。
Apple 对於第二项问题的解决方案是透过周遭其他有网路的 Apple 装置来回传位置(藉由蓝牙),但这样不但不能减少第一项的问题,甚至可能引发更多被追踪的疑虑(扫瞄四周即可知道某装置是否在范围内)?
Apple 采用的方式非常的有趣:
1. 新版的「Find My」前提与以前不同使用者必须拥有至少两台登入相同 Apple ID 的装置在附近时才能啟用。Apple 会在啟用的装置上產生一把私钥,并透过点对点加密传输储存於其他台装置上,也就是这把私钥只存在你拥有的每一台机器上;每台装置接著会各自產生一系列公钥(对应前一步產生的私钥),透过蓝牙传输的作為识别。这些公钥会定时更换,且不会与先前產生过的相同,但仍可以透过最初的私钥验证。言下之意就是要靠公钥判断装置持有人做定位追踪是行不通的。
2. 假设你的 MacBook/iPad 被窃走并处於闔上、无网路状态,有啟用 Find My 的装置仍会持续透过蓝牙发送现在的公钥,但不传送其他资讯(此时通常你也没有相关资讯);周围他人有网路连线的 Apple 装置侦测到该公钥后,会将自己的地理位置资讯,透过此公钥加密,连同公钥的 Hash 值传给 Apple。提供位置的装置没有提供自己的识别资讯又因為公钥不断变换而无法反推公钥持有者身份不断变换的公钥 Hash 本身无法直接关联使用者,使得 Apple 主机上储存的资料无法逆推回持有人资讯,位置资讯也因为没有私钥而无法被解密。
3. 当你用你的 iPhone 寻找你的 MacBook/iPad 时,手机会将过去一系列公钥的 Hash 上传至 Apple 作為识别(详细方式 Apple 并没有明确说明,但理论上应该是回传过去一定时间内的公钥 Hash。此时 Apple 会从资料库中寻找对应的加密位置资料并回传给你的 iPhone 并使用储存於装置上的私钥解密位置资讯并显示给你。整个流程中只有你的装置有办法解密这些位置资讯,且只有在你的装置上解密。
所以第一项问题就解决了!比以前有更强大的追踪能力但却又比以前更能保障隐私。你现在知道你的信仰奉纳都投资在哪些地方了吧?