楊義先 鈕心忻



編者按:網絡空間安全作為一項新的全球治理議程,已經成為世界關注的焦點、各國政府的戰略目標之一,但人們對網絡空間安全的研究,還缺乏全面系統的理論指導,針對該問題,我刊特轉載自《科學網》一篇由北京郵電大學楊義先、鈕心忻教授編寫的《安全通論》(原文網址:http://blog.sciencenet.cn/blog-453322-944217.html )。在該文章中,作者提出需要建立一套基礎的通用安全理論,來指導包括網絡空間安全在內的所有安全保障工作;并從安全角度出發,形象地將系統比作完整的“經絡樹”,認為對系統的任何“病痛”都可進行有效的“醫治”。
摘要:從安全角度出發,用概率方法嚴格證明了任何有限系統,都存在一套完整的“經絡樹”,使得系統的任何“病痛”,都可以按如下思路進行有效“醫治”:首先梳理出經絡樹中“受感染”的“帶病樹枝”體系,然后對該樹枝末梢上的“帶病樹葉”(“穴位”或“元誘因”)進行“針灸”,醫治好病葉后,與這些病葉相連的樹枝就治好了;醫治好所有病枝后,與這些病枝相連的“樹干”就治好了;醫治好所有“病干”后,整棵經絡樹就醫治好了,從而系統的病痛就治好了。此處所指的有限系統,既可以是兒童玩具這樣的微系統,也可以是芯片、計算機、電信網、互聯網、物聯網甚至整個賽博空間等復雜巨型有限系統;當然也可以是消防、抗災、防病、治安、環保等各類常見的其他系統。
關鍵詞:網絡空間安全;國家安全;健康防御;人體經絡
安全與信息都是至今還沒有嚴格定義的概念,但是這并不意味著不能對它們進行深入研究,其實早在60年前,仙農就已經創立了信息論,從而為現代通信的飛速發展奠定了堅實的基礎。但是,至今人們對安全的研究,特別是網絡空間安全的研究,還僅僅停留在“兵來將擋,水來土淹”的工程層次或技術層次,既缺乏全面系統的理論指導,又遺留了許多明顯的漏洞,比如雖然大家都承認網絡空間安全是“三分技術,七分管理”,但全世界都將幾乎90%的精力聚焦于那三分技術,七分管理竟然無人問津,或者說人們只是片面地將管理理解為“頒布幾份規章制度”而已。
我們夢想建立一套基礎的通用安全理論,并以此來指導包括網絡空間安全在內的所有安全保障工作。文章是努力實現該夢想的第1步,希望能夠激發學者們更多的后續研究。
1 不安全事件的素分解
安全是一個很主觀的概念,與角度密切相關。同一個事件,對不同的人,從不同的角度來說可能會得出完全相反的安全結論,比如,政府監聽公民通信這件事,從政府角度來看,能監聽就是安全;而對公民來說,能監聽就是不安全。所以,我們研究安全,只鎖定一個角度,比如,“我”的角度。
安全是一個與時間密切相關的概念。同一個系統,在昨天安全,絕不等于今天也安全(比如,若用現代計算機去破譯古代密碼,簡直是易如反掌);同樣,在今天安全,也絕不等于明天就安全。當然,一個在昨天不安全的系統,今天也不會自動變為安全。因此,我們研究安全時,只考慮時間正序流動的情況,即立足當前,展望未來。
安全是一個與對象密切相關的概念。若A和B是兩個相互獨立的系統,若我們只考慮A系統的安全,B系統的安全就應該完全忽略。因此,我們研究安全時,只鎖定一個有限系統,即該系統由有限個“元件”組成。
假設A是一個封閉的獨立系統,如果直接研究其安全,根本就無處下手!不過,幸好有“安全”=不“不安全”,所以,若能把不安全研究清楚了,安全也就明白了。
假設A系統中發生了某個事件,如果它是一個對“我”來說的不安全事件,那么 “我”就能夠精確且權威地判斷這是一個不安全的事件,因為該事件的后果是“我”不愿意接受的!需要注意:除“我”之外,“別人”的判斷是沒有參考價值的,因為,文中只從一個角度來研究安全。如果將該不安全事件記為D,該事件導致系統A不安全的概率就記為[P(D)]。我們只考慮0<[P(D)]<1的情況,因為如果[P(D)=0],這個不安全事件就幾乎不會發生,故可以忽略,因為無論是否對造成事件D的環境進行改進,都不影響系統A的安全性;如果[P(D)=1],D則是不安全的確定原因,這時只需要針對事件D單獨進行加固,就可以提升系統A的安全性了。
從理論上看,給定系統A之后,如果A是有限系統,則可以通過各種手段,發現或測試出當前的全部有限個不安全事件,比如,D1、D2、……、Dn。在不引起混淆的情況下,我們用Di同時表示不安全事件和造成該事件Di的原因。于是,系統A的不安全概率就等于[P(D1?D2?...?Dn)],或者說,系統A的安全概率等于[1-P(D1?D2?...?Dn)]。
換句話說,本來無處下手的安全研究,就轉化為了安全數學問題,即在概率0<[P(D1?D2?...?Dn)]<1的情況下,使該概率[P(D1?D2?...?Dn)]最小化的問題,或者使[1-P(D1?D2?...?Dn)]最大化的問題。
假設D和B是系統A的兩個不安全事件,[(D?B)]則也是一個不安全事件,但是[(D?B)]或者[(D\B)]等就不一定再是不安全事件了。如果事件D是B的真子集,并且D的發生會促使B也發生,則稱事件D是事件B的“子事件”。
在時間正序流動的條件下,假設系統A的過去全部不安全事件集合為D,若當前又發現一個新的不安全事件B,則有系統A的當前不安全概率=[P(D?B)]≥[P(D)]=系統A的過去不安全概率。于是,不安全性遵從熱力學第二定律:系統A的不安全概率將越來越大,而不會越來越小(除非有外力,比如采取了相應的安全加固措施等);或者說安全與信息一樣都是負熵。
假設Z是一個不安全事件,如果存在另外兩個不安全事件X和Y(它們都是Z的真子集),同時滿足如下兩個條件:[X?Y]= ?(空集);[Z=X?Y],我們就認為不安全事件Z是可分解的。此時X和Y都是Z的子事件。如果某個不安全事件是不可分解的,即它的所有真子集都不再是不安全事件了,我就稱該事件為不安全的素事件。
定理1(不安全事件分解定理):對任意給定的不安全事件D,都可以判斷出D是否可分解,如果是可分解的,也可以找到它的某種分解。
證明:由于有限系統A的全部不安全事件只有有限個,即D1、D2、……、Dn,所以至少可以通過窮舉法,對每個Di(i=1,2,…,n)測試一下D\Di,看看它是否也是不安全事件。如果至少能夠找到某個這樣的i,那么D就是可分解的,而且Di與(D\Di)就是它的一個分解;否則,如果這樣的i不存在,那么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]已經是不可分解的了,則有m=1,并且[D1?D2?...?Dn=B1]。
如果D是可以分解的,并且X是D分解后的一個不安全子事件。如果X已經不可分解了,則可以取B1=X;如果X還可以再分解,再對X的某個不安全子事件進行分解。如此反復,直到最終找到一個不能再被分解的不安全子事件B1。
仿照上面分解D的過程,來試圖分解D\B1,便可以找出不能再被分解的不安全子事件B2。再根據[D\B1?B2]的分解,便可得到B3。
最終,當這個分解過程結束后,全部的Bi就已經構造出來了。證畢。
于是,根據不安全事件素分解定理,便有[Bi?Bj]= ?(空集),并得出[P(D1?D2?...?Dn)=P(B1?B2?...?Bm)][=P(B1)+P(B2)+...P(Bm)],因此換句話說,我們可以將引發有限系統A的不安全事件D1、D2、……、Dn,分解為另一批彼此互不相容的不安全素事件B1、B2、…、Bm,并且,還將有限系統A的不安全概率轉化為[P(B1)+P(B2)+...+P(Bm)]。所以,有限系統A的不安全概率[P(D1?D2?...?Dn)]的最小化問題,也就轉化成了每個彼此互不相容的不安全素事件的概率[P(Bi)] (i=1,2,…,m)的最小化問題。
定理3(分而治之定理):任何有限系統A的不安全事件集合,都可以分解成若干個彼此互不相容的不安全素事件:B1、B2、…、Bm。使得只需要對每個Bi(i=1,2,…,m)進行獨立加固,即減小事件Bi發生的概率[P(Bi)],就可以整體上提高系統A的安全強度,或者說整體上減少系統A的不安全概率。
分而治之定理回答了前面的熱平衡問題,即有限系統A的不安全狀態,將最終穩定成一些彼此互不相容的不安全素事件之并。該定理對全球網絡空間安全界的啟發意義在于:過去那種“頭痛醫頭,足痛醫足”的做法雖然值得改進,但也不能盲目地“頭痛醫足”或“足痛醫頭”,而是應該科學地將所有安全威脅因素,分解成互不相容的一些“專科”(B1、B2、…、Bm),然后,再開設若干“專科醫院”來集中精力“醫治”相應的病癥(即減小[P(Bi)])。
2 系統“經絡圖”的邏輯分解
設X是B的一個真子集,如果事件X發生,將促進B也發生(即[P(BX)-P(B)>0]),我們就稱X為B的一個誘因。
針對任何具體給定的有限系統A,因為B是有限集,所以從理論上看,總可以通過各種手段發現或測試出當前B的全部有限個誘因,比如,X1、X2、…、Xn,即[B=X1?X2?...?Xn]。
設X和Y是B的兩個誘因,而且還同時滿足:[X?Y=?](空集);[B=X?Y]。我們則認為B是可分解的,并且[X?Y]就是它的一種分解。如果某個B是不可分解的(即它的所有真子集都不再是其誘因了,或者說對B的所有真子集Z,都有條件概率[P(BZ)=P(B)]),我們就稱該事件為素事件。
若Y、Y1、Y2都是B的誘因,并且[Y1?Y2=?](空集);[Y=Y1?Y2],我們則認為B的誘因Y是可分解的,并且[Y1?Y2]就是它的一種分解。如果誘因Y是不可分解的(即它的所有真子集都不再是B的誘因了),我們就稱該誘因Y為B的素誘因。如果誘因Y的所有子集Z,都不再是Y自己的誘因了,我們就稱Y為元誘因,或形象地稱為“穴位”。
定理4(事件分解定理):對任意給定的事件B,都可以判斷出其是否是可分解的,如果是可分解的,也可以找到它的某種分解。
證明:由于系統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已經是不可分解的了,則有m=1,B=Y1。
假設B是可以分解的,且Y是B分解后的一個誘因。如果Y已經是B的素誘因了,則可以取Y1=Y;如果Y還可以再分解,則再對Y的某個誘因進行分解。如此反復,直到最終找到一個不能再被分解的素誘因,請將它記為Y1。
仿照上面分解B的過程,來試圖分解B\Y1,便可以找出B的不能再被分解的素誘因Y2。
再根據B\([Y1?Y2])的分解,便可得到Y3。
最終,當這個分解過程結束后,全部的Yi就已經構造出來了。證畢。
有了上面各定理的準備后,我們現在就可以給出如下的有限系統A的經絡圖算法步驟。
第0步:針對系統A的不安全事件D。
第1步:利用定理2,將D分解成一些互不相容的不安全素事件[B1?B2?...?Bm],這里對任意的i和j(i,j=1,2,…,m)都有Bi是不安全素事件并且[Bi?Bj=?](空集)。在繪制經絡圖時,可以從左至右,按照[P(Bi)]的遞減順序排列。
第2.i步(i=1,2,…,m):利用定理5,把第1步中所得到的Bi分解成若干Bi的素誘因,在繪制經絡圖時,可以從左至右,對Bi的素誘因,按照其發生概率大小值的遞減順序排列。為避免混淆,我們將所有第2步獲得的素誘因,稱為第2步素誘因。這些素誘因中,有些可能已經是元誘因(穴位)了。
第3.i步(i=1,2,…, m):針對第2步所獲得的每個不是元誘因(穴位)的素誘因,利用定理5,將其進行分解,由此得到的素誘因,稱為第3步素誘因(這些誘因的從左到右的排列順序也與前幾步相似)。這些素誘因中,有些可能已經是元誘因(穴位)了。
……
第k.i步(i=1,2,…, m):針對第k-1步所獲得的不是元誘因(穴位)的每個素誘因,利用定理5,將其進行分解,由此得到的素誘因,稱為第k步素誘因(這些誘因的從左到右的排列順序也與前幾步相似)。這些素誘因中,有些可能已經是元誘因了。
由于上面各步驟的每次分解,都是針對真子集進行的,所以這種分解的步驟不會無窮進行下去,即一定存在某個正整數,比如N,使得在第N.i步(i=1,2,…, m)中,針對第N-1步所獲得的不是元誘因的每個素誘因,利用定理5,將其進行分解,由此得到的素誘因全部都已經是元誘因(穴位)了(每一個素誘因下面的元誘因排列順序,也是采用了概率從大到小進行)。
將上面的分解步驟結果,用圖形表述出來,我們便得到了有限系統A的不安事件“經絡圖”,由于它的外形很像一棵倒立的樹,所以我們也稱這為“經絡樹”,如圖1所示。
現在我們就比較清楚,該如何頭痛醫足了:實際上,只要系統A“病”了,就一定能夠從系統A的完整經絡圖中找出某個“生病的子經絡圖”M,使得(1)M的每層素誘因或元誘因(穴位)都是病的;(2)除了M之外,系統A的經絡圖的其他部分都沒病。為了治好該病,只需要將M中的所有元誘因(穴位)的病治好就行了,即只需要對這些元誘因(穴位)扎針灸就行了。(說明:這里某個第k步誘因病了,指它的至少一個第k+1步誘因發生了;而如果某個第k步誘因的全部第k+1步誘因都沒有發生,那么這個第k步誘因就沒病!除了元誘因(穴位)之外,M中的其它非元誘因是可以自愈的!)
更具體地說,頭痛醫足的過程是:首先將最底層,比如第N層的元誘因(穴位)治好,第N-1層的素誘因就自愈了;然后,再扎針灸治好第N-1層的元誘因(穴位),第N-2層的素誘因就自愈了;然后,再扎針灸治好第N-3層的元誘因(穴位),如此繼續,最終到達頂層,就可以了。
經絡圖的用途顯然不僅僅是用來頭痛醫足,它還有許多其他重要應用,比如:
(1)只要守住所有相關的元誘因(穴位),系統A就安然無恙。
(2)同理,只要所有炮火瞄準相關元誘因(穴位),那么就能夠穩準狠地打擊對手。
(3)除了元誘因(穴位)之外,經絡圖中平均概率值大的“經絡”是更脆弱的經絡(即安全“木桶原理”中的短板),也是在系統安全保障中需要重點保護的部分,同時也是攻擊過程中重點打擊的部分。
(4)平時就可繪制和補充經絡圖,在關鍵時刻就可以排上用場了!
3 結束語
仙農在研究信息論時,雖然發現了信道容量的上限值,但是他沒能給出如何才能達到該上限值,從而使全世界通信界的科學家們在過去60余年里,設計各種編碼方法來努力逼近仙農界,至今沒有成功。
與此相似,文章中雖然證明了有限系統的安全經絡圖是存在的,但是并未給出如何針對具體的系統,來繪制其安全經絡圖。估計未來的學者們也不得不花費巨大的精力,針對具體系統來繪制具體的經絡圖。
必須指出:繪制經絡圖絕非易事。想想看,為了繪制人體經絡圖,中醫界的祖先們奮斗了數千年!如今我們也需要很長時間才能繪制出網絡空間安全經絡圖。