一 用SRP建立安全的Linux Telnet服务器

【一 用SRP建立安全的Linux Telnet服务器】在中小型异构网络中,很多用户选择Linux作为网络操作系统,利用其简单的配置和用户熟悉的图形界面提供Internet服务,Telnet便是其提供的服务之一 。Telnet最基本应用就是 用于Internet的远程登录,共享远程系统中的资源 。
它可以使用户坐在已上网的电脑键盘前通过网络进入的另一台已上网的电脑,并负责把用户输入的每个 字符传递给主机,再将主机输出的每个信息回显在屏幕上 。这种连通可以发生在同一房间里面的电脑或是在世界各范围内已上网的电脑 。
Telnet服务与其他网络应用一样属于客户机/服务器模型,一旦连通后,客户机可以享有服务器所提供的一切服务 。
但是传统的网络服务程序telnet在本质上都是不安全的,因为它在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据 。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到"中间人"(man-in-the-middle)这种方式的攻击 。
所谓"中间人"的攻击方式,就是"中间人"冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器 。服务器和你之间的数据传送被"中间人"转手后做了手脚之后,就会出现很严重的问题 。
SSH(Secure Shell)是以远程联机服务方式操作服务器时的较为安全的解决方案 。它最初由芬兰的一家公司开发,但由于受版权和加密算法的限制,很多人转而使用免费的替代软件OpenSSH 。Openssh是由OpenBSD Project开发和维护的、捆绑有SSH协议的软件套件 。
用户通过OpenSSH可以把所有传输的数据进行加密,使"中间人"的攻击方式不可能实现,但是OpenSSH目前存在两个安全遗患:口令、密匙破解(利用字典文件去解密码)和OpenSSH中可能被安放木马.
一、SRP简介
SRP全称:Secure Remote Password(安全远程密码),它是一个开放源代码认证协议 。使用SRP的客户机/服务器不会在网络上以明文或加密的方式传送密码,这样可以完全消除密码欺骗行为 。保证口令可以安全地在网络上面传送 。基本的思想是,防止有被动或主动网络入侵者使用字典攻击 。
Standford大学计算机系开发了SRP软件包,提供基于口令认证和会话加密的安全机制,而不需要用户或者是网管参与密钥的管理或分发 。SRP为每一个人提供透明的密码安全,而没有其他昂贵的起始开销,比如阻止其他安全套件软件的使用等 。
不像其他的安全软件,SRP套件是一个完全的实现密码认证的软件包,不是临时的解决方案 。和标准的/etc/shadow-style 安全比较,SRP在每一个方面都是比较好的 。使用SRP对用户和管理者都有以下的好处:
SRP抵制"password sniffing"(口令监听)攻击 。在一个使用SRP认证的会话中,监听者不会监视到任何在网络中传送的口令 。在远程登陆软件中,明文的密码传送是最大的安全漏洞 。任何人可以用一个简单的嗅探器(sniffer)工具得到你登陆到远程系统的密钥 。
SRP抵制字典攻击 。一个系统保护简单的密码监听是不够的 。如果攻击者使用强力攻击,例如字典攻击等,他们不是简单的直接监听密码,而是跟踪整个的会话过程,然后把整个的信息和字典中的普通密码对照 。
甚至有的Kerberos系统对这样的攻击也是脆弱的 。SRP在抵制字典攻击的前,就进行口令的安全处理了 。使用的算法就是在攻击者进行强力攻击前就要求攻击者必须执行一次不可能的的大的计算 。SRP甚至保护针对口令的"active"攻击 。
因此,即使入侵者有能力和网络接触,也不能攻破SRP 。所以即使是用户使用的是很脆弱的口令,也不会让入侵者很容易地破解的 。SRP对于终端用户是完全透明的 。因为没有所谓的"密钥链"(keyrings)以及"证书"(certificates),或者"票据"(ticket) 。你的口令就是密钥 。SRP简单地保护这个密钥,但要比老的、弱的密钥保护机制要好 。

推荐阅读