針對用戶帳戶控制Vista應用程序開發(fā)要求

字號:

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