当前位置: 主页 > 服务器技术 > Ftp服务器 > 用SRP建立带SSL的FTP服务器

用SRP建立带SSL的FTP服务器

时间:2009-12-21来源:互联网 点击:

     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。

二、软件下载和编译

  SRP软件主页是:http://srp.stanford.edu 最新版本2.1.1,安装SRP前先要安装OpenSSL。

#wget http://srp.stanford.edu/source/srp-2.1.1.tar.gz

#cp  /usr/src/redhat/SOURCES

#./configure --with-openssl=/usr/src/redhat/SOURCES/openssl-0.9.6 \

--with-pam

#make;make install


  三、建立指数密码系统EPS

  EPS全称:Exponential Password System(指数密码系统),SRP软件包中已经包括EPS源代码。

  1. 安装PAM模块

     PAM简介:

  PAM全称:Pluggable Authentication Module (嵌入式认证模块)。它最初有SUN公司开发;很快被Linux社区的接受,并且开发了更多的模块。其目标是提供一套可用于验证用户身份的函数库,从而将认证从应用程序开发中独立出来。Linux-PAM处理四种独立的(管理)工作。它们是: 认证管理; 帐号管理; 会话期间管理;和密码管理。

  PAM工作方式:

  (1) 调用某个应用程序,以得到该程序的服务。

  (2) PAM应用程序调用后台的PAM库进行认证工作。

  (3) PAM库在/etc/pam.d/目录中查找有关应用程序细节的配置文件,该文件告诉PAM,本应用程序使用何种认证机制。

  (4) PAM库装载所需的认证模块。

  (5) 这些模块可以让PAM与应用程序中的会话函数进行通信。

  (6) 会话函数向用户要求有关信息。

  (7) 用户对这些要求做出回应,提供所需信息。

  (8) PAM认证模块通过PAM库将认证信息提供给应用程序。

  (9) 认证完成后,应用程序做出两种选择:

  将所需权限赋予用户,并通知用户。

  认证失败,并通知用户。

    PAM工作流程见图1。

 

   图1 PAM工作流程

  PAM具体使用方法:

#cd /usr/src/redhat/SOURCES/srp-2.1.1/base/pam_eps.

#install -m 644 pam_eps_auth.so pam_eps_passwd.so /lib/security


  上面命令会在/lib/security 目录下安装PAM模块。然后使用命令:“/usr/local/bin/tconf”创建/etc/tpasswd 和 /etc/tpasswd.conf文件。

站长资讯网
.
分页: [1] [2] [3]
TAG: SRP ssl FTP
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言