论文部分内容阅读
[摘要]Telnet是网络管理人员常用的远程登陆命令,但它传送的信息是明文的,容易被窃取;SSH是一种安全的登陆方式,它传送的是加密信息。在当今网络安全日益重要的情况下,改进管理方式很有必要,本文就介绍这种技术。
[关键词]网络安全;网络管理;加密;传输;UNIX
一、Telnet面临的主要安全问题
大概Telnet是每位从事网络管理和攻击者最熟悉不过的工具了。但他的安全性确实很差,比如对使用者认证方面、数据传送保密方面和防范针对telnet的攻击方面都存在很大问题。主要缺陷表现在
没有口令保护,远程用户的登陆传送的帐号和密码都是明文,使用普通的sniffer都可以被截获;
没有强力认证过程。只是验证连接者的帐户和密码。
没有完整性检查。传送的数据没有办法知道是否完整的,而不是被篡改过的数据。
传送的数据都没有加密。
用户可以利用Telnet获得很多的关于服务主机的情况。例如服务器的操作系统的种类等。而且,Telnet不仅仅可以使用端口23,而且也可以连接到其他服务的端口。例如端口21、端口25、端口80等。下面是一个登陆到自己的端口23的例子:
FreeBSD/i386(dns.huaxue.net.cn)(ttyp1)
Login:
我们可以看到,只是这样一条简单的再简单不过的命令就清晰地告诉你对方是用什么系统。而且只要端口是开放的,就可能发生使用Telnet获取信息的情况。甚至你可以利用Telnet向端口80发送请求,只要请求是正确的,端口80就可以得到回应,甚至是一条错误的GET指令都可以得到回应。
这是因为Telnet本身没有很好的保护机制,所以要借助其他外部的保护。相比之下SSH是一个很好的telnet安全保护系统。本文就简要介绍用SSH取代Telnet实现安全连接。
二、SSH介绍
SSH(SecureShell)客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。这个SSH服务,最重要的是可以使用“非明码”的方式来传送数据包,也就是说,数据在网络上传递,由于SSH采用加密传输,即使被监听而遭窃取了,该数据要经过解密也不是一件很容易的事,所以就可以比较安全的工作!此外,SSH同时也提供配合PAM的安全模块与TCPWrappers的封包限制(也就是/etc/hosts.allow与/etc/hosts.deny的机制)机制,因此安全性也就比较高一些!更便利的是,可以使用root的身份经由ssh远程登入某主机,这与Telnet的缺省方式不同!
从客户端来看,SSH提供两种级别的安全验证。第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。第二种级别(基于密钥的安全验证)需要依靠密钥,也就是你必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在你在该服务器的目录下寻找你的公用密钥,然后把它和你发送过来的公用密钥进行比较。如果两个密钥一致,服务器就用公用密钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密钥解密再把它发送给服务器。用这种方式,你必须知道自己密钥的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密钥)。
[关键词]网络安全;网络管理;加密;传输;UNIX
一、Telnet面临的主要安全问题
大概Telnet是每位从事网络管理和攻击者最熟悉不过的工具了。但他的安全性确实很差,比如对使用者认证方面、数据传送保密方面和防范针对telnet的攻击方面都存在很大问题。主要缺陷表现在
没有口令保护,远程用户的登陆传送的帐号和密码都是明文,使用普通的sniffer都可以被截获;
没有强力认证过程。只是验证连接者的帐户和密码。
没有完整性检查。传送的数据没有办法知道是否完整的,而不是被篡改过的数据。
传送的数据都没有加密。
用户可以利用Telnet获得很多的关于服务主机的情况。例如服务器的操作系统的种类等。而且,Telnet不仅仅可以使用端口23,而且也可以连接到其他服务的端口。例如端口21、端口25、端口80等。下面是一个登陆到自己的端口23的例子:
FreeBSD/i386(dns.huaxue.net.cn)(ttyp1)
Login:
我们可以看到,只是这样一条简单的再简单不过的命令就清晰地告诉你对方是用什么系统。而且只要端口是开放的,就可能发生使用Telnet获取信息的情况。甚至你可以利用Telnet向端口80发送请求,只要请求是正确的,端口80就可以得到回应,甚至是一条错误的GET指令都可以得到回应。
这是因为Telnet本身没有很好的保护机制,所以要借助其他外部的保护。相比之下SSH是一个很好的telnet安全保护系统。本文就简要介绍用SSH取代Telnet实现安全连接。
二、SSH介绍
SSH(SecureShell)客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。这个SSH服务,最重要的是可以使用“非明码”的方式来传送数据包,也就是说,数据在网络上传递,由于SSH采用加密传输,即使被监听而遭窃取了,该数据要经过解密也不是一件很容易的事,所以就可以比较安全的工作!此外,SSH同时也提供配合PAM的安全模块与TCPWrappers的封包限制(也就是/etc/hosts.allow与/etc/hosts.deny的机制)机制,因此安全性也就比较高一些!更便利的是,可以使用root的身份经由ssh远程登入某主机,这与Telnet的缺省方式不同!
从客户端来看,SSH提供两种级别的安全验证。第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。第二种级别(基于密钥的安全验证)需要依靠密钥,也就是你必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在你在该服务器的目录下寻找你的公用密钥,然后把它和你发送过来的公用密钥进行比较。如果两个密钥一致,服务器就用公用密钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密钥解密再把它发送给服务器。用这种方式,你必须知道自己密钥的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密钥)。