先來回顧一下近期發生在周遭的一些事——
【2014 年 3 月 25 日】暗黑破壞神3:奪魂之鐮(Diablo3:Reaper of souls)上市,卻發現伴隨自己多年的台服戰網賬號密碼竟然怎麼也想不不起來,郵箱和密碼提示問題帶著我曾經無限的美好記憶,被遺忘在那只能魂牽夢萦卻無望昨日重現的青春時光之中了。
【2014 年 3 月 27 日】禍不單行,因為一個低級錯誤,公司服務器賬號和郵箱賬號密碼丟失。雖然個人和客戶的隱私信息沒有洩漏,但服務器被迫全線歇菜,一半以上小伙伴們的工作停滯。
【2014 年 4 月 7 日】Heartbleed 曝光。
【2014 年 4 月 12 日】彭博社報道,美國 NSA 已經利用 Heartbleed 漏洞獲取信息為時數年了。
【2014 年 4 月 14 日】加拿大財政局發表聲明,由於 Heartbleed,900 個納稅人的個人身份信息被從政府系統裡竊取。加拿大納稅人們成為 Heartbleed 的第一個受害案例。
Life goes on, Heart is bleeding……
而以上這些,就是我購買並開始使用 1Password 的原因,只為避免下次再以這樣悲傷的故事作為我文章的開頭。啊~多麼痛的領悟。
什麼是 1Password?
1Password 是來自加拿大開發商 agilebits 的一款跨平台(Windows,Mac,Android,iPhone,iPad)密碼管理應用,甚至是個人大部分信息管理應用,在業界知名已久。因為 1Password 使用的是 AES(advanced encryption standard)256 位加密,而非 OpenSSL,Heartbleed 並未對其造成影響。
agilebits 官方 blog 有應對 Heartbleed 的一些建議。4 月 16 日,他們還推出一款叫 1Password Watchtower 的工具,可以幫助鑒別出容易遭受 Heartbleed 的網站並建議用戶及時更改密碼。另外,他們的官網和 blog 也有很多關於 1Password 和密碼、隱私保護方法的介紹和說明。
為什麼要用 1Password?
回答這問題之前,先列幾條密碼保護的原則:
1.避免在多個不同場合使用相同的一組密碼。
2.經常改換自己的密碼。
3.避免相同一組密碼先後重復使用,避免新修改的密碼使用之前用過的。
4.避免使用一些可預測的詞匯或數字號碼,例如,重復的字,可查到的某個詞的拼音縮寫,身份證號,駕照號,某人生日,某個紀念日,親朋或寵物的名字,個人偏好的事物等等。
5.最好創建隨機密碼,降低人為猜中的幾率。密碼位數至少 12 位。(國內許多服務或網站支持最高16位,國外多數支持 32 位以上)
6.密碼中最好包括數字,符號和字母。如果支持大小寫識別,最好大小寫並用。
與之對比,再列出一些安全度較低的密碼:
1.拼音或單詞+數字:qinaide2008,niuxmima123,alexchou789
2.固定的字母或數字排列:123456,369258147,qwerty,asdfg
3.和個人信息相關的字母或數字:Alexchou1989/1/1,021-XXXXXX,+86 13XXXXX
4.系統默認的密碼:111,888,000000
5.某個詞匯或者某句話的拼音:woainiyiwannian1314,gongxifacai888
6.有一些小模糊的詞:1l0veU,p@ssw0rd
7.重復的詞或數字:456456,bugeinibugeini
8.手機號碼,身份證號,駕照號,學生證號,親朋生日、名字等等任何和個人信息相關,並且可以通過調查獲取的信息。
要保證所有地方的密碼都毫不重復並且牢記他們還不能混淆,再加上經常改換它們,而且還有諸多注意事項……果然是「密碼虐我千百遍,我待密碼如初見」啊。
面對這麼一項專業技術活兒,不是每個人都是密碼學專業畢業的吧?也不是每個人都有那麼多時間專門用來改密碼吧?
所以矛盾就在於:安全 = 麻煩事兒,省事兒 = 不安全 = 更麻煩的事兒。
如果剛才那一連串個人和世界性的事件,加上這一堆關於密碼保護的麻煩事兒,還不足以回答「為什麼要用 1Password?」這個問題的話,我想起來一句微軟 XBox 的廣告語:Life is short,Play more。
生活很美好,生命卻有限,盡量把時間精力放到美好的事物和人身上總是好的。而防盜密碼什麼的,恐怕很難作為一種美好的事物被人們想起來。既然如此,為什麼要為密碼而操心呢?
1Password 的價值正在於此,就像它的名字一樣,只需要「一個密碼」,就可以安全又省事兒地把這些麻煩事兒都料理好。
1Password 真的安全嗎?
既然 1Password 掌握了幾乎所有個人信息,若是它本身不安全,豈不是「一著不慎滿盤皆輸」?
首先,如本文開頭所說,因為 1Passwowrd 采用 AES(advanced encryption standard )256 位加密,這個加密標准本身的安全性是很高的。
其次,所有的個人信息都由且只由一個主密碼(Master Password)看管,除了設置這個主密碼的人,任何人都無法開啟,包括應用程序開發商。所以保證這個密碼的安全性夠高,並且牢牢記住就夠了。
最後,1Password 保存的所有數據都在本地,它提供的網絡雲同步數據也是加密後之後才同步。假如 iCloud 或者 Dropbox 有什麼意外,這些數據都是如上所述加密的,只能被主密碼(Master Password)開啟,有幾分飛機黑匣子的意味。這是 agilebits 官方過去針對 1Password 安全性的說明。
關於第三方登錄
何為第三方登錄?各位在很多網站都會見到類似場景:
國外亦是如此:
過去,登錄一個新的網站服務,需要注冊賬號,填寫郵箱,密碼(如果是不太熟悉的網站還得想一個新密碼),發郵件、收郵件確認等等非常麻煩。
最近幾年,類似這樣「用微博賬號登錄」的登錄方式非常普遍,因為這樣做可以免去新注冊賬號,新記住一個密碼的麻煩,方便快捷。不過問題也隨之而來了。
這樣的第三方登錄服務一般是基於 OpenID 和 OAuth 兩種開放標准建立的。而這兩種標准是不同的,簡而言之:
OpenID 是關於證明、證實身份(Authentication)的,就像過安檢的時候拿出身份證來看,比對是否同一個人。這是在回答「我是誰?這就是我」,是為了證實「這不是一個匿名的不可查的信息源頭」,因為匿名對象和信息對網絡服務商來說不好統計管理,也不利於產生價值。
OAuth 是關於授權、許可(Authorization)的,就像過安檢的時候除了看身份證,還要求掏出兜裡的東西,拿出包裡的東西、手機等隨身物品以便檢查,這時就需要得到被檢查人的許可才行。這是在回答「我同意讓你對我進一步做些什麼」,是為了在被授予權限的前提下,更多的獲取除了賬號密碼以外的個人信息,例如:聯系人通訊錄,郵箱號,電話號,地址,照片,聊天記錄,網絡發言、活動記錄,GPS 信息等等,來滿足用戶對服務的功能需要,或者「其他需要」。
OpenID 和 OAuth 是不一樣的,但國內的很多網絡服務商原本只需要通過 OpenID 就能解決的身份證明問題,因為或有意或無意地使用了 OAuth,從而帶來了不少安全隱患。就像本來亮一下身份證就 OK,現在需要我把自己以及家裡親朋好友的戶籍信息都詳細報一遍,恨不能讓我把家門鑰匙給一把出去才行。
再加上現在移動互聯網普及進程一日千裡,微博、微信、QQ 還有很多其他互聯網服務掌握了我們太多的個人信息,輕易授權某一方獲取,人為刀俎我為魚肉,這樣真的讓人放心嗎?
所以又回到了之前提到的那個矛盾:安全=麻煩事兒,省事兒=不安全=更麻煩的事兒。
現在看起來,似乎選擇「立即注冊賬號」是比選擇「用XX賬號登錄」更麻煩,但選擇前者的話,我需要提供的只是郵箱號,昵稱,至多姓名,性別等等這樣一些比較普通的個人信息,剩下的,就靠 1Password 幫我生成一組高安全度的密碼,並且幫我把用戶名和密碼都記住,等我下次登錄時自動填充就行。
這樣,個人信息得到最大程度的保護,也讓密碼的安全性得到保障,同時也不需要我再為記住一堆用戶名和密碼而操心,一舉三得,豈不快哉?
一些安全相關的細節
國內有些網站(例如淘寶)和一些服務或應用(例如 QQ,但微信卻可以)不支持自動填充和復制粘貼密碼,只能通過手動鍵入密碼。自己的隨機密碼越奇葩、越不容易被盜、越安全,這個時候越感歎,加密雖易,輸密不易,且用且珍惜。
登錄有些需要輸入驗證碼的網站(例如支付寶),1Password 記錄下登錄信息時會連同驗證碼一起記錄。這就導致下一次使用 1Password 自動填充賬號密碼的時候,它把驗證碼也一並填入,這時有可能出現:賬號密碼已經輸入正確,沒有驗證碼輸入框,但點擊登錄時卻提示驗證碼錯誤這種滑稽的事情。這時需要在電腦端打開項目詳情,把下方除了 username 和 password 以外的有信息的條目刪除。
1Password 因為沒有用 OpenSSL 協議程序所以不受 Heartbleed 影響,使用 1Password 可以在個人范疇提高個人信息的安全度。但應對 Heartbleed,還得處在漏洞源頭的網絡服務提供商們也出力才行。
到現在(2014 年 4 月 18 日 17:38)關於 Heartbleed,在眾多我正在使用的網絡服務中,我收到了兩家(國內一家國外一家)的郵件通知。
莫名的,此刻他們倆在我浏覽器收藏夾的和 iPhone,iPad 眾多 apps 中的位置靠前了許多。(若說這是廣告植入,竟然有廠商寧願花錢打廣告也要對用戶的賬號隱私安全著想,如果這樣的廣告能越來越多地滌蕩「點這裡就能上我」之流,難道不是一件人民群眾喜大普奔的好事嗎?)