在本書第一版中講述這一故事并正式出版后,一位前SA通信安全機(jī)構(gòu)的軍官聯(lián)系了我,并對(duì)這個(gè)故事的一些細(xì)節(jié)有所異議。該軍官聲稱,在安哥拉戰(zhàn)爭(zhēng)期間,他們的IFF裝備中尚未使用加密機(jī)制,并且在穿越敵方的領(lǐng)空時(shí)總是關(guān)閉的,他據(jù)此聲稱,該次戰(zhàn)爭(zhēng)中的任何電子欺騙都是很原始的。然而,其他一些人告訴我,在多次中東沖突中,米格中間人攻擊這種形式都發(fā)揮過重大作用。
無論哪種情況,這一故事都勾勒出了密碼學(xué)領(lǐng)域廣為人知的中間人攻擊(man-in-the-middle,近期也稱為middleperson)的基本思路。對(duì)通過密碼計(jì)算器執(zhí)行的“質(zhì)詢-應(yīng)答”身份驗(yàn)證方式,中間人攻擊可以直接進(jìn)行:釣魚站點(diǎn)邀請(qǐng)目標(biāo)登錄并開啟其與銀行之間的登錄會(huì)話,銀行發(fā)送一條質(zhì)詢信息,釣魚者向目標(biāo)重放這一信息,目標(biāo)則使用自己的設(shè)備對(duì)其進(jìn)行應(yīng)答,釣魚者將這條應(yīng)答信息重放給銀行,從而達(dá)到以目標(biāo)身份通過銀行身份驗(yàn)證的目的。這也是為什么歐洲的一些銀行在進(jìn)行應(yīng)答時(shí),不僅需要提供質(zhì)詢信息,還需要提供身份驗(yàn)證碼的原因所在,身份驗(yàn)證碼是基于一些輸入字段(比如總額、收款人賬號(hào)、交易序列號(hào)等)計(jì)算出來的。
然而,如果通過包含所有交易數(shù)據(jù)對(duì)協(xié)議層漏洞進(jìn)行修補(bǔ),可用性就成為一大問題。如果需要花費(fèi)兩分鐘的時(shí)間和十幾個(gè)條目的數(shù)字才能完成一次支付,大量客戶將會(huì)出錯(cuò)、放棄支付,之后或者致電呼叫中心,或者使用紙質(zhì)的支票。而攻擊者也會(huì)趁機(jī)對(duì)回退機(jī)制進(jìn)行攻擊,比如欺騙客戶撥打語音釣魚電話,并在客戶與呼叫中心之間開展中間人攻擊。
在從付費(fèi)電視到Internet安全協(xié)議等多種應(yīng)用中,我們會(huì)不斷看到中間人攻擊的存在。中間人攻擊甚至還應(yīng)用到在線游戲上。像數(shù)學(xué)家John Conway曾經(jīng)說的那樣,網(wǎng)上下棋擊敗大師是容易做到的:只要同時(shí)和兩位大師比賽,一個(gè)執(zhí)白棋,另外一個(gè)執(zhí)黑棋,并重放每一個(gè)步驟(實(shí)際上是讓大師之間進(jìn)行對(duì)弈)。
在很多情況下,中間人攻擊可行但不合算。比如車鑰匙的案例,讓同伙跟蹤司機(jī),并通過電子方式將無線質(zhì)詢信號(hào)重放到竊賊那里(我的一個(gè)學(xué)生以實(shí)驗(yàn)室的RFID門鎖為目標(biāo),實(shí)際展示了這種攻擊過程)。但是對(duì)一般的汽車竊賊來說,偷走司機(jī)的包或干脆搶過來會(huì)更簡(jiǎn)單。
2007年早期,出現(xiàn)了針對(duì)EMV智能卡(發(fā)行給很多歐洲的銀行客戶)所使用的協(xié)議的中間人攻擊。攻擊者可以構(gòu)建一個(gè)用來詐騙的惡意終端,比如停車收費(fèi)器,當(dāng)你輸入卡號(hào)與PIN來支付2.50英鎊的停車費(fèi)時(shí),在五金店的自助終端前等待機(jī)會(huì)的不法分子就可以重放交易數(shù)據(jù),并訂購貨物,在拿到結(jié)算單后,你會(huì)發(fā)現(xiàn)你已經(jīng)付了一筆2500英鎊的寬銀幕TV費(fèi)用[915]。這里,基本的問題是卡上缺少可信的用戶接口,持卡人并不真正知道自己的銀行卡在與哪一個(gè)業(yè)務(wù)終端進(jìn)行交易。第10章將深入討論這種攻擊。