SSH协议及其在Windows平台上的实现技术综述报告.docx

上传人:b****5 文档编号:4097461 上传时间:2022-11-27 格式:DOCX 页数:16 大小:209.83KB
下载 相关 举报
SSH协议及其在Windows平台上的实现技术综述报告.docx_第1页
第1页 / 共16页
SSH协议及其在Windows平台上的实现技术综述报告.docx_第2页
第2页 / 共16页
SSH协议及其在Windows平台上的实现技术综述报告.docx_第3页
第3页 / 共16页
SSH协议及其在Windows平台上的实现技术综述报告.docx_第4页
第4页 / 共16页
SSH协议及其在Windows平台上的实现技术综述报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

SSH协议及其在Windows平台上的实现技术综述报告.docx

《SSH协议及其在Windows平台上的实现技术综述报告.docx》由会员分享,可在线阅读,更多相关《SSH协议及其在Windows平台上的实现技术综述报告.docx(16页珍藏版)》请在冰豆网上搜索。

SSH协议及其在Windows平台上的实现技术综述报告.docx

SSH协议及其在Windows平台上的实现技术综述报告

目录

一、问题背景概述1

二、协议分析说明分析1

2.1协议规范概述1

2.2需解决的问题1

2.3重点和难点1

三、实现条件及系统解决方案1

3.1系统实现条件/环境配置说明1

3.2系统解决方案2

四、实验方案设计及实现2

4.1实验方案设计说明2

4.2实验步骤/实现过程说明3

五、方案分析评估3

5.1和其他备选方案的分析比较3

5.2方案评估分析3

六、前景展望3

6.1本课题的不足之处和可改进之处3

6.2技术前景展望/下一步的工作3

附录A  参考文献4

一、问题背景

SSH协议出现之前,在网络设备管理上广泛应用的一种方式是Telnet。

Telnet协议的优势在于通过它可以远程地登录到网络设备上,对网络设备进行配置,为网络管理员异地管理网络设备提供了极大的方便。

但是,Telnet协议存在三个致命的弱点:

数据传输采用明文方式,传输的数据没有任何机密性可言。

认证机制脆弱。

用户的认证信息在网络上以明文方式传输,很容易被窃听;Telnet只支持传统的密码认证方式,很容易被攻击。

.客户端无法真正识别服务器的身份,攻击者很容易进行“伪服务器欺骗”。

SSH协议正是为了克服Telnet协议存在的问题而诞生的。

网络中另外一个广泛应用的协议——FTP,也面临着和Telnet相同的问题。

为了解决FTP应用中的安全性问题,在SSH协议基础上扩展了对FTP安全性的支持,即SFTP。

问题背景概述

二、协议分析说明分析

2.1协安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。

SecureShell,又可记为SSH,最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。

SSH是一个好的应用程序,在正确使用时,它可以弥补网络中的漏洞。

除此以外,SSH之所以酷,还有以下原因:

SSH客户端适用于多种平台。

几乎所有的UNIX平台—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix、SCO,以及其他平台—都可以运行SSH。

而且,已经有一些客户端(其中有些为测试版)可以运行于UNIX操作平台以外,包括OS/2、VMS、BeOS、Java、Windows95/98和WindowsNT。

这样,你就可以在几乎所有的平台上运行SSH客户端程序了。

对非商业用途它是免费的。

许多SSH版本可以获得源代码,并且只要不用于商业目的,都可以免费得到。

而且,UNIX版本也提供了源代码,这就意味着任何人都可以对它进行修改。

但是,如果你选择它用于商业目的,那么无论使用何种版本的SSH,你都得确认已经注册并获得了相应权限。

绝大多数SSH的客户端和守护进程都有一些注册限制。

惟一的SSH通用公共注册(GeneralPublicLicense,GPL)版本是lsh,它目前还是测试版。

通过Internet传送密码安全可靠。

这是SSH被认可的优点之一。

如果你考察一下接入ISP(InternetServiceProvider,Internet服务供应商)或大学的方法,一般都是采用Telnet或POP邮件客户进程。

因此,每当要进入自己的账号时,你输入的密码将会以明码方式发送(即没有保护,直接可读),这就给攻击者一个盗用你账号的机会—最终你将为他的行为负责。

对应用的支持。

由于SSH的源代码是公开的,所以在UNIX世界里它获得了广泛的认可。

Linux,其源代码也是公开的,大众可以免费获得,并同时获得了类似的认可。

这就使得所有开发者(或任何人)都可以通过补丁程序或bug修补来提高其性能,甚至还可以增加功能。

