觀點

資訊安全DIY(三)-帳號密碼管理篇

2004 / 02 / 02
編輯部
資訊安全DIY(三)-帳號密碼管理篇

文 / 郭秋田


您是否曾為了皮夾中厚厚一疊的提款卡密碼之設定而傷透腦筋?您是否曾因忘了電子郵件帳號的密碼而收不到信?您是否會擔心自己的電腦帳號被盜用而不知應如何選定一個好記又不容易被猜到的密碼?這些煩腦已經普遍發生在您我的身上。也有人因不在意這些問題,把所有提款卡密碼都設為生日或身分證號碼而被偷走錢包、猜中密碼將錢提領一空。到底應該如何管理各式各樣的密碼才能又方便又安全呢?我們就來一探究竟吧!
識別與認證身分的方法
電腦系統常因不同的使用者而賦與不一樣的使用權限,因此必須提供一套能讓電腦識別與認證使用者的方法。進行識別與認證的方法可分為以下幾類:


1. 依使用者知道的資訊來認證:

例如,武俠小說的幫派為了分辨是不是「自己人」,會約好一個共通的暗號,知道暗號的就是自己人。我們現在常用的帳號、密碼系統也是這一類的方法,利用使用者輸入帳號與密碼的資訊,來認定使用者的身分。然而,這個方法有一個缺點,就是秘密可能會洩漏出去或被猜到。造成會被偽冒、盜用的問題。


使用者擁有的物品來認證:

例如,家裡的鑰匙或感應卡片。鑰匙可能會不見,或是被複製,一樣有安全上的漏洞,並且使用者必須隨身攜帶。


依使用者本身的特徵來認證:

例如,指紋、眼睛的視網膜、虹彩...等。此類的辨認方法不但方便且安全性也較高,但是所需的成本較其他方法為高。


混合式的認證:

將上述的方法組合應用。例如,我們平常所使用的提款卡即是混合1.與2.的模式。我們必須擁有卡片加上知道密碼才能到提款機領錢。


雖然有各種不同的方法可以識別與驗證使用者的身分,一般較為普遍的方法還是使用帳號密碼來驗證,也就是第一類的方法。因此,如何保護自己的密碼不被別人知道或是猜到是一件很重要的事。

提款卡密碼管理
提款卡遭到偽造早就不是新聞了,密碼的保護成為一道重要的關卡。面對眾多的提款卡,多數的人把密碼設得一樣。為了怕忘記,一般人不是使用自己很容易記得的數字如身分證字號、家中電話或家人生日等相關的資訊就是把密碼寫在只有自己知道的地方。


密碼的管理真是一件傷腦筋的事。密碼設得太簡單或有跡可循的話,很容易被猜出;而把密碼寫下來除了有可能被別人找到外,也有可能因為忘了放在何處而把密碼遺失。把每一張提款卡的密碼設得一樣,就如同把雞蛋放在同一個籃子,一旦被猜出則所有的提款卡都有被盜領的危險;設得不一樣,自己又如何記得住呢?


這裡介紹一個方法,讀者不妨試試看。那就是把密碼直接寫在卡片上!您一定覺得是在開玩笑,方法只講了一半,先把密碼經過簡單的加密程序處理,再把加密的結果寫在卡片上。例如:原始的密碼如果是1234,簡單的方法為將各個位數均以10去相減,那麼寫在卡片上的內容為9876。當要提款的時候,則先經還原運算就可以得到1234了。其他方法還有各位數以9相減、或使用另一個種子數字作各個位數相加後取10的餘數。例如:種子數為1234,密碼也是1234,計算後的結果為2468。採用這個方法的好處是加密的方式可以任意選擇,種子數也可以任意選擇,因此很難從貼在卡片上的內容反推出密碼。同時,使用這個方法後,每一張卡片的密碼可設成不相同,不同的卡片貼在卡片上的內容也不一樣,歹徒很難破解。但是對你而言,卻只要記相同的編碼方法和種子數即可。

帳號密碼認證原理
上述所介紹的應用,我們可以發現只要知道演算的方法與得到編碼後的內容就可以反推出原始的密碼,稱為可逆的編碼加密。一般電腦系統大多採取不可逆的編碼加密,也就是說即使知道加密的方法與使用的種子數也無法反推出原來的密碼。這樣做的原因是可以預防系統管理者知道一般使用者的原始密碼,因為系統管理者具有權限讀取相關的資料,如果使用可逆的編碼,那麼使用者的原始密碼就會被反推出來。所以當使用者忘記密碼而求助於系統管理者時,往往是給一組新密碼而不是告訴使用者原來的密碼。


