為什么需要用戶(hù)帳戶(hù)控制?
一直以來(lái),應(yīng)用程序開(kāi)發(fā)人員所創(chuàng)建的 Microsoft Windows 應(yīng)用程序都需要過(guò)多的用戶(hù)權(quán)限和 Windows 特權(quán),這就經(jīng)常要求執(zhí)行用戶(hù)是管理員身份。結(jié)果,幾乎沒(méi)有幾個(gè) Windows 用戶(hù)是在要求的用戶(hù)最小權(quán)限和 Windows 最小特權(quán)下運(yùn)行。由于標(biāo)準(zhǔn)用戶(hù)應(yīng)用程序兼容性問(wèn)題,許多力求在易部署性、易用性與安全性之間取得均衡的企業(yè)通常都采取作為管理員部署其桌面的方法。
為何在 Microsoft Windows Vista 之前的計(jì)算機(jī)上難以作為標(biāo)準(zhǔn)用戶(hù)運(yùn)行?以下內(nèi)容詳述了另外的原因:
許多 Windows 應(yīng)用程序都要求登錄用戶(hù)是管理員,但實(shí)際上并不要求管理員級(jí)的訪(fǎng)問(wèn)。這些應(yīng)用程序會(huì)在允許運(yùn)行之前執(zhí)行多種管理員訪(fǎng)問(wèn)檢查,其中包括:
管理員訪(fǎng)問(wèn)令牌檢查。
系統(tǒng)受保護(hù)位置中的“完全訪(fǎng)問(wèn)”訪(fǎng)問(wèn)請(qǐng)求。
將數(shù)據(jù)寫(xiě)入到受保護(hù)位置,例如,%ProgramFiles%、%WinDir% 和 HKLM\Software。
許多 Windows 應(yīng)用程序在設(shè)計(jì)時(shí)都沒(méi)有采用最小特權(quán)這個(gè)概念,并且沒(méi)有將用戶(hù)和管理員功能分為兩個(gè)不同的進(jìn)程。
默認(rèn)情況下,Windows 2000 和 Windows XP 將每個(gè)新用戶(hù)帳戶(hù)都創(chuàng)建為管理員;因此,關(guān)鍵的 Windows 組件(如“日期和時(shí)間”、“電源管理”控制面板)對(duì)于標(biāo)準(zhǔn)用戶(hù)就不能正常工作。
Windows 2000 和 Windows XP 管理員必須創(chuàng)建兩個(gè)不同的用戶(hù)帳戶(hù) - 一個(gè)帳戶(hù)用于管理任務(wù),另一個(gè)是標(biāo)準(zhǔn)用戶(hù)帳戶(hù),用于執(zhí)行日常任務(wù)。這樣,用戶(hù)必須退出其標(biāo)準(zhǔn)用戶(hù)帳戶(hù),并作為管理員重新登錄或使用“運(yùn)行方式”才能執(zhí)行任何管理任務(wù)。
借助“用戶(hù)帳戶(hù)控制”(UAC),Microsoft 將提供一種可以簡(jiǎn)化企業(yè)和家庭標(biāo)準(zhǔn)用戶(hù)桌面部署的技術(shù)。
按照最初在 Microsoft Windows NT 3.1 操作系統(tǒng)中的設(shè)計(jì)構(gòu)建 Windows 安全體系結(jié)構(gòu)后,UAC 小組力求實(shí)現(xiàn)一種兼有靈活性和更多安全性的標(biāo)準(zhǔn)用戶(hù)模型。對(duì)于 Windows 先前版本,在登錄過(guò)程中會(huì)為管理員創(chuàng)建一個(gè)訪(fǎng)問(wèn)令牌。該管理員訪(fǎng)問(wèn)令牌包含了多數(shù) Windows 特權(quán)和管理安全標(biāo)識(shí)符 (SID)。它保證了管理員可以安裝應(yīng)用程序、配置操作系統(tǒng)和訪(fǎng)問(wèn)任何資源。
在 Windows Vista 中,UAC 小組采用了一種截然不同的方法來(lái)創(chuàng)建訪(fǎng)問(wèn)令牌。當(dāng)管理員用戶(hù)登錄到 Windows Vista 計(jì)算機(jī)時(shí),將創(chuàng)建兩個(gè)訪(fǎng)問(wèn)令牌:一個(gè)是篩選后的標(biāo)準(zhǔn)用戶(hù)訪(fǎng)問(wèn)令牌,一個(gè)是完整的管理員訪(fǎng)問(wèn)令牌。此時(shí),使用標(biāo)準(zhǔn)用戶(hù)訪(fǎng)問(wèn)令牌而不是管理員訪(fǎng)問(wèn)令牌來(lái)啟動(dòng)桌面 (Explorer.exe)。所有子進(jìn)程都從桌面的這個(gè)初始啟動(dòng)(explorer.exe 進(jìn)程)繼承而來(lái),從而有助于限制 Windows Vista 的攻擊面。默認(rèn)情況下,所有用戶(hù)(包括管理員)都作為標(biāo)準(zhǔn)用戶(hù)登錄到 Windows Vista 計(jì)算機(jī)。
注意 對(duì)于以上綜述存在一種例外情況:訪(fǎng)客登錄計(jì)算機(jī)時(shí)所具備的用戶(hù)權(quán)限和特權(quán)要低于標(biāo)準(zhǔn)用戶(hù)。
當(dāng)管理員嘗試執(zhí)行管理任務(wù)(例如,安裝應(yīng)用程序)時(shí),UAC 會(huì)提示用戶(hù)批準(zhǔn)該操作。當(dāng)用戶(hù)批準(zhǔn)該操作時(shí),任務(wù)將通過(guò)管理員的完整管理員訪(fǎng)問(wèn)令牌啟動(dòng)。這是默認(rèn)的管理員提示行為,可在本地安全策略管理器單元 (secpol.msc) 中使用組策略 (gpedit.msc) 進(jìn)行配置。
注意 啟用了 UAC 的 Windows Vista 計(jì)算機(jī)上的管理員帳戶(hù)也稱(chēng)為“管理批準(zhǔn)模式下的管理員帳戶(hù)”。管理批準(zhǔn)模式標(biāo)識(shí)了管理員的默認(rèn)用戶(hù)體驗(yàn)。
每次管理提升也是特定于進(jìn)程的,這可防止其他進(jìn)程未提示用戶(hù)進(jìn)行批準(zhǔn)就使用訪(fǎng)問(wèn)令牌。這樣,管理員用戶(hù)可以對(duì)安裝哪些應(yīng)用程序進(jìn)行更精確的控制,同時(shí)又極大沖擊了期望登錄用戶(hù)使用完整管理員訪(fǎng)問(wèn)令牌運(yùn)行的惡意軟件。
通過(guò)使用 UAC 基礎(chǔ)結(jié)構(gòu),標(biāo)準(zhǔn)用戶(hù)也有機(jī)會(huì)按流程提升并執(zhí)行管理任務(wù)。當(dāng)標(biāo)準(zhǔn)用戶(hù)嘗試執(zhí)行管理任務(wù)時(shí),UAC 會(huì)提示用戶(hù)輸入有效的管理員帳戶(hù)憑據(jù)。這是默認(rèn)的標(biāo)準(zhǔn)用戶(hù)提示行為,可在本地安全策略管理器單元 (secpol.msc) 中使用組策略 (gpedit.msc) 進(jìn)行配置。
一直以來(lái),應(yīng)用程序開(kāi)發(fā)人員所創(chuàng)建的 Microsoft Windows 應(yīng)用程序都需要過(guò)多的用戶(hù)權(quán)限和 Windows 特權(quán),這就經(jīng)常要求執(zhí)行用戶(hù)是管理員身份。結(jié)果,幾乎沒(méi)有幾個(gè) Windows 用戶(hù)是在要求的用戶(hù)最小權(quán)限和 Windows 最小特權(quán)下運(yùn)行。由于標(biāo)準(zhǔn)用戶(hù)應(yīng)用程序兼容性問(wèn)題,許多力求在易部署性、易用性與安全性之間取得均衡的企業(yè)通常都采取作為管理員部署其桌面的方法。
為何在 Microsoft Windows Vista 之前的計(jì)算機(jī)上難以作為標(biāo)準(zhǔn)用戶(hù)運(yùn)行?以下內(nèi)容詳述了另外的原因:
許多 Windows 應(yīng)用程序都要求登錄用戶(hù)是管理員,但實(shí)際上并不要求管理員級(jí)的訪(fǎng)問(wèn)。這些應(yīng)用程序會(huì)在允許運(yùn)行之前執(zhí)行多種管理員訪(fǎng)問(wèn)檢查,其中包括:
管理員訪(fǎng)問(wèn)令牌檢查。
系統(tǒng)受保護(hù)位置中的“完全訪(fǎng)問(wèn)”訪(fǎng)問(wèn)請(qǐng)求。
將數(shù)據(jù)寫(xiě)入到受保護(hù)位置,例如,%ProgramFiles%、%WinDir% 和 HKLM\Software。
許多 Windows 應(yīng)用程序在設(shè)計(jì)時(shí)都沒(méi)有采用最小特權(quán)這個(gè)概念,并且沒(méi)有將用戶(hù)和管理員功能分為兩個(gè)不同的進(jìn)程。
默認(rèn)情況下,Windows 2000 和 Windows XP 將每個(gè)新用戶(hù)帳戶(hù)都創(chuàng)建為管理員;因此,關(guān)鍵的 Windows 組件(如“日期和時(shí)間”、“電源管理”控制面板)對(duì)于標(biāo)準(zhǔn)用戶(hù)就不能正常工作。
Windows 2000 和 Windows XP 管理員必須創(chuàng)建兩個(gè)不同的用戶(hù)帳戶(hù) - 一個(gè)帳戶(hù)用于管理任務(wù),另一個(gè)是標(biāo)準(zhǔn)用戶(hù)帳戶(hù),用于執(zhí)行日常任務(wù)。這樣,用戶(hù)必須退出其標(biāo)準(zhǔn)用戶(hù)帳戶(hù),并作為管理員重新登錄或使用“運(yùn)行方式”才能執(zhí)行任何管理任務(wù)。
借助“用戶(hù)帳戶(hù)控制”(UAC),Microsoft 將提供一種可以簡(jiǎn)化企業(yè)和家庭標(biāo)準(zhǔn)用戶(hù)桌面部署的技術(shù)。
按照最初在 Microsoft Windows NT 3.1 操作系統(tǒng)中的設(shè)計(jì)構(gòu)建 Windows 安全體系結(jié)構(gòu)后,UAC 小組力求實(shí)現(xiàn)一種兼有靈活性和更多安全性的標(biāo)準(zhǔn)用戶(hù)模型。對(duì)于 Windows 先前版本,在登錄過(guò)程中會(huì)為管理員創(chuàng)建一個(gè)訪(fǎng)問(wèn)令牌。該管理員訪(fǎng)問(wèn)令牌包含了多數(shù) Windows 特權(quán)和管理安全標(biāo)識(shí)符 (SID)。它保證了管理員可以安裝應(yīng)用程序、配置操作系統(tǒng)和訪(fǎng)問(wèn)任何資源。
在 Windows Vista 中,UAC 小組采用了一種截然不同的方法來(lái)創(chuàng)建訪(fǎng)問(wèn)令牌。當(dāng)管理員用戶(hù)登錄到 Windows Vista 計(jì)算機(jī)時(shí),將創(chuàng)建兩個(gè)訪(fǎng)問(wèn)令牌:一個(gè)是篩選后的標(biāo)準(zhǔn)用戶(hù)訪(fǎng)問(wèn)令牌,一個(gè)是完整的管理員訪(fǎng)問(wèn)令牌。此時(shí),使用標(biāo)準(zhǔn)用戶(hù)訪(fǎng)問(wèn)令牌而不是管理員訪(fǎng)問(wèn)令牌來(lái)啟動(dòng)桌面 (Explorer.exe)。所有子進(jìn)程都從桌面的這個(gè)初始啟動(dòng)(explorer.exe 進(jìn)程)繼承而來(lái),從而有助于限制 Windows Vista 的攻擊面。默認(rèn)情況下,所有用戶(hù)(包括管理員)都作為標(biāo)準(zhǔn)用戶(hù)登錄到 Windows Vista 計(jì)算機(jī)。
注意 對(duì)于以上綜述存在一種例外情況:訪(fǎng)客登錄計(jì)算機(jī)時(shí)所具備的用戶(hù)權(quán)限和特權(quán)要低于標(biāo)準(zhǔn)用戶(hù)。
當(dāng)管理員嘗試執(zhí)行管理任務(wù)(例如,安裝應(yīng)用程序)時(shí),UAC 會(huì)提示用戶(hù)批準(zhǔn)該操作。當(dāng)用戶(hù)批準(zhǔn)該操作時(shí),任務(wù)將通過(guò)管理員的完整管理員訪(fǎng)問(wèn)令牌啟動(dòng)。這是默認(rèn)的管理員提示行為,可在本地安全策略管理器單元 (secpol.msc) 中使用組策略 (gpedit.msc) 進(jìn)行配置。
注意 啟用了 UAC 的 Windows Vista 計(jì)算機(jī)上的管理員帳戶(hù)也稱(chēng)為“管理批準(zhǔn)模式下的管理員帳戶(hù)”。管理批準(zhǔn)模式標(biāo)識(shí)了管理員的默認(rèn)用戶(hù)體驗(yàn)。
每次管理提升也是特定于進(jìn)程的,這可防止其他進(jìn)程未提示用戶(hù)進(jìn)行批準(zhǔn)就使用訪(fǎng)問(wèn)令牌。這樣,管理員用戶(hù)可以對(duì)安裝哪些應(yīng)用程序進(jìn)行更精確的控制,同時(shí)又極大沖擊了期望登錄用戶(hù)使用完整管理員訪(fǎng)問(wèn)令牌運(yùn)行的惡意軟件。
通過(guò)使用 UAC 基礎(chǔ)結(jié)構(gòu),標(biāo)準(zhǔn)用戶(hù)也有機(jī)會(huì)按流程提升并執(zhí)行管理任務(wù)。當(dāng)標(biāo)準(zhǔn)用戶(hù)嘗試執(zhí)行管理任務(wù)時(shí),UAC 會(huì)提示用戶(hù)輸入有效的管理員帳戶(hù)憑據(jù)。這是默認(rèn)的標(biāo)準(zhǔn)用戶(hù)提示行為,可在本地安全策略管理器單元 (secpol.msc) 中使用組策略 (gpedit.msc) 進(jìn)行配置。