Skip to content

隐私与安全深度解析

Nostr 的高级安全实践。保护你的身份,防止元数据泄露,在使用去中心化社交媒体时保持隐私

20 分钟 高级 · 第 1 篇,共 3 篇

威胁模型(3 分钟)

你在防范什么?

安全建议只有在你清楚自己要躲开谁之后才有意义。一位插画师不想让白天上班的公司找到她的涂鸦账号,跟一名报道「会把记者关进牢里的政府」的记者,面对的完全是两回事;而记者那一套防护措施放到插画师身上,只会平白折腾人。所以先从这里开始。

最轻的一档,你只是不想让雇主、亲戚或者未来的客户把你发过的东西从头翻一遍。风险很普通:你的帖子是公开的,而个人资料把它们串成一段可以连着读下去的故事。给那些你不希望挂在真名下的内容单独开一个身份,基本就够了。

再往上一档,你是在躲开某些具体的人。曾经人肉过你的人、前任、从一个平台追到另一个平台的围攻。这时候账号从发第一条帖起就必须是匿名的,而且要靠日常习惯一直保持下去。搞安全的人把这些习惯叫 OPSEC,也就是操作安全:那些防止一个身份漏到另一个身份上去的日常小动作。

最高的一档是举报人、在敌意政权下活动的活动家,以及任何人身安全取决于绝不被认出的人。那种对手既有预算也有耐心。这意味着严肃的 OPSEC、在一台永不联网的设备上生成密钥(也就是气隙),说实话,还需要读远比一份指南能给的多得多的东西。

Nostr 保护什么

抗审查。 没有公司能封禁你,因为账号根本不在任何公司手里。你的身份是一对你自己掌握的密钥,既不能被停用也不能被没收;你的帖子存在那些愿意留一份副本的中继上,而不是某一家公司的数据库里。

你的作品归你。 密钥是你的。你的资料、帖子和关注列表会跟着你走到任何支持这个协议的客户端,没有平台拥有你和别人往来的关系图谱。

Nostr 不保护什么

默认一切公开。 除非是加密私信,否则任何人都能读到;而且不只是内容,还包括包在帖子外面的一切:你用哪些中继、什么时间发布、用的哪个客户端。这些谁想收集分析都可以。

假名不等于匿名。 你的 npub 藏起了你的名字,藏不住你这个人。习惯会出卖人,而且你连接的每一个中继都能看到你的 IP 地址。


身份分离(3 分钟)

为什么需要多个身份?

大多数创作者最后都会想要至少两个 Nostr 身份,而且一开始就分成两个,远比后来再把一个拆开容易。

第一个是你的公开身份。真名或者笔名,会印在书封上、挂在展墙上的那个。它的声誉是好几年慢慢攒起来的,所以你会小心对待它。

第二个用假名。上面没有任何东西指向你的法定姓名。那些还没想清楚的观点、追星账号、你不想让客户读到的政治争论,还有你在把重要东西交出去之前拿来试新应用的小号,都放在这里。

何时分离

只要你生活的一半会让另一半难堪,就把两个身份分开:私人对职业,爱好对工作,政治对客户。在试用你还没摸清底细的软件时也要分开。涉及钱的时候同样要分开,因为绑在假名账户上的一个闪电地址,可能悄悄把它跟你的真名连起来。

如果你身边的人本来就什么都知道,或者风险确实很低,又或者你是个以被认出来为职业的公众人物,那么只用一个账号也过得去。

管理多个密钥

最简单的安排是一个身份配一个客户端。公开账号用 Damus,私人账号用 Amethyst。这么做不花什么力气,但只要你想在同一部手机上同时用两个,它就不管用了。

更好的办法是签名应用,下一节会讲。Android 上的 Amber 可以同时保管好几把密钥,每个客户端只拿到它请求的那一个签名。

最严格的版本是分开的硬件:一个身份用手机,另一个用旧平板或旧笔记本,永不交叉。维持起来很累,但设备被偷的时候,也只有这种安排还站得住。


签名应用(3 分钟)

什么是签名应用?

签名应用是一个小程序,它唯一的工作就是保管你的 nsec,并代替它签名。你用来发帖的客户端从来拿不到密钥。它把草稿交给签名应用,签名应用把即将签署的内容摆给你看,你批准,签好的事件再回到客户端手里。

好处

密钥隔离。 你的 nsec 待在一个你特意挑选的应用里。你一时兴起装的客户端永远看不到它;就算某个客户端其实是恶意的,或者日后被攻破,它也交不出一个从未拿到过的东西。

多看一眼的机会。 每一次签名请求都会在发布之前显示在屏幕上。这能拦下手滑发出去的帖子,也能拦下客户端想悄悄以你的名义做点什么。

一个身份,多个应用。 因为密钥在客户端之外,你可以在五个不同的应用里用同一个账号,而不必把 nsec 复制到五个地方。

流行的签名应用

Amber(Android) 是你在 Android 上该用的那个。开源、开发活跃、想存多少把密钥都行,而且它是 Nostr 目前最接近「标准签名器」的东西。

