使用者帳戶保護
Windows Vista 變更傳統的 Windows 權限模型,以協助使用者避免所執行的程式嘗試執行使用者不是真正想要或未授權的作業。基於此,「使用者帳戶保護」(之前稱為「最低權限使用者帳戶,或 LUA) 可讓使用者大部分時間都以低權限執行,同時又能夠輕易執行需要更多權限的應用程式。建立應用程式時若要利用「使用者帳戶保護」(User Account Protection , UAP),有兩件重要的事需要考慮:權限規格模型以及標準 UAP 執行模型。
權限規格模型
UAP 擴充已經在使用的存取權杖系統,以利用新權杖機制來管理 Windows 登入,它提供每個系統管理員登入兩個安全性權杖:UAP 權杖以及完整的管理權杖。
存取權杖包含登入工作階段的安全性資訊,可識別使用者和其群組及權限。作業系統使用權杖來控制安全性物件的存取,並控制使用者在本機電腦上執行各種系統相關作業的功能。UAP 權杖是一種特殊的存取權杖,定義了啟用 UAP 支援的系統上 Windows Vista 使用者執行預設互動式登入權限所需的最低權限。第二種權杖,完整管理權杖擁有為管理帳戶所授權的最大權限。
UAP 執行模型
除了權杖以外,在 UAP 下執行應用程式的基本執行模型使用由 UAP 增加的現有處理建立函數 (ShellExecute 呼叫 CreateProcess)。UAP 執行模型有四個部分:
- 「應用程式資訊服務」(AIS) 是一種系統服務,可啟動需要更高權限的應用程式,它會先取得使用者對於權限升級的同意 (透過「同意使用者介面」),然後以使用者的完整權杖為應用程式建立新處理序。
- 「同意使用者介面」是由 AIS 所啟動,並以系統權限執行來取得使用者的同意或憑證,以便使用完整的權杖來啟動應用程式。
- 「要求的執行層級」是應用程式的特色,它包括在啟動應用程式時要使用哪些權杖 (UAP 或完整)。系統會從應用程式的資訊清單讀取 requestedExecutionLevel、查詢 Windows Vista AppCompat 資料庫輸入或是使用 Windows Vista 安裝程式偵測技術,來判斷應用程式的「要求執行層級」。
- Windows Vista 提供的 AppCompat 資料庫包含最常見需要權限升級的舊有應用程式的資訊。
建立符合 UAP 的應用程式
使用 Visual Studio 工具的開發人員可以使用 AppVerifier 工具針對 UAP 規範來分析其程式碼。ClickOnce 和 Windows Vista 版本的 MSI (Windows Installer) 技術是完全符合 UAP 的,而且所有的應用程式開發人員都應該在使用安裝程式時嘗試利用這些技術。
請記住 UAP 規範其重點就是最低權限。如果您的應用程式在 Windows XP 或 Windows Server 2003 的非系統管理帳戶下可正確執行,則在 Windows Vista 上也不會碰到任何問題。
若要確保您的應用程式可在 Windows Vista 下正確執行,您應該以 USER 的身分來測試您的應用程式。
- 識別和修復錯誤以便讓您的 UI 可用 USER 的身分執行。
- 如果您的 UI 不需要任何系統管理權限就可運作,請以 USER 的身分來測試您的 UI 是否真的如此,並確定所有的作業都能正常運作。
- 如果您的 UI 只能以系統管理權限來運作,請以 USER 的身分來測試您的 UI 是否真的如此,並確定在啟動前升級 UI 要求。
對於視使用者為 Administrator 或 USER 來提供不同功能的應用程式,將會有方法可提供變動的存取權給應用程式的管理使用者。
回到頁首
安全性設定精靈
Windows Vista 可讓開發人員為「安全性設定精靈」(Security Configuration Wizard, SCW) 建立以角色為基礎的延伸模組,這樣他們就可以在其伺服器軟體中隨附「安全性設定精靈」延伸模組,讓客戶得以保護其伺服器,同時又能夠讓協力廠商軟體正常運作。這將就可讓開發人員為 SCW 製作新的以角色為基礎的延伸模組,這樣自動產生的安全性原則就可以根據伺服器角色 (服務、連接埠、功能) 來鎖定系統功能。
回到頁首
網路存取保護架構
為了確保網路的良好狀態及安全性,特別是支援漫遊運算和可攜式裝置連線的網路,Windows Vista 提供「網路存取保護」(Network Access Protection, NAP) 架構。NAP 可讓系統管理員定義和強制一些原則,即要求網路用戶端在獲得指定存取權之前,先建立其網路的信任和相容性。用戶端系統會獲得完整的授權或是將它們置於網路受限的子區段中,使它們只能擁有有限的存取權。
開發人員應該使用 API 層級的權限來存取 NAP 與「Windows 篩選平台」(Windows Filtering Platform, WFP),以透過下列方式來減少使用者和系統管理員的安全性工作負擔:
- 提供支援「防火牆」和 NAT 橫貫的應用程式特定安全性設定。
- 允許更詳細 (詳細至封裝層級) 的資料傳輸篩選。
- 在完全安裝和將它們整合到執行系統之前,隔離和驗證新工具及其設定。
參與 NAP 的網路存取用戶端軟體和網路存取伺服器,可確保只有狀態良好的系統才能登入網路。有問題的系統會放在受限的 VLAN 中修復後才能登入網路。
回到頁首
結論
除了核心作業系統本身的安全性改善之外,Windows Vista 還提供許多重要的功能可讓開發人員改善他們所設計的應用程式之安全性。這些功能包括「使用者帳戶保護」(UAP)、「安全性設定精靈」以及「網路存取保護」架構。準備將其應用程式在 Windows Vista 上執行的開發人員,可以利用這些功能來協助保護其客戶的安全性,並使其應用程式能順暢地執行。
回到頁首