如何使用 · 2.19.2

把码给对方,一次就够。

这里没有账号,也没有手机号,因此添加某人的方式和你习惯的不同:你把一个代码给对方,一次即可。本页会带你走一遍这个过程,以及那几个值得理解的设置。

深色石面上的一部手机,显示着一个邀请二维码。
第一个屏幕是你的主页 为每个人各创建一份邀请 出示代码,对方扫描它 你的身份及其指纹 验证你的联系人,一次即可 写消息,以及各种状态的含义 照片、文件、语音消息和视频 链接会在打开前提醒你 最多 200 人的群组 频道:单向广播,读者匿名 机器人:身为程序的联系人 如果你想支持它 如果你所在的地方封锁了 Tor 确认它确实有效 用 PIN 码锁定 没有互联网:面对面或手动携带 信箱:消息在家里等你 LoRa 网状网络:通过无线电,无需互联网和信号 “我的笔记”也是你的日程 值得了解的设置

本页描述应用的当前版本。每个版本改变了什么,列在版本页。

01

第一个屏幕是你的主页

你第一次打开应用时,它会生成你的身份并加密存储在手机上。没有任何东西被发往任何地方,也不会向你索要任何信息——没有谁需要你去注册。

列表一开始是空的。你的联系人在这里,你加入的群组和频道也在这里。顶部的标签可以筛选列表——全部、未读、联系人、群组、频道——你还可以创建自己的文件夹,装入任意组合的聊天:长按聊天并选择标签…,或点击标签行末尾的 +。和其他一切一样,文件夹只存在于你的手机上并已加密。新建按钮可创建联系人、群组或频道;其余的一切都从右上角的我的身份开始。

带筛选标签的主屏幕:群组、频道和联系人。
带筛选标签的主屏幕:群组、频道和联系人。

02

为每个人各创建一份邀请

邀请是你给某个特定的人的代码。你给它起一个名字——那个名字留在你的手机上,绝不会出现在代码内部——应用用它来在对方第一次写信时知道是谁。

每份邀请只能用一次。一旦它对应的那个人用过,任何出示同一代码的其他人都会被拒绝。这就是为什么每位联系人各有一份,而不是一个到处传的单一代码。

邀请屏幕,显示一份未使用的邀请和一份已使用的邀请。
邀请屏幕,显示一份未使用的邀请和一份已使用的邀请。

03

出示代码,对方扫描它

这个代码就是一个普通的二维码,只有一个。它携带的不是你的密钥——有了后量子签名,一百个码也装不下——而是密钥的指纹和你的地址。对方的手机扫描它,通过 Tor 向你的手机索取密钥,并在信任任何东西之前把密钥与这个指纹核对。在那之前,联系人显示为“正在获取密钥”;这需要几秒钟,有时一分钟。

如果你更想通过另一个应用发送它,复制为文本会把完整的邀请以文本形式给你——密钥包含在内,所以即使对方粘贴时你的手机已关机,它也能用。从 2.2 起,这段文本的有效期为 28 天,粘贴它的人也需要 2.2;若对方使用 2.1,请让其扫描二维码。

请记住这个代码包含什么:你的 Tor 地址。任何看到它的人都能联系到你,所以只把它出示给它对应的那个人。

一份以单个二维码形式显示的邀请。
一份以单个二维码形式显示的邀请。

04

你的身份及其指纹

你的身份有一个验证指纹:一排数字,就是这里显示的。你的联系人也有一个。你要比对的正是它,以确保没有人夹在你们中间——这就是下一步。

此截图中节点 ID 和指纹是故意遮盖的:它们能标识一部特定的手机,而本页是公开的。

我的身份屏幕。此截图中节点 ID、指纹和洋葱地址已被遮盖。
我的身份屏幕。此截图中节点 ID、指纹和洋葱地址已被遮盖。

05

验证你的联系人,一次即可

在你核对对方确实是本人之前,聊天会一直提醒你。点按立即比对:应用会显示对方的指纹,也就是他在自己手机上看到的那一排数字。彼此读出来,或者通过其他渠道比对。

如果一致,点按匹配。聊天顶部随后会显示指纹已验证,提醒也会消失。这是应用唯一无法替你完成的事,而且只需十秒。

