大家好,欢迎来到IT知识分享网。摘要:本文简单介绍了在不安全的网络上提供安全连接的ssH协议。从入侵者的角度分析了发起攻击情形
下的几种行为。研究了安全模型的攻击过程中ssH协议的防御作用,分析了ssH的协议结构、认证过程和
涉及的加密算法。根据ssH协议在安全性方面的存在的缺陷和不足,提出了一些改进建议。
关键词:sSH-阿络安全;协议;加密
1 引言
基于TCP/疋协议的ktemeI是当今广泛使用的开放性计算机网络,但T<珊口协议在设计之初就缺乏可
靠的安全机制。于是利用网络进行恶意的攻击和入侵行为也产生了。根据删Ⅲ协议栈的不同层次,有很
多种防御性的安全解挟方案:物理层上,用机械或电器方法防止信息被非法窃取,如电磁泄漏保护;数据链
路层上,使用硬件加密设备直接加/解密链路两端的数据或采用用于组建远程访问Ⅵ琳的安全协议PP耶和
L2TP创建安全通道:网络层上,基于狂,Sec规范的安全协议来实现各种方式的vPN;传输层上,使用ssL,
Ⅱ5等安全协议提供端对端的安全通讯;在应用层上,可以实现对某些特殊服务进行单独保护,如S圳T口等。
本文从嬲络攻击行为的角度,通过各种入侵手段的深入研究,并以ssH.一即SecIlIe sheu,一种介于传
输层和应用层之间的加密隧道协议——为例,讨论安全方案要如何防止攻击行为的发生。
·1179·
2 SSH协议
2 1 协议简介
ssH(secure
shell)是IETF(InfemeIEngilleering
Task F0rce)的Networkwork协gGroup所制定的一族
协议,其目的是要在不安全的网络上提供安全的远程登录和其他安全网络服务。
ssH使用多种加密方式和认证方式,解决了传统服务中存在的数据加密、身份认证问题。
ssH有成熟的公钥/私钥体系,为客户端和服务端之间的会话提供加密通道,解决了数据(包括口令)
在网络上以明文传输的不安全问题。
SSH协议摄初由TatuYl6nen在1995年提出,他成立了ssHColIlfnullicaⅡ0ns Sec埘ty,设计并实现了SSHl
(ssHl.5)和ssH2(ss磁.O)两个并不兼容的版本,最新的商业版本称为Teclia。相应的OpenBsD项目中
有一个开源版本OpenSSH。在2006年初ie西形成了的正式rfc文档,编号从4250到4256,分别定义SSH协
议的编号使用、协议体系结构、认证协议、传输层协议和连接协议,利用DNs发布ssH钥匙指纹(Kev
m2erp五廿Is)和鉴投消息交互。
2.2协议结构
ssH协议系统结构图如图】所示,SSH包括3个主要部分:传输层协议(TraⅡspon Layer Protoc01)、用
户认证协议(use『Au血eInjc撕oⅡPfotoc01)和连接协议(c。Ⅱnection Protoc01)。传输层协议提供对服务端认证、
机密性和完整性的支持,作为可选项,它还提供压缩功能传输层完成密钥交换工作,它为会话提供了对称加
密,支持DEA、Blo嘲sh和1T、vo丘sh,同时为以后支持PⅪ提供了接口。用户认证协议为客户端认证服务
器提供交持,它位于传输层协议之上。连接协议把多种加密隧道复用为多个逻辑信道,它们位于用户认证协议
之上,一个单一的会话连接可以处理多个通道,这项工作由连接层完成。
陲≯辑尊曩瓣露嬲黼碰。n蛳碱躐黪囊薯一|{。j。
黪i攀i蒸粪l鬻蘩:瀵
》鬻纂i攀雾瓣黍攀霉黍ji攀
麟囊鬻戆戮攀骥j鋈蘩;豢囊
3网络入侵攻击分析
图1 ssH协议系统结构框图
真正的网络攻击行为可能是如下多种情况的混合,而且会更加复杂和多样。
3.1网络监听
在共享媒体的网络中(以Ethernet为倒),所有的通信都是广播,也就是说通常在同一个网段的所有网络
接口都可以访问在物理媒体上传输的所有数据。在正常的情况下,一个网络接口应该只响应两种数据帧:与
自己硬件地址相匹配的数据帧;发向所有机器的广播数据帧。当网卡置于混杂模式(proJ菇scuous)的状态下,
网#能够接收到一切通过它的数据帧,而不管是否是发给自己的。这实际上就是网络监听工作的基本原理:
让网卡接收~切它所能接收的数据。
同时,bterⅡet上标准的协议往往都是明码传输的,也就是说,如果我们拦截到了所有正在传输在物理媒
·1180·
体上的数据,通过相应的软件处理,就可以得到包括密码在内的敏感信息。
图2安全模型案例分析
分析如图2所示的安全模型案例:机器A、B、C与集线器HuB相连接,集线器HuB通过路由器R0uter
访问外部网络。这是一个很常见的情况。机器B就是入侵攻击者,它想窃取机器A正在登录机器C上FrP
口令,那么它仅仅需要把正在工作的网卡置于混杂模式,并对接收到的数据帧进行分析,从而找到包含在数
据帧中的口令信息。
解决此类问题可以从二个方面考虑来设计反监听方案:把共享媒体换成交换媒体或者加密网络上传输的
信息。SSH使用的后面这种方式,使用强加密技术来保证数据的私密性。这种端到端的加密的基础是随机密
钥,随机密钥为会话进行安全协商,在会话结束后被丢弃。ssH协议中的传输层协议可以提供多种加密方案,
包括ARCFOUR、Blowfish、DES、DEA和3DES之类的标准加密算法,即使~种被攻破了,还可以通过协
商切换到另一种加密方案。例如OPENssH提供的选项_c ci曲er:可以通过这个参数为你的网上传输指定一
个用来加密数据的密钥对。
3.2 DNS欺骗和lP欺骗式攻击
在上面的案例中,如果采用另一个解决方案,换成交换媒体,把Hub换成switch之后,机器B还是可
以通过别的方式进行入侵行为。
一种方式就是DNS欺骗,机器B可以用假DNs记录(如A记录、SOA记录、阿t记录)替换真实记
录项来影响机器A。造成的结果就是:当机器A在按域名访问服务器c时,实际上连接是却是机器B。类似
的,由于在很多环境中,比如UNⅨ,主机间的信任关系常常是基于口地址的,那么机器B可以使用的另一
种方式是:先使被机器A信任机器c失去工作能力(比如发送虚假的TCP报文使机器c的协议栈序列溢出),
然后由机器B冒充成机器c。当会话设置成功之后,让机器A认为它在连接机器c。而实际上与A建立连
接的是B,那么,当A提供密码时,B就能窃取到了。
防止这两种攻击行为的基础在于用户认证的缺陷,SSH用户认证协议主要包括三种用户认证方式:公钥
认证方式、口令认证和基于主机的认证。其中公钥认证是ssH协议唯一要求的必须提供的认证方法。在这种
方式下设置会话时,ssH客户端会根据和密钥关联的本地服务器名字和地址列表对服务器主机密钥进行验
证。如果提供的主机密钥不和列表中的任意一项匹配,那么SSH就会报错。
3.3连接劫持和注入式攻击
现在如果机器B还想继续他的攻击行为,那么就要采用更加复杂的方法,注入式攻击(Injccnon),这种
方式可以认为是上面所说的IP欺骗的延伸。在机器B伪装成机器的过程中,如果只是uDP协议,机器B在
假造IP地址后发送恶意数据就可以了;如果这个连接采用的是被认为是可靠的传输协议TcP,那机器B就
要采用一些方法来预测TcP序列号。很多系统中(比如BeIkelev)采用看似随机的方法来产生IsN,实际上,
如果B通过监听得到一个在使用中的IsN,还是可以预测用在下一个连接中的ISN的。当机器B猜测成功之
后,就能使本来连接机器A到机器C的会话转向机器B。换言之,不管认证方法如何好,攻击者可以一直等
待到你登录之后,劫持你的连接(Connection Hijaking)。
ssH并不能防止连接劫持,因为这是TcP本身的缺陷,而ssH是在TcP之上的。不过sSH提供一种
低效的完整性检测的方式来解决这个问题。ssHl采用的只是简单的cRc.32校验,在ssH2里使用了安全性
·1181·
更高的基于MD5和sHA-l的加密hash算法。ssH的完整性检测负责确定会话在传输过程中是否被修改过
了,如果发现有改动,则立即关闭连接,不再使用修改过的数据。
3.4 ARP欺骗和中间人攻击
发现会话中的攻击会被ssH中断后,机器B只能再换一种攻击方式:ARP欺骗。这种攻击的原理是因
为计算机中维护着一个ARP高速缓存.并且这个朋聍高速缓存是随着计算机不断的发出ARP请求和收到
ARP响应而不断地更新的,这个高速缓存的目的是把机器的口地址和MAC她址相互跌射。
现在给案例中的机器分配上P和MAC地址。
机器A:口10.0.0.1,MAc 20.53.52-43-00_01
机器B:珥10.O.0.2,MAC 20.53.52.43—00-02
机器cl口10.0.O.3,MAC 20-53-52—43删lD3
现在机器B向机器A发出一个刖婵Reply,其中的目的口地址为10.010.1,目的MAc地址为
20.53.5243啪.ol,面源r坤地址为10.O.o.3,源MAC地址为20—53.52-43跏.02。在机器A更新了他的ARP
高速缓存之后,相信了口地址为10.00.3的机器的MAc地址是20.53—52.43.00北。当机器A上应用层发出
一条FrP命令时邱10.O.O.3,数据包被送到了switch,swiIch查看数据包中的目的地址,发现MAc为
20-53.52-43.00-02,于是,他把数据包发到了机器B上。如果B再用同样的方法同时欺骗C,向C发起一个
FrP协议连接,并让c相信,它其实是机器A,那么这就是一个中间人攻击(Man血.Middle)。
SSH协议有两种方法防止这种攻击。
一是服务器主机认证,除非B已经成功攻击了C,得到了主机密钥,否则中间人的角色机器B是无法扮
演的。不过,当使用者第一次连接到一台新服务器上,并让SSH接受主机密钥时,也是最危险的时候,所以
建议在配置时禁止首次连到新服务器直接接受密钥的选硕。
二是限制使用容易被中间人攻击的密码认证方式。比如公钥和基于主机的/Rhosts班渔认证方式是可以免
疫这种攻击的,机器B只通过监视密钥交换是不能得到会话密钥的。Di自丘e HellInan密匙交换方法也有同样
的效果.这种算法本身已经预先提供了保密机制,它可以单独保证任何一方都不能确定共享密文。
4加强SSH协议的安全性
通过上面攻击行为案例的分析,可以看到ssH协议确实可以防止~些入侵行为的发生。实际上,最初设
计用来代替telⅡet,‘叩,rlogin,rSh等命令的ssH,现在通过ssH连接协议不仅可以提供交互的sheⅡ会话,支持
远程命令执行,还可以提供TcP端口及x11连接转发功能。通过将唯一一个加密隧道(咖e1)多路复用成
若干个逻辑通道,提供给更高层的应用协议使用。除广泛的应用性之外,在安全性上。ssH协议还有很多要
加强的地方。
1)扫描探测的防止。ssH协议可以用在各种服务器和防火墙上,当有攻击行为发生时,ssH的端口可
能就是最先被攻击,因此协议默认端口22在使用中建议改成高一点的端口,来躲过扫描器的探测。更安全
的方法,可以使用脚本对ssH连接进行频率限制,或者ip诅bles和.I℃P wrappers定义允许连接到ssH服务
的主机。现在在ⅡⅡllx上常常用ssH即插授权模块(PAM)的pam aM插件来保护运行着SSH服务的机器
不被暴力攻击。
2)开源代码暴露的漏洞。SsH的源代码和使用的各种加密算法,大部分是公开的,这就为程序本身的
漏洞被发现带来了更多的机会,无论是远程登录漏洞还是验证本地密码泄露漏洞,都为攻击行为的发生带来
了可能。各种漏洞都是在一个不断发现和不断改进的循环中,建议使用者也要随之不断更新自己使用的ssH
协议实现版本,来保护自己的资料。
3)密码安全。尽管ssH的认证方式如何安全,也不能保证使用者的密码是绝对安全的,不会被“肩窥”
·1182·
(sboulder-surfin窟)。从安全性上讲,一个密码除了要足够健壮,不易猜到,还要常常更换。SSH可以在不更
换公钥的情况下,只更改密码串。因此建议使用者配置ssH服务器端的PeⅡnilEmptyPasswords选项为no来
禁用空密码。在开源实现OpenssH和商用版本Tectia里都提供了密码过期处理的功能,在成功登录后,可以
自动提示使用者更换过期的密码。
4)来自底层的攻击。建立在TCP之上的ssH协议不能防止对TcP/口的一些攻击,像伪造报文类的攻
击(比如SYN洪水,伪IcMP),只能通过更低级的网络层技术来解决,如硬件边链路加密或IPSEc。如果
对于安全性要求比较高可以使用混合的安全解决方案。
5)使用者行为的安全性。一些“聪明”的使用者也会影响到SSH的安全性。有这样一个案例:一个公
司内部有邮件系统和防火墙都使用了SSH,一个用户为了可以在家里使用公司的邮件,使用了SSH的端口转
发,从家里的机器连接到ISP的机器,由IsP的服务器的某个端口连接到防火墙的SSH协议的22端口,再
访问到邮件服务器。这样做的结果就是IsP服务器到公司的防火墙是ssH协议加密的传输链路,而IsP服务
器到用户家里的机器,这一段是明文传输的。
4结束语
随着越来越频繁的InteⅢet入侵攻击行为的发生,人们对于安全性也越来越重视。SSH协议既可以提供
主机认证,叉提供用户认证,同时还提供数据压缩,数据机密性和完整性保护,完全可以防御大部分的网络
攻击行为。同时,作为一种复杂性和费用较低的一种可行的网络安全解决方案,SSH协议如果使用得当,完
全可以满足中小企业和个人部署应用。
基于SSH协议的网络攻击防御分析与研究
作者: 刘斌, 马严, 马跃
作者单位: 刘斌(北京邮电大学,信息网络中心,北京,100876), 马严(北京邮电大学,信息网络中心,北
京,100876;北京邮电大学,计算机科学与技术学院,北京,100876), 马跃(北京邮电大学,计
算机科学与技术学院,北京,100876)
本文链接:http://d.g.wanfangdata.com.cn/Conference_6442405.aspx
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24345.html