这也第一部分获得并安装SSH意味着其性能可以不断得到提高而无须得到来自原始创作者的直接技术支持。

SSH替代了不安全的远程应用程序。

SSH是设计用来替代伯克利版本的r命令集的;它同时继承了类似的语法。

其结果是,使用者注意不到使用SSH和r命令集的区别。

利用它,你还可以干一些很酷的事。

通过使用SSH,你在不安全的网络中发送信息时不必担心会被监听。

你也可以使用POP通道和Telnet方式,通过SSH可以利用PPP通道创建一个虚拟个人网络(VirtualPrivateNetwork,VPN)。

SSH也支持一些其他的身份认证方法,如Kerberos和安全ID卡等。

  但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。

OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。

  SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:

1.x和2.x。

用SSH2.x的客户程序是不能连接到SSH1.x的服务程序上去的。

OpenSSH2.x同时支持SSH1.x和2.x。

  SSH主要有三部分组成:

  传输层协议[SSH-TRANS]提供了服务器认证,保密性及完整性。

此外它有时还提供压缩功能。

SSH-TRANS通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。

SSH-TRANS提供了强力的加密技术、密码主机认证及完整性保护。

该协议中的认证基于主机,并且该协议不执行用户认证。

更高层的用户认证协议可以设计为在此协议之上。

  用户认证协议[SSH-USERAUTH]用于向服务器提供客户端用户鉴别功能。

它运行在传输层协议SSH-TRANS上面。

  SSH-USERAUTH开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H)。

会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。

SSH-USERAUTH也需要知道低层协议是否提供保密性保护。

  连接协议[SSH-CONNECT]将多个加密隧道分成逻辑通道。

它运行在用户认证协议上。

它提供了交互式登录话路、远程命令执行、转发TCP/IP连接和转发X11连接。

  一旦建立一个安全传输层连接,客户机就发送一个服务请求。

当用户认证完成之后,会发送第二个服务请求。

这样就允许新定义的协议可以与上述协议共存。

连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有TCP/IP端口和X11连接。

  通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。

使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。

  SSH分为两部分:

客户端部分和服务端部分。

  服务端是一个守护进程(demon),他在后台运行并响应来自客户端的连接请求。

服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

  客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

  他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。

刚才所讲的只是SSH连接的大致过程,SSH1.x和SSH2.x在连接协议上还有着一些差异。

  SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。

启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用#ps-waux|grepsshd来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。

当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。

  SSH:

新的MVC软件开发模式,SSH(Struts,Spring,Hibernate)Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装,这种新的开发模式让我们的开发更加方便、快捷、思路清晰!

协议规范概述

SSH(SecureShll)是强化安全的远程登录方式,过去使用的rsh和telnet,因为包括登录时的ID和密码数据没有加密就传到网络上,存在安全上的问题。

即使在内部网上,也有在因特网上的窃取和篡改等危险性。

SSH将包括密码在内的所有数据都已进行了加密处理,可以进行更安全的远程操作。

在SSH中,由于协议标准的不同而存在SSH1和SSH2两个不同的版本。

SSH2是为了回避SSH1所使用的加密算法的许可证问题而开发的(现在这一许可证问题已经不存在了)。

TLES8中作为安装SSH协议的应用程序采用了开放源码的OpenSSH。

OpenSSH与SSH1和SSH2的任何一个协议都能对应,但默认使用SSH2。

三、实现条件及系统解决方案

3.1系统实现条件/环境配置说明

例如:

本课程设计的系统实现条件或环境配置可参考如下几张样表加以描述:

一、计算机硬件设备配置

设备名称

规格、型号、参数

数量

备注说明

内存

>2G以上

1

CPU

IntelPentium1G以上

1

硬盘

Seagate500G以上

1

网卡

3Com10/100M自适应网卡

1

……

……

……

……

二、计算机软件配置

软件名称

版本说明

数量

备注说明

操作系统

Windows2000三种版本均可

1

E-Mail工具

中文OutLookExpressv6.0版

1

客户端软件

PGPDesktopv7.10Licensed

1

服务器端软件

Legend

1

……

……

……

……

三、系统网络配置

项目名称

配置说明

数量

机器名/地址标识

备注说明

Web服务器

IIS5.0版本

1

Server1:

192.168.203.4

客户端PC1

LegendE390

1

Station1:

192.168.203.1

客户端PC2

LegendE390

1

Station2:

192.168.203.2

四、相关网络设备配置

设备名称

规格、型号、参数

数量

备注说明

集线器

Legend8ports

1

交换机

Cisco295012ports

1