验证屏幕,显示联系人的指纹和比对按钮。
验证屏幕,显示联系人的指纹和比对按钮。
验证后的聊天:顶部显示「指纹已验证」,不再有提醒。
验证后的聊天:顶部显示「指纹已验证」,不再有提醒。

06

写消息,以及各种状态的含义

在你发出的每条消息下方都有一个状态,而它有确切的含义,因为没有服务器为你保管消息:

  • 排队中——对方的手机目前无法被联系到。消息正在你的手机上等待,并持续重试。
  • 已发送,未确认——它已发出,但对方的手机还没有确认收到。
  • 已送达——对方的手机确认了它。除对方外没有别人能确认。

一条一直排队的消息并不意味着出了什么故障:它意味着对方离线。天上没有可以把它留在那里的收件箱。

一段对话,每条消息下方显示消息状态。
一段对话,每条消息下方显示消息状态。

07

照片、文件、语音消息和视频

消息框旁的 📎 按钮会打开附件菜单:文件、扫描文档、从相册选择照片、拍照和录制视频;消息框为空时,麦克风用于录制语音消息。所有内容都和文字一样通过同一个加密对话传输,并在手机上加密保存。

照片。无论来自相册还是内置相机,照片在发送前都会重新压缩,这会删除照片默认携带的隐藏元数据:拍摄地点的 GPS 坐标、你的手机型号、真实拍摄日期。你可以为照片添加说明,也可以设为仅可查看一次:关闭后即删除。

任意大小的文件。文档按原样发送,实际上没有大小限制:协议上限约为 64 GB。文件分块发送,进度条会显示已发送多少;即使关闭应用、重启或断网,也会从中断处继续。从 32 MB 起,应用会先告诉你文件大小和大约需要多长时间,因为通过 Tor 传输大文件需要几分钟甚至几小时;超过 512 MB 时,对方需要较新的版本,而且你的手机不会保留第二份副本。文件名会加密传输,但保持原样:如果文件名透露了你不想说的信息,请先改名。收到的文件用你手机上能打开该类型文件的应用打开;保存会把文件移出 PrivChat 的保护范围,所以会先提醒你。

扫描文档。「扫描文档」把纸质文件变成 PDF:相机会自动找到纸张并在其静止时拍摄(也可以按按钮),需要时调整四角,选择彩色、灰度或黑白,调整页面顺序、旋转或删除页面并命名,每个文档最多 300 页。也可以加入已有的照片。一切都在手机上完成,不使用 Google 或任何其他服务:PDF 不含元数据,并像其他文件一样发送。在电脑上,这项功能叫「图片转 PDF」,使用已有的照片;在 iPhone 上使用系统自带的扫描器。

语音消息和视频。按住麦克风录制语音消息,松开即发送(向左滑动可取消),或点按麦克风即可免按住录制。视频消息最长一分钟。语音和视频直接录制进加密对话中,并在应用内显示和播放,从不向手机写入任何未加密的内容。

群组目前只能发送文字:附件仅用于一对一聊天和「我的笔记」。

08

链接会在打开前提醒你

消息中的链接可以点按,但点按不会立即打开它:会先弹出提醒,显示完整地址,并提醒你打开它会离开应用、离开 Tor,因此该网站会看到你的真实 IP 和访问时间。你自己决定是打开、复制,还是都不。永远不会有链接预览——那会在消息到达的那一刻请求页面,而这是你没有发起的请求。

长按任意消息可进行其余操作:回复、复制、选择部分文本、转发给其他联系人,或从这台手机上删除它。

09

最多 200 人的群组

一个群组最多两百人,由创建者管理。依然没有服务器:发到群组的消息会从你的手机按成员逐一发出,走的正是其他一切所用的端到端加密一对一会话——这就是群组只支持文字的原因,也是应用在你创建或加入群组之前先把流量成本告诉你的原因。超过十六人时,所有成员都需要 2.15 或更高版本;应用会告诉你还有谁没更新。

成员名单由群管理员签名:没人能被悄悄塞进来。彼此不认识的成员由群组安全地互相介绍,无需任何人手动转发邀请。接受之前要知道一件事:群组成员将能得知你的 Tor 地址——应用会在邀请屏幕上明确告诉你这一点。

