热 点:
而运行在保护模式下的IE浏览器,IE进程的完整性级别是Low,这可以从它的访问令牌里得知。借助Process Explorer查看IE进程属性的“安全”标签页,可以看到其访问令牌里有一个“Mandatory LabelLow Mandatory Level”的SID(相应的标志位是“Integrity”),这表明IE进程的完整性级别是“Low”。
看来D:UsersAdminAppDataRoamingUnispim目录的完整性级别一定比IE进程高,所以IE进程才无法写入该目录。那么如何查看目录的完整性级别呢?非常可惜Windows Vista目前还没有提供查看的工具。不过幸运的是,Sysinternals所提供的AccessChk可以方便地进行查看。
提示由于聪明的Mark(Sysinternals的掌门,《Windows Internals》一书的作者)已经就职于, Windows Vista可能会内置这款工具。
在命令提示符下运行以下命令,就可以查看该目录下所有文件的完整性级别:
AccessChk -i D:UsersAdminAppDataRoamingUnispim
可以看到该目录下的所有文件的完整性级别都是“Medium”,如下图所示,难怪IE进程要被拒绝了!
可见,IE保护模式有多厉害!在UAC模式下,应用程序会尽可能运行在普通用户权限下,但至少还是可以访问[用户配置文件夹]里的内容,因为这时候应用程序的完整性级别也是“Medium”,所以不会受到限制。
独立的四套班子
读者朋友可能会问,既然IE浏览器运行在“Low”的级别,那么它怎么能够访问IE临时文件、历史等工作目录,这些目录不都是在[用户配置文件夹]里,它们的完整性级别应该是“Medium”啊?
原来,对于保护模式下的IE浏览器来说,它拥有一套独立的“四套班子”:
(1) IE临时文件: %userprofile%AppDataLocalMicrosoftWindowsTemporary Internet FilesLow
(2) 系统临时目录: %userprofile%AppDataLocalTempLow
(3) Cookies: %userprofile%AppDataRoamingMicrosoftWindowsCookiesLow
(4) 历史: %userprofile%AppDataLocalMicrosoftWindowsHistoryLow
这些目录的完整性级别都是“Low”,以便IE进程能够正常访问。
注意
值得一提的是,收藏夹并没有保护模式IE的独立版本,这又是为什么?原来无论是访问收藏夹,还是添加收藏夹,都会借助User代理进程(User Broker)完成,该代理程序和IE浏览器位于同一个目录,进程映像名为ieuser.exe。
代理进程的引入,充分体现了Windows安全设计中的特权分离思想:
Windows Vista把传统IE浏览器,把传统的IE进程一分为三,分别负责不同安全等级的任务。把最常用的、无需特权的网页浏览任务交给IE进程本身去完成;把中等特权的任务(例如保存图片),交给用户代理进程(ieuser.exe)去完成;把高特权的任务(例如安装加载项),交给管理员代理进程去完成(ieinstal.exe)。而老版本的Windows则是把所有的任务,不管其所需的安全等级,都交由一个IE进程去完成。以下的截图源自微软官方网站,由笔者对其进行“汉化”,仅供参考。