3.3.3 反射攻擊
在交互式身份驗(yàn)證中,也即兩個主體必須互相識別對方時,出現(xiàn)了很多有趣的問題。比如,為防止防空炮手攻擊己方飛機(jī)而設(shè)計(jì)出的簡單“質(zhì)詢-應(yīng)答”型IFF系統(tǒng),也必須在轟炸機(jī)上進(jìn)行部署?,F(xiàn)在,假設(shè)空軍在每架飛機(jī)上安裝了一個炮手質(zhì)詢設(shè)備,并將其連接到火力控制雷達(dá)上。但是,敵方轟炸機(jī)可以將質(zhì)詢信號反射給我方戰(zhàn)斗機(jī),獲得了正確應(yīng)答后,再將其作為自己的應(yīng)答反射回來:
F→B:N
B→F:N
F→B:{N}K
B→F:{N}K
因此,我們要將質(zhì)詢系統(tǒng)與應(yīng)答器整合在一起。將這兩個裝置連在一起并共享質(zhì)詢信息列表是不夠的,因?yàn)槿绻麛橙吮晃曳絻杉茱w機(jī)攻擊,就可能將其中一架飛機(jī)向另一架飛機(jī)發(fā)出的質(zhì)詢反射回來。在戰(zhàn)斗中,人們都不希望從“進(jìn)攻”轉(zhuǎn)換為“防守”。
有很多方法可以阻止這種“反射攻擊”:在很多情況下,進(jìn)行身份驗(yàn)證交換時只要包含雙方的名稱就足夠了。在前面的例子中,對于質(zhì)詢F→B:N,己方的轟炸機(jī)應(yīng)答如下:
B→F:{B,N}K
這樣,就可以檢測出反射的應(yīng)答{F,N}(甚或還有戰(zhàn)斗機(jī)駕駛員發(fā)出的{F′,N})。
這是一種做了大量簡化的IFF,但可以用來闡明身份驗(yàn)證協(xié)議中的各種信任假設(shè)的微妙之處。如果你發(fā)出了一個質(zhì)詢信號N并在20毫秒內(nèi)收到了應(yīng)答{N}K,那么,由于光在20毫秒內(nèi)可以傳播3730英里,你就可以知道在2000英里內(nèi)有人擁有密鑰K。但是你所知道的也僅限于此。如果你確信這個應(yīng)答不是用自己的設(shè)備計(jì)算出來的,那你就知道在2000英里內(nèi)還有其他人擁有密鑰K。如果你進(jìn)一步假設(shè),密鑰K的所有副本都掌握在足以信任的設(shè)備上,并且看到了{(lán)B,N}K,就可以推斷出帶有呼號B的戰(zhàn)斗機(jī)位于2000英里以內(nèi)。對信任假設(shè)及其后果的清晰理解是設(shè)計(jì)安全協(xié)議的核心。
到現(xiàn)在為止,你可能認(rèn)為本書已經(jīng)全面講解了IFF協(xié)議設(shè)計(jì)的各個方面。但是我們忽略了一個最重要的問題,也是早期IFF系統(tǒng)設(shè)計(jì)者沒有預(yù)料到的一個問題。由于雷達(dá)的返回信號比較弱,戰(zhàn)斗機(jī)上的IFF發(fā)射器發(fā)射的信號往往比返回信號傳送得更遠(yuǎn)。盟軍很艱難地認(rèn)識到了這一問題。1944年1月,破譯的Enigma消息表明,德軍正采用在兩倍正常雷達(dá)測距外向美英轟炸機(jī)發(fā)送質(zhì)詢信號的方法對盟軍飛機(jī)進(jìn)行欺騙。因此,很多現(xiàn)代系統(tǒng)對質(zhì)詢信號和應(yīng)答信號都進(jìn)行驗(yàn)證。比如,北約XII模式采用32位的加密質(zhì)詢信號,對每次提問都生成一個不同的有效質(zhì)詢信號,典型情況下是每秒250次。理論上,在敵方領(lǐng)域內(nèi)并不需要切斷信號,但在實(shí)際中,記錄下有效質(zhì)詢信號的敵方可以對其進(jìn)行重放,這是攻擊的一個組成部分。重放攻擊也是可能的,就像米格中間人攻擊那樣。
還有很多IFF設(shè)計(jì)問題與協(xié)議關(guān)系不大,比如,中立引起的困難、密集運(yùn)營環(huán)境中的錯誤率、如何處理設(shè)備故障、如何管理密鑰以及怎樣應(yīng)付多國聯(lián)合等,這些情況在“沙漠風(fēng)暴”行動中集中體現(xiàn)。第19章還會講到IFF。至于現(xiàn)在,質(zhì)詢欺騙問題強(qiáng)調(diào)了一個關(guān)鍵點(diǎn):安全協(xié)議的正確性依賴于對需求的假設(shè)。如果協(xié)議可以阻止一種攻擊(被己方打死),但是增大了暴露在危害更大的攻擊之下(被敵方打死)的可能性,那么這樣做就弊大于利。事實(shí)上,在二戰(zhàn)中質(zhì)詢欺騙問題實(shí)在是太嚴(yán)重了,因此很多專家提倡寧可摒棄整個IFF,也不愿冒險(xiǎn)讓幾百架轟炸機(jī)的編隊(duì)中可能有一個飛行員在飛經(jīng)敵軍區(qū)域時打開了IFF。