扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
技术难度 Level300
内容简介 深度剖析了IE保护模式为什么能够帮助Windows Vista 达到前所未有的安全级别(甚至大大超过UAC能够达到的保护程度),同时还介绍了IE保护模式是如何利用文件虚拟重定向帮助老的IE加载项解决兼容性问题,真正完美实现既安全、又方便、且兼容的目的。最后还将介绍如何利用建立NTFS软链接的方法巧妙解决IE保护模式的Bug,让不兼容的IE插件可以顺利地在IE 7中顺利运行。
如今这世上,可谓真假莫辨,真的可以变成假的,假的也可以宣称自己是真的。这不,这几天笔者就遇到了一个非常怪异的问题,差点被IE保护模式功能的虚拟重定向功能给搞糊涂了。不过总算藉此机会好好了解一下IE保护模式,对于Windows Vista的这个新增安全功能又平添了几分信心。
原理简述
IE保护模式(Protected Mode),以前也叫做IE低权利(Low Rights)。在拙作《您必须知道的IE 7安全特性》里,已经就IE保护模式的基本原理做了简单的论述。这里需要强调一下的是,IE保护模式可能是Windows Vista里最严厉的安全措施,比我们熟知的UAC(用户帐户控制)还要严厉。事实上,IE保护模式依赖于Windows Vista的以下三大特性:
(1) UAC(用户帐户控制)
相信大家已经很熟悉了,可以让管理员帐户自动获得一个标准用户的访问令牌,以提升系统安全性。
(2) MIC(强制完整性控制)
这是Windows Vista安全架构中新增加的一种检测机制。大家知道,Windows 2000/XP安全体系里,系统把进程的访问令牌和资源的访问控制列表进行匹配比较,以确认该进程是否具有访问该资源的权限。而在Windows Vista下,除了遵守传统的安全控制机制外,还必须检查进程和资源对象的完整性级别,完整性级别低的进程,不能写入完整性级别高的资源对象。
有点晕,是不是?没事,下文就会对这个概念进行详细的实例阐述!
(3) UIPI(用户界面特权隔离)
完整性级别低的进程,不能向完整性级别高的进程发送Window消息。
怪异的权限问题
提示假设Windows Vista安装在D盘,当前的登录帐户为管理员,帐户名是Admin。红色的命令提示符窗口表示命令行工具只能在管理员权限下运行,蓝色的命令提示符窗口表示可以在UAC权限下运行。
遇到这个案例也有一点运气的成分:不知为什么,在笔者的计算机上,无法在IE浏览器里正常打开“紫光拼音输入法”,非常麻烦。但是在其他朋友的机器上,并没有重复这个问题,甚至在虚拟机里也不存在这个问题!
这个问题困扰了我很长一段时间,甚至迫使我不得不改用其他输入法工具,这使得资质鲁钝、不懂得“灵活变通”的我感到非常郁闷……在IE页面里按Ctrl+Space组合键,尝试呼出“紫光拼音”的输入状态条,结果失败,在这个过程中,如果用Filemon工具进行监测,结果会看到当IE浏览器尝试往D:\Users\Admin\AppData\Roaming\Unispim目录里写入文件(例如usrwl.dat)时,会出现Access Denied错误,如下图所示。看来这就是问题的根源了,很显然紫光拼音把它的重要配置文件都存在[用户配置文件夹]里,只有具备读写权限,紫光拼音才能正常工作。
完整性级别的深远影响
看起来,只不过是IE进程没有D:\Users\Admin\AppData\Roaming\Unispim目录的写入权限。这还不简单,修改一下权限不就行了?
然而如果用AccessChk命令检查NTFS权限,发现当前帐户Admin对D:\Users\Admin\AppData\Roaming\Unispim目录拥有读写权限,如下图所示。
这就奇怪了,明明Admin帐户有权写入该目录,为什么系统要说“不”呢?这里就要应用到前面所说的MIC机制。原来在Windows Vista底下,系统不光是查看资源对象的ACL,还要查看进程和资源对象各自的完整性级别(Integrity Level),就算进程满足资源对象的ACL要求,如果进程的完整性级别更低,那么该进程还是无法拥有资源对象的写入权限。这就好比男女双方求爱,除了看对方的经济收入等条件(相当于ACL),还要看是否门当户对(相当于完整性级别)J。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。