姚君 李宏
中國電子科技集團公司第五十四研究所 河北 050081
組合公鑰CPK(Combined Public Key,CPK)算法,以很小的資源,生成大規(guī)模密鑰,為認證系統(tǒng)的芯片化、代理化創(chuàng)造了條件。橢圓曲線組合公鑰密鑰管理體制是離散對數(shù)難題型的、基于標識的密鑰生成與管理的體制。依據(jù)離散對數(shù)難題的數(shù)學原理構(gòu)建公開密鑰與私有密鑰矩陣,采用雜湊函數(shù)與密碼變換將實體的標識映射為矩陣的行坐標與列坐標序列,用以對矩陣元素進行選取與組合,生成數(shù)量龐大的由公開密鑰與私有密鑰組成的公鑰、私鑰對,從而實現(xiàn)基于標識的大規(guī)模密鑰的生產(chǎn)與分發(fā)。
基于標識的CPK認證體制不需要第三方證明、不需要數(shù)據(jù)庫的在線支持,將所有認證任務分散到各網(wǎng)絡節(jié)點,在規(guī)模性、可行性、運行效率上具有無法比擬的優(yōu)勢,特別適合在傳輸網(wǎng)絡中應用。
本文基于CPK設計并實現(xiàn)了網(wǎng)絡安全認證系統(tǒng)。
如圖1所示,基于CPK的傳輸網(wǎng)絡安全認證包括以下部分:離線的CPK密鑰生成中心、廢棄節(jié)點列表、CPK簽名/驗證、CPK密鑰交換和對稱密鑰加/解密。其中,密鑰生成中心和廢棄節(jié)點列表完成傳輸網(wǎng)絡中CPK密鑰的管理功能;CPK簽名/驗證、CPK密鑰交換和對稱密鑰加/解密完成傳輸網(wǎng)絡中數(shù)據(jù)的安全傳送功能。
圖1 基于CPK的網(wǎng)絡安全認證功能組成圖
(1) 信息傳輸網(wǎng)絡中CPK密鑰的管理
CPK密鑰管理體制中密鑰的生成是集中式的,全網(wǎng)設立離線的密鑰生成中心,通過為每個要進入網(wǎng)絡的節(jié)點ID進行散列、行映射和列置換運算,生成私鑰證書。為了減少在路由建立過程中傳遞證書的開銷,在網(wǎng)絡初始化時將私鑰證書和公鑰矩陣分發(fā)給每個節(jié)點。這樣在路由建立過程中發(fā)送信息的節(jié)點只需要用自己的私鑰簽名,而不用傳遞證書。接收節(jié)點從本地的公鑰矩陣中根據(jù)對方的ID查找對應公鑰就可以完成認證。
網(wǎng)絡運行過程中,每個節(jié)點都維護一個廢棄節(jié)點列表,用以存放可信度量模塊認為不可信或無效節(jié)點的ID。節(jié)點可信性的動態(tài)管理依靠廢棄節(jié)點列表來完成,如果接收到數(shù)據(jù)包的ID包含在廢棄節(jié)點列表中,則該數(shù)據(jù)包不能通過驗證。
(2) 基于CPK的安全認證機制
傳輸網(wǎng)絡中,采用基于CPK的數(shù)字簽名、驗證機制實現(xiàn)節(jié)點之間鄰居發(fā)現(xiàn)消息的安全傳送,保證數(shù)據(jù)傳輸?shù)耐暾院驼鎸嵭?,并完成路由協(xié)議對等體之間的認證,基于CPK的數(shù)據(jù)簽名機制見圖2:數(shù)據(jù)包發(fā)送前,首先進行安全散列,并使用該節(jié)點ID對應的私鑰進行簽名運算,生成簽名數(shù)據(jù),附在數(shù)據(jù)包中發(fā)送到對端。節(jié)點接收到數(shù)據(jù)包后,首先取出數(shù)據(jù)包中攜帶的節(jié)點ID,并使用廢棄節(jié)點列表檢驗該ID的有效性。對于有效節(jié)點,根據(jù)其ID在公鑰矩陣中映射出公鑰,對收到數(shù)據(jù)包中的簽名數(shù)據(jù)進行驗證運算。不能通過驗證的節(jié)點ID要反饋到可信度量模塊。
圖2 基于CPK的數(shù)字簽名機制
為了防止網(wǎng)絡拓撲等重要信息在傳輸過程中的泄露,信息傳輸網(wǎng)絡中采用對稱密鑰加密機制實現(xiàn)節(jié)點間路由控制信息的安全發(fā)送/接收。采用基于CPK的密鑰協(xié)商技術(shù),實現(xiàn)節(jié)點之間會話密鑰的協(xié)商,基于CPK密鑰協(xié)商過程見圖3。通信雙方分別產(chǎn)生自己的種子密鑰,并發(fā)送到對方。雙方各自利用自己的私鑰和對方的公鑰,對種子密鑰進行運算計算出會話密鑰?;贑PK的密鑰協(xié)商過程中不在網(wǎng)絡中傳遞會話密鑰,而是通信雙方通過本地計算得到,保證了密鑰傳遞的安全性。而且密鑰協(xié)商只需要一次信息交互,適合在帶寬受限的傳輸網(wǎng)絡中應用。
圖3 CPK密鑰協(xié)商過程
擬實現(xiàn)的系統(tǒng)中,認證服務器是核心,提供了系統(tǒng)的主要服務:賬戶管理、DHCP響應、信息管理、注冊管理、對等體管理、認證數(shù)據(jù)庫維護。其功能和使用場景如圖4所示。
圖4 系統(tǒng)總體描述
該系統(tǒng)支持一次登錄認證通過后,即可在全網(wǎng)內(nèi)任何地方接入網(wǎng)絡進行使用,無需再次登錄認證。
原來設備每更換一個位置就要進行一次登錄認證,無法做到即插即用,即一次登錄認證。即插即用控制軟件系統(tǒng)如圖1所示,接入用戶無論是固定PC機還是移動設備,在第一次登錄認證后,在客戶端未關(guān)閉的情況下,一段時間內(nèi)可以不用在進行繁瑣的登錄認證,一旦接入網(wǎng)絡即可進行使用。
如圖5所示,原型系統(tǒng)的傳輸層包括四個子功能:會話管理子功能、消息分析子功能、應用核心子功能、ACE傳輸管理子功能。ACE傳輸管理層是基于ACE網(wǎng)絡通信架構(gòu)實現(xiàn)的,主要功能是和客戶端以及對等體保持連接狀態(tài)、消息的路由和遞交。該層位于應用核心層和ACE層之間,屏蔽了上下兩層,不給任何應用提供接口,僅僅是被應用核心層調(diào)用。應用核心層對于通信用的認證協(xié)議而言,包含了所有的通信數(shù)據(jù)和初始終止服務的中心倉庫,是一個基于堆結(jié)構(gòu)的存儲器,對外部提供接口。會話管理的職責在于使用協(xié)議庫的客戶/服務器認證應用存儲和保持會話。每個含有消息的應用都必須通過會話管理才能進行傳遞。會話管理是基于線程池結(jié)構(gòu)完成的。每個會話都包含一個job隊列,在線程池中串行執(zhí)行。消息分析用來分析消息,包括報文頭和有效負荷,其中有效負荷部分由屬性值對組成。
圖5 原型系統(tǒng)邏輯結(jié)構(gòu)圖
傳輸層主要功能是提供可靠的、安全的通信,在傳輸層上的是兩個應用分別是:即插即用服務器端應用、客戶端應用。客戶端的人機交互界面為用戶提供登錄、注冊、發(fā)送消息以及應用接口。應用接口包括傳感器接口、無人機接口、衛(wèi)星接口等。三種應用接口是客戶端與服務器建立連接后,發(fā)送數(shù)據(jù)、圖片以及視頻流。在交互層下是DHCP子功能、以及客戶端活躍子功能。DHCP子功能在客戶端登錄時工作,將用戶的登錄信息以及DHCP請求信息傳輸?shù)较乱粚拥南⒎庋b層,然后監(jiān)聽等待服務器的應答,服務器根據(jù)登錄信息進行認證授權(quán)進而響應,客戶端根據(jù)不同響應進行不同的操作。如果認證授權(quán)失敗,通過界面顯示提示信息。成功則將本地的IP地址設為分配的IP。客戶端活躍子功能目的是在服務器保持客戶端的活躍記錄,從而為服務器分配IP以及即插即用等功能提供數(shù)據(jù)支持。消息封裝解析層主要功能是提供與傳輸層提供接口,向下封裝發(fā)送數(shù)據(jù)、向上接收解析消息。
服務器端的人機交互界面為管理員提供賬戶管理、信息管理、注冊管理、對等體管理以及應用接口。管理員分為超級管理員和普通管理員,超級管理員有全部的權(quán)限,可以增刪管理員,對用戶注冊信息進行操作(批準或是刪除),以及對已注冊的用戶權(quán)限進行更改。普通管理員只有查看信息,發(fā)送信息,應用功能。應用功能允許服務器偵聽客戶端的連接請求,連接后接收數(shù)據(jù)、圖片以及視頻流等。在交互層下是DHCP子功能、認證授權(quán)子功能、數(shù)據(jù)庫維護子功能。DHCP子功能和認證子功能在服務器端軟件啟動時就開始偵聽客戶端的DHCP請求,收到請求后服務器查詢數(shù)據(jù)庫核對用戶信息,如果正確則進行認證授權(quán),并將DHCP獲得的動態(tài)IP以及認證子功能返回的權(quán)限信息向下發(fā)送,通過消息封裝/解析層封裝發(fā)送給客戶端。數(shù)據(jù)庫維護子功能包括對上層用戶操作的支持,以及根據(jù)偵聽的消息信息對數(shù)據(jù)庫進行及時地更新。服務器端對應客戶端的活躍維護,偵聽活躍信息,并及時更新數(shù)據(jù)庫中相應的表項,這些表項是用來判斷數(shù)據(jù)庫中已有的用戶是否在線的標準。根據(jù)這些信息來判斷哪些用戶的IP應該收回。消息解析封裝層與客戶端的一樣,主要是提供上下接口。
傳輸層使用的認證協(xié)議主線程主要功能是協(xié)調(diào)認證協(xié)議中使用到的其他所有線程,主要職責有:
負責為每一個激活的對等連接繁殖線程,既為連接請求,也為接受請求?;诔晒B接的線程繁殖行為將保持一樣,不論底層傳輸是使用TCP 還是SCTP負責維護線程池,線程池給會話管理提供一個負載平衡執(zhí)行環(huán)境給所有內(nèi)部定時需求提供全局定時器服務每個對等實體線程的責任是維護對等實體的狀態(tài)機、發(fā)送和接收認證消息及維護對等實體表和其他建立認證對等實體連接所必需的功能。由于連接的所有權(quán)傳給了對等實體線程,它就必須負責斷連接或者處理從遠端實體來的斷連接事件。由于每個對等實體線程有一個內(nèi)建的消息隊列,它就必須不斷監(jiān)視該消息隊列和已建立的連接,然后根據(jù)這些消息源傳來的消息,執(zhí)行相應的動作。會話線程池可以方便會話管理中使用負載平衡。除了對等實體連接上的任務,所有其他必需的認證協(xié)議行為將由這個線程池中的一個線程執(zhí)行。線程池由一個線程的集合組成,這些線程不斷監(jiān)視一個工作請求隊列。工作請求隊列由一個互斥鎖保護,使任意時刻只有一個線程從隊列中提取工作請求。工作請求隊列中的條目含有特定的工作指令和數(shù)據(jù),即解析消息、查找會話且切換會話的狀態(tài)機、調(diào)用特定消息的處理函數(shù)等。
在應用層中的客戶端而言主要包括三個線程,分別是:DHCP線程、Alive線程、Receive線程。DHCP線程用于在發(fā)出DHCP請求后偵聽服務器的DHCP響應,并根據(jù)響應的結(jié)果進行相應的操作。Alive線程定時向服務器發(fā)送活躍信息,表明用戶在線,從而不斷地更新認證服務器數(shù)據(jù)庫中的用戶表中的活躍時間項,服務器將根據(jù)該項來判斷用戶的活躍度。Receive線程主要用于偵聽來自服務器端的消息,并將偵聽到的消息存儲到本地數(shù)據(jù)庫中,并提示用戶消息更新。
在服務器端中主要線程有:DHCP線程、Clear線程、Refresh線程、Receive線程。DHCP線程用戶偵聽客戶端的DHCP請求,偵聽到請求后,根據(jù)請求信息中包含的用戶信息查詢認證服務器中的用戶表。信息核對正確后從IP地址池中獲得一個可用的IP分配給該用戶,并在數(shù)據(jù)庫中進行記錄。Refresh線程用戶偵聽客戶端的Alive消息,偵聽到Alive消息后,服務器更改用戶表中的活躍時間項。該項將被Clear線程使用。Clear線程主要是通過定時查詢數(shù)據(jù)庫中的用戶表中已分配IP地址的用戶的活躍時間項,將該項中記錄的時間與當前時間對比,如果兩者時間間隔大于規(guī)定時間,則認為該用戶已經(jīng)下線,服務器收回分配給該用戶的IP地址。Clear線程定時時間間隔大于客戶端的Alive線程的定時時間間隔,在該系統(tǒng)中,Alive線程每兩分半鐘喚醒一次,Clear線程每10分鐘喚醒一次。Receive線程用于偵聽客戶端發(fā)送的信息,包括偵聽客戶端發(fā)送的消息信息、客戶端模擬傳感器發(fā)送的數(shù)據(jù)、無人機的圖片信息、衛(wèi)星的視頻流。Receive線程偵聽到后進行相應的處理。
基于標識的CPK認證體制不需要第三方證書、不需要數(shù)據(jù)庫的在線支持,將所有認證任務分發(fā)到各網(wǎng)絡節(jié)點,在規(guī)模性、可行性、運行效率上具有無法比擬的優(yōu)勢,特別適合在傳輸網(wǎng)絡中應用。本文設計并實現(xiàn)了一個基于CPK網(wǎng)絡安全認證系統(tǒng),達到了預期目標,使用效果良好。
[1] 汪宇光.CPK認證體制的技術(shù)特點及應用[J].電子科學技術(shù)評論.2005.
[2] 李欣,吳旭東.基于CPK認證技術(shù)的移動安全接入系統(tǒng).武漢理工大學學報[J].2011.
[3] 張毅,陳文星.基于CPK的Ad-hoc網(wǎng)絡身份認證方案.微計算機信息[J].2009.