前两天听新闻的时候,听到一条来自「央视财经」的新闻:

电商平台上,有大量商家可以提供(恢复出厂设置的)手机数据恢复服务,不能保证 100% 恢复,报价在 800-2000 元不等。... 数据恢复人员表示,只要你的手机存储芯片没有损坏,即使将手机系统清空并恢复出厂设置,也一样可以恢复手机数据

这让我突然意识到:设备恢复出厂设置有可能并不能彻底清理掉你的个人数据,第三方很有可能会「偷偷地」恢复你的数据,造成隐私等严重问题。

一些恢复数据的店铺

所以我打算在这篇文章里,从闪存的工作原理开始和大家聊聊这到底是怎么一回事,以及我们在出售、赠送或折抵电子产品之前可以做点什么来保护自己的隐私。

闪存的工作原理

现在大部分的手机、平板电脑和部分电脑都会使用闪存来存储数据,虽然在不同的设备上叫法不同,但是工作原理本质上是一样的,所以我们这里只举最简单的例子:

首先大家需要知道,闪存存储部分基本的组成从大到小依次是:NAND 闪存芯片—Die 核心—Plane 平面—Block 扇区—Page 页面。其中页面是可以读和写的最小单位。

理想情况下的空闪存

接下来我们还需要知道,闪存最大的特点就在于已经有数据的地方没办法覆写,需要先做擦除操作才能写入数据。所以闪存的存储数据的结果可能和我们想象得的不太一样。比如,上图是一块空白的 NAND 闪存芯片,总计 3 个扇区,每个扇区只有 12 个页面,每个页面可以存放 1Byte 大小的数据。

理想情况下写入数据后

这时我们存入一个 4Byte 的数据,理想情况下他们如上图所示。接下来,我们完全修改了这个数据,增加到了 8Byte,由于擦除再写入的时间远比直接写入的时间更长,所以闪存的主控会选择直接把数据写到闪存上空白的地方,所以它在闪存中将会以下图所示。

理想情况下修改数据后

之前 4Byte 的地方理应会被擦除。但由于擦除页上数据的时候需要较高的电压,而且这个擦除所需要的电压,同样会对周围的页同样造成数据丢失的「压力」,这也是为什么擦除的最小单位是扇区。所以这时只会标记为待擦除,需要等到整个扇区都标记为擦除时才会正式被擦除。

理想情况下再次修改数据后

这时我们再把这个 8Byte 的文件,修改成 6Byte,这时第一个扇区上所有的块都会被标记为可删除。闪存的主控会在必要的时候清空整个块,最后这个闪存中文件存储的结果如下图所示。需要注意的是实际使用中远比这个例子复杂。

理想情况下清除扇区后

而对手机进行「恢复出厂设置」后,和我们在删除闪存上的文件时一样,在那时文件并不会立刻删除,只是统统被标记成了待删除而已,这也是某宝商家可以从闪存恢复数据的主要原理。

处理设备前的操作

我们在出售二手或打算给第三方回收时,为了保护自己的隐私可以做点什么呢?

iPhone 和 iPad

图片来自 Apple

根据官方的 建议,我们只需要在旧设备上登出 iCloud 和 App Store 账户,再前往 “通用”>“还原”>“抹掉所有内容和设置”,最后 确保 从受信任设备列表中没有这个旧设备。

iPhone 和 iPad 几乎不用担心再出售二手后数据会被意外恢复的问题,这主要是因为 iOS 和 iPadOS 都使用了称为 数据保护 的文件加密方法。在首次安装 iOS 和 iPadOS 以后,会新生成一个宗卷密钥,密钥不对外暴露只存放在专门的安全隔区中,接着利用这个密钥去加密全盘所有的数据;之后每次抹掉设备时,宗卷密钥都会改变。这样即使能恢复了你的数据,第三方也无从解密。

Apple Watch

图片来自 Apple

