谷歌将Outline开源项目的代码作为SDK提供给开发者

via HERE.news

 
谷歌开始将其Outline代理客户端-服务器代码拆分为软件开发工具包(SDK),以便开发人员最终可以将绕过审查的技术嵌入到他们的应用程序中。


首先,对于那些不知道的人来说:谷歌的Jigsaw互联网自由单位提供了一个名为Outline的开源项目,包括一个客户端和一个管理器。

您可以使用管理器启动个人Outline代理服务器,该服务器可以位于您自己的硬件上或云中的虚拟机中,并生成由客户端用于连接到此服务器节点的访问密钥。您可以为自己设置一个Outline服务器,也可以与朋友、家人和同事共享访问权限。成功连接到它的客户端将通过Outline代理服务器安全地路由其设备的互联网流量。

因此,如果您无法从您所在的位置访问某些在线服务,您可以通过您的服务器连接,该服务器可以放置在具有更多自由的国家或网络中。Outline有时被描述为VPN,但它实际上是一个与Shadowsocks兼容的代理,并使用标准的加密和身份验证算法:AES和ChaCha20-Poly1305。

Outline的主要特点之一是您不使用公共VPN提供商:您使用自己的私有基础设施。另一个主要特点是它被认为相对容易设置和使用,可在Android、iOS、Windows、macOS、Chrome和Linux上随时使用。

现在,谷歌已经开始将该客户端代码作为软件开发工具包(SDK)提供,以便将其嵌入到第三方应用程序中,使这些应用程序能够为用户提供内置的绕过审查、地理锁定内容和其他限制的功能。

“在危机时刻,互联网连接是生命线,但威权主义政权擅长封锁访问。这就是为什么VPN在人们最需要时保持在线的关键所在,”Jigsaw团队在周三表示。

“介绍Outline SDK:我们的团队为开发人员创建了这个工具包。它使他们能够直接将绕过技术嵌入到他们的应用程序中。Outline SDK简化了这个过程,使应用程序即使面临审查也能继续提供关键内容,而无需使用VPN。”

目前,该项目的这一部分处于Alpha阶段,具有各种库可供集成到应用程序中。Jigsaw警告说,用Go编写的软件“处于早期阶段,不能保证稳定”。

还有一些其他限制。其中之一是目前它只关注客户端,因此如果您想在应用程序中使用Outline,您需要帮助用户设置代理服务器并导入访问密钥。服务器端库以及文档和其他资源尚未推出。

此外,Outline并不孤单。还有一些类似的努力,从这个记者的角度来看,Cult of the Dead Cow的类似Tor的Veilid也是一个用于应用程序集成的开源SDK。不过,与Outline不同,Veilid并不真正针对代理或VPN服务,而是针对客户端之间的私密、安全网络连接。

如果您想设置自己的VPN,可以查看Trail of Bits的Algo,它使配置WireGuard服务器(另一个很酷的项目)变得简单。

无论如何,通过Outline,开发人员似乎有另一个可能的选择,如果他们想要将绕过审查或地理锁定功能添加到他们的应用程序中。®

家庭网络改造记录:旁路由

缘由

今年夏天的高温天气都快结束了,但家里的网络却越发卡顿。终于在一个工作日的晚上,我把光猫和 J1900 软路由都拔电重启了一下。重启后发现,软路由再也不肯工作,家里就上不了网了。一番操作之后,确认了是软路由罢工。好在几年前淘汰下来的华硕 AC66U 还没有扔掉,于是接上去替代了软路由顶过了一天。

改造过程

我家里的网络布局是光猫拨号,接 J1900 软路由作为主路由,下面连接了 4 个组建了 Mesh 网络的 Linksys 路由器(开启桥接模式)作为无线 AP。软路由作为主路由的设置是最方便的,毕竟智能音箱的联网和 Apple TV 看油管都需要走外网。但软路由作为主路由也有不合理的地方,因为大多数设备都不需要联外网。30 多个设备都通过软路由走一遍,看起来不是经济的选择。J1900 这样的 x86 软路由发热量比较大,在夏天稳定性下降也是个麻烦事。最近拔电重启的频率明显增加,想不到这次拔电之后就再也起不来了。

于是趁着这个机会,干脆还是试试旁路由。原本的 Linksys 路由器设置的是桥接模式,现在就改成了路由模式,作为主路由。把原来的软路由刷机之后做成旁路由。目前 J1900 软路由至少是固件有损坏,重启数次,都不能正确运行。给这货刷固件需要找 HDMI 线连接显示器、找个 USB 键盘、找个 U 盘来协助写固件,虽然这些东西家里都有,但是折腾起来还是比较痛苦的,于是想干脆还是买个友善 R4S 软路由。我目前办公室里在用一个 R2S 的软路由,非常稳定,看了一下已经连续开机四百多天了,因此对这样的 ARM 设备增加了信心(当然办公室的气温和使用环境比家里电视柜要强多了)。另外,这友善的固件可以写到 TF 卡里,而往 TF 卡写固件比较方便,放在读卡器里插到电脑里就行了。这期间也有朋友提到了给 Apple TV 刷 TVOS17 的测试版固件,然后装某些 App 作为软路由,但考虑到稳定性,还是买个 R4S 的专职软路由可能更合适。于是有了这些操作:

  • 将 Linksys 改成路由模式。这个比较简单,Web 方式登录路由器后台一键修改;
  • 给 R4S 找个合适的 OpenWRT 固件。目前固件很多,也比较成熟了。
  • 把 R4S 设置成旁路由模式。这个在油管上也有不少教程,我参考的是 洋葱的教程
  • 更改一些需要连接外网的设备的网络设置,包括电脑、Apple TV、Google Home、Amazon Echo Dot 等等,把他们的网关和 DNS 都指向 R4S。但修改过程中发现智能音箱不支持修改网络设置,而 Linksys 也不能修改 DHCP 参数。研究了一番,只有关闭了 Linksys 主路由的 DHCP 功能,打开了 R4S 的 DHCP 功能。这样一来,就算是入侵式的旁路由模式了。局域网内的流量都需要通过旁路由走一遍,看起来跟软路由作为主路由没有差别,但在稳定性上还是有一些好处,如果旁路由出问题了,打开主路由的 DHCP 功能就可以了。

于是形成了这样的网络模式:

家庭网络.png

有待观察的地方

  • Linksys 在路由模式下其实是一个节点管理所有设备,目前对它的稳定性还没有足够的信心,只能先观察一阵子。
  • 目前 R4S 拖这么多设备的信心也不是很足,稳定性也有待观察,希望目前这个固件能够重复出 R2S 的稳定性,动辄能连续开机一年以上。 如果稳定性解决不了,可能得升级无线 AP 或者把 R4S 改成主路由,到时又是一番折腾。

信息茧房自救指南

Picked image

Michael Simmons

“我们消费的信息和我们摄入的食物一样重要。它影响着我们的思想,我们的行为,我们如何理解自己在世界上的位置,以及我们如何理解他人“ ——Evan Williams,Twitter和Medium的联合创始人

现在,在世界的某个角落,有一段文字、一章内容或者一整本书籍,只要你读过,就有可能永久改变你的人生轨迹。我把这种内容称之为“突破性知识”。

在这个信息爆炸的时代,寻找并掌握突破性知识的能力,是我们需要学习的最重要的技能之一。我们每个人都曾有过类似的突破性体验。可能是父母、导师或老师说过的一句话,深深地改变了我们的思维和行为。或者是一本书,深深地震撼了我们的内心世界。(下文将这种书籍简称为“触动书”)。

比如,沃伦·巴菲特的“触动书”《聪明的投资者》,他在19岁时就阅读了这本书。这本书为他的投资哲学奠定了基础。

埃隆·马斯克的“触动书”《银河系漫游指南》,他表示这本书帮助他思考更大的问题,从而解决世界上更大的问题。

我最近的“触动书”是《穷查理宝典》,作者是白手起家的亿万富翁查理·芒格。这是我首次接触到心理模型的书籍。通过学习和应用心理模型,我成功开启了新的事业。

一次突破性的知识体验可能只持续几分钟,但它的影响却可能伴随我们一生。这就是学习的极致杠杆效应。

现在,试想一下,如果每年都能有一次突破性的知识体验,而不是十年才有一次,或者一个月有两次,而不是一年仅有一次,那么这将会带来翻天覆地的改变!这并非遥不可及的梦想。

考虑到突破性知识的强大影响力和寻找它的难度,我们都需要面对一个基本问题:我们如何在有限的时间中,在纷繁复杂的信息中,找到那份能够改变我们的突破性知识?

这个问题引起了我的浓厚兴趣。作为一个阅读过数千本跨学科书籍的人,我多年来一直在反复思索这个问题。

我的书架、亚马逊购物车、Kindle电子书库和Audible愿望清单中堆积着数百本我渴望阅读,但却没时间去读的书。因此,我形成了一个真正的“无尽的阅读列表”。

随着时间的推移,我开发出了一种独特的方法来应对信息过载,这是基于我自身的经验,并借鉴了世界上许多顶尖企业家和领导者(包括埃隆·马斯克)的学习方式

然而,在我们开始采纳这种方法之前,我们首先需要理解这个问题。正如发明家查尔斯·凯特琳(Charles Kettering)曾经说过的,“一个好问题的提出,就等于问题解决的一半。 ”

一、引发信息末日的四大问题

尽管信息过载是一个重大问题,但实际上,它是由四个各自以指数级加速恶化的问题构成的,它们汇集在一起,就可能引发一场巨大的危机。

这场危机有可能让我们集体变得更加愚昧,而非更加聪明,让我们分崩离析,而非团结一致。这场危机有许多种称呼,但我认为最为恰当的是信息末日(Info-Apocalypse)。

引发信息末日的四大问题包括:内容冲击、信息茧房、持续性分心以及错过恐惧症(FOMO)。

1.信息末日问题一:内容冲击(Content Shock)

“信息的大量涌入导致了注意力的极度匮乏……”——赫伯特·西蒙(Herbert A. Simon)

随着在线出版和社交媒体的蓬勃发展,我们可以接触到的知识量正在飞速增长,而我们人类的信息处理能力却无法跟上这种速度。同时,每一天,每一秒钟都有更多的内容涌入眼帘。

问题在于:我们如何从中挖掘出大量新信息,学习新技能?这些信息深藏得太深,我们甚至无法察觉到它们的存在。

2.信息末日问题二:信息茧房(Echo Chambers)

随着群体规模的扩大,它们往往会变得不稳定,多元化,最终分化为各种子群体。这种现象在宗教中表现得尤为明显。

犹太教一直在发展,直到它分裂成多个不同的教派,其中一个分支发展成为基督教。基督教发展后,又分裂成天主教和新教。新教发展后,进一步分裂为浸信会,卫理公会,路德会等等。这种分裂现象在每个发展中的领域都有所体现。

每个新的群体都会发展出自己的语言和文化。尽管这提高了群体内部的沟通效率,但知识的输入和输出却变得更加困难,因为它必须先经过语言和文化的转译。

每个群体都会根据与其他群体的差异或优势发展出一种身份认同。这些群体之间的观念壁垒,会导致极端化和偏见的产生。

在宗教和政治领域,这种现象尤为明显,但实际上,它在所有领域都存在:过于商业化的艺术家被视为“背叛者”。企业家高管常常认为学者过于理论化,脱离实际。许多从事自然科学的人,甚至不认为社会科学是真正的科学。写畅销书的学者,常常被视为不够严谨的研究人员。

