孫韓林,劉建華
(1.西安郵電大學計算機學院 西安 710121;2.西安郵電大學信息中心 西安 710121)
隨著信息網(wǎng)絡技術的發(fā)展,人們使用的信息服務越來越多,這需要用戶記憶大量的認證信息(如賬號、密碼等),給用戶帶來極大的不便。統(tǒng)一身份認證 (unified identifier authentication)可實現(xiàn)“一次登錄,多處訪問”,消除了用戶記憶大量認證信息的負擔。標準化組織,如ITU-T(International Telecommunications Union TelecommunicationStandardization Sector,國際電信聯(lián)盟遠程通信標準化組織)、自由聯(lián)盟、OASIS(Organization for the Advancement of Structured Information Standards,結構化信息標準促進組織)、IETF(Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務組)、ETSI(European Telecommunications Standards Institute,歐洲電信標準化協(xié)會)等,都在進行統(tǒng)一身份認證研究。美國、韓國和日本等信息技術發(fā)達國家紛紛提出各自的身份認證戰(zhàn)略。我國也成立了全國信息安全標準化技術委員會鑒別與授權工作組,推動身份識別和授權技術的研究和發(fā)展。
ITU-T將統(tǒng)一身份認證定義為 “是對一實體聲稱的標識為真提供證明,并實現(xiàn)單點登錄”,“實體可以為真人、動物、法律人、組織、主動或被動之物、設備、軟件應用、服務等或上述個體的組合”[1]。ITU-T全球兼容身份管理的功能需求包括:身份信息的管理、身份信息的關聯(lián)、身份信息的認證、身份信息的發(fā)現(xiàn)與橋接、身份信息的傳輸、身份信息的審計與追蹤和身份信息的擴展[2]。其中,“身份信息的發(fā)現(xiàn)與橋接”是實現(xiàn)可互操作的分布式身份管理的關鍵,它指在一個擁有大量游牧用戶和身份提供商的分布式公共網(wǎng)絡中發(fā)現(xiàn)并使用新的身份服務。參考文獻[3]提出了一種基于行政區(qū)劃的層次式統(tǒng)一身份認證服務網(wǎng)絡模型。該模型中,若某個服務節(jié)點發(fā)生故障,則整個身份服務網(wǎng)絡將會被分裂,導致部分服務不可用。其次,層次式網(wǎng)絡的身份服務發(fā)現(xiàn)過程也較繁瑣。
對等網(wǎng)絡(peer-to-peer,P2P)是一種構建在IP網(wǎng)絡之上的應用層覆蓋網(wǎng)絡,具有良好的可擴展性、頑健性、自組織、部署和維護成本低等特點,常用于文件共享。基于P2P搜索機制,也可實現(xiàn)分布式信息的發(fā)現(xiàn)。參考文獻[4]用P2P網(wǎng)絡實現(xiàn)Web服務的發(fā)布與發(fā)現(xiàn)。參考文獻[5]提出一種雙層P2P結構的物聯(lián)網(wǎng) ONS(object name service,對象名字服務)網(wǎng)絡模型,ONS也是一種信息發(fā)現(xiàn)服務。統(tǒng)一身份服務網(wǎng)絡也可用P2P模型進行組織,利用P2P搜索機制實現(xiàn)服務的發(fā)現(xiàn)與定位。
基本的P2P網(wǎng)絡結構分為無結構網(wǎng)絡和結構化網(wǎng)絡。無結構網(wǎng)絡通常采用泛洪法進行搜索,代價大,適用于小規(guī)模網(wǎng)絡組織;結構化網(wǎng)絡則可利用網(wǎng)絡拓撲信息進行快速搜索且代價小,其缺點是拓撲結構維護的開銷較大。結構化網(wǎng)絡的主流技術是分布式散列表 (distributed hash table,DHT),Chord協(xié)議是DHT技術的典型代表。本文基于結構化Chord網(wǎng)絡提出一種統(tǒng)一身份服務網(wǎng)絡模型。
DHT的基本思想是通過一致性散列函數(shù)把系統(tǒng)中的節(jié)點(node)和數(shù)據(jù)(data)都映射到ID空間的一個唯一標識,即 NodeID=Hash(Node),DataID=Hash(Data)。所有節(jié)點將ID空間分割成若干子空間,每個節(jié)點負責一個子空間,數(shù)據(jù)存儲在負責DataID所在子空間的節(jié)點上。Chord網(wǎng)絡中所有節(jié)點按其NodeID大小順時針排列成一個環(huán),每個節(jié)點負責存儲DataID小于自身NodeID但大于自身前驅(qū)節(jié)點NodeID的數(shù)據(jù)對象。每個節(jié)點維護有一張含有m項(m是ID的位數(shù))信息的路由表,節(jié)點M的路由表的第i項表示順時針方向與節(jié)點M的距離至少為2i-1的第一個節(jié)點,即每個表項指向的節(jié)點到當前節(jié)點的距離是指數(shù)遞增的,每一步路由能將當前查詢節(jié)點與目標節(jié)點間的距離縮短至少一半。在一個有N個節(jié)點的Chord網(wǎng)絡中,查詢請求的平均跳數(shù)為O(lb N),但同時,當有節(jié)點加入或離開時,環(huán)中需要更新路由信息的節(jié)點數(shù)也為O(lb N)[6]。
按角色可將統(tǒng)一身份服務網(wǎng)絡的參與者分為身份服務提供商(identification service provider,ISP)、應用服務提供商(application service provider,ASP)和普通用戶(client)。身份服務提供商實現(xiàn)身份管理的各種功能需求,如身份注冊、關聯(lián)、認證、審計和追蹤等。應用服務提供商提供某種類型的應用服務,支持普通用戶以自己的統(tǒng)一身份訪問,它需要訪問某個ISP,對訪問用戶的統(tǒng)一身份進行認證。普通用戶需要發(fā)現(xiàn)所需的某種應用服務,并以自己的統(tǒng)一身份訪問該服務。因此,身份服務網(wǎng)絡所要實現(xiàn)的關鍵功能之一就是服務(身份服務或應用服務)的發(fā)現(xiàn)與定位。
身份服務網(wǎng)絡的所有參與者都具有一個唯一的統(tǒng)一身份,使服務的發(fā)現(xiàn)處理一致。統(tǒng)一身份從身份管理機構獲得,身份管理機構保證統(tǒng)一身份標識的唯一性。身份服務網(wǎng)絡的服務發(fā)現(xiàn)具體描述如下。
(1)身份認證時,應用服務提供商根據(jù)訪問用戶的統(tǒng)一身份查找該身份的注冊身份服務提供商。
(2)應用服務查詢時,普通用戶根據(jù)服務關鍵詞(service keyword)查找所需的服務。一個服務往往有多個關鍵詞,為了減小信息冗余,將服務關鍵詞與服務統(tǒng)一身份綁定,將服務統(tǒng)一身份與服務相關信息綁定,服務查詢分兩步完成,即先根據(jù)服務關鍵詞查詢服務統(tǒng)一身份,再根據(jù)統(tǒng)一身份查詢服務信息。
(3)身份服務是一種特殊的服務,普通用戶或應用服務注冊統(tǒng)一身份時也需要先根據(jù)服務關鍵詞查詢身份服務。因而,基于P2P的統(tǒng)一身份服務網(wǎng)絡可分為兩個邏輯獨立的P2P網(wǎng)絡——“服務查詢網(wǎng)絡”(service querying network,SQN)“身份查詢網(wǎng)絡 ”(identifier querying network,IQN),如圖 1所示。SQN實現(xiàn)服務關鍵詞到服務統(tǒng)一身份的映射,IQN實現(xiàn)統(tǒng)一身份到身份相關信息的映射。
節(jié)點的頻繁加入和退出會造成DHT網(wǎng)絡不穩(wěn)定,極大地增加維護代價。用戶(普通用戶和應用服務提供商)只有在需要服務發(fā)現(xiàn)或認證時短暫地訪問身份服務網(wǎng)絡。身份服務發(fā)現(xiàn)應視為身份服務提供商應該提供的一種功能,而且由于服務的性質(zhì),ISP會一直處于在線工作狀態(tài)(故障除外)。為了避免網(wǎng)絡的波動,減小網(wǎng)絡拓撲維護開銷,限定只有身份服務提供商參與組成結構化的P2P身份服務網(wǎng)絡。SQN和IQN都是由身份服務提供商組成的Chord環(huán)。身份服務提供商提供代理服務,作為用戶接入身份服務網(wǎng)絡的入口,應用服務提供商或普通用戶可以選擇某個身份服務提供商作為自己的接入代理。
服務查詢網(wǎng)絡存儲有服務關鍵詞與服務提供商統(tǒng)一身份的綁定關系,用戶可根據(jù)服務關鍵詞從這個網(wǎng)絡中查詢支持統(tǒng)一身份訪問的服務的統(tǒng)一身份。DHT只支持精確的關鍵詞匹配查詢,而用戶在查詢時往往根據(jù)自己的需求用若干個關鍵詞對服務進行模糊描述。例如,用戶可能要查找離自己最近的某種服務或某個特定位置的某種服務或具有其他某種屬性的服務。因此,服務商在服務查詢網(wǎng)絡中發(fā)布自己的服務時,需要根據(jù)服務屬性抽象出多個服務關鍵詞。服務查詢網(wǎng)絡中DataID根據(jù)服務關鍵詞進行計算,這些關鍵詞可能存儲在不同的節(jié)點上。另一方面,相同類型的服務(由不同提供商提供)若恰巧選擇了相同的關鍵詞進行發(fā)布,它們將存儲在同一個節(jié)點上,查詢網(wǎng)絡要能進行區(qū)分,使這些服務都能存儲,也都能被用戶檢索。用戶查詢關鍵詞和服務發(fā)布關鍵詞由用戶和服務提供商獨立擬訂,并不完全匹配,代理在為用戶進行服務查詢時,可對用戶提供的服務關鍵詞進行智能化處理,實現(xiàn)有效查詢。
身份查詢網(wǎng)絡存儲所有統(tǒng)一身份和與身份相關聯(lián)的信息,對普通用戶而言是用戶屬性信息(如注冊ISP地址),對服務(包括應用服務和身份服務)而言是服務屬性信息(如服務地址、服務描述、服務質(zhì)量、注冊ISP地址等)。查詢根據(jù)統(tǒng)一身份進行,DataID根據(jù)統(tǒng)一身份計算。用統(tǒng)一身份進行查詢是精確的,不需要特殊處理。
不同于傳統(tǒng)的數(shù)據(jù)存儲P2P網(wǎng)絡,身份服務網(wǎng)絡(尤其是身份查詢網(wǎng)絡)中存儲的信息是動態(tài)的。例如,統(tǒng)一身份的部分屬性信息可能需要更新或增加屬性信息。身份服務網(wǎng)絡節(jié)點應能支持根據(jù)DataID進行數(shù)據(jù)讀、寫(增加)、刪除和更新等操作。
身份服務提供商和應用服務提供商注冊統(tǒng)一身份,并在身份服務網(wǎng)絡中發(fā)布統(tǒng)一身份和服務信息后才能支持用戶訪問;普通用戶要以統(tǒng)一身份訪問應用服務,也必須在ISP進行注冊,并在身份查詢網(wǎng)絡中發(fā)布統(tǒng)一身份信息。普通用戶的統(tǒng)一身份注冊及發(fā)布過程(如圖2所示)描述如下。
圖1 基于P2P的統(tǒng)一身份服務網(wǎng)絡模型
(1)普通用戶根據(jù)自己的注冊需求提煉出身份服務關鍵詞(可能有若干個),將這些關鍵詞發(fā)送給自己的服務查詢接入代理,代理在服務查詢網(wǎng)絡中查找身份服務提供商。若有多個關鍵詞,用戶可將它們同時發(fā)送給代理進行并行查找,加快搜索速度。
(2)服務查詢網(wǎng)絡根據(jù)P2P路由查詢符合條件的身份服務提供商,以列表形式返回給用戶(通過服務查詢代理)。
(3)用戶根據(jù)返回的統(tǒng)一身份在身份查詢網(wǎng)絡中查找相應身份服務提供商的詳細信息(通過身份查詢網(wǎng)絡代理)。
(4)用戶依據(jù)某種策略選擇其中一個身份服務提供商,根據(jù)它的地址訪問服務進行統(tǒng)一身份注冊。
(5)注冊成功后,用戶還要在身份查詢網(wǎng)絡中發(fā)布自己的統(tǒng)一身份信息,主要包括統(tǒng)一身份和提供該身份管理的ISP的綁定關系等。
應用服務提供商的統(tǒng)一身份注冊過程同上。此外,為了讓用戶能找到自己的服務,應用服務提供商還要在服務查詢網(wǎng)絡中發(fā)布自己的服務信息,后續(xù)步驟(如圖2所示)如下。
圖2 統(tǒng)一身份注冊流程
(6)應用服務提供商擬訂若干服務關鍵詞,并與自己的統(tǒng)一身份進行綁定。
(7)應用服務提供商將每一對綁定關系都通過代理發(fā)布到服務查詢網(wǎng)絡中。
與應用服務提供商不同,身份服務提供商自己進行統(tǒng)一身份注冊,然后在身份查詢網(wǎng)絡中發(fā)布自己的統(tǒng)一身份信息,在服務查詢網(wǎng)絡中發(fā)布自己的身份服務信息。
所有參與者注冊并發(fā)布自己的統(tǒng)一身份信息(服務還要發(fā)布服務信息)后,身份服務網(wǎng)絡支持普通用戶以自己的統(tǒng)一身份訪問在網(wǎng)絡中注冊的所有應用服務。一次完整的普通用戶以其統(tǒng)一身份訪問某應用服務的過程(如圖3所示)如下。
(1)普通用戶根據(jù)所需的服務擬定一個或多個應用服務關鍵詞,用這些關鍵詞在服務查詢網(wǎng)絡中查找支持統(tǒng)一身份訪問的應用服務的統(tǒng)一身份(通過服務查詢網(wǎng)絡代理)。
圖3 用統(tǒng)一身份訪問應用服務流程
(2)服務查詢網(wǎng)絡可能查找到若干匹配的應用服務,向用戶返回這些服務提供商的統(tǒng)一身份列表(通過代理)。
(3)用戶根據(jù)這些統(tǒng)一身份在身份查詢網(wǎng)絡中查找它們的詳細信息(通過代理),然后根據(jù)某種策略選擇其中的一個應用服務進行訪問。
(4)用戶根據(jù)該服務提供商的地址訪問應用服務。服務要求認證時,用戶把自己的統(tǒng)一身份發(fā)送給該服務。
(5)應用服務接收到用戶的統(tǒng)一身份后,根據(jù)該身份在身份查詢網(wǎng)絡中查找該身份的注冊身份服務提供商的地址。
(6)應用服務將用戶統(tǒng)一身份發(fā)送給該身份服務提供商請求認證。
(7)身份服務返回認證結果給應用服務。
(8)若認證通過,應用服務允許用戶訪問自己的服務。
P2P網(wǎng)絡具有良好的自組織性、可擴展性和頑健性。新的身份服務提供商加入身份服務網(wǎng)絡時,只需要知道已參加服務網(wǎng)絡的一個節(jié)點即可,網(wǎng)絡協(xié)議可自動完成節(jié)點路由信息的更新。當某個節(jié)點退出身份服務網(wǎng)絡時,該節(jié)點會把自己存儲的統(tǒng)一身份和服務信息轉(zhuǎn)交給其他節(jié)點,只有在該ISP注冊的用戶或服務受影響。當某個節(jié)點由于異常退出服務網(wǎng)絡時,P2P協(xié)議保證網(wǎng)絡可自愈,只有存儲在該節(jié)點上的服務信息或身份信息不可查詢 (在該ISP注冊的用戶或服務也受影響)。
基于P2P的身份服務網(wǎng)絡的查詢時延可能較大。P2P是應用層的覆蓋網(wǎng)絡,它的邏輯拓撲和物理拓撲相分離,查詢物理路徑可能很長。通過設計合理的ID空間(如包含地理位置信息),使在Chord環(huán)上鄰近的節(jié)點在物理位置上也鄰近,或在代理上對常用的身份和服務信息進行緩存,都可加快查詢速度。
應用服務提供商可能需要使用自己的認證系統(tǒng)(即整合已有的認證基礎設施)。這要求用戶在該服務提供商注冊自己的服務用戶身份。若服務提供用戶以統(tǒng)一身份進行訪問,需要對用戶的統(tǒng)一身份和服務身份進行綁定。這些綁定關系可由用戶或服務提供商管理,例如由用戶或應用服務提供商在身份查詢網(wǎng)絡中作為自己身份的屬性進行保存。當用戶以統(tǒng)一身份訪問該服務時,ASP從身份管理網(wǎng)絡獲得相應的用戶服務身份再進行認證。
服務發(fā)現(xiàn)與定位是統(tǒng)一身份服務中的關鍵問題之一。本文基于結構化的P2PChord網(wǎng)絡提出了一種新的統(tǒng)一身份服務網(wǎng)絡模型。該模型中,ISP提供身份管理需求的各種功能,并組成服務查詢和身份查詢P2P網(wǎng)絡,利用P2P的搜索機制實現(xiàn)服務的發(fā)現(xiàn)與定位,具有良好的可擴展性和頑健性。本文也討論了該模型網(wǎng)絡的體系結構、統(tǒng)一身份信息的注冊和發(fā)布、服務信息的發(fā)布,給出了普通用戶用統(tǒng)一身份訪問應用服務的流程。設計并實現(xiàn)一個實用的基于P2P的身份服務網(wǎng)絡是進一步的研究工作。
1 ITU-T X.1250.Baseline Capabilities for Enhanced Global Identity Management and Interoperability,2009
2 ITU-T.Report on Requirements for Global Interoperable Identity Management,2007
3 孫韓林,劉建華.公眾網(wǎng)絡統(tǒng)一身份認證服務及標準研究.電信科學,2013,29(2):84~88
4 孫尚,吳卿,周必水.基于P2P的語義Web服務發(fā)現(xiàn)機制.計算機工程,2009,35(11):38~40
5 羅衛(wèi)敏,熊江,應宏等.物聯(lián)網(wǎng)中基于兩層P2P結構的ONS模型.計算機工程,2012,38(12):80~83
6 張春紅,裘曉峰,弭偉等.P2P技術全面解析.北京:人民郵電出版社,2010