秘密工作资料 [index]
- Anyone
秘密工作资料 [index]
- Anyone
在这个科技飞速发展的时代,我们的生活已经和数字世界密不可分。无论是社交、购物、工作,还是学习,都离不开互联网。然而,伴随着便利而来的,是信息泄露、网络攻击和隐私侵害的潜在风险。 每个人的个人信息在当今蕴藏着极为巨大的商业价值,并由此诞生了一大批的数据挖掘和用户追踪技术。不知道大家有没有想过,为什么购物软件总是那么懂你想要什么?因为你使用的软件虽然来自不同的公司,但是他们之间会互相共享你的信息,来对你进行数据挖掘,而这一切都是在你毫不知情的情况下发生的。 比如,大家可以打开微信:我>设置>个人信息手机清单/第三方信息共享清单。看一看你在使用微信的过程中,有哪些个人信息已经悄无声息地共享给了其他组织和个人。这些信息共享只是写在明面上的,由于微信是闭源软件,你不可能知道腾讯是否会在软件中收集你的其它信息——作为一个用户,这一切你都无权过问。 再举个例子:早年使用拨号上网时,还没有 https ,当时大家都在用 http 协议来浏览网页。而http是明文传输的,所以网络运营商可以轻易在用户的上网页面中插入广告。既然可以插入广告,那么篡改你的页面,盗取你在网页上留下的身份信息也是轻而易举的。 有人可能会问,这些大公司或网络运营商真的会有这么罪恶吗?我可以很明确的说,不仅是他们,一直被认为是最公平公正的国家政府也一直致力于监听公民在互联网上的一举一动。例如臭名昭著的棱镜计划(PRISM)。 棱镜计划是一项由美国国家安全局(NSA)自2007年开始实施的绝密级网络监控监听计划。该计划的正式名称为“US-984XN”。 根据报导,泄露的文件中描述PRISM计划能够对即时通讯和既存资料进行深度的监听。许可的监听对象包括任何在美国以外地区使用参与计划公司服务的客户,或是任何与国外人士通信的美国公民。国家安全局在PRISM计划中可以获得电子邮件、视讯和语音交谈、影片、照片、VoIP交谈内容、档案传输、登入通知的数据,以及社群网路细节,并透过各种联网装置,如智慧型手机、电子式手表等各式联网装置对特定目标进行攻击。综合情报文件《总统每日简报》中在2012年中的1,477个计划里使用了来自棱镜计划的资料。 关于PRISM的报道,是在美国政府持续秘密要求威讯向国家安全局提供所有客户每日电话记录的消息曝光后不久出现的。泄露这些绝密文件的是国家安全局合约外包商员工爱德华·斯诺登,于2013年6月6日在英国《卫报》和美国《华盛顿邮报》公开。
——来自维基百科“棱镜计划”页面 从视频中我们可以看到,参加政府主导的监听计划的都是一些大型互联网公司。 视频供参考: 电子监听、全国断网,棱镜门背后,中国如何从末路狂奔到世界之巅 作为一个普通人,我们该如何抵抗这种监听? 不用,或在处理重要工作(秘密工作)时不使用这些大公司提供的软件或服务。 那么该用什么? 你应该使用自由开源软件! 自由软件意味着使用者有运行、复制、发布、研究、修改和改进该软件的自由。 更精确地说,自由软件赋予软件使用者四项基本自由: 自由软件距离共产主义只差了政治运动。
——来自bilibili用户“阳和平说事儿” 为什么这样一个反对私有制的运动率先发生在计算机软件领域?而没有发生在人们日常生活的其他领域中?(比如为什么没有自由食物运动?自由住宅运动?) 因为软件本身具有以下特点: 应该说,只有使软件成为自由的,才能根本上保证用户对软件功能的知情权,才能根本上便于学习和研究软件开发技术,才能根本上有利于软件功能的增强,才能根本上充分发挥软件对全人类的作用。 将“软件应该是自由的”这种政治诉求在形式上(法律上)体现出来的,就是GPL(GNU General Public License)版权许可证。 GPL许可证中最核心的原则便是 Copyleft 原则。Copyleft 源自 Copyright(即英文中的著作权),只不过它与 Copyright 正好相反,它不保护软件作者的著作权,而是保证软件本身不被私有化,也就是保护软件本身的自由。GPL许可证中的“传染性”条款便是这个原则的具体体现。如果软件A以GPL发布,而软件B使用了A中的代码(如直接链接、静态集成等),则软件B的整体必须遵循GPL。所以,如果某人想开发一个专有软件,那么它不能够在软件中使用自由软件的代码,否则就违反了该条款。 通过 Copyleft 原则,其实不难窥见自由软件运动的野心。他希望通过最初的一批优秀的、基础性的自由软件(例如GNU/Linux,自由的操作系统),来逐渐“感染”整个软件世界,使之成为自由软件的世界。 应该说,在自由软件运动的起始阶段,Copyleft 原则对于资本主义是很有杀伤力的。一批又一批受到感召的知识分子加入了这个运动,纷纷为自由软件运动添砖加瓦。 但是,改良终究只是改良,资本主义很快便想到了如何应对自由软件运动。主要的应对方式有两种: 如今,在越来越多的资本仍借助开源软件装出一副伪善的面孔,而自由软件运动,已经被资本主义排挤到了一个十分小的空间中(大多读者在阅读此文前应该是没听说过“自由软件”这个词的)。应该说,要革命不要改良这条真理,在计算机软件领域内也是适用的。 但自由软件运动(和开源软件运动)还是给我们的秘密工作留下了丰厚的遗产,那就是安全的自由开源软件(开放源代码,审查代码后不含可能泄露隐私的程序和功能,并最后验证软件代码与实际安装的程序的一致性)。它是我们能够绕过无处不在的信息审查的有力武器。 而无害的开源软件,最终给世界带来了巨大的影响,使得资本主义生产关系下的软件工业焕发出新的生机: 微信作为一个现代通讯工具有以下几点问题: 这些问题在使用XMPP协议的聊天软件中都得到了解决,也就是说: 有些同志可能已经有了Telegram,但Telegram并不适合(至少不是最适合的)我们的秘密工作,因为Telegram有以下缺点: 视频供英语好的同志参考:Ok, but what is XMPP? 现在就想拥有一个XMPP账号并开始聊天?点这里 XMPP是基于去中心化(Decentralization),联邦制(Federation)和自部署(Self-hosting)的设计理念设计出来的。去中心化是指比如区块链、比特币等无需中央机构管理的技术;联邦制是指由一群计算机或网络在共同达成一致的基础上提供服务的协作方式;自部署是指建立在自主主机上的网络服务形式。这些技术都意在降低少量大机构对网络的控制,而且能够增强网络的生命力。许多自由软件的网络结构都遵循这样的设计理念。 如果你想要更好地实践去中心化原则,在注册XMPP账号时可以选择不使用默认提供的主服务器(地址为 conversation.im 的服务器,如果你使用conversation作为自己的客户端的话)。如果你不知道有哪些可用的XMPP服务器提供者,我推荐 Disroot 。他们是一个自由软件组织,提供多种多样的自由软件服务,例如:XMPP,标准邮件,jitsi(一会我们还会谈到),git(Forgejo,可作为GitHub的自由软件替代)共享文档和剪贴板等。具体使用方式参考前文超链接中他们的官网。 Matrix也是可以可选的聊天软件,但其注册时需要提供的邮箱可能会导致信息泄露(如果你使用了实名注册的邮箱),需要小心。 若要详细了解端到端加密的原理和使用,推荐观看以下视频: 我们也列出腾讯会议的几大问题: 那么对应的,jitsi中: 创建会议也十分简单,将上述域名后加上一个(最好复杂一点的,但好识记的)会议id,并完整复制到浏览器中即可创建/加入会议。会议链接形如(以 Disroot 服务器为例) 写文章在传递消息、理论争鸣和安全技术研究工作中都扮演了相当重要的角色。我们十分有必要找到一个安全,便捷,高效的方式来写文章。 先来说说许多同志在用的Word: 然后是Markdown: 可以点击这里查看Markdown基本语法和部分扩展语法。 Typora是一个比较成熟的Markdown编辑器/渲染器,但在Windows和macOS上需要付费使用(免费体验15天),非开源可能有潜在的安全风险。 Stackedit是一个运行在浏览器中的编辑器/渲染器,编辑文本、渲染预览和导出为HTML是免费的,导出为pdf要收费(其实这个软件里就是用pandoc这个文本格式转换工具将md转换为pdf的,完全可以在自己的电脑上安装pandoc来进行转换——如果你需要导出为pdf的话)。并且这个软件是开源的,更为安全(注意这个软件提供数据同步服务,如果开启这个功能数据就不再是纯本地的了,需要注意)。 Markdown不总是需要渲染为pdf,就像你现在看到的这本手册——用Markdown + Kodama 扩展语法来生成CSS + HTML页面,并托管到服务器上。 输入法安全也是许多同志在秘密工作中容易忽略的一环。我们先来看看闭源输入法(尤其是国产输入法)会对你输入的内容做什么: 我们需要使用开源的输入法来保证安全 除了安全之外,Rime还提供了很好的自定义性(当然如果你懒得折腾,完全可以照搬别人的配置文件),例如笔者就使用雾凇拼音替换了Rime客户端默认提供的词库。要使用基于Rime引擎的输入法,只需到Rime官网上挑选你的平台对应的客户端下载并使用即可。 在Linux上使用Fcitx5输入法(视频中演示了使用Fcitx5默认配置的使用,而Fcitx5本身也可以作为Rime引擎的加载器,此种情况下只需额外安装fcitx5-rime包并在输入法设置中选择Rime,配置方式同前文教程) 只是在XMPP客户端中进行端到端加密聊天,有时(当我们的工作开展得越来越广泛,越来越深入时)是不能满足秘密工作的需要的。我们可能需要对越来越多的类型的信息(例如各式各样的非文本格式信息,图片,视频,pdf文件等等)进行加密存储,在越来越广泛的场景下加密传输信息(例如标准邮件,网盘,甚至在极端条件下借助微信或QQ)。 举个例子,假如我们注册了 Disroot 邮箱(如果你想使用 Disroot 的 XMPP 服务的话,你必须注册一个他们的邮箱,因为这个邮箱域名同时也是你的 Disroot 域名),而查阅 Disroot 网站上关于他们的邮件服务的信息,我们发现他们的邮件是使用 SSL 加密的。这也就是说,在 Disroot 邮件服务器中,你的邮件内容是明文存储的。有没有什么办法在使用邮件服务的同时,不让我们的邮件内容被服务器提供商看到呢?(有些同志可能已经用过 ProtonMail ,他们的邮件协议是端到端加密的。我认为 ProtonMail 对还不熟悉秘密工作技术的同志来说是可用的,他帮你完成了加解密和密钥管理,可以避免在不完全了解加密工具的使用方式时的错误操作导致的信息泄漏或丢失。但如果能熟练掌握下述工具,那么很明显比使用 ProtonMail 要更加灵活,更加安全) 这时我们就需要一个工具来帮助我们灵活,安全地处理这些加密信息,并管理各种各样的密钥。他就是GNU软件计划提供的自由软件——GnuPG,简称GPG。 GPG 是加密标准协议 OpenPGP 的完全自由实现,(就像 conversation、Monal、Gajim 等软件是 XMPP 协议的实现)这意味着GPG是一个实现了OpenPGP协议中规定的全部功能的自由软件。互联网上论述关于如何使用 GPG 的材料很多,这里不再赘述,推荐参考下列文章和视频: FSF提供的电子邮件加密指南(该文章中对密钥类型的推荐已经过时, 现在我推荐使用ed25519作为密钥类型。这个类型也是GPG当前的默认密钥创建类型,能够提供更好的性能和安全性。除了在密钥创建时选择默认的ed25519外,其余加解密,签名等操作步骤是相同的。) 捍卫隐私的真正方法:Firejail,全盘加密,GPG和ufw(视频质量高,但理解其中的操作需要有一定GNU/Linux基础) PGP软件应用及邮件加密解密、数字签名——信息安全技术及工具应用 最后补充一点:不论你学到了什么加密手段,只有在正确的时间和正确的场合,并用正确的方式使用它们,才能够保证秘密工作安全、高效地进行。 生活在数字时代的大家对于密码都是不陌生的。但凡涉及到注册账户的地方,通常都要求你创建一个密码来保护你的账户安全。如果你使用上文提到的GPG来创建了一个密钥对,它也会要求你设置一个密码(GPG交互信息中显示的单词是passphrase,秘密口令,这个单词的含义与密码password有一定区别,感兴趣的读者可以自行搜索)来保护你的私钥(因为你的私钥是存储在电脑硬盘上的,如果你不设置密码,那么这个私钥是以明文形式存储的,任何拿到你的电脑的人都能够获得你的私钥)。如果你使用GPG中的AES256对称加密一些文件,同样你也需要提供一个密码。 而密码这个加密手段有显而易见的缺点,就是容易被暴力穷举攻破。一些网站可能会在你尝试密码次数过多后暂时禁止登录,可以减少被暴力穷举的危险;而GPG私钥和对称加密的文件由于是保存在本地的文件,就极易被暴力穷举密码破解。攻击者通常会使用暴力穷举的程序来穷举你的密码,而穷举速度与攻击者运行穷举程序计算机的运算速度有关。考虑到现代计算机的运行速度都很快了,所以为了保证密码的安全,我们要求用于秘密工作的密码至少满足以下两点要求: 而满足以上两点要求的密码是无法通过记忆力来记住的,所以我们就需要密码管理器来帮助我们记下这些密码。 最原始的密码管理器可能就是纸和笔了,我们可以将密码记录在纸上。但这样做有许多缺点:首先费时费力,而且不方便备份(人工抄写容易出错),不方便在电脑上输入这些密码。而且如果只有少量密码还可以写在纸上,密码一旦多起来,用纸和笔就极难管理,反而不安全。 所以我推荐使用KeepassXC来作为电脑上的密码管理器。如果想要在安卓手机上使用,可以选择KeepassDX,这个软件与KeepassXC是完全兼容的。这个软件内置了可以生成符合各种要求的随机密码的生成器,同时还提供了一些备份同步的选项(纯离线备份同步,可以通过和其他同步工具搭配使用来实现在线同步,但是对于重要的密码不建议在线同步,做好离线备份即可)。 这个软件使用起来并不难,提供了足够的使用引导和快速开始文档。但是我需要做一些安全上的提醒。 现在,你可以着手把之前注册的账号的密码全部更换为强密码,并且存储到密码数据库中了。 将密码数据库备份到安全的(不会被警察从后台监控的)云服务器上有一个额外的好处:它能够使你具备一定程度的抗审问能力。如果你能够在被捕前将存储在本地设备上的所有密码数据库备份都删掉,只保留云服务器上的那个备份,那么当你被逼问密码时,你就可以说:“虽然我的确记得打开密码数据库的密码,但是我已经把所有密码数据库的备份都销毁掉了,而数据库中的密码我不可能凭记忆力记得住。”这应该能让警察认为对你进行“大记忆恢复术”是无效的。但如果你还想在被释放后恢复访问你存储在云上的的数据库,请务必在被捕前将云存储服务的登录方式和打开数据库的密码转交给安全的同志。那位同志也应该在该名同志被捕后修改他的网盘账户密码来防止他有可能记住密码并说出来。 同时推荐一个安全的云存储服务提供商:Filen。他们提供免费的10GB存储空间,足够保存密码数据库了。如果选用这个云存储服务商,那么可以将导出的主密钥(在创建账户时会要求你这样做)在被捕前转交给安全的同志。 同时还有一个我认为更安全的备份密码数据库的方案,但要求同志们较高的组织度并都能熟练掌握ssh等远程登录工具。就是搭建一个境外服务器用于统一管理所有同志的密码数据库,并且服务器的ssh远程登录方式应该设为只允许ssh密钥对登录。然后每名同志都创建自己的ssh密钥对(使用方式与GPG密钥对是类似的)用于登录该服务器。一旦得到了某名同志被捕的消息,其他能够登录的同志应立即把他的ssh公钥从服务器“已验证的密钥”文件中移除,这样该名同志的密钥对将不再能够用于登录这个服务器。在该名同志被释放后,其他能够登录的同志再将服务器上属于他的密码数据库给他,并让他创建新的密钥对用于登录该服务器。 以上方案供大家讨论,我觉得应该不是最优的方案。 使用网络代理的目的是访问在国内被GFW屏蔽的站点,并且让审查者(GFW)和要访问的服务器均无法得知用户的真实IP地址,从而带来更好的网络匿名性。 网络代理的原理(为什么使用代理能达成以上目的)叙述起来比较复杂,内容量已经远远超过了本手册的一个小节能够叙述的程度;而且本手册尽量关注如何实操,对原理是尽量省略的。故这里不谈,笔者会找时间专门写一篇文章来谈这个问题。 许多对安全技术还不太了解的同志,可能还在使用诸如老王VPN、快连VPN等的国内一体式翻墙软件。这种软件极不安全,软件可以轻松监控你的所有网络流量,并且这种傻瓜式程序经常是受到警察后台监控的。如果你还在用这种软件来翻墙,请尽快更换为下述翻墙软件,并在更换后完全卸载这种软件。 接下来介绍两个在安卓手机上使用的代理软件: 大家在视频网站上看到了有价值的视频,经常会想要分享给其他人。但殊不知,分享链接中可能隐藏着你的身份信息,破坏你在加密聊天中的匿名状态。 以B站的分享链接为例: 若得到的链接(目前B站只会在移动端的分享链接中给出短链接)形如: 那么意味着B站为你生成了这段视频的短链接, 安全的做法是直接转发BV号(B站用于表示视频的唯一ID)。若使用其他没有类似设计的视频网站,那么可以将这段链接复制到浏览器中,并得到类似这样的链接(B站上也可以这么操作,只不过相比转发BV号麻烦一些): 然后将BV号后(即’?’后)的全部内容(包含分享人信息)删掉,得到这样的链接: 后才能安全分享。 这里提到的短链接只是一种通过软件(通常是专有软件)生成的,可追踪到生成者的字符串或文件。与此类似的还有图片数字水印。 这类追踪手段的特点是很高的隐蔽性,经常会让用户在不知不觉中泄露自己的身份信息。又因为通常存在于专有软件中,所以除非发生了一些事情告诉用户自己已被追踪(通常这时追踪者已经运用泄露信息达到了自己的目的),要不然用户几乎不可能发现。这也是为什么我们要使用开放源代码的软件,这样如果软件内置了这种追踪手段,通过审查代码就能发现。 GNU/Linux是GNU计划中最核心,最具代表性的软件。使用GNU/Linux操作系统的自由发行版意味着你向自由软件世界迈出了一大步!互联网上有许多教程教你该如何在自己的电脑上安装并使用这个操作系统。现代的GNU/Linux发行版许多都提供了图形界面来帮助你降低使用难度的同时享受到GNU/Linux的高效工作方式——远不像许多刻板印象所述的那样是极端硬核,要求你精通计算机原理才能够使用的操作系统。但我需要承认的是,这意味着放弃许多过去在专有操作系统上才能够使用的软件,以及被其所培养出来的(通常是低效的)使用习惯。但不用担心,现代开源社区的规模很大,相信你需要的专有软件都能够在开源世界找到替代,并最终使你能够在GNU/Linux上完成这些工作。 命令行操作其实也并不困难,MIT发布的课程计算机教育中缺失的一课中提供了很简明易懂的命令行使用教程(有中文翻译)。 支持用户自行配置OpenPGP密钥进行加密,相当于集成了一个简单的密钥管理器。但它与 ProtonMail 的不同之处在于,它不提供邮件服务(它只是一个邮件客户端,你需要在这里登录你注册的第三方邮件账户来收发邮件),客户端也是开源的。 1. 信息安全与自由开源软件 [foss-rev]
无处不在的个人信息监控与挖掘 [foss-rev/personal-information-surveillance]
棱镜计划——监听全世界 [foss-rev/prism]
自由软件(Free Software)运动 [foss-rev/free-software]
从自由到开源,改良主义逐渐被资本主义瓦解 [foss-rev/free2open]
XMPP——注重隐私,去中心化的开放通信协议 [foss-rev/xmpp]
jitsi——安全,免费的会议 [foss-rev/jitsi]
meet.jit.si 是 jitsi 官方提供的服务器,这里同样推荐 Disroot 提供的 jitsi 服务器:calls.disroot.org 。https://calls.disroot.org/YourMeetingID 。轻松写文章和笔记并搞定排版——Markdown [foss-rev/markdown]
Rime——开源,离线,跨平台的输入法引擎 [foss-rev/rime]
GnuPG 密钥管理器 [foss-rev/gnupg]
强密码与密码管理器 [foss-rev/password]
网络代理(“翻墙”) [foss-rev/network-proxy]
隐蔽的个人信息泄露者——“短链接” [foss-rev/short-link]
https://b23.tv/XXXXXXX/XXXXXXX中包含了你的(分享人)的信息,所以直接分享短链接会暴露你的身份。https://m.bilibili.com/video/BVxxxxxxxxxx?yyyyyyyyyhttps://m.bilibili.com/video/BVxxxxxxxxxx更多的自由开源软件集合 [foss-rev/more]
自由的操作系统:GNU/Linux [foss-rev/GNU-Linux]
开源的,可自部署的微博:Mastodon [foss-rev/mastodon]
开源,可加密的邮箱客户端:Thunderbird [foss-rev/thunderbird]