本帖最後由 z24374203 於 2013-2-20 23:48 編輯
![](http://cdn2.techbang.com.tw/system/excerpt_images/12318/inpage/eaeed2f67bde285fc1e1d96235ab4589.jpg?1361264147)
紅極一時的 Megaupload 創辦人 Kim Dotcom 最近捲土重來,推出名為 Mega 的網路雲端服務。有別於一般的網路硬碟,Mega 的首要考量是資料安全,在設計上大量使用了密碼學,來消除用戶對資料安全的疑慮。因為在雲端口號越喊越響的今日,很多人心中同時也擔心當我把資料放在雲端時,要怎樣確信服務提供者不會偷看我的資料?
雖然 Mega 的設計仍有潛在的缺點,但是以資料安全為核心目標的新創雲端服務仍數少見。網站上 Mega 更自稱為「隱私公司」(The Privacy Company) 筆者將介紹 Mega 保護用戶資料安全的方法,並討論使用上的優缺點。不過 Mega 問市不久,公開資料不足,若推斷錯誤請多包涵。 編按:Kim Dotcom:原名 Tim Schmitz,天才駭客。青少年時期就因為竊取資料與內線交易而被逮捕過。創辦網路下載服務 Megaupload 後大賺其錢,移居紐西蘭,生活豪奢、作風爭議。於2012年初被紐西蘭警方經美國警方要求後逮捕,美國政府指控其 Megaupload 害美國的娛樂事業損失高達5億美金。現正努力交涉不被遣送至美國。但在這段期間,又推出了新的網路硬碟服務 Mega。 隨機的金鑰加密文件Mega 公開的開發者文件指出,Mega 使用對稱式加密演算法符合高階加密標準(Advanced Encryption Standard,參見 AES-128 的 Wikipedia)。 「所有的對稱加密方法都奠基於 AES-128 . . . 每一個檔案與每一個檔案夾都有各自隨機產生的 128 bit 鑰匙。」 “All symmetric cryptographic operations are based on AES-128.… Each file and each folder node uses its own randomly generated 128 bit key.”
並且,Mega 做為網路硬碟,會針對每一個檔案和資料夾,都特別打一把長度為128bits的金鑰,如下圖所示: ![](http://cdn3.techbang.com.tw/system/images/113797/original/146b6453d667f4ca651e264c57c8d838.jpg?1361263380)
Mega 加密檔案的概念如同把文件放在一個盒子裡,掛上密碼鎖後,使用者再隨手按了一組號碼鎖起來。每當使用者上傳一個檔案,瀏覽器上的 JavaScript 會設定一個128bits的隨機密碼。所以,加密的過程是在用戶電腦(瀏覽器)上進行,而不是透過 Mega 的伺服器。因此只有你自己的電腦知道這個隨機的密碼,可以解開它。 用主鑰加密金鑰接著你的文件在隨機加密過後,傳給 Mega。但要是 Mega 知道了這個隨機金鑰,他們就能存取你的檔案,加密就白作工了。因此,還需要另一個屬於你個人的主鑰來加密第一把隨機金鑰。 ![](http://cdn3.techbang.com.tw/system/images/113798/original/1f665267c601aff374f9081d4f93e9bc.jpg?1361263380)
用使用者密碼加密主鑰這又製造了新的問題,那主鑰又該怎麼辦呢?用你的使用者密碼來進行加密! 根據 Mega 的開發者文件,Mega 用你登入用的使用者密碼的 Hash 值來加密主鑰。 “This master key is stored on MEGA’s servers, encrypted with a hash derived from the user’s login password.”
如此一來主鑰也加密過了,使用者可以安心地存檔在Mega伺服器上了,整個架構就如下圖所示 ![](http://cdn2.techbang.com.tw/system/images/113799/original/396f4df7f5aaf992685e38589d8887fe.jpg?1361263381)
在 Mega 伺服器上的都是多層加密過的檔案,而最終能解開這些檔案的只有使用者的密碼。並且 Mega 保證使用者密碼不會落到 Mega 手裡,所以 Mega 本身也沒辦法知道檔案的內容。 理論不等於實作即使理論上有多層的金鑰加密,保護資料安全,實作上安全性仍有至少兩個可能的漏洞。 1. Mega 存取的客服端是由 Mega 提供並在網頁上執行的。這樣一來你必須相信 Mega 不會在這個過程中偷走你的密碼,以及 Mega 網站本身不會受到攻擊而交出資料。 2. 使用者瀏覽器上的 JavaScript 加密,其程式碼並不難,可能被破解。例如,先前網友 marcan 在 Megafail 一文指出 Mega 網頁使用 SSL 2048安全性較高的主站頁面去動態讀取安全性較低的 SSL 1024 的 CDN(Content Deliver Network)檔案並驗證的手法有弱點。不過,Mega 團隊很快地就修正了這個弱點。 不過反過來說,Mega 也做對了兩件事。第一是公開加密的方法,讓所有玩家檢視並找出弱點。第二是快速針對弱點進行改進。除此之外 Mega 下一步將讓開發者自行在 Mega 上發展應用,減少客服端不安全的疑慮。 忘記密碼就糟了層層加密的同時,使用者也必定得失去一些雲端服務的方便性,例如: - 密碼不能丟:當你忘記你的密碼時,你的檔案也全都丟了。因為 Mega 不知道你的密碼,也沒辦法幫你找回密碼。沒有你的密碼,解開那些檔案時也當然無法幫你還原。
- 沒有檢索功能:因為儲存過的檔案都有經過加密,使用者無法在伺服器上做全文檢索。
- 頁面載入緩慢:因為使用者的瀏覽器需要負責加密,其瀏覽器端的負擔相對較重,得花更多的時間讀取頁面。
結語縱然 Mega 的安全性還有待考驗,然而其所選的道路確實在競爭激烈的雲端大戰中,突圍而出。但 Mega 的將來還是危機重重,不論是著作權團體的攻擊,或是安全性上的攻擊也好,其成敗都顯示出其大膽無畏的創新精神。 在隱私越來越受重視的當下,有密碼學的深度應用的產品其實還很少。Mega 的出現是否會引領出更多更安全的雲端服務呢?讓我們拭目以待。 ICON 來源:famfam From http://www.techbang.com/posts/12 ... cure-cloud-services
|