基于擴(kuò)展uml的輕量級(jí)安全協(xié)議形式化驗(yàn)證方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)以及計(jì)算機(jī)安全領(lǐng)域,特別涉及一種安全交換協(xié)議的公平 性以及不可否認(rèn)性的驗(yàn)證。
【背景技術(shù)】
[0002] UML(Unified Modeling Language)(即統(tǒng)一建模語(yǔ)言)是當(dāng)前應(yīng)用十分廣泛的一 種可視化建模語(yǔ)言,為軟件開(kāi)發(fā)各個(gè)階段提供了模型和可視化的支持,實(shí)際上業(yè)已成為面 向?qū)ο蟮姆治龊驮O(shè)計(jì)中的工業(yè)標(biāo)準(zhǔn)。UML為開(kāi)發(fā)人員的系統(tǒng)設(shè)計(jì)提供了豐富的建模元素, 但是模型元素之間缺乏準(zhǔn)確的語(yǔ)義約束,使得最終模型往往出現(xiàn)不一致、二義性等問(wèn)題,且 UML缺乏有效的推理機(jī)制和完善的模型檢查能力,不便于使用工具對(duì)其描述的規(guī)約進(jìn)行動(dòng) 態(tài)分析和驗(yàn)證。在使用UML描述一些安全攸關(guān)的軟件或系統(tǒng)時(shí),UML缺乏精確語(yǔ)義、不夠精 煉、存在二義性、正確性難以驗(yàn)證等問(wèn)題使軟件系統(tǒng)引入新的缺陷。雖然目前有不少方法采 用形式化的方法來(lái)對(duì)UML模型進(jìn)行語(yǔ)義上的約束并驗(yàn)證,但形式化方法較為復(fù)雜,軟件工 程師不能通過(guò)簡(jiǎn)單的學(xué)習(xí)來(lái)使用這些形式化方法。
[0003] 因此,UML提供了一些擴(kuò)展機(jī)制允許設(shè)計(jì)者定義并擴(kuò)展模型元素的語(yǔ)義,它們主要 包括約束(Constraint)、標(biāo)記值(Tagged Values)與構(gòu)造型(Stereotype),而這些擴(kuò)展最 終可以形成一個(gè)特定的輪廓(Profile)。除此之外,對(duì)象管理組織(OMG)提出了對(duì)象約束語(yǔ) 言(OCL),對(duì)模型元素之間的約束關(guān)系進(jìn)行了形式化定義。
[0004] 為了解決這個(gè)問(wèn)題,本專利提出了 UML的輕量級(jí)形式化框架,并基于該框架實(shí)現(xiàn) 了基于擴(kuò)展UML的安全協(xié)議形式化驗(yàn)證方法。在此基礎(chǔ)上,本專利設(shè)計(jì)并實(shí)現(xiàn)了安全協(xié)議 形式化驗(yàn)證平臺(tái),完成UML模型向形式化模型的自動(dòng)轉(zhuǎn)換,并集成了驗(yàn)證工具對(duì)安全屬性 進(jìn)行驗(yàn)證。本專利的研究?jī)?nèi)容能夠更好的輔助軟件工程師和安全領(lǐng)域?qū)<以谑褂肬ML的同 時(shí)使用形式化方法驗(yàn)證系統(tǒng)相關(guān)的安全特性,并支持使用工程化的方法來(lái)驗(yàn)證安全協(xié)議的 安全屬性,保證協(xié)議的安全性。
[0005] 形式化方法從廣義上來(lái)講是借助數(shù)學(xué)方法來(lái)解決軟件工程領(lǐng)域的問(wèn)題,如建立數(shù) 學(xué)模型及對(duì)模型進(jìn)行分析等,從狹義上講主要是運(yùn)用形式化語(yǔ)言進(jìn)行形式化描述、模型推 理和驗(yàn)證。形式化方法可以分為形式化描述以及建立在描述基礎(chǔ)之上的形式化驗(yàn)證。由于 形式化方法是基于嚴(yán)格數(shù)學(xué)理論的,產(chǎn)生精確且無(wú)二義性的形式規(guī)約,因此可以給軟件開(kāi) 發(fā)提供嚴(yán)格的數(shù)學(xué)基礎(chǔ),對(duì)于提高軟件的可靠性有著顯著作用。將UML與形式化方法的結(jié) 合對(duì)于保證軟件質(zhì)量,提高軟件可靠性具有十分重大的意義。目前比較常用的形式化方法 有Z語(yǔ)言、CSP方法等。
[0006] 近30年來(lái),許多研究者嘗試整合面向?qū)ο蠼<夹g(shù)和形式化建模技術(shù),以達(dá)到同 時(shí)獲取兩者的優(yōu)點(diǎn)的目的。目前,UML的形式化大體上可以分為以下兩種技術(shù)(1)轉(zhuǎn)換UML 模型到形式化模型;(2)為UML圖提供一種抽象語(yǔ)法并為之直接定義一種形式化語(yǔ)義。第 一種模型轉(zhuǎn)換的方法能夠利用現(xiàn)有的數(shù)學(xué)推理和證明工具來(lái)幫助模型分析人員對(duì)形式模 型進(jìn)行分析,自動(dòng)化程度高。
[0007] 安全協(xié)議又叫做密碼協(xié)議,它通過(guò)規(guī)定一些事先約定好的規(guī)則,保證在計(jì)算機(jī)網(wǎng) 絡(luò)和分布系統(tǒng)中兩個(gè)或者多個(gè)主體之間消息的傳遞和處理的安全性。安全協(xié)議廣泛應(yīng)用于 銀行及電子商務(wù)系統(tǒng),協(xié)議存在的漏洞足以破壞依賴于它的系統(tǒng)的安全性。安全協(xié)議在設(shè) 計(jì)中很容易出錯(cuò),且其執(zhí)行過(guò)程具有高度不可確定性,因此安全協(xié)議的分析往往需要借助 一些形式化方法來(lái)提供更高層次的保證。近年來(lái),安全協(xié)議的形式化驗(yàn)證方法及工具已經(jīng) 越來(lái)越多,如ProVerif、AVISPA及NRL等工具已在安全協(xié)議的分析上被廣泛使用,但這些形 式化的方法及工具的使用及分析過(guò)程需要領(lǐng)域安全專家參與,軟件工程師們并不能通過(guò)簡(jiǎn) 單的學(xué)習(xí)就能應(yīng)用這些方法,使用難度較大。
[0008] 為了解決這個(gè)問(wèn)題,已有不少研究將UML與形式化方法結(jié)合,使用UML簡(jiǎn)明清晰的 性質(zhì)進(jìn)行安全協(xié)議模型的描述,并利用形式化方法嚴(yán)謹(jǐn)、可驗(yàn)證的特點(diǎn)來(lái)對(duì)模型的安全性 質(zhì)進(jìn)行驗(yàn)證。目前UML與形式化結(jié)合的方法主要是將表示UML模型的各種圖轉(zhuǎn)化到基于不 同形式化規(guī)范語(yǔ)言的形式模型,如將UML的類圖、狀態(tài)圖、時(shí)序圖等模型形式化為CSP、應(yīng)用 P1演算、Z或者ObjectZ,并結(jié)合自動(dòng)化推理工具,如定理證明、模型檢測(cè)等進(jìn)行驗(yàn)證。
[0009] 通過(guò)對(duì)UML方法與形式化方法的深入研究,分析當(dāng)前已有的各種UML與形式化結(jié) 合方法的優(yōu)勢(shì)和不足,提出了基于UML的輕量形式化框架。
【發(fā)明內(nèi)容】
[0010] 為了克服上述現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明提出了一種基于擴(kuò)展UML的輕量級(jí)安全協(xié) 議形式化驗(yàn)證方法,利用一種基于UML的輕量形式化框架,實(shí)現(xiàn)了安全協(xié)議的形式化驗(yàn)證; 通過(guò)對(duì)UML模型元素到應(yīng)用P1演算之間轉(zhuǎn)化的映射規(guī)則,以此為基礎(chǔ)完成了 UML模型向形 式化模型的自動(dòng)轉(zhuǎn)換,并驗(yàn)證了安全協(xié)議的私密性和認(rèn)證性。
[0011] 本發(fā)明提出了一種基于擴(kuò)展的UML模型為框架的安全協(xié)議形式化驗(yàn)證方法,該方 法包含以下步驟:
[0012] 依據(jù)安全協(xié)議相關(guān)的數(shù)據(jù)類型、密碼原語(yǔ)和函數(shù)、全局變量、協(xié)議主體的相關(guān)信息 和安全屬性建立UML模型,至少包括類圖模型和時(shí)序圖模型;
[0013] 對(duì)UML模型進(jìn)行擴(kuò)展,分別定義類圖模型的擴(kuò)展規(guī)則和時(shí)序圖模型的擴(kuò)展規(guī)則;
[0014] 形式化模型的生成,包括XMI格式UML模型解析和匹配推理規(guī)則制定,其中:XMI 格式UML模型解析的步驟是將輸入XMI文件解析為UML模型元素,為生成形式化模型作準(zhǔn) 備;匹配推理規(guī)則的步驟制定是服務(wù)于轉(zhuǎn)化推理引擎,通過(guò)制定UML元素與形式化模型元 素的映射關(guān)系,利用推理規(guī)則與轉(zhuǎn)化推理引擎,完成形式化模型的自動(dòng)生成;
[0015] 將XML文件向P1演算模型轉(zhuǎn)化,包括進(jìn)程定義部分轉(zhuǎn)化、子進(jìn)程轉(zhuǎn)化以及主進(jìn)程 轉(zhuǎn)化,其中:
[0016] 所述進(jìn)程定義部分轉(zhuǎn)化將類圖模型中的構(gòu)造型定義的內(nèi)容,結(jié)合時(shí)序圖中添加的 消息元素類型集合,轉(zhuǎn)化成類型、變量、密碼原語(yǔ)與函數(shù)及安全屬性等進(jìn)程定義內(nèi)容,自動(dòng) 構(gòu)建進(jìn)程定義部分;
[0017] 所述子進(jìn)程轉(zhuǎn)化分析類圖中〈〈Participator?、〈〈Global?、 〈〈Cryptographic?、〈〈Confidentiality?構(gòu)造型描述的協(xié)議參與者信息、全局變量、密碼 原語(yǔ)及私密性驗(yàn)證操作信息,并結(jié)合時(shí)序圖中參與者對(duì)應(yīng)的對(duì)象在生命線上的所有消息及 消息中元素類型的標(biāo)記值集合,制定匹配規(guī)則與轉(zhuǎn)換方法,完成應(yīng)用P 1演算模型的子進(jìn)程 定義的轉(zhuǎn)化,將擴(kuò)展的UML模型轉(zhuǎn)化為應(yīng)用P1演算模型;
[0018] 所述主進(jìn)程轉(zhuǎn)化將實(shí)例化多個(gè)特定參數(shù)的子進(jìn)程定義來(lái)表示不同協(xié)議會(huì)話中不 同角色的協(xié)議參與者,并在公共信道發(fā)布共享消息,將UML擴(kuò)展模型轉(zhuǎn)化為主進(jìn)程定義部 分,需要分析擴(kuò)展類圖模型中每一個(gè)構(gòu)造型為〈〈Participator?的類,每個(gè)類給出了一個(gè) 特定角色的協(xié)議參與者子進(jìn)程的相關(guān)靜態(tài)信息。
[0019] 并利用擴(kuò)展后的形式化驗(yàn)證工具Proverif對(duì)生成的形式化模型進(jìn)行安全屬性的 驗(yàn)證。
[0020] 與現(xiàn)有技術(shù)相比,本發(fā)明預(yù)計(jì)可以達(dá)到如下有益效果:
[0021] 1、采用標(biāo)準(zhǔn)的UML擴(kuò)展方式,定義安全協(xié)議領(lǐng)域元素,用工程化的協(xié)議表達(dá)方式 表達(dá)協(xié)議過(guò)程,避免了復(fù)雜建模過(guò)程,降低了建模難度;
[0022] 2、通過(guò)擴(kuò)展的UML模型,結(jié)合知識(shí)推理方法完成ProVerif規(guī)格的應(yīng)用Pi演算模 型的自動(dòng)構(gòu)建,保證建模領(lǐng)域的安全特性,克服了形式化建模的復(fù)雜性;
[0023] 3、成ProVerif工具完成驗(yàn)證,基于正則表達(dá)式分析驗(yàn)證結(jié)果,便于模型驗(yàn)證與精 化;
[0024] 綜上所述,本發(fā)明具有模型直觀、建模方法簡(jiǎn)單、協(xié)議表達(dá)自然分析、利于模型檢 測(cè)和精化等特點(diǎn)。
【附圖說(shuō)明】
[0025] 圖1為安全交換協(xié)議模型檢測(cè)平臺(tái)總體架構(gòu)設(shè)計(jì);
[0026] 圖2為消息{{pkB, k} skB} pkA樹(shù)形結(jié)構(gòu)圖;
[0027] 圖3為NS公鑰協(xié)議的擴(kuò)展UML類圖模型圖;
[0028] 圖4為NS公鑰協(xié)議的擴(kuò)展UML時(shí)序模型圖;
[0029] 圖5為NS公鑰協(xié)議的XMI格式類圖模型解析的用戶界面圖
[0030] 圖6為NA被攻擊者獲得的路徑圖;
[0031] 圖7為NB被攻擊者獲得的路徑圖;
[0032] 圖8為NS公鑰協(xié)議的認(rèn)證性不能滿足的攻擊路徑圖。
【具體實(shí)施方式】
[0033] 下面將結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行詳細(xì)描