Evernote安全問題帶來的啟示
近日,對于SaaS來說最大的壞消息當數(shù)Evernote(印象筆記)被黑客攻擊。該公司表示,他們發(fā)現(xiàn)有人試圖侵入公司系統(tǒng),讀取用戶名、電子郵件地址和經(jīng)過加密保護的用戶密碼。但是該公司在其官方網(wǎng)站發(fā)布公告,建議其用戶在下次登錄時選擇新的密碼,同時提供了關(guān)于用戶如何設(shè)置密碼的建議。修改密碼將影響所有的Evernote應(yīng)用。好消息是由于Evernote服務(wù)器并沒有存儲任何用戶支付信息,因此不會有支付信息泄露的情況。
Evernote官方表示,在攻擊過程中,攻擊者獲取了其用戶的用戶名、電子郵件和加密密碼等數(shù)據(jù)。但是在隨后的分析中,Evernote沒有發(fā)現(xiàn)任何證據(jù)表明用戶帳戶中的內(nèi)容在未經(jīng)授權(quán)的情況下被獲取。
及時升級認證手段保障賬戶安全
與LinkedIn當時被拖庫時只是采用了普通的MD5哈希相比,Evernote使用了加鹽的MD5。因此,在一定程度上加大了黑客暴力破解的難度。另外,Evernote的工程師計劃在今年晚些時候升級他們的安全系統(tǒng),將在安卓客戶端的Evernote應(yīng)用中移除密碼存儲機制。
為了確保安全性,Evernote匆匆推出了一個雙因子認證身份驗證系統(tǒng),以增強系統(tǒng)安全。在新推出的驗證系統(tǒng)中,Evernote要求用戶在登陸后,通過接收SMS短信驗證碼的方式,實行二步驗證來保證用戶賬戶安全。Evernote這一舉措,與Dropbox網(wǎng)盤去年未受到攻擊后采用的升級措施一樣。雖然用戶可能會受到干擾,但相信二步驗證這種方式,能給用戶的數(shù)據(jù)帶來更多的安全保證。
從2010年的600萬用戶,到今年的5000萬用戶,Evernote的用戶數(shù)呈幾何數(shù)增長。正所謂樹大招風(fēng),所以吸引了黑客的光顧。對于此次事件,用戶以及業(yè)界對于Evernote數(shù)據(jù)的安全性保護方法的關(guān)注也很高。甚至有很多人對于MD5的加密頗有微辭。當然,也有人表示說Evernote做的已經(jīng)很好了,至少在MD5哈希的基礎(chǔ)上已經(jīng)做了加鹽處理。
然而,筆者認為,Evernote之前的做法做到了安全與投入成本的平衡。并未因為追求過高的安全性而做出很多無謂的安全設(shè)施投資。事實上,由于Evernote官方緊急推行了雙因子身份認證,因此即使密碼被破解對于用戶而言也不會造成數(shù)據(jù)丟失。況且,官方也表示了目前還未發(fā)現(xiàn)非法的數(shù)據(jù)修改操作。也從側(cè)面反映出了Evernote此次的做法也是有效的。
存儲的加密方式優(yōu)于用戶強密碼
筆者看來,對于數(shù)據(jù)敏感的服務(wù)提供商來說,廣泛推行雙因子身份認證是一個行之有效且經(jīng)濟實惠的方式。由于二次認證的存在,用戶可以降低密碼的復(fù)雜度,對于用戶來說也是一種便利。因為,一旦服務(wù)提供商的數(shù)據(jù)庫未被加密亦或是簡單的MD5,復(fù)雜密碼的有效性依然值得商榷。
前面說過,有些人對于Evernote采用MD5加鹽的方式做為密碼存儲的方式持鄙夷態(tài)度。如果Evernote使用更為安全的加鹽HMAC、PBKDF2、SCrypt或者 BCrypt呢?
HMAC雖然是一種哈希運算消息認證碼,但是由于引入了密鑰作為運算的因子,更像是加密算法,其安全性也已經(jīng)不完全依賴于所使用的哈希算法,安全性有保障。由于HMAC使用加鹽以及SHA系列算法,使得彩虹表的構(gòu)建成本以等比級數(shù)倍增。同樣,對于使用方的服務(wù)器負載需求也很高。
理論角度講,只要算法實現(xiàn)上沒有硬傷的情況下,PBKDF2、SCrypt或者 BCrypt是安全性比HMAC更高的加密方式。PBKDF2、BCrypt與SCrypt的共同點是算法中都有一個參數(shù),可以指明計算密碼摘要所需的計算強度。可以根據(jù)計算機性能的提升而修改計算強度,從而使彩虹表的構(gòu)建處于無法持續(xù)構(gòu)建,但是其對計算資源消耗的程度也相當之高,足以使服務(wù)器自發(fā)產(chǎn)生“拒絕服務(wù)”。所以有人說,scrypt確實給暴力破解帶來了很大的難度,但是似乎幫了拒絕服務(wù)攻擊的人。
因此,對于企業(yè)網(wǎng)站來說,對于密碼存儲要量力而為,基礎(chǔ)資源有限的網(wǎng)站可以選擇加鹽的SHA系列加密算法,配合雙因子身份驗證。而具備雄厚計算資源的網(wǎng)站而言,使用較強的加密算法保護密碼存儲的安全是才上選。