LW安全性比较

摘要:Linux与Windows是目前两大主流操作系统,它们的安全性能的比较一直都是人们关心的问题。本文从6个方面简要分析比较了Linux与Windows的安全性能。 关键词:Linux Windows 安全 内核

1、概述

Linux与Windows都是我们所熟悉的两大主流操作系统。Linux是一种类似于Unix的操作系统,它奉行的是自由与开放原则,其目的是建立不受任何商品化软件的版权所制约的、全世界都能自由使用的UNIX兼容产品。Windows是由微软公司开发的,它所采用的是非自由、非开放模式,是一款大众化、商业化的操作系统。两大操作系统各有千秋,计算机界以及计算机爱好者们对它们之间的争论也层出不穷,其中最受争议的就是Linux与Windows的安全性能间的对比。本文对Linux与Windows是安全性能做了一些详细的分析。 Linux和Windows在总体设计思路上本身就完全不同。

从设计理念上说,Linux和Windows对于代码透明度这一问题上是完全不同的。Linux的源代码是完全开放的,任何人都可以可以拷贝、复制并且改进源代码。可以说,Linux系统的发展与壮大是由全世界成千上万的程序员设计和实现的。而Windows使用的是封闭源代码,因此微软的安全方法被称为“通过隐藏来保证安全”。

从设计框架上说,Windows操作系统更倾向于单用户结构,它将更多的功能集成到操作系统内部,并将程序与内核相结合;Linux则不同于Windows,它采用的是多用户结构,即假定用户较多,则对它们的信任较少,因此,它将用户区域与核心区域明显的区分开来。

根据设计思路的不同,两者在操作系统的安全问题上各有优势。但总体说来,Linux的安全性更加大家的认可。 2、从各个方面进行安全性比较 2.1基本安全

微软和Linux都提供了对验证、访问控制、记帐/日至、受控的访问保护实体、加密的支持。但Linux的表现更好一些,因为Linux还提供了Linux安全模块、SELinux和winbind。Linux用户不需对内核打补丁就能增加额外的安全机制。

Linux在LSM之上构建了多种访问控制机制,例如:为应用程序建立了单独的空间,使它们之间相互分离,也与基本的操作系统隔离,这样即使应用程序出现了安全问题也不会影响操作系统。同时,Linux的基本安全也可以通过应用程序增强。

Windows的限制在于基本安全是依靠MSCAPI的,在代码签名时信任多个密钥。微软的模型重点在于可以同时对一个产品使用弱加密或者强加密。尽管模块不是以相同的密钥进行签名,MSCAPI却信任许多根验证机构,代码签名也信任多个密钥。因此只要有一个密钥被泄露就会使整个系统异常脆弱。密钥泄漏的情况:授权的代码签名者不小心纰漏了自己的私钥,或者签名机构错误的签发了一个证书。这些情况曾经发生。 2.2源代码的安全

Linux和Windows对于代码透明度这一哲学问题上是完全不同的。Linux符合GNU通用公用许可证,用户可以拷贝、复制并分发源代码。Windows使用的是封闭源代码,不能对其代码进行随便的修改。

从表面上,Linux将其源代码完全开放,更容易受到黑客的破解和攻击。然而事实却并非如此,由于其源码可以让所有人阅读并修改,Linux的漏洞更容易被发现,并能立即被修改完善;而Windows对用户修改并编译Windows源代码的限制,降低了人们访问Windows共享源代码并寻找安全漏洞的热情。

在漏洞的发现和修补上,由于开源,Linux往往就像一直处于开发状态,因为整个Linux团体都在完善和关注其代码。一旦有人发现安全漏洞,人们就会对它进行修补,并把补丁程序发布给整个团队,因此及时性强,响应快。而微软作为一个商业性的组织,对于补丁的发布有明确的推出日期,因此,在这一点上Windows也处于非常不利的位置。 2.3网络安全与协议

Linux与Windows对网络安全和协议的支持都很不错。两者都支持IPSec,这是一个运行于IP层的开放的基于加密的保护方式。Linux下使用OpenSSH、OpenSSL和OpenLDAP,分别对应微软系统下闭合源码的SSH、SSL和LDAP。 但是,Linux的组网能力更加强大,它的TCP/IP代码是最高级的。Linux提供了对于当前的TCP/IP协议的完全支持,并且包括了对下一代Internet协议Ipv6的支持。Linux内核还包括了IP防火墙代码、IP防伪、IP服务质量控制及

