楊義先,鈕心忻
(北京郵電大學(xué) 信息安全中心, 北京 100083)
?
安全通論(2)
——攻防篇之“盲對抗”
楊義先,鈕心忻
(北京郵電大學(xué) 信息安全中心, 北京 100083)
編者按:黑客與紅客之間的“非盲對抗”是沒有納什均衡的,因?yàn)橐环街灰懒硪环降牟┺牟呗院?,就一定能夠通過調(diào)整自己的戰(zhàn)略而獲勝。“盲對抗”則存在納什均衡。本文作者大膽猜測:納什均衡所對應(yīng)的攻防雙方的“混合策略”剛好達(dá)到信道容量的極限概率分布。過去一直認(rèn)為,網(wǎng)絡(luò)安全對抗的狀態(tài)只有兩個(gè):此起、彼伏,但卻忽略了另一個(gè)更重要的狀態(tài):納什鈞衡。本文精確地給出了黑客攻擊能力和紅客防御能力的可達(dá)理論極限,對納會均衡進(jìn)行深入探討。本文中“佛祖”一詞并非宗教中的含義,僅表示一個(gè)抽象的客體。
楊義先教授,博士生導(dǎo)師,災(zāi)備技術(shù)國家工程實(shí)驗(yàn)室主任,北京郵電大學(xué)信息安全中心主任,教育部網(wǎng)絡(luò)攻防重點(diǎn)實(shí)驗(yàn)室主任,《微型機(jī)與應(yīng)用》編委,主要研究方向:網(wǎng)絡(luò)空間安全、現(xiàn)代密碼學(xué)和糾錯(cuò)編碼等。
鈕心忻博士,教授,博士生導(dǎo)師。北京郵電大學(xué)學(xué)士和碩士學(xué)位,香港中文大學(xué)電子工程系博士學(xué)位。1997年起在北京郵電大學(xué)信息工程學(xué)院(現(xiàn)計(jì)算機(jī)學(xué)院)從事教學(xué)與科研工作。主要研究方向:網(wǎng)絡(luò)與信息安全、信號與信息處理等。
眾所周知,以網(wǎng)絡(luò)安全、領(lǐng)土安全、環(huán)境安全、糧食安全、身體健康、公共安全、國家安全等為代表的“安全問題”是頭等大事。但是,直到現(xiàn)在,無論是國內(nèi)還是國外,對安全問題都沒有真正系統(tǒng)研究過。雖然,各國都花費(fèi)了大量的人力和物力去研究具體的安全問題,但是幾乎都是“只見樹木,不見森林”,從來沒有人提出過一整套適合于所有安全問題的系統(tǒng)的“安全基礎(chǔ)理論”,甚至根本就不相信這樣的理論會存在。
作者不信邪,非要試圖來研究一套“放之四海而皆準(zhǔn)”的安全基礎(chǔ)理論,稱之為“安全通論”,顯然,這樣的理論絕非能輕易建立和完成的。在參考文獻(xiàn)[1]中已經(jīng)證明了一個(gè)出人意料的結(jié)果:針對任何有限系統(tǒng),若從安全角度去考慮,那么,它的所有“不安全”問題都可以很清晰地分解成一棵有限的“倒立樹”。
(1)只要用心維護(hù)好這棵“倒立樹”的安全,那么整個(gè)系統(tǒng)的安全就可以得到充分保障。
(2)如果系統(tǒng)出現(xiàn)了某個(gè)安全問題,那么就一定可以從這棵“倒立樹”中分離出一個(gè)或幾個(gè)“樹枝”,滿足:①除了這些“樹枝”外,“倒立樹”的所有其他“樹枝”都是無病的;②對有病的“樹枝”,只需要對其底部的帶病末端進(jìn)行“醫(yī)治”,其他上層的“分枝”等都會自愈。
此處之所以要限定“系統(tǒng)是有限的”,是因?yàn)樵诂F(xiàn)實(shí)工程中,所遇到的系統(tǒng)(比如,網(wǎng)絡(luò)系統(tǒng)、消防系統(tǒng)、實(shí)際戰(zhàn)場等)都是有限的。
實(shí)際上,文獻(xiàn)[1]已經(jīng)展示了“安全通論”的冰山一角,更使我們相信:“放之四海而皆準(zhǔn)”的安全理論是存在的。
本文繼續(xù)對“安全通論”進(jìn)行更深入的挖掘。
由于本文讀者面也很廣,上可以包括國家元首,中可以包括網(wǎng)絡(luò)黑客,下可以包括罵街潑婦等;也更由于當(dāng)前國內(nèi)學(xué)術(shù)界過于看重SCI等機(jī)械指標(biāo),因此,與文獻(xiàn)[1]的處理方法一樣,我們帶頭挑戰(zhàn)SCI,直接將論文首先實(shí)名發(fā)表在網(wǎng)絡(luò)上(http://blog.sciencenet.cn/u/yangleader),歡迎各界安全專家批評指正。
同時(shí),更歡迎大家一起來研究“安全通論”,無論你是信息安全專家、軍事家、政治家、醫(yī)生、股神、拳王、潑婦等需要考慮對抗問題的任何人。
“攻防”是“安全”的核心,特別是在有紅黑雙方對抗的場景下(比如戰(zhàn)場、公安、網(wǎng)絡(luò)安全等),“攻防”幾乎就等于“安全”。所以,在《安全通論》的建立過程中,將花費(fèi)更多的篇幅來研究“攻防”問題。但是,長期以來,人們并未對攻防場景進(jìn)行過清晰的整理,再加上“攻防”一詞經(jīng)常被濫用,從而導(dǎo)致“攻防”幾乎成了一個(gè)“只能意會不能言傳”的名詞,當(dāng)然就更無法對“攻防”進(jìn)行系統(tǒng)的理論研究了。
因此,開始我們的研究之前,必須首先理清攻防場景。更準(zhǔn)確地說,下面只考慮“無裁判的攻防”,因?yàn)?,像日常看到的諸如拳擊比賽等“有裁判攻防”的體育項(xiàng)目,并不是真正的“攻防”:其實(shí),“攻防”系統(tǒng)中,只有“攻方”和“守方”這兩個(gè)直接利益相關(guān)方(雖然有時(shí)涉及的人員會超過兩個(gè)),但絕沒有與利益無關(guān)的第三方,所以,對“攻防”結(jié)果來說,吹哨的裁判員其實(shí)是干擾,是噪音,而且還是主觀的噪音,必須去除。
“無裁判攻防”又可以進(jìn)一步地分為兩大類:盲攻防、非盲攻防。所謂“盲攻防”,意指每次攻防后,雙方都只知道自己的損益情況,而對另一方卻一無所知,比如大國博弈、網(wǎng)絡(luò)攻防、實(shí)際戰(zhàn)場、間諜戰(zhàn)、潑婦互罵等。所謂“非盲攻防”,意指每次攻防后,雙方都知道本次攻防的結(jié)果,而且還一致認(rèn)同這個(gè)結(jié)果,比如石頭剪刀布游戲、下棋、炒股等。一般來說,“盲對抗”更血腥和殘酷,而“非盲對抗”的娛樂味更濃。本文只考慮“盲攻防”,有關(guān)“非盲攻防”的研究,將在后續(xù)文章中給出。
黑客與紅客之間的“非盲對抗”是沒有納什均衡的,因?yàn)橐环街灰懒硪环降牟┺牟呗院?,他就一定能夠通過調(diào)整自己的戰(zhàn)略而獲勝。“盲對抗”則存在納什均衡,而且可大膽猜測:納什均衡所對應(yīng)的攻防雙方的“混合策略”剛好達(dá)到信道容量的極限概率分布。因此,過去一直認(rèn)為,網(wǎng)絡(luò)安全對抗的狀態(tài)只有兩個(gè):此起、彼伏,但卻忽略了另一個(gè)更重要的狀態(tài):納什鈞衡。那時(shí),攻防雙方的最佳策略都是“靜止不動(dòng)”,至少表面上是這樣。
為形象化敘述,下面仍然借用拳擊的術(shù)語來介紹“盲攻防”系統(tǒng),當(dāng)然,這時(shí),裁判已經(jīng)被趕走,代替裁判的是“無所不知”的佛祖。
攻方(黑客)是個(gè)神仙拳擊手,永遠(yuǎn)不知累,他可用隨機(jī)變量X來表示。他每次出擊后,都會對自己的本次出擊給出一個(gè)“真心盲評價(jià)”(比如自認(rèn)為本次出擊成功或失敗。當(dāng)自認(rèn)為本次出擊成功時(shí),記為X=1;當(dāng)自認(rèn)為出擊失敗時(shí),記為X=0),但是,這個(gè)“真心盲評價(jià)”他絕不告訴任何人,只有他自己才知道。當(dāng)然,佛祖也知道。此處,之所以假定“攻方(黑客)的盲自評要對外保密”,是因?yàn)榭梢砸虼苏J(rèn)定他的盲自評是真心的,不會也沒有必要弄虛作假。
守方(紅客)也是個(gè)神仙拳擊手,他也永遠(yuǎn)不知累,可用隨機(jī)變量Y來表示他。紅客每次守衛(wèi)后,也都會對自己的這次守衛(wèi)給出一個(gè)真心盲評價(jià)(比如自認(rèn)為本次守衛(wèi)是成功或失敗。當(dāng)自認(rèn)為守衛(wèi)成功時(shí),記為Y=1;當(dāng)自認(rèn)為守衛(wèi)失敗時(shí),記為Y=0)。這個(gè)評價(jià)也仍然絕不告訴任何人,只有紅客自己才知道(當(dāng)然,佛祖本來就知道)。同樣,之所以要假定“紅客的盲自評要對外保密”,是因?yàn)槲覀兛梢砸虼苏J(rèn)定他的自評是真心的,不會也沒有必要弄虛作假。
這里“盲評價(jià)”的“盲”,主要意指雙方都不知道對方的評價(jià),而只知道自己的評價(jià),但是,這個(gè)評價(jià)卻是任何第三方都不能“說三道四”的。比如,針對“黑客一拳打掉紅客假牙”這個(gè)事實(shí),也許吹哨的那個(gè)“裁判員”會認(rèn)定“黑客成功”。但是,當(dāng)事雙方的評價(jià)可能會完全不一樣,比如:也許黑客的“盲自評”是“成功,X=1”(如果他原本以為打不著對方的),也許黑客的“盲自評”是“失敗,X=0”(如果他原本以為會打瞎對方眼睛的);也許紅客的“防衛(wèi)盲自評”是“成功,Y=1”(如果他原本以為會因此次攻擊斃命的),也許紅客的“防衛(wèi)盲自評”是“失敗,Y=0”(如果他原本以為對方會撲空的)??傊?,到底攻守雙方對本次“打掉假牙”如何評價(jià),只有他們自己心里才明白。由此看來,“把那個(gè)吹哨的裁判員趕走”是正確的,誰敢說他不會“吹黑哨”呢?
裁判員雖然被趕走了,但是把佛祖請來了。不過,佛祖只是遠(yuǎn)遠(yuǎn)地呆在凌霄寶殿“看”熱鬧,他知道攻守雙方心里的真實(shí)想法,因此,也知道雙方對每次攻防的真心盲自評,于是,他可將攻守雙方過去N次對抗的“盲自評結(jié)果”記錄下來:
(X,Y)=(X1,Y1)、(X2,Y2)、…、(XN,YN)
由于當(dāng)N趨于無窮大時(shí),頻率趨于概率Pr,因此只要攻守雙方足夠長時(shí)間對抗之后,佛祖便可以得到隨機(jī)變量X、Y的概率分布和(X,Y)的聯(lián)合概率分布如下:
Pr(攻方盲自評為成功)=Pr(X=1)=p
Pr(攻方盲自評為失敗)=Pr(X=0)=1-p,0
Pr(守方盲自評為成功)=Pr(Y=1)=q
Pr(守方盲自評為失敗)=Pr(Y=0)=1-q,0 Pr(攻方盲自評為成功,守方盲自評為成功)=Pr(X=1,Y=1)=a,0 Pr(攻方盲自評為成功,守方盲自評為失敗)=Pr(X=1,Y=0)=b,0 Pr(攻方盲自評為失敗,守方盲自評為成功)=Pr(X=0,Y=1)=c,0 Pr(攻方盲自評為失敗,守方盲自評為失敗)=Pr(X=0,Y=0)=d,0 這里,a,b,c,d,p,q之間還滿足如下三個(gè)線性關(guān)系等式: a+b+c+d=1 p=Pr(X=1)=Pr(X=1,Y=0)+Pr(X=1,Y=1)=a+b q=Pr(Y=1)=Pr(X=1,Y=1)+Pr(X=0,Y=1)=a+c 所以,6個(gè)變量a,b,c,d,p,q中,其實(shí)只有3個(gè)是獨(dú)立的。 足夠長的時(shí)間之后,佛祖“看”夠了,便叫停攻守雙方,讓他們分別對擂臺進(jìn)行有利于自己的秘密調(diào)整,當(dāng)然某方(或雙方)也可以放棄本次調(diào)整的機(jī)會,如果他(他們)認(rèn)為當(dāng)前擂臺對自己更有利的話。這里,所謂的“秘密調(diào)整”即指雙方都不知道對方做了些什么調(diào)整。比如,針對網(wǎng)絡(luò)空間安全對抗,也許紅客安裝了一個(gè)防火墻,也許黑客植入了一種新的惡意代碼等;針對陣地戰(zhàn)的情況,也許攻方調(diào)來了一友增援部隊(duì),也許守方又埋了一批地雷等。 總之,攻守雙方調(diào)整完成后,雙方又在新擂臺上重新開始“下一輪”的對抗。 不過,本文不研究攻守雙方的“下一輪”對抗,只考慮“當(dāng)前輪”,即由上面的X、Y、(X,Y)等隨機(jī)變量組成的系統(tǒng)。 至此,“盲攻防”場景的精確描述就完成了。可見,網(wǎng)絡(luò)戰(zhàn)、間諜戰(zhàn)、潑婦互罵等對抗性很慘烈的攻防,都是典型的“盲對抗”。 根據(jù)上節(jié)中的隨機(jī)變量X和Y,佛祖再新造一個(gè)隨機(jī)變量Z=(X+Y)mod2。由于任何兩個(gè)隨機(jī)變量都可以組成一個(gè)通信信道,因此把X作為輸入,Z作為輸出,佛祖便可構(gòu)造出一個(gè)通信信道F,稱之為“攻擊信道”。 由于攻方(黑客)的目的是要打敗守方(紅客),因此黑客是否“真正成功”,不能由自己的盲評價(jià)來定(雖然這個(gè)盲評價(jià)是真心的),而是應(yīng)該由“紅客”的真心盲評價(jià)說了算。所以,就應(yīng)該有如下事件等式成立: {攻方的某次攻擊真正成功} ={攻方本次盲自評為成功∩守方本次盲自評為失敗}∪{攻方本次盲自評為失敗∩守方本次盲自評為失敗}={X=1,Y=0}∪{X=0,Y=0} ={X=1,Z=1}∪{X=0,Z=0} ={1 bit信息被成功地從通信系統(tǒng)F的發(fā)端(X)傳輸?shù)搅耸斩?Z)}。 另一方面,如果有1 bit信息被成功地從發(fā)端(X)傳到了收端(Z),那么,要么是“X=0,Z=0”;要么是“X=1,Z=1”。由于Y=(X+Z)mod2,因此由“X=0,Z=0”推知“X=0,Y=0”;由“X=1,Z=1”推知“X=1,Y=0”。而“X=0,Y=0”意味著“攻防本次盲自評為失敗∩守方本次盲自評為失敗”,“X=1,Y=0”意味著“攻方本次盲自評為成功∩守方本次盲自評為失敗”。綜合起來就意味著“攻方獲得某次攻擊的真正成功”。 簡而言之,如果黑客的某次攻擊“真正成功”,那么,“攻擊信道”F就成功地傳輸1 bit信息到收端;反之,如果有1 bit信息被成功地從“攻擊信道”F的發(fā)端傳送到了收端,那么,黑客X就獲得了一次“真正成功攻擊”。即可得如下引理1。 引理1:黑客獲得一次“真正成功的攻擊”,其實(shí)就對等于說:“攻擊信道”F成功地傳輸了1 bit信息。 根據(jù)仙農(nóng)信息論的著名“信道編碼定理”[2-3]:如果信道F的容量為C,那么,對于任意傳輸率k/n≤C,都可以在譯碼錯(cuò)誤概率任意小的情況下,通過某個(gè)nbit的編碼,成功地把kbit信息傳輸?shù)绞招哦?。反之,如果信道F能夠用nbit編碼,把Sbit信息無誤差地傳輸?shù)绞斩?,那么,一定有S≤nC。 利用引理1,就可把這段話翻譯成如下重要定理1。 定理1(黑客攻擊能力極限定理):設(shè)由隨機(jī)變量(X,Z)組成的“攻擊信道”F的信道容量為C。如果黑客想“真正成功”地把紅客打敗k次,那么他一定有某種技巧(對應(yīng)于仙農(nóng)編碼),使得他能夠在k/C次攻擊中以任意接近1的概率達(dá)到目的。反過來,如果黑客經(jīng)過n次攻擊,獲得了S次“真正成功”的攻擊,那么一定有S≤nC。 由定理1可知,只要求出“攻擊信道”F的信道容量C,那么黑客的攻擊能力極限就確定了。 下面來計(jì)算F的“信道容量”C。 首先,由于隨機(jī)變量Z=(X+Y)mod2,因此可以由X和Y的概率分布,得到Z的概率分布如下: Pr(Z=0) =Pr(X=Y) =Pr(攻守雙方的盲自評結(jié)果一致) =Pr(X=0,Y=0)+Pr(X=1,Y=1) =a+d; Pr(Z=1) =Pr(X≠Y) =Pr(攻守雙方的盲自評結(jié)果相反) =Pr(X=0,Y=1)+Pr(X=1,Y=0) =b+c = 1-(a+d); 考慮通信系統(tǒng)F,它由隨機(jī)變量X和Z構(gòu)成,即它以X為輸入,Z為輸出;它的2×2階轉(zhuǎn)移概率矩陣為A=[A(x,z)]=[Pr(z|x)],這里x,z=0或1。 A(0,0)=Pr(Z=0|X=0)=[Pr(Z=0,X=0)]/Pr(X=0) =[Pr(Y=0,X=0)]/(1-p) =d/(1-p) A(0,1)=Pr(Z=1│X=0)=[Pr(Z=1,X=0)]/Pr(X=0) =[Pr(Y=1,X=0)]/(1-p) =c/(1-p)=1-d/(1-p) A(1,0)=Pr(Z=0│X=1) =[Pr(Z=0,X=1)]/Pr(X=1) =[Pr(Y=1,X=1)]/p=a/p A(1,1)=Pr(Z=1│X=1)=[Pr(Z=1,X=1)]/Pr(X=1) =[Pr(Y=0,X=1)]/p=b/p =(p-a)/p 由于隨機(jī)變量(X,Z)的聯(lián)合概率分布為: Pr(X=0,Z=0)=Pr(X=0,Y=0)=d Pr(X=0,Z=1)=Pr(X=0,Y=1)=c Pr(X=1,Z=0)=Pr(X=1,Y=1)=a Pr(X=1,Z=1)=Pr(X=1,Y=0)=b 因此隨機(jī)變量X與Z之間的互信息為: I(X,Z) =∑x∑zp(x,z)log(p(x,z)/[p(x)p(z)]) =dlog[d/[(1-p)(a+d)]]+clog[c/[(1-p)(b+c)]]+alog[a/[p(a+d)]]+blog[b/[p(b+c)]] 由于此處有a+b+c+d=1,p=a+b,q=a+c,0 I(X,Z)=[1+a-(p+q)]log[[1+a-(p+q)]/[(1-p)(1+2a-p-q)]]+ (q-a)log[(q-a/[(1-p)(p+q-2a)])]+ alog[a/[p(1+2a-p-q)]]+ (p-a)log[(p-a)/[p(p+q-2a)]] 于是,利用此I(X,Z)可知,以X為輸入,Z為輸出的信道F的“信道容量”C就等于Max[I(X,Z)](這里最大值是針對X為所有可能的二元離散隨機(jī)變量來計(jì)算的),或者更簡單地說:容量C等于Max0 “攻”的量化研究就到此。下面再來考慮“守”的情況。 設(shè)隨機(jī)變量X、Y、Z和(X,Y)等都與前面相同。 根據(jù)隨機(jī)變量Y(紅客)和Z,佛祖再組成另一個(gè)通信信道G,稱為“防御信道”,即把Y作為輸入,Z作為輸出。 由于守方(紅客)的目的是要擋住攻方(黑客)的進(jìn)攻,因此紅客是否“真正成功”不能由自己的盲評價(jià)來定。而應(yīng)該是由“黑客”的真心盲評價(jià)來定。所以就應(yīng)該有如下事件等式成立: {守方的某次防衛(wèi)真正成功} ={守方本次盲自評為成功∩攻方本次盲自評為失敗}∪{守方本次盲自評為失敗∩攻方本次盲自評為失敗}={Y=1,X=0}∪{Y=0,X=0} ={Y=1,Z=1}∪{Y=0,Z=0} ={1bit信息被成功地從防御信道G的發(fā)端(Y)傳輸?shù)搅耸斩?Z)} 與“攻擊信道”的情況類似,反過來,上述事件等式也就意味著:如果在“防御信道”G中,1 bit信息被成功地從發(fā)端(Y)傳到了收端(Z),那么,紅客就獲得了一次“真正成功的”防衛(wèi)。 與引理1類似,可得如下引理2。 引理2:紅客獲得一次“真正成功的守衛(wèi)”,其實(shí)就等于說:“防御信道”G成功地傳輸了1 bit信息。 與定理1類似,也可得到如下重要定理2。 定理2(紅客守衛(wèi)能力極限定理):設(shè)由隨機(jī)變量(Y,Z)組成的“防御信道”G的信道容量為D。如果紅客想“真正成功”地把黑客擋住R次,那么,一定有某種技巧(對應(yīng)于仙農(nóng)編碼),使得他能夠在R/D次防御中以任意接近1的概率達(dá)到目的。如果紅客經(jīng)過N次守衛(wèi)獲得了R次“真正成功”的守衛(wèi),那么,一定有R≤ND。 下面再來計(jì)算“防御信道”G的“信道容量”D。 考慮通信系統(tǒng)G,它由隨機(jī)變量Y和Z構(gòu)成,即它以Y為輸入,Z為輸出;它的2×2階轉(zhuǎn)移概率矩陣為B=[B(y,z)]=[Pr(z|y)],這里y,z=0或1。 B(0,0)=Pr(Z=0│Y=0) =[Pr(Z=0,Y=0)]/Pr(Y=0) =[Pr(X=0,Y=0)]/(1-q)=d/(1-q) B(0,1)=Pr(Z=1│Y=0) =[Pr(Z=1,Y=0)]/Pr(Y=0) =[Pr(X=1,Y=0)]/(1-q)=b/(1-q) B(1,0)=Pr(Z=0│Y=1) =[Pr(Z=0,Y=1)]/Pr(Y=1) =[Pr(X=1,Y=1)]/q=a/q B(1,1)=Pr(Z=1│Y=1) =[Pr(Z=1,Y=1)]/Pr(Y=1) =[Pr(X=0,Y=1)]/q=c/q 由于隨機(jī)變量(Y,Z)的聯(lián)合概率分布為: Pr(Y=0,Z=0)=Pr(X=0,Y=0)=d Pr(Y=0,Z=1)=Pr(X=1,Y=0)=b Pr(Y=1,Z=0)=Pr(X=1,Y=1)=a Pr(Y=1,Z=1)=Pr(X=0,Y=1)=c 因此隨機(jī)變量Y與Z之間的互信息為: I(Y,Z)=∑Y∑Zp(y,z)log(p(y,z)/[p(y)p(z)]) =dlog[d/[(1-q)(a+d)]]+ blog[b/[(1-q)(b+c)]]+alog[a/[q(a+d)]]+ clog[c/[q(b+c)]] 由于此處有a+b+c+d=1,p=a+b,q=a+c,0 I(Y,Z) =(1+a-p-q)log[(1+a-p-q)/[(1-q)(1+2a-p-q)]]+(p-a)log[(p-a)/[(1-q)(p+q-2a)]]+alog[a/[q(1+2a-p-q)]]+ (q-a)log[(q-a)/[q(p+q-2a)]]2 黑客攻擊能力極限
3 紅客守衛(wèi)能力極限