簡介
安全理念起源于我們自己的本地操作系統(tǒng)(OS)環(huán)境。未聯(lián)網(wǎng)的隔離機(jī)器比聯(lián)網(wǎng)的機(jī)器更加安全。在網(wǎng)絡(luò)中,沒有公共的控制點(diǎn)來監(jiān)管或控制網(wǎng)絡(luò)資源(計(jì)算機(jī)或用戶)。對(duì)操作系統(tǒng)的保護(hù)止于網(wǎng)絡(luò)。人們所能看到的只是通過網(wǎng)絡(luò)傳輸?shù)囊幌盗袛?shù)據(jù)包。這使假冒的用戶很容易模仿合法用戶。如果未采用安全措施,那么將難以區(qū)分虛假的和真實(shí)的消息。
只有在確立了發(fā)送消息的用戶的真實(shí)性之后,才能夠?qū)嵤┌踩胧。一般的安全措施首先?huì)驗(yàn)證用戶,通常使用用戶名和密碼進(jìn)行驗(yàn)證。密碼是確立用戶真實(shí)性的實(shí)體。用戶名可以讓多個(gè)人知道,而密碼只能讓具有合法授權(quán)的人知道。
分布式環(huán)境安全機(jī)制會(huì)實(shí)現(xiàn)一種高級(jí)且復(fù)雜的安全模型,如 圖 1 所示。所有安全活動(dòng)都集中在安全服務(wù)器上。安全服務(wù)器對(duì)網(wǎng)絡(luò)執(zhí)行的任務(wù)與操作系統(tǒng)對(duì)本地系統(tǒng)執(zhí)行的任務(wù)相同。
快速了解 DCE 安全模型
在 DCE 中,安全服務(wù)器是中央控制點(diǎn),控制網(wǎng)絡(luò)上的安全活動(dòng)。安全服務(wù)器后臺(tái)程序使用 MIT Kerberos 來管理身份驗(yàn)證。在 DCE 中使用此身份驗(yàn)證服務(wù),RPC 能夠向用戶提供數(shù)據(jù)可用性保證和數(shù)據(jù)隱私保障。所有客戶端/服務(wù)器都依賴安全服務(wù)器對(duì)在網(wǎng)絡(luò)上傳輸?shù)南⑦M(jìn)行身份驗(yàn)證和授權(quán)。DCE 還可以驗(yàn)證安全服務(wù)器本身。
首先,用戶必須登錄到 DCE,以使用 DCE 提供的服務(wù)。這個(gè)登錄過程通過安全服務(wù)器來進(jìn)行。用戶向安全服務(wù)器提供一個(gè)秘密密鑰(密碼)來證明其身份。此秘密密鑰只有該用戶和安全服務(wù)器知道。一旦安全服務(wù)器通過秘密密鑰確認(rèn)了用戶的身份,用戶登錄到 DCE 的過程就完成了。這是一種一次性過程,在用戶本身從 DCE 注銷之前不必重復(fù)執(zhí)行。此過程也稱為單點(diǎn)登錄。在這之后,只要用戶希望訪問任何 DCE 服務(wù),它就會(huì)向安全服務(wù)器獲取一個(gè)安全證書。此證書用作用戶向網(wǎng)絡(luò)中任何機(jī)器證明其真實(shí)性的憑證。用戶然后將憑證傳送給承載用戶所需 DCE 服務(wù)的服務(wù)器。該服務(wù)器接收調(diào)用并檢查證書,然后判斷用戶是否被授權(quán)使用此服務(wù)。如果是,則接受調(diào)用并處理請(qǐng)求。否則,決絕請(qǐng)求。
圖 1. 基本 DCE 安全模型
分布式安全機(jī)制中常用的術(shù)語
下面是本文將經(jīng)常提到的一些術(shù)語:
身份驗(yàn)證:確認(rèn)用戶身份的過程。身份驗(yàn)證用于驗(yàn)證用戶對(duì)其身份的聲明。最容易理解的示例就是登錄過程。驗(yàn)證用戶名和密碼是一項(xiàng)身份驗(yàn)證操作。
授權(quán):一旦用戶經(jīng)過了身份驗(yàn)證,就會(huì)檢查它可以使用哪些資源和服務(wù)。這就是授權(quán)。
完整性:只有授權(quán)用戶有權(quán)通過網(wǎng)絡(luò)修改消息/數(shù)據(jù)。一旦用戶創(chuàng)建了消息,消息就不應(yīng)在傳送到目的地的途中被修改。對(duì)消息的這種更改檢查稱為完整性檢查。
簽名:當(dāng)用戶通過網(wǎng)絡(luò)發(fā)送消息時(shí),它會(huì)對(duì)消息進(jìn)行簽名。這種簽名是驗(yàn)證合法用戶是否是此消息的作者的一種方式。
密鑰:密鑰是一種在明文與密文之間相互轉(zhuǎn)換的方式。在數(shù)學(xué)上,它是一個(gè)參數(shù),用于確定一個(gè)算法的函數(shù)輸出。
加密:這個(gè)過程將消息轉(zhuǎn)換為一種形式(密文),如果沒有用于將消息轉(zhuǎn)換為密文的密鑰,幾乎不可能將密文轉(zhuǎn)換為原始消息。這種方法廣泛用于阻止通過網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行未授權(quán)訪問。
單元:單元指的是一組用戶、客戶端或服務(wù)器,它們共享相同的 DCE 服務(wù)。
主體:主體可以表示從用戶、客戶端和服務(wù)器到單元的任何實(shí)體。
訪問控制列表(ACL):ACL 是一種數(shù)據(jù)結(jié)構(gòu),它將一個(gè)服務(wù)的權(quán)限列表與一組主體相關(guān)聯(lián)。它描述可訪問和使用服務(wù)的主體集和允許的訪問類型。
身份驗(yàn)證 RPC(Authenticated RPC):在 DCE 中,只有在確認(rèn)了調(diào)用客戶端和被調(diào)用服務(wù)器的身份之后,RPC 調(diào)用才會(huì)成功。這種保證由身份驗(yàn)證 RPC 通過向在服務(wù)器和客戶端之間交換的消息/數(shù)據(jù)包添加額外的字段來實(shí)現(xiàn)。
一般的分布式安全技術(shù)
本節(jié)將非常簡潔地介紹分布式環(huán)境中使用的兩種最重要的安全技術(shù)。
盡管 DCE 目前基于秘密密鑰系統(tǒng),但在本文后面將介紹 DCE 如何利用并擴(kuò)展這些技術(shù),以提供一種更為安全的環(huán)境。
秘密密鑰加密
秘密密鑰加密是分布式系統(tǒng)安全機(jī)制中一種最重要的技術(shù)。它涉及使用在服務(wù)器和客戶端之間共享的秘密密鑰。使用同一個(gè)秘密密鑰加密和解密在它們之間交換的消息。由于對(duì)加密/解密使用了相同密鑰,所以這種技術(shù)也稱為對(duì)稱加密。
公開密鑰加密
公開密鑰加密使用一對(duì)密鑰:一個(gè)用于加密,一個(gè)用于解密。因?yàn)樯婕暗揭粚?duì)密鑰,所以它也稱為非對(duì)稱加密。用戶擁有一對(duì)密鑰:公鑰和私鑰。所有人都知道公鑰,而私鑰是秘密的。要發(fā)送給用戶的消息使用他/她的公鑰加密。這些消息只能使用對(duì)應(yīng)的私鑰解密。Rivest-Shamir-Adleman (RSA) 系統(tǒng)是這種技術(shù)的最好例子。
什么是 Kerberos?
最初,Kerberos 是麻省理工學(xué)院在 Athena 項(xiàng)目中開發(fā)的一種身份驗(yàn)證服務(wù)。Kerberos 是根據(jù)秘密密鑰加密并使用可信第三方身份驗(yàn)證而設(shè)計(jì)的。網(wǎng)絡(luò)中的所有客戶端/服務(wù)器都依賴一個(gè)稱為密鑰分發(fā)中心(KDC)的第三方進(jìn)行安全通信。KDC 負(fù)責(zé)密鑰分發(fā)和可能在網(wǎng)絡(luò)上發(fā)生的所有身份驗(yàn)證過程。
Kerberos 在本質(zhì)上包含一個(gè)稱為 Kerberos 身份驗(yàn)證協(xié)議(KAP)的復(fù)雜過程。當(dāng)兩方希望對(duì)彼此進(jìn)行身份驗(yàn)證時(shí),它們執(zhí)行 KAP 來完成。此協(xié)議實(shí)際上包含一系列消息,其中包含秘密密鑰以及有助于客戶端和服務(wù)器安全地相互驗(yàn)證的其他信息。KAP 涉及三方:客戶端、服務(wù)器和 KDC。圖 2 以一種圖示方式演示了 KAP 的工作原理:
圖 2. Kerberos 身份驗(yàn)證協(xié)議(KAP)
對(duì)圖 2 作如下說明:
- 客戶端首先向 KDC 發(fā)送一條消息,請(qǐng)求一個(gè)新的票證。這將指定客戶端以及它希望連接到的服務(wù)器的身份。KDC 通過生成一個(gè)隨機(jī)會(huì)話密鑰(K.session)創(chuàng)建一個(gè)票證,這個(gè)票證包含客戶端的身份和其他一些有用信息。
- KDC 然后加密票證并將加密結(jié)果發(fā)送給客戶端。
- 客戶端接收 KDC 的回復(fù),然后使用自己的秘密密鑰解密消息?蛻舳吮A魰(huì)話密鑰,將票證按原樣轉(zhuǎn)發(fā)給服務(wù)器。
- 服務(wù)器從客戶端接收票證,然后使用自己的秘密密鑰進(jìn)行解密。這樣,服務(wù)器將得到客戶端的身份和會(huì)話密鑰。
上述協(xié)議是最基本的 KAP 和它在 DCE 身份驗(yàn)證機(jī)制中的實(shí)際實(shí)現(xiàn)。票證包含客戶端/服務(wù)器相互信任所必需的所有信息。
在此身份驗(yàn)證信息交換過程中生成的會(huì)話密鑰可用于客戶端/服務(wù)器與 KDC 之間的所有未來通信。它可用于驗(yàn)證消息、提供完整性檢查,以及提供加密密鑰來保證數(shù)據(jù)的機(jī)密性。盡管使用了非常有效且易于管理的可信第三方,但 Kerberos 也存在一些不足。在 Kerberos 中,KDC 是整個(gè)網(wǎng)絡(luò)的單一故障點(diǎn)。
DCE 如何擴(kuò)展 Kerberos
DCE 有效地實(shí)現(xiàn)了三種網(wǎng)絡(luò)服務(wù),它們是:
- 身份驗(yàn)證服務(wù)
- 特權(quán)服務(wù)
- 注冊表服務(wù)
身份驗(yàn)證服務(wù)與 Kerberos 中的 KDC 相同。另兩種服務(wù)是對(duì) Kerberos 的擴(kuò)展和增強(qiáng)。將這三種服務(wù)相結(jié)合,DCE 在分布式環(huán)境中實(shí)現(xiàn)了一種非常有效的安全機(jī)制。在了解每個(gè)服務(wù)的詳細(xì)信息之前,您應(yīng)該記住,所有這些服務(wù)都是由一個(gè) RPC 服務(wù)器實(shí)現(xiàn)的,該服務(wù)器稱為安全后臺(tái)程序或 secd。
身份驗(yàn)證服務(wù)
DCE 身份驗(yàn)證服務(wù)是 Kerberos 模型中的密鑰分發(fā)服務(wù)。它提供了票證和會(huì)話密鑰。但身份驗(yàn)證服務(wù)在 Kerberos 中只是密鑰分發(fā)服務(wù)的一個(gè)組成部分。DCE 通過兩種類型的票證服務(wù)強(qiáng)化了這一服務(wù)。
- 服務(wù)票證 (Service ticket,STkt)
- 票證授權(quán)票證(Ticket-granting ticket,TGT)
票證是一條加密消息,包含一個(gè)會(huì)話密鑰和一些其他的服務(wù)器/客戶端標(biāo)識(shí)信息。
服務(wù)票證(STkt)
在 DCE 中,服務(wù)票證是一種數(shù)據(jù)結(jié)構(gòu),身份驗(yàn)證服務(wù)使用該結(jié)構(gòu)將客戶端身份和會(huì)話密鑰傳遞給服務(wù)器。客戶端必須獲得 STkt 來對(duì)服務(wù)器進(jìn)行身份驗(yàn)證。它之所以稱為服務(wù)票證,是因?yàn)榭蛻舳耸褂盟鼇慝@取服務(wù)。
服務(wù)票證對(duì)服務(wù)器進(jìn)行身份驗(yàn)證,包含兩部分,如圖 3 所示。第一部分是目標(biāo)服務(wù)器的主體名稱。票證的第二部分對(duì)客戶端不可見。它使用目標(biāo)服務(wù)器的秘密密鑰進(jìn)行了加密。STkt 的加密部分包含客戶端的名稱、身份驗(yàn)證服務(wù)生成的一個(gè)可供客戶端和服務(wù)器使用的會(huì)話密鑰,以及 STkt 的有效期。
圖 3. 服務(wù)票證的結(jié)構(gòu)
票證授權(quán)票證 (TGT)
在 DCE 中,TGT 用于獲取服務(wù)票證 (STkt)。TGT 包含供在客戶端與身份驗(yàn)證服務(wù)之間使用的會(huì)話密鑰;旧希琓GT 包含兩部分,如圖 4 所示。第一部分包含身份驗(yàn)證服務(wù)及服務(wù)器,第二部分是加密的,包含票證有效期和 TGT 會(huì)話密鑰。TGT 會(huì)話密鑰是 TGT 最重要的部分。這個(gè)密鑰由身份驗(yàn)證服務(wù)生成,由客戶端和身份驗(yàn)證服務(wù)共同用于所有未來通信。
TGT 還提供了一個(gè)位置,供身份驗(yàn)證服務(wù)存儲(chǔ)它在以后響應(yīng)此客戶端的 STkt 請(qǐng)求所需的所有信息。
圖 4. 票證授權(quán)票證的結(jié)構(gòu)
身份驗(yàn)證服務(wù)工作模型 - 使用 TGT 和 STkt
圖 5 演示了在 DCE 身份驗(yàn)證服務(wù)中如何使用 TGT 和 STkt。
獲得包含供與身份驗(yàn)證服務(wù)器一同使用的會(huì)話密鑰的 TGT
客戶端需要使用在其本身與身份驗(yàn)證服務(wù)之間共享的會(huì)話密鑰來與身份驗(yàn)證服務(wù)進(jìn)行未來的通信。為了獲得共享的會(huì)話密鑰,客戶端向身份驗(yàn)證服務(wù)發(fā)出一個(gè) TGT 請(qǐng)求(身份驗(yàn)證 RPC)。客戶端請(qǐng)求消息主要包括客戶端主體名稱、期望的票證有效期。
身份驗(yàn)證服務(wù)創(chuàng)建一個(gè) TGT。該 TGT 包含客戶端的身份、一個(gè)隨機(jī)生成的 TGT 會(huì)話密鑰和 TGT 的有效期。整個(gè) TGT 使用身份驗(yàn)證服務(wù)的秘密密鑰加密。身份驗(yàn)證服務(wù)向客戶端發(fā)出一條響應(yīng)消息,其中包含 TGT、TGT 會(huì)話密鑰的一個(gè)副本和其他信息。為了傳送到期望的客戶端,此響應(yīng)消息使用客戶端秘密密鑰進(jìn)行加密。
客戶端使用它的秘密密鑰解密來自身份驗(yàn)證服務(wù)的消息,F(xiàn)在,客戶端擁有了會(huì)話密鑰,它可以使用該密鑰向身份驗(yàn)證服務(wù)驗(yàn)證自身。
圖 5. 身份驗(yàn)證服務(wù)工作模型
獲取包含與安全服務(wù)器一起使用的會(huì)話密鑰的 STkt
STkt 請(qǐng)求的主要目標(biāo)是獲得一個(gè)新會(huì)話密鑰,供客戶端與安全服務(wù)器一起使用?蛻舳送ㄟ^身份驗(yàn)證 RPC 向身份驗(yàn)證服務(wù)發(fā)出一個(gè) STkt 請(qǐng)求,以獲取供客戶端與任何服務(wù)器通信所用的新會(huì)話密鑰。此消息包含目標(biāo)服務(wù)器名稱和 TGT。此消息的完整性通過一個(gè)校驗(yàn)和來保護(hù),該校驗(yàn)和使用客戶端與身份驗(yàn)證服務(wù)器之間的會(huì)話密鑰進(jìn)行加密。
身份驗(yàn)證服務(wù)從請(qǐng)求中提取出 TGT,使用自己的秘密密鑰解密它,然后驗(yàn)證請(qǐng)求。檢查了請(qǐng)求客戶端的身份后,身份驗(yàn)證服務(wù)構(gòu)造一個(gè) STkt,供客戶端用來驗(yàn)證目標(biāo)服務(wù)器。STkt 響應(yīng)消息包含在客戶端與目標(biāo)服務(wù)器之間使用的會(huì)話密鑰,還包含客戶端的身份。STkt 然后使用目標(biāo)服務(wù)器的秘密密鑰加密,這樣目標(biāo)服務(wù)器就能夠使用自己的秘密密鑰解密 STkt 請(qǐng)求。身份驗(yàn)證服務(wù)然后使用 TGT 會(huì)話密鑰加密 STkt 和會(huì)話密鑰的副本,再將消息發(fā)回給客戶端。
客戶端已經(jīng)擁有從前面的 TGT 請(qǐng)求獲得 TGT 會(huì)話密鑰。所以客戶端使用這個(gè) TGT 會(huì)話密鑰副本解密消息。最終,客戶端從 STkt 獲得與目標(biāo)服務(wù)器一同使用的共享會(huì)話密鑰。
客戶端使用會(huì)話密鑰與服務(wù)器通信
客戶端向服務(wù)器發(fā)出 RPC 調(diào)用,并將包含會(huì)話密鑰的 STkt 作為 RPC 協(xié)議的一部分傳遞給服務(wù)器。服務(wù)器 RPC 運(yùn)行時(shí)驗(yàn)證 STkt。如果它是來自客戶端的有效請(qǐng)求,它使用服務(wù)器秘密密鑰從 STkt 提取會(huì)話密鑰。在這里,客戶端已經(jīng)過了身份驗(yàn)證,服務(wù)器知道用于與這個(gè)特定客戶端通信的共享會(huì)話密鑰。
接下來,客戶端收到來自服務(wù)器的調(diào)用結(jié)果?蛻舳耸褂霉蚕頃(huì)話密鑰解密該結(jié)果,F(xiàn)在,客戶端和服務(wù)器都有了共享會(huì)話密鑰的副本。使用此會(huì)話密鑰,客戶端和服務(wù)器可以安全地相互通信。
特權(quán)服務(wù)(授權(quán)服務(wù))
身份驗(yàn)證服務(wù)的總體目標(biāo)是,與客戶端希望向其進(jìn)行身份驗(yàn)證的服務(wù)器安全地交換客戶端身份和會(huì)話密鑰。在這里,DCE 的特權(quán)服務(wù)通過加入特權(quán)屬性證書(PAC),增強(qiáng)了身份驗(yàn)證服務(wù)。DCE 安全服務(wù)使用 PAC 來描述客戶端的安全屬性。這些安全屬性包括主體身份和組信息。在 DCE 特權(quán)服務(wù)中,服務(wù)器借助從 PAC 獲得的信息,判斷給定客戶端是否有權(quán)執(zhí)行特定操作。通常 PAC 包含制定訪問控制決策所需的授權(quán)信息。
PAC 的組成部分
- 身份驗(yàn)證標(biāo)志:此標(biāo)志顯示此 PAC 是否經(jīng)過了 DCE 安全機(jī)制的身份驗(yàn)證。
- DCE 單元 UUID:一個(gè)單元的 UUID,主體在該單元中的注冊表中注冊。
- 主體 UUID:一個(gè)主體的 UUID,PAC 中描述了該主體的安全屬性。
- 主要組 UUID:同一單元中此主體主要屬于的組的 UUID。
- 輔助組 UUID:同一單元中此主體所屬的所有組的 UUID。
- 外來組 UUID:此主體所屬的、在遠(yuǎn)程調(diào)用中注冊的組的 UUID。
特權(quán)服務(wù)使用 PTGT 和 PSTkt 來交換 PAC。簡言之,PTGT 和 PSTkt 分別是 TGT 和 STkt,它們包含 PAC。圖 6 展示了 PTGT 和 PSTkt 的結(jié)構(gòu)。從圖中很容易看出,PTGT 類似于 TGT,而 PSTkt 類似于 STkt。但是它們之間存在兩個(gè)重大區(qū)別:
- 特權(quán)票證還包含一個(gè)客戶端 PAC;
- 特權(quán)票證將特權(quán)服務(wù)指定為客戶端,而 TGT 和 STkt 指定了真實(shí)的客戶端。
圖 6. PTGT 和 PSTkt 的結(jié)構(gòu)
下一節(jié)通過圖 7 介紹 DCE 中的特權(quán)服務(wù)的工作原理。
獲得 PTGT
客戶端首先將一個(gè) TGT 發(fā)送給授權(quán)服務(wù),授權(quán)服務(wù)然后向客戶端提供一個(gè) STkt 和一個(gè)會(huì)話密鑰。STkt 和會(huì)話密鑰供客戶端用來與特權(quán)服務(wù)通信?蛻舳藢⒁粋(gè) PTGT 請(qǐng)求發(fā)送給特權(quán)服務(wù),其中包含 STkt 和會(huì)話密鑰。
特權(quán)服務(wù)解密請(qǐng)求,獲得會(huì)話密鑰,并確認(rèn)客戶端的身份。特權(quán)服務(wù)然后生成一個(gè)新的會(huì)話密鑰,也就是 PTGT 會(huì)話密鑰。同時(shí),特權(quán)服務(wù)在從注冊表服務(wù)獲得此客戶端的所有信息之后,生成 PAC,F(xiàn)在,特權(quán)服務(wù)將此信息復(fù)制到 TGT 中,并使用身份驗(yàn)證服務(wù)的秘密密鑰加密它。這個(gè) TGT 是一個(gè) PTGT,因?yàn)樗貦?quán)信息。特權(quán)服務(wù)現(xiàn)在將請(qǐng)求發(fā)送回客戶端。此請(qǐng)求消息使用客戶端傳遞給特權(quán)服務(wù)的會(huì)話密鑰進(jìn)行加密。
客戶端獲得響應(yīng)消息,解密它,然后獲得 PTGT 和 PTGT 會(huì)話密鑰。
獲得 PSTkt
客戶端現(xiàn)在擁有了從身份驗(yàn)證服務(wù)獲得 PSTkt 所需的一切,以及 PTGT 和 PTGT 會(huì)話密鑰。客戶端將一個(gè) PSTkt 請(qǐng)求發(fā)送到身份驗(yàn)證服務(wù)。此請(qǐng)求消息包含服務(wù)器(客戶端希望從該服務(wù)器獲得服務(wù))名稱和一個(gè)客戶端 PTGT 副本。
身份驗(yàn)證服務(wù)獲取 PSTkt 請(qǐng)求,使用其秘密密鑰解密它。在確認(rèn)了 PSTkt 請(qǐng)求中的相關(guān)字段之后,身份驗(yàn)證服務(wù)繼續(xù)生成一個(gè) STkt。它將 PTGT 中的 PAC 復(fù)制到 STkt 中,將客戶端設(shè)置為特權(quán)服務(wù)并生成一個(gè)新會(huì)話密鑰。目標(biāo)服務(wù)器將使用此會(huì)話密鑰來確認(rèn)客戶端的身份。因?yàn)榇?STkt 包含 PAC,所以它也是 PSTkt。而且此 PSTkt 使用目標(biāo)服務(wù)器的秘密密鑰進(jìn)行了加密。身份驗(yàn)證服務(wù)構(gòu)造一條響應(yīng)消息,其中包含 PSTkt 和新會(huì)話密鑰的一個(gè)副本。整條消息使用 PTGT 會(huì)話密鑰加密并發(fā)送回客戶端。
客戶端收到響應(yīng)消息,解密它,獲得 PSTkt 和與目標(biāo)服務(wù)器一同使用的會(huì)話密鑰。
圖 7. 特權(quán)服務(wù)工作模型 - 使用 PTGT 和 PSTkt
使用 PSTkt
客戶端現(xiàn)在向目標(biāo)服務(wù)器發(fā)出一個(gè) RPC 調(diào)用,向它發(fā)送包含會(huì)話密鑰和 PAC 的 PSTkt。目標(biāo)服務(wù)器接收 PSTkt 并使用自己的秘密密鑰解密。為了保證 PAC 確實(shí)是由特權(quán)服務(wù)發(fā)出的,目標(biāo)服務(wù)器檢查并確認(rèn)在 PSTkt 中指定的客戶端確實(shí)是特權(quán)服務(wù)。最后,服務(wù)器執(zhí)行 RPC 調(diào)用,將結(jié)果返回到客戶端。
注冊表服務(wù)
注冊表服務(wù)是 DCE 安全機(jī)制所提供的第三種網(wǎng)絡(luò)服務(wù)。注冊表服務(wù)為一個(gè)單元的所有主體、組和帳戶信息維護(hù)一個(gè)數(shù)據(jù)庫。此信息供前兩個(gè)服務(wù)(身份驗(yàn)證服務(wù)和特權(quán)服務(wù))和 DCE API 使用。它主要包含以下信息:
- 單元信息:包含單元名稱、單元 UUID、運(yùn)行的注冊表服務(wù)的版本和注冊表可以分配給主體的 UNIX® ID 的范圍。它還存儲(chǔ)了單元的整體信息,比如單元范圍的安全策略、票證有效期等。
- 主體、組和組織信息:包含單元的所有主體、組和組織(PGO)的列表。對(duì)于每個(gè) PGO 條目,還存儲(chǔ)了相應(yīng)的 UUID、名稱和 UNIX ID。
- 帳戶信息:DCE 帳戶就像操作系統(tǒng)上任何其他本地帳戶一樣。用戶必須登錄到 DCE 帳戶才能使用 DCE 提供的服務(wù)。每個(gè)帳戶表示一個(gè)主體和該主體所屬的組列表。帳戶信息包含兩部分:網(wǎng)絡(luò)和本地系統(tǒng)。網(wǎng)絡(luò)部分包含獲取票證和其他服務(wù)所需的信息(比如,它包含主體秘密密鑰)。本地部分包含主目錄和要運(yùn)行的 shell 等信息。它還負(fù)責(zé)支持網(wǎng)絡(luò)范圍的單點(diǎn)登錄,這意味著登錄到 DCE 帳戶也會(huì)自動(dòng)將用戶登錄到所有相關(guān)聯(lián)的本地帳戶。
DCE 安全性與 Kerberos 有何不同
從前面的細(xì)節(jié)可以看到,DCE 實(shí)現(xiàn)的身份驗(yàn)證服務(wù)非常類似于 Kerberos 協(xié)議中所遵循的過程。這種相似性源于這樣一個(gè)事實(shí):DCE 身份驗(yàn)證服務(wù)建立在 Kerberos V5 的源代碼之上。盡管 DCE 安全機(jī)制是對(duì) Kerberos V5 的擴(kuò)展,但它在許多方面不同于 Kerberos。最明顯的不同就是特權(quán)服務(wù)和注冊表服務(wù),它們只有 DCE 才有。此外,一些 DCE 工具,比如身份驗(yàn)證 RPC 和 DCE、ACL,也不是由 Kerberos 提供的。而且,除了 UDP/IP 以外,DCE 身份驗(yàn)證服務(wù)還使用 DCE RPC 在網(wǎng)絡(luò)上進(jìn)行通信。這與 Kerberos 僅使用 UDP 協(xié)議進(jìn)行通信的事實(shí)形成了鮮明對(duì)比。
結(jié)束語
本文主要介紹了分布式系統(tǒng)安全性的背景知識(shí)。我們首先強(qiáng)調(diào)了安全性對(duì)分布式環(huán)境的重要性,概述了 DCE 安全模型。然后詳細(xì)介紹了分布式安全領(lǐng)域所使用的一般技術(shù),以及 Kerberos。最后,本文詳細(xì)解釋了 DCE 安全機(jī)制的工作原理和實(shí)現(xiàn),簡略提及了它與 Kerberos 的不同。本文可以作為更深入理解使用 DCE 的分布式安全機(jī)制的起點(diǎn)。
作者簡介
![]()
Avadh N. Pandey 自 2008 年開始擔(dān)任 IBM DCE 和 TXSeries 的三級(jí)支持工程師。他于 2007 年畢業(yè)于 Indian Institute of Technology, Roorkee。他關(guān)注的領(lǐng)域包括 UNIX 系統(tǒng)和網(wǎng)絡(luò)。
![]()
Jithesh Moothoor 自 2006 年開始擔(dān)任 IBM DCE 和 TXSeries 產(chǎn)品的三級(jí)支持工程師。他關(guān)注的領(lǐng)域包括高性能計(jì)算、云計(jì)算和 UNIX 系統(tǒng)。您可以在 大學(xué)內(nèi)的云計(jì)算解決方案 上看到他的一篇文章。