什么是IE中的保护模式(protected mode)

 

保护模式是从Windows Vista中引进的一个新的安全控制机制。它将操作系统中运行的进程(process)和对象(比如注册表,文件夹)进一步划分了安全等级。有3个级别(High, Medium, Low),如果一个Low安全级别的进程(比如一个IE进程)要往具有Medium级别的对象上写东西,就会被Access Denied掉。即使运行进程的账户具有往对象上写东西的权限,在保护模式下一样会被Access Denied掉,因为操作系统会先做保护模式下的安全审查,再做文件属性上的安全审查。

 

另外,由一个具有Low级别的进程产生的子进程也具有Low级别。

 

保护模式是对zone的补充,所以zone里面并不包含保护模式的功能,我们不能通过zone来取代保护模式的功能。

 

拿我们现在的例子来说,当用户点击打印报表的时候,IE进程会先加载print control, 这个control会再调用spool service.exe,通过spool service的帮忙来打开打印机窗口。IE如果开启了保护模式,就会运行在Low级别。IE进程调用的spool service.exe也就运行在了低级别,一个Low级别的进程是无法获得MediumHigh级别对象的write权利的,于是我们就看到了错误。下面的内容是我从你们出错的日志里拿出来的:

 

2011-02-25 13:15:28     13:15:28.0591302         spoolsv.exe       1596     RegOpenKey            HKU/S-1-5-21-1575878230-2625628130-970249512-61800         ACCESS DENIED            Desired Access: Read/Write      NT AUTHORITY/SYSTEM            00000000:000003e7

 

Spoolsv.exe虽然是运行在本机的System账户下,而且这个账户的确具有对HKU/s-1……这个注册表的写权限,但由于保护模式打开了,它会被保护模式先检查,于是它被降级了,只有Read权限了,所以就报错了。请注意,一个进程希望获得某个对象上的Write权限并不意味着这个进程一定会去Write些什么,就像每个人有创建google邮箱的权利但并不是每个人都会去创建。

 

如果勾上保护模式,肯定比不勾更安全,但同时也要做出牺牲,那就是善意的进程也会被封杀掉。因为有些进程它就是需要获得某些对象上的Write权限(它并不一定去写,也并一定会写些恶意的东西),如果这些进程的要求得不到满足,那就会报错。如果一个站点已经在trusted sitesLocal intranet sites里,也就意味着我们默认为这些站点都是安全的,所以也没有必要再一次限制这些站点。好比我们信任送水工到我们房间里换水,但我们又限制他用剪刀的权利(送水工用剪刀是为了拆开盖子,而不是行凶),这样他就不能拆开盖子,换水的动作就是失败了。

 

 

你可能感兴趣的:(Windows,Desktop)