一个三人的小群组聊天。
一个三人的小群组聊天。

10

频道:单向广播,读者匿名

频道是单向广播:一个人发布,任意多的人阅读。你创建的频道拥有自己的 Tor 地址和自己的签名密钥,与你的通讯身份毫无关联——发布不会暴露你是谁,也不会暴露如何联系你。

读者通过邀请(二维码或文本)加入,经匿名链路拉取新内容。发布者看不到谁在阅读——只知道频道被拉取过,永远不知道是谁。每条内容都由频道签名并与前一条相连,历史无法在读者毫无察觉的情况下被改写。默认情况下频道只在你点击刷新时更新;每个频道有一个开关,可按需开启周期性后台检查。

你自己的频道:经签名的内容和输入框。
你自己的频道:经签名的内容和输入框。
已订阅的频道:只读,带后台刷新开关。
已订阅的频道:只读,带后台刷新开关。

11

机器人:身为程序的联系人

机器人是一个没有屏幕的 PrivChat 节点,由某人在自己的服务器上运行。对应用来说它只是另一个联系人或频道:同样的身份、同样的加密、同样的 Tor。没有机器人目录,也没有 @ 用户名:你像收到任何人的邀请一样收到它的邀请,并以同样的方式粘贴或扫描。

有两点值得知道。机器人的频道对你一无所知:读者在协议层面就是匿名的,对程序也一样。与机器人一对一聊天,会把你给任何联系人的东西交给它的运营者——你的标识、你的 Tor 地址和你写的内容——只是集中在一台服务器上。而且没有任何东西会告诉你某个联系人是机器人,因为在线路上二者没有区别:如果运营者公布了机器人的验证码,就像验证一个人那样验证它。

想部署一个,或者编写你自己的机器人?机器人页面说明了机器人能看到什么、看不到什么,如何在服务器或树莓派上部署,以及它的本地 API。

12

如果你想支持它

应用是免费的,也没有广告。捐赠屏幕会显示一个地址,旁边是一个短指纹。

发送任何东西之前,把那个指纹与本网站上的进行比对。如果有人用他们自己的地址重新构建了应用,你就是这样发现的。这与验证一位联系人是同一个动作。

捐赠屏幕,显示一个地址及其指纹。
捐赠屏幕,显示一个地址及其指纹。

13

如果你所在的地方封锁了 Tor

在我的身份 → Tor 网桥 → 设置中。大多数人用不到。在连 Tor 本身都被封锁的地方,中间那个选项绕过封锁开箱即用:它通过不在公开列表上的中继进入,并伪装流量,使其看起来不像 Tor。

如果这些也被封锁,使用我自己的网桥可接受来自 Tor Project 的网桥行。获取更多网桥会通过你现有的连接请求一批新的。

网桥对话框:不使用网桥、绕过封锁、使用我自己的网桥。
网桥对话框:不使用网桥、绕过封锁、使用我自己的网桥。

14

确认它确实有效

在网络下,测试洋葱线路会通过 Tor 向你自己的地址发送一个数据包,并等待它返回。如果返回了,说明你的手机已发布且端到端可被联系到——「已发布」和「可被联系到」是两回事,这里检验的是后者。

网络卡片,端到端测试洋葱线路。
网络卡片,端到端测试洋葱线路。

15

用 PIN 码锁定

设置 PIN 码意味着加密密钥需要两半:你的 PIN 码和手机保管的一个秘密。任何一半单独都不够,所以你数据的副本没有你就对任何人毫无用处。没有找回途径——没有人能重置它,而这正是关键所在。把它记在你存放家门钥匙的地方,而不是手机本身。

设置了 PIN 码后,应用还会在后台停留一分钟后再次要求输入它,这样拿起你已解锁手机的人就无法直接打开它。

设置 PIN 码前的警告:无法找回。
设置 PIN 码前的警告:无法找回。

16

没有互联网:面对面或手动携带