问题在于:每个群体都生活在自己的信息茧房中,他们认为这就是“真实”的世界,他们通过妖魔化其他群体来维持这种信念。

在这个社交媒体和算法推荐内容盛行的时代,这些信息茧房变得更加孤立,因为我们接触到的信息越来越少,尤其是那些来自于我们所选择的群体之外的信息。

3.信息末日问题三:注意力持续性涣散(Constant Distraction)

大约五年前,我有幸采访了Meetup的创始人,我们不经意间聊起了社交媒体的信息流推荐功能。他当时说了一句令我困惑不解的话:“如果你现在就觉得这东西容易让人上瘾,那么等到五年后再来评价吧。”

如今,五年的时光已然流转,我的与移动设备、互联网以及社交媒体的关系经历了惊人的转变。

随着时间的推移,我变得日益警觉。我甚至从手机上卸载了所有社交媒体应用,并设定了一个只有我妻子知道的App Store密码,以阻止我再次下载新应用。尽管如此,我仍觉得自己在这场战斗中节节败退。

尽管我可以随心所欲地摆脱Facebook、Twitter或YouTube,但它们每一个都是我业务发展的重要平台。我在Facebook上管理着一个拥有近五万名成员的群组,通过Facebook和谷歌来购买广告,并在Facebook上推广我的最新文章。

我曾尝试屏蔽YouTube,但考虑到它上面有大量有价值的教育视频,我最终决定还是解除屏蔽。即便我大部分时间在家工作,一旦打开电脑,我总感觉自己仿佛是在一个喧嚣的集市中设立了一间店铺。

市场营销专家、软件开发者和增长黑客正获得比以往任何时候都要多的用户行为数据。他们借助这些信息,来吸引并牢牢抓住人们的注意力,以达到让他们沉迷于产品的目的。

为了达到这个目标,他们每年都有数十亿美元的投入。他们甚至开发了基于广告收益的商业模型,或者通过传播虚假信息,以最少的努力获得最多的点击量。

更为复杂的是,不久的将来,越来越多的人可能会通过先进的VR眼镜来体验生活,这无疑会使问题进一步恶化。

关键问题在于,我们的现实和虚拟世界正被越来越多、越来越精心制作的内容所包围,无论是经过策略性筛选的内容、广告,还是假新闻。这些都是根据我们个人的喜好来定制的,形成了一股不可忽视的干扰力量,不仅分散了我们的注意力,还阻碍了我们获取更有价值的信息或实现个人目标。

4.信息末日问题四:害怕错过(FOMO - Fear of Missing Out)

如今,相较于十年前,吸引人的“值得一读或一看”的内容比以往任何时候都要丰富。然而,更多的选择并非总是好事,事实上,这种选择的多样性很快会让人感到不堪重负。

让人感到不堪重负的并非选项的多样性,而是高质量选项的丰富性。对人们来说,放弃这些优质选择是一件非常痛苦的事,这种现象在心理学上被称为“损失厌恶”。

此外,由于优质选择如此之多,我们经常面临一些难以明确判断哪个是最佳选择的决策。

例如,为了未来的职业规划,我们应该阅读有关数据科学或人工智能的书籍吗?或者,我们是否应该提升自己的沟通技巧以成为更优秀的领导者?又或者,我们是否应该探究最新的健身方式、饮食习惯或育儿指导,以提升个人生活的品质?

这些选择每一个都是重要的,而在这些选择之间进行权衡,就像是在苹果、橘子和杏仁之间做选择一样复杂。这类决策在心理层面上极其具有挑战性。

问题的关键在于:由于优质选择过多,加之对最佳选择的预知不足,我们总是在不断地质疑自己是否做出了正确的决策。

结果: 媒体垃圾食品成了我们的日常饮食。

这四个挑战(内容冲击、信息茧房、注意力持续性涣散和FOMO情绪)使得未经深思熟虑的普通人更容易沉迷于“媒体垃圾食品”。

他们会随意浏览眼前推荐的内容,轻易点击那些分心的信息,而当面对好的选择时,却往往感到无法确切判断哪一个是最好的。

在公共卫生领域,“食物沙漠”是指那些因为地理位置偏远,难以以合理价格获取到新鲜食物的区域。

对于那些未经深思熟虑的人来说,互联网越来越像一个“信息沙漠”,充斥着大量的低质量或误导性的信息。

更为让人担忧的是,很多人在这样的环境下误以为自己变得更加聪明了,实则恰恰相反。

这就是问题所在,解决办法是什么?

虽然信息末日为我们描绘了一幅黯淡的未来图景,但从另一角度看,突破性知识和信息比以往任何时候都更加丰富和触手可及。

现在,来自世界顶级专家的更多样化的知识,越来越容易获得,其中大部分都是免费的或负担得起的。据预测,未来九年内,人类所创造的科学知识将达到目前水平的两倍

比如说,如果我想学习摄影,20年前,我只能寻找本地的专业培训课或者阅读相关书籍。而在今天,我可以轻松地在YouTube上找到27.7万个相关视频,并从中选取一个来学习。

更进一步,我还可以以180美元的价格购买Masterclass的全程通行证,从罗恩·霍华德(Ron Howard)那里学习导演艺术,从阿伦·索尔金(Aaron Sorkin)那里研究编剧,或者从马丁·斯科塞斯(Martin Scorsese)那里深入了解电影制作。

在这种情况下,只要我们谨慎地挑选我们所消费的信息,我们实际上就是生活在一个充满了无限可能的信息乌托邦之中。

正如查尔斯·狄更斯(Charles Dickens)在《双城记》中写道的:

这是最好的时代,这是最坏的时代; 这是智慧的时代,这是愚蠢的时代; 这是信仰的时代,这是怀疑的时代; 这是光明的季节,这是黑暗的季节; 这是希望的春天,这是绝望的冬天; 人们眼前拥有一切,人们眼前一切荒芜; 人们正踏上天堂之路,人们正走向地狱之门;

如何快速获取突破性知识,如何在信息噪音中快速找到信号,这些技能将在未来转化具有巨大的优势。这些人仿佛生活在一个充满“美味水果”的信息富饶之地。这正是一项被普遍低估的技能。

要将这个充满潜在危机的信息世界转变为一个乌托邦,关键在于我们需要从被动接收信息转向主动筛选和获取信息。

我们不能盲目依赖新闻摘要、默认通知、算法推荐来为我们在信息世界中指引航向。控制这些内容的公司并没有把我们的最佳利益放在心上,他们已经失去了公众的信任。

这些信息流的设计目的只有一个:在短期和长期内尽可能地吸引并抓住你的注意力。这种商业模式从根本上与我们的人生目标是相冲突的。

那么,我们应如何在这海量的信息噪声中寻找到那极少数有价值的信号呢?在一个充满“害怕错过(FOMO)”和各种干扰的环境中,如何找到那些能带来突破的知识和信息?我们应该如何在这个信息爆炸的时代中,建立起自己的信息乌托邦,而非沉沦在信息末日的漩涡里?

在接下来的部分,我提出三个解决方法:

1.问自己一个简单的问题,可以帮助你从增强性知识中筛选出突破性知识;

2.使用具有更高信噪比的新知识格式;

3.学习一项技能,这将系统性的帮助你找到突破性知识;

解决方法一:提出问题,从增强性知识中筛选出突破性知识

在掌握学习技巧时,最核心的一步就是明确区分增强性知识和突破性知识。一旦你明确了自己的目标,找到它便会变得无比容易。

增强性知识进一步加强了我们对已知事物的认知。这就像我们已经读过二十本营销相关的书,然后又读了一本讲同样内容的书。这样的知识通常只是一时激起你的兴趣,很快就会被遗忘。

相反,突破性知识会挑战我们关于世界如何运作的基础信念,或者为我们提供一种全新的观察视角。这样的知识会深刻地影响我们。

要识别有潜力的突破性知识其实并不难。在我接触任何媒体内容之前,我都会自问一个直截了当但极具启发性的问题:

这是否有潜力从根本上改变我的生活?

这个关键问题让我避免了因为标题吸睛或者推荐在我的信息流而盲目地消费内容。

我第一次深入理解这两种知识之间的差异是在观看埃隆·马斯克的一次访谈时。当记者询问他对未来的创业者有何建议时,马斯克给出了一个出人意料的回答。

积极地寻求并认真听取负面反馈至关重要,这是人们倾向于避免的,因为这很痛苦。我认为这是一个很常见的错误。

当我第一次听到这个回答时感到十分惊讶。因为,这似乎过于简单了。但随后我发现,马斯克的这种方法比我初次理解的要更深刻和底层,它凸显了科学方法的威力。

让我给你举一个大家都会知道的例子。几百年前,人们普遍接受的观点是太阳围绕地球转动。尽管这个概念早在公元前3世纪就被提出过,但从未得到广泛的关注。

在整个历史长河中,每一天人们都可以看到太阳从地球的一侧升起,然后在另一侧落下。这样的个人经验看似都支持了这一普遍观点。

然而,哥白尼仅凭几年的研究和一种新颖的工具——望远镜,就成功推翻了这个长达数千年的普遍认知。他收集的新数据显示,实际上是地球绕着太阳转动。

这个众所周知的案例突出了一个至关重要的观点:能够证伪你当前观点的证据,其价值远超过能够证实你观点的证据。历代科学家都有着这样的认识:科学是通过被证伪而非被证实来不断发展的。

一条能推翻你现有观点的证据,其价值可能远胜于一百万条能证实你观点的证据,就如同一本能带来突破性知识的书籍比一百本只能提供增强性知识的书籍更有价值一样。

解决方法二:意识到信息过载是一个古老的问题,有古老的解决方法值得一提的是,信息过载其实是一个由来已久的问题。信息过载的速度可能在增加,但这个问题本身并不是新出现的。

人类的集体知识以一种超过我们处理能力的指数速度持续增长。

自古以来,哲学家、思想家和知识分子就一直对信息过载发出评论。罗马哲学家塞涅卡(Seneca)曾说:

拥有数不尽的书籍和图书馆有什么意义?其所有者一生可能都难以阅读完这些书名。

学习者并没有从中受到指导,反而被它们的数量所压垮。

塞涅卡的观点强调了,仅仅拥有大量的信息和资源,并不意味着能够从中受益。相反,过多的信息可能反而成为一种负担。

1962年,詹姆斯·米勒的研究更是强调了处理信息输入的重要性,表明人们必须对信息的处理和应用进行调整,而不是无节制地吸收。

而在2007年,大卫·福斯特·华莱士更进一步,他提醒我们,在处理海量和多变的信息时,维持开放和灵活的心态是至关重要的。

与所有古老但重要的问题一样,人们代代相传地试图解决信息过载的问题。虽然大多数尝试都失败了,但确实有一些解决方案一直存在,并且它们非常有价值。

其中一个解决方案就是寻求具有高价值密度的知识格式

社交媒体上发表的帖子,通常是一个作者一天中最好的想法。在某些情况下,如果他们发表了一篇长文章,这可能是他们这个月最好的想法。

一本书更有价值,因为它包含了作者好多年中最好的想法。它还经过了仔细的审查、批准和编辑。

书籍摘要更有价值。在过去的五年里,这类摘要的制作已经形成了一个小型产业。如果你在亚马逊搜索任何一本畅销书,极有可能会发现有数个相关的摘要版本可供购买。

