官术网_书友最值得收藏!

1.3.2 NTLM本地認(rèn)證

1.NTLM本地登錄認(rèn)證

當(dāng)我們在Windows操作系統(tǒng)中創(chuàng)建用戶的時(shí)候,該用戶的密碼會加密存儲在一個(gè)SAM(Security Account Manager,安全賬號管理器)文件中,這是Windows操作系統(tǒng)用于管理用戶賬戶安全的一種機(jī)制。SAM文件的存儲路徑如下,另見圖1-19。

圖1-19 SAM文件的存儲路徑

我們可以將這個(gè)SAM文件理解成一個(gè)用于存儲本地計(jì)算機(jī)所有用戶登錄憑據(jù)的數(shù)據(jù)庫,所有用戶的登錄名及口令等數(shù)據(jù)信息都會保存在其中。該文件會將密碼通過NTLM哈希的方式進(jìn)行加密,然后存儲在SAM文件中。存儲在SAM文件中的密碼均為加密過的哈希值,如圖1-20所示。

當(dāng)我們使用創(chuàng)建用戶的身份登錄系統(tǒng)時(shí),系統(tǒng)會主動(dòng)讀取本地SAM文件所存的密碼,并與我們輸入的密碼進(jìn)行校驗(yàn)。如果校驗(yàn)成功,則證明登錄成功,反之則登錄失敗。所謂的本地認(rèn)證過程其實(shí)是對用戶輸入的密碼與SAM數(shù)據(jù)庫里加密的哈希值比對的過程,如圖1-21所示。

圖1-20 NTLM哈希值

圖1-21 用戶登錄系統(tǒng)認(rèn)證過程

2.哈希密碼的存儲方式

Windows操作系統(tǒng)不會存儲用戶輸入的明文密碼,而是將其進(jìn)行加密并存儲在SAM數(shù)據(jù)庫中。當(dāng)用戶使用賬號密碼憑據(jù)登錄時(shí),系統(tǒng)會先將用戶輸入的賬號密碼憑據(jù)轉(zhuǎn)換成NTLM哈希,然后將轉(zhuǎn)換后的哈希與SAM數(shù)據(jù)庫中的NTLM哈希進(jìn)行校驗(yàn),校驗(yàn)成功則證明登錄成功,反之則登錄失敗。

在Windows操作系統(tǒng)中加密哈希的算法分為兩種,一種是LM哈希加密算法,另一種是NTLM哈希加密算法,后者目前更為流行。

(1)LM哈希

LM哈希是早期Windows系統(tǒng)使用的密碼存儲方式,非常老舊。LM哈希作為很早之前使用的算法,存在著很多的問題和缺陷。Windows操作系統(tǒng)在不斷迭代,從Windows Vista和Windows Server 2008開始逐漸將LM哈希加密算法替換為NTLM哈希加密算法。

(2)NTLM哈希

NTLM(NT LAN Manager)哈希是Windows為了安全性和兼容性而設(shè)計(jì)的哈希加密算法。微軟為了解決LM哈希加密算法存在的諸多安全問題而在Windows NT 3.1中引入了NTLM算法。目前Windows Vista和Windows Server 2008以后的操作系統(tǒng)版本均默認(rèn)開啟了NTLM哈希算法。

3.NTLM哈希算法原理

目前在大部分Windows操作系統(tǒng)中使用的密碼哈希為NTLM哈希。NTLM哈希值是經(jīng)過Hex、Unicode、MD4三層編碼加密得到的一個(gè)由字母和數(shù)字組成的32位的哈希值。以下是NTLM哈希的具體算法。

1)將用戶密碼進(jìn)行Hex編碼,得到十六進(jìn)制格式。

2)將得到的十六進(jìn)制結(jié)果轉(zhuǎn)換為Unicode編碼。

3)使用MD4加密算法對Unicode轉(zhuǎn)換的結(jié)果進(jìn)行加密。

4.本地登錄認(rèn)證流程

假設(shè)當(dāng)Windows操作系統(tǒng)進(jìn)入登錄頁面時(shí)用戶按下SAS按鍵序列(也就是Ctrl+Alt+Del),這將使系統(tǒng)從默認(rèn)桌面切換至Winlogon桌面,并啟動(dòng)LogonUI來提示用戶輸入賬號和密碼等信息。在用戶輸入賬號和密碼信息以后,Winlogon會通過LsaLogonUser將登錄信息傳遞給身份驗(yàn)證程序包(MSV1_0),由MSV1_0身份驗(yàn)證程序包將登錄用戶賬號和密碼的哈希值發(fā)送至本地SAM Server數(shù)據(jù)庫中進(jìn)行匹配。如匹配成功,則向MSV1_0身份驗(yàn)證程序包返回獲取到用戶的SID及用戶所屬組的SID,并發(fā)送給LSA Server。LSA Server利用該唯一SID等信息創(chuàng)建安全訪問令牌(訪問令牌包括用戶的SID、組SID及分配的權(quán)限),然后將令牌的句柄和登錄信息發(fā)送給Winlogon,由Winlogon繼續(xù)執(zhí)行該用戶的登錄過程,如圖1-22所示。

圖1-22 本地登錄認(rèn)證流程

主站蜘蛛池模板: 和静县| 大港区| 二手房| 大城县| 南江县| 阿图什市| 长兴县| 东莞市| 五大连池市| 安陆市| 丽江市| 安康市| 搜索| 鹰潭市| 揭阳市| 治县。| 巫山县| 永平县| 玛曲县| 沁水县| 巫山县| 新密市| 金湖县| 和林格尔县| 穆棱市| 乌鲁木齐县| 库车县| 长宁县| 广水市| 辉南县| 边坝县| 确山县| 阿拉善盟| 通道| 池州市| 湘阴县| 阳泉市| 安多县| 固安县| 静安区| 荆门市|