路由器

Cisco16008ports

1

 

3.2系统解决方案

(1)

客户端随机选择一个私钥Xc,1

其中,p是一个很大的素数,g是p的素根。

p和g是双方共有的一对参数,协议允许双方通过协商获得相同的p和g参数。

(2)

服务器也随机生成一个私钥Xs,1

(3)

服务器接收到客户端发送过来的Yc,按照下面的公式计算出密钥:

K=(Yc)^Xsmodp

(4)

客户端收到服务器端发送过来的Ys,同样按照下面的公式计算出密钥:

K=(Ys)^Xcmodp通过上面的方法,客户端和服务器端就可以获得相同的密钥。

由上面的分析可以看出,密钥交换算法的安全性建立在计算离散对数的难度之上。

算式Y=g^xmodp中,由X计算Y是很容易的,但是要由Y计算X是非常困难的。

在密钥交换算法中对外公开的只有p、g、Yc和Ys,私钥Xc和Xs是保密的,其他用户即便获取了p、g、Yc和Ys也很难推断出私钥Xc和Xs,从而保证了密钥的安全性。

四、实验方案设计及实现

4.1实验方案设计说明

本着少花钱办大事的原则,充分利用有限的投资,在保证网络先进性的前提下,选用性能价格比最好的设备,我们认为SSH建设应该遵循以下原则:

1先进性

以先进、成熟的网络通信技术进行组网,支持数据、语音、视像等多媒体应用,用基于交换的技术替代传统的基于路由的技术。

2标准化和开放性

网络协议采用符合ISO及其他标准,采用遵从国际和国家标准的网络设备。

3可靠性和可用性选用高可靠的产品和技术,充分考虑系统在程序运行时的应变能力和容错能力,确保整个系统的安全与可靠。

4灵活性和兼容性

选用符合国际发展潮流的国际标准的软件技术,以便系统有可靠性强、可扩展和可升级等特点,保证今后可迅速采用计算机网络发展出现的新技术,同时为现存不同的网络设备、小型机、工作站、服务器、和微机等设备提供入网和互连手段。

系统的灵活性主要表现在软件配置与负载平衡等方面,配合交换机产品与路由器产品支持的最先进的虚拟网络技术,整个网络系统可以通过软件快速简便地将用户或用户组从一个网络转移到另一个网络,可以跨越办公室、办公楼,而无需任何硬件的改变,以适应机构的变化。

同时也可以通过平衡网络的流量,以提高网络的性能。

5实用性和经济性

从实用性和经济性出发,着眼于近期目标和长期的发展,选用先进的设备,进行最佳性能组合,利用有限的投资构造一个性能最佳的网络系统。

6安全性和保密性

在接入Internet的情况下,必须保证网上信息和各种应用系统的安全。

扩展性和升级能力,网络设计应具有良好的扩展性和升级能力,选用具有良好升级能力和扩展性的设备。

在以后对该网络进行升级和扩展时,必须能保护现有投资。

应支持多种网络协议、多种高层协议和多媒体应用。

 

4.2实验步骤/实现过程说明

(1)网络设置

根据要求windowsXP和虚拟机的网络设置如下:

一、实验步骤:

1、设置本机网卡的IP地址:

10.1.3.111子网掩码:

255.255.255.0,如图1

图1

2、编辑主配置文件vi______________________________________________________________________________________________________________________________/etc/ssh/sshd_config,完成相关参数配置,如图2,单击回车键,进入如图3和4的界面,把监听端口Port改为2222,PermitRootLogin改为no同时将Port和permitaRootLIogin的#号删到

图2

图3

图4

3、重新启动ssh服务,输入命令:

servicesshdrestart,单击回车键,如图5

图5

4、用超级用户Root登陆,输入命令为:

sshroot@10.1.3.111-p2222,登陆被拒绝,则为正确,如图6

图6

5、建立本地用户chenjiating和用户密码,如图7

图7

6、用本地用户chenjiating登陆,输入命令为:

sshchenjiating@10.1.3.111–p2222,若要密码登陆,则为操作正确,并输入exit退出到超级用户下,如图8

图8

7、RSA密钥对的生成,输入命令:

ssh-keygen–trsa,如图9

图9

8、创建存放用户chenjiating的私钥文件:

mkdir/home/chenjiating/.ssh,如图10

图10

9、上传非对称公钥,改名为/home/chenjiating/.ssh/authorized_keys,如图11

图11

四、实验测试

用本地用户chenjiating登陆,输入sshchenjiating@10.1.3.111-p2222,若不需密码登陆,则为正确,如图12

