立即捐款

《安心出行》 唔適合開放源碼?破解 OGCIO 嘅幾個謬論

《安心出行》 唔適合開放源碼?破解 OGCIO 嘅幾個謬論

自從政府強制市民進入餐廳同政府場所要使用《安心出行》之後,民間同科技界都有好強烈嘅聲音要求政府將《安心出行》開放源碼(open source), 等市民可以檢視同確認程式嘅功能,以確保私隱得到保障並增加市民使用嘅信心。對此建議,創科局長薛永恒於22日表示:「程式由政府外聘私人公司開發,沒要求對方公開原始碼,強調須尊重知識產權。」 如此高質回應,可謂震驚七百萬人。

或者係坊間對薛局長嘅回應反應太熱烈,政府資訊科技總監辦公室(OGCIO)同日晚上再解畫 [1], 進一步解釋點解政府唔會將《安心出行》開放源碼。對於 OGCIO 嘅解釋,我哋有以下回應:

1)OGCIO:「Google同Apple嘅Exposure Notification (GAEN) 嘅核心技術係由Google同Apple擁有,技術規格 (technical specifications) 係開放嘅,但源碼並不是全部開放。」

首先呢,Google 同 Apple 唔係政府,佢哋唔可以隨便通過一條法例強制人哋去用佢哋呢個API,將佢哋同政府比較係不倫不類。再者,GAEN 由科技界兩大巨頭 Google 同 Apple 共同開發,當中亦起互相監察嘅作用,公信力同某啲民望長期維持係負 40% 嘅獨裁政權當然唔可以同日而語。

2)OGCIO:「開放源碼亦會觸及程式嘅保安設計,對程式同用戶儲存嘅出行紀錄構成資訊安全風險。」

政府呢個舊式思維正好跌入所謂 Security through obscurity 嘅圈套,意思係指如果一個程式嘅源碼被公開就會導致保安系統被攻陷,咁呢個本身就唔係一個安全嘅設計。真正嘅系統安全應該要符合 Kerckhoffs’ Principle,意思即係話系統應該係因為佢本身嘅設計而受到保護,而唔係因為攻擊者唔知道佢嘅設計而得到保護。原因好簡單:經過層層外判,源碼保密嘅時間根本維持唔到幾耐。

3)OGCIO:「現時亦沒有標準嘅reproducible builds 技術,不能保證appstore上面嘅app同開放源碼嘅source code一模一樣。」

呢點對相對封閉嘅 iOS 系統某程度上係講得通嘅,但對 Android 就唔係囉,有方法做,有人做緊,唔識就可以參考吓 Telegram [2] 同 Signal [3] 點做

4)OGCIO:「開放源碼要promote,但係不是萬能匙 ... 我哋認為,使用行之有效嘅方法進行獨立第三方保安風險評估及審計同個人私隱影響評估(包括 code review),加埋各個appstore非常嚴謹嘅保護個人私隱驗證係最穩妥嘅做法。」

開放源碼當然唔係萬能匙,但獨立第三方保安風險評估都唔見得係喎。既然安心出行嘅初心係抗疫,咁增加市民使用嘅信心就係大前題,任何有助建立信心嘅嘢都應該做,開放源碼同獨立第三方保安風險評估並冇矛盾,why not both?

5)OGCIO:「提出問題嘅人,歡迎參考遲啲發放嘅「安心出行」specifications,亦歡迎俾建議我哋去進一步增強「安心出行」嘅功能」

既然政府咁講,我哋借用喺香港開放源碼界有多年經驗嘅 Sammy Fung 嘅建議 [4], 分享俾政府參考:

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