Lockspeare 如何保护你的照片

Lockspeare 会在你的手机上加密每一张照片和每一段视频。本页详细说明它是怎么做到的,也写明了它防不住什么,方便你自己判断。

最后更新于 2026年10月2日

简要说明

  • 每张照片和每段视频在存储之前,都会在你的手机上用 AES-256-GCM 加密。
  • 打开保险箱的密钥受到双重保护:一是你的 PIN 码或图案,二是 Android Keystore 中一把由硬件支持、永不离开手机的密钥。
  • 即使有人复制了你手机的存储,里面也只有加密数据。没有你手机的安全硬件,谁都无法拿它来尝试猜 PIN 码或图案。
  • 想在另一部手机上或从备份中打开保险箱,唯一的方法是你的 12 个单词的恢复短语。
  • Lockspeare 没有服务器,也没有账号。我们永远不会收到你的文件、PIN 码或图案,以及密钥。

加密了什么

你放进保险箱的一切:照片、视频、它们的缩略图、原始文件名、日期和相册。

每个文件都用各自的密钥加密,这把密钥由保险箱的主密钥派生而来。大文件按 1 MB 分段加密,每一段都有自己的完整性校验,所以播放视频时不必一次性解密整个文件,而且加密文件只要被改动就会被发现。我们使用 Google 的 Tink 库来完成这些工作,而不是自己编写加密算法。

加密文件以随机名称保存在 Lockspeare 的应用私有存储中。你所有保险箱的文件都放在同一个文件夹里,所以从文件夹看不出某个文件属于哪个保险箱。

PIN 码或图案如何打开保险箱

设置 Lockspeare 时,你可以选择解锁方式:至少 6 位数字的 PIN 码,或者像锁屏那样在 3×3 网格上画的图案。手机上的所有保险箱都使用同一种锁,所以从锁屏界面看不出任何信息。

每个保险箱都有一把随机的 256 位主密钥,在你的手机上生成。这把密钥从不以可读形式保存,而是以两种上锁的形式保存:

在这部手机上,用你的 PIN 码或图案锁住。 你的 PIN 码或图案会通过 Argon2id 转换成一把密钥。Argon2id 这种算法专门让每一次猜测都又慢又耗内存。得到的结果再用 Android Keystore 中的一把密钥加密一次,这把密钥位于你手机的安全硬件里,无法被复制出手机。

这一点很重要,因为 PIN 码或图案都很短。单靠它们本身,如果有人拿到你文件的副本,用电脑很快就能猜出来。把它和手机硬件绑定后,猜测只能在你的手机上进行,而且每一次都很慢。

用你的恢复短语锁住。 创建保险箱时,Lockspeare 会显示 12 个单词,它们从一份包含 2,048 个单词的标准词表中随机选出。这相当于约 128 位的随机性,远远超出任何人能猜出的范围。如果你忘了 PIN 码或图案、换了新手机或要恢复备份,就用这个短语打开保险箱。

保险箱准备好之前,你需要确认其中几个单词。请把它们写下来,放在安全的地方。我们没有副本。

多个独立保险箱和伪装保险箱

每个 PIN 码或图案打开各自的保险箱。你可以用第二个设置一个伪装保险箱,里面放些普通照片,以防有人逼你解锁应用。

不管你用一个还是多个保险箱,Lockspeare 在磁盘上始终保留相同数量的保险箱位置。没用到的位置会填满随机数据,看起来和真正的加密保险箱一模一样。应用里没有保险箱列表。所以无论是屏幕上,还是文件副本里,都看不出你有几个保险箱。

有一个限制:为了避免创建新保险箱时覆盖已有的保险箱,应用会记下哪些位置已被占用,这份记录用你手机的硬件密钥锁住。如果有人完全控制了你已解锁的手机,就可能读到这份记录,知道有几个保险箱,但看不到里面的内容。

备份

备份是可选的,有两种。

Google Drive。 Lockspeare 会把备份存放在你自己 Google Drive 里的一个隐藏应用文件夹中。它上传的文件和手机上保存的完全一样:已经加密。它还会上传用恢复短语锁住的保险箱密钥。它绝不会上传用 PIN 码或图案锁住的那一份,因为那一份只能配合你手机的硬件使用。

要在新手机上恢复,先输入恢复短语,再设置一个新的 PIN 码或图案。

Lockspeare 只申请访问它在你 Drive 中自己的隐藏文件夹,不会申请访问你的其他文件。Google 可以看到有多少个备份文件、大概多大以及上传时间,但看不到里面的内容。

备份文件。 你也可以把保险箱导出为单个加密文件,保存到任何地方:其他云服务、存储卡或你的电脑。它只能用你的恢复短语打开。

Android 自带的自动备份对 Lockspeare 是关闭的。它无法恢复与硬件绑定的密钥,所以只会复制一堆谁都用不了的数据。

使用应用时

  • 截图、录屏以及最近任务中的预览都会被阻止。
  • 一旦离开应用,保险箱就会立即锁定,除非你设置了一个短暂的延迟。
  • 锁定时,应用会清除内存和临时存储中的密钥以及所有已解密的预览。Android 应用运行的系统可能会在内部复制内存数据,所以我们会清除自己能控制的一切,但无法保证内存中的副本在被覆盖前一定不存在。
  • 用 Lockspeare 内置相机拍摄的照片和视频会直接进入保险箱,永远不会出现在你的图库里,所以云相册备份也永远看不到它们。照片直接在内存中加密。Android 的视频录制需要写入文件,所以录像时视频会先写入 Lockspeare 的私有存储,停止录制后立即加密,并删除未加密的文件。

从图库导入照片

当你从图库添加照片时,Lockspeare 会先加密它,然后重新打开加密后的副本,核对它与原图一致。只有这样,它才会通过 Android 自带的确认对话框,询问你是否删除原图。

有两个地方是 Lockspeare 管不到的,每次导入后我们都会提醒你:

  • 图库的回收站。 很多图库应用会把删除的照片保留约 30 天。清空回收站才能彻底删除。
  • 云相册备份。 如果某张照片已经被云相册服务备份过,那份副本会一直留在云端,直到你在那里删除它。

哪些数据会离开你的手机

  • 默认情况下,什么都不会。 Lockspeare 可以完全离线使用。
  • Google Drive,只有在你开启备份时,而且只上传加密文件。
  • Google Play,用于处理购买。
  • 崩溃报告,只有在你在设置中开启时才会发送。其中包含手机型号、应用在哪里出错等技术信息。绝不包含你的文件、文件名、PIN 码或图案。

应用中没有广告,没有广告 ID,也没有统计分析库。

Lockspeare 防不住什么

坦诚说明局限,本身就是安全的一部分。Lockspeare 无法防范:

  • 有人看着你输入 PIN 码或画图案。 请挡住屏幕。
  • 保险箱打开时手机已被入侵。 对你的手机拥有深度权限的恶意软件,或被黑的操作系统,都能看到你屏幕上的内容。
  • 有人完全控制了你已解锁的手机,并且有无限的时间。 他们可以直接在手机上尝试 PIN 码或图案。Argon2id 会让每次尝试都很慢,更长的 PIN 码或图案也会让破解难得多,但短的终究是短的。
  • 别人看到你装了 Lockspeare、它保存了多少加密数据,以及每个加密文件的大致大小。
  • PIN 码或图案和恢复短语都丢了。 到那时谁都打不开保险箱,包括我们。

独立审查

这套设计尚未经过独立审计。我们计划在 Lockspeare 上线前请人审查,并会在这里公布结果。如果你发现了问题,请写信至 security@lockspeare.com。