隐私推理游戏 anoni.net/mystery
要保护自己的隐私,需要先知道信息如何泄露出去。在 anoni.net 社区推出的隐私推理游戏里,读者站在调查员的位置,从照片、信件、文件与网站里找出破绽,再用证据逐一排除嫌疑人。查过别人留下的线索之后,比较容易发现自己也留下了哪些。
玩家是虚构的雾港隐私互助站里的调查员,每个案件从一份委托开始,委托人带着一张照片、一封信或一份名单来求助。目前有夜鹭事件与蓝鹊事件两个案件,正体中文、简体中文与英文都有交互版、不需要 JavaScript 的静态版与可以打印的 PDF 版。
制作隐私推理游戏的原因
我们在文档站的 Metadata 是什么,为什么重要整理了照片会带着的拍摄时间、设备与位置。读者看完多半同意这些信息需要留意,但实际要把一张照片传出去时,很少人会想到文件名、时区或照片角落拍进去的物品。说明读过不一定能记住,亲手从一张照片查出它泄露了什么,印象会深得多。
保护隐私的建议常写成「不要做什么」的清单:拍照前关掉定位、上传前清掉元数据、不要点信里的链接。清单容易读,读者却很难从中知道每一项的理由。在推理游戏里,玩家换到另一边,成为找出破绽的人。看过零散的信息如何被串起来,一群可能的人如何一步步缩小到一个,才会明白清单上每一项防范的是什么。遇到清单没写到的情况,也比较能自行判断。
在隐私研究里,一群彼此无法区分的可能人选叫做匿名集合(anonymity set)。一个人能不能保持匿名,取决于有多少人跟自己无法区分,每泄露一项信息,这群人就少一些。玩家在两个案件里都用排除法推理,结案时指认一个人,依据是一路上排除其他人的证据。
两个案件都取材自读者可能遇到的处境。夜鹭事件是内部员工匿名爆料,相关的保护做法整理在文档站的记者保护消息来源与揭弊者保护法的技术观察。蓝鹊事件是一封没有链接的扣款通知信,收件人依信里的指示搜索客服,账号就遭到盗用。玩家在蓝鹊事件里会接触到邮件别名、搜索广告与通信软件的已关联设备。
雾港隐私互助站
雾港隐私互助站是一群志愿者组成的团体,替遇到隐私问题的人提供协助,例如爆料之后怕身份曝光、被诈骗或账号遭到盗用。名字取自起雾的港口,看不清楚四周的时候,还有一处可以停靠。值班志愿者阿雾在内部频道给提示,也教玩家使用终端。
故事发生在 2026 年的台湾,地点用真实的城市与行政区,公司、人物与事件都是虚构的。游戏里的网络有自己的搜索引擎「雾搜」、匿名论坛「无名广场」与照片社交平台 PicNote,用来取代真实世界的服务,避免冒用真实的品牌。
夜鹭事件
「我已经关掉定位了。」一位吹哨者在匿名论坛爆料,附上一张备忘录的照片。公司宣布 72 小时内要找出泄密者,玩家要比公司早一步,查出照片泄露了什么。
夜鹭事件在 10 月 9 日上线,玩家会练习辨识 EXIF 元数据、时区、文件名、照片背景、写作风格与匿名集合,游玩时间约 45 到 75 分钟。
蓝鹊事件
「信里没有链接,我才以为是真的。」一封「已开通、按月扣款 3,480」的信里没有链接,只请收件人自行搜索客服。照做的人账号遭到盗用,泄露的会员名单上甚至有睡眠时数,玩家要找出是谁贩售了会员数据。
蓝鹊事件在 10 月 11 日上线,玩家会练习辨识邮件头、假域名、搜索广告、QR code、已关联设备与陷阱数据,游玩时间约 60 到 90 分钟。
每个案件的流程
案件从跟委托人的加密对话开始,玩家选几次回复,收下委托人整理的资料。调查时找到的线索会自动记在调查板上,网页、表格与记录也可以钉上去。每个案件都藏着一个陷阱,看起来是自然的下一步,做了却会伤害委托人。落入陷阱时,阿雾会说明原因。
结案报告有几道选择题,玩家最后指认一个人。评级从见习调查员、资深隐私志愿者到洋葱首席调查员,依用了几次提示、指认错几次与有没有落入陷阱而定。两个案件各自独立,可以从任何一个开始。
交互版、静态版与 PDF 版
两个案件到 10 月 20 日都补齐了三种语言与三种版本。交互版模拟一台调查员的电脑,有加密通信、浏览器、文件、看图工具、终端与调查板。在终端里需要实际输入 exiftool、grep 这类命令,不熟终端的人可以打开「新手辅助」,开了也不影响评级。手机上改成一次一个画面的界面,终端默认用「命令积木」,点击命令与文件就能组出命令。交互版可以安装成 App,存在设备上的文件一种语言约 1 MB,没有网络时也能游玩。
静态版只用 HTML 与 CSS,适合把 Tor Browser 安全等级设为「最安全」的读者。内容与交互版相同,对话的每个选择是一页,终端命令点开就能看到输出。游戏里的每个文件都能下载源文件。
PDF 版是 A4 的案件文件,可以离线或打印出来游玩。解答在最后几页,前面隔着一页黑色的「停」。解答页上下颠倒,用浅灰色的小字印刷,避免翻阅时不小心看到。
夜鹭事件的爆料照片是一个真实的 JPEG 档,EXIF 是刻意写入的,下载之后可以用自己的工具检查。三种语言共用同一份进度,游玩途中切换语言,对话与调查板会跟着换。英文版的故事仍然发生在台湾,写作风格的线索改用英文的习惯。
设计上的取舍
网站依游戏里的隐私原则设计,页面不加载网络字体,也不向其他网站发出请求。Tor Browser 的安全等级调高时会挡掉站外字体,页面仍然能完整显示。用 Tor Browser 打开 anoni.net/mystery 时,网址列会出现 onion 版本的提示。
anoni.net 上的交互版用社区自建的 Umami 计算有多少人开始调查、多少人结案,不设 cookie,浏览器打开 Do Not Track 或 Global Privacy Control 时不送出任何数据。Umami 只记录开始调查、结案与评级三项,玩家指认了谁、答了什么、看了哪些提示都不会送出。onion 版本、静态版与 PDF 版不做统计。
案件里的 IP 地址只用保留给文档范例的区段,域名用游戏里的品牌或 .mist 结尾。QR code 的内容是虚构 App 的命令,扫描之后不会打开任何网站。取材自真实的诈骗手法时只取手法,不放原文、真名、真实网址或电话。案件的内容限于辨识与保护,不写可以直接用来追查真实人物的操作步骤。
源代码放在 GitHub 的 anoni-net/privacy-mystery,代码以 MIT 许可发布,剧本、人物、对话、提示与图片以 CC BY 4.0 许可发布。源代码里不放解答明文,每个案件的解答以要指认的那个人的全名作为密钥加密,玩家指认正确时游戏才能解开。破案的人自然取得密钥,可以参与修改剧本,还没破案的人浏览源代码也不会先看到解答。嫌疑人只有几位,把每个名字试一次就能解开,所以加密只能防止不小心看到。
期待的用途
我们最期待读过文档站的人把游戏当成练习的地方。读完 Metadata 是什么,为什么重要之后游玩夜鹭事件,读完邮件别名的指南之后游玩蓝鹊事件,概念会变成实际操作过的经验。顺序对调也可以,游戏里受阻的地方,往往就是文档站某一页说明的内容。
两个案件都设计成单人或 2 到 4 人合作,一个案件约 45 到 90 分钟,可以排进一堂课或一场工作坊。PDF 版可以打印出来分组讨论,不需要每个人都带笔记本电脑,场地没有网络也能进行。讲师可以让各组比较谁先排除了哪个嫌疑人、依据哪一条线索,再回到文档站的指南讨论实际的保护做法。现场要发放教材时,可以参考文档站的工作坊现场要发东西给大家。
读书会、公民团体的培训或新闻编辑室的内部训练,也可以用一个案件的时间,让新进成员查过一次照片的元数据与一封信的邮件头。新进成员未必有时间读完一整份数字安全指南,操作过一次之后,遇到真正的情况比较容易停下来多看一眼。
依 CC BY 4.0 许可,教学时可以改编案件、换成在地的情境,或翻译成其他语言,注明出处并附上链接即可。我们也在整理世界观设定,让之后的案件(包含社区成员写的)在人物、网站与时间上前后一致。
下一个案件的点子与反馈
委托板上还有一张「准备中」的卡片,欢迎大家提供案件的点子。想看哪一种隐私主题、遇过哪一种让人泄露身份的情境,都可以写在建议与反馈页,只有一个方向也没关系。游玩感想、受阻的地方与遇到的错误也从同一页回报,反馈只在社区内部整理,原文与联系方式不公开。熟悉 GitHub 的人也可以在下方的 GitHub 项目直接开 issue,内容会公开。在课堂或工作坊用过的话,我们特别希望了解分组的方式、花了多少时间、哪一段最多人受阻。
- 源代码与错误回报:GitHub 的 anoni-net/privacy-mystery,在 issue、PR 与 commit 消息里请不要写出解答
- 即时讨论:Matrix 公开 room(家服务器
im.anoni.net,链接见社区服务页) - 匿名线索:[email protected](GPG 公钥)
相关阅读
- Metadata 是什么,为什么重要
- 记者保护消息来源
- 邮件别名怎么用,以及它把信任交给谁
- 文件工作台 Gears,在浏览器里清除照片的元数据,文件默认不离开设备