熱點推薦:
您现在的位置: 電腦知識網 >> 電腦常識 >> 正文

針對用戶帳戶控制Vista應用程序開發要求

2013-11-11 14:22:06  來源: 電腦常識 

  為什麼需要用戶帳戶控制?

  一直以來應用程序開發人員所創建的 Microsoft Windows 應用程序都需要過多的用戶權限和 Windows 特權這就經常要求執行用戶是管理員身份結果幾乎沒有幾個 Windows 用戶是在要求的用戶最小權限和 Windows 最小特權下運行由於標准用戶應用程序兼容性問題許多力求在易部署性易用性與安全性之間取得均衡的企業通常都采取作為管理員部署其桌面的方法

  為何在 Microsoft Windows Vista 之前的計算機上難以作為標准用戶運行?以下內容詳述了另外的原因

  許多 Windows 應用程序都要求登錄用戶是管理員但實際上並不要求管理員級的訪問這些應用程序會在允許運行之前執行多種管理員訪問檢查其中包括

  管理員訪問令牌檢查

  系統受保護位置中的完全訪問訪問請求

  將數據寫入到受保護位置例如%ProgramFiles%%WinDir% 和 HKLM\Software

  許多 Windows 應用程序在設計時都沒有采用最小特權這個概念並且沒有將用戶和管理員功能分為兩個不同的進程

  默認情況下Windows 和 Windows XP 將每個新用戶帳戶都創建為管理員;因此關鍵的 Windows 組件(如日期和時間電源管理控制面板)對於標准用戶就不能正常工作

  Windows 和 Windows XP 管理員必須創建兩個不同的用戶帳戶 一個帳戶用於管理任務另一個是標准用戶帳戶用於執行日常任務這樣用戶必須退出其標准用戶帳戶並作為管理員重新登錄或使用運行方式才能執行任何管理任務

  借助用戶帳戶控制(UAC)Microsoft 將提供一種可以簡化企業和家庭標准用戶桌面部署的技術

  按照最初在 Microsoft Windows NT 操作系統中的設計構建 Windows 安全體系結構後UAC 小組力求實現一種兼有靈活性和更多安全性的標准用戶模型對於 Windows 先前版本在登錄過程中會為管理員創建一個訪問令牌該管理員訪問令牌包含了多數 Windows 特權和管理安全標識符 (SID)它保證了管理員可以安裝應用程序配置操作系統和訪問任何資源

  在 Windows Vista 中UAC 小組采用了一種截然不同的方法來創建訪問令牌當管理員用戶登錄到 Windows Vista 計算機時將創建兩個訪問令牌一個是篩選後的標准用戶訪問令牌一個是完整的管理員訪問令牌此時使用標准用戶訪問令牌而不是管理員訪問令牌來啟動桌面 (Explorerexe)所有子進程都從桌面的這個初始啟動(explorerexe 進程)繼承而來從而有助於限制 Windows Vista 的攻擊面默認情況下所有用戶(包括管理員)都作為標准用戶登錄到 Windows Vista 計算機

  注意 對於以上綜述存在一種例外情況訪客登錄計算機時所具備的用戶權限和特權要低於標准用戶

  當管理員嘗試執行管理任務(例如安裝應用程序)時UAC 會提示用戶批准該操作當用戶批准該操作時任務將通過管理員的完整管理員訪問令牌啟動這是默認的管理員提示行為可在本地安全策略管理器單元 (secpolmsc) 中使用組策略 (gpeditmsc) 進行配置

  注意 啟用了 UAC 的 Windows Vista 計算機上的管理員帳戶也稱為管理批准模式下的管理員帳戶管理批准模式標識了管理員的默認用戶體驗

  每次管理提升也是特定於進程的這可防止其他進程未提示用戶進行批准就使用訪問令牌這樣管理員用戶可以對安裝哪些應用程序進行更精確的控制同時又極大沖擊了期望登錄用戶使用完整管理員訪問令牌運行的惡意軟件

  通過使用 UAC 基礎結構標准用戶也有機會按流程提升並執行管理任務當標准用戶嘗試執行管理任務時UAC 會提示用戶輸入有效的管理員帳戶憑據這是默認的標准用戶提示行為可在本地安全策略管理器單元 (secpolmsc) 中使用組策略 (gpeditmsc) 進行配置

  Windows Vista 更新

  以下更新體現了 Windows Vista 在功能方面累積的核心變化

  默認情況下將啟用 UAC

  所有後續的用戶帳戶均創建為標准用戶

  默認情況下在安全桌面上顯示提升提示

  後台應用程序的提升提示會最小化到任務欄上

  在用戶的登錄路徑中阻塞提升

  默認情況下在新安裝的系統中禁用內置管理員帳戶

  用戶帳戶控制和遠程應用場景

  新的默認訪問控制列表 (ACL) 設置

  UAC 工作原理

  本部分為應用程序開發人員介紹了 UAC 的體系結構和功能組件其中包括主題Windows Vista 的新技術UAC 體系結構

  Windows Vista 的新技術

  以下各部分詳細介紹了 Windows Vista 所應用的新技術

  安裝程序檢測

  通過 Windows Installer 為標准用戶修補應用程序

  用戶界面特權隔離

  虛擬化

  UAC 體系結構

  以下圖表體現了可執行程序在 Windows Vista 中的啟動流程

  UAC 體系結構

  

  .

  以下內容介紹了 UAC 體系結構圖表中顯示的流程以及當可執行程序嘗試啟動時如何實現 UAC

  標准用戶啟動路徑

  Windows Vista 標准用戶啟動路徑與 Windows XP 啟動路徑類似只不過包含了一些修改

  ShellExecute() 調用 CreateProcess()

  如果應用程序需要提升CreateProcess() 會調用 AppCompatFusion 和 Installer Detection 進行評估然後對可執行程序進行檢查以確定其 requestedExecutionLevel(存儲在可執行程序的應用程序清單中)AppCompat 數據庫存儲應用程序的應用程序兼容性修復條目信息Installer Detection 檢測安裝執行程序

  CreateProcess() 返回聲明 ERROR_ELEVATION_REQUIRED 的 Win 錯誤代碼

  ShellExecute() 專門等待這個新錯誤收到該錯誤後立即全面調用應用程序信息服務(AIS) 以嘗試進行提升後的啟動

  已提升啟動路徑

  Windows Vista 的已提升啟動路徑是一種新的 Windows 啟動路徑

  AIS 收到來自 ShellExecute() 的調用然後重新評估所請求的執行級別和組策略以確定是否允許提升並定義提升用戶體驗

  如果請求的執行級別需要提升則該服務將使用從 ShellExecute() 傳入的 HWND 啟動調用方交互桌面上的提升提示(基於組策略)

  如有必要在用戶給予同意或提供有效憑據後AIS 將檢索與相應用戶關聯的對應訪問令牌例如對於只屬於備份操作員組的用戶成員和屬於本地管理員組的用戶成員請求 highestAvailable 的 requestedExecutionLevel 的應用程序所要檢索的訪問令牌是不同的

  AIS 重新發出 CreateProcessAsUser() 調用提供管理員訪問令牌並指定調用方的交互桌面

  UAC 是否會影響您的應用程序?

  您的應用程序是否會受到 UAC 的影響取決於應用程序的當前狀態多數情況下無需進行任何更改就可符合 Microsoft Windows? 安全要求然而有一些應用程序(包括業務線 (LOB) 應用程序)可能需要對其安裝運行和更新過程進行更改才能在 Windows Vista UAC 環境中正常工作

  注意 如果應用程序在 Windows XP 上可作為標准用戶正常運行那麼它同樣也可以在 Windows Vista 上作為 STANDARD 用戶正常運行

  有關本主題的詳細信息請參閱 Windows 幫助文件中的以下分部分

  為什麼需要消除應用程序的管理依存性?

  降低應用程序的總體擁有成本

  如何確定應用程序是否存在管理依存性?

  對於合法的管理員應用程序有什麼要求?

  為 Windows Vista 設計應用程序

  以下列表介紹了為 Windows Vista 設計應用程序的工作流

  第一步測試應用程序的應用程序兼容性

  第二步將應用程序分類為標准用戶管理員或混合用戶應用程序

  第三步重新設計應用程序功能以兼容 UAC

  第四步重新設計應用程序用戶界面以兼容 UAC

  第五步重新設計應用程序的安裝程序

  第六步創建應用程序清單並將應用程序嵌入其中

  第七步測試應用程序

  第八步使用 Authenticode 對應用程序簽名

  第九步加入 Windows Vista Logo Program

  為標准用戶部署和修補應用程序

  通常各企業必須考慮如何以自動化方式將應用程序安裝到其用戶的工作站上以此來降低管理成本這個問題基本上涉及兩方面一是如何將這些應用程序打包以進行部署二是利用什麼技術對其進行部署在小型企業環境中可能不需要采用加強的自動化部署機制


From:http://tw.wingwit.com/Article/Common/201311/5272.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.