以下内容仅为个人意见,所以未必和事实相符!
从各方面资料和我使用的第一印象,sp2的重点就是对于安全性的提高!从微软站点的说明也可以看出这点,原文:
Microsoft Windows XP Service Pack 2 (SP2) provides an enhanced security infrastructure that defends against viruses, worms, and hackers, along with increased manageability and control for IT professionals and an improved experience for users.
因为它所来带来的变动是从底层开始,所以更新一定要考虑到对原有应用程序的影响,也许你会发现原有的一些应用不能正常运行。为什么这么说,一位微软产品开发部经理(大概是这个职位)Tony Goodhew说:It may surprise some of the developers that we are changing some defaults, and that may affect the way some of the older applications run(因为sp2修改了许多系统默认值,比如ICF现在默认是打开的,如果开发人员在开发过程使用了默认值,那么老的应用程序就会受影响)。对于我们开发人员而言,在开发过程应该尽量避免这种情况发生,不要使用默认值。微软还专门提供在线培训,如果安装sp2。以下信息,开发人员可以看看:
http://msdn.microsoft.com/security/productinfo/XPSP2/default.aspx
SP2 will break some applications because they are insecure," Goodhew said. "Security is important, and it is not just a Microsoft problem but a developer community problem. We all need to work together to create a more secure computing environment“我同意这种说法,软件的安全可靠需要各个环境共同来打造。
而且另据报道,之所以sp2发布时间这么长,是因为它也做为到longhorn系统的过渡的做准备,所以代号是“Springboard“(这是我说的,别当真),下面说说细节:
- Internet Connection Firewall (ICF):默认打开,增加出口扫描,还有以前仅仅在Microsoft Internet Security and Acceleration (ISA) Server 2000 企业版中提供的功能。它可以通过域控制器进行集中管理(比如它可以锁住一个域内所有计算机),最明显的它增加了管理面板(GUI),另外对于开发人员可以调用新的API来管理ICF,比如INetFwOpenPort。
- DCOM/RPC 安全加强,这点开发人员要注意
- 新的Windows更新程序,新的内存管理代码防止buffer-overrun攻击。
- 任务调度的变化:任务被指派给特定用户而不是默认的LOCAL\SYSTEM ?用户
- Internet Explorer(IE)、Outlook、Outlook Express、Windows Messenger
全部采用新版本,比如outlook对于信件预览安全性 - IE增加的内容也不少,比如增加插件管理面板,偷偷被安装的插件也一览无余;
- IE Local Machine的概念的变化
- MIME类型检查:现在要求Content-Type 和实际文档类型必须一致,比如如果指定是text/plain 类型而实际是MIME sniff类型,那么IE将在cache重命名它,以前好像文件实际类型优先,比如用text类型标识一个gif文件,也是可以正确显示,但是现在它将作为一个BUG;IE的Pop UP管理也是新的了。
- 对于内存管理:如果处理器支持,它将取消data only页的执行许可(这个技术不完全,还要硬件了配合),还有一些俺不懂的技术。
大体上我了解的就这些。可能有些说的不大准确,那就可能是因为我知识所限。
--------------
先说声抱歉,果然是我知识还不够,不过也因此借这个机会又学到一点。下面更正一些不大准确的内容:
在SP2中Ooutlook Express,我感觉的变化就是对于HTML格式邮件预览安全性的增强,看看截屏大概就了解了(http://image2.sina.com.cn/IT/images/U74P2T78D122F3305DT20040326132813.gif)刚才搜索了一下,原来在新浪有一篇介绍http://tech.sina.com.cn/s/n/2004-03-26/1335339748.shtml
对于内存管理部分(No eXecute),其实这部分内容我最陌生了,不过是现学现卖。
上文我提到的需要硬件结合就是指cpu要支持。太深入我就不敢说了,NX bit技术我理解是当cpu工作在PAE(Physical Address Extension)模式下,它的PTE(page table entry )的第63位变成NX标识位,来标识是否执行。而sp2的做法是除非某个位置明显含有可执行代码,否则NX通过CPU将应用程序中所有的存储位置都标识成“不执行”。因此,当“蠕虫”或病毒在内存储中标识为“只存数据”的部分插入程序代码时,该代码将无法运行。
64位处理的PTE表图示我不知道什么样的,但是可以看看32位处理的

这种变化将影响到某些应用程序,比如Just-In-Time 程序,因为他们将执行代码存储在Data页。对于Microsoft .NET Framework's 的CLR可以放心,它不会受到影响,但是可能JAVA程序会受到影响!
不知道,我写的这些是不是又出现新的BUG。
打印 | 张贴于 2004-04-28 10:28:00 | Tag:暂无标签
留言反馈
我想核实一下
最后一点也不太准确,其实是 NX(No eXecute),就是和 CPU 厂商配合,对于数据缓冲区的内容不当指令执行,所以即使缓冲区溢出将指针指到数据缓冲区的恶意代码, CPU 也不会执行 :)