一、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简单地保护这个密钥,但要比老的、弱的密钥保护机制要好。SRP从治理者的角度来说也是轻易实施的。没有所谓的“密钥服务器”、“证书认证”,以及“认证服务器”等这样的概念。SRP口令文件在标准的Unix口令文件的旁边,软件本身协同这两个系统口令和SRP口令文件的一致性,没有多余的维护系统的机制。SRP在认证一个用户的时候交换一个加密的密钥。这就意味着一个登陆会话是可以被加密,而抵制所谓的网络监听和恶意地篡改。用户在远程阅读他们的信笺,是使用128-bit加密后的信息,这是当用户登陆后自动处理的,而用户本身不必关心到底需要不需要加密。
系统完成加密,然后送到用户的这里。另外SRP不使用加密进行认证,这使得它比基于公用/私用密匙的认证方式速度更快捷、安全。SRP缺省使用的128-bit的CAST加密算法。CAST-128在RFC2144(http://srp.stanford.edu/srp/rfc2144.txt)中有定义。标准的SRP也支持56-bit的DES以及48位的DES。高级的支持Triple-DES加密手段。本文将介绍如何建立基于SRP的Telnet服务器。操作环境Redhat Linux 9.0。