如果你和联系人在同一地点却没有互联网,打开对话,点更多,选择面对面聊天。随即打开它的页面:选择你们如何找到对方——自动(两种方式同时)、Wi‑Fi 或蓝牙——以及开启多久(15 分钟、1 小时或 4 小时),然后点开启。双方都要开启,各自为对方开启。通过同一个 Wi‑Fi(即使不能上网)更快:一张照片只需几秒。蓝牙(Android 手机之间)无需路由器,可达几米,但一张照片可能需要一分钟。如果没有 Wi‑Fi,在 Android 上可以点在这里创建网络:你的手机会变成网络,对方用显示的名称和密码加入。开启期间,对话标题栏的图标会显示剩余时间;点它可回到该页面,切换方式或关闭。默认时长可在设置中修改。

开启期间的变化:附近拿着扫描器的人可以知道有人在使用 PrivChat,并看到你们何时聊、聊了多少,但看不到内容,也不知道和谁。通过 Tor 则看不到这些。应用从不搜索任何人,也从不经由第三方转发任何内容。

如果你们不在同一地点,携带消息会把待发给该联系人的内容保存到一个只有对方能打开的文件里,文件甚至看不出来自哪个应用。用 U 盘带过去、以任何方式发送,或交给要去见对方的人;对方用导入包裹打开,消息就像通过互联网收到的一样出现。包裹在路上时,这些消息不会通过互联网发送;如果期间你们通过其他途径多次交流,它们会自动发出,包裹随之失效,不会丢失任何内容。

在电脑上,“面对面”通过本地网络进行。在 iPhone 上,包裹功能将随下一个版本推出。

“面对面聊天”页面:你们如何找到对方(自动、Wi-Fi 或蓝牙)以及何时关闭。
“面对面聊天”页面:你们如何找到对方(自动、Wi-Fi 或蓝牙)以及何时关闭。

17

信箱:消息在家里等你

信箱是放在你家中设备上的无屏 PrivChat——一台树莓派或一直开着的电脑——运行 PrivChat 机器人:privchat-bot --buzon run。你不在时,来到你 Wi‑Fi 的联系人会把给你的消息留给它,并取走你留给对方的消息;你回来后,手机会自动取回。在设置 → 我的信箱中配对:粘贴 privchat-bot buzon invitar 给出的邀请,第一个使用它的手机成为它的主人。

开启联网(可选,默认关闭)后,即使你的手机关机,联系人也能通过 Tor 给你留消息,你可以在任何地方取回。

它只保管你的东西,而且是密封的:它无法读取,也从不持有你的身份。由你决定谁可以给你留消息(默认是当面验证过的联系人;对方需要 2.10.2 或更高版本)。如果被偷,它什么也读不到,大约 48 小时后就不再认得任何人;你可以在手机上解除配对。电脑的设置中也有。如何安装机器人:见机器人指南。

“我的信箱”:状态、“联网”开关,以及谁可以给你留消息。
“我的信箱”:状态、“联网”开关,以及谁可以给你留消息。

18

LoRa 网状网络:通过无线电,无需互联网和信号

一台小型 LoRa 无线电——一个 Meshtastic 或 MeshCore 节点(连接时 PrivChat 会自动识别;通过无线电只能联系使用同一网络的人),例如我们自己使用的 Seeed XIAO ESP32S3 配 Wio‑SX1262——放在手机旁,通过蓝牙连接。在设置 → 网状网络中:查找节点、输入节点的 PIN,然后打开使用网状网络开关(默认关闭)。这是 Tor 和“面对面”之后的最后手段:两者都无法送达时,文字消息会分块通过无线电发出,其他节点把它接力转发数公里。仅限你在该界面勾选的联系人(“通过无线电联系”;通过无线电听到时会自动勾选,且每人也需要有节点),且仅限文字和确认回执:照片和视频会等待其他途径。内容仍由 PrivChat 密封;无线电看不到它。

可以预期的情况:消息显示为“通过无线电”,只有收到对方的确认(同样通过无线电返回)后才显示“已送达”:需要几分钟,而不是几秒。一条文字消息约占用 17 秒空中时间。在中国(470–510 MHz,最高 19 dBm)法律不限制发射时间,但 PrivChat 仍把自己限制在每小时 10% 以内,以免一个应用独占属于大家的网络:每小时大约十条带确认的消息。网状网络界面会显示已用的空中时间,也包括你的节点为他人转发的部分。用完后,消息会等待并在轮到时发出:不要手动重发。

