問題:盲目信任
當你安裝嬰兒監視器 App 時,就等於讓它進入非常私密的空間:寶寶的嬰兒房。 App 會收音,有時也會進行影像監看。但家長往往看不到背景發生了什麼:串流是否會經過第三方伺服器?是否會蒐集使用資料?從技術上來說,誰能存取這些內容?
坦白說,對許多 App 而言,答案是:你不知道。程式碼不公開,系統架構也只是業者的一面之詞。到頭來,你只能選擇相信服務提供者。
封閉程式碼,留下破口
近年已有不少嬰兒監視器遭駭的報導。陌生人能偷聽、移動攝影機,或透過喇叭說話。 大多數情況不是什麼高深攻擊,而是嚴重的基本問題:未加密連線、預設密碼、缺少身分驗證。
使用專有軟體時,外部人士往往要等到事情發生後,才看得見這些弱點。 資安研究人員、獨立開發者與家長只能從外部檢視成品。對放在嬰兒房的裝置來說,這是一種薄弱的安全模式。
把透明度當成安全原則
資訊安全有一條歷史悠久且實用的原則: 柯克霍夫原則。 安全性不應仰賴設計細節不公開。即使有人知道系統如何建構,它仍應維持安全。
公開且附有文件說明的程式碼,本身並不會讓軟體變得安全,卻能讓各項說法接受查核。 熟悉這個領域的人可以檢視資料流、金鑰衍生方式與規則,而不是只看行銷文案。
Timmy 的做法:獨立的安全核心
在 Timmy 中,我現在會非常清楚地區分哪些是真正攸關安全的部分。 並非每一行介面程式碼都會決定產品是否值得信任。真正關鍵的是後端邏輯、訊號交換介面規範、配對加密機制,以及哪些資料會送到伺服器。
因此,安全核心現在放在公開的 baby-monitor-timmy-core 儲存庫中。 目前完整的 App 程式碼尚未公開。攸關安全的核心元件已從介面與產品邏輯中抽離,以便單獨加以說明及檢視。
這具體代表什麼?
- 清楚的界線: 安全元件與介面及產品邏輯分開。
- 可稽核的資料流: 配對、訊號交換與後端介面可以分別說明。
- 沒有隱藏追蹤器: 關鍵路徑中只包含技術上必要的內容。
- 長期可維護性: 獨立核心比雜亂無章的單體系統更容易檢視。
結論:家長值得擁有透明度
當一個 App 能進入嬰兒房,就應該明確回答關鍵問題:產生了哪些資料?資料會傳到哪裡?誰能讀取? 家長值得的不只是頁尾的一個隱私標章。
Baby Monitor Timmy 應展現出,優質的產品與可稽核的安全性可以並存。 對我來說,這不代表公開 App 的每個角落,而是公開決定配對、訊號交換、後端存取與資料流的部分。