图12

一、方案比较

该方案简单方便更容易掌握方便操作

实验得到SSH协议既可以提供主机认证,又提供用户认证,同时还提供数据压缩,数据机密性和完整性保护。

SSH的不足之处在于他使用的是手工分发并预配置的公匙而非基于证书的密匙管理。

与SSL和TLS相比,这是SSH的主要缺陷。

但从SSH2.0协议开始允许一同使用PKI证书和密匙,将来在SSH产品中把这种特性和通用的PKI一起实现,这样可以降低密匙管理的负担并提供更强大的安全保障。

虽然SSH还有其不足之处,但相对于VPN和专业防火墙的复杂性和费用来说,也不失为一种可行的网络安全解决方案,尤其适合中小企业部署应用。

SSH解决了许多和网络有关的安全漏洞,有效地防止了网络窃听(Sniffer)、IP欺骗、DNS欺骗、连接劫持(Connection Hijacking)、插入攻击(Compensation Attack)和中间人攻击(man-in-the-middle)等,但并没有解决全部问题,尤其是他仍然容易受到针对底层TCP/IP缺陷而发起的服务器拒绝攻击(DoS);他也不能解决一些考虑环境因素而产生的攻击方法,例如流量分析和隐秘通道;也不能防止出现病毒,Trojin木马和咖啡豆(coffee spill)。

对于TCP/IP的缺陷引起的问题,只能通过更低级的网络层技术才能很好的解决,例如硬件链路加密或IPSec;对于流量分析攻击,SSH可以在空闲时发送一些随机的,非操作性的信息来干扰活动状态的分析

、方案分析评估

5.1和其他备选方案的分析比较

该方案简单方便更容易掌握方便操作

实验得到SSH协议既可以提供主机认证,又提供用户认证,同时还提供数据压缩,数据机密性和完整性保护。

SSH的不足之处在于他使用的是手工分发并预配置的公匙而非基于证书的密匙管理。

与SSL和TLS相比,这是SSH的主要缺陷。

但从SSH2.0协议开始允许一同使用PKI证书和密匙,将来在SSH产品中把这种特性和通用的PKI一起实现,这样可以降低密匙管理的负担并提供更强大的安全保障。

虽然SSH还有其不足之处,但相对于VPN和专业防火墙的复杂性和费用来说,也不失为一种可行的网络安全解决方案,尤其适合中小企业部署应用。

SSH解决了许多和网络有关的安全漏洞,有效地防止了网络窃听(Sniffer)、IP欺骗、DNS欺骗、连接劫持(Connection Hijacking)、插入攻击(Compensation Attack)和中间人攻击(man-in-the-middle)等,但并没有解决全部问题,尤其是他仍然容易受到针对底层TCP/IP缺陷而发起的服务器拒绝攻击(DoS);他也不能解决一些考虑环境因素而产生的攻击方法,例如流量分析和隐秘通道;也不能防止出现病毒,Trojin木马和咖啡豆(coffee spill)。

对于TCP/IP的缺陷引起的问题,只能通过更低级的网络层技术才能很好的解决,例如硬件链路加密或IPSec;对于流量分析攻击,SSH可以在空闲时发送一些随机的,非操作性的信息来干扰活动状态的分析

 

5.2方案评估分析

数据传输采用密文的方式,保证信息交互的机密性;用户的认证信息以密文的方式传输,可以有效地防止用户信息被窃听;除了传统的密码认证,SSH服务器还可以采用多种方式对用户进行认证(如安全性级别更高的公钥认证),提高了用户认证的强度;客户端和服务器端之间通信使用的加解密密钥,都是通过密钥交互过程动态生成的,可以防止对加解密密钥的暴力猜测,安全性级别比手工配置密钥的方式高

 

六、前景展望

 

6.1技术前景展望/下一步的工作

SSH协议框架中设计了大量可扩展的冗余能力,比如用户自定义算法、客户自定义密钥规则、高层扩展功能性应用协议。

这些扩展大多遵循IANA的有关规定,特别是在重要的部分,像命名规则和消息编码方面。

 

附录A  参考文献参考文献

1]DanielJ.Barrett,RichardE.Silverman,《SSH权威指南》,中国电力出版社,2008.

[2]王华等,《Delphi5编程实例与技巧》,机械工业出版社,2010.

[3](美)SteveTeixeira,《Delphi5开发人员指南》,机械工业出版社,2010.

[4]IETF,《SSHDRAFTIETF》,http:

//www.ietf.org,2009.4.

[5]《TCP/IP基础》.电子工业出版社.2008.6;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1