在谷歌上一搜索,你甚至能找到免费的版本。像Blinkist和Get Abstract这样的平台已经汇编了数以万计的书籍摘要,并以音频和文本的形式提供给大众。

书籍摘要具有其独特的价值,原因在于它们将书中的核心观点、引人入胜的故事、实用的练习和主要的结论进行了高效压缩。

此外,在这一类别中,我还会包括那些由作者自己进行的关于书的演讲(如TEDx或Google Talks)以及与作者的专访(如播客节目)。这些都是对原书内容的精华概览。

领域摘要则是对整个领域的精炼。最好的例子是《傻瓜指南 For Dummies guides》系列。自从它们近30年前首次推出以来,该系列已经销售了超过两亿册,并且拥有2500多个不同的标题,使其成为史上最畅销的书籍系列之一。

但还有一种比领域摘要更简洁的格式,这就是所谓的心智模型

2013年,当我看到内容冲击的曲线变化时,我有了一个“哇,天哪!”的时刻,并开始思考:“作为一个社会,我们该如何应对这一现象?我个人应该怎么办?”

这个问题引发了我一段历时多年、充满曲折的探寻之旅,最终让我意识到,世界上很多最聪明的企业家们与我们大多数人在知识结构上有很大的不同。他们不是将知识按照不同的学科或领域进行分类,而是使用心智模型。

这最终推动我深入研究了心智模型。

心智模型是跨时间、跨研究领域、跨生活领域观察到的现象的表征。在我看来,它们提供的知识价值最大,因为:

它们传递的知识比书本摘要,甚至是领域摘要都要浓缩得多。

随着时间的推移,它们的价值不会减少(甚至会增加)。

它们广泛适用于各个领域。

例如,我最喜欢的心智模型就是二八法则:20%的努力或投入会导致80%的结果或产出。这个规则适用于商业、创意、人际关系、健康以及其他许多领域。

另一个心智模型的例子是机会成本:即在面临多方案择一决策时,被舍弃的选项中的最高价值。

这个模型在你一生中做决定的时候是很有价值的,因为它鼓励你思考一个决定可能的替代方案。它会阻止你做出头脑中的第一选择。

当你学习心智模型时,你会开始看到生活中各个领域的潜在模型,在噪音中发现信号,就变得容易得多。你可以在《This Is Exactly How You Should Train Yourself To BeSmarter》中读到一些有价值的模型。

一旦我理解了心智模型的力量,我就开始在我的生活中使用它们。我回顾了以前的许多错误,心想:“天啊!我不敢相信我做了那个决定。如果我只知道XXX心智模型,我肯定会避免这种情况发生。”

突然,我能够在生活中遇到的问题上取得突破性的进展,而这些问题是我多年来一直停滞不前的……尤其是与金钱有关的问题。

我开始有许多更大的、违反直觉的想法,而以前我的很多想法都是很传统的。我开始用不同的方式说话和写作。我把我所有的知识都与心智模型联系起来。每一个新的情况都是一个更大原则的例子。

我能够看到更多学科之间的联系。

我现在几乎每天都会接触到“a-ha”知识。我看到或读到的东西,要么打破了我的世界观,要么将我几个月或几年来一直在探索的许多不同的东西联系了起来。

解决方法三:学习如何学习

学习如何学习是一系列的技能,将最终帮助我们找到突破性的知识,并将其应用到我们的生活中,以便在最短的时间内取得成果。

很少有人意识到,学习如何学习是自己独特的技能。 结果,它们并没有改善。

由于它涉及信息过载,它包括:

了解科学的方法,来识别高质量的信息

了解各种知识的价值

理解那些认知偏差(如确认偏差逆火效应邓宁-克鲁格效应光环效应群体内偏见)。

学习如何学习是一个宏大的话题,这些要点提供了一个起点。

结语: 从信息末日到信息乌托邦

我依然清晰地记得,在我还是纽约大学的学生时,有一次我与城市中心20所高中的学生进行了关于创业精神的对话。那次经历让我深切地感受到了这个世界存在着多么巨大的不平等。

我尤其难忘的是哈莱姆区的一所高中,那里更像一座监狱,而非一个教育机构。所有的窗户都被木板牢牢封住,建筑物外部布满了涂鸦。为了进入学校,我还需要经过金属探测器的检测。学校四周是围墙和废弃的建筑,几乎像是一座孤岛。

与此形成鲜明对比的是,我的高中环境美丽,周围是鲜花、运动场和繁茂的树木。在我那一届毕业生中,几乎每个人都有机会进入大学深造。

当我踏入哈莱姆的那所学校,我感到一阵深沉的悲哀。谁能说这里的机会是平等的呢?学生们能上哪所学校,归根结底只取决于他们碰巧出生的地方。

这种社会差距不仅令人心痛,而且更让我担忧的是,网络世界可能孕育出比现实世界更大的不平等。尽管互联网理论上为每个人提供了平等的机会,但并非每个人都平等地理解如何充分利用这些机会。

这种情况导致了一部分人生活在信息过剩的混乱世界里,而另一部分人则享受着信息丰富的乌托邦。如果我们不积极地学习网络环境管理的技能,并将这些知识广泛传播,我担心我们的社会将进一步两极分化。

via https://www.linkedin.com/pulse/while-everyone-distracted-social-media-successful-people-simmons-1e/ & https://here.news/post/51490631-fddf-4699-af26-42d721ddc3bc/%E4%BF%A1%E6%81%AF%E8%8C%A7%E6%88%BF%E8%87%AA%E6%95%91%E6%8C%87%E5%8D%97

中国如何将软件漏洞武器化

via HERE
 

Atlantic Council 于2023年9月6日发布一份报告,由Dakota Cary和Kristin Del Rosso撰写,探讨了中国如何利用新的漏洞管理系统武器化软件漏洞。


报告揭示,中国2021年《软件漏洞管理办法》要求研究人员和公司在48小时内向国家漏洞数据库(NVDB)报告漏洞。报告确定了一些表现出色的公司遵守了法律,并暗示可能有更多外国公司参与其中。报告指出,向NVDB报告的漏洞很可能被中国的攻击团队利用。

报告还强调,与工业和信息化部(MIIT)共享的漏洞信息被传递给具有攻击任务或与过去黑客攻击有关的实体,如国家安全部第13局(CNITSEC)的北京局、上海交通大学和北京天融信。报告认为,这些实体有可能将接收到的漏洞报告用于攻击目的。

报告还指出,在2021年规定之前,公司向国家安全部的中国国家漏洞数据库(CNNVD)报告漏洞,并且在向MIIT提交漏洞报告的公司中存在重叠。报告得出结论,中国的新漏洞管理系统存在重大风险,并引发了对漏洞报告被用于攻击性网络行动的担忧。

报告要点:

- 《网络产品安全漏洞管理规定》(RSMV)于2021年9月在中国实施,要求在发现漏洞后的48小时内向工业和信息化部(MIIT)报告软件漏洞。

- 这些规定还禁止在补丁发布之前公开漏洞信息,发布概念验证代码以及夸大漏洞的严重性。

- MIIT的新漏洞数据库与中国国家计算机网络应急响应技术协调中心(CNCERT/CC)和公安部(MPS)共享数据,使它们能够访问漏洞报告并有可能将其用于攻击行动。

- 在实施这些规定时出现了官僚主义问题,导致漏洞披露减少到其他政府管理的数据库。目前尚不清楚CNCERT/CC是否能够通过与其他国家的事件响应合同收集漏洞信息。

- MIIT正在资助研究项目以改进产品安全标准,并从网络安全公司那里接收软件漏洞。这些漏洞很可能会被国家安全部门用于攻击行动的评估。

- 中国的规定与美国的分散、自愿报告系统存在显著差异。






完整报告: https://www.atlanticcouncil.org/in-depth-research-reports/report/sleight-of-hand-how-china-weaponizes-software-vulnerability/

Storm-0558密钥获取的过程

 via https://msrc.microsoft.com/blog/2023/09/results-of-major-technical-investigations-for-storm-0558-key-acquisition/

2023年9月6日,微软发布了一篇博客文章,详细介绍了中国威胁行动者Storm-0558如何使用获得的Microsoft账户(MSA)消费者密钥伪造令牌以访问OWA和Outlook.com。在确定威胁行动者获得了消费者密钥后,微软进行了一项全面的技术调查,调查了Microsoft账户消费者签名密钥的获取方式,以及它如何被用来访问企业电子邮件。我们的技术调查已经结束。作为我们对透明度和信任的承诺的一部分,我们将发布我们的调查结果。

密钥获取

微软维护着一个高度隔离和限制的生产环境。微软员工访问生产基础设施的控制措施包括背景调查、专用账户、安全访问工作站以及使用硬件令牌设备的多因素身份验证。该环境中的控制措施还防止使用电子邮件、会议、网络研究和其他合作工具,这些工具可能导致常见的账户被入侵矢量,如恶意软件感染或钓鱼,同时使用及时和有限访问策略限制对系统和数据的访问。

我们的企业环境也需要安全身份验证和安全设备,并允许使用电子邮件、会议、网络研究和其他合作工具。虽然这些工具很重要,但它们也使用户容易受到针对性网络钓鱼、令牌窃取恶意软件和其他账户被入侵矢量的攻击。因此,根据政策和作为我们零信任和“假定受损”思维方式的一部分,密钥材料不应离开我们的生产环境。

我们的调查发现,2021年4月发生的消费者签名系统崩溃导致了一个崩溃进程的快照(“崩溃转储”)。这些崩溃转储应该不包含签名密钥。但在这种情况下,一个竞争条件导致密钥出现在崩溃转储中(这个问题已经得到修复)。我们的系统没有检测到崩溃转储中的密钥材料(这个问题已经得到修复)。

我们发现,这个崩溃转储在当时被移动到了隔离的生产网络之外,进入了我们连接到互联网的企业网络的调试环境。这与我们的标准调试流程一致。我们的凭证扫描方法没有检测到其存在(这个问题已经得到修复)。

在2021年4月之后,当密钥通过崩溃转储泄露到企业环境时,Storm-0558行动者成功入侵了一名微软工程师的企业账户。该账户具有访问包含错误包含密钥的崩溃转储的调试环境的权限。由于日志保留政策的原因,我们没有具体证据证明这个行动者的数据外泄,但这是最可能的行动者获取密钥的机制。

消费者密钥为什么能够访问企业邮件

为了满足日益增长的客户需求,支持同时使用消费者和企业应用程序的应用程序,微软在2018年9月引入了一个公共密钥元数据发布端点。作为这个统一提供的一部分,微软更新了文档,澄清了密钥范围验证的要求-用于企业账户的密钥以及用于消费者账户的密钥。

作为预先存在的文档和辅助API库的一部分,微软提供了一个API来帮助进行加密签名的验证,但没有更新这些库以自动执行这个范围验证(这个问题已经得到修复)。邮件系统在2022年更新,使用了公共元数据端点。邮件系统中的开发人员错误地认为库已经执行了完整的验证,并没有添加所需的发行者/范围验证。因此,邮件系统会接受使用消费者密钥签名的安全令牌的企业邮件请求(这个问题已经使用更新的库得到修复)。

事后回顾

微软作为我们的深度防御策略的一部分,不断加强系统的安全性。与MSA密钥管理相关的投资在https://aka.ms/storm-0558博客中有详细介绍。本博客中详细介绍的内容只是这些整体投资的一部分。为了明确起见,我们在这里总结了与这些发现相关的改进措施:

- 确定并解决了允许签名密钥出现在崩溃转储中的竞争条件问题
- 加强了对错误包含在崩溃转储中的密钥材料的预防、检测和响应能力
- 加强了凭证扫描以更好地检测调试环境中签名密钥的存在
- 发布了增强的库,以自动进行身份验证库中的密钥范围验证,并澄清了相关文档

中国GFW封锁了Cloudflare的1.1.1.1 和WARP官网的HTTPS访问

via HERE

中国的网络审查系统(GFW)封锁了由Cloudflare运营的1.1.1.1 WARP官网的HTTPS访问。这个封锁行为是在2023年9月5日下午开始的。虽然很多DoH(DNS over HTTPS)早就被封了,但1.1.1.1这个网站一直未被封锁,直到现在才被封锁。这可能是因为GFW不得不补上这个“漏洞”,防止类似操作在推广的Early-Data with Client Hints(ECH)中被大规模复制。

Picked image

目前还没有关于ECH被封锁的报道。2020年,ESNI(Encrypted Server Name Indication)在中国被封锁,但ESNI封锁是针对特定的传输层安全性(TLS)扩展号码进行的。而ECH使用不同的扩展号码。目前没有任何审查测量平台正在测试ECH。

中国的网络审查系统(GFW)采用了一种介于放行和封锁之间的模糊干扰机制。一些大型网站在中国访问时可能会不稳定,但并非完全无法打开,比如github.com。几天前的测试中,1.1.1.1可以正常访问(实际上很多人都知道它以前没有被封锁),但是需要重新启动几次Chrome才能成功测试Cloudflare的ECH。根据昨天的新闻和很多人的测试结果,1.1.1.1的TCP/443端口无法使用,但其他端口的服务可以正常访问。这表明底层路由没有问题,GFW专门封锁了1.1.1.1的TCP/443端口,这与之前的行为不同。

根据路由追踪结果,TTL(Time to Live)在传输中过期的问题似乎是由省级移动运营商的干扰导致的。最后一跳的IP地址指向了省级移动运营商的服务器。

Picked image

总的来说,中国的网络审查系统(GFW)封锁了由Cloudflare运营的1.1.1.1 WARP官网的HTTPS访问。这可能是为了防止类似操作在推广的ECH中被大规模复制。目前还没有ECH被封锁的报道,而之前的ESNI封锁是针对特定的TLS扩展号码进行的。GFW采用了一种模糊干扰机制,一些大型网站在中国访问时可能会不稳定。1.1.1.1的TCP/443端口被封锁,但其他端口的服务可以正常访问。TTL过期的问题可能是由省级移动运营商的干扰导致的。

via https://github.com/net4people/bbs/issues/280#issuecomment-1706267069

个人信息获取与知识管理系统(Heptabase + Logseq + Readwise)

前言

yu_blog_my_pkm_system

我似乎一直有一种把自己作为一个机器来看待的倾向,常常会以置身事外的视角来观察自己,集成各个模组,并不断折腾和优化。当自己搭建的某种行为模式或是习惯在某个时刻突然发挥了作用就会有一种欣喜感,而当受到外界或是自身状态影响而停止运转时则会有一种秩序感被打破的重度不适。

作为一个效率工具控,我的个人知识管理与信息管理则可以说是自己最重要的一部分。其实本没有想要写这篇文章,有太多的先例实践在前,而自己也只是一种前人基础上的微调优化,常常没有什么信心去分享,而这周重新搭建和优化了一下自己的知识管理系统,很开心,有一种想要记录下来的冲动,本来只是想在周报里稍稍提及,却发现越写越收不住,于是就有了这篇文章。

其实之前对于信息输出在周报中时常有提及,所以本文也会覆盖一些之前的内容,并且终于补上了信息获取和知识管理的部分,就作为一个总集篇了。其中,理论的部分,如“费曼学习法”、“卢曼卡片盒笔记法”已经有很多很好的介绍文章,不再花篇幅介绍了,而更多的是阐述我使用的软件工具实践,希望能够对大家有所帮助。

信息获取与管理

不知道从什么时候起,其实能很明显感受到自己对网络世界信息的依赖。可能有别于游戏瘾或是经常被诟病的短视频算法鸦片,我的这种依赖并不是机械性地刷刷刷,或是面对焦虑时的逃避,而是一种对于信息获取的渴求,甚至内化为了一种生活方式。因为我对自己的信息筛选和消化能力颇有信心,所以其实一直以来没有在输入源和整理上花太多的心思。

而随着自己接触和感兴趣的领域越来越多,信息不断积累,有时候仅仅是浏览和通读都已经有些超过了记忆负荷,并且这些信息常常也零散地留在我的笔记或是脑海的某个角落中,并没有成为内化的一部分,以后也很难记起或是检索,于是重新对自己的信息获取方式进行了梳理。

信息源分类

我的信息来源按照大类可以分为以下几类:

  1. 随机想法
  2. 信息流
  3. 聚焦阅读

随机想法

logseq_random_thoughts

在日常生活、工作、学习或是什么任意的时刻,我有时候会萌生一些随机的想法,这些想法和当前所做的事并不相关或是天马行空,但也许会在未来的某个时刻被用到。因为我大部分时间都不会离开电脑太远,我通常会记录 Logseq 的 Journal 中,有时可能会临时发在一个只有自己一个人的微信群中或是 Telegram 的 Saved Message 中,后续再补充上去。

信息流

我每天从起床开始就会被来自各个平台的信息流所裹挟,依赖于网络世界其实最难免的是与社交媒体与算法的抗争,一方面是要避免自己被过载的贩卖焦虑的信息或是熟人社交圈的“Peer Pressure”所困扰,另一方面也需要警惕算法所构造的信息茧房。实话说这一点挺难做到,即使自己多少算是具备一些克制和过滤信息的能力并有意识在这样做,但依然难以避免被其所扰乱思绪或是引导。

我最后采取了一种简单却也行之有效的方式 —— 关闭微信朋友圈入口与大部分软件通知提醒,并且把大部分不带社交属性而仅仅是用于信息获取的平台(如 B 站、微博等)的关注数量控制在 100 以内,如果新增则筛选优化之前的关注,减少无关内容的干扰。在完成上述行为的基础上,我使用 RSS 订阅这一似乎有些古早的方式,但是仅订阅了不到 50 个网站,其中大部分是博客或是个人网站,且会定期筛选,减少自己每天的 feeds,但几乎在这一 feeds list 中的文章都会扫一下标题或初步浏览一下。

readwise_reader_feeds

这一点我最开始是自己搭建了 Miniflux 服务来抓取,并且用一个 RSS-to-Telegram-Bot 来推送提醒的,而最近开始使用 Readwise Reader 后,由于体验很好,便把这一部分迁移过来了。我使用的是 Readwise Reader 内置的一种管理模式,分为三类:

  1. Later
  2. Shortlist
  3. Archive

我会每天扫描一下 Feeds 面板,扫到感兴趣的文章会加入到 Later 中,作为一个稍后读,当然,就以前的经验来说,稍后读放久了常常会变成“稍后也不读”,所以我在筛选时非常克制,仅将很感兴趣且有时间后马上会读的文章加入,并要求自己在晚上的时候清理 Later 列表。

而我们也会在社交媒体互联网的各个角落被推送到一些信息,其中我尤其在意的是这几类:

  1. 感兴趣的一些观点/推文 threads
  2. 感兴趣的文章
  3. 有用的资源

如果是一些比较有意思的观点或是评论,我通常并不会加入软件的对应 List、收藏夹等,而是会复制其内容到 Logseq 的 Journal 中并打上对应 tag,其实这一步很多软件(包括 Readwise Reader)提供了推特 threads 保留或是其他的一些更方便保存推文的方式,但我倾向于自己复制和整理,以几句话的方式记录下来而不是仅仅存一个链接,这样似乎刻意增加的步骤会让我多一步审视这些观点,避免被强引导性或是情绪化的观点所影响,也更有益于自己消化信息并内化为自己的想法。

readwise_chrome_extension

如果是自己感兴趣的一些文章,则会通过 Readwise 的 Chrome 插件进行阅读或保存。这部分我给自己的要求是每篇文章都要打上标签和 notes,notes 中主要描述为什么要读这篇文章。

readwise_chrome_extension_highlight

其中如果仅仅是需要泛读或是获取信息的一些文章,我会加入 Later 列表,而精读的我则是会加入 Shortlist,并且必须要对其中一些有意义的话加 highlights,也尽量对 highlights 加上自己的一些评价和想法,这些都可以在插件中直接操作,很方便。

pinboard_bookmark

而如果是一些有用的网站、文档、代码、软件或是其他资源类的信息,我会使用 Pinboard,一个很古早但是很好用的书签管理工具来保存,同样是用浏览器插件进行保存,也会打上标签和简单的描述,大概一年左右了我积累了 455 个书签,其中大部分我都能够通过 tag 和名称在需要用的时候快速检索到。

而像是视频网站等我更多还是使用点赞或是收藏的方式,一方面对创作者表示支持,另一方面也通过一些自动化工具同步到我的 Telegram 个人频道「Yu’s Life」,并标记上对应 tag,但大多视频的信息效率并不高,所以更多是一些有趣的或是探索向的。

聚焦阅读

除了上述这些被动推送的一些信息流外,其实我们也还会有很多特定主题或是与自己的领域强相关的一些信息需求,这需要我们去主动阅读一些书籍、报告等。

wechat_reader_sync_readwise

这一部分我原本更多是使用 kindle 或阅读纸质书,并手动在 Logseq 进行一些记录。但是在 Randy 推出 Notepal 工具后,我开始使用微信读书,它本身有很多可阅读的书籍资源,并且我也用它导入 mobi 或是 epub 格式的一些书籍,阅读体验感还不错。

wechat_reader_to_readwise

并且也很方便做一些笔记和标注,由于全平台同步,可以很方便地定期通过 Notepal 浏览器插件同步到 Readwise 中,效果也很好(上图就是同步过来的),这样也更有动力在碎片的一些时间里阅读一些书籍。

信息管理

上一节我对信息获取的渠道和系统进行了一些梳理,但这些依然还是零散的信息,如果要让它们成为自己知识和思考的一部分,依然需要更多整理、消化与沉淀的过程。但涉及那么多平台,搜索和整理并不方便,也比较难建立起信息之间的关联,受正在读的这本「Building a Second Brain」 启发,我主要做了如下两点:

  1. 借鉴和改造了 P.A.R.A 作为自己的全局 Tag 分类系统
  2. 使用 Logseq 和 Heptabase 构建 Second Brain

全局 Tag 系统

pama_framework

其中 P.A.R.A 是作者所提出的一个框架,分别是:

  • Projects,正在做的项目相关
  • Areas,特定领域
  • Resources,未来可能会用到的资源
  • Archives,已完成的项目

我在这四个的类型的基础上增加了一个「Thoughts」,用于归类我的一些随机的想法。

logseq_tag_system

我的实现思路是把这五个类型作为我的全局一级 Tag,而更具体的一些项目、领域、行业可作为二级、三级 Tag,例如 Projects/writing/pkmAreas/blockchainThoughts/weekly-review 等,Logseq 提供了很强大的多层 Tag 系统,会自动根据 / 进行分层,便于检索,分类也一目了然,我把之前现有的一些 Tag 修改后效果如下:

para_logseq_graph

基于 Heptabase + Logseq 的 Second Brain

我之前一直都是使用 Logseq 作为自己的知识管理系统的,最近看到了 P.J. Wu 吳秉儒 入职 Heptabase,对这一平台有了更多了解,于是将其纳入自己的知识管理系统,和 Logseq 双刀流共同构建自己的第二大脑。只要因循上文所说的 Tag 系统,两个平台之间并不需要额外的关联便可以各司其职地进行信息管理。

logseq_sync_readwise_sample_page

其中,Logseq 作为兼具简单任务管理和双向链接的笔记系统,非常适合沉淀我上述的这些信息流和一些自己阅读后产出的初步想法,如高亮、评论 notes 等,由于 Logseq 有 Readwise 官方插件,可以很方便地将我在微信读书和网络文章中的高亮和笔记自动同步为 Logseq 的 pages,并通过时间与 Journal 关联,这样我在每天/每周写一些回顾时能很直观地看到我过去的阅读和想法,如上文就是我在阅读 枫影 Justin Yan 的这篇「每个人每天都只有 24 小时,希望我的选择真的是我的选择」时在他的网站上使用 Readwise Chrome 插件做的一些高亮和笔记,自动同步到了 Logseq 中,并根据我的配置打上了一些 tag 与属性。

Logseq 很适合做一些信息整理和回顾,但当我要对某个领域/概念进行调研、阅读书籍整理脉络或是输出一篇博客文章时就显得稍稍有些单薄,它的信息以 block 为单位散落在每一天的 Journal 中,通过双向链接或是 tag 进行关联跳转,不方便进行一些直接的可视化关联,也需要自己对在前期就对关键词和 tag 做到足够清晰,依然有一些心智负担,所以这一部分我使用 Heptabase 来进行管理。

Heptabase 可以看作是一个功能完善的白板笔记工具, P.J. Wu 吳秉儒 有很多关于 Heptabase 的高质量介绍文章,可以阅读了解一下。简单来说,它主要分为以下三个层级:

  • Map
  • Whiteboard
  • Card

heptabase_map_overview

其中 Map 可以看作是我们 Second Brain 的整个空间,里面可以装各种白板,我建立了五个白板来作为第一层级 Tag。

heptabase_whiteboard_overview

卡片代表的是我们脑中的一个个想法或是一些独立的信息点,我们可以通过卡片与卡片的关联,白板与卡片之间的层级来组织我们知识。

当我在写 Foundry 智能合约开发框架的教程时,我首先把一些零散的知识点或是实践中遇到的一些经验、教训以一个个白板平铺在 Foundy 的白板上(其为 Projects - Blockchain - Smart Contract 下的第四级子白板),当某个知识点已经足够多时,我会把白板之间再作一些 Section 分组、画线关联等。

其中它还提供了原生与 Readwise 的集成,可以在右侧边栏直接选择 Readwise 中我们对某些文章、书籍的一些 highlights 与 notes 作为卡片直接引入到白板中,为它们建立一些关联,很像我们人脑整理零散信息或是头脑风暴的过程,完美符合了我的需求。

heptabase_chiangmai_trip

我目前还会用它做一些旅行攻略,把从小红书和其他人的攻略帖中的信息点作为一个个 card 放在旅行规划的白板中,然后再通过关联和分组进行整理,很规整。

信息输出

而我的输出则主要包含以下几个部分:

  1. 笔记/观点/日常
  2. 长文
  3. 主题研究
  4. 信息流

笔记/观点/日常

yu_twitter_profile

其中 Twitter 「pseudo_yu」是我最主要的无结构化的信息输出渠道,有时候是一些关于新技术的想法、关于工作的感受、与朋友相见的心情或是一张可爱的猫猫图,都构成了我输出,也对应着我输入中那些随机想法的快速产出。

其中,Twitter 上认识的朋友也给我带来了很多温暖。

长文

yu_blog_homepage

而我最重要的输出平台是个人博客「Pseudoyu」,目前周报是我的主要出口,偶尔也会有一些主题或专题性的关于技术或是效率工具的博文。

主题研究

输出一篇博文由于要考虑到受众、言辞表述与完整性等,其实有一定的心智负担,且周期较长,而我在进行特定领域的主题研究过程中大多把学习资料和一些 Demo 放在 GitHub 仓库中或是 Logseq 的某个笔记角落,有时候时间久了就得要重新学习了。而我现在更多放在 Heptabase 的一个白板里,能够存放很多小的知识点并且在后续的创作中再进一步归纳和精炼,所以其实可以在初具框架后把这个白板共享出来,可以与更多人进行交流,也能对同样在学习的朋友有所帮助。

信息流输出

yu_telegram_channel_screenshot

我搭建了一个自己的 n8n 同步服务,采集我零散在各个平台的信息输入输出,并且还会将我对电影、书籍的观后感以及自己其他一些所思所想发在自己的 Telegram 频道「Yu’s Life」里。也关注了一些频道和群组获取一些资讯或是认识一些志同道合的人,偶尔会手动转发,主要同步以下几个平台:

  • Blog,现在更像是一种生活日志。
  • YouTube,也是重度用户了,看技术相关教程和数码资讯比较多,偶尔也有很多好玩的内容。
  • Bilibili,主要保留了自己这么多年一直在关注的一些博主,看旅拍比较多,只看动态不看首页和热门。
  • Pinboard,书签和网站保存管理工具,重度依赖了。
  • Instapaper,管理稍后读,主要是一些精品或是长文的保存。
  • GitHub,也是日常刷了,看一些好的项目,也用列表在管理 Star。
  • Spotify,好听的歌会标注一下。
  • 豆瓣,记录自己的书籍、剧集、电影、动漫和游戏,也是重度使用了,也在尝试每一个看过/玩过的作品都写一下自己的评价。

数据备份

虽然像是 Twitter、Telegram 已经是比较大的平台,但毕竟是中心化的产物,再加上最近的各种风波,对于自己这些信息源的归集总是不放心 Telegram 作为最终站,尤其是我常常在删消息时差点误点删除全部(奇怪的交互体验),所以信息的同步导出部分也是很重要一环,我使用 Crossbell 生态下的 xLogxSync 服务进行我的博客与各平台信息的链上备份。

xLog

yu_xlog_profile

视觉效果和体验感都不错,且基于 Crossbell 地址能够很方便地进行 follow 和评论,包含了 NFT 展示柜、个人作品集等功能,这是我的 xLog 访问地址,有兴趣的朋友们也可以关注一下,不过目前出于定制化程度、各种历史文章迁移路由问题、自己各项数据统计服务变动等考虑,还是更多作为一个同步分发渠道。

xSync

yu_sync_profile

xSync 能够同步 Twitter、Telegram Channel 等平台,不需要做任何侵入式改造就能把我的聚合频道作再一次备份与存档,后续可以通过 xChar 来查看自己的各项消息了,很完美的解决方案,这是我的 xChar 个人主页: xChar,也可以通过 xFeed 查看我的信息流。

总结

it is probably a mistake, in the end, to ask software to improve our thinking.

Casey Newton 在最近的一篇「Why note-taking apps don’t make us smarter」中如是说。确实,这些系统或是工具软件其实终究只能辅助我们进行信息管理和输出,并不能代替我们思考,但构建知识管理系统在取悦自己的同时,也能够让思考变得更加高效,悦己才能达人,从而产出更有价值的输出。

希望这篇文章能够对大家有所帮助。

沙特男子因推特言论被判死刑,这是对网络批评者的最严厉判决

根据人权倡导者和他的家人的说法,沙特阿拉伯一名退休教师最近因推特上批评该国领导层的言论而被判死刑。

现年50多岁的穆罕默德·阿尔加姆迪(Mohammad Alghamdi)的判决是沙特阿拉伯对社交媒体用户日益加强的打击行动中的最新一例。虽然其他人因推特和在线批评政府而被判服刑20至45年,但阿尔加姆迪似乎是第一个仅凭其在推特(前身为Twitter)和YouTube上的帖子而被判死刑的人。

对批评者的广泛打击行动发生在沙特阿拉伯王储穆罕默德·本·萨勒曼(Mohammed bin Salman)推动敏感改革的同时,这些改革已经彻底改变了该国的生活,并放宽了许多限制。这些全面的改革,如允许妇女开车,结束公共场所的严格性别隔离规定,以及向娱乐和旅游开放国家,与同样全面的异议浪潮同时发生。

居住在麦加的七个孩子的父亲阿尔加姆迪在推特上的两个匿名账户之间只有10个关注者。根据人权观察组织的说法,他在这个社交媒体网站上抨击所谓的政府腐败,但主要是转发更受欢迎的政府批评者的帖子。

推特账户受到打击

X平台是沙特阿拉伯最受欢迎的社交媒体网站之一。沙特人经常在这里发泄他们对政府政策的不满。

ALQST人权组织的监测和倡导主任丽娜·阿尔哈特卢尔(Lina Alhathloul)表示,尽管用户因推文而受到打击和拘留,但该平台仍然是沙特人可以表达观点的最后一片空地,即使是匿名的。

她说:“这是人们实际上讨论社会问题的最后一个空间。” “在现实生活中,每个人都自我审查。他们知道自己处于危险之中,但人们认为在推特上,尤其是在匿名账户上,他们可能是安全的。”

但是,即使是匿名账户也无法保护用户免受沙特起诉。目前尚不清楚沙特当局如何能够在X上验证阿尔加姆迪的身份。

在其他案件中,沙特用户的身份似乎已经泄露,使他们面临逮捕和长期监禁的风险。美国的一份联邦调查和联邦调查局的投诉导致去年一名前推特员工被判犯有未注册为沙特阿拉伯代理人的罪名。他还因收受贿赂以交出沙特政府批评者的机密用户数据而被判有罪。

阿尔哈特卢尔表示,所有这些案件传递出的信息是明确的。

她说:“无论你做什么,无论你是谁,你都不安全。你只需要让自己闭嘴。”

领导层遭到批评引发反恐法

阿尔加姆迪的案件之所以引人注目,是因为他在X上的账户显然影响范围很小,与他所受到的严厉判决形成鲜明对比。他可以对判决提出上诉。

人权倡导者和人权观察组织审查的法庭文件显示,阿尔加姆迪于7月10日根据该国措辞含糊的反恐法被判死刑,原因是他利用自己的社交媒体账户犯下了侮辱沙特国王或王储以及支持恐怖主义意识形态等罪行。

他被利雅得的专门刑事法院判有罪。该法院成立于15年前,用于审理恐怖主义案件,但也被用于起诉政府批评者。

检方在这些案件中经常辩称,侮辱或批评沙特阿拉伯领导层对国家安全构成威胁,可能破坏社会稳定。许多这些审判都是在闭门会议上进行的。

沙特政府尚未回应NPR关于阿尔加姆迪案的请求。然而,当官员在公共论坛上被问及沙特阿拉伯的法律和司法体系时,他们经常表示法院是独立的,或者认为整体改革需要时间。

一个被通缉的兄弟

阿尔加姆迪的兄弟赛义德·阿尔加姆迪(Saeed Alghamdi)认为,对他的年轻兄弟的起诉实际上是为了针对他。赛义德·阿尔加姆迪是一位著名的伊斯兰学者,与该国最著名的被监禁批评者有联系。他于2013年离开沙特阿拉伯,并创办了沙纳德(SANAD)沙特人权组织。他现在在英国流亡。

