3.2 密碼竊聽(tīng)的風(fēng)險(xiǎn)
密碼與PIN仍然是多種計(jì)算機(jī)安全機(jī)制所依賴的基礎(chǔ),因?yàn)檫@是計(jì)算機(jī)系統(tǒng)對(duì)用戶身份進(jìn)行認(rèn)證的主要機(jī)制。在上一章中,討論了其應(yīng)用及密碼的“人機(jī)接口”問(wèn)題,現(xiàn)在,我們討論在設(shè)計(jì)更通用的協(xié)議(在不同機(jī)器之間運(yùn)行)時(shí)應(yīng)該考慮的一些更貼近于技術(shù)層面的攻擊。簡(jiǎn)單的嵌入式系統(tǒng)提供了很好的研究案例,比如上世紀(jì)90年代中期以前用來(lái)打開(kāi)車庫(kù)或者車門(mén)的遙控器。這些原始的遙控器僅會(huì)廣播其序列號(hào),這些序列號(hào)同時(shí)也發(fā)揮著密碼的作用。
一種很常見(jiàn)的攻擊是使用“抓取器”,抓取器是一種可以記錄本地廣播的信號(hào)碼的設(shè)備,并可以在之后進(jìn)行重放,這些設(shè)備在1995年左右進(jìn)入市場(chǎng)。盜賊可以潛伏在停車場(chǎng)內(nèi),并使用該設(shè)備記錄下用于打開(kāi)車門(mén)的信號(hào),在車主離開(kāi)后,就重放這個(gè)信號(hào)把車門(mén)打開(kāi)。
為解決這一問(wèn)題,一種應(yīng)對(duì)措施是在開(kāi)車和鎖車時(shí)分別使用不同的信號(hào)碼,但是這樣效果仍不理想:首先,攻擊者可以潛伏在你的住所旁,早晨記錄下你的開(kāi)車號(hào)碼,然后在夜間把你的車偷走;其次,16位的密碼太短了,以至于在偶然的情況下,人們有可能錯(cuò)誤地開(kāi)啟別人的汽車(或者甚而在汽車所有者不知情的情況下在其上設(shè)置警報(bào)[217])。在20世紀(jì)90年代中期出現(xiàn)了一些設(shè)備,可以對(duì)所有可能的密碼依次嘗試。平均實(shí)驗(yàn)215次就可以找到密碼,也就是說(shuō)如果每秒鐘10次的話,不到一個(gè)小時(shí)就能完成密碼獲取。如果藏身于停車場(chǎng)的竊賊身邊帶上100個(gè)這種設(shè)備,那么不到1分鐘就能成功了。
因此,另一種防護(hù)措施是把密碼的長(zhǎng)度加倍,從16位變成32位。制造商驕傲地宣稱他們的設(shè)備可以提供“超過(guò)40億個(gè)信號(hào)碼”,但是這只能表明他們并沒(méi)有真正地理解問(wèn)題。因?yàn)槊恳惠v車還是只有一個(gè)(或者兩個(gè))信號(hào)碼,盡管猜出來(lái)似乎不切實(shí)際,但是通過(guò)使用抓取器,竊賊仍然頻頻得手。
將序列號(hào)作為密碼還存在其他漏洞:很多人都能夠訪問(wèn)它。比如,以汽車為例,可能所有的經(jīng)銷商員工(或許還有機(jī)動(dòng)車登記處)都有對(duì)汽車序列號(hào)的訪問(wèn)權(quán)限。有些報(bào)警器也使用序列號(hào)作為主密碼,這樣會(huì)導(dǎo)致更嚴(yán)重的情況:因?yàn)樾蛄刑?hào)會(huì)在訂購(gòu)單、提貨單、發(fā)票和其他所有標(biāo)準(zhǔn)商業(yè)文件上顯示出來(lái)。
有時(shí)候,簡(jiǎn)單密碼也是恰當(dāng)?shù)募夹g(shù),甚至在同時(shí)用作序列號(hào)時(shí)也是如此。比如,我在游泳池的季票就只有一個(gè)條形碼。我肯定能用復(fù)印機(jī)和層壓機(jī)偽造出一張,但是轉(zhuǎn)門(mén)處有門(mén)童,并且服務(wù)員也認(rèn)識(shí)“老顧客”,所以沒(méi)有必要采用高成本的安全手段。我實(shí)驗(yàn)室的卡式鑰匙更難于偽造一些:學(xué)生區(qū)的鑰匙使用紅外條形碼,員工區(qū)的鑰匙則使用RFID芯片,該芯片在與短波無(wú)線電交互時(shí)會(huì)提供序列號(hào)來(lái)通過(guò)認(rèn)證。這些認(rèn)證機(jī)制可能也是非常恰當(dāng)?shù)摹?nbsp;更貴重的一些裝備會(huì)單獨(dú)存放在一些房間內(nèi),并配置性能良好的機(jī)械鎖。但對(duì)于像汽車這樣很多竊賊都會(huì)動(dòng)心的財(cái)產(chǎn),就需要更好的保護(hù)技術(shù),這就涉及到了加密認(rèn)證協(xié)議。