[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 网络安全 > 其它 > 正文

OpenSSH的幕后故事

作者:wxjoshua 来源:freebsdchina (2005-03-23 12:14:33)

 从前,一个名为Tatu Yl?nen的芬兰程序员开发了一种网络协议和服务软件,称为SSH(Secure SHell的缩写)。



我没有与Yl?nen先生交谈过,所以无法知道他当时的确切动机,但是SSH的实际结果是为世界提供一种telnet加密选择。毫无疑问,这曾经是—现在依然是—一个非常有用的工具。



但是,随着时间的过去,管理SSH源代码的许可——因为不仅可得到SSH预编译二进制代码而且可以得到其源代码——已经日益受到限制。实际上,现在它远远超出了公开源代码许可的限度。



无可辩驳,这种转变是开发者的特权,但是也激怒了一些倚赖SSH的人。你看,将telnet归类为“安全隐患”并非没有道理:一个真实的声明但没有彻底抓住问题的症结所在。那些已经开始使用SSH的人当然不愿意停止,而且不管鉴于什么原因,他们都不愿意支付Yl?nen先生的公司SSH.com索取的 SSH商业使用许可费。



不过,这个故事有个好的结果,由于SSH.com许可的这些极端限制,鼓舞了一阵开发努力,不仅产生了真正公开源代码的SSH软件,而且可能将成为未来网络安全中的关键部分。



对SSH.com许可不满的DIY是一些OpenBSD的开发人员,OpenBSD是一种公开源代码基于BSD的操作系统,以其一门心思集中在安全方面而知名。



OpenBSD开发人员需要SSH软件——客户端和服务器都要——这样在制作OS剩余部分时,他们才能在一种BSD风格许可协议下继续使用和发行。



OpenSSH的官方历史竭尽一切详细描述了事件的顺序。在大纲中,OpenSSH开发人员回到无限制的最后版本SSH1,从那儿开始。他们加进了自无阻碍版发布后自己制作的所有修正,然后根据自己的偏爱着手改进此软件。



OpenBSD被高度重视的原因之一是,其开发人员在发行中对此软件的源代码进行了仔细回顾。结果,OpenBSD推崇一种令人印象深刻的追踪记录法,以用于发现并修正安全问题,可在漏洞大范围扩散开来以前解决问题。



OpenSSH最初版本在1999年末发布,获得了巨大成功。根据OpenBSD计划领导人Theo de Raadt在Linux Weekly News的简短采访,在4月至6月之间OpenSSH站点的访问超过25万人次。



对Unix软件许多部分太过深奥的谴责大家想必印象深刻。我们在很大程度上得感谢一个小组织的努力,它使用OpenSSH,将之做成可移植到其它类Unix式系统,包括Linux。



但是OpenSSH 1.2.2(第一个发行版本这样称)有局限性,因为它只支持SSH1协议。下一代版本的SSH协议SSH2进行了一些改进,但一直处于限制许可之下,所以不可能退回早期版本的SSH2,象OpenSSH计划针对SSH1一样开始一个新分支。



毫不退缩,OpenSSH的开发人员继续编写他们自己版本的SSH2,结果今年5月发布了OpenSSH 2.0。OpenSSH是第一个也是目前为止唯一一个SSH1和SSH2的无阻碍公开源代码实现。



但是从另一方面看,SSH今天面对的主要挑战是互用性。目前,无论SSH1或是SSH2都没有被任何标准化组织接纳。



不过,SSH2正在起草因特网工程工作小组的RFC(Request For Comment)过程。现在,由于我不是IETF标准化速度的专家,所以无法说明这种努力是否在进行——快速或是根本没做。网页有一年没有更新,而起草努力早在1997年2月就开始了。



我们只能希望SSH2尽快从草案变为标准而不是一拖再拖,因为SSH2仍然在进行更改。根据OpenBSD的de Raadt,SSH2实现中的不相容现在出现得极为频繁,因为SSH2仍没有成为标准。(假如事情这样的话,观察者可能会争论它实际上是在标准的炼狱中。)



正如我上面提过的那些麻烦,远程登录是一种极不安全的通讯模式。它只是比使用一个串行电缆直接将计算机与你想要通信的设备连接起来略微进化一点点。



远程登录就象串行连接一样工作,只除了特telnet运行在TCP上,这表示你无法象检查串行电缆的方式查看是否有第三方在你的线上放置了窃听装置。



所以如果你通过远程登录登录到某个设备,你的用户名和密码在网络上清楚地发送出去,远程登录协议自身远远不能对其它基于TCP的欺骗行为免疫。



远程登录明确无误的相当不好。



实际上,如果用SSH替代远程登录,计算世界的境况能显著改善。不仅对全体企业内部intranet和大学校园网等环境如此,对许多允许自己通过远程登录进行配置网络连接设备——数目庞大——而言也是这样。



我当然不喜欢例如通过远程登录配置路由器的想法。OpenBSD的de Raadt同时声称:“我们编写OpenSSH,目的是希望卖主将它放到每件设备上,从路由器到控制交换机、到文件服务箱、到防火墙网关。”



从OpenSSH的故事告诉我们限制性源代码许可的好处。



假如SSH.com没有限制SSH1和2的许可,今天在OpenSSH工作的开发人员可能绝不会逐步建立起自己的成就。他们从麻烦中得到的直接正反馈提供了添加SSH2功能的动力,从而将计划从源代码发行版变成彻底的革新。



既然OpenSSH已经可以找到,我们可以希望所有那些远程登录用户能得到线索,用之将SSH实现包含在他们的产品中。



这个故事的意义是什么?下次你遇到一个许可权限制太大的软件时,千万不要发怒;象OpenSSH计划学习,争取做得更好!

(http://www.fanqiang.com)

原文链接:http://www.freebsdchina.org/forum/viewtopic.php?t=1750&sid=eccb3074fb1074ebcf0c18992339251d

 
 相关文章

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com