2008年3月7日 星期五

網路服務的密碼危機(Crisis of Passwords to Webservices)

現在的網路服務何其多,小到上網留言、大至網路銀行轉帳,全部都能在網路上搞定,不過...也因為網路服務的多樣性,幾乎所有的服務都需密碼認證,這就代表 ── 你玩幾種服務,就得記住幾組帳號、密碼,時間一久就會多到讓你難以記憶。

或許你所使用的網路服務有支援「OpenID」,不然就是屬於特定的服務供應商(Google、Yahoo!...),能夠為你減輕許多記憶上的麻煩,雖然減輕了不小的負擔,相對的就是增加一次被駭所有服務風險,便利與危機的一體兩面就是如此。

然而,我在ZDNet看見了一篇新聞《網路交易安全升級 雅虎擬採動態密碼》,又讓我喚醒了密碼使用這部份的想法,無論你是採用何種方式,若真的不慎發生密碼被盜或遺失事件,真正有損失的,還是只有使用者本身吧!?...

以我自己來說,除了一般密碼以外,我也使用過類似動態密碼產生器(就是一個像隨身碟的裝置)、雙密碼動態鍵盤或是現在主推的晶片認證機制(提款卡、自然人憑證...等),端以使用便利性來說,其實各有利弊。

以動態密碼產生器來說,有誰會沒事多帶一個隨身碟在身上,大多數還是丟在家裡吧!它的確能夠避開被人側錄的風險,但是讓活用性也降低不少,如果你人在外面,臨時想登入該項服務,反而就變得求助無門,如果家中有人,還可以請信得過的家人,幫你按一下再告訴你密碼(通常是六位數字),如果是一人獨居在外,或沒人可以能助「一按之力」,你也只能乾瞪眼。

況且,這樣子的密碼產生器,就一定比較安全嗎?

再我看來,這有點像「防遠親不防近鄰」的做法,為什麼我會這樣說呢?雖然這一類的認證方式,都會多一組「使用者名稱」的確認,以免有人自己去按密碼產生器產生出一組密碼後自行登入(通常以金融服務居多)。可是...使用者名稱應該是可以被側錄下來的吧!?而且去「」一下密碼產生器,把密碼記在腦子裡應該也不難吧!?

這點也突顯了密碼產生器的弱點,以前用印章時,是怕被偷走或複印後去盜領,現在只要產生按一下記在腦子裡,然候在限定的時間內進行登入即可(不用把整個偷走),那個使用者名稱只要先行側錄就能到手(大多數的人,會用同個名稱),如此一來就算東西都還在你手裡,一樣能夠幫你的帳戶來個乾坤大挪移惡整一番

從這裡就能看出,網路服務所潛藏的密碼危機有多大,有時候仔細想想,用動態密碼產生器的安全性有比晶片卡來得高嗎?這一點應該還是有所爭議吧!?那雙密碼、動態鍵盤呢?這部份就見仁見智囉!

還記得我在引言上有一句:「真正有損失的,還是只有使用者本身吧!?」,因為,不管你使用何種密碼認證的方式,只要是你的密碼被盜、側錄、還是任何狀況的損失,都得自行負責。(不信的話,請去翻閱已經長蜘蛛網或是快被拿來包東西的合約書吧!)

其實平台業者或是密碼產生器的廠商,基本上都沒有什麼責任(因為它們只提供產品平台),除非是內部瑕疵漏洞被人駭走資料(安全沒控管),它們會"比較"有責任之外(其實以台灣發生過的實例,大多也是大事化小、小事化無...),其它的就只能使用者自求多福。

那怎樣的密碼認證方式比較安全呢?就筆者自己使用過的方式來說,至少要符合下列幾點:
1.全程採用https的加密連線
2.需要輸入密碼的部份均用動態鍵盤選取(用滑鼠點)。
3.搭配動態密碼產生器
4.強迫使用者名稱每半年變更一次(加上強度限制)。

如果,真的符合了以上我所說的四點,安全性會高一些,可是複雜性會多出許多(如果你有用過動態鍵盤的話,就會理解我說的意思),就變成了民眾接受程度不高,所以我手上有用的網路服務,也沒看過誰敢採用這種方案,頂多是加上一個動態數字的認證就很不錯了。

除此之外,如果你採用動態密碼產生器,還得小心別弄丟了,不然重辦一個也要花上不少錢(可能比你在銀行裡的存款利息還高吧?),這部份的開支,很有可能會因自己的疏忽,轉嫁到使用者身上。在商言商,為什麼銀行願意做這些呢?

