windows的域和域林间的信任是如何工作的
文章目錄
- 注解
- 信任關(guān)系架構(gòu)
- NTLM協(xié)議 (Msv1_0.dll)
- Kerberos協(xié)議 (Kerberos.dll)
- Net Logon (Netlogon.dll)
- LSA (Lsasrv.dll)
- Tools
- 活動(dòng)目錄
- TDO 受信任域?qū)ο?/li>
- 受信任域?qū)ο髢?nèi)容
- TDO 密碼
- 信任關(guān)系的實(shí)際限制
- TDO數(shù)量
- 信任關(guān)系路徑
- 信任關(guān)系搜索
- 信任關(guān)系流
- 單向信任關(guān)系、雙向信任關(guān)系
- 傳遞性信任關(guān)系和非傳遞性信任關(guān)系
- 信任類型
- 自動(dòng)創(chuàng)建的信任關(guān)系
- 父子域信任關(guān)系
- Tree-root信任關(guān)系
- 手動(dòng)設(shè)置的信任關(guān)系
- 快捷信任關(guān)系
- 外部信任關(guān)系
- 領(lǐng)域信任關(guān)系
- 林信任關(guān)系
- 外部信任關(guān)系和林信任關(guān)系的區(qū)別
- 信任關(guān)系的處理和交互
- 認(rèn)證引用概述
- Kerberos V5引用過(guò)程
- NTLM引用處理過(guò)程
- 其他的認(rèn)證協(xié)議引用處理過(guò)程
- 基于Kerberos的跨域(同林)認(rèn)請(qǐng)求處理
- 基于Kerberos的跨域林認(rèn)證請(qǐng)求處理
- 在信任關(guān)系中使用到的網(wǎng)絡(luò)端口
- Local Security Authority RPC端口
- Net Logon RPC端口
- 信任關(guān)系中會(huì)用到的端口
歡迎掃碼關(guān)注微信公眾號(hào)
原文鏈接
英語(yǔ)水平有限,如有錯(cuò)誤或者不恰當(dāng)?shù)牡胤?#xff0c;歡迎指正
注解
- NT 4.0內(nèi)核用于XP之前的windows機(jī)器,是很古老的操作系統(tǒng)版本,5和6依次對(duì)標(biāo)xp和win7
- 文中的NT指的是NT 4.0
活動(dòng)目錄通過(guò)域和域林間的信任關(guān)系為不同的域個(gè)域林的通信提供安全保障。在通過(guò)信任關(guān)系進(jìn)行認(rèn)證之前,Windows必須首先確定接受請(qǐng)求的域是否和發(fā)起請(qǐng)求的賬戶所在的域之間擁有信任關(guān)系。要想進(jìn)行這個(gè)判斷,Windows安全系統(tǒng)需要在請(qǐng)求和被請(qǐng)求的域的域控制器中計(jì)算出一個(gè)信任路徑。
活動(dòng)目錄所提供的的訪問(wèn)控制機(jī)制和Windows分布式安全模型共同為域和域林信任的操作構(gòu)建了一個(gè)最佳的環(huán)境。為了讓這些信任可以正常工作,域中的每一個(gè)工作站和服務(wù)器都必須擁有一個(gè)直接到達(dá)域控制器的信任路徑。信任路徑是Net Logon服務(wù)通過(guò)一個(gè)已經(jīng)認(rèn)證過(guò)的連接到域控制器的遠(yuǎn)程過(guò)程調(diào)用(RPC)來(lái)實(shí)現(xiàn)的。另外,一個(gè)安全的隧道會(huì)通過(guò)內(nèi)部域信任關(guān)系拓展到其他的活動(dòng)目錄域 。這個(gè)所謂的安全隧道是用來(lái)獲取和驗(yàn)證安全相關(guān)信息,包括用戶和組的SID
這一章節(jié)會(huì)描述信任機(jī)制的內(nèi)部工作原理,討論將會(huì)被使用到的不同的信任關(guān)系,并提供一個(gè)詳細(xì)的引用列表、涉及到信任的登錄過(guò)程,還會(huì)列出所有的信任機(jī)制會(huì)用到的網(wǎng)絡(luò)端口。
信任關(guān)系架構(gòu)
集成在Windows Server 2003和活動(dòng)目錄的應(yīng)用使用操作系統(tǒng)的組件來(lái)建立和維護(hù)信任。大量的組件幫助信任架構(gòu)為活動(dòng)目錄提供一個(gè)高效的通信設(shè)施。這些組件包括認(rèn)證協(xié)議,Net Logon服務(wù),LSA和存儲(chǔ)在活動(dòng)目錄中的信任域?qū)ο?#xff08;TDO–>Trusted Domain Objects)。下面這張圖中展示了這些信任關(guān)系組件:
NTLM協(xié)議 (Msv1_0.dll)
NTLM認(rèn)證協(xié)議依賴于域控制器上的Net Logon服務(wù)來(lái)進(jìn)行用戶身份認(rèn)證和認(rèn)證信息的獲取。這個(gè)協(xié)議專門用于為不使用Kerberos進(jìn)行認(rèn)證的用戶提供認(rèn)證服務(wù)。NTLM使用信任來(lái)在不同的域之間傳遞認(rèn)證請(qǐng)求。
Kerberos協(xié)議 (Kerberos.dll)
Kerberos V5認(rèn)證協(xié)議依也賴于域控制器上的Net Logon服務(wù)進(jìn)行用戶的認(rèn)證和認(rèn)證信息的獲取。Kerberos協(xié)議連接KDC(Key Distribution Center)和活動(dòng)目錄賬戶存儲(chǔ)來(lái)獲取session tickets。Kerberos協(xié)議也使用信任來(lái)使用cross-realm(跨領(lǐng)域(kerberos相關(guān)術(shù)語(yǔ)))ticket-granting 服務(wù)(TGS)并通過(guò)安全隧道驗(yàn)證Privilege Attribute Certificates(PACs)。Kerberos協(xié)議只在非Windows操作系統(tǒng)的Kerberos領(lǐng)域中進(jìn)行cross-realm認(rèn)證,并且這種認(rèn)證不需要于Net Logon服務(wù)進(jìn)行交互
Net Logon (Netlogon.dll)
Net Logon服務(wù)為計(jì)算機(jī)和域控制器之間維護(hù)一個(gè)安全隧道。它也被用在下面這些信任相關(guān)的處理過(guò)程:
- 信任的構(gòu)建和管理
- Net Logon幫助維護(hù)信任密碼,收集信任關(guān)系信息并通過(guò)LSA進(jìn)程和TDO驗(yàn)證信任關(guān)系。對(duì)于林信任,信任關(guān)系信息包含了林信任關(guān)系信息(FTinfo)記錄,這個(gè)記錄包含著一個(gè)受信任的域林聲明要進(jìn)行管理的命名空間(暫時(shí)不太理解這個(gè)命名空間指的是啥)的集合,該記錄中有一個(gè)字段用于表明每一個(gè)聲明要管理的命名空間是否是被信任的(這里的這個(gè)命名空間指的可能是域)
- 認(rèn)證
- 通過(guò)安全隧道將用戶憑證提交給域控制器,并向該用戶返回域SID和用戶特權(quán)
- 定位域控制器
- 在當(dāng)期域定位域控制器或者跨域定位域控制器
- 驗(yàn)證
- 其他域中的用戶憑證是Net Logon處理的。當(dāng)一個(gè)信任域需要確認(rèn)一個(gè)用戶的身份時(shí),該用戶的憑證會(huì)通過(guò)Net Logon服務(wù)發(fā)送給受信任域進(jìn)行認(rèn)證。
- PAC確認(rèn)
- 當(dāng)一個(gè)服務(wù)器使用Kerberos協(xié)議進(jìn)行認(rèn)證時(shí),需要確認(rèn)service ticket中的PAC,Net Logon服務(wù)會(huì)通過(guò)安全隧道將PAC發(fā)送給域控制器進(jìn)行確認(rèn)
- 關(guān)于PAC在windows的kerberos版本中的作用https://blogs.technet.microsoft.com/apgceps/2011/09/12/packerberos-2/ https://blogs.technet.microsoft.com/apgceps/2011/09/19/packerberos/
LSA (Lsasrv.dll)
LSA是一個(gè)受保護(hù)的子系統(tǒng),它維護(hù)所有本地安全相關(guān)的信息,并提供各種用于轉(zhuǎn)換names和identifiers對(duì)應(yīng)關(guān)系的服務(wù),LSA的用戶模式和內(nèi)核模式均提供對(duì)象驗(yàn)證。用戶特權(quán)檢查和審計(jì)信息生成的服務(wù)。LSA負(fù)責(zé)檢查所有由受信任域和非受信任域的服務(wù)提供的session tickets的有效性
Tools
管理員可以使用活動(dòng)目錄域和信任關(guān)系,Netdom和Nltest來(lái)查看、創(chuàng)建、移除、更改信任關(guān)系。活動(dòng)目錄域和信任關(guān)系指的是Microsoft Management Console (MMC),MMC是用于管理域信任、域和域林功能級(jí)別以及用戶主體名后綴的。Netdom和Nltest命令行工具用于查找、顯示、創(chuàng)建和管理信任關(guān)系。這些工具直接與域控制器上的LSA認(rèn)證機(jī)構(gòu)進(jìn)行通信
活動(dòng)目錄
活動(dòng)目錄服務(wù)存儲(chǔ)網(wǎng)絡(luò)上的對(duì)象的信息并提供給網(wǎng)絡(luò)上的用戶和管理員進(jìn)行使用。信任關(guān)系可以被用來(lái)拓展到其他的活動(dòng)目錄域和域林
TDO 受信任域?qū)ο?/h2>
一個(gè)組織中的每一個(gè)互相信任的域和域林都會(huì)被一個(gè)存儲(chǔ)在其對(duì)應(yīng)的域中的TDO代表
受信任域?qū)ο髢?nèi)容
包含在TDO中的內(nèi)容會(huì)根據(jù)該TDO是被域信任關(guān)系創(chuàng)建的還是域林信任關(guān)系創(chuàng)建的而變化。當(dāng)一個(gè)域信任關(guān)系被創(chuàng)建時(shí),一些屬性諸如DNS域名、域SID、信任關(guān)系類型、信任關(guān)系傳遞性和windows對(duì)等域名都會(huì)保存在TDO中。林信任關(guān)系TDO存儲(chǔ)額外的屬性來(lái)認(rèn)證其他林中的信任命名空間。這些屬性包括域樹(shù)名、用戶主體名稱(UPN)后綴、服務(wù)主體名稱(SPN)后綴以及安全I(xiàn)D(SID)命名空間。
因?yàn)樾湃侮P(guān)系被活動(dòng)目錄以TDO的形式存儲(chǔ)起來(lái),所有windows server 2003域林中的域都擁有該域林內(nèi)信任關(guān)系相關(guān)的信息,與NT4.0域之間的信任關(guān)系不會(huì)以TDO的形式被存儲(chǔ)在活動(dòng)目錄中
TDO 密碼
一個(gè)信任關(guān)系中的兩個(gè)域都會(huì)共享一個(gè)密碼,該密碼存儲(chǔ)在TDO對(duì)象。最為該賬號(hào)維護(hù)的一部分,每30天,信任域控制器會(huì)更改一次密碼。因?yàn)?strong>所有的雙向信任關(guān)系其實(shí)都是兩個(gè)單向信任關(guān)系組成的,所以這個(gè)密碼更改會(huì)發(fā)生兩次。在一個(gè)信任關(guān)系中,有信任的一方,還有一個(gè)被信任方。在受信任方,所有的可寫(xiě)域控制器都會(huì)參與TDO account的維護(hù),在信任方,PDC模擬器會(huì)進(jìn)行密碼額更改,要完成該過(guò)程,域控制器會(huì)執(zhí)行以下處理:
受信任域的域控制器永遠(yuǎn)不會(huì)發(fā)起密碼更改操作,它總是由信任域的PDC模擬器發(fā)起的
保存一份之前的密碼的copy,以便于將來(lái)回滾到之前的狀態(tài),以防止受信任域沒(méi)有收到改變密碼的消息或者新的請(qǐng)求已經(jīng)開(kāi)始使用新的信任關(guān)系密碼但是域控制器之間的replicated操作還未完成。
經(jīng)過(guò)以上過(guò)程之后,雙邊信任關(guān)系密碼就更改完成了。
信任關(guān)系的實(shí)際限制
信任關(guān)系的限制主要來(lái)源于TDO的數(shù)量、信任路徑的長(zhǎng)度以及客戶端發(fā)現(xiàn)可用信任關(guān)系的能力
TDO數(shù)量
TDO是域關(guān)系密切,隨著TDO數(shù)量的上升,這些TDO連接的處理性能就會(huì)降低。測(cè)試表明,當(dāng)一個(gè)組織的TDO總量超過(guò)2400時(shí),完成TDO相關(guān)的操作(比如跨域認(rèn)證)所消耗的時(shí)間會(huì)顯著上升。當(dāng)然也只有少數(shù)比較大的組織才會(huì)擁有那么多的TDO,且在windows server 2003中沒(méi)有對(duì)信任關(guān)系數(shù)量的絕對(duì)限制。
信任關(guān)系路徑
在windows server 2003域中,kerberos最多可以通過(guò)10個(gè)信任關(guān)系鏈路來(lái)在其他域中查找到請(qǐng)求的資源的位置。如果不同域之間的信任路徑超過(guò)了這個(gè)值,那么訪問(wèn)將會(huì)失敗。可以通過(guò)建立到目標(biāo)域的外部信任來(lái)解決信任關(guān)系路徑過(guò)長(zhǎng)的問(wèn)題。
信任關(guān)系搜索
當(dāng)一個(gè)客戶端發(fā)起信任路徑搜索時(shí),搜索范圍被限制在直接建立了信任關(guān)系的域以及和域林內(nèi)具有傳遞性的域(就是說(shuō)客戶端所在域和這些域本來(lái)是沒(méi)有建立信任關(guān)系的,但是和一個(gè)域建立了信任關(guān)系,但是這個(gè)域又和域林內(nèi)的其他域有信任關(guān)系,這樣信任關(guān)系就會(huì)傳遞到客戶端所在的域)。比如,**一個(gè)子域不能使用其父域與其他域林中的域的外部信任關(guān)系。**這是因?yàn)橐粋€(gè)完整的信任路徑必須在客戶端可以使用該信任路徑查找到請(qǐng)求的資源所在的域之前建立完成(這是當(dāng)然的)。windows server 2003不支持盲引用;如果一個(gè)客戶端不能識(shí)別一個(gè)信任路徑,那么它將不會(huì)嘗試尋求對(duì)另一個(gè)域中資源的訪問(wèn)權(quán)。子域無(wú)法識(shí)別其域林外的信任機(jī)構(gòu)的外部信任關(guān)系或者領(lǐng)域信任關(guān)系,因?yàn)橛糜诖磉@些信任關(guān)系的TDO保存在共享這些信任關(guān)系的域內(nèi),而不是全局編錄服務(wù)器。
信任關(guān)系流
信任關(guān)系之間的安全通信流決定了信任關(guān)系的彈性(不太明白這個(gè)彈性表示啥意思?):創(chuàng)建或者配置信任關(guān)系的方式?jīng)Q定了域林內(nèi)的通信或者跨域林的通信能拓展多遠(yuǎn)。信任關(guān)系之間的通信流取決于信任方向(單向還是雙向)以及信任關(guān)系的傳遞性(傳遞性還是非傳遞性)
單向信任關(guān)系、雙向信任關(guān)系
信任關(guān)系的建立旨在完成資源的單向或者雙向訪問(wèn)。一個(gè)單向信任關(guān)系是一個(gè)由兩個(gè)域創(chuàng)建的單向認(rèn)證路徑。在一個(gè)Domain A和Domain B之間的單向信任關(guān)系中,Domain A中的用戶可以訪問(wèn)Domain B中的資源。然而,Domain B中的用戶卻不能訪問(wèn)Domain A中的資源。單向信任關(guān)系可以是傳遞的也可以是非傳遞的。
活動(dòng)目錄林中的所有域間信任關(guān)系都是雙向的和傳遞的信任關(guān)系。當(dāng)一個(gè)新的子域被創(chuàng)建,一個(gè)雙向的、傳遞性的信任關(guān)系也就在父域和這個(gè)新的子域之間自動(dòng)創(chuàng)建了。在一個(gè)雙向信任關(guān)系中,Domain A信任Domain B,并且Domain B信任Domain A。這意味著經(jīng)過(guò)認(rèn)證的請(qǐng)求可以再這兩個(gè)域之間進(jìn)行雙向的發(fā)送。雙向信任關(guān)系也可以是傳遞性的或者非傳遞性的。一個(gè)活動(dòng)目錄域可以在以下等級(jí)的活動(dòng)目錄域中創(chuàng)建單向或者雙向信任關(guān)系:
- 位于同一個(gè)域林中的Windows Server 2003域
- 位于不同域林中的Windows Server 2003域
- Windows NT 4.0域
- kerberos V5領(lǐng)域
傳遞性信任關(guān)系和非傳遞性信任關(guān)系
傳遞性卻決于信任關(guān)系是否能夠被拓展到創(chuàng)建該信任關(guān)系的兩個(gè)域之外。一個(gè)傳遞性的信任關(guān)系可以被用來(lái)拓展信任關(guān)系到其他的域中;一個(gè)非傳遞性的信任關(guān)系可以被用來(lái)隔絕與其他域的信任關(guān)系。
你每一次在域林中創(chuàng)建一個(gè)新的域,一個(gè)雙向且傳遞的信任關(guān)系就會(huì)在新域和其父域之間自動(dòng)建立起來(lái)。如果這個(gè)新建的域中又創(chuàng)建了一個(gè)子域,那么信任路徑流會(huì)向上拓展到新域和父域之間的信任關(guān)系。具有傳遞性的信任關(guān)系會(huì)順著域樹(shù)拓展到整顆域樹(shù)中。
認(rèn)證請(qǐng)求隨著信任路徑,因此來(lái)自域林中的任何域中的賬戶都可以在該域林中的其他域中進(jìn)行認(rèn)證。在經(jīng)過(guò)單次登錄過(guò)程之后,具有一定權(quán)限的用戶可以訪問(wèn)域林中的所有域中的資源。下面的示意圖展示了Tree 1和Tree 2中的所有域都具有默認(rèn)的傳遞性的信任關(guān)系。其結(jié)果就是,當(dāng)用戶被分配適當(dāng)?shù)臋?quán)限之后,Tree 1中的用戶可以訪問(wèn)Tree 2中的域中的資源,且Tree 2中的用戶可以訪問(wèn)Tree 1中的域中的資源。
從這張示意圖中我們可以看到,同一域林中的域樹(shù)根域之間也會(huì)自動(dòng)擁有一個(gè)傳遞性的雙向信任關(guān)系。
除了上述的默認(rèn)信任類型之外,還有下面三種信任類型可以通過(guò)新建信任關(guān)系向?qū)?lái)進(jìn)行創(chuàng)建。
- 快捷信任關(guān)系
- 一種建立于同一個(gè)域樹(shù)(林)中的域之間的傳遞性信任關(guān)系,用于縮短大且復(fù)雜的域樹(shù)(林)中的信任關(guān)系路徑
- 林信任
- 兩個(gè)林根域之間的信任關(guān)系
- 領(lǐng)域信任
- 活動(dòng)目錄域和Kerberos領(lǐng)域之間的信任關(guān)系
一個(gè)非傳遞性的信任關(guān)系被限制在這兩個(gè)建立了信任關(guān)系的域之間。
非傳遞性信任關(guān)系默認(rèn)是單向的,你可以通過(guò)創(chuàng)建兩個(gè)單向的信任關(guān)系來(lái)達(dá)到雙向信任的效果。
下面列出的域之間只能創(chuàng)建非傳遞性信任關(guān)系:
- 一個(gè)Windows Server 2003域和一個(gè)Windows NT域
- 一個(gè)Windows Server 2003域和另一個(gè)域林中的域(前提是這兩個(gè)域林沒(méi)有建立信任關(guān)系)
通過(guò)新建信任關(guān)系向?qū)?#xff0c;你可以創(chuàng)建如下的非傳遞性信任關(guān)系:
- 外部信任(External Trust)
- 一個(gè)創(chuàng)建于Windows Server 2003域和另一個(gè)林中的Windows NT、Windows 2000或者Windows Server 2003的域之間的信任關(guān)系。當(dāng)你想要將一個(gè)NT域升級(jí)至Windows Server 2003域時(shí),所有的之前存在的Windows NT信任關(guān)系可以被完整的保留。注意Windows Server 2003域和Windows NT域之間的信任關(guān)系是非傳遞性的。
- 領(lǐng)域信任(Realm Trust)
- 活動(dòng)目錄域和Kerberos V5領(lǐng)域之間的非傳遞性信任關(guān)系
信任類型
信任關(guān)系具有不同的特點(diǎn)。**創(chuàng)建信任關(guān)系得域的類型會(huì)影響到信任關(guān)系的類型。**比如,兩個(gè)位于不同域林中的子域之間的信任關(guān)系總是外部信任關(guān)系,但是兩個(gè)windows server 2003林根域之間的信任關(guān)系可能是外部信任關(guān)系,也可能是林信任關(guān)系。
有兩種信任類型會(huì)在你是用活動(dòng)目錄安裝向?qū)ё詣?dòng)創(chuàng)建。還有四中其他的信任類型由新建信任關(guān)系向?qū)Щ蛘逳etdom命令行工具進(jìn)行創(chuàng)建。
自動(dòng)創(chuàng)建的信任關(guān)系
默認(rèn)情況下,當(dāng)一個(gè)新域添加到域樹(shù)中或者林根域(林根域其實(shí)就是域中的一顆域樹(shù)的根域,就是林中的一個(gè)域樹(shù))中時(shí)會(huì)自動(dòng)創(chuàng)建雙向傳遞性信任關(guān)系。默認(rèn)的信任關(guān)系有兩種:父子域信任關(guān)系和tree-root(樹(shù)根域)信任關(guān)系。
父子域信任關(guān)系
只要有新的域加入到域樹(shù)中,那么父子信任關(guān)系就會(huì)創(chuàng)建起來(lái)。活動(dòng)目錄安裝過(guò)程會(huì)自動(dòng)創(chuàng)建信任關(guān)系。父子域信任關(guān)系有如下特點(diǎn):
- 只能存在于同一顆域樹(shù)中
- 父域總是被子域信任
- 它一定是雙向且傳遞的信任。可傳遞性信任關(guān)系的雙向性使得活動(dòng)目錄中的全局編錄信息可以復(fù)制到所有層級(jí)的的域中。
Tree-root信任關(guān)系
tree-root信任關(guān)系會(huì)在你將一個(gè)新的域樹(shù)添加到域林中時(shí)創(chuàng)建。活動(dòng)目錄安裝向?qū)?huì)自動(dòng)創(chuàng)建一個(gè)關(guān)于你新創(chuàng)建的域樹(shù)根域和林根域的信任關(guān)系。tree-root信任關(guān)系具有以下局限性:
- 它只能在同一個(gè)域林中的兩顆域樹(shù)根域之間建立。
- 它必須是雙向且傳遞的。
手動(dòng)設(shè)置的信任關(guān)系
在windows server 2003中共有4中信任關(guān)系需要進(jìn)行手動(dòng)設(shè)置:快捷信任關(guān)系(用于優(yōu)化同一個(gè)域林中域樹(shù)間的信任路徑)、外部信任關(guān)系、領(lǐng)域信任關(guān)系和林信任。這些信任關(guān)系類型必須使用新建信任關(guān)系向?qū)Щ蛘逳etdom命令行工具來(lái)進(jìn)行創(chuàng)建。
快捷信任關(guān)系
這個(gè)不再贅述,大致就是圖中所示的意思。
外部信任關(guān)系
外部信任關(guān)系可以創(chuàng)建在不同域林中的活動(dòng)目錄域中,還可以創(chuàng)建在windows server 2003或更高版本的活動(dòng)目錄域和windows NT4.0或早期版本的活動(dòng)目錄域之間。外部信任關(guān)系具有以下特點(diǎn):
- 非傳遞的
- 如果想要?jiǎng)?chuàng)建一個(gè)雙向的信任關(guān)系,必須手動(dòng)在每一端設(shè)置一個(gè)單向的信任關(guān)系。在windows server 2003中可以使用新建信任關(guān)系向?qū)б淮涡詣?chuàng)建出一個(gè)雙向的外部信任關(guān)系。
- windows server 2003域強(qiáng)制啟用SID篩選器隔離。由信任域創(chuàng)建的外部信任關(guān)系使用SID篩選器隔離(SID filter quarantining)來(lái)保證接收到的來(lái)自受信任域的認(rèn)證請(qǐng)求只包含受信任域中的安全主體的SID。SID過(guò)濾隔離確保SID history屬性的的誤用不會(huì)對(duì)信任域的完整性造成任何影響。
關(guān)于SID的歷史屬性
外部信任關(guān)系提供了對(duì)域林外的域中的資源的訪問(wèn)。下面這張示意圖展示了外部信任關(guān)系是如何在windows server 2003域林和windows 2000域林之間使用的。
在上面這個(gè)示例中,兩個(gè)外部的信任關(guān)系存在于windows server 2003域林和windows 2000域林。箭頭指向的域是被信任的域,被信任的域可以訪問(wèn)信任域中的資源。
由于外部信任關(guān)系都是非傳遞性的,所以rome.europe.tailspintoys.com中的用戶是訪問(wèn)不到wideworldimporters.com中的資源的,同樣sales.wideworldimporters.com中的用戶也是訪問(wèn)不到tailspintoys.com的
當(dāng)不同域林中的域建立了信任關(guān)系之后,外部域的安全主體就可以訪問(wèn)內(nèi)部域的資源。活動(dòng)目錄在內(nèi)部域創(chuàng)建了一個(gè)外部的安全主體對(duì)象來(lái)代表每一個(gè)來(lái)自受信任的外部域的安全主體。這些外部的安全主體可以成為內(nèi)部域的本地域組成員。外部安全主體的目錄對(duì)象是由活動(dòng)目錄創(chuàng)建的而且不應(yīng)該被手動(dòng)修改。通過(guò)啟用高級(jí)特性,你可以在活動(dòng)目錄的用戶和計(jì)算機(jī)中查看外部安全主體對(duì)象。
下面這張示意圖演示了windows server 2003域林和windows NT 4.0域之間的外部域信任關(guān)系的配置。
windows server 2003的林信任都啟用了SID篩選器。啟用SID篩選器可以防止受信任域中的高權(quán)限惡意用戶提升受信任域中其他用戶對(duì)信任域中資源的權(quán)限。
參考鏈接:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc755321(v=ws.10)#potential-threats-to-interforest-trusts
領(lǐng)域信任關(guān)系
在此不做詳細(xì)描述
林信任關(guān)系
林信任關(guān)系通過(guò)提供對(duì)跨域林資源訪問(wèn)的支持來(lái)幫助你在你的組織內(nèi)部管理分段的windows server 2003域中的基礎(chǔ)結(jié)構(gòu)。林信任關(guān)系對(duì)Application Service Provider、處于合并或收購(gòu)過(guò)程中的公司、需要與外網(wǎng)進(jìn)行協(xié)同合作的商務(wù)以及需要行政自治解決方案的公司。(不太明白最后這個(gè)場(chǎng)景的意思)
林信任關(guān)系可以提供以下好處:
- 通過(guò)減少外部信任關(guān)系的數(shù)量來(lái)簡(jiǎn)化兩個(gè)windows server 2003域林之間的資源管理
- 每個(gè)域林中的每個(gè)域都擁有完整的雙向信任關(guān)系
- UPN(user principal name)的跨域認(rèn)證
- 通過(guò)同時(shí)使用Kerberos V5認(rèn)證協(xié)議和NTLM認(rèn)證協(xié)議來(lái)提高兩個(gè)域林之間認(rèn)證過(guò)程的可信賴度
- 管理的靈活性。每個(gè)域林中的管理任務(wù)都是唯一的
- 每個(gè)域林中的數(shù)據(jù)的安全性得到加強(qiáng)。敏感數(shù)據(jù)只能被數(shù)據(jù)所在的域林中的用戶訪問(wèn)
- 每個(gè)林中的目錄復(fù)制操作都是獨(dú)立的。Schema改動(dòng)、配置改動(dòng)以及新域的增加都只會(huì)在當(dāng)前域林中產(chǎn)生影響,并不會(huì)影響到信任域林
- windows server 2003域中SID篩選器的強(qiáng)制啟用。SID篩選器可以確保SID歷史屬性的濫用不會(huì)影響到信任域的完整性。
通過(guò)使用林信任關(guān)系你可以將兩個(gè)windows server 2003域林連接起來(lái)以形成一個(gè)單向或者雙向的信任關(guān)系。林信任允許管理員將兩個(gè)域林通過(guò)單個(gè)信任關(guān)系聯(lián)系起來(lái)以提供無(wú)縫的跨域認(rèn)證和授權(quán)體驗(yàn)。
林信任關(guān)系只能創(chuàng)建于兩個(gè)林根域之間。林信任關(guān)系是絕對(duì)不可以擴(kuò)展到第三個(gè)域林中的。意思就是林信任關(guān)系是不可能擁有傳遞性的。
Forest 1和Forest 3之間是沒(méi)有信任關(guān)系的。
要使用林信任需要滿足下面的要求。在你可以使用林信任之前,你必須確保兩邊的域林中的所有的域控制器都運(yùn)行的是windows server 2003及以上版本。同時(shí)你還需要確保你擁有正常工作的DNS設(shè)備以及你創(chuàng)建了合適的活動(dòng)目錄功能級(jí)別。這意味著域林必須提升至windows server 2003級(jí)別及以上,且你不能在域林中安裝額外的Windows 2000或者Windows NT 4.0的域控制器。
只有當(dāng)你的域林中擁有下面的DNS配置時(shí)林信任才能被成功創(chuàng)建:
- 有一個(gè)root DNS服務(wù)器,該DNS服務(wù)器同時(shí)是兩個(gè)目標(biāo)域林的命名空間的root DNS服務(wù)器:root zone包含每個(gè)DNS命名空間的委托且兩個(gè)域林中的所有DNS服務(wù)器的root hints都包含該root DNS服務(wù)器。
- 如果沒(méi)有共享的DNS服務(wù)器,且每個(gè)域林中的DNS命名空間的root DNS服務(wù)器運(yùn)行的是Windows server 2003家族的操作系統(tǒng),DNS的條件轉(zhuǎn)發(fā)需要在每個(gè)DNS命名空間中被配置以將其他命名空間的查詢路由到正確的DNS服務(wù)器上
- 和第二種情況一樣,兩個(gè)目標(biāo)域林沒(méi)有共享的DNS服務(wù)器,且每個(gè)域林中的DNS命名空間的root DNS服務(wù)器都運(yùn)行著windows server 2003家族操作系統(tǒng),第二種情況是在主DNS服務(wù)器上配置條件轉(zhuǎn)發(fā),還有一種情況就是在輔助只讀DNS服務(wù)器上配置條件轉(zhuǎn)發(fā)來(lái)路由DNS查詢請(qǐng)求
只有林根域的Domain Admins組或者Enterprise Admins組的administrator才可以創(chuàng)建林信任關(guān)系。
Incoming Forest Trust Builders組的成員可以創(chuàng)建一個(gè)單向的、incoming林信任關(guān)系。舉個(gè)栗子,Forest A中IFTB(Incoming Forest Trust Builders)的成員可以創(chuàng)建一個(gè)單向的,來(lái)自Forest B的incoming林信任關(guān)系。這個(gè)單向的、incoming林信任關(guān)系允許Forest A中的用戶訪問(wèn)Forest B中的資源。IFTB組中的成員被賦予了在林根域創(chuàng)建Inbound林信任關(guān)系的權(quán)利。IFTB組中沒(méi)有默認(rèn)成員。
Windows NT Server 4.0、Windows 2000、Windows XP客戶可以使用林信任來(lái)進(jìn)行認(rèn)證。盡管如此,Windows NT Server 4.0客戶僅支持NTLM認(rèn)證,而且不支持用戶使用UPN登錄到網(wǎng)絡(luò)中。Windows Server 2003功能級(jí)別的林信任不能在Windows Server 2003域林和Windows 2000域林中創(chuàng)建。
外部信任關(guān)系和林信任關(guān)系的區(qū)別
其實(shí)區(qū)別就在于林信任關(guān)系是由位于兩個(gè)不同域林的兩個(gè)林根域創(chuàng)建的,而外部信任關(guān)系是由位于兩個(gè)不同域林中的域創(chuàng)建的
可以看出來(lái)林信任關(guān)系其實(shí)是外部信任關(guān)系的子集
信任關(guān)系的處理和交互
許多的域間和林間交互都依賴于域或者域林信任關(guān)系來(lái)完成各種各樣的任務(wù)。這一節(jié)描述了當(dāng)跨域資源訪問(wèn)或者身份驗(yàn)證時(shí)所發(fā)生的處理過(guò)程和交互行為。
認(rèn)證引用概述
當(dāng)一個(gè)認(rèn)證請(qǐng)求被引用到域時(shí),這個(gè)域的域控制器就必須在對(duì)該用戶進(jìn)行任認(rèn)證之前決定請(qǐng)求來(lái)自的域是否和本域存在信任關(guān)系,以及該信任關(guān)系的信任流方向和傳遞性。發(fā)生在兩個(gè)域之間的認(rèn)證過(guò)程會(huì)因使用的認(rèn)證協(xié)議而不同。Kerberos V5和NTLM認(rèn)證協(xié)議在Windows 2000 Server和Windows Server 2003的認(rèn)證引用過(guò)程是不同的,至于其他的認(rèn)證協(xié)議,比如Digest和SChannel,Windows 2000 Server和Windows Server 2003都是支持的。
Kerberos V5引用過(guò)程
如果客戶使用Kerberos V5進(jìn)行認(rèn)證,它會(huì)向他的賬戶所在域的域控制器申請(qǐng)一個(gè)用于訪問(wèn)目標(biāo)域中的服務(wù)器的ticket。Kerberos KDC(Key Distribution Center)在服務(wù)器和客戶端之間充當(dāng)受信任的第三方的角色;它提供一個(gè)session key讓Server和Client進(jìn)行互相認(rèn)證。如果目標(biāo)域和客戶所在域是兩個(gè)域,那么KDC會(huì)進(jìn)行一個(gè)邏輯處理來(lái)判斷這個(gè)認(rèn)證請(qǐng)求能不能被引用。
- 如果是,向客戶端發(fā)送一個(gè)指向被請(qǐng)求域的引用
- 如果不是,執(zhí)行下一步
- 如果是,向客戶端發(fā)送一個(gè)指向信任路徑中的下一個(gè)域的引用
- 如果不是,向客戶端發(fā)送一個(gè)logon-denied消息
NTLM引用處理過(guò)程
如果客戶端使用NTLM認(rèn)證協(xié)議,那么原始的認(rèn)證請(qǐng)求將會(huì)直接從客戶端發(fā)送到目標(biāo)域中的資源服務(wù)器。這個(gè)服務(wù)器會(huì)向發(fā)送請(qǐng)求的客戶端創(chuàng)建一個(gè)挑戰(zhàn)。然后服務(wù)器將用戶的響應(yīng)發(fā)送給用戶賬戶所在域的域控制器。域控制器在它的安全賬戶數(shù)據(jù)庫(kù)中檢查該用戶的賬戶。如果賬戶不存在,該域控制器將需要通過(guò)下面的邏輯處理來(lái)決定是否發(fā)起pass-through認(rèn)證過(guò)程,轉(zhuǎn)發(fā)該請(qǐng)求,或者決絕該請(qǐng)求:
- 如果是,域控制器將用戶的憑證發(fā)送給該用戶所在的域控制器以進(jìn)行pass-through認(rèn)證過(guò)程。
- 如果不是,執(zhí)行下一步。
- 如果是,將認(rèn)證請(qǐng)求發(fā)送給信任路徑中的下一個(gè)域,這個(gè)域的域控制器重復(fù)上面加粗的過(guò)程。
- 如果不是,向客戶端發(fā)送一個(gè)logon-denied消息。
其他的認(rèn)證協(xié)議引用處理過(guò)程
Windows 2000 Server和Windows Server 2003也支持在林信任中使用Digest和Schannel認(rèn)證協(xié)議。這使得諸如Web服務(wù)器等技術(shù)可以在多域環(huán)境中完成他們的任務(wù)。SSL協(xié)議和證書(shū)通過(guò)Schannle映射到活動(dòng)目錄的用戶賬戶,IIS使用Digest。具有信任關(guān)系的兩個(gè)域可能會(huì)被要求進(jìn)行Digest和SChannel認(rèn)證,因?yàn)榻⑿湃侮P(guān)系的兩個(gè)域可能會(huì)存在防火墻,只允許HTTP協(xié)議的報(bào)文通過(guò)。Digest可以使用HTTP的頭部進(jìn)行傳輸。
只要通用的pass-through機(jī)制可以在目標(biāo)域內(nèi)找到合適的域控制器,Windows 2000 Server和Windows Server 2003將通過(guò)協(xié)商來(lái)決定在信任關(guān)系上使用哪種認(rèn)證協(xié)議進(jìn)行認(rèn)證。管理員也可以選擇使用SSP作為另一種認(rèn)證方式。如果SSP與windows 2000 server和Windows server 2003分布式系統(tǒng)是兼容的,那么它就可以以標(biāo)準(zhǔn)的windows 2000 server和windows server 2003工作方式在跨域的信任關(guān)系上工作。
基于Kerberos的跨域(同林)認(rèn)請(qǐng)求處理
位于同一域林中的活動(dòng)目錄域都具有雙向且可傳遞性的信任關(guān)系,因此從一個(gè)域到另一個(gè)域的認(rèn)證請(qǐng)求將會(huì)被路由到目標(biāo)域以提供對(duì)資源的無(wú)縫訪問(wèn)。Windows 2000域控制器或者windows server 2003域控使用下面兩種認(rèn)證協(xié)議的其中一種進(jìn)行用戶和應(yīng)用的認(rèn)證操作:Kerberos V5或NTLM。一旦在他們自己的域中完成認(rèn)證,用戶就可以嘗試使用活動(dòng)目錄授權(quán)獲取該域林中所有域中的資源。
要想使用Kerberos認(rèn)證來(lái)訪問(wèn)其他域中的共享資源,用戶的電腦首先要在自己賬戶所在域的控制器申請(qǐng)一個(gè)用于訪問(wèn)信任域中的資源的ticket。這個(gè)ticket稍后會(huì)被一個(gè)可信的第三方頒發(fā)。(沒(méi)太讀懂官方文檔的意思,沒(méi)交代清楚這個(gè)可信的第三方到底是誰(shuí))。用戶的電腦將ticket發(fā)送給位于信任域中的服務(wù)器以進(jìn)行認(rèn)證。
下面的示意圖和響應(yīng)步驟提供了一個(gè)關(guān)于跨域Kerberos認(rèn)證過(guò)程的詳盡描述。
上述過(guò)程是發(fā)生在同一個(gè)林中的。
每一個(gè)域都有他自己的安全策略來(lái)管理資源的訪問(wèn)。這些策略是無(wú)法跨域的。
基于Kerberos的跨域林認(rèn)證請(qǐng)求處理
當(dāng)兩個(gè)Windows Server 2003域林建立起林信任關(guān)系之后,使用Kerberos V5或者NTLM協(xié)議進(jìn)行的認(rèn)證請(qǐng)求可以在兩個(gè)林中進(jìn)行正確的路由來(lái)進(jìn)行資源的訪問(wèn)。
當(dāng)一個(gè)林信任被建立起來(lái)之后,每個(gè)林都會(huì)搜集所有的他的被信任域的命名空間并把這些信息存儲(chǔ)到TDO中。被信任的命名空間包括其他域林中的域樹(shù)名字,UPN后綴,SPN后綴和SID命名空間。TDO對(duì)象會(huì)被復(fù)制到全局編錄。
在認(rèn)證協(xié)議可以根據(jù)域林信任路徑進(jìn)行認(rèn)證之前,承載著資源的計(jì)算機(jī)的SPN必須被解析到其他域林中。一個(gè)SPN可以有如下幾種形式:主機(jī)的DNS名稱、域的DNS名稱或者服務(wù)接入點(diǎn)對(duì)象的DN(distinguish name)。
當(dāng)域林中的一個(gè)Workstation嘗試訪問(wèn)另一個(gè)域林中的資源計(jì)算機(jī)時(shí),Kerberos認(rèn)證過(guò)程會(huì)聯(lián)系域控制器獲取一個(gè)要訪問(wèn)的資源計(jì)算機(jī)的SPN的service ticket。一旦域控制器向全局編錄發(fā)起請(qǐng)求并判斷出SPN并不在當(dāng)前域林內(nèi),域控制器就會(huì)將其父域的引用返回給Workstation。這個(gè)時(shí)候,workstation向他的父域請(qǐng)求服務(wù)票據(jù),并沿著信任路徑找到目標(biāo)計(jì)算機(jī)所在域的域控制器申請(qǐng)服務(wù)票據(jù)。
下面這張示意圖和響應(yīng)步驟提供了一個(gè)跨林Kerberos認(rèn)證過(guò)程的詳細(xì)描述。
10.一旦Workstation 1獲得了服務(wù)票據(jù),它就會(huì)將該服務(wù)票據(jù)發(fā)送給FileServer 1,然后FileServer 1讀取安全憑證并依此構(gòu)建出訪問(wèn)令牌。
在信任關(guān)系中使用到的網(wǎng)絡(luò)端口
由于信任關(guān)系必需要在不同的網(wǎng)絡(luò)邊界中建立 ,所以可能會(huì)經(jīng)過(guò)多個(gè)防火墻。在這種情況下,你通過(guò)開(kāi)啟防火墻上的某個(gè)端口來(lái)允許信任關(guān)系產(chǎn)生的網(wǎng)絡(luò)流量通過(guò)。在Windows Server 2003中,這個(gè)過(guò)程被簡(jiǎn)化成為信任關(guān)系相關(guān)的服務(wù)配置RPC端口。有兩個(gè)主要的端口需要配置:Local Security Authority RPC端口、Net Logon RPC端口
Local Security Authority RPC端口
這個(gè)端口被用于信任關(guān)系的創(chuàng)建和對(duì)LSA策略數(shù)據(jù)庫(kù)的訪問(wèn)
Net Logon RPC端口
這個(gè)端口被用于NTLM認(rèn)證過(guò)程和安全通道的通信。
下面這張表格展示了在建立信任關(guān)系時(shí)需要打開(kāi)的端口列表。
信任關(guān)系中會(huì)用到的端口
| 同林中的兩個(gè)域創(chuàng)建信任關(guān)系 | LDAP(TCP/UDP:389)、Microsoft SMB(TCP:445)、Kerberos(UDP:88)、Endpoint resolution—portmapper(TCP:135)、Net Logon(活動(dòng)端口) | N/A | 內(nèi)部域的域控制器 ---- 外部域的域控制器(所有端口) |
| 由內(nèi)部域林到外部域林的信任關(guān)系的驗(yàn)證 | LDAP(TCP/UDP:389)、Microsoft SMB(TCP:445)、Kerberos(UDP:88)、Endpoint resolution—portmapper(TCP:135)、Net Logon(活動(dòng)端口) | N/A | 內(nèi)部域的域控制器 ---- 外部域的域控制器(所有端口) |
| 在外部域林中使用對(duì)象選取器向內(nèi)部域林的組合DACLs中添加對(duì)象 | N/A | LDAP(TCP/UDP:389)、Windows NT Server 4.0目錄服務(wù)(活動(dòng)端口)、Net Logon(活動(dòng)端口)、Kerberos(UDP:88)、Endpoion resolution portmapper(TCP:135) | 外部服務(wù)器 ---- 內(nèi)部域的PDC(kerberos)、外部域的域控制器 ---- 內(nèi)部域的域控制器(Net Logon) |
| 在外部域林中設(shè)置信任關(guān)系 | N/A | LDAP(TCP/UDP:389)、Microsoft SMB(TCP:445)、Kerberos(UDP:88) | 外部域的域控制器 ---- 內(nèi)部域的域控制器(所有端口) |
| 內(nèi)部域客戶端對(duì)外部域使用Kerberos認(rèn)證 | Kerberos(UDP:88) | N/A | 內(nèi)部域林客戶端 ---- 外部域的域控制器(所有端口) |
| 內(nèi)部域客戶端對(duì)外部域使用NTLM認(rèn)證 | N/A | Endpoion resolution portmapper(TCP:135) | 外部域的域控制器 ---- 內(nèi)部域的域控制器(所有端口) |
| 將內(nèi)部網(wǎng)絡(luò)的計(jì)算機(jī)加入到外部域中 | LDAP(TCP/UDP:389)、Microsoft SMB(TCP:445)、Kerberos(UDP:88)、Endpoint resolution—portmapper(TCP:135)、Net Logon(活動(dòng)端口)、Windows NT Server 4.0 目錄服務(wù)( 活動(dòng)端口) | N/A | 外部域的域控制器 ---- 內(nèi)部域的域控制器(所有端口) |
如果在實(shí)際應(yīng)用中出現(xiàn)了139端口,那么改端口是為了向后兼容的。
要想指定你想在活動(dòng)端口上運(yùn)行的服務(wù),你需要為該端口配置注冊(cè)表。
建議使用組策略或者其他windows工具,比如MMC(Microsoft Management Console)來(lái)達(dá)到上述目的。
官方不建議直接修改這兩個(gè)注冊(cè)表鍵。
Settings for the Local Security Authority (LSA) RPC port are stored in the TCP/IP Port entry in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters registry key.
Settings for the Net Logon RPC port are stored in the DCTcpipPort entry in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parametersregistry key.
總結(jié)
以上是生活随笔為你收集整理的windows的域和域林间的信任是如何工作的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 量子计算机亨通光电,在量子领域新成果:在
- 下一篇: java信息管理系统总结_java实现科