BlueTrace与健康码

疫情之下,各国都在不断地调整自己的防疫政策。中国的模式已经证明了其可能是最有效的方式之一,但因为种种原因大部分国家难以效仿和接受。从技术层面来讲,基于支付宝/微信等国民APP之上的健康码模式也是如此:有效,但是别国难以效仿。新加坡最开始使用BlueTrace协议并开发出了相应App让国民下载使用,部分其他国家也开始效仿,甚至有望能成为一种国际通用的防疫标准。 隐私保护是 BlueTrace 所考虑的最主要特点之一。其手段包括如下方面: 尽可能少的收集用户信息,卫生部门唯一收集的信息是手机号 本地存储用户接触记录,只有当被感染者愿意分享此数据时卫生部分才能获取 第三方无法通过此协议一直追踪用户。因为相关标识ID会一直更换 … 所以在对用户的标识方面,主要是通过算法生成的 UserID 和 TempID 来进行。当用户用手机号进行注册时,后台服务会生成一个 UserID, 而用户在互相接触需要通过蓝牙交换信息时,则通过 TempID 进行。TempID的 大概结构如下: 可以看到其有如下特点: 加密。只有卫生部门才有密钥能解密数据 过期时间。TempID有过期时间,一般在15m左右.这样可以尽量减少恶意攻击或者伪造假数据 TempID的生成需要联网(加密啥的),所以为了考虑到用户不联网的情况,所以TempID可以一次性尽量生成多个,在联网的时候一次性发给用户以备用。 当装有相应APP的用户相遇时,设备会通过 Bluetooth Low Energy (BLE)协议进行通信并交换信息,其数据流程如图所示: 这里面两个 Device 分别有一个角色定位,一个叫 Central ,一个叫 Peripheral。Central 主动扫描 Peripheral 并读取其信息,然后返回一些额外信息。一个手机一般是按一定时间比率轮换在两个角色之间切换。其交换的数据大概如下所示: { "id": "FmFISm9nq3PgpLdxxYpTx5tF3ML3Va1wqqgY9DGDz1utPbw+Iz8tqAdpbxR1 nSvr+ILXPG==", // TempID "md": "iPhone X", // Device model "rc": -60, // Signal strength "o": "IJ_HAI", // Health authority identifier "v": 2 // Protocol version } 这里面需要注意的是: ...

2020-07-23 · 1 分钟 · 80 字 · 涯余

Linux 桌面的失败

之所以说它失败,是指从功利的角度来看。不管是市场占有率,还是软件的可用性,用户友好性,以及生态上,都是失败的。直到2020的今天,以 Ubuntu 为代表的厂商在不断地向竞争对手学习,但仍然不足以和后者相提并论。当然,从自由以及民主的角度来看,它是有成功之处的,开源软件的流行,对于用户隐私以及自由的尊重,这一切的努力都值得我们敬重。 从表面上看,如果我们细数其失败的现象,很容易列出以下几点: 生态太差,没有多少厂商愿意开发 Linux 平台的软件。而进一步的原因则是用户基数少,以及开源社区天然对商业软件的不支持态度 用户不友好。偏技术化,普通用户难以方便地使用。 造成这种现状的原因很多,不一而足。其中人和制度自然是重点因素。 从 Linux 桌面的相关开发人员来看,有相当一部分人是满足于现状,并且不愿意 Linux 桌面朝着 Mac OSX 和 Windows 的方面演进,因为它是 Linux, 是自由软件的核心,似乎不应该走那样的路。这一部分人满足于目前 Linux 的生态,并沉迷于从技术角度去使用和解读 Linux,同时和普通用户区分开来。另一部分人,在努力地丰富 Linux 应用的生态,但却走入了一个怪圈。到今天,我们有几百个发行版,几十个桌面系统,几十个文件管理器,Terminal应用,音乐播放器,数种不同的 GUI SDK 框架。他们共享了一个 Kernel, 使用起来功能也大同小异,一样的不如商业软件好用。但所有人都似乎相信自己所选择的框架/方向是对的,至少相对于其他选择是有一定优势的。假设这些精力能集中起来,会不会更好? 没有假设,因为没有这个可能。与当世的民主制度一样,开源软件的开发流程大体上遵循了同样的模式,也遵循了同样的制度性缺陷。它防止了最大的恶(隐私,对自由的侵犯),但却受制于其极低的效率。作为一个开发人员,你发现了一个应用的 BUG,或者有了一个新的 Idea 或者非常好的 Feature 想要合并进去,可能目前这个项目的 Owner 太慢了没时间处理,或者暂时不认可你的想法,那么你要么搁置你的 idea 或者 bugfix, 要么狠心下来自己 fork 一个新的版本。或者你直接掠过沟通这一步,直接开始自己的新项目。这就是 Linux 应用生态的开源项目的常态。 这个怪圈有没有逃出的方法,有,而且很成功。只是,他的价值观显的不那么普世罢了。这样的例子很多。GNU/Linux 二者的创始人便是。可惜的是,后面的一票人都走偏了。这个方式现在有一个专业的词汇,叫终身仁慈独裁者(Benevolent Dictator For Life). 我们很熟悉日常新闻上的 Linux 本人,经常骂这个骂那个,言辞粗暴,但其地位和声誉却未受影响。因为: 他本身水平之高有目共睹,是 Linux Kernel 和 Git 的创始人. 他领导下的 Linux Kernel 项目发展顺利,效率高,质量好 就这,就足够了。就是这个仁慈独裁者,能保证一个产品拥有稳定的内部结构,统一的 interface, 和高效率的产出节奏。而 Linux 应用层恰恰缺少这么一个人,来决定大方向和开发流程,造成了现在的局面。 ...

2020-04-04 · 1 分钟 · 89 字 · 涯余