Primal(iOS) 的做法不一样,这个差别很重要。iOS 上没有 Amber,所以 Primal 把你的密钥放在系统钥匙串里,也就是放在客户端自己内部。对 iOS 来说这是个合理的安排,但它给你的隔离比专用签名应用弱,因为客户端和保管密钥的是同一个应用。Primal 之所以出现在这一节,靠的是它的远程登录功能:Primal 可以在不交出密钥的前提下,授权你在其他兼容的 Nostr 应用里活动,那些应用因此享受到签名器的待遇,哪怕 Primal 自己不是签名器。

其他选择:

  • 通过 NIP-46 远程签名,有时叫 Nostr Connect。这是一种能力,不是一个产品。nsec.app 这类服务实现了它,Primal 的远程登录也是。
  • 浏览器扩展。 Alby 和 nos2x 在电脑上替网页客户端签名。
  • 硬件钱包(进阶,很少用得上)。

设置 Amber

  1. 从正确的地方安装。 Amber 通过 zap.store、F-Droid 和 GitHub 发布页分发(用 Obtainium 可以从那里自动更新)。它不在 Google Play 上。你在那里以这个名字找到的东西是别人的应用,把 nsec 交给它,账号就完了。
  2. 在 Amber 里创建或导入密钥,并在往下走之前先把恢复词备份好。
  3. 打开你的 Nostr 客户端,选择「使用 Amber 登录」或者「外部签名器」,不要把密钥粘贴到任何地方。
  4. Amber 弹出来时批准请求。Android 可能会问一次由哪个应用处理这类请求,选 Amber。

何时使用签名应用

一旦这个账号对你有了分量,就去装一个签名应用:你在定期发帖、有人因为这些内容关注你,或者已经有打赏进来了。如果你在好几个客户端之间来回切换,同样如此,因为签名应用正是让这件事从鲁莽变得安全的东西。

你还在到处试的阶段可以先跳过。单个客户端上的一个小号不需要多这一步,初学者要学的东西也已经够多了。等账号长成你舍不得丢掉的东西时,再加上它。


密钥轮换(2 分钟)

什么是密钥轮换?

这个词在这里的意思跟你在公司里听到的不一样。Nostr 协议本身没有轮换机制:没有办法让一把密钥退休,再把身份接到新的一把上。你的密钥对就是你的身份。所以这里说的「轮换」,实际上是开一个全新的账号,然后一个一个地把人劝过来。

何时轮换

如果你觉得自己的 nsec 已经跑出去了,就轮换。你把它粘到了一个后来发现是钓鱼页面的网站上、存着密钥的设备被偷了、有人在以你的名义发帖。离开托管服务时也要轮换。托管服务指的是那种替你生成并保管密钥、而不让你自己拿着的服务,你无从知道还有谁留了一份副本。

不要按时间表轮换。每年换一次对公司密码是好建议,对 Nostr 密钥是坏建议,因为底下根本没有迁移的通道。每轮换一次,你就丢掉发帖历史、把关注者打散,还会切断别人保存下来的 NIP-05 链接。等真出了事再轮换。

如何轮换

第 1 步:准备

  1. 安全地生成新密钥
  2. 正确地备份它们
  3. 测试新账户

第 2 步:宣布

  1. 从旧账户发帖:“正在迁移到 [新 npub]”
  2. 置顶帖子
  3. 在个人简介中更新新的 npub
  4. 等待几天

第 3 步:迁移

  1. 在新账户上关注你的旧关注
  2. 如果有 NIP-05,更新它
  3. 直接告诉亲密联系人,因为真正能把人带过去的就是这一步

第 4 步:逐步告别旧账户

  1. 定期从旧账户发帖:“已迁移到 [新账户]”
  2. 保留旧账户作为重定向
  3. 最终放弃旧账户

元数据泄露(5 分钟)

什么元数据会泄露?

人是可以被认出来的。不是靠名字,是靠别的一切。

首先是写作风格,而创作者对它的低估超过任何人。你的用词、你断句的习惯、你爱用全角还是半角标点、一千个表情符号里你真正会用的那三个:读过足够多你公开作品的人,会在一条匿名帖子里感觉到那股熟悉,而软件找出来的速度比人还快。分开账号本身解决不了这一处泄露。

然后是你说的内容。顺口提过的一条街。去过的一场演出。只属于某个群聊的梗。一个全世界大概只有四十个同行知道的事实。单拿出任何一条都认不出你,三条凑在一起就可能了。

发帖时间会告诉别人你住在哪里。发上一个月,你的活跃时段就勾出一个时区,接着是作息,有时还有接送孩子的时间。

技术层面的泄露是无声的,你什么都不用做。你连接的每一个中继都能看到你的 IP 地址。有些客户端会在事件里标上生成它的软件和版本。网页客户端还会暴露设备指纹,也就是屏幕尺寸、字体、语言和各项设置凑成的那个组合,即使没有登录,它也足以把一个浏览器和别的区分开。