因為吸引你到網路銀行(服務)上交易、轉帳,所產生的手續費會積少成多,這也是很多銀行眼紅的收入來源之一(網路交易的熱潮),畢竟賠本生意沒人做呀!(有時候網路服務的噱頭看看就好)

無論你從那個角度切入,都會發現網路服務上的「罩門」很多,我沒辦法像XDite一樣抓網站的Bugs,但是在求新求快的網路變遷下,我們也許該冷靜一下,看看那些才是自己真的迫切需要的服務,那些才是真的便民措施,而不是變相騙民。

我知道坊間有類似密碼記錄軟體(例:keypassKeePass Password Safe...等),那不過是換湯不換藥的作法,不太建議採用,密碼保存的最佳地點,可能還是自己的「腦袋瓜」裡吧!(傻笑...)

4 則留言:

  1. 強迫使用者名稱每半年變更一次(加上強度限制)。
    >>我想沒有多少個用戶會愛這樣的變更.

    回覆刪除
  2. 的確是沒有幾個人喜歡,但是用動態密碼的話,使用者名稱其實就可以當自己用的密碼!

    把它想成每半年要換密碼就好了!有的銀行會要求使用者這麼做。(就這樣子想好了...)

    就如你所說~所以沒有幾的網路服務敢這樣子要求使用這呀!

    很多事都是互有衝突的。

    回覆刪除
  3. 關於格主所提的,動態密碼的觀念要在這邊做一個澄清,所謂的動態密碼,也可以稱為一次性密碼(One-time password),意思就是每次驗證的密碼都會不同(由密碼產生器產出),而且密碼在這次使用後就會失效,就算是密碼被別人偷看記住了也不能再用,所以根本就沒有密碼修改的問題,也沒有格主所說的"弱點",至於晶片卡和動態密碼卡誰比較安全?

    原則上兩者都符合了二階段(2-phase)驗證的條件,動態密碼卡是將帳號將密碼分開,晶片卡是將帳號密碼與憑證分開.

    動態密碼卡解決了密碼被竊取的問題,也節省使用者要定期更改密碼的麻煩,但動態密碼卡對銀行來說,投入的成本會比較高(據廠商報價一顆從台製的600~大廠的3000都有).

    而晶片卡若沒有憑證(沒插卡)則交易不能成立,對銀行來說投入的成本會比較低,但使用者要定期更改密碼(因為有些使用者卡片會一直插在讀卡機裏面)比較麻煩.

    有些銀行為了更安全,兩種機制都做,但我覺得這應該是不需要這樣,原則上二階段驗證已經是足夠的了.

    其實使用者最大的問題在於...若是使用者的電腦中木馬,不管在哪種機制,在被控制的時段內被入侵者搖控,交易都是會被承認.所以建議使用者
    1.沒有做交易時,盡量不要一直處於登入狀態.(對動態密碼卡來說)
    2.沒有做交易時,晶片卡不要一直插在讀卡機中.(對晶片卡來說)
    3.對於被放木馬的PC來說,網站是不是https已經不是很重要了,但沒被放木馬的選擇https的網站會比較安全(起碼在公司"下單"的時候,內容不會被公司的網管看到...XD).
    4.網站密碼使用動態鍵盤,可以防止輸入的密碼被側錄,如果你使用的網站有這樣的功能的話,麻煩你就不要用keyin的方式.
    5.如果你使用的密碼不是動態變更的話,麻煩至少三個月改一次,然後密碼長度6碼以上,有英文大小寫,數字加上符號,絕對不要用0000/1234/abcd/生日這一類的傻瓜密碼.

    回覆刪除
  4. 多謝ken的建言,我也受教不少,只是有些地方可能我表達的不是很好。

    首先,動態密碼或一次性密碼這點我清楚,我的重點是「有人私自按了一組密碼後記下」不是指別人看了一組你按的密碼,然後再自己去登入。

    就如同我文中所說,應該也是有需要才會去按那個密碼產生器,一般人應該也不會放身上(至少我沒有...)

    所以,有人先得知使用者名稱,然後私自按了一下密碼產生器再去登入,這一點是可行的吧!?(所以我說是防遠親不防近鄰)

    而你提到的那六點,我也認同,不過三個月換一次密碼,除非是平台主動提醒,一般人一定不會這樣子做(這是人性)

    至於動態密碼卡跟晶片的比較,您的舉例很中肯,這點我也認同...,只是我切入點,包含著很多人的"習慣"問題...

    我想大多數使用者應該都不會發現自己被控制,所以那種機制可以保護使用者,也是種消極的做法,無論是使用者本身還是平台提供者,多少都希望能制止...畢竟時間、金錢還是聲譽都不是鬧著玩的。

    很感謝您的建言與留言,歡迎多多指教。

    回覆刪除