看不惯自家孩子学校的 IT 系统——Skolplattform,瑞典首都斯德哥尔摩市程序员 Landgren 忍不住拉上其他家长,通过对 API 的逆向工程重构了一个开源的版本 Öppna skolplattformen,从此踏上和市政府之间的漫漫拉锯战……
政府担心新系统可能会泄露数据隐私、侵犯版权,多次警告并报警。但 Öppna skolplattformen 所用数据为政府公开信息,且参与调查的安全机构、警方都认为 Öppna skolplattformen 并无数据安全问题。而随着开源项目的发展,越来越多的贡献者参与其中。相较之下,官方版本的软件耗时多年、资金投入巨大,但却漏洞百出,已经引发多次不满。
拉锯战最终上升到对于瑞典政府数字化转型和开源协作方式的讨论上,民间的声音呼吁用开源的方式打造高度数字化工具,服务社会。尝到 Öppna skolplattformen 的甜头后,瑞典相关市政府也开始拥抱这些来自民间的力量。目前,双方正在尝试通过许可协议达成合作。
(友情提示:文中行为请勿随意模仿。)
导火锁——“IT 灾难”校务系统
Skolplattform 是瑞典 2013 年推出的学校 IT 系统,近年在斯德哥尔摩市 600 所幼儿园和 177 所学校应用,老师、学生、家长均可注册登录。Skolplattform 可以登记出勤、记录成绩等等,由五个外包技术公司维护的 18 个独立模块构成,花费约 7.5 亿人民币采购,旨在让斯德哥尔摩 500000 多名学生、教师和家长的生活变轻松。
但其目标似乎并未实现,Landgren 称,Skolplattform 推出之后,所有用户和家长都很生气。
不仅如此,长久以来,多方机构多 Skolplattform 的评价都不好。
2016 年有报告称 Skolplattform 项目管理不善,媒体也将其贴上“IT 灾难”的标签,其 Android 版本的评分仅为 1.2 星。2020 年 11 月,斯德哥尔摩教委会以 Skolplattform 的“严重缺陷”为由罚款 400 万瑞典克朗。瑞典数据监管机构 Integritetsskyddsmyndigheten 发现该平台存在严重缺陷,暴露了数十万家长、儿童和教师的数据,Google 搜索便可访问用户的个人信息。
几乎就在 Skolplattform 被披隐私漏洞的同时,终于有程序员出手拯救这个应用了。
Landgren 的本职工作是瑞典一家初创咨询公司 Iteam 的首席执行官兼开发人员,同时也是斯德哥尔摩市三个孩子的家长。早在 2020 年 10 月 23 日,他就在社交网站发布了一张帽子设计图,印有“Skrota(废料) Skolplattformen”。几周后,他决定自己重新创建一个应用。
Landgren 先写了信给市政府官员,要求查看 Skolplattform 的 API 文档,不过政府并未应允。然而在等待回复期间,Landgren 通过逆向工程在原有 API 的基础上之上又构建了一层 API。
接下来,Landgren 联合其他两位学生家长兼开发者——Johan Öbrink 和 Erik Hellman ,准备做出 Skolplattform 的开源版本并发布,供斯德哥尔摩各校的家长使用。在 Landgren 重新构建的 API 之上,三人使用 Chrom 开发人员工具,登陆 Skolplattform 并记下了所有 URL 和有效负载。他们还获取了调用平台私有 API 的代码并构建成包,以便代码可以在手机上运行。最终,新的应用被命名为 Öppna skolplattformen。
Öppna skolplattformen 已在 2021 年 2 月 12 日发布,采用 Apache 2.0 协议。其应用软件售价 1 欧元。
通过逆向工程构建的开源软件尚无违法行为
斯德哥尔摩政府对 Landgren 等人的行为表示强烈不满。
Öppna skolplattformen 发布之后,政府方面对 Skolplattform 做了安全更新,关闭了 Öppna Skolplattformen 的自制 API。接下来政府多次警告 Öppna skolplattformen,并希望其团队下架源码。
4 月 15 日,斯德哥尔摩市的教育行政部门称已经对 Öppna Skolplattformen 是否符合现行立法进行了调查。根据调查,Öppna skolplattformen 可能存在数据泄露、违反《数据保护条例》和侵犯版权的行为。随后,他们向当地警察报警了。
双方的纠纷中主要有两个值得关注的地方。
一是逆向工程对版权的影响。软件工程中的逆向工程通常是指分析目标系统的过程,其目的是识别出一个系统的各个组件及它们之间的而关系,并以其他形式在较高的抽象层次上,重构系统的表征。可用于安全审查、破解、绕过访问限制、补全功能等等。
基于其手段和目的,逆向工程是否违法需视具体情况而定。比如如果是为了不同软件之间一起工作并共享信息的互操作性目的,且有合法的理由要获取,当只有逆向工程这一种方法时,通常是可以通过逆向工程对著作权作品做合理使用的。
检索我国有关“逆向工程”的判例来看,几乎没有人因为做了“逆向工程”吃官司。“逆向工程”一词往往出现在产品的经销、使用协议中,明确标注不得对该产品使用“逆向工程”。
而在 Skolplattform 的官网上,我们检索“Omvänd teknik(瑞典文逆向工程)”一词,并无结果。对于 Öppna skolplattformen 侵犯 Skolplattform 版权的问题,斯德哥尔摩官方也是一笔带过,并未深究。基本可以判断,Landgren 等人的逆向工程在当地并不违法。
二是关于数据安全的问题,这也是斯德哥尔摩官方最关注的地方,但 Öppna Skolplattformen 以及警方、安全调查机构并不认为政府的指控成立。
使用 Öppna Skolplattformen,家长需要注册登录,之后便可查看孩子们的信息。斯德哥尔摩市教育主任 Lena Holmdahl 表态:“我们作为权威必须对个人数据负责,基于评估,Öppna Skolplattformen 的出现是一种数据泄露的形式,而且非常严重,我们有责任保护数十万学生。”
Landgren 等人则认为 Öppna Skolplattformen 并不会导致该市学生和家长的数据泄露。Öppna skolplattformen 并不是一个复杂的应用程序。官方版本的 Skolplattformen 有200,000 名家长、23,500 名教职员工和 140,000 名学生用户。但 Öppna skolplattformen 仅适用于家长,并且仅显示基本信息。
家长可以使用瑞典数字身份系统 BankID 登录 Öppna skolplattformen,查看通过 Skolplattform API 拉入的孩子信息。包括学校活动日历,例如音乐会、每日日程安排、教师通知(链接到成绩和新闻更新)、自助餐厅供应的食物以及报告儿童是否生病的等等。
“我们展示的一切都是公开的公共信息,”Öppna Skolplattformen 的联合创始人之一 Öbrink 说。他解释,学生的成绩是通过 Öppna skolplattformen 内的浏览器来显示的,Öppna skolplattformen 本身无法访问任何数据,而 Öppna skolplattformen 第一次迭代所涉及的父母个人信息可通过官方平台获取,并且这些信息现在已经被删除了。
警方初步调查负责人 Åsa Sköldberg 于 8 月 16日告诉表示:“我们不相信有任何犯罪行为发生。”一位发言人表示,数据监管机构 Integritetsskyddsmyndigheten 并未对该市的投诉展开调查。
瑞典安全公司 Certezza 曾在2 月中旬受委托完成了对 Öppna skolplattformen 的外部审计,由于瑞典的透明度法律,该报告并未发布。随着警方的调查,该报告的相关结论得到披露——审查结论认为,该开源应用程序没有向第三方发送任何敏感信息,也没有不会对用户构成威胁。
开发者呼吁政府重视开源
Öppna Skolplattformen 团队自己的澄清,以及警方、安全公司对其的调查基本可以证明,通过 API 进行的逆向工程,实际上并不能导致对原平台用户隐私的侵犯。而在软件本身没又被发现安全漏洞前,其数据安全问题并不值得担忧。
而在各方讨论 Öppna Skolplattformen 有没有违法的期间,越来越多开发者和用户开始用脚投票,加入开源项目的建设。
目前 Öppna Skolplattformen 贡献者已经有 39 位。他们发现并解决掉一些 bug,开发出搜索功能,也将应用程序翻译成不同的语言,他们还指出官方 Skolplattformen 中存在的一些安全问题。即便遭到市政府的反对,但是 Öppna Skolplattformen 的团队仍在继续工作。“作为普通公民,我们高度数字化,”Landgren 说。
强调高度数字化也是出于对瑞典现状的担忧。自从 2019 年开始,经合组织关于政府数字化的报告中,瑞典都处于所调查的 33 个国家的末位。
“我们使用的这些工具,还停留在 50 年代,”Landgren 说,“为了弥补这一差距,我们以及许多其他加入我们的人,把开源当做最佳的合作方式。”在他看来,与花费数年完成,并在完成时已经过时的政府 IT 项目相比,公民开发可能更为有效。
坚持半年后,Landgren 及社区开发者们的工作忠于开始受到政府的认可。
9 月初,Landgren 接到电话,得知斯德哥尔摩市正在改变对 Öppna skolplattformen 以及其他有类似目的的应用程序的立场,并且决定将系统内的数据开放访问。
为此,斯德哥尔摩市已经和外部供应商达成协议,外部供应商将在 Öppna skolplattformen 和该市之间设立许可证。
此举被斯德哥尔摩市议员 Isabel Smedberg-Palmqvist 称是对 Öppna skolplattformen 的努力的验证,其团队已经投入了数百小时到开发工作中去。而有了这个解决方案,斯德哥尔摩市也可以保证以正确、安全的方式处理个人数据,父母们也可以在日常生活中参与到数字工具的构建中。
现在,Landgren 希望 Öppna skolplattformen 能和斯德哥尔摩市达成协议,由该市支付软件的许可证费用,让所有父母都可以免费使用,“这看起来像是城市购买 Microsoft Office,典型的许可交易。”Landgren 透露,现在交易的细节仍在谈判中,Öppna skolplattformen 做出贡献的志愿者也会得到相应报酬。创始人说这些努力从来都不是为了赚钱,他们计划通过将通过下载产生的资金提供给创建程序的人。
斯德哥尔摩市教育委员会成员 Holmdahl 承认, Öppna skolplattformen 虽不同于官方应用,但可能更易于家长使用“用户驱动的 IT 开发很有趣,但必须与保护个人数据的立法和责任相结合。”
( Öppna skolplattformen 应用程序的截图)
Öppna Skolplattformen 正在斯德哥尔摩之外开始流行。如瑞典第二大城市哥德堡,该市家长和市政府官员之间正在进行对话。Landgren 也表示,他们团队已经在开发新版本了。
最终,Landgren 希望 Öppna Skolplattformen 的故事能够告诉政治家和市政官员,他们为公民提供的技术不应该作为大型 IT 项目进行采购,而是由最终使用它的人应该参与规划和开发。最重要的是,Landgren 认为官员应该开放他们的 API,以便公民可以构建适合他们的技术,“如果你开放 API,应用程序就会出现。”
参考链接:https://www.wired.com/story/sweden-stockholm-school-app-open-source/