針對(duì)用戶帳戶控制Vista應(yīng)用程序開(kāi)發(fā)要求

字號(hào):

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