數(shù)據(jù)獨(dú)立技術(shù)在CSP協(xié)議模型中的設(shè)計(jì)
1996年,Lowe首先使用通信順序進(jìn)程CSP和模型檢測技術(shù)分析NSPK(Needham-Schroeder Public Key)協(xié)議,并成功發(fā)現(xiàn)了協(xié)議中的一個(gè)中間人攻擊行為。隨后,Roscoe對CSP和FDR(Fallures-Divergence Refinenent)的組合做了進(jìn)一步研究,認(rèn)為CSP方法是形式分析安全協(xié)議的一條新途徑。事實(shí)證明,CSP方法對于安全協(xié)議分析及發(fā)現(xiàn)安全協(xié)議攻擊非常有效。但是類似FDR的模型檢測通常受NONce、Key等新鮮值大小的限制,而在實(shí)際執(zhí)行中所需的數(shù)據(jù)值比這大得多。使用數(shù)據(jù)獨(dú)立技術(shù)使結(jié)點(diǎn)能夠調(diào)用無限的新鮮值以保證實(shí)例無限序列的運(yùn)行。本文將研究Roscoe這些理論,對CSP協(xié)議模型進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),從而解決有限檢測的問題。
本文引用地址:http://cafeforensic.com/article/155601.htm 1 CSP協(xié)議模型
在CSP模型中,協(xié)議參與者被表示為CSP的進(jìn)程(process),消息被表示為事件(event),進(jìn)而協(xié)議被表示為一個(gè)通信順序進(jìn)程的集合。
CSP協(xié)議模型由一些可信的參與者進(jìn)程和入侵者進(jìn)程組成,進(jìn)程并行運(yùn)行且通過信道交互。以NSPK協(xié)議為例。該協(xié)議的CSP模型包括兩個(gè)代理(初始者a,響應(yīng)者b)和一個(gè)能執(zhí)行密鑰產(chǎn)生、傳送或認(rèn)證服務(wù)的服務(wù)器s,它們之間通過不可信的媒介(入侵者)通信,所以存在四個(gè)CSP進(jìn)程.
Initiator a的CSP進(jìn)程描述如下:
響應(yīng)者b與服務(wù)器s也有著相似的描述。
攻擊者進(jìn)程被描述為:
2 數(shù)據(jù)獨(dú)立技術(shù)
數(shù)據(jù)獨(dú)立技術(shù)是本論文的關(guān)鍵技術(shù).它起源于Lazic的數(shù)據(jù)獨(dú)立研究。
2.1 一般的數(shù)據(jù)獨(dú)立分析
如果一個(gè)進(jìn)程P對于類型T沒有任何限制,則P對于T類型是數(shù)據(jù)獨(dú)立的。此時(shí),T可以被視為P的參數(shù)。
通常,數(shù)據(jù)獨(dú)立分析是為以類型T為參數(shù)的驗(yàn)證問題發(fā)現(xiàn)有限閾值。如果對于T的閾值,可以驗(yàn)證系統(tǒng)成立,則對于所有較大的T值也可以驗(yàn)證系統(tǒng)成立。這點(diǎn)對于很多問題都是成立的。
安全協(xié)議模型中的許多特征都可以被視為數(shù)據(jù)獨(dú)立實(shí)體。常見的key、nonce可以作為模型中進(jìn)程的參數(shù)。
對依賴nonce和密鑰(和依賴協(xié)議的其他簡單數(shù)據(jù)對象)惟一性的安全協(xié)議進(jìn)行的閥值計(jì)算,主要是發(fā)現(xiàn)進(jìn)程存儲量的閾值,并不能直接解決驗(yàn)證的局限性,也就不能直接應(yīng)用于安全協(xié)議模型。
2.2 Roscoe的數(shù)據(jù)獨(dú)立技術(shù)
上節(jié)證明了一般目標(biāo)的數(shù)據(jù)獨(dú)立結(jié)果不適用于安全協(xié)議分析。所以Roscoe對這些結(jié)果進(jìn)行推論。發(fā)展了數(shù)據(jù)獨(dú)立技術(shù)。本節(jié)將介紹幾條對課題研究具有重要理論意義的推論。
(1)基本原則
對一般數(shù)據(jù)獨(dú)立分析結(jié)果進(jìn)行推論所基于的基本原則也是證明數(shù)據(jù)獨(dú)立理論最重要的方法。即對進(jìn)程P的參數(shù)類型T應(yīng)用Conapsint函數(shù)φ建立映射關(guān)系,證明映射前P(T)的行為經(jīng)過函數(shù)轉(zhuǎn)換,是P(φ(T))行為的子集。
對于安全協(xié)議主要研究進(jìn)程的跡??梢院苤庇^地發(fā)現(xiàn)如果Collapsing函數(shù)φ是單映射的(T的所有成員被映射為不同值),并應(yīng)用于進(jìn)程P的參數(shù)類型T上(P對于T數(shù)據(jù)獨(dú)立),則因?yàn)門的所有成員被映射為不同值,所以映射前的行為等價(jià)于映射后的行為,如式(1)所示:
如果使用的Collapsing函數(shù)φ為非單映射函數(shù),則有可能改變等價(jià)測試結(jié)果,產(chǎn)生不等式(2):
該不等式只適用于變量,對于程序中的常量,情況有所不同。因此提出下面兩個(gè)條件:
PosConjEqT(Positive Conjunetions of Equality teSTs)條件由Lazic提出,該條件可以使變量使用
非單映射函數(shù)的進(jìn)程再度滿足等式(1)。
對于常量雖然不能重新滿足等式(1),但可滿足不等式(3):
協(xié)議的某些方面可能并不滿足PosConjEqT條件,如代理進(jìn)程可能需要執(zhí)行擁有常量(例如名字)的不等式測試。因此,針對常量集C定義PosConjEqT′c條件如下:
如果進(jìn)程P對于常量集C滿足下列條件,則稱進(jìn)程P滿足PosConjEqT′c條件。該條件滿足PosConjEqT條件,但與PosConjEqT條件的不同之處是:對于至少包含常量集C一個(gè)成員的等價(jià)測試,P可能擁有non-STOP結(jié)果。
評論