數字世界中的加密就好比是現實世界中的保險箱。數據妥善保管起來,只有擁有相應密鑰的那些人才能看見。尤其是,加密為數據安全的機密性提供了一道強有力的保障;如今,加密在云計算領域正在迅速流行起來。但經過加密的數據就因而變得更安全嗎?要是你的密鑰以明文格式傳輸、被人復制或者管理不當,并非如此。
傳輸到公有云的數據通常安全地傳輸,文件并不保存在公共網站服務器上,所以明顯的安全措施已經落實到位。可是一旦數據進入到存儲服務器,數據就不在用戶的觸及或掌控范圍之內。數據在存儲時可能經過加密,也可能不是這樣;這些數據可能被服務管理員讀取,也可能不是這樣。數據可能提交給頗有影響力的第三方,比如政府或相關部門,也可能不是這樣。要是服務器被人闖入,存儲在上面的數據就會遭到危及;如果服務器被人實際劫持,上面的數據就會被人訪問。
密鑰持有者很重要
任何提供加密功能的正規的存儲服務提供商都會將每個客戶的數據妥善存儲起來,并且使用客戶的獨特加密密鑰對數據進行加密。事實上,提供商保管數據,用戶則保管密鑰――密鑰通常使用某種算法(PBKDF2就是一個典例)由客戶的密碼獲得。
但是情況顯得很棘手的是這個問題:通常已存儲數據的加密是在提供商的服務器上進行,這就意味著在加密過程中,加密密鑰勢必由提供商保管。而我們客戶除了信任這家服務提供商,別無選擇。
在這種加密模式下,提供商會在某個時刻保管其用戶的加密密鑰;畢竟,提供商需要加密密鑰,那樣才能夠加密和解密信息。用戶保管密鑰,提供商保管經過加密的數據。無論用戶何時需要訪問其數據,就必須在“代理安全性模式”(security by proxy model)下,將密鑰暫時借給提供商。這一步是通過登錄到服務實現的。
Web應用程序或編譯的程序毫無兩樣。密碼在點到點加密隧道(通常是SSL/TLS隧道)里面傳輸,這意味著密碼以明文格式存放在客戶端和服務器端的存儲區域。密鑰已被復制。
所以要是提供商有其他不太明確、不太誠實的企圖或者受到脅迫,它們可能偷偷保管一份加密密鑰的副本,對用戶數據進行解密。要是沒有額外的機制,客戶基本上無法減小這種風險。比如說,TrueCrypt卷有望解決這個問題――不過,如果采用這個解決辦法,卻又存在很多缺點,而且靈活性大打折扣,更不用說潛在的完整性問題了,如果試圖共享TrueCrypt卷中的文件,更是如此。要是不使用這類工具,必須面對這個簡單的事實:不管數據有沒有經過加密,客戶完全是信任在線存儲服務提供商,才會讓它保管自己的數據。
數據安全與信任
拋開信任問題不說,需要討論一下數據安全的優點與代理安全性的影響。
如果用戶要求其在在線存儲環境中的數據安全可靠,那么他們不應該使用代理安全性模式。他們必須使用這樣一種方法:確保提供商根本沒有足夠的信息可以解密,或者為解密已存儲的客戶數據提供便利。這樣一種加密模式可以實現數據安全,從而確保提供商在其系統中根本沒有足夠的信息可以對數據進行解密嗎?是的,很自然,現在有一些協議和方法就能做到這一點;毫無疑問,將來會出現多得多的解決方案。
不過到目前為止,這樣一種模式還不存在,因為許多提供商被要求允許執法部門或人員訪問客戶信息,以便將信息交給有關當局。
目前的云存儲服務提供了加密,或者增添了加密服務,它們采用的是“代理安全性”模式。因而不管在什么情況下,用戶無法得到這個保證:提供商無法訪問其數據。提供商基本上不費吹灰之力,就能訪問客戶的數據,如果它們想這么做的話。
正是由于這個原因,用戶總是應該可以訪問遠程存儲系統中保管的數據,那樣萬一數據遭到危及,用戶可以確定數據的價值。(要是自拍裸照在網上泄露的名人們停下來在這方面思索一番,原本或許可以防止這場名人私照門。)在此期間,在線存儲服務提供商應該竭力提供保障,直到加密技術完全成熟起來。