Welcome 微信登录
编程资源 图片资源库

首页 / 软件开发 / .NET编程技术 / Windows 7开发:用户界面特权隔离 - 白皮书

Windows 7开发:用户界面特权隔离 - 白皮书2011-04-18 MSDN 介绍

在早期版本的Windows中,同一个用户帐号下运行的进程共享相同的安全权限。例如,一 个线程可以发送窗口信息到另一个线程中的窗口。从Windows Vista开妈这个并不总能正常工 作。新特性权限级别被附加到进程上(也可以是其它特性)。进程不可以将消息窗口发送到 具有更高权限级别的进程,尽管他们以运行于同一个用户帐号(例如当前登录用户)。

UIPI防止来自其它可能更高权限的线程中创建的windows消息进行恶意代码攻击。

显示UIPI

此问题在UAC(用户帐户控制)启用时最为清晰(默认情况下是启用的)。UAC中,一个管 理员登录获取两个令牌对象:第一个是管理员令牌,具有最高权限(类似于Windows Vista以 前版本的系统帐号),第二个令牌是过滤后的版本,带有标准用户权限。

默认情况下,进程用完整性级别为normal(UIPI 级别分为low,normal,high,和system)的 标准用户启动。作为对比,进程使用管理员权限(例如,当用户右击“Run as Administrator”或用”runas”命令调用SheellExecute)使得进程具有high的权限级别。

如此,系统可以用使单一权限级别运行两种类型的进程(技术上讲用的是同一用户帐号) 。UIPI支持低完整性级别(integrity level)的进程和更高级别的进程进行通信。

使用用Windows Sysinternals 的Process Explorer查看权限级别 (http://www.microsoft.com/technet/sysinternals ) ,选择“Integrity Level”列

这里有 个基于同一图片的两个进程的例子,其中一个用标准用户权限启动另一个使用管理员权限启 动。注意他们是不同的完整性级别(integrity level)。