【IT168 专稿】在计算机安全设计方面一直存在一个一个最基本的难题,就是如何寻找在安全性和易用性之间的一个合适的平衡点。如果一个产品的安全性非常复杂而不方便使用,那么结果很简单,没有人会去使用它。即使一个功能可以提供非常好的安全保护,如果它过于复杂或者在可用性上非常差劲,那么它有可能会被最终用户或网络管理员禁用,因此实际上它并没有真正给用户带来好处。
微软号称Windows Vista是史上最安全的Windows操作系统,1月30日,微软的Vista已经正式面向消费市场发布,开启了一个操作系统的新时代,关于Vista的安全性可以说是众说纷纭,而且不同意见之间的差距很大,微软负责Windows平台开发的副总裁Jim Allchin近日在Vista博客上发表了一篇文章,介绍了Vista在设计、测试阶段的一些考虑,让我们更加深入的了解Vista这款操作系统的安全性和易用性之间的关系。
微软默认情况下其用了一些安全功能。对于安全性和易用性的问题,同样对微软也是一个难题,在保护安全性的同时,同时又要保证Vista非常易于使用,从而方便这个操作系统被部署安装。微软必须把握好安全性和易用性之间的平衡,如果把系统防护的过于严密,则用户可能会关闭一些关键的安全功能,还有可能带来更坏的影响是用户不会使用这个操作系统,而继续使用老的Windows系统,如果真是这样,那么新系统的新安全功能实际上并没有给用户带来真正的好处。
Jim相信,Windows Vista在大大提高了安全功能的同时,同样也是最好用的操作系统之一。他认为没有一个系统是人天生就会用,也没有一个系统是坚不可摧的,从过去到现在到将来不会有这样理想的软件。而且,人们通常错误的认为深度防护安全功能就是难以穿透的安全防线。 安全性和易用性的平衡是微软所遇到的最难处理的平衡问题:多少应用程序将会被一个更坚固的安全防线所影响,又有多少用户会因为认为易用性受到了影响而可能关闭一个安全功能?
在Vista中所遇到的这种挑战的一个明显的例子就是用户帐号控制(UAC)功能。按照最简单的方式来理解,我们可以认为UAC是为那些“普通用户”或“非管理员用户”而准备的。在Windows Vista之前,有一些非常重要的关键操作对“普通用户”或“非管理员用户”来说是不可完成的。由此带来的后果是,几乎每一个人都以本地管理员的权限来登录系统,第二个影响是,大多数软件开发者(包括微软在内)在开发软件的时候,通常假设用户将是具有管理员权限的。事实上有很多企业客户在部署他们的系统环境的时候,通常把很多用户划分为普通用户,但由此带来的问题通常是一件非常麻烦的问题,通常会让很多用户无法体验完全功能的软件。
因此对于Windows Vista来说,UAC的主要目标就是帮助那些普通用户来完成那些需要管理权限的任务,并且能够让用户区分这种权限的请求是来自于恶意软件还是正常的应用程序。我们要知道,在Vista以前,当用户以管理员身份登录系统后,他们(几乎是所有软件)都具有对系统的完全控制的权力,当然也包括修改或覆盖本地安全设置。在Vista中,通过UAC,普通用户不仅可以完成普通的任务,还可以通过验证来完成一些关键操作,而又可以防止他们因为不小心而进行的错误的操作。UAC功能就是要防范两种人:一是有恶意企图的人,另一种是那种不了解一些关键任务的执行后果的那些普通用户。
为了做到这一点,系统不得不检查用户所执行的每一个系统任务,并针对每一个问这样的问题:“要完成这个任务,该用户需要具有管理员权限么?”在Windows XP下,当一个用户进行影响整个系统的修改的时候,通常需要要求具有管理员权限。事实上通过某些更合理的规则,可以做到在更好的保护系统的同时,又可以给用户更方便的易用性。在以前版本的Windows中,微软把很多功能聚合到了一起,而实际上其中只有一部分功能需要用户具有管理员权限。举例来说,在Windows XP中,为了更改时间或时区,你必须具有管理员权限。修改时间的权限被限制的原因是,通过修改系统时间,用户可以进行一些恶意操作,例如欺骗系统日志或回溯电子邮件等。但是事实证明,对于一个住在西部海岸的经常出差的企业家来说,为了准时参加在纽约举行的一个会议,而需要修改时区设置,实际上是不要保护的。因此在Windows Vista中微软把改变时区设置分离出来,从而允许一个普通用户来修改时区设置。
由这个改变所带来的结果是,你会发现,在Windows Vista中,如果你在系统上完成了安装过程,作为一个普通用户你就可以方便的使用系统。剩下的问题是,当用户需要完成一个需要管理权限的任务的时候,该怎么办?为了满足这种需要,在Vista中当普通用户要执行需要管理员权限的任务的时候,系统会弹出一个权限认证框,输入具有权限的帐号和密码,就可以执行该任务。
当微软在Vista中第一次设计这个功能的时候,在提示用户输入具有管理员权限的用户名和密码前,要求用户输入Control-Alt-Delete(C-A-D)组合键,因为这样可以防止一些木马程序对帐号和密码信息的窃听。之所以这样设计的原因是,输入这种组合键是唯一可以让用户确认这是系统(而不是某些钓鱼功能的欺骗)要求你输入验证信息,一个很简单的比喻是,你不会把你的银行卡密码告诉一个主动给你打来的电话(要求你输入银行卡信息);只有你确认要求你输入密码的系统不是冒牌货的时候,你才会放心的输入密码。同样的道理,C-A-D是可以确保你直接与系统进行交互的最有效的方式,它可以让你确信另一端就是系统本身。当用户键入C-A-D组合键,启动安全桌面(Secure Desktop),这是一种受限模式,系统可以继续运行,然后要求用户从这个桌面上输入验证信息。安全桌面的好处是恶意软件很难来模仿这种运行方式,还有让用户可以很清楚的意识到他们工作在安全桌面下,因为所有正在运行应用程序的背景色都变灰了。而输入验证信息的窗口则被高亮显示在安全桌面的顶端。