2011年9月25日 星期日

保護雲端隱私的技術: Homomorphic Encryption 與 Unhosted

(公有雲的) 雲端上, 沒有隱私。 [石頭閒語網路法律資訊人權貴; 或搜尋 「雲端 隱私」 ] (SaaS) 雲端廠商本身不一定有興趣窺探你的秘密資料; 但若 某國政府, 或 官司對手 突然對貴公司/組織/您的秘密有興趣, 廠商可能沒有勇氣甚至沒有法律立場可以抗拒要求。

既要上雲端, 又想保護隱私, 唯一的希望是: 讓雲端廠商看不懂/看不見你的秘密資料。 那麼就算 (本國或他國) 政府或律師把你的隱私資料從雲端調閱出來, 也不會構成威脅。 Homomorphic encryption 與 unhosted 這兩個保護雲端隱私的資訊安全技術, 分別就是依據這兩個想法在運作。

Homomorphic encryption Homomorphic encryption 的概念是: 資料先加密才放上雲端, 確保 SaaS 雲端服務商看不懂你存了什麼東東。 但是雲端服務商看不懂你存的資料, 又如何提供 「軟體即服務」 給你呢? 如果加密演算法經過特殊設計, 可以找到加法、 乘法等等每個運算的相對應函數 f、 g 等等, 使得雲端上的對應運算 (f 或 g) 恰好 "等同於" (equivalent to) 原本想要做的運算 (加法或乘法) -- 也就是說, 加法或乘法運算之前與之後的資料, 其加密的結果正好就是 f 運算或 g 運算之前與之後的資料 -- 那麼雲端廠商等於是矇著眼睛在計算你的資料, 即使他們看不懂你的資料, 也能算出你所需要的結果 (然後你再自己解密)。 IBM 的學者 Craig Gentry 在 2009 年首度找到一個滿足上述要求的加解密系統, homomorphic encryption 在理論上證實為可行。 詳見 Craig Stuntz維基百科。 資安專家 Bruce Schneier 則 提醒大家: 理論與實用之間還有一段距離。 後來 Gentry 與其他學者又改良原本的演算法, 大幅簡化運算方式; 微軟於今年八月展示可行的實作。 Homomorphic encryption 還有其他許多應用, 包含線上投票等等。 詳見密碼學者所搜集的 許多學術文章連結。 [2013/5/4 補充] IBM 釋出 open source 的 Homomorphic Cryptography 函式庫

unhosted 更進一步, 何必讓 SaaS 雲端應用軟體的服務商看見你的資料呢? 一群程式高手觀察到一個重點: 雲端運算, 其實 「運算」 不見得一定要發生在 「雲端」 上。 雲端運算的重點是: (1) 自己的資料放在雲端上 (2) 大家共用一套來自雲端的軟體 (例如: 用 wiki 或 googledoc 之類的雲端文書系統取代 MS Office 就不會出現 "你我檔案格式版本不同" 的困擾); 至於真正的運算工作到底在哪裡發生, 其實並不重要。 如果我們把資料和程式碼切割考慮, 如果把雲端廠商切割成兩類角色: unhosted application 提供程式碼; unhosted account 提供儲存空間, 那麼真正的運算可以在本地機發生, 並不需要在雲端發生, 而且兩個雲端廠商都無法窺探你的秘密。 也就是說, 你的本地機從一朵雲 (unhosted application) 取得程式碼, 又從另一朵雲 (unhosted account) 取得加密過的資料, 然後 在本地機 解密、 處理資料、 加密、 再傳回後者 (unhosted account)。 Unhosted application 從來就看不見你的資料; unhosted account 則永遠只看得見加密過後的資料。

從雲端隱私保護的角度來看, Unhosted 不論在理論或實作上, 都比 homomorphic encryption 簡單。 Javascript 就是現成的客戶端 (本地機) 執行技術, 可以作為 unhosted application 提供程式碼給本地機的載具; 而 WebDAV 則是現成的遠端資料編寫協訂, 可以作為本地機透過 javascript 向 unhosted account 請求讀寫資料的溝通 "語言"。 Unhosted 計畫官網 已經推出程式庫、 文件、 範例程式供開發者取用; LibreOffice 也開始探索與 unhosted 計畫合作的可能性。 如果有一天 LibreOffice 成功移植到 unhosted 架構上, 將會是 (保有隱私的) 文書處理雲端化的重要里程碑。

採用 unhosted 技術, 還可以得到許多額外的贈禮:

  1. 提供 unhosted application 服務的廠商或組織可以免除管理資料的困擾 (儲存空間、 備份、 消費者隱私保護法規、 ...), 降低成本。
  2. 提供 unhosted account 服務的廠商或組織不需要提供複雜的軟體服務; 同時加解密技術也替他們免除了 [消費者隱私保護法規所施加的責任]。
  3. 用戶享有軟體自由與資料自由 -- 你甚至可以把資料放在私有雲上面, 完全保護自己的穩私。
  4. 即便 unhosted application 供應商所提供的不是自由軟體, 它至少必須尊守開放檔案格式/開放通訊協定的規範 -- 這讓用戶可以免於封閉檔案格式或專利地雷檔案格式 (例如 docx) 的綁架。 切換不同的應用軟體處理自己的同一份資料, 將會變得比較容易。

幫公司/組織/學校導入雲端運算方案時, 如果遇到涉及員工隱私或組織機密的資料, 採取的又不是私有雲技術, 那麼一位有職業道德的 CIO電算中心主任 應該考慮堅持採用 unhosted 技術 (或至少採用 homomorphic encryption 技術), 確保用戶的資訊安全。 尤其像是 「教育雲」 之類的構想, 強制將全國學生甚至是家長的隱私搬上雲端, 爭議性極高。 如果不採用 unhosted 技術, 將來發生隱私外洩糾紛時, 很可能又會發生 「公民納稅、 政府國賠」 的遺憾事件。

* * * * *

手邊沒電腦; 口頭推薦本文嗎? 可以請您的朋友搜尋 「雲端 隱私」 或 「unhosted 隱私」。 (yahoo 的話, 要選 "部落格" 搜尋, 而且要好幾週後才找得到)

本文同時刊載於 泛科學 網站。

沒有留言:

張貼留言

請見 留言審核及授權政策