那麼,系統要如何驗證使用者所輸入的密碼是正確的呢?


使用者輸入帳號名稱後,系統找出是否有此名稱,並接受使用者輸入密碼。系統將使用者輸入的密碼編碼後,再與存在系統內的加密後內容比對。如果比對結果相等,代表使用者所輸入的密碼是正確的。


使用者應避免設定太簡單的密碼,以免遭駭客從線上登入作業介面,直接猜中密碼。密碼應如何設定才能達到好記又安全的目的,將稍後說明。

即使加密後內容無法直接反推出原始密碼,加密後的密碼檔仍應避免被任意者讀取,如果擁有加密後的密碼檔,破密者可透過猜測或暴力破解的方式來驗證猜測的結果,達到破密的目的。


目前WWW中有不少系統是讓使用者註冊並給予帳號才能使用。其中的密碼部分由使用者自行設定,由於不清楚這些資料在系統中是否經加密處理或使用不可逆的加密與相對的驗證方法,系統的管理員極有可能可以知道使用者的原始密碼。因此應盡量避免使用和個人重要的帳號相同的密碼,以免重要的密碼外洩。


密碼破解方法
駭客破密除了直接從系統的線上登錄介面嚐試猜測外,常用的方法為設法取得加密後密碼檔再進行智慧型或暴力破解。直接從系統的線上登錄介面進行密碼猜測是沒有效率的方法,不但速度緩慢且易引起系統管理者的注意。部分的系統則設有當登入失敗次數達一定次數時則不允許再嚐試登入。


當駭客取得密碼檔後,可自行撰寫簡單的程式自行產生各種密碼組合進行猜測與驗證,透過編碼與密碼檔中資料的比對可以驗證所猜測的密碼是否正確,如果不正確則繼續下一組的猜測。假設可以把所有可能的密碼組合全部試一遍,則一定可以驗證出使用者的密碼。要試出所有的密碼需要大量的時間,可能需要數百年之久。駭客往往會依一般使用者的習慣縮小測試的範圍,並藉以縮短所需的時間。因此,使用者本身所設定的密碼強度就變得很重要了。
@0:例如,如果使用者僅以數字作為密碼,那麼即使使用8個位數,只有108=100000000個組合。如果使用者的密碼是英文字典單字,那所有的單字個數亦不過十數萬。再則假設使用者密碼包含小寫英文字母與數字且長度為6位,若駭客要破解出此密碼最多則需嚐試(10+26)6=2176782336個組合。如果再混合特殊符號、長度8位以上,則需嚐試768= 1113034787454976個組合。由此可知,密碼使用的字元愈複雜、長度愈長,愈不易被破解。


LC4程式是一個知名的Windows系統的密碼破密工具,:圖三三為完成字典攻擊的結果,其中顯示John的密碼為dog,已遭破解出來。以一般個人電腦,嚐試密碼組合的速度每秒至少10,000組以上。在Unix平台上常被用來破密的工具則為「john the ripper」。



設定安全好記的密碼
在看過上面的說明,對於密碼安全的保護有了正確的概念。為了防止密碼被破解,設定密碼的原則可歸納如下:


1. 使用較複雜的密碼

甲、 使用文數字與特殊符號混合

乙、 密碼長度夠長 (至少8個字元以上)

丙、 忌用純數字與英文單字

丁、 避免用與自己相關的資訊如生日、電話號碼、身份字號…等。



2. 定期更換密碼

3. 勿隨意將密碼透露給別人

4. 在不重要的網站中的帳號,勿設定與重要帳號相同的密碼

5. 不同的帳號盡量使用不同的密碼



要符合第一項原則且好記的密碼十分不容易,建議可使用:


1. 注音鍵盤排列組合:如「好密碼」三字,在注音輸入法(以倚天鍵盤排列)的字元順序為「hz31me4ma3」。

2. 在使用數字時加按鍵,可使數字變成特殊符號。如:「123」成為「!@#」。此時,則可使用自己易記住的號碼了。



(本文作者現職為國立空中大學管理與資訊學系助理教授兼電子計算中心網路組組長)