根据官方的建议,我们只需要「取消配对 Apple Watch」,Apple Watch 会自动抹掉并保护自己的隐私。Apple Watch 使用了和 iOS 或 iPadOS 类似的加密方式,一旦抹掉内部的密钥也会发生改变,无需担心隐私泄露。

Mac

Mac 相对而言会复杂很多,根据官方步骤,我们需要登出 iCloud、登出 iMessage、重置 NVRAM,最后抹掉硬盘驱动器并重新安装 macOS,针对 IntelApple 芯片的抹掉并重新安装 macOS 的方法有所不同。最后在完成重新安装 macOS 后,按下 Command-Q 即可关闭 Mac。

图片来自 Apple

个人认为针对 T2 Mac 、M1 芯片或是没有 T2 但打开了文件保险箱的 Mac 电脑,按照上面的步骤进行完全可以。因为分别有不同的密钥将在重装后会发生改变,第三方即使能恢复数据也不能解密,足以保障个人数据的安全。

如果你的电脑没有 T2 芯片也没有提前打开文件保险箱,那么你在进行官方步骤登出 iCloud 之前,可以考虑在 打开 文件保险箱并完成加密以后,再进行官方推荐的操作。

如果你对数据安全性要求更高,非常担忧自己数据的隐私问题。可以在恢复模式里,选择「实用工具」-「终端」,在终端中输入下列指令:

diskutil secureErase freespace VALUE /Volumes/DRIVE

Value 在 0-4 之间,0 表示全盘覆盖写入单次 0,1 表示全盘覆盖写入随机数字,2 表示全盘覆盖擦除 7 次,3 表示全盘覆盖擦除 35 次,4 表示全盘覆盖擦除 3 次。需要注意的是,SSD 擦除太多次会影响到它的使用寿命。

如果你从没改过 Mac 电脑的硬盘名字的话,可以直接使用下列命令进行安全擦除:

diskutil secureErase freespace 0 /Volumes/Macintosh\ HD 

Windows

Windows 电脑虽然不会像 Mac 每台电脑都配备 T2,但是系统内置的恢复功能也可以让你快速安全地抹掉电脑。

重置 Windows

点击「设置」-「更新和安全」-「恢复」-「重置此电脑」下的「开始」。接着选择「删除所有内容」-「云下载」/「云本地重新安装」均可

安全抹掉 Windows

在接下来的界面里,选择「更改设置」,打开「清理数据」的开关。再接下来的步骤中都点击「确认」,最后等待所有的过程走完即可。

Android

Android 这边的情况可能有点复杂,虽然从 Android 7 开始就有文件级加密,且开启文件级加密以后对 Android 系统再进行「恢复出厂设置」,和 iOS 一样第三方只能恢复数据但不能解密数据。

但是这个功能一直到 Android 10 开始 Google 才强制要求开启,由于 Android 手机的品类很多,各家各个不同机型在 Android 10 前有没有开启文件级加密也很确定。

所以为了让大家都能保护自己的隐私,我在这里给出通用的解决方案:

首先退出手机中各式各样的应用的账户,走最标准的重置 Android 手机的步骤,但接下来我们需要再次激活这台手机,直到进入主屏幕。

接下来我们需要用到我们的「老朋友」adb,如何获取 adb 和将手机连接到 adb 的过程不再赘述,大家可以参考:《免 root 玩转 Android 设备:如何从零开始使用 adb》

将手机和电脑相连,并进入到 adb 模式后,输入:

adb shell dd if=/dev/zero of=/mnt/sdcard/bigfile

这个命令会直接用 0 填充满手机的内部存储空间,完成后我们再进行一次标准的重置 Android 手机的流程来重置这个手机,这样就可以保证隐私安全了。如果依然担心隐私问题的话可以重复多次执行这个步骤。

以上就是本文的全部内容,希望能帮助到出售、赠送或折抵的你,让你安心地卖出二手。

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