周海濤,古 平,張 鋒
(重慶大學 計算機學院,重慶 400044)
單點登錄(single sign on,SSO)[1-3]是在多個應用系統(tǒng)中用戶只需要登錄1次就可以訪問所有相互信任的應用系統(tǒng),即1次登錄,多方認證,多次訪問。該技術雖然出現不久,但是其發(fā)展卻極為迅速。目前,SUN公司的Liberty就是運用單點登錄比較成熟的方案。
軍事指揮信息系統(tǒng)是對部隊軍事訓練、作戰(zhàn)、管理、保障等各種軍事工作軟件系統(tǒng)的統(tǒng)稱,主要功能是搜集處理情報信息,優(yōu)化管理作戰(zhàn)資源,進行信息融合和識別融合,輔助軍事指揮員、指揮機關進行決策和部署,指導作戰(zhàn)部隊行動[4-5]。軍事指揮信息系統(tǒng)對信息化條件下部隊指揮、作戰(zhàn)效能的提高極其重要。單點登錄的突出優(yōu)勢是具備高度統(tǒng)一的認證授權體系,可有效減少用戶操作多個系統(tǒng)反復登錄時所耗費的時間,同時能增加安全性??梢?,在軍事信息系統(tǒng)實現單點登錄,解決多個應用系統(tǒng)之間的信息壁壘問題,已成為提升部隊信息化建設水平的重要環(huán)節(jié)之一。
SSO就是安全上下文或憑證在多個應用系統(tǒng)之間的傳遞或共享。當用戶登錄系統(tǒng)時,客戶端軟件根據用戶的憑證(例如用戶名和密碼)為用戶建立一個安全上下文。安全上下文包含用于驗證用戶的身份信息,系統(tǒng)用這個安全上下文和安全策略來判斷用戶是否具有訪問系統(tǒng)資源的權限。
單點登錄的實現原理如圖1所示[6]:① 用戶要操作一個系統(tǒng)(系統(tǒng)1)時,首先要通過用戶名、密碼等個人信息進行申請;申請后,首先被導引至認證系統(tǒng),并向認證系統(tǒng)發(fā)出一個ticket(含用戶名、密碼等身份信息),將用戶身份信息映射至認證系統(tǒng)的用戶信息庫。②根據用戶提供的身份信息,認證系統(tǒng)進行校驗。若通過認證系統(tǒng)校驗,返回給用戶一個認證的憑據——ticket,允許用戶對系統(tǒng)進行操作使用。③用戶再訪問別的應用(如系統(tǒng)2)時,不需要再通過登錄用戶名、密碼等個人信息,系統(tǒng)會自動將前面的ticket帶上,作為認證的憑據。應用系統(tǒng)收到請求,會把ticket發(fā)到認證系統(tǒng)進行校驗,檢查ticket的合法性。如果通過校驗,用戶就可以訪問系統(tǒng)2或系統(tǒng)n等應用系統(tǒng)。
圖1 單點登錄實現原理
目前,單點登錄的常見模型有基于經紀人、基于代理、基于網關和基于令牌4種,優(yōu)缺點:① 基于經紀人的模型的優(yōu)點是實現了身份認證數據的集中管理,減小了管理代價;缺點是要想實施部署,就要改造服務端使其適應單點登錄的系統(tǒng)要求,兼容現有系統(tǒng)時需要的開發(fā)量增加。②基于代理(Agent-based)的模型的優(yōu)點是能夠保證通道安全和單點登錄,可實施性和靈活性較強;缺點是用戶登錄憑證要在本地存儲,口令容易泄漏。③基于令牌(Token-Based)的模型的優(yōu)點是能夠實現雙向認證,安全性較高;缺點是要在應用系統(tǒng)上增加新組件,開發(fā)量大,且管理員負擔較重。④對于基于網關(Gateway-based)的模型,由于現有的網絡環(huán)境要求較嚴,且需要企業(yè)適應它,所以其應用范圍不廣。上述模型都是比較粗略的架構,缺乏具體指導,尤其是后2種模型,實現難度大,操作性不強,僅能作為軍事信息指揮系統(tǒng)實現SSO的模型構造的參考。
實踐發(fā)現,部隊各種應用系統(tǒng)由于開發(fā)完成的時期不同,各自的功能側重、設計方案和開發(fā)技術均有不同,形成了各自獨立的用戶庫和用戶認證體系,操作、管理互不兼容、互不統(tǒng)一,形成了很強的“信息壁壘”,難以達成信息共享、左右聯(lián)動、整體一致的效果。突出表現為:①訪問控制上,機關各業(yè)務部門都有獨立的系統(tǒng)軟件,相互間及向各級首長進行消息傳遞主要靠人工,效率較低;②操作使用上,在登錄多個系統(tǒng)時要記憶不同的用戶名和口令,需要大量不同的人員操作、管理和維護各個系統(tǒng),操作使用的成本較高;③安全保密上,由于系統(tǒng)繁多和互不統(tǒng)屬,且傳遞信息大量靠U盤、移動硬盤、書面等載體,全時空監(jiān)管的難度大,軍事信息被泄漏和非法截獲、破壞的可能性增加。
根據上述研究和分析,實現SSO的需求是:①有一個所有應用系統(tǒng)能夠共享的身份認證系統(tǒng),支持單點登錄,實現操作、管理的簡便;認證系統(tǒng)應含有軍事指揮員、指揮機關參謀人員的用戶信息庫,用戶信息主應包含用戶姓名、單位、職務、崗位、密碼等主要信息。②面向部隊各種應用系統(tǒng)主要包括部隊綜合信息網,一體化指揮平臺,310文電系統(tǒng),偵察情報系統(tǒng)和兵員、油料、被裝、給養(yǎng)、裝備、彈藥管理系統(tǒng)。③認證系統(tǒng)能將用戶的登錄信息和用戶信息庫相比較,對用戶進行身份認證。認證成功后,認證系統(tǒng)能夠生成一個統(tǒng)一的認證標志ticket返還給用戶;另外,認證系統(tǒng)還能夠對ticket進行校驗,判斷其有效性。④ 所有應用系統(tǒng)都能夠識別和提取ticket信息。用戶登錄時,讓應用系統(tǒng)通過與認證系統(tǒng)的通訊自動判斷當前用戶是否登錄過,從而完成單點登錄的功能。⑤盡可能地立足現有系統(tǒng)的身份認證模塊和用戶、權限設置,避免對現有系統(tǒng)進行大規(guī)模的修改。⑥一旦有新軟件被開發(fā)部署,這個統(tǒng)一身份認證服務能夠以其認證模塊的形式工作,自動生成授權結果并傳遞給應用系統(tǒng)的授權執(zhí)行模塊。⑦能確保軍事信息的高度安全。
鑒于上述SSO模型存在一定的缺陷,有人提出了基于經紀人加代理的整合模型(broker-agentbased,BA-based)。在應用服務器前加認證代理軟件,當客戶端通過認證以后,并不立即向授權服務器申請應用服務的服務票據,而是請求訪問資源時,由代理軟件檢查并轉發(fā)向授權服務申請。顯然,該模型能夠較大程度解決基于經濟人和基于代理單個模型存在問題,滿足軍事信息指揮系統(tǒng)實現單點登錄的需求,其優(yōu)勢是:用SSO服務器進行身份認證數據的集中管理;用認證代理軟件在保證通道安全的同時,解決基于經濟人模型改造服務端開發(fā)量大的問題,可實施性和靈活性較強;特別是,該模型通過票據許可票(ticket granting ticket,TGT)和應用服務票(service ticket,ST)進行驗證,能夠較好地解決部隊各崗位對各應用系統(tǒng)訪問權限不同的問題。如對于綜合信息網,所有官兵均可訪問,而其他應用系統(tǒng),僅指揮員、指揮機關甚至相關業(yè)務單位才有權訪問。
但是,該模型在應用服務器前加認證代理軟件,仍存在用戶憑證的口令容易泄漏導致信息不安全的問題。針對這一問題,本文采用SSL協(xié)議、數字簽名技術對該模型進行改進和優(yōu)化。根據BA-Based模型和SSL協(xié)議、數字簽名技術,對軍事信息指揮系統(tǒng)實現SSO的模型進行構建,如圖2所示。
2.2.1 軍事信息指揮系統(tǒng)BA-Based SSL-SSO模型的組成與功能說明
如圖2所示,系統(tǒng)由一個支持SSL協(xié)議、數字簽名技術的SSL客戶端(提供認證服務),一個支持SSL、數字簽名技術由SSL認證服務器(提供認證和授權服務)、SSL認證代理系統(tǒng)和SSL應用服務器組成的安全域構成。
1)SSL客戶端。它支持SSL協(xié)議、數字簽名技術,通過Web的方式,提供單點登錄的登錄、注銷、驗證服務和全局會話安全管理、用戶信息安全管理等。用戶通過一種門戶導入的信息組件Login Portlet提供身份憑證后,SSL客戶端通過SSL的握手協(xié)議與SSL認證服務器進行雙方身份的交叉驗證并取得公鑰,同時,通過數字簽名技術將用戶信息加密成數字證書形式,并傳送到認證中心進行身份驗證,驗證獲得TGT。會話過程中,SSL客戶機和SSL服務器通過SSL進行雙方身份的交叉驗證并取得私鑰,傳輸數據采用在握手協(xié)議中建立的密鑰和算法的方法進行加密。
2)SSL認證服務器。它支持SSL協(xié)議、數字簽名技術,提供單點登錄服務。所有關于單點登錄的登錄、注銷、憑證有效性驗證、全局會話安全管理、用戶信息存儲管理等操作,都由它來完成。
3)SSL認證代理系統(tǒng)。它支持SSL協(xié)議、數字簽名技術,充當認證服務器和應用系統(tǒng)之間的“翻譯”,采用過濾器方式實現認證代理,降低開發(fā)難度。SSL認證代理系統(tǒng)可單獨部署,也可與應用系統(tǒng)(具有獨立的認證和授權)部署在1臺服務器上。根據部隊各應用服務器分布點多面廣的實際,采用后者可有效降低成本。
4)SSL應用服務器。它支持SSL協(xié)議、數字簽名技術,主要包含部隊現有的綜合信息網等。
SSL協(xié)議主要提供對計算機之間整個會話進行加密、驗證客戶機和服務器、確保信息的完整性等服務。數字簽名技術主要提供對數據信息進行電子編碼服務,確保用戶認證的安全。
2.2.2 軍事信息指揮系統(tǒng)BA-based SSL-SSO總體架構設計
根據上述模型的組成與功能,設計總體架構,如圖3所示。
圖3 軍事信息指揮系統(tǒng)BA-Based SSL-SSO總體架構
各組成部分都支持SSL協(xié)議、數字簽名技術。其中,新建SSL認證授權系統(tǒng)作為認證授權模塊,提供統(tǒng)一的認證授權服務接口。認證服務直接調用單點登錄認證模塊,驗證用戶登錄的身份信息與用戶憑證庫中的信息是否匹配,并反饋授權信息。目錄服務庫包含用戶信息庫、憑證信息庫、資源信息庫、權限信息庫。用戶信息庫、憑證信息庫都應包含官兵的姓名、單位、職務、崗位、密碼;資源信息庫應包含各系統(tǒng)資源的性質、密級和訪問權限;權限信息庫應包含官兵根據自身職務、崗位所具備的對各系統(tǒng)資源的訪問權限。
2.2.3 安全套接層(secure sockets layer,SSL)協(xié)議的功能與實現
SSL協(xié)議是1994年底由Netscape首先引入的一種基于Web的安全通信標準,它位于應用層和傳輸層之間,有2層協(xié)議。底層協(xié)議是SSL紀錄協(xié)議。高層協(xié)議有3個:握手協(xié)議、更改密碼規(guī)格協(xié)議和警告協(xié)議,它能夠在用戶與服務器之間進行加密通信,鑒別網站和網頁瀏覽者身份,主要目的就是要解決Web上信息傳輸的安全問題[7-8]。因此,軍事信息指揮系統(tǒng)實現SSO并采用SSL協(xié)議,其功能及實現如下:
1)對計算機之間整個會話進行加密。建立連接過程使用非對稱密鑰(公開密鑰),每一個連接都建立1個唯一的會話密鑰;在會話過程使用對稱密鑰(私鑰),客戶機和服務器之間的傳輸數據使用在握手協(xié)議中建立的密鑰和算法進行加密,防止被人改動和竊聽。
2)驗證客戶機和服務器??蛻魴C和服務器各自都有識別號,SSL用RSA(非對稱加密算法)驗證服務器,用公鑰編排,使得用戶能夠確信數據將被發(fā)送到正確的服務器上。為了驗證客戶身份,SSL協(xié)議要求在握手交換數據時使用數字認證,保護用戶的合法性。
3)確保信息的完整性。加密數據采用消息認證代碼(MAC算法,如MDS、SHA等)進行完整性檢驗。在數據傳輸過程中,采用Hash函數和機密共享算法,使數據能準確完整地到達目的地。
2.2.4 數字簽名技術的功能與實現
用戶認證是一個最基本的安全問題。在實際應用中,SSL主要采取基于客戶端證書的驗證方式,對用戶ID和密碼加密,為驗證過程提供數據加密、服務器端認證、信息真實性等安全保證,防止客戶的驗證請求在網路的某一節(jié)點(比如認證代理軟件系統(tǒng))被截獲和竊聽。采取這種驗證方式,Web服務器將通過客戶端提供的數字簽名(即數字證書)驗證用戶的身份。數字證書采用公鑰體制,每個用戶用自己的私鑰進行解密和簽名,同時用公鑰來加密和驗證簽名。當發(fā)送一份保密文件時,發(fā)送方使用對方的公鑰加密數據,接收方則使用自己的私鑰解密,這樣信息就可以安全準確到達目的地了。同時,通過HASH算法計算得出一個固定位數的報文摘要,使得報文只要改動其中一位,重新計算出的報文摘要值就會與原先的值不相符,這樣就保證了報文的不可更改。
軍事信息指揮系統(tǒng)實現SSO并采用數字簽名技術,可以在保證軍事信息高度安全的基礎上,達到簽名文件的可信性、簽名文件的不可改動、簽名的不可偽造、簽名的不可重用、簽名的不可抵賴等目的[9],進一步促進部隊信息保密工作的有效落實。
2.2.5 軍事信息指揮系統(tǒng)BA-Based SSL-SSO的工作流程
綜上所述,用戶通過Login Portlet向SSL客戶端登錄身份信息后,其工作流程主要是:
1)SSL客戶端通過SSL的握手協(xié)議與SSL認證服務器進行雙方身份的交叉驗證并交換密鑰,取得公鑰。
2)SL客戶端通過數字簽名技術將用戶信息加密成數字證書形式,并通過Web方式將其傳送到認證中心進行身份驗證,驗證獲得TGT。
3)SSL認證服務器進行身份驗證,即將數字證書與目錄數據庫的用戶信息進行匹配。驗證通過后,SSL認證服務器向SSL客戶端發(fā)送TGT。只有擁有TGT的用戶才具有進入安全域的權限。
4)用戶請求訪問一臺SSL應用服務器時,請求首先被傳向SSL認證代理系統(tǒng)。
5)SSL認證代理系統(tǒng)對該請求進行檢查。首先檢查其是否包含合法的TGT。若包含,再檢查該請求是否包含訪問該應用服務器的ST。如果TGT和ST都具備,則將該請求發(fā)送給應用服務器;如果ST不存在,則將該請求轉發(fā)給授權服務器,向其申請訪問該服務器的ST。
6)申請成功后,授權服務器傳回服務票并重新執(zhí)行步驟3),認證代理軟件檢查通過便獲得訪問權限,將請求發(fā)送給應用服務器。若TGT或ST不合法和過期,則拒絕提供服務。
7)被授權訪問應用服務器的資源。
8)訪問開始,SSL客戶端通過SSL的握手協(xié)議與SSL服務器進行雙方身份的交叉驗證并交換密鑰、取得公鑰。
9)訪問過程中,通過在握手中建立的密鑰和算法,對整個會話進行加密保護。
通過對單點登錄技術可解決軍事信息指揮系統(tǒng)簡便、互通、安全、可靠的問題,強化軍事指揮平臺建設“縱向集成、橫向聯(lián)通”、“內合外聯(lián)”的水平,有效提升部隊信息化條件下聯(lián)合作戰(zhàn)的效能??梢灶A見,單點登錄技術在軍事信息指揮系統(tǒng)中的實現,必將推進部隊的信息化建設。
[l]金輝.Single Sign-On單點登錄技術談 [EB/OL].[2011-12-12].URL:http//:www-128.ibm.com/developerworks/cn/securit/se-sso/index.html.
[2]郭磊,余文森.基于SAML的安全資源統(tǒng)一管理三層單點登錄模型[J].重慶理工大學學報:自然科學版,2011,25(8):78-83.
[3]李國勇,陳蜀宇,高崢.Web服務中的跨應用單點登錄[J].重慶理工大學學報:自然科學版,2011,25(2):68-73.
[4]齊昀.信息化條件下作戰(zhàn)指揮控制系統(tǒng)的建設[J].四川兵工學報,2011(12):99-100.
[5]張少兵.聯(lián)合作戰(zhàn)信息化指揮系統(tǒng)的建設[J].四川兵工學報,2010(3):57-59.
[6]Stephen Withall.軟件需求模式[M].北京:機械工業(yè)出版社,2001.
[7]陳性元,楊艷,任志宇.網絡安全通信協(xié)議[M].北京:高等教育出版社,2004.
[8]秦冠英.基于網絡安全的DOS攻防分析[J].自動化與儀器儀表,2011(1):99-100.
[9]王鳳英,程震.網絡與信息安全[M].北京:中國鐵道出版社,2006.