分类:
2008-10-16 19:07:36
为什么需要用户帐户控制?
一直以来,应用程序开发人员所创建的 Microsoft 应用程序都需要过多的用户权限和 特权,这就经常要求执行用户是管理员身份。结果,几乎没有几个 Windows 用户是在要求的用户最小权限和 Windows 最小特权下运行。由于标准用户应用程序兼容性问题,许多力求在易部署性、易用性与性之间取得均衡的企业通常都采取作为管理员部署其桌面的方法。
为何在 Microsoft Windows Vista 之前的计算机上难以作为标准用户运行?以下内容详述了另外的原因:
许多 Windows 应用程序都要求登录用户是管理员,但实际上并不要求管理员级的访问。这些应用程序会在允许运行之前执行多种管理员访问检查,其中包括:
管理员访问令牌检查。
系统受保护位置中的“完全访问”访问请求。
将数据写入到受保护位置,例如,%ProgramFiles%、%WinDir% 和 HKLM\Software。
许多 Windows 应用程序在设计时都没有采用最小特权这个概念,并且没有将用户和管理员功能分为两个不同的进程。
默认情况下,Windows 2000 和 Windows XP 将每个新用户帐户都创建为管理员;因此,关键的 Windows 组件(如“日期和时间”、“电源管理”控制面板)对于标准用户就不能正常工作。
Windows 2000 和 Windows XP 管理员必须创建两个不同的用户帐户 - 一个帐户用于管理任务,另一个是标准用户帐户,用于执行日常任务。这样,用户必须退出其标准用户帐户,并作为管理员重新登录或使用“运行方式”才能执行任何管理任务。
借助“用户帐户控制”(UAC),Microsoft 将提供一种可以简化企业和家庭标准用户桌面部署的技术。
按照最初在 Microsoft Windows NT 3.1 操作系统中的设计构建 Windows 体系结构后,UAC 小组力求实现一种兼有灵活性和更多安全性的标准用户模型。对于 Windows 先前版本,在登录过程中会为管理员创建一个访问令牌。该管理员访问令牌包含了多数 Windows 特权和管理安全标识符 (SID)。它保证了管理员可以安装应用程序、配置操作系统和访问任何资源。
在 Windows Vista 中,UAC 小组采用了一种截然不同的方法来创建访问令牌。当管理员用户登录到 Windows Vista 计算机时,将创建两个访问令牌:一个是筛选后的标准用户访问令牌,一个是完整的管理员访问令牌。此时,使用标准用户访问令牌而不是管理员访问令牌来启动桌面 (Explorer.exe)。所有子进程都从桌面的这个初始启动(explorer.exe 进程)继承而来,从而有助于限制 Windows Vista 的攻击面。默认情况下,所有用户(包括管理员)都作为标准用户登录到 Windows Vista 计算机。
注意 对于以上综述存在一种例外情况:访客登录计算机时所具备的用户权限和特权要低于标准用户。
当管理员尝试执行管理任务(例如,安装应用程序)时,UAC 会提示用户批准该操作。当用户批准该操作时,任务将通过管理员的完整管理员访问令牌启动。这是默认的管理员提示行为,可在本地安全策略管理器单元 (secpol.msc) 中使用组策略 (gpedit.msc) 进行配置。
注意 启用了 UAC 的 Windows Vista 计算机上的管理员帐户也称为“管理批准模式下的管理员帐户”。管理批准模式标识了管理员的默认用户体验。
每次管理提升也是特定于进程的,这可防止其他进程未提示用户进行批准就使用访问令牌。这样,管理员用户可以对安装哪些应用程序进行更精确的控制,同时又极大冲击了期望登录用户使用完整管理员访问令牌运行的恶意软件。
通过使用 UAC 基础结构,标准用户也有机会按流程提升并执行管理任务。当标准用户尝试执行管理任务时,UAC 会提示用户输入有效的管理员帐户凭据。这是默认的标准用户提示行为,可在本地安全策略管理器单元 (secpol.msc) 中使用组策略 (gpedit.msc) 进行配置。
[1]