回應對安心出行開放源碼的誤解

昨天我提議政府應該以開放源碼方式,開放安心出行的源碼。本意希望大家以正面的方法,讓政府和社會共同解決爭議。

我對昨晚政府資訊科技總監辦公室(OGCIO)透過 facebook 專頁回應筆者和業界要求時,所寫的技術知識感到震驚,同時對政府沒以正面的技術方向回應業界和社會要求感到失望。

就 OGCIO 回應的第一段,指出 Google 和 Apple 的 Exposure Notification(GAEN)的源碼並不開放。筆者認為這回應並不對應業界要求開放安心出行的源碼。一來,業界要求開放安心出行本身的源碼,並非安心出行所使用的第三方程式庫(3rd party library)。二來,開放源碼定義(The Open Source Definition)第九點寫明:授權並不能限制其他軟件(License Must Not Restrict Other Software),意思是連同開放源碼一同發佈的第三方軟件時,不能限制第三方軟件的授權方式。

所以從技術來說,假如日後安心出行開放源碼版使用 GAEN 的 API Calls 時,明顯不需要開放安心出行所呼叫的外部 API 背後第三方程式庫的源始碼。

OGCIO 回應的第二段,指出安心出行使用某大學夥伴研發團隊提供的軟件,亦是 OGCIO 認為不能開源的理由。一來,筆者上述說法亦可套用在這點,就算安心出行必需把大學提供的軟件源碼結合,都只會透過 Function calls 來做,可以無需公開大學提供的軟件源碼。只需在說明文件列明程式需要購買某大學提供的軟件,該大學團隊名稱和聯絡方法。這更可以幫助該團隊宣傳他們的研發產品,增加應用和獲得資金機會,可見開放源碼亦可帶動非開放源碼的創科發展。

至於開放源碼與資訊保安之間的討論,已是一個很古舊的討論。國際業界早在十幾年前已認同開放源碼與否跟資安無關,而且開放源碼與其no vendor lock-in更能幫助產品擁有人(product owners)和用家更快修補臭蟲(bugfixes)。

在 OGCIO 回應前,筆者亦留意到香港01的報導,訪問承接安心出行開發的創奇思(Cherrypicks)創辦人趙先生。當時趙先生透露他知道局方將在短期內提出新建議,並表示由局方宣布新建議更為合適,而未提及更多新建議詳情。筆者不知道 OGCIO 回應前,有否詢問作為業界一份子創奇思的技術意見呢?

筆者呼籲政府機構正確了解開放源碼,並繼續以開放源碼協助社會正面發展。亦希望政府機構繼續並加強宣傳(promote)開放源碼。

筆者提議政府再向業界了解,重新考慮以開放源碼方式,開放安心出行的源碼,希望各方早日以正面的方法共同解決爭議。

開放源碼能安心出行嗎?

近月香港社會關注安心出行(Leave Home Safe)的個人私隱憂慮,筆者認為保障市民個人私隱與防疫同樣重要,不能以防疫為由降低個人私隱要求。從技術角度來說,就算目前程式沒有洩露個人行蹤和私隱,將來更新程式時,社會也會出現同樣擔憂。

既然資科辦發言人講明「無大台」,如果政府機構只希望市民能自行收集和核對,幫助防疫追蹤,政府機構應以全民參與方式,透過開放源碼模式(Open Source model),社會共同開發(crowdsourcing)安心出行應用程式。開放源碼模式(Open Source model)還可讓全球社會共同合作,回饋意見,這是國際都市應做的事。所以開放源碼能讓大眾公開討論技術,就能有機會讓大眾安心出行。

筆者認為安心出行的開放源碼計劃必須包括以下:

  1. 開放源碼(Open Source):安心出行的源碼(source code)以 OSI 認可授權釋出,以開放源碼模式公開繼續研發改進。
  2. 開放API(Open API):公開安心出行手機程式和伺服器之間的完整系統通訊 API,並進一步容許不同的開發者、IT廠商開發各式各樣公開安心應用,刺激香港資訊科技業界發展,亦能幫助香港startup公司多一個機會。
  3. 公開 Build Logs:讓公眾審查(audit)發佈上架的手機程式是否來自安心出行的開放源碼計劃,並了解各版本手機程式能否通過預定的自動測試。

另外,香港過半市民使用的Android 手機操作系統是開放源碼軟件(Open Source Software),在每部 Android 手機的設定功能裡,法律資訊(Legal Information)已提供相關開放源碼授權條文。顯而易見早在世界普及的開放源碼模式,絕對尊重知識產權,不存在薛局長「要求對方將程式原始碼公開就不尊重開發者知識產權」的想法。而香港政府代表香港市民,作為安心出行手機程式及相關伺服器程式的擁有者,絕對有權開放源碼,公開安心出行的程式源碼。

跟進文章:

2月23日 – 回應對安心出行開放源碼的誤解

社交網絡追蹤肺炎傳播

Foursquare Swarm 是一套 2014 年推出的社交網絡手機 app,用家透過打卡(check-in)與朋友分享去過的地方。我個人比較喜歡 check-in 一些食店和旅遊景點等。就算不主動打卡,Swarm 亦可透過手機部份 GPS 數據,建議用家可考慮補打某些地點。

如果希望透過社交網絡 app 打卡,來追蹤肺炎社區傳播,其實不用做 proof of concept 來研究新社交網絡 app 的概念。而是開發 COVID-19 社交資訊後台系統,透過不同社交網絡平台的 API,取讀參與用戶所公開的打卡資訊,已可達至收集數據目的,然後在後台利用 python 等做數據分析。找出高風險的用戶後,透過 SMS 或電郵聯絡用戶。聯絡用戶時說明分析原因,例如剛發現有確診者最後在某日到過某餐廳或商場大廈,建議他們

Swarm 已有很大的香港大廈和食店數據庫,相比重新開發 app 加上用政府跨部門開放數據為多。Swarm 現成亦有一定用戶量,不用從零開始推廣新的打卡 app。個人私隱方面,Swarm 用戶可以選擇私人打卡,不與 Swarm 上的朋友分享。

所以為何有 Swarm 都唔用而去搞打卡平台 POC 呢?