深度剖析了IE保護(hù)模式為什么能夠幫助Windows Vista 達(dá)到前所未有的安全級別(甚至大大超過UAC能夠達(dá)到的保護(hù)程度),同時還介紹了IE保護(hù)模式是如何利用文件虛擬重定向幫助老的IE加載項解決兼容性問題,真正完美實現(xiàn)既安全、又方便、且兼容的目的。最后還將介紹如何利用建立NTFS軟鏈接的方法巧妙解決IE保護(hù)模式的Bug,讓不兼容的IE插件可以順利地在IE 7中順利運行。
如今這世上,可謂真假莫辨,真的可以變成假的,假的也可以宣稱自己是真的。這不,這幾天筆者就遇到了一個非常怪異的問題,差點被IE保護(hù)模式功能的虛擬重定向功能給搞糊涂了。不過總算藉此機會好好了解一下IE保護(hù)模式,對于Windows Vista的這個新增安全功能又平添了幾分信心。
原理簡述
IE保護(hù)模式(Protected Mode),以前也叫做IE低權(quán)利(Low Rights)。在拙作《您必須知道的IE 7安全特性》里,已經(jīng)就IE保護(hù)模式的基本原理做了簡單的論述。這里需要強調(diào)一下的是,IE保護(hù)模式可能是Windows Vista里最嚴(yán)厲的安全措施,比我們熟知的UAC(用戶帳戶控制)還要嚴(yán)厲。事實上,IE保護(hù)模式依賴于Windows Vista的以下三大特性:
(1) UAC(用戶帳戶控制)
相信大家已經(jīng)很熟悉了,可以讓管理員帳戶自動獲得一個標(biāo)準(zhǔn)用戶的訪問令牌,以提升系統(tǒng)安全性。
(2) MIC(強制完整性控制)
這是Windows Vista安全架構(gòu)中新增加的一種檢測機制。大家知道,Windows 2000/XP安全體系里,系統(tǒng)把進(jìn)程的訪問令牌和資源的訪問控制列表進(jìn)行匹配比較,以確認(rèn)該進(jìn)程是否具有訪問該資源的權(quán)限。而在Windows Vista下,除了遵守傳統(tǒng)的安全控制機制外,還必須檢查進(jìn)程和資源對象的完整性級別,完整性級別低的進(jìn)程,不能寫入完整性級別高的資源對象。
有點暈,是不是?沒事,下文就會對這個概念進(jìn)行詳細(xì)的實例闡述!
(3) UIPI(用戶界面特權(quán)隔離)
完整性級別低的進(jìn)程,不能向完整性級別高的進(jìn)程發(fā)送Window消息。
怪異的權(quán)限問題
提示假設(shè)Windows Vista安裝在D盤,當(dāng)前的登錄帳戶為管理員,帳戶名是Admin。紅色的命令提示符窗口表示命令行工具只能在管理員權(quán)限下運行,藍(lán)色的命令提示符窗口表示可以在UAC權(quán)限下運行。
遇到這個案例也有一點運氣的成分:不知為什么,在筆者的計算機上,無法在IE瀏覽器里正常打開“紫光拼音輸入法”,非常麻煩。但是在其他朋友的機器上,并沒有重復(fù)這個問題,甚至在虛擬機里也不存在這個問題!
這個問題困擾了我很長一段時間,甚至迫使我不得不改用其他輸入法工具,這使得資質(zhì)魯鈍、不懂得“靈活變通”的我感到非常郁悶……在IE頁面里按Ctrl+Space組合鍵,嘗試呼出“紫光拼音”的輸入狀態(tài)條,結(jié)果失敗,在這個過程中,如果用Filemon工具進(jìn)行監(jiān)測,結(jié)果會看到當(dāng)IE瀏覽器嘗試往D:UsersAdminAppDataRoamingUnispim目錄里寫入文件(例如usrwl.dat)時,會出現(xiàn)Access Denied錯誤,如下圖所示。看來這就是問題的根源了,很顯然紫光拼音把它的重要配置文件都存在[用戶配置文件夾]里,只有具備讀寫權(quán)限,紫光拼音才能正常工作。