许多安全特性。 2.4内核安全

Windows的架构整体性更强,操作系统的核心集成了很多其他功能软件,如浏览器。不利之处是:浏览器的缺陷可能导致集成到该核心上的所有其他程序都被暴露出来。而在球形设计中,Linux的任何一项功能几乎都没有不可避免地与其他功能纠缠在一起。也就是说,Windows把用户程序和操作系统的核心集成到一起,而Linux则把核心区域与用户区域区分开来。

从这个方面来看,Linux的安全性比Windows的安全性更好,因为这样即使程序出现来了问题,也不会影响到操作系统,相较Windows而言,它更好的保护了内核,使其不受其他用户程序的干扰。 2.5确信度

定义操作系统确信度的标准是公共标准(CC),这是ISO标准(ISO 15408)。关于确信度的等级有一个层次结构――从EAL1到EAL7。只有在特定的软件、硬件和系统配置下,公共标准的评估才是有效的。Windows的EAL比Linux要高,达到了EAL4,而Linux目前只达到了EAL3。SUSE正计划达到EAL4。从这点看来,Windows比Linux略胜一筹。但是,此确信度主要用于政府机构,特别是美国过防部。作为商业产品,能满足这一要求也是一件好事。不过大部分的用户都不需要达到国防部的标准。 2.6应用安全

由于微软IIS和Exchange/Outlook不断出现的安全问题,Linux显得更胜一筹。Apache和Postfix都是跨平台的应用程序,比微软的相应产品更加安全。由于Linux有内建的防火墙使得其安全性有所增强,Snort也是一个优秀的入侵检测系统。关于基于x86系统的Linux内核,一个很重要的特性就是IngoMolnar的exec-shield,可以保护系统不受缓冲区或者函数指针溢出的攻击,从而对那些通过覆盖数据结果或者插入代码的攻击程序有所防护。exec-shield补丁使攻击者很难实现基于shell-code的攻击程序,因为exec-shield的实现对于应用程序是透明的,因此不需要应用程序的重新编译。

微软正在大刀阔斧的重新设计产品的安全架构,并为已安装的系统提供补丁。不过旧版本的Windows产品仍然存在安全问题,这使得任务变得复杂。许多微软用户正面临安全威胁,而补丁在发布之前必须做好文档。另外,微软倾向于将应用程序的数据和程序代码混合在一起,比如ActiveX,这使得系统外的不可信数据也能被使用,甚至是利用不可信数据执行任意代码。在.NET框架下,微软应用程序的安全性有所改进。当然,对于那些异构平台,例如Linux、Windows、Unix尤其是建立在Java平台下的应用程序,微软的产品是有很大局限性的。 3、小结

本文讨论了Linux与Windows的安全性问题,从基本安全、源代码安全、网络安全与协议、内核安全、确信度、应用安全等方面进行了全面的对比,其中在网络安全与协议方面二者差不多,而在可信计算方面两者均做得不够,Windows只在确信度方面略胜一筹,其它方面Linux的安全性更好。因此最终得到结论:Linux与Windows在安全性方面各有优势,但是总的说来,Linux提供了不逊于Windows的安全性,Linux的安全性更加值得信赖。

参考文献:

[1]卿斯汉, 刘文清, 刘海峰, 操作系统安全导论[M], 科学出版社, 2003

[2]Brian Hatch,James Loo.王一川,译.LINUX 黑客大暴光 Linux 安全机密与解决方案(第2版)[M].北京:清华大学出版社,2003

[3](美)Anonymous John Ray.汪辉,张冕洲,等译. Linux安全最大化(第2版)[M].北京:电子工业出版社,2002 [4]P.Loscocco and Stephen Smalley.Integrating Flexible Support for Security Policies into the Linux Operating System.Technical report,NSA and NAILabs,2001

[5]Aron Hsiao.史兴华,译.Linux系统安全基础(第1版)[M]. 北京:人民邮电出版社,2002

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4