Linux中的抗病毒与强大的加密技术
庄力可 杜军平 赵敏哲
一、Linux 中的抗病毒
以前我们认为,引导区和文件病毒只可能出现在PC中。高端系统如UNIX将使用权限清楚地划分了两个等级:用户和系统。一个普通用户,或一个普通用户的程序,没有删除系统文件和删除其他用户文件的权利,因为这些操作需要有系统权限。Unix系统的管理员,或称“超级用户”,是唯一拥有系统权限的人。因此Unix的普通用户只有有限地通过从别处引入危险文件,并引起系统损坏的能力。这就是我们从未听说过存在Unix病毒的原因。我们有时听说Unix “Worm”,这是一种不断复制自身、侵占内存,从而堵塞系统的程序。“Worm”不像病毒那样有危害性,只需要很少的智慧即可将其攻破。
人们认为,Linux如同Unix一样,与一些“轻量级”的操作系统(例如MS DOS、Windows 3.1、Windows 95、Windows 98及Macintosh)相比较,可以认为它是防病毒的。已经发作的、给全球成百上千的使用Windows 95/98的PC造成无可挽回的损失的、致命的Chernobyl病毒,对安装Linux的机器未造成影响。
Windows NT与Unix一样,有不同的用户和系统权限。Windows NT在理论上像Unix的任何版本一样防病毒。但是,即使在Windows NT上的应用程序,也容易染上一类新的病毒,即宏病毒。它是通过E-mail附件传播的,它使Word和Excel文件被感染。“Melissa”就是一种这样的宏病毒。仅使用过PC和苹果机的用户认为病毒是不可避免的。一个使这些用户高兴的消息是,现在有一些操作系统,因为它们具有比较好的安全设计,因此从本质上它们具有抗病毒的能力。这些操作系统有:Unix、Linux,及稍差一些的Windows NT。
目前Linux享有抗病毒的美誉,原因之一是与无处不在的Windows计算机相比,由于Linux操作系统有限的市场份额,它未引起病毒编写者的注意。当Linux变得更普及时,针对它的病毒也许会出现。一个Linux病毒会导致粗心的用户丢失自己的文件,而系统文件和其他用户的文件并没有受到影响。个人计算机用户应特别小心不要以超级用户身份登录系统,去做系统管理员应做的工作。以超级用户身份登录系统,并且不明智地下载了病毒,将会导致出现发生在Windows PC上的那样大范围的损失。
此外,在免费的Gnumeric电子报表程序中,增加与“宏”相似的编程特点也引起了人们的关注。开发者宣称,Gnumeric只允许在电子报表中执行可信任的代码,发生像Melissa类型的病毒进攻是不可能的。除非有公共密钥结构的支持(它可验证外部代码),否则对具有宏的电子报表的引入不能看作是安全的。
二、全球范围的强大加密术
如果你的公司不是设在美国或者加拿大,而且它不是银行或金融机构,你就不能得到一个带有强加密能力的、由美国生产的硬件或软件产品。即使你是一个北美公司,你也不能得到一个真正安全的跨越国界的网络,而这个网络把你的许多国际分支和商业伙伴联接在一起(一个虚拟的私人网络)。许多流行的商业软件(例如操作系统、Web服务器和通信软件)来自美国公司,它们遵守美国的禁止出口超过56位的加密软件的法律。
最近几年,德国Brokat公司已经向美国和加拿大以外的用户出售了自己独立开发的、强有力的加密产品。大量的德国和其他欧洲银行已采用了Brokat的解决方案,以合法地获得强有力的加密。但是这些产品并不便宜。这些有名的数学算法,提高了从其他途径得到的正当的、已有的加密软件的价格。但这并不是说,你可以从其他北美以外的途径得到加密“补丁”,并将其用于常用的美国商业软件。美国法律不允许在美国开发的软件中加密“陷阱”中采用这样的“补丁”。你需要从非美国的供应商处购买全部的解决方案。它既昂贵,也没有在原始标准软件中采用的加密算法那样雅致。33个发达国家的限制具有加密产品出口的Wassenaar协议,使得这个任务变得更加艰巨。
如果你想建立一个安全的电子商务的网站,你需要加密你的网站和顾客间的通信渠道,使得没有人能窥视到随着在Internet上信息的上行和下行,你从事了哪些商业活动。完成这个任务的标准技术被称为SSL(安全插口层),其创始人是Netscape公司。如果你不在北美,也不是银行或金融机构,像Netscape企业服务和微软互联网信息服务这样的Webserver,仅仅允许你使用42位的SSL,但它可以很容易地被攻破。你不能指望以一个合理的价格,得到一个采用了强加密的、标准的、简单的解决方案。
但是,这些表面上难以解决的问题是可以解决的。你不能买任何这类产品,但你能免费得到其中的一种。你可以在任何地点(包括美国)下载市场上流行的、免费的、源代码形式的Apache Webserver,然后合法地下载流行的、免费的“SSLeay”SSL包,并在美国以外的任何地点下载Apache的“mod-ssl”包。在“mod-ssl”包中的一个小功能,可以对Apache的部分源代码进行重写,造成在代码中的加密陷阱去调用SSLeay子程序。接着你自己编译源代码,建立一个安全的Webserver。这是一个看起来非常简单的过程。请注意原始的Apache源代码并不包含加密和陷阱,因此这个方案在法律上避开了美国的出口法。它可以给你一个有128位强SSL加密的、完全符合标准的Webserver,通过这个服务器你可以建立一个电子商务网站解决方案。
此外,你可以采用被独立审核的SSLeay源代码,它使你确信加密算法已被完全地实施,而没有任何隐藏的天窗和在加密强度上的减弱。这一点是任何商业软件所不具备的。有趣的是,Netscape在40位的加强产品上也经常采用128位的SSL。他们将剩余的88位以纯文本的方式传输。如果没有能力去审核源代码,并对它进行再编译,那你就没有办法确保这种暗中对加密强度的降低在具有强加密的商业产品中不会发生。
以上事件对Linux只有间接影响。目前Apache-Linux的结合是非常普遍的,并且是事实标准的一种。Apache可运行于所有版本的UNIX和Windows NT,但是目前的Windows NT版本并不是很稳定。所以如果你的业务不在美国政府关于强加密的合法使用范围内,运行于Unix的Apache也许是唯一的实现安全电子商务的途径,而运行于Linux上的Apache也是一个自然的选择。
其他强大的免费加密产品,还包括PGP(Pretty Good Privacy),这是一个有公开密钥的加密包;与GNU相对应的GPG(GNU Privacy Guard),它不使用带有专利的算法及在Java应用程序中免费采用的Cryptix Java类。已公布的有综合功能的FreeS/WAN强加密包,它可以提供基于TCP/IP网络的安全通信。与仅能对浏览器和Webserver之间的HTTP通信进行加密的SSL不同,FreeS/WAN可以加密任何TCP/IP通信,包括FTP(File Transfer Protocol)。FTP由于其在网络上以纯文本的方式传输密码而被认为是不安全的。由于显而易见的原因,FreeS/WAN完全是在美国以外的国家开发的,它是创建一个虚拟的私人网络的最廉价的正当方法。所有这些免费产品都能运行于Linux,其源代码可方便地被审核和采用。
发布人:netbull 来自:Linux世界杂志