他说,沙特当局试图说服他回到王国,承诺如果他回去并停止在国外进行活动,他将获得金钱和美好的生活。

他说:“他们想要针对我个人,因为他们曾多次试图说服我回国。” “当我拒绝时,他们就采取了这种方式。这是我对这种情况的看法。”

尽管无法独立验证他的说法,但已知有对海外异见人士家属的报复行动。

赛义德·阿尔加姆迪说:“只要情况保持这样,我绝对不打算返回(沙特阿拉伯)。”

苹果终止CSAM照片扫描,引发HeatInitiative运动儿童安全争议

via: https://here.news/post/64f4001020d455ec73d542a6

儿童安全组织Heat Initiative计划发起一项运动,敦促苹果在儿童性虐待材料扫描和用户举报方面采取行动。该公司在周四发表了一份罕见而详细的回应。

12月份,苹果表示将终止设计一个保护隐私的iCloud照片扫描工具,用于检测平台上的儿童性虐待材料(CSAM)。该项目最初于2021年8月宣布,自从开始就备受争议。苹果最初在2021年9月暂停该项目,以回应数字权利组织和研究人员的担忧,他们认为这样的工具不可避免地会被滥用和利用,从而危及所有iCloud用户的隐私和安全。本周,一个名为Heat Initiative的新的儿童安全组织告诉苹果,他们正在组织一场运动,要求苹果“检测、举报和删除”iCloud中的儿童性虐待材料,并为用户提供更多举报CSAM的工具。

今天,苹果罕见地回应了Heat Initiative,概述了放弃开发iCloud CSAM扫描功能的原因,并转而专注于一套称为通信安全功能的设备上工具和资源。苹果与WIRED分享了公司对Heat Initiative的回应,这不仅提供了苹果转向通信安全的理由,还展示了苹果对创建绕过用户隐私保护(如加密)的机制的更广泛观点。这一立场与加密辩论更广泛相关,特别是在英国等国家考虑通过法律要求科技公司能够访问用户数据以配合执法请求的情况下。

苹果的用户隐私和儿童安全总监Erik Neuenschwander在公司对Heat Initiative的回应中写道:“儿童性虐待材料是令人憎恶的,我们致力于打破使儿童易受其害的胁迫和影响链条。”他补充道,尽管与一系列隐私和安全研究人员、数字权利组织和儿童安全倡导者进行了合作,但公司得出结论,无法继续开发CSAM扫描机制,即使是专门为了保护隐私而构建的机制。

Neuenschwander写道:“扫描每个用户的私人存储的iCloud数据将为数据窃贼寻找和利用提供新的威胁向量。这也会引发潜在的滑坡效应。例如,扫描某一类型的内容会为大规模监视打开大门,并可能导致希望搜索其他加密消息系统的内容类型。”

Heat Initiative由Sarah Gardner领导,她曾是非营利组织Thorn的外部事务副总裁,该组织致力于利用新技术打击在线儿童剥削和性贩卖。2021年,Thorn称赞苹果开发iCloud CSAM扫描功能的计划。Gardner在8月30日星期三给首席执行官Tim Cook的一封电子邮件中写道,Heat Initiative对苹果终止该功能的决定感到“失望”,这封电子邮件也与WIRED分享了。

Gardner在给Cook的邮件中写道,苹果的照片扫描工具“不仅将苹果定位为全球用户隐私的领导者,还承诺从iCloud中清除数百万张儿童性虐待图像和视频。……儿童性虐待是一个难以讨论的问题,这就是为什么它会被沉默和被遗忘。我们在这里确保这种情况不会发生。”

苹果坚持认为,即使是自己出于善意的设计,在实践中也无法得到充分的保护,而对于消息、FaceTime、AirDrop和照片选择器等功能的设备上的裸体检测是更安全的替代方案。苹果还开始为其通信安全功能提供应用程序编程接口(API),以便第三方开发人员可以将其整合到其应用程序中。苹果表示,通信平台Discord正在整合这些功能,并且应用程序开发者普遍热衷于采用这些功能。

Neuenschwander在给Heat Initiative的回应中写道:“我们决定不继续推进几年前关于iCloud照片的混合客户端-服务器方法的CSAM检测提案。我们得出结论,从实际上来说,这是不可行的,因为它最终会危及我们用户的安全和隐私。”

对于Heat Initiative要求苹果为用户创建CSAM举报机制,该公司告诉WIRED,它的重点是将其脆弱或受害用户直接与当地资源和执法机构联系,以协助他们,而不是将苹果定位为处理报告的中间人。该公司表示,为交互式平台(如社交网络)提供这种中间服务可能是有意义的。

保护儿童免受在线性虐待的需求是紧迫的,然而,随着这些关切与更广泛的加密辩论交织在一起,苹果拒绝实施数据扫描的决心将继续受到考验。

阅读Heat Initiative和苹果之间的完整交流,请参见下文。为了保护发件人和收件人的隐私,WIRED已经删除了敏感个人信息:

Picked image
Picked image
Picked image

https://www.wired.com/story/apple-csam-scanning-heat-initiative-letter/

"请別公开": 加拿大公民實驗室公开搜狗輸入法安全漏洞和隱私侵犯的完整報告

via here.news

搜狗输入法加密中的漏洞使按键暴露于网络窃听

作者:Jeffrey Knockel, Zoë Reichert, and Mona Wang

日期:2023年8月9日

我们敦促搜狗输入法用户立即更新到最新版本的应用程序(至少是Windows版本13.7,Android版本11.26或iOS版本11.25)。

主要发现:

  • 我们分析了腾讯的搜狗输入法,该输入法是中国最受欢迎的输入法,拥有超过4.5亿的月活跃用户。

  • 通过分析软件的Windows、Android和iOS版本,我们发现了搜狗输入法自定义的“EncryptWall”加密系统以及它对敏感数据进行加密的漏洞。

  • 我们发现,包含用户按键等敏感数据的网络传输可以被网络窃听者解密,揭示用户的实时输入内容。

  • 我们已将这些漏洞披露给搜狗开发人员,并且他们已经发布了修复的软件版本(截至2023年7月20日,Windows版本13.7,Android版本11.26和iOS版本11.25)。

  • 这些发现强调了中国软件开发人员使用得到良好支持的加密实现(如TLS)的重要性,而不是试图自行设计加密系统。

简介:

与输入少量字母的字母语言相比,输入象形文字语言(如中文)更加困难。中文有数以万计的字符,使用频率各不相同,无法全部放在一个键盘上。没有标准的中文输入方法,但随着现代技术的发展,出现了许多互补的方法。最流行的是拼音输入法,基于汉字的拼音罗马化。注音是另一种常用的音标输入法,而形状或笔画输入法(如仓颉或五笔)也常被使用。现代输入法还支持通过手写、语音识别、照片或OCR输入字符。

Picked image

在本报告中,我们分析了腾讯的搜狗输入法,这是中国最受欢迎的输入法,拥有超过4.55亿的月活跃用户,并且有适用于Windows、Android和iOS等多个平台的应用程序版本。搜狗输入法占据了中国输入法用户的70%,其次是讯飞和百度的产品。麦咖啡在2015年的分析中曾观察到该应用程序的Windows版本在不加密的情况下传输设备标识符,但没有分析该应用程序的加密系统传输的数据的安全性。

我们分析了搜狗输入法的Windows、Android和iOS版本,发现该应用程序的自定义加密系统存在严重的漏洞,使得诸如用户按键等敏感数据可以被网络窃听者解密。我们发现的这些漏洞不仅限于中国的中文作者,根据市场研究估计,访问该应用程序网站的美国用户占比超过3.3%,台湾占近1.8%,日本占超过1.5%。

本报告的其余部分结构如下。在“方法论”部分,我们概述了我们用于分析搜狗输入法的逆向工程工具和技术。在“发现”部分,我们描述了搜狗输入法的自定义加密系统的工作原理,我们发现的漏洞以及受影响的数据传输示例。在“缓解措施”和“协调披露”部分,我们讨论了搜狗如何修复我们报告的漏洞以及我们如何向他们报告漏洞。最后,在“讨论”部分,我们反思了这些漏洞对中国应用程序生态系统中的系统性问题的影响。

方法论:

我们分析了搜狗输入法的Windows、Android和iOS版本。为了获取我们分析的版本,我们在2023年5月从产品网站下载了Windows和Android版本的最新版本(尽管Android版本截至2021年6月3日仍然可用,但目前在Google Play商店中不可用)。我们从Apple的App Store获取了iOS版本(有关分析版本的详细信息,请参见表1)。

平台 搜狗输入法版本 设备

Windows 7 SP1 13.4 虚拟机

Android 9 11.20 Google Pixel 2

iOS 14.8 11.21 iPhone SE 2代

表1:分析的搜狗输入法版本的详细信息。

我们使用静态和动态分析方法分析了这些版本的搜狗输入法。我们使用jadx对Dalvik字节码进行静态分析和反编译,使用IDA Pro对本机机器代码进行静态分析和反编译。我们使用frida对Android和iOS版本进行动态分析,使用IDA Pro对Windows版本进行动态分析。最后,我们使用Wireshark和mitmproxy进行网络流量捕获和分析。

发现:

我们发现搜狗输入法的每个版本都使用一个名为“EncryptWall”的加密系统对敏感数据进行加密。我们发现Windows和Android版本的搜狗输入法在这个加密系统中存在漏洞,包括对CBC填充预言攻击的漏洞,这使得网络窃听者可以恢复加密的网络传输的明文,揭示包括用户输入的内容在内的敏感信息(请参见表2以了解受影响的版本的详细信息)。在Android版本的情况下,我们还能够恢复用于加密流量的对称加密密钥的第二半部分。我们还发现了影响iOS版本的加密的漏洞,但我们目前不知道如何利用我们分析的版本中的这些漏洞。

平台 是否可利用?

Windows 是

Android 是

iOS 没有已知的利用方法

表2:搜狗输入法受影响的版本摘要。

在本节的其余部分,我们详细介绍了对搜狗的EncryptWall加密系统的攻击。我们首先介绍加密系统的背景,然后详细说明我们对其进行的攻击,最后分析我们的攻击如何适用于我们分析的三个平台,以适应EncryptWall系统在不同平台上的实现差异。

搜狗的EncryptWall

我们在本报告中讨论的攻击涉及我们在搜狗的“EncryptWall”加密系统中发现的漏洞,该系统似乎旨在通过明文HTTP POST请求中的加密字段,将敏感流量安全地隧道传输到未加密的搜狗HTTP API端点。在本报告中,我们将外部的明文HTTP请求称为EncryptWall请求,而每个EncryptWall请求封装了隧道请求的单个加密请求。尽管在我们分析的三个平台上的实现存在差异,但我们发现该系统的工作原理通常如下:

EncryptWall请求作为HTTP POST请求发送到搜狗EncryptWall API端点,其中包含至少五个HTTP表单字段,指定用于加密隧道请求以及加密隧道数据的加密参数。两个表单字段与指定用于加密EncryptWall请求中的其他字段的密钥和初始化向量(IV)有关:

“K” - 使用PKCS#v1.5填充,使用硬编码的1024位公共RSA密钥对256位AES密钥k进行加密的base64编码;每个请求随机生成k

“V” - 使用硬编码的128位初始化向量v进行加密的base64编码;每个请求随机生成v

