楊義先,鈕心忻
?。ū本┼]電大學 信息安全中心, 北京 100876)
0引言
“安全”與“信息”都是至今還沒有嚴格定義的概念。早在60年前,仙農(nóng)創(chuàng)立了“信息論”,從而為現(xiàn)代通信的飛速發(fā)展奠定了堅實的基礎。但是,至今人們對“安全”的研究,特別是網(wǎng)絡空間安全的研究,還僅僅停留在“兵來將擋,水來土淹”的工程層次或技術層次,既缺乏全面系統(tǒng)的理論指導,又遺留了許多明顯的漏洞,比如,雖然大家都承認網(wǎng)絡空間安全是“三分技術,七分管理”,但是,全世界都將幾乎90%的精力聚焦于“三分技術”;而“七分管理”竟然無人問津,或者說只是片面地將“管理”理解為“頒布幾份規(guī)章制度”而已。
我們夢想建立一套基礎的通用安全理論,并以此來指導包括網(wǎng)絡空間安全在內(nèi)的所有安全保障工作。本文是努力實現(xiàn)該夢想的第一步。
希望本文能夠激發(fā)國內(nèi)外學者更多的后續(xù)研究。
1不安全事件的素分解
“安全”是一個很主觀的概念,與“角度”密切相關。同一個事件,對不同的人,從不同的角度來說可能會得出完全相反的“安全結(jié)論”,比如,“政府監(jiān)聽公民通信”這件事,從政府角度來看,“能監(jiān)聽”就是“安全”;而對公民來說,“能監(jiān)聽”就是“不安全”。所以,下面研究“安全”,只鎖定一個角度,比如,“我”的角度。
“安全”是一個與時間密切相關的概念。同一個系統(tǒng),在昨天安全,絕不等于今天也安全(比如,若用現(xiàn)代計算機去破譯古代密碼,簡直是易如反掌);同樣,在今天安全,也絕不等于明天就安全。當然,一個“在昨天不安全”的系統(tǒng),今天也不會自動變?yōu)榘踩R虼?,下面研究“安全”,只考慮時間正序流動的情況,即,立足當前,展望未來(為突出重點,本文只考慮當前時刻的情況,帶時間的安全通論,將在后續(xù)論文中涉及)。
“安全”是一個與對象密切相關的概念。若A和B是兩個相互獨立的系統(tǒng),若只考慮A系統(tǒng)的安全,那么,B系統(tǒng)是否安全就應該完全忽略。比如,若只考慮“我的手機是否安全”,那么,“白宮的電腦是否中毒”就可以完全忽略。因此,下面研究“安全”時,只鎖定一個有限系統(tǒng),即該系統(tǒng)由有限個“元件”組成。
設A是一個封閉的獨立系統(tǒng),如果直接研究其“安全”,根本無處下手!不過,幸好有“安全”=不“不安全”,所以,若能夠把“不安全”研究清楚了,那么“安全”也就明白了。
下面就以概率論為工具,從“我”的角度,沿著時間的正序方向(但只考慮當前狀態(tài))來研究系統(tǒng)A的“不安全”。
假定A系統(tǒng)中發(fā)生了某個事件,如果它是一個對“我”來說的“不安全”事件,那么,“我”就能夠精確且權威地判斷這是一個“不安全的事件”(注意:除“我”之外,“別人”的判斷是沒有參考價值的,因為,本文只從一個角度來研究“安全”)。如果將該“不安全事件”記為D,那么,該事件導致系統(tǒng)A“不安全”的概率就記為P(D)。為了簡化計,此處只考慮0<P(D)<1的情況,因為,如果P(D)=0,那么這個“不安全事件”D就幾乎不會發(fā)生,故可以忽略,因為無論是否對造成事件D的環(huán)境進行改進,都不影響系統(tǒng)A的安全性;如果P(D)=1,那么,D就是“不安全”的確定原因(沒有隨機性),這時只需要針對事件D單獨進行加固(比如,采用現(xiàn)在所有可能的已知安全技術手段。實際上,當前全球安全界都已經(jīng)擅長于這種“頭痛醫(yī)頭,足痛醫(yī)足”的方法),就可以提升系統(tǒng)A的安全性了。
從理論上看,給定系統(tǒng)A之后,如果A是有限系統(tǒng),那么,總可以通過各種手段,發(fā)現(xiàn)或測試出當前的全部有限個“不安全事件”,比如,D1、D2、…、Dn。下面,在不引起混淆的情況下,用Di同時表示“不安全事件”和造成該事件Di的原因。于是,系統(tǒng)A的“不安全”概率就等于P(D1∪D2∪…∪Dn),或者說,系統(tǒng)A的“安全”概率等于1-P(D1∪D2∪…∪Dn)。
換句話說,本來無處下手的“安全”研究,就轉(zhuǎn)化為了下面的數(shù)學問題:
“安全”數(shù)學問題:在概率0<P(D1∪D2∪…∪Dn)<1的情況下,使該概率P(D1∪D2∪…∪Dn)最小化的問題,或者使1-P(D1∪D2∪…∪Dn)最大化的問題。
設D和B是系統(tǒng)A的兩個“不安全事件”,那么,(D∪B)也是一個“不安全事件”,但是,(D∩B)或者(D\\B)等就不一定再是“不安全事件”了。若事件D是B的真子集,并且D的發(fā)生會促使B也發(fā)生(即,條件概率P(B|D)>P(B)),則稱事件D是事件B的“子事件”。
在時間正序流動的條件下,設系統(tǒng)A的過去全部“不安全事件”集合為D,若當前又發(fā)現(xiàn)一個新的“不安全事件”B,那么,系統(tǒng)A的當前“不安全”概率=P(D∪B)≥P(D)=系統(tǒng)A的過去“不安全”概率。于是:
“不安全性”遵從熱力學第二定律:系統(tǒng)A的“不安全”概率將越來越大,而不會越來越?。ǔ怯型饬?,比如采取了相應的安全加固措施等);或者說“安全”與“信息”一樣都是負熵。
由熱力學第二定律可知,熱量可以自發(fā)地從高溫物體傳遞到低溫物體,但不可能自發(fā)地從低溫物體傳遞到高溫物體;熱量將最終穩(wěn)定在溫度一致的狀態(tài)。那么,有限系統(tǒng)A的“不安全”狀態(tài)將最終穩(wěn)定在什么地方呢?
下面就來回答這個問題。
設Z是一個“不安全事件”,如果存在另外兩個“不安全事件”X和Y(它們都是Z的真子集),同時滿足如下兩個條件:(1)X∩Y=;(2)Z=X∪Y。那么,就說“不安全事件”Z是可分解的。此時X和Y都是Z的子事件。如果某個“不安全事件”是不可分解的(即它的所有真子集都不再是“不安全事件”了),那么,就稱該事件為“不安全的素事件”。
定理1(“不安全事件”分解定理):對任意給定的“不安全事件”D,都可以判斷出D是否是可分解的,并且,如果D是可分解的,那么,也可以找到它的某種分解。
證明:由于有限系統(tǒng)A的全部“不安全事件”只有有限個D1、D2、…、Dn,所以,至少可以通過窮舉法,對每個Di(i=1,2,…,n)測試D\\Di,判斷其是否也是“不安全事件”。如果至少能夠找到某個這樣的i,則D就是可分解的,而且,Di與(D\\Di)就是它的一個分解;否則,D就是不可分解的“不安全素事件”,這是因為“D1、D2、…、Dn”是全部“不安全事件”。證畢。
定理2(“不安全事件”素分解定理):若反復使用上述的“不安全事件”分解定理來處理“不安全事件”(D1∪D2∪…∪Dn)及其被分解后的“不安全子事件”,那么,就可以最終得到分解:D1∪D2∪…∪Dn=B1∪B2∪…∪Bm,這里對任意的i和j(i,j=1,2,…,m)都有Bi是“不安全素事件”,并且Bi∩Bj=。
證明:若D=D1∪D2∪…∪Dn,已經(jīng)是不可分解的了,那么,m=1,并且D1∪D2∪…∪Dn=B1;若D是可以分解的,并且X是D分解后的一個“不安全子事件”。如果X已經(jīng)不可分解了,那么,可以取B1=X;如果X還可以再分解,那么,再對X的某個“不安全子事件”進行分解。如此反復,直到最終找到一個不能再被分解的“不安全子事件”,將該事件記為B1。
仿照上面分解D的過程來分解D\\B1,便可以找出不能再被分解的“不安全子事件”B2。
再根據(jù)D\(B1∪B2)的分解,便可得到B3。
最終,當這個分解過程結(jié)束后,全部的Bi就已經(jīng)構造出來了。證畢。
于是,根據(jù)“不安全事件”素分解定理,便有Bi∩Bj=,并且:
P(D1∪D2∪…∪Dn)=P(B1∪B2∪…∪Bm)=P(B1)+P(B2)+…+P(Bm)
換句話說,可以將引發(fā)有限系統(tǒng)A的“不安全事件”D1、D2、…、Dn分解為另一批彼此互不相容的“不安全素事件”B1、B2、…、Bm,并且,還將有限系統(tǒng)A的不安全概率轉(zhuǎn)化為P(B1)+P(B2)+…+P(Bm)。所以,有限系統(tǒng)A的“不安全”概率P(D1∪D2∪…∪Dn)的最小化問題也就轉(zhuǎn)化成了每個彼此互不相容的“不安全素事件”的概率P(Bi)(i=1,2,…,m)的最小化問題。進而得到如下結(jié)論:
定理3(分而治之定理):任何有限系統(tǒng)A的“不安全事件”集合,都可以分解成若干個彼此互不相容的“不安全素事件”:B1、B2、…、Bm,使得只需要對每個Bi(i=1,2,…,m)進行獨立加固,即減小事件Bi發(fā)生的概率P(Bi),即可以整體上提高系統(tǒng)A的安全強度,或者說整體上減少系統(tǒng)A的“不安全”概率。
該分而治之定理回答了前面的“熱平衡”問題,即:有限系統(tǒng)A的“不安全”狀態(tài),將最終穩(wěn)定成一些彼此互不相容的“不安全素事件”之并。該定理對全球網(wǎng)絡空間安全界的啟發(fā)意義在于:過去那種“頭痛醫(yī)頭,足痛醫(yī)足”的做法雖然值得改進,但也不能盲目地“頭痛醫(yī)足”或“足痛醫(yī)頭”,而是應該科學地將所有安全威脅因素,分解成互不相容的一些“??啤保˙1、B2、…、Bm),然后,再開設若干“??漆t(yī)院”來集中精力“醫(yī)治”相應的病癥(即,減小P(Bi))。
??漆t(yī)院也是分門診部的,同樣,針對上述的每個“不安全素事件”Bi也可以再進一步地進行分解,并最終得到系統(tǒng)A的完整“經(jīng)絡圖”,于是,便找到了某些“頭痛醫(yī)足”的依據(jù),甚至給出“頭痛醫(yī)足”的辦法。
2系統(tǒng)“經(jīng)絡圖”的邏輯分解
設X是B的一個真子集,并且,若事件X發(fā)生,就會促使B也發(fā)生(即,P(B|X)-P(B)>0),那么,就稱X為B的一個誘因。
針對任何具體給定的有限系統(tǒng)A,因為B是有限集,所以,從理論上看,總可以通過各種手段發(fā)現(xiàn)或測試出當前B的全部有限個誘因,比如,X1、X2、…、Xn,即,B=X1∪X2∪…∪Xn。
設X和Y是B的兩個誘因,而且還同時滿足:(1)X∩Y=;(2)B=X∪Y。那么,即認為B是可分解的,并且X∪Y就是它的一種分解。如果某個B是不可分解的(即它的所有真子集都不再是其誘因了,或者說對B的所有真子集Z,都有條件概率P(B|Z)=P(B)),那么,就稱該事件為“素事件”。
若Y、Y1、Y2都是B的誘因有:并且有:(1)Y1∩Y2=;(2)Y=Y1∪Y2。那么,即認為B的誘因Y是可分解的,并且Y1∪Y2就是它的一種分解。如果誘因Y是不可分解的(即,它的所有真子集都不再是B的誘因了),那么,就稱該誘因Y為“B的素誘因”。如果誘因Y的所有子集Z,都不再是Y自己的誘因了,那么,就稱Y為“元誘因”,或形象地稱為“穴位”。
定理4(事件分解定理):對任意給定的事件B,都可以判斷出B是否可分解,并且,如果B是可分解的,那么,也可以找到它的某種分解。
證明:由于系統(tǒng)B的全部誘因只有有限個X1、X2、…、Xn,所以,至少可以通過窮舉法,對每個Xi(i=1,2,…,n)測試B\\Xi,判斷其是否也是B的一個誘因。如果至少能夠找到某個這樣的i,那么,B就是可分解的,而且,Xi與(B\\Xi)就是它的一個分解;如果這樣的i不存在,那么,B就是不可分解的,這是因為“X1、X2、…、Xn”是B的全部誘因。證畢。
定理5(事件素分解定理):若反復使用上述的“事件分解定理”來處理事件B,那么,就可以最終得到分解:B=Y1∪Y2∪…∪Ym,這里對任意的i和j(i,j=1,2,…,m)都有Yi∩Yj=,并且每個Yi都是B的素誘因。
證明:若B已經(jīng)是不可分解的了,那么,m=1,并且,B=Y1。
若B是可以分解的,并且Y是B分解后的一個誘因。如果Y已經(jīng)是B的素誘因了,那么,可以取Y1=Y;如果Y還可以再分解,那么,再對Y的某個誘因進行分解。如此反復,直到最終找到一個不能再被分解的素誘因,將它記為Y1。
仿照上面分解B的過程來分解B\\Y1,便可以找出B的不能再被分解的素誘因Y2。
再根據(jù)B\(Y1∪Y2)的分解,便可得到Y(jié)3。
最終,當這個分解過程結(jié)束后,全部的Yi就已經(jīng)構造出來了。證畢。
有了上面各定理的準備后,現(xiàn)在就可以給出如下有限系統(tǒng)A的經(jīng)絡圖算法步驟:
第0步:針對系統(tǒng)A的“不安全事件”D。
第1步:利用定理2,將D分解成一些互不相容的“不安全素事件”B1∪B2∪…∪Bm,這里對任意的i和j(i,j=1,2,…,m)都有Bi是“不安全素事件”并且Bi∩Bj=(為清晰計,在繪制經(jīng)絡圖時,可以從左至右,按照P(Bi)的遞減順序排列)。
第2.i步(i=1,2,…,m):利用定理5,把第1步中所得到的Bi分解成若干“Bi的素誘因”(為清晰計,在繪制經(jīng)絡圖時,可以從左至右,對Bi的素誘因,按照其發(fā)生概率大小值的遞減順序排列),為避免混淆,將所有第2步獲得的素誘因,稱為“第2步素誘因”。這些素誘因中,有些可能已經(jīng)是“元誘因”(穴位)了。
第3.i步(i=1,2,…):針對第2步所獲得的每個不是“元誘因”(穴位)的素誘因,利用定理5,將其進行分解,由此得到的素誘因稱為“第3步素誘因”(這些誘因的從左到右的排列順序與前幾步相似)。這些素誘因中,有些可能已經(jīng)是“元誘因”(穴位)了。
……
第k.i步(i=1,2,…):針對第k-1步所獲得的每個不是“元誘因”(穴位)的素誘因,利用定理5,將其進行分解,由此得到的素誘因稱為“第k步素誘因”(這些誘因的從左到右的排列順序也與前幾步相似)。這些素誘因中,有些可能已經(jīng)是“元誘因”(穴位)了。
……
由于上面各步驟的每次分解,都是針對真子集所進行的,所以,這種分解的步驟不會無窮進行下去,即,一定存在某個正整數(shù),比如N,使得:
第N.i步(i=1,2,…):針對第N-1步所獲得的每個不是“元誘因”的素誘因,利用定理5將其進行分解,由此得到的素誘因全部都已經(jīng)是“元誘因”(穴位)了(每一個素誘因下面的元誘因排列順序,也是采用概率從大到小進行)。
將上面的分解步驟結(jié)果用圖形表述出來,便得到了有限系統(tǒng)A的安全事件“經(jīng)絡圖”(由于它的外形很像一棵倒立的樹,所以,也稱為“經(jīng)絡樹”),如圖1。
根據(jù)經(jīng)絡樹的繪制過程,可以得到:
?。?)如果系統(tǒng)A不安全了,那么,至少有某個“不安全素事件”(甚至可能是“元誘因”(穴位))發(fā)生了(見經(jīng)絡樹的第二層);
(2)如果某個“不安全素事件”發(fā)生了,那么,該事件的至少某個“素誘因”(甚至可能是“元誘因”(穴位))就發(fā)生了(見經(jīng)絡樹的第三層);
……
?。↘)如果某個“第k-1步素誘因”發(fā)生了,那么,它的至少某個“第k步素誘因”(甚至可能是“元誘因”(穴位))就發(fā)生了(見經(jīng)絡樹的第k+1層);
現(xiàn)在就清楚該如何“頭痛醫(yī)足”了:實際上,只要系統(tǒng)A“病”了,那么,就一定能夠從系統(tǒng)A的完整經(jīng)絡圖中,找出某個“生病的子經(jīng)絡圖”M,使得:(1)M的每層“素誘因”或“元誘因”(穴位)都是“病”的;(2)除了M之外,系統(tǒng)A的經(jīng)絡圖的其他部分都沒病。于是,為了治好該“病”,只需要將M中的所有“元誘因”(穴位)的“病”治好(說明:這里某個第k步誘因病了,意指它的至少一個“第k+1步誘因”發(fā)生了。而如果某個第k步誘因的全部第k+1步誘因都沒有發(fā)生,那么,這個第k步誘因就沒??!可見,除了“元誘因”(穴位)之外,M中的其他非元誘因是可以自愈的?。?。
更具體地說,“頭痛醫(yī)足”的過程是:首先將最底層,比如第N層的“元誘因”(穴位)治好,于是,第N-1層的“素誘因”就自愈了;然后,再扎針灸治好第N-1層的“元誘因”(穴位),于是,第N-2層的“素誘因”就自愈了;然后,再扎針灸治好第N-3層的“元誘因”(穴位),……,如此繼續(xù),最終到達頂層。
“經(jīng)絡圖”的用途顯然不僅僅是用來“頭痛醫(yī)足”,它還有許多其他重要應用,比如:
?。?)只要守住所有相關的“元誘因”(穴位),那么,系統(tǒng)A就安然無恙;
?。?)同理,只要將所有炮火瞄準相關“元誘因”(穴位),那么,就能夠穩(wěn)準狠地打擊對手;
?。?)除了元誘因(穴位)之外,經(jīng)絡圖中平均概率值大的“經(jīng)絡”是更脆弱的經(jīng)絡(即,安全“木桶原理”中的短板),也是在系統(tǒng)安全保障中需要重點保護的部分;同時,也是攻擊過程中重點打擊的部分;
?。?)平時注意繪制和補充經(jīng)絡圖,關鍵時刻就可以派上用場了!
3結(jié)束語
仙農(nóng)在研究信息論時,雖然發(fā)現(xiàn)了信道容量的上限值,但是非常遺憾,他沒能給出如何才能達到該上限值,從而,致使全世界通信界的科學家們在過去60余年來,使出渾身解數(shù)設計各種編碼方法,來努力逼近仙農(nóng)界,至今沒有成功。
與此相似,本文雖然證明了有限系統(tǒng)的“安全經(jīng)絡圖”是存在的,但是,并未給出如何針對具體的系統(tǒng),來繪制其安全經(jīng)絡圖,估計未來的學者們不得不花費巨大的精力,針對具體系統(tǒng)來繪制具體的經(jīng)絡圖。
必須指出,繪制經(jīng)絡圖絕非易事。為了繪制人體經(jīng)絡圖,中醫(yī)界的祖先們奮斗了數(shù)千年!因此,絕無可能在短期內(nèi)就繪制出“網(wǎng)絡空間安全經(jīng)絡圖”,雖然這個圖肯定存在。
下面結(jié)合網(wǎng)絡空間安全給出幾點注記:(1)漏洞庫中的每個漏洞,算是“元誘因”(穴位),堵住相關漏洞就是對相關“元誘因”(穴位)的加固;(2)口令算是一種“元誘因”(穴位),如果今后能夠完全消除口令,代之以綜合的個體生理特征,那么,這個“元誘因”(穴位)就會被充分加固;(3)刪貼等“信息封堵”手段,雖然可以加固某個“素誘因”,但是,絕非加固“元誘因”(穴位),所以,難免會吃力不討好;(4)“被穿透”和“被封堵”顯然是互不相容的安全事件,而“被竊密”和“口令暴露”卻是彼此相容的不安全事件;(5)歡迎所有學者,繼續(xù)對“網(wǎng)絡空間安全經(jīng)絡圖”和其他系統(tǒng)的經(jīng)絡圖進行更深入的研究。