謝云開+廖建華+徐曉晗
摘 要:軟件系統模塊間的消息傳遞關系到系統安全。提出一種解決模塊間消息安全可靠傳遞的軟件設計方法,研究模塊間消息傳遞機制,對傳遞的消息進行結構化;解決消息傳遞過程中模塊認證、消息完整性和機密性以及消息訪問控制等問題;最終抽象出一個結構化消息傳遞模型,用以指導實現高安全級別的軟件系統,以達到軟件模塊間消息傳遞的安全需求。
關鍵詞:訪問控制;可信認證;消息傳遞;系統安全
DOIDOI:10.11907/rjdk.172021
中圖分類號:TP301
文獻標識碼:A 文章編號:1672-7800(2017)007-0033-03
0 引言
隨著軟件工程和面向對象技術的發展,軟件模塊化程度越來越高,從操作系統軟件到應用系統軟件都采用大量的模塊化設計。一方面使開發的軟件具有清晰的結構,更利于理解;另一方面,提高了軟件代碼的復用和軟件排錯的效率。模塊之間的消息傳遞是軟件系統的神經,通過消息傳遞將各個功能模塊連接成有機的系統。因此,模塊間的消息傳遞在當前軟件系統中起著舉足輕重的作用,傳遞各種重要的數據信息和控制信息。從另外一方面來說,消息傳遞也是系統安全的一個脆弱環節,如果沒有行之有效的安全措施,將會給系統帶來嚴重的安全威脅,主要體現在:
(1)功能模塊之間消息傳遞時缺少必要的模塊身份認證。當前大部分軟件系統,在開發設計時并沒有將功能模塊間的相互認證考慮在內,甚至是操作系統服務模塊也不具備認證功能。一方面,導致模塊間的調用關系混亂,影響進程的權限管理;另一方面,非授權的模塊得以運行,給終端帶來安全風險。
(2)軟件設計階段模塊間的調用指令和數據缺乏完整性和機密性保護,調用指令和參數缺乏校驗機制,容易導致調用指令被篡改,傳遞的消息數據被竊取、偽造或者篡改。在現實應用中,直接表現在各種“鉤子”橫行,各種病毒、木馬和間諜軟件大都是利用系統存在的安全漏洞,通過掛接“鉤子”,截獲用戶行為或者截取重要信息,給系統安全帶來嚴重危害。比如,通過鍵盤“鉤子”,可以截獲用戶的擊鍵動作,進而可以盜取用戶重要的密碼信息。
(3)應用系統要正常運行,需要在各功能模塊之間甚至終端之間傳遞各種消息,對傳遞消息的訪問控制是應用系統安全的重要方面。缺少對傳遞消息的訪問控制易導致模塊之間非法信息流的存在,主要體現在越權操作、高敏感級別的信息傳遞到低級別的用戶以及通過存在安全漏洞的系統攻擊操作系統或者其它應用系統。
系統安全在軟件設計階段就要充分考慮,軟件系統模塊間的消息傳遞關系到系統安全。本文提出一種解決模塊間消息安全可靠傳遞的軟件設計方法。研究模塊間消息傳遞機制,對傳遞的消息進行結構化,解決消息傳遞過程中模塊認證、消息的完整性和機密性以及消息的訪問控制問題,抽象出結構化消息傳遞模型,實現高安全級別的軟件系統,滿足軟件模塊間消息傳遞的安全需求。
1 模型概述
模塊化設計的軟件系統都是由功能相對獨立的模塊組成,模塊間存在相互調用的指令,傳遞各種數據,這些指令和數據信息統稱為消息,可見消息是將軟件模塊組織成有機整體的紐帶。模塊范疇也可以進一步一般化,指實際組成軟件系統的功能模塊,也可以指運行于計算機內的進程,甚至可以擴展至獨立的終端。本文研究對象是消息以及傳遞消息的實體——模塊,
提出一種軟件設計模型,用于解決模塊間消息傳遞的安全可靠問題。首先,用于消息傳遞的模塊雙方都需要進行認證,只有安全可信的模塊才能建立消息傳遞,以防止非法的模塊建立連接進行破壞,保證源頭的安全可信;其次,模塊之間傳遞的消息需要進行完整性和機密性保護,防止消息在傳遞過程中被惡意篡改、竊聽和偽造,保證消息能安全地從源傳遞到最終接受模塊,保證消息傳遞路徑的安全可信;最后,提出設計模型,具有消息訪問控制機制,一方面防止越權操作,保證消息按訪問控制策略傳遞,可以保證控制消息的單向傳遞,防止對TCB模塊的攻擊。
2 模型層次結構
為了實現上述安全目標,本文提出一種稱之為結構化的消息傳遞模型,模型充分考慮消息傳遞的安全性,采用分層設計的思想,從下至上分為傳輸層、可信認證層和安全控制層三層結構,如圖1所示。每層功能獨立、各司其職,在邏輯上模塊相同功能層對應,且都具有與功能相對應的協議體系。
2.1 傳輸層
傳輸層位于結構化消息傳遞模型的最下層,負責模塊之間消息的物理傳遞,與業務邏輯分開,并不關心上層的具體業務信息,主要任務是把上層業務相關的消息安全無差別地傳遞到對端模塊,所以傳輸層的核心功能是保證消息傳遞的機密性和完整性,防止消息在傳遞過程中被惡意篡改或者竊聽,帶來安全隱患。因此傳輸層的功能具體體現在以下兩個方面:①傳輸協議,協商消息傳遞的方式,包括算法和密鑰,保證模塊之間消息順利傳遞而又能保證其安全性;②協商確定消息傳遞方式之后具體的消息傳遞服務,流程為發送端傳輸層接收上層信息,按照協定的方式進行封裝,并發送到接收端,接收端通過逆過程將接收的消息進行解封裝,并返回給上層,從而保證消息在傳遞環節的安全。
2.2 可信認證層
在消息傳輸層保證傳輸環節安全的基礎之上,設置可信認證層。模型可信認證層位于傳輸層上,主要實現消息傳輸模塊的互相認證,防止非法模塊接入系統,同時也能防止通過攻擊合法的模塊進行中間人攻擊。在設計實現時需要考慮以下內容:①在首次消息傳遞機制建立時需要認證模塊雙方的身份信息,只有通過認證消息傳遞通道才能建立;②在后續消息傳遞過程中,發送端需要確認接收消息的模塊是經過認證的合法模塊,才允許將消息發送出去,并在發送過程中在發送消息中加入發送端的身份信息;最后,接收端模塊在收到消息時,對消息源進行驗證,只有源頭合法的消息才能接收并上傳到更上一層。
2.3 訪問控制層
位于模型最上面的是訪問控制層,訪問控制層與應用密切相關,具有與應用相關的語義信息,依據安全策略對消息傳遞進行安全控制,只有符合安全策略的消息才允許進行傳遞,而拒絕與安全策略沖突的消息流。訪問控制層裁決的消息流數據依次往下層傳遞,先到可信認證層,進行認證并封裝身份認證信息;然后再傳遞到傳輸層,對消息進行加密保護,發送到接收端模塊。
3 模型工作流程
結構化消息傳遞模型工作流程如圖2所示,模塊A發送消息至模塊B的工作流程,可以分為以下6個步驟:
(1)模塊A對發送給模塊B的消息,依據訪問控制策略進行訪問控制,拒絕非法信息流,對合法的信息流進行封裝,加入與訪問控制相關的上下文信息,并將封裝后的信息流發送到可信認證層。
(2)發送端可信認證層驗證接收端模塊B的身份是否合法,同樣拒絕將消息發送給非可信接收模塊,并對發送的信息流進行簽名封裝,然后發送到傳輸層。
(3)發送端傳輸層使用協商好的方式將信息流進行加密處理,然后發送給接收端模塊對應的傳輸層。
(4)接收端傳輸層將收到的加密處理的信息流進行解密處理,并提交給可信認證層。
(5)可信認證層對接收到的信息流發送源進行驗簽認證,只有驗證合法的消息流才進一步提交給訪問控制層,否則拒絕接收。
(6)接收端訪問控制層依據安全策略以及附加于信息流上的上下文信息進行訪問控制決策。
以上描述的是結構化消息傳遞模型發送消息的工作流程。
4 模型形式化描述
為了更好地對模型進行分析,本節對提出的結構化消息傳遞模型進行形式化。
定義1:基本變量。
M表示模塊需要發送的原始消息集合,包括控制指令也包括數據信息;Acon表示訪問控制上下問信息,比如主客體標記信息;Mac表示具有訪問控制上下文的消息集合,指訪問控制層與可信認證層傳遞的消息,且Mac=M×Acon;Tcon表示可信認證相關的信息,比如模塊完整性信息、身份信息等;Mcert表示具有可信認證信息的消息集合,指在可信認證層與傳輸層之間傳遞的消息結構,且Mcert=Mac×Tcon=M×Acon×Tcon;Menc表示在發送端及接收端的傳輸層傳遞的消息結構,指被密碼算法處理過的消息結構;P表示安全策略集合。
定義2:模塊定義。Lac表示功能模塊的訪問控制層;Lcert表示功能模塊的可信認證層;Lenc表示功能模塊的加密傳輸層;C表示傳遞消息的主體——功能模塊的集合,且C=Lac×Lcert×Lenc。
定義3:功能函數定義。
模塊訪問控制層的功能函數主要包括訪問控制函數和消息封裝函數,訪問控制函數fac∈Fac:M×P→{true,false},訪問控制函數依據訪問控制策略對消息進行判決。訪問控制層的消息封裝函數是將訪問控制上下文信息封裝成消息頭與原始的消息數據共同構成訪問控制層的消息結構eac∈Eac:M×Acon→Mac,訪問控制層消息封裝的逆函數是在接收端將接收到的消息進行解封裝,得到原始消息數據和訪問控制上下文信息,訪問控制上下文信息隨消息數據一起傳遞,因此可以實現細粒度的訪問控制,逆函數e-1ac∈E-1ac:Mac→M×Acon。模塊可信認證層的功能函數也包括可信認證函數以及可信認證層消息封裝及解封函數,可信認證函數用于認證接收的消息是否從合法模塊傳遞而來,fcert∈Fcert:Mac×Tcon→{true,false};可信認證層的封裝函數用于將可信認證相關的信息封裝到訪問控制消息之上,發送到對端的可信認證層進行模塊可信認證,封裝函數ecert∈Ecert:Mac×Tcon→Mcert,以可信認證信息作為消息頭與訪問控制層的消息進行封裝,得到可信認證層消息結構;可信認證層封裝函數的逆函數是解封裝函數,是用于處理接收消息流的,e-1cert∈E-1cert:Mcert→Mac×Tcon,解封之后得到的Mac上傳給訪問控制層,Tcon用于驗證消息的可信。模塊傳輸層的主要功能是對消息進行加密處理并發送,或者接收消息然后再解密處理。加密函數fenc∈Fenc:Mcert→Menc,解密函數f-1enc∈F-1enc:Menc→Mcert。
5 結語
本文為解決模塊間消息傳遞的安全可靠問題,提出了一種結構化的消息傳遞模型。對軟件設計中模塊間的消息傳輸、模塊接入的可信認證、模塊對消息的訪問控制等進行了全面的模型抽象及描述。該模型對實現高安全級別的軟件系統具有指導意義。
參考文獻:
[1] 李毓才,小谷誠剛,毛文波,等.可信安全體系架構原理與實踐[J].網絡安全技術與應用,2009,12:27-37.
[2] 湯永新,劉增良.軟件可信性度量模型研究進展[J].計算機工程與應用,2010,46(27):12-16.
[3] 任魁,王普,李亞芬.信息系統中一種訪問控制的實現策略[J].計算機安全,2009,9:41-44.
[4] 周彬,劉連衷.多維授權對象RBAC模型的設計與實現[J].蘭州理工大學學報,2005,31(2):77-80.
[5] 梅宏,曹東剛.軟件可信性:互聯網帶來的挑戰[J].中國計算機學會通信,2010,6(2):58-61.
[6] GB/T 16260.1-200X.軟件工程產品質量[S].質量模型.ISO/IEC 9126-1:2001.
[7] 張秀娟,魏書光,夏建川.數據壓縮安全傳輸模型[J].華中科技大學學報:自然科學版,2004,32(9):1-5.