你带节点的信箱可作为网关:在外且无网络时,你通过无线电把消息留给它,它再通过 Tor 送达,你也能取回留给你的消息。你可以与一位联系人建立专属网状网络:带有自定义名称和密钥的频道,通过加密消息共享。监听者能看到的:你的节点在发射、何时、多少以及大致位置(发射可被定位);永远看不到内容和收件人。在电脑上,节点通过 USB 连接。

“网状网络”界面:它是什么、“使用网状网络”开关以及带“查找节点”的节点卡片。
“网状网络”界面:它是什么、“使用网状网络”开关以及带“查找节点”的节点卡片。

19

“我的笔记”也是你的日程

从 2.12.0 起,“我的笔记”(与自己的聊天)有两个标签页: 笔记,也就是原来的聊天,以及日程。写下一条笔记, 点击“发送”旁边的日历:选择日期和时间(或一个快捷选项)、是否为带复选框的 待办、是否重复(每天、每周、每月、每年或自定义)、何时 提醒(最多三次:准时,或提前几分钟、几小时、几天),以及一个颜色 标签。在任何其他聊天中,提醒我和转发 → 我的笔记 对你关心的消息做同样的事。

日程标签页按天整理——已逾期、今天、明天、本周、之后、无日期——或以月视图显示。 点击一项即可标记完成、推迟十分钟、一小时或到明天、只跳过这一次,或更改日期。行首为 [ ] 的笔记会变成清单;输入框的清单按钮会替你写好。

一切都留在你的手机上:日程不使用系统日历,没有小部件,也不与任何地方同步。为了让提醒在手机关闭应用后 仍能响起,系统只会得到下一次提醒的时间,永远不会得到文字;设置了 PIN 且应用关闭时, 通知只会说你有一条提醒,不会说是哪一条,直到你解锁。在电脑上,PrivChat 打开时才会提醒;在 iPhone 上, 应用关闭时也只会说有一条提醒。

“我的笔记”的日程标签页:已逾期、今天、明天和本周,带复选框。
“我的笔记”的日程标签页:已逾期、今天、明天和本周,带复选框。

20

值得了解的设置

阅后即焚消息

在聊天的 ⋯ 菜单中,你可以让消息在 1 小时、24 小时或 7 天后从双方手机上消失,从送达时开始计时。默认关闭。同一菜单中还有对话的本地搜索,它从不离开手机。

紧急 PIN 码

设置了 PIN 码后,你可以再添加一个——紧急 PIN 码——在解锁界面输入它的那一刻会抹除一切,而不是打开应用,用于有人强迫你解锁的情况。它看起来和正常解锁完全一样,无法被识破。而且一旦设置了 PIN 码,不输入它就无法关闭或移除这些保护中的任何一项:应用锁不行,紧急 PIN 码本身也不行。

掩护流量

默认开启。应用会发送没有内容的数据包,大小相同,加密方式也与真实数据包一样,这样监视你连接的人就无法判断你是否正在进行对话。它每月大约消耗 1 GB 移动数据,这正是这个开关存在的原因——也是把代价写在它旁边的原因。

如果你把它关掉,那么在你有事要隐瞒的那天再把它打开,恰恰是最会暴露你的模式。值得从一开始就让它开着。

如果 Android 在限制这个应用

为了在没有任何服务器居中转发的情况下接收消息,应用会保持一个小的后台服务运行。有些手机为了省电会让它休眠,那样消息就只在你打开应用时才到达。如果我的身份里出现一张卡片,说 Android 正在限制这个应用,就从那里打开应用设置,允许它在后台运行。这是「其间没有服务器为你保存消息」所要付出的代价。

阻止截屏

默认关闭,因为它也会阻止你想截的屏,而应用无法知道你属于哪种情况。开启后,Android 会拒绝截屏和录屏,并在最近任务列表中用一个空白屏幕替换应用的预览。

更换手机

在我的身份里,你可以把身份、地址和对话装进一个文件带到 另一部手机上;该文件由你选择的口令和你的 PIN 共同保护,缺一不可。导出时旧手机 会停止工作,以免让别人的对话中断。

迁移前请先更新两部手机。从 2.4.0 起,迁移文件使用新的密钥 格式,旧版本无法打开。如果目标手机还是 2.3 或更早的版本,请先更新它。