通常在提到微软的操作系统时,我们最关心的永远都是安全性。因为普及率非常高,再加上全球无数各种水平的用户都在使用它,同时在微软的操作系统上运行有大量质量良莠不齐的应用程序,这一切结合起来就让微软产品的安全问题非常突出。
例如前两年曾肆虐网络的冲击波、振荡波、斯文等病毒,都是利用了微软产品的漏洞以及用户的粗心大意传播开的。
微软自然不会让这种问题继续下去。在去年很长的一段时间里,微软全部的开发人员都停下了手头的开发工作,开始对现有产品进行安全性检查。这个检查直接影响了Windows XP SP2和Vista的推出时间,不过从检查之后发布的Windows XP SP2和Windows Server 2003 SP1来看,安全性确实得到了很大提高,长时间的等待是值得的。
虽然在打过补丁之后安全性得到了一定提高,不过这毕竟还是在现有漏洞上打补丁,总会让人觉得不够放心。那么全新的下一代操作系统在安全性方面会有什么进步?我们可以通过Vista测试版体验一下。本文以5219版Vista为例,在该版本中,安全性方面最主要的一个改进就是增加了一个叫做用户账户保护的功能(User Account Protection,UAP)。
Vista发展动态
Vista新成员WMP11亮相
作为Windows捆绑的播放器,WMP一直拥有巨大的用户群,它每一次新版本的发布都为很多Windows的粉丝们所关注。最近,WMP11的发布终于在Vista Beta1推出4个月后有了眉目。从截图来看,WMP11增加了预览功能,可以显示视频文件的缩略图。其用户界面大体上与前作相同,但在细节上,更突出了面板的质感,和晶莹剔透的Vista配合而相得益彰。
漂亮的Vista WMP11
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/windows/) 你可能觉得,这是一套相当安全并且方便的机制,因为只要在登录系统的时候输入一次用户名和密码,就可以在整个登录过程中直接执行任何具有权限的操作。同时只要保护好SAM数据库,也就不用担心系统的安全问题。然而事实远非如此,这样的做法虽然方便,不过却相当不安全。
我们可以考虑这样的情况:使用管理员账户登录系统后,我们运行的任何程序自然也将具有管理员权限。如果我们不小心运行了网上下载的含有恶意程序的文件会怎样?恶意程序在运行的时候会使用当前用户的访问凭据,也就是说程序的进程也具有了管理员权限,进而该进程可以对系统进行任何操作。意识到其中包含的风险了吧。
所以很多介绍系统安全的文章都会建议,平时使用计算机的时候最好不要用管理员账户登录,而是用权限小一些的账户,只有在偶尔需要进行维护或者其他必要操作的时候才使用管理员账户,或者直接使用Runas命令。这样才能保证系统安全。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/windows/)
小知识:不得不提的Runas命令
这里再介绍一下Runas命令。通过该命令,我们可以在保持当前用户登录的情况下使用其他用户的身份运行程序。例如,对于开始菜单中某个程序的快捷方式,我们只需要在该快捷方式上点击鼠标右键,然后点击“运行方式”命令,接着在弹出的对话框中选择“下列用户”选项,指定一个用户名并输入密码。这样程序就可以使用指定的用户身份运行了。
当然,如果你喜欢使用命令行方式,也可以运行CMD打开命令提示符,使用类似这样的命令:“runas user:要使用的用户名 要运行的程序的路径和名称”,按下回车,并输入该用户的密码。例如通过“runas user:administrator regedit”这样的命令就可以使用Administrator的身份运行注册表编辑器。
虽然我们可以在平时使用权限低的用户名登录,但在需要执行特定操作的时候使用runas命令,不过这还是有些麻烦,同时需要进行的额外操作也太多。为了解决这一问题,Vista中提供了UAP功能。
在介绍这个功能之前,我们先了解一下Windows中的各种权限是如何控制的。这部分主要以单机或工作组环境下的Windows XP Professional为例,同时也适用于Windows 2000/2003,不适用于Windows 98。
系统安装好后,所有用户的凭据信息(也就是用户名和密码)都被保存在本地SAM(Security Accounts Manager,安全账户管理器)数据库中。当用户登录系统时,首先要输入用户名和密码,这些信息由winlogon进程获取,并由LSA(Local Security Authority,本地安全验证)子系统提交到SAM数据库中验证。
如果SAM数据库中有符合条件的记录,那么LSA子系统就会生成一个访问令牌(Access Token),并传递给用户。当该用户需要运行程序或访问资源的时候,系统首先会在用户持有的访问令牌中查找相应的权限信息,然后和想要进行的操作所需要具有的权限进行比较,如果权限足够,那么就可以进行操作;反之操作则会被禁止。
以运行程序