拜託,不要再幫黑客來猜我的密碼了

黃利民發表於2013-04-11

近段時間來,有很多起鬧得沸沸揚揚的黑客攻擊事情(並且成功了)。單單在 2012 年,就有數百萬的賬號雜湊密碼和其他敏感資訊被竊取:

  • Zappos:2400萬賬號密碼和郵件地址暴露
  • Global Payments:150 萬信用卡號碼暴露
  • LinkedIn:650 萬雜湊密碼別竊,其中很多都是沒加“鹽”
  • eHarmony:150 萬雜湊密碼暴露
  • Last.fm:密碼被盜
  • Yahoo:45萬密碼洩露,明文密碼啊
  • (譯註:上面還只是國外的部分,至於國內的密碼洩露事件,在2011年12月份非常集中,CSDN、多玩、51CTO、CNZZ、eNet、UUU9、YY語音、百合網、開心網、人人網、美空網、珍愛網等眾多網站都陷入洩露醜聞。因為其中不少都是明文密碼,所以也就催生了很多明文密碼的段子。)

現在,我相信你明白了,你的資訊從來都不安全。你在某家網站上輸入信用卡號碼和密碼,你是想著他們會已經採取了必要的安全防護措施來保障這些資訊。不過悲哀的是,大量企業並沒有像樣的安全實踐。

事實上,最惡劣的罪犯,不僅不安全地儲存你的密碼,而且他們還阻止你適當保護自己。在一些列洩露事情中,雜湊密碼都公之於眾了,有一個極為安全的密碼,才是保護自己的唯一途徑。通常來說 ,一個安全的密碼,由隨機字母、數字、特殊字元組成,甚至也可以包括你能記住的長句子。問題是,並不是所有的網站都允許使用這種安全密碼。

看看下面這個例子:

我欣賞你給的建議,但我並不認為,在你不允許我設定超過30個字元或在密碼中使用空格的情況下,你就沒有資格來給建議,沒資格教我怎麼使用一個安全密碼。

XKCD 有一張漫畫,建議使用者想出一個隨機字串、能記住的單詞,來生成一個簡短的句子,用作密碼。在那個網站上,“correct horse battery staple” 都可以用作為密碼,但是你就要撞上限制了。如果你想用字數稍微更長些的密碼呢?

Password Strength

好吧,對於一些社交網站或不大重要的服務,30 個字元已經足夠了,但是如果我想在 Ribbon 上賣東西呢?

另一個密碼長度限制。在這種情況下,有一個安全尤顯重要了,畢竟是和錢打交道了。我可不想有人來訪問我的賬號,把錢轉到他們的Paypal賬號。

說到 Paypal,來看看他們的密碼策略吧,

Paypal不錯。用來處理錢的服務,要連線銀行賬號、信用卡、地址和其他個人資訊,最高要求用 20 個字元長度的密碼。至少他們還建議使用特殊字元了。

不過有些銀行的密碼規則就有點太荒謬了。

實際上美國銀行(Bank of America)就是最惡劣的罪犯之一。雖然他們密碼長度上限是20個字元,但他們居然要求使用者的密碼別使用空格和一些特殊字元。如果發生了密碼洩露事情,感覺他們會讓我的密碼更容易猜到。

The Good

幸運的是,有一些服務在幫助安全領域。

WordPress.com 就是一個好例子。他們不僅接受長達50個字元的密碼(包括特殊字元、數字和大小寫字母),他們還有一個輔助工具,點選一次,就可以生成一個包括特殊字元、數字和大小寫字母的50字元的高強度密碼。

也還有很多應用用來生成隨機密碼。1Password、 LastPass(儘管在2011年曾經有一次針對LastPass的攻擊)就是其中的很好例子。個人而言,我在 Mac 和 iPhone 上都用了 1Password,非常棒。我的密碼不僅是隨機的,而且每個網站的密碼都不相同。如果我註冊的網站中有一個站點被拖庫了,黑客也沒機會用相同密碼去訪問我註冊的其他網站。

What Needs to be Done

開發人員需要培養一下安全意識,這就好比疾病和公共衛生,如果人人都瞭解了不合理安全防護的危險後,安全領域中的問題也會更少些了。由於社會工程和其他利用人性的策略,還是會有資料洩露事件。不過如果能合理結果 加鹽與雜湊、安全密碼和雙重身份認證,將會大大降低大規模資料洩露的危險。

像雙重身份認證的安全措施或許要費些力氣去實現,但這裡有個每位開發人員都能做的簡單活:

移除登錄檔單上那愚蠢又武斷的限制,讓我能用任何我想要的密碼。畢竟,你又不會明文儲存我的密碼,所以你資料庫中那個 VARCHAR(30) 就不那麼重要了,是不?

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

拜託,不要再幫黑客來猜我的密碼了 拜託,不要再幫黑客來猜我的密碼了

相關文章