这些字段中的三个字段分别进行zlib压缩、使用k和v进行加密,并根据以下伪代码进行base64编码:

ᴇɴᴄʀʏᴘᴛ(data) = base64_encode(AES_cbc_encrypt(zlib_compress(data, wbits=-15), k, v))

我们一直观察到以这种方式加密的三个字段如下:

“U” - ᴇɴᴄʀʏᴘᴛ(隧道HTTP请求的URL)

“G” - ᴇɴᴄʀʏᴘᴛ(隧道HTTP请求的GET参数,以查询字符串的形式)

“P” - ᴇɴᴄʀʏᴘᴛ(隧道HTTP请求的原始POST数据,如果有的话)

根据分析的平台和正在进行的请求类型,EncryptWall请求可能通过加密的HTTPS或明文HTTP发送。在使用HTTPS发送EncryptWall请求的情况下,我们认为这些请求在网络窃听方面是安全的,尽管EncryptWall请求的底层加密可能存在缺陷,HTTPS的TLS加密还可以提供额外的保护。因此,我们在本节其余部分的发现仅涉及我们观察到的通过不受HTTPS额外保护的明文HTTP发送的EncryptWall请求。

攻击

我们发现EncryptWall系统容易受到CBC填充预言攻击的漏洞,这是一种最初于2002年发表的攻击类型,影响使用密码块链接(CBC)块密码模式和PKCS#7填充的块密码。在这种攻击中,可以逐字节地恢复消息的明文,每个字节最多使用256个消息。我们不打算在此完全重述此攻击的工作原理,该攻击依赖于一种称为填充预言的特定类型的边信道,该边信道明确地显示解密后的接收到的密文是否正确填充。我们在EncryptWall系统中识别到了这样的预言,我们发现在“U”表单字段中发送的密文在包含错误填充时返回HTTP 400状态码,而在正确填充时,根据解密后的URL是否是有效URL,返回200状态码或500状态码。通过进行CBC填充预言攻击,这个填充预言允许我们不仅揭示“U”的整个明文,还可以揭示“G”和“P”的明文,因为它们使用相同的密钥和初始化向量。因此,通过使用这个填充预言,我们可以解密整个EncryptWall请求的内容。

在本节的其余部分,我们将这个攻击适应到Windows和Android平台上EncryptWall系统实现的所有偏差。尽管我们目前无法利用我们在iOS版本中发现的问题,但我们还是详细说明了EncryptWall系统中的问题。

Windows版本13.4

我们分析的Windows版本中实现的EncryptWall系统在一个细节上与上述基本实现有所偏差,即IV v不是公开的,而是以与AES密钥k相同的方式进行加密。由于这种差异,v不是立即可知的,这可能会带来两个潜在的问题:首先,在CBC填充预言攻击中,必须知道IV才能解密第一个明文块。其次,由于在加密之前,EncryptWall请求中的隧道数据被压缩,第一个明文块对于解压缩其余块来说非常重要。

然而,我们开发了一种方法来恢复v,该方法利用v被重用以加密多个明文的事实。具体而言,由于“U”的URL很容易预测,并且始终只有少数可能的端点之一,我们可以通过在第一个密文块“U”上执行CBC填充预言攻击来恢复v,假设初始IV为全零。这种攻击的结果将是URL的第一个明文块与v异或的结果。然后,我们将此结果与我们对URL的第一个明文块的预测进行异或,得到v。一旦我们恢复了v,我们就可以像往常一样对“G”和“P”进行CBC填充预言攻击。

Picked image

作为此攻击易受攻击的数据的一个示例,我们发现对于发送到 “http://get.sogou.com/q”的EncryptWall请求,当“U”为“http://master-proxy.shouji.sogou.com/swc.php” 时,“G”包含与搜狗软件版本相关的版本信息,“P”是一个包含最近输入的按键的protobuf缓冲区(请参见图2的示例)。我们认为这些传输与基于云的自动完成服务有关。由于这些传输容易受到我们的攻击,搜狗输入法用户的按键可以被网络窃听者解密,从而告知窃听者用户实时输入的内容。

Android版本11.20

我们分析的Android版本采用了EncryptWall的基本实现,但增加了四个额外的表单字段:“R”、“S”、“E”和“F”。字段“R”传输另一个32字节的密钥r。值得注意的是,r的每个字节都是从ASCII大写字母和数字的36个字符集中随机选择的。因此,与25632 = 2256位熵相比,该密钥只有3632 < 2166位熵。此外,与k不同,r不是每个请求随机生成的,而是仅在应用程序生命周期内生成一次,并且缓存在C静态内存中。字段“R”然后作为k ⊕ r的base64编码进行传输。请注意,由于这种传输,k的熵也降低到3632 < 2166位熵。参数k、r和v用于根据以下伪代码对“S”、“E”和“F”进行编码和加密:

ᴇɴᴄʀʏᴘᴛSEF(data) = base64Encode(k ⊕ AES_cbc_encrypt(data, r, “EscowDorisCarlos”))

请注意,与典型的ᴇɴᴄʀʏᴘᴛ()函数不同,ᴇɴᴄʀʏᴘᴛSEF()函数具有硬编码的IV“EscowDorisCarlos”且不进行zlib压缩。此外,尽管ᴇɴᴄʀʏᴘᴛSEF()使用r而不是k作为AES密钥,但k还与AES加密结果进行异或。每个字段“S”、“E”和“F”都根据ᴇɴᴄʀʏᴘᴛSEF()函数进行单独加密和编码。

尽管使用了这种修改后的加密算法,我们仍然能够成功攻击这些字段的加密。我们能够应用CBC填充预言攻击,使用搜狗对“E”表单字段的处理来替代我们通常使用的“U”表单字段,但有以下两个适应:

首先,由于密钥k是32字节,而AES块是16字节,当AES块密码的输出与k进行异或时,我们可以将输出视为与两个密钥k1和k2进行异或的结果,其中k1与奇数块(1、3、…)进行异或,k2与偶数块(2、4、…)进行异或(请参见图3的示例)。因此,在进行CBC填充预言攻击时,我们必须确保我们攻击的块在原始块为偶数时处于偶数位置,原始块为奇数时处于奇数位置。换句话说,我们必须保持块位置的奇偶性。

其次,由于IV是硬编码的,我们无法修改它,因此,类似于Windows版本,CBC填充预言攻击无法在没有适应的情况下恢复第一个明文块p1。换句话说,我们发现p1对于“S”、“E”和“F”字段仍然是可恢复的,通过以下步骤:

我们将固定的IV“EscowDorisCarlos”视为第一个密文块c1之前的一个密文块c0,并将其发送给预言。由于c1必须位于奇数位置,我们确保c0位于偶数位置。因此,在攻击过程中,预言在解密第一个密文块c1时首先将c0与k2进行异或。

结果,解密c1会产生p1',它等于p1 ⊕ “EscowDorisCarlos” ⊕ c0 ⊕ k2。

由于(根据步骤1)c0 = “EscowDorisCarlos”,p1'仅仅是p1 ⊕ k2。因此,通过应用步骤1-3,我们恢复了“S”、“E”和“F”字段的p1 ⊕ k2。

此外,我们还发现“S”字段的第一个明文块的内容非常可预测。具体而言,它们包含正在使用的搜狗版本,这已经作为EncryptWall请求的HTTP头明文传输,因此任何网络窃听者都可以获得这些信息。因此,在“S”字段的情况下,我们知道p1。在步骤3中,我们恢复了“S”字段的p1 ⊕ k2。由于我们知道p1和p1 ⊕ k2,因此我们已经恢复了k2。

一旦我们知道了k2,它对于“E”和“F”字段也是相同的值,因为(根据步骤3)我们知道了“E”和“F”字段的p1 ⊕ k2,我们也可以恢复“E”和“F”的p1。

此外,我们现在还可以恢复r的第二半部分r2,这对于攻击者很有帮助,因为我们对r2的了解可以在随后的请求中更容易地恢复k2。请记住,“R”字段对k ⊕ r进行编码。因此,在恢复k2后,我们可以通过将“R”字段的编码内容的第二半部分与k2进行异或来恢复r2。一旦恢复了r2,由于r与k不同,每个应用程序生命周期只生成一次,我们可以更容易地通过将“R”的第二半部分与r2进行异或来在将来的请求中恢复k2,从而使攻击更容易进行。此外,这也降低了r的熵,因此也降低了k的熵,使其为3616 < 283位。

作为此攻击易受攻击的数据的另一个示例,我们观察到对于发送到“http://v2.get.sogou.com/q”的EncryptWall请求,当“U”为“http://swc.pinyin.sogou.com/swc.php” 时,“P”是一个包含当前输入字段中的所有文本以及文本所在应用程序的包名的protobuf缓冲区(请参见图4的示例)。这些传输发生在按下放大镜图标时,我们认为这些传输与一种图像搜索功能有关,其中输入的文本将与动画和表情包的数据库进行搜索,并可以插入到输入的消息中。由于这些传输易受我们的攻击,搜狗输入法用户的按键是网络窃听者可以解密的内容,从而告知窃听者这些用户在输入时正在输入什么。

作为此攻击易受攻击的数据的另一个示例,我们观察到对于发送到“http://v2.get.sogou.com/q”的EncryptWall请求,当“U”为“http://update.ping.android.shouji.sogou.com/update.gif” 时,“P”是一个查询字符串,其中包含Android设备上安装的每个应用程序的列表。我们不知道这个数据传输实现的具体功能是什么。虽然可以想象知道用户当前正在使用的应用程序可能有助于在该应用程序中提供更好的输入建议,但很难想象知道用户安装了每个应用程序,甚至是用户不打算与搜狗输入法一起使用的应用程序,如何提供更好的输入建议。

iOS版本11.21

我们分析的iOS版本与基本的EncryptWall实现没有明显的偏差。然而,与我们在某些平台上观察到的一些EncryptWall请求通过加密的HTTPS发送,其他通过明文HTTP发送不同,我们观察到的所有由我们分析的iOS版本发送的EncryptWall请求都通过HTTPS发送,因此我们认为它们在网络窃听方面是安全的。然而,我们注意到,如果没有HTTPS的额外保护,iOS版本将是最容易受到攻击的,因为在EncryptWall的实现中存在另一个缺陷。具体而言,我们发现iOS版本根据以下代码随机选择密钥k和IV v:

请注意,在随机生成密钥之前,随机数生成器以从Unix纪元以来的秒数为种子,向下取整。这种行为有两个后果:首先,推导AES密钥k所需的唯一信息是请求发送的时间,任何网络窃听者都可以轻松记录。其次,由于随机数生成器在生成IV v之前使用几乎总是相同的时间进行重新种子化,v几乎总是k的前128位。由于v是公开的,所有的EncryptWall消息都会在v中公开k的前半部分,尽管k使用公共RSA密钥进行了加密。

然而,我们再次注意到,由于EncryptWall请求在iOS上似乎总是额外包装在HTTPS中,因此目前无法利用这个缺陷。然而,由于这个缺陷的严重性,我们仍然不得不提及它,因为先前的iOS版本可能会受到影响,并且这段代码可能会在其他可能存在漏洞的应用程序中被重用。

缓解措施

为了解决报告的问题,搜狗输入法应该使用流行的、最新的HTTPS或TLS实现来保护所有传输,而不是依赖自定义的加密来保护敏感用户数据的传输。此外,搜狗输入法不应传输对程序功能无关的数据。

