你申請過多少網站帳號?Yahoo?Google mail?MSN?……,以及各家網路銀行。
請問你現在記得住幾個?記下這些帳號和密碼是否成為你的負擔?(你是否會將這些帳號和密碼的組合寫在電腦裡或紙張上?)
通常我們可以記下幾個有意義的數字或英數組合,而生活中需要用到數字的機會也很多,我們要記家人的電話、朋友的電話、現在手機普及,大部分的人甚至已經無法記憶很少使用的電話號碼了;我們也要記憶身分證字號,自己的生日(這還簡單)、親人的生日。還有電腦的密碼。
帳號和密碼的組合
人的記憶力並不算很好。縱使記下一組數字和密碼對我們來說並不困難。但假如一配一的模式,變成一配一配一的話,狀況就很複雜了。這樣的問題我用網路來說明:記下 john:0912345678 算是很簡單的, John 這個人用自己的名字當帳號,用電話號碼作為密碼,相信他並不會遺忘。假如今天 john 已經被申請了,於是他便得改變自己常用的帳號,變成 John2009:0912345678 這樣的組合。於是情況開始複雜,John 在 Yahoo 和 Google 兩個網站的帳號不一樣,但密碼一樣:
john:0912345678@Yahoo
john2009:0912345678@Google
但假如今天 Yahoo 開始規定,你不得僅用數字來設定密碼(大部分的人會只用數字來作為密碼),必須混雜幾個英文,於是 John 改變了他的 Yahoo 密碼
john:abc0912345678@Yahoo
原本 John 只要記下一組帳號和密碼,現在他要記下兩個不同的帳號名稱,兩個不同的密碼,和兩個網站,若是他搞錯了其中的組合方式,則要從八種組合可能中去找出正確的模式。
容易記和不容易記的密碼
你可以很快的說出你的電話、生日和身分證字號,因為這些數字對你來說具有意義,而且也因為經常使用,所以記得牢。
但曾經牢牢記住的數字,可能一段時間不用,就輕易的忘記了,像是我的國小學號,國中和大學學號,以及軍中的號碼。當時可以脫口而出的數字,現在可一個都記不得。
而生活中經常使用的是純數字組合,很少有英文和數字混合的機會。通常我們在設定密碼時怕往後會忘記,最優先採用的就是自己的生日或身分證字號,因為這一輩子都不可能會忘。可是這種方式被視為最不安全的密碼。
但比較複雜的密碼我們又記不住,現在我們面臨了較嚴謹和較寬鬆的密碼兩種網站密碼要求,根據我的分析,採用較嚴謹密碼要求的網站,通常也是較常出現安全問題的網站。我稍後將舉例這個現象。
聰明和沒人性的網站
我先來比較聰明的網站,和沒有人性的網站,他們的帳號密碼有何特色?
聰明的網站
首先,聰明的網站,本身程式的安全性就比較高,也不會刁難使用者,要求你設定很複雜的密碼。
通常它會讓你使用你的 email 來作為登入,使用 email 作為帳號的好處是,你不會因為你的帳號名稱別人在這裡已經登記了,而另外隨便取一個像 john2009 這種名字,因為 email 是不會跟別人重複的,而且別人也無法冒用你的 email。
至於密碼,只要你自己記得住,高興怎麼取都可以,一般只會有六位數以上的基本要求。因為他們了解我們通常只能記下「有意義的數字」,任何更複雜的規則要求,只會讓我們臨時新創能夠符合規定的新密碼,這樣只會有兩個結果發生,一個是我們很快的就忘了密碼了;另一個便是為了不忘記,於是我們將這個帳號和密碼記在電腦、或是筆記本裡。
沒有人性的網站
在台灣,銀行網站經常這樣要求。除了要求一定要數字和英文字母一起混合之外,還會檢視你的數字不能和身分證、生日、電話有「部份重複」。除此之外,有的還會要求你一段時間要重新更換密碼,有的會要你設定第二組密碼等等。只要他們認為搞得複雜一點,使用者就能避免使用慣用的密碼,他們便會不斷的加入新規定。
有一些沒人性的網站,還特意關閉了瀏覽器幫你記憶帳號密碼的功能,避免存留在電腦上。基本上這有點將使用者當小孩子看待…
沒人性網站通常有下列密碼要求
- 長度必須超過8位數
- 需要至少混合1-2個英文字母
- 不能和帳號、身分證、電話或生日等部份重複(例如有些規定不能和身分證重複超過4碼)
- 不得為重覆鍵盤字母,或連續數字。如 aaaa1111 或 qwertyui。
複雜的密碼比較安全嗎?
我們會這樣認為沒錯,常用的電話、生日、身分證字號,大多是要對外公開的,所以當作密碼並不安全。但若是一組臨時創造的密碼沒有意義、難以記憶,久了就忘,甚至我們要將之抄寫下來。這樣不也容易造成密碼外洩的可能嗎?
在各家網站中,Google、PayPal 算是採用寬鬆的密碼規則的。他們難道不怕因為密碼被破解而損及客戶利益?我想對於這兩家從事金錢交易的大公司來說(這兩家公司都會記錄客戶的信用卡資料,以進行網路交易付款),沒有什麼比安全更重要的了。
反倒是台灣的主要網站,例如網路銀行,Yahoo 和 PChome 等,皆要求更複雜的密碼定義。而我在Yahoo 曾發生過帳號被盜用的情況,我只在自己的 Mac 登入 Yahoo 帳號,所以我推測是 Yahoo 自己的伺服器被破解,或是內部控管出問題,而非我自身的因素。
如何設定不錯的帳號
通常我們會希望能用自己固定的名字來作為帳號,但常常事與願違,所以除非取個奇怪的名字,不然沒有更好的辦法。另外有種趨勢是,網站允許你用 email 作為帳號登入,或是採用類似 OpenID 的技術,這樣反而比較理想。
如何設定不錯的密碼
這裡提供幾個方向帶領你設定出不錯的密碼。
區分出三種密碼等級
不要只設定一個密碼。我有個朋友用當初 hinet 配發給它的怪異密碼直到現在,這種怪異密碼除了無法用在提款卡上,在網路上幾乎不會被拒絕採用。但也因為他從沒有重新設定密碼的需求,所以直到現在也只有這個密碼。有時候他會因為方便而將這個寶貴的密碼告訴我,這樣等於他將所有其他網路上的密碼都讓我知道。請至少將密碼區分為三個等級:
- 終極密碼 – 用於自己電腦上,且不在網路上使用。最高等級的密碼,複雜的組合,而且從不讓其他人知道。不用在網路上,是避免被別人從中攔截。
- 網路交易密碼 – 有交易用途的密碼,例如網路銀行、網路購物、網路拍賣等等,會涉及到金錢的使用的網站使用。
- 一般網路密碼 – 一般網路註冊、討論區、或是部落格等。這個密碼,就算有可能讓好朋友知道也不是很要緊。(在小公司的網站底下,千萬別用等級較高的密碼,以避免人員控管不當,洩漏你的慣用密碼)
除了上述的三個等級密碼外,你還需要純數字密碼,用於提款卡上。通常這類的密碼會和卡片一起搭配使用,所以保管好卡片便能控管安全。而你可能需要兩組,一個是4位數短密碼,例如手機或傳統磁條提款卡;一個是8或12位數,用於晶片提款卡。
組合數字
千萬別再繼續用生日、電話或身分證了,只要這些資訊會對外公開,就有可能遭「有心人」利用。
我教你善用下面的組合,將有意義的數字,混合出不容易被猜出的無意義組合;
- 和親近的人混合 – 你可以將自己的電話、生日,或身分證等資訊,找一個親人,將他的和你的數字相加在一起,組合成一個沒有意義的數字。這個數字,就算你日後忘了,還是可以回想起,重新計算獲得。
- 變與不變的資訊來源 – 最常看到人在自己名字後面加入2001年作為帳號。其中自己的名字是不變的,日後不容易忘;但添加的年份是變動的,8年過後,我們可能會忘了當年是哪一年。儘量加入的是有意義的短資訊,例如自己來自台灣,則加入 tw 或 taipei,自己的星座是 leo,姓 Wang,喜歡 porsche 汽車等。這些都可以混入你的密碼中,你最好挑選和自己相關的固定資訊,像是星座等,而非 porsche,因為幾年之後你可能會忘記當年喜歡的是什麼!
- 交叉混合 – 組合數字不太容易被猜出,但總有一天別人還是可能將你和你妻子兩人的生日相加在一起。將 leo 加在這些數字前面不是很妥當的辦法,你可以將兩種資訊交叉混用 leo+12345678:l1e2o345678。
- 以中文輸入法按鍵來當成密碼 – 例如「李登輝」的注音輸入為「xu32/_cjo_」。
- 穿插符號、位移、鏡射、藏頭去尾 – 再固定的地方加入標點符號,底線,或是變換英文大小寫。(但這些方式會變得不容易記住)
結論
你會發現,我所建議的,基本上和資安人員所建議的有點相違背,我的重點有兩個,分別是「自己永久記得住」和「符合沒人性網站的密碼規則」這兩項。因為資安人員既強調複雜性,又要求你不可寫下,這實在違背人性。而他們更慎重的要求你不可採用和自身有關的資訊數字以及字典內字,以避免字典攻擊。
對此,我的看法是,別設計出連自己都記不得的密碼,與其害怕自己的密碼被破解,不如擔心網路公司內部人員的道德操守是否良好,以及網站程式是否容易被入侵。像是猜密碼這樣的手段,應該被網站偵測出而予以阻擋。就好比有人撿到你的提款卡,擅自拿到提款機猜測你的密碼,超過三次錯誤後應該被沒收一樣。
最後的一點,有人將自己裸露的照片上傳到什麼小站上,然後設定了密碼,以為就可以安枕無憂。我必須告訴你,屏除掉密碼太好猜的因素外,我自己的網站我可以取得最高權限,要做什麼事都可以,包括開啟一些別人的內容。所以你應該慎選技術良好的平台,千萬別太相信網路上的安全機制;而這類的照片最好拍都不要拍。