政府软件应该首选自由软件
当前,第七次全国人口普查正在中国各地有序开展。人口普查有利于政策制定者了解全国人 口的分布和结构,比如年龄分布、教育水平分布、住房情况等。这些情况能够帮助政府制定 更有针对性和引导性的政策,比如退休计划、学校规划、住房建设计划等。所以,大家如实 认真汇报人口数据也是对自己的负责。
此次人口普查和以往相比有一个重要的变化就是普查手段现代化——普遍采用电子化工具采集 数据。普查员使用的是安装在便携智能设备,比如智能手机,上的微信小程序。这不禁使人 思考一个问题,为什么政府使用的为公众服务的软件需要建立在非自由的私有企业平台之上?
- 非自由之一
智能手机通常是安卓操作系统,这不是一个自由的操作系统。其中充斥这各种非自由的固件 和应用,不乏恶意软件,通常认为安卓系统不是安全和隐私级别很高的软件系统。建立在安 卓之上的应用,有比较严重的数据安全隐患。
- 非自由之二
微信小程序平台是一个非自由的软件平台,其代码和工作方式对用户来说是完全不透明的黑 盒子。把数据安全级别很高的大量隐私数据采集托付于一个不透明的黑盒子本身就具有非常 大的风险。而另一方面,构建这一平台的腾讯公司却掌握着运行在其平台之上的小程序的所 有资料,这是不应该有的现象——国家数据不应该由私人企业掌控。
这些非自由大家已经习以为常,但是历史上有很多教训值得回顾。举一个例子,冷战时期, 苏联政府机构采购过一批美国施乐复印机。这些复印件会把每次复印的文件秘密存档,由负 责机器维护的人员定期提取。仅此一个渠道就导致大量苏联政府文件泄漏。现在的非自由系 统由于可以连接网络,其泄漏速度更快,途经更多,数据量也更大,涉及的范围会更广。
所以,政府软件应该首先选择自由软件。
政府作为公共机构存在是为了人民,不是为了它们自己。它们进行计算活动时,比如人口普 查,是在为人民做计算。它们有责任确保对计算的全部控制权,这样才能保证计算对于人民 是正确的。(这也是政府计算权的一部分。)它们决不能允许政府计算的控制权落到私人手 里。
为了确保对人民计算的控制权,公共机构一定不能使用专有软件(这样的软件是在其他人而 非政府的控制之下)。它们也一定不能把计算委托给其他人而不是政府自己开发和运行的服 务,因为那样就是用软件替代了服务,而且失去了对自己计算和数据的控制。
在某些关键情况下——违背开发者意愿的软件开发,专有软件根本没有安全性。开发者可能帮 助别的人发出攻击。在修复漏洞之前,微软曾把 Windows 的漏洞交给 NSA(美国政府数字监 视机构)。我们不知道苹果是否也这样做,但是,它也受到了与微软一样的来自美国政府的 压力。如果任何其他国家政府使用这样的软件,它就危害了国家安全。你希望 NSA 侵入我 国政府计算机吗?
政府选择的自由软件应该采用诸如 GPL 和/或 AGPL 最新版本之类的 copyleft 软件许可证, 而不是简单地把软件置于公有领域。政府的软件应该一直作为自由软件存在——除了涉及国家 安全的软件。这样有利于整个社会对政府软件的监督和研究,保障和提高软件的质量和安全 性。
因此,政府应该建立政府软件的发布平台——发布包括源代码和文档,并在之上形成政府软件 开发流程。这样整个社会都可以参与政府软件的投标和开发,使政府软件不再绑定于某些供 应商,也使广大的软件开发者有参与公共软件开发的机会。类似的平台有,
人口普查电子化是一个进步,它提高了效率、减少了错误,是一个好的方向。同时,我们要 求公共机构必须要对人们的计算有完全的控制——只有使用自由软件才能做到。