忍不了糟糕平台,程序員自己開源一個新項目_風聞
code2Real-有人就有江湖,有code就有bug2021-11-12 09:49
看不慣自家孩子學校的 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/
-----------------------------------------------------------
這事在中國會發生嗎?