协调披露

2023年5月31日,我们在附上的信函中向腾讯披露了我们的发现,遵循我们的安全披露漏洞政策。下表3是我们的披露时间表:

日期 联系方式

2023年5月31日 漏洞披露给IMETS@tencent.com。

2023年6月16日 通过腾讯安全响应中心(TSRC)网门披露漏洞。

2023年6月25日 我们通过TSRC门户收到以下回复:

“感谢您对腾讯安全的关注。对于此问题,没有低或低安全风险。期待您的下一个更令人兴奋的报告。”

2023年6月25日 18小时后,我们通过TSRC门户收到以下回复:

“很抱歉,我之前的回复是错误的,我们正在处理这个漏洞,请不要公开,非常感谢您的报告。”

腾讯对我们的披露的最初拒绝和随后的改变成为本报告标题的灵感。

2023年6月26日 我们通过TSRC门户发送以下消息:

“感谢您的更新。我们将在2023年7月31日之后公开披露此漏洞。”

2023年6月28日 我们通过TSRC门户收到以下回复:

“非常感谢您的报告,修复计划和修复时间已通过电子邮件回复给disclosure@citizenlab.ca。”

2023年6月28日 我们通过TSRC门户发送以下消息:

“我们没有在该地址收到此类电子邮件。然而,我们注意到我们的域名(citizenlab.ca)可能无法从中国访问,因此来自中国的电子邮件可能无法传递到该地址。您能否将您发送到disclosure@citizenlab.ca的电子邮件的副本发送到我的另一个电子邮件地址[已删除]@utoronto.ca?我相信从中国发送电子邮件到这个utoronto.ca地址不会有问题。谢谢。”

2023年6月29日 我们通过TSRC门户收到以下回复:

“我们发送的电子邮件是security@tencent.com,主题是:回复搜狗拼音法漏洞,可能被归类为垃圾邮件?”

2023年6月29日 我们通过TSRC门户发送以下消息:

“不幸的是,我们没有在该地址收到此类电子邮件,甚至没有在垃圾邮件文件夹中收到。您能否尝试将电子邮件的副本发送到我的另一个电子邮件地址[已删除]@utoronto.ca?谢谢。”

2023年7月4日 我们通过TSRC门户收到以下回复:

“您能使用disclosure@citizenlab.ca给security@tencent.com发送一封未经请求的电子邮件吗?然后我将把修复细节发送到[已删除]@utoronto.ca。”

2023年7月4日 我们通过TSRC门户发送以下消息:

“是的,我们现在已经发送了这样一封电子邮件,正在等待您的回复。”

2023年7月4日 我们在[已删除]@utoronto.ca电子邮件地址收到以下回复。在电子邮件回复中,搜狗输入法开发人员概述了他们已经在电子邮件日期之前部署的部分缓解措施,以及将在2023年7月31日之前将所有平台迁移到使用TLS加密的时间表。

2023年7月18日 我们发现搜狗输入法开发人员已经发布了每个平台的应用程序版本,这些版本被确定为修复我们发现的问题的版本。我们发现Windows和iOS版本解决了我们报告的问题,但Android版本没有。因此,我们通过TSRC门户发送以下消息:

“你好。在您发送给我们的电子邮件中,您指出Android应用程序的11.25版本将升级为使用HTTPS发送EncryptWall请求。我们分析了11.25版本(SogouInput_11.25_android_sweb.apk),发现它仍然没有使用HTTPS来传输我们在披露中发现的所有EncryptWall请求,包括我们报告的请求。11.25版本仍然是应该包含这些修复的Android应用程序版本吗,还是将在未来版本中修复?”

2023年7月20日 我们发现搜狗输入法开发人员已经发布了Android应用程序的11.26版本。我们发现这个版本解决了我们报告的所有问题。

2023年7月21日 TSRC门户提示以下消息:

“漏洞已修复,请查看并检查是否仍存在。如果已修复,请点击“已修复”;如果未修复,请点击“未修复”。”

我们点击了“已修复”。

2023年7月22日 我们通过TSRC门户收到以下回复:

“感谢您的反馈。我们将在内部进行调查。”

2023年7月24日 我们通过TSRC门户收到以下回复:

“非常感谢您的反馈,我们的最新修复版本是11.26(SogouInput_11.26_android_sweb.apk),您可以从我们的官方网站https://shurufa.sogou.com/下载。如果您有其他问题,请告诉我们。谢谢。”

2023年7月27日 我们在[已删除]@utoronto.ca电子邮件地址收到以下电子邮件。在电子邮件中,搜狗输入法开发人员向我们提供了包含修复的版本,并询问我们公开披露的“确切时间、网站和具体内容”。

2023年7月27日 我们通过[已删除]@utoronto.ca发送以下回复:

“我们可以确认您已经修复了我们报告的漏洞。我们将在2023年7月31日之后公开披露这些漏洞。我们将在我们的网站https://citizenlab.ca/上发布有关安全漏洞的详细报告。”

2023年7月29日 我们在[已删除]@utoronto.ca电子邮件地址收到以下电子邮件。在电子邮件中,搜狗输入法表示他们致力于隐私和安全,并解释了他们实施EncryptWall系统的最初动机,并提醒我们他们对报告的漏洞的快速解决。

表3:漏洞披露时间表。

2023年7月4日,我们评估了搜狗输入法开发人员在2023年6月30日应用的部分缓解措施,其中,如果出现错误,搜狗服务器始终返回相同的HTTP状态码-400-而不是根据是否存在填充错误或某个更高级别的应用层返回400或500。虽然这减轻了我们对Windows版本搜狗输入法的攻击以及对Android版本的“U”、“G”和“P”字段的攻击,但我们对Android的“S”、“E”和“F”字段的攻击仍然有效,因为它依赖于区分HTTP状态码400和200,其中200是成功代码而不是错误代码,而且这种缓解只是修改服务器,在发生错误的情况下无条件返回状态码400。

平台 修复版本

Windows 13.7

Android 11.26

iOS 11.25

表4:搜狗输入法的修复版本。

在搜狗输入法开发人员的2023年7月4日的通信中,他们表示Windows版本的应用程序的13.7版本和Android和iOS版本的应用程序的11.25版本将解决我们报告的问题。2023年7月18日,我们发现这些版本的应用程序已经发布。请注意,这些更新是在我们强制执行的7月31日截止日期之前发布的。分析更新的Windows版本,我们发现所有EncryptWall流量都使用操作系统的WinHTTP服务提供的TLS实现进行加密,令人满意地修复了我们在Windows版本中报告的漏洞。请记住,我们不知道如何利用我们在iOS版本中发现的问题。尽管最初将11.25版本确定为解决我们报告的漏洞,但我们发现2023年7月20日,搜狗输入法开发人员发布了Android应用程序的11.26版本,并且该版本使用TLS加密所有EncryptWall流量,令人满意地修复了我们在Android版本中报告的漏洞。因此,到2023年7月20日,我们报告的所有问题都已修复(请参见表4以获取修复版本的摘要)。

我们在收到腾讯对我们披露的电子邮件回复方面遇到的困难突显了在向某些司法管辖区的公司披露漏洞时面临的意外挑战。在向腾讯披露漏洞后,我们发现我们的电子邮件域名(citizenlab.ca)在中国被屏蔽。具体而言,我们发现中国的国家防火墙对查询此域名(包括MX记录查询)的DNS回复注入了异常的DNS回复。注入的DNS回复包含一个看似任意的IP地址的A记录,即使查询是针对MX记录而不是A记录。当执行A记录查询的客户端收到其中一个注入的回复时,它将错误地使用注入回复中的虚假IP地址。然而,对于MX记录,这些注入的回复可能会被DNS客户端解释为错误,因为在MX查询中收到A记录,而DNS客户端对注入域名的MX查询可能只是失败,而不是像A查询中那样错误地使用虚假记录。尽管这种注入行为可能旨在阻止中国用户访问我们的网站,但它也妨碍了中国用户发送电子邮件给我们的能力,即使这样的电子邮件是经过征求的。

我们无法确定中国屏蔽我们域名的原因是腾讯的电子邮件未能传递到我们域名的电子邮件服务器,但我们收到了一些后来的证据,进一步加强了这个假设。我们在[已删除]@utoronto.ca上收到的7月27日的电子邮件也发送到了disclosure@citizenlab.ca。最终,disclosure@citizenlab.ca地址在24小时后收到了电子邮件。通过检查电子邮件的标头,我们发现电子邮件在腾讯的邮件服务器和Google的MX服务器之间停滞不前。由于Google是我们的电子邮件提供商在citizenlab.ca MX记录中,这一发现加强了腾讯的邮件服务器在查找我们域名的MX记录时遇到困难的假设。电子邮件可能最终在24小时后被传递,这是由于中国防火墙的间歇性故障或数据包丢失导致防火墙注入的DNS回复丢失,从而使我们域名的MX查询最终成功。因此,我们选择使用另一个我们最了解的在任何国家都没有被屏蔽的域名进行所有未来的披露,以确保我们不会在协调披露期间未能收到关键的沟通。同时,我们要求防火墙操作员考虑阻止域名可能会产生意想不到的后果,例如对那些可能在参与重要对话期间受到防火墙背后的软件漏洞影响的人的持续漏洞的贡献。

限制

在本报告中,我们详细介绍了搜狗EncryptWall加密系统在搜狗输入法中的使用的漏洞。然而,在这项工作中,我们没有对搜狗输入法进行全面审计,也没有尝试全面发现软件中的每个安全漏洞。我们的报告涉及我们发现的一组相关漏洞,我们未报告其他漏洞并不意味着这些漏洞不存在的证据。

讨论

在过去的八年中,我们致力于分析、记录和负责任地披露中国开发的应用程序中涉及敏感数据不安全传输的漏洞。尽管我们在与开发人员协调解决这些问题方面取得了一些成功,但该生态系统仍存在问题,因为我们在这里再次报告一个难以想象的受欢迎的中国开发的应用程序未能采用甚至简单的最佳实践来保护其传输的敏感数据。在这种情况下,搜狗输入法是一个拥有超过4.5亿用户的应用程序,未能正确保护敏感数据的传输,包括用户输入的按键,使得任何网络窃听者都可以恢复这些数据。通过采用常见且成熟的加密协议TLS,而不是使用“自制”加密方法,可以轻松避免这种漏洞。虽然没有完美的加密协议,但TLS实现在2003年已经改善了对CBC填充错误攻击的脆弱性,这已经是本文撰写时的二十年前了。我们已经认识到,协调的安全披露远远不足以保护中国应用程序传输的用户数据。我们认为,需要对软件开发生态系统进行全面的变革,以解决这些系统性问题。

即使已经解决了报告的漏洞,搜狗应用程序仍依赖将键入的内容传输到搜狗的服务器作为其普通功能的一部分。来自世界各地的用户的按键输入被传输到中国大陆的服务器,这些服务器在中国政府的法律管辖下运营。使用搜狗的高风险用户应该谨慎,因为键入的内容可能包含敏感或个人信息。本报告中概述的攻击演示了网络窃听者如何解密这些数据。然而,即使漏洞得到解决,这些数据仍然可以被搜狗的运营商和与他们共享数据的任何人访问。

致谢

我们要感谢Jakub Dalek、Pellaeon Lin、Adam Senft和Mari Zhou对编辑和同行评审的宝贵贡献。该项目的研究由Ron Deibert监督。