社交图谱是所有信号里最响的一个。你关注谁、谁回关你、你在一分钟之内回复了谁的帖子。两个朋友圈相同的账号通常是同一个人,而且重合的数量少得出人意料,那个猜测就不再是猜测了。

预防策略

  • 每个账号写得不一样。 不同的用词、不同的句子节奏、不同的标点习惯。头一两个星期会觉得别扭,之后就没感觉了。
  • 保持模糊。 不要精确日期,不要独特细节,把地点说得笼统些。用「这周」代替周二,用「北方的一座城市」代替具体街区。
  • 藏好你的 IP。 VPN 能让中继看不到你从哪里连接,需要更强的时候就用 Tor。每个身份用不同的连接,不要两个共用一条。
  • 看看你的客户端发出去了什么。 有些会在事件里带上版本信息。注重隐私的客户端说得更少。
  • 让两边的关注关系分开。 不同的人、不同的圈子,你自己两个身份之间的往来能少则少。

跨身份污染

大多数被扒出来的人,不是被什么高明的分析打败的。是他们自己在某一次不小心里,亲手把两个账号连了起来。

不要做什么:

  • ❌ 提及你的另一个账户
  • ❌ 同时发布相同的内容
  • ❌ 关注完全相同的人
  • ❌ 使用相同的短语/俚语
  • ❌ 回复相同的线程
  • ❌ 在同一线程中从两个账户发帖

安全的做法:

  • ✅ 完全分离的内容
  • ✅ 不同的话题/兴趣
  • ✅ 不同的活跃时间
  • ✅ 没有交叉引用
  • ✅ 假设他们在监视

OPSEC 清单(2 分钟)

基本安全(所有人)

  • 在 3+ 个地方备份密钥
  • 使用密码管理器
  • 永远不要截图密钥
  • 永远不要分享 nsec
  • 保持客户端软件更新
  • 每个身份使用唯一的密钥

增强安全(活跃用户)

  • 使用签名应用
  • 分离设备/账户
  • VPN/Tor 用于敏感帖子
  • 只在怀疑密钥暴露时才轮换密钥,绝不按日历轮换
  • 监控冒充者
  • 记录恢复程序

最大安全(高风险)

  • 气隙密钥生成(在一台从不联网的设备上)
  • 硬件安全模块(专门保管密钥、绝不把它交出来的芯片或设备)
  • 自托管中继
  • 仅 Tor 连接
  • 多层身份
  • 定期 OPSEC 审计
  • 法律咨询

自我审计

要问的问题:

  1. 如果有人想人肉搜索我,他们会找到什么?
  2. 我的多个身份实际上是分离的吗?
  3. 如果我的手机被盗会发生什么?
  4. 如果我的账户被盗用,我会告诉谁?
  5. 我的恢复计划是什么?

恢复计划(2 分钟)

如果你怀疑账户被盗用

立即行动:

  1. 停止从被盗用的账户发帖
  2. 记录发生了什么
  3. 在安全的设备上生成新密钥
  4. 公开宣布这件事(如果账户是公开的)
  5. 轮换到新密钥
  6. 调查是如何发生的

建立恢复计划

在你需要之前:

  1. 可信联系人 - 谁能验证你的新身份?
  2. 身份证明 - 你如何证明你是你?
  3. 带外通信 - 如果 Nostr 这边不能用了,如何联系关注者?
  4. NIP-05 控制 - 你能更新你的标识符吗?
  5. 备份策略 - 密钥如何备份?

通信模板

用新账号发这样一条:

⚠️ 安全警报 ⚠️

我的旧账号 [旧 npub] 已被盗用。从今天起从它发出的
任何内容都不是我发的。

这是我的新账号:[新 npub]

请取消关注旧的那个,改关注这一个。

你可以在这里核实确实是我:[你的网站、你的其他社交
账号,或者干脆换个地方问我]。

然后趁还能操作,从旧账号发一条方向相反的帖子,写明新的 npub。在你自己控制的域名上把 NIP-05 重新指向新账号,因为这是攻击者唯一伪造不了的凭据。再通过 Nostr 以外的渠道告诉那些要紧的人,真正能说服别人的是这个。

有一件事不要做:不要试图用「两把密钥一起签名」来发这份公告。一个 Nostr 事件只带一个签名,没有客户端会让你附上第二个;而且旧密钥一旦被盗用,攻击者也能用它签名,所以就算做得到也证明不了什么。


测试你的知识

进阶隐私与安全测验

身份分离

问题 1 / 6

0/6 已回答

为什么要使用多个独立的 Nostr 身份?
1 / 6

快速参考

最低安全:

  • 3 份密钥备份
  • 密码管理器
  • 永远不要分享 nsec

增强安全:

  • 使用签名应用
  • 分离身份
  • VPN 保护隐私
  • 定期审计

最大安全:

  • 气隙密钥
  • 硬件钱包
  • 仅 Tor
  • 专业 OPSEC

记住: 安全是一段旅程,而不是目的地。从基础开始,随时间改进。


继续阅读

改进此页面 发现错别字或不清楚的地方?在 GitHub 上编辑此指南。
在 Nostr 上关注我们