(计算机应用技术专业论文)socks防火墙的研究与实现.pdf_第1页
(计算机应用技术专业论文)socks防火墙的研究与实现.pdf_第2页
(计算机应用技术专业论文)socks防火墙的研究与实现.pdf_第3页
(计算机应用技术专业论文)socks防火墙的研究与实现.pdf_第4页
(计算机应用技术专业论文)socks防火墙的研究与实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)socks防火墙的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0 ) y | 塑塞堕皇堕鲞叁堂塑: 二堂丝堡奎y 墨呈q 璺妄8 摘要 ( 随着i n t e m e t 和i n t r a n e t 的飞速发展,防火墙已经成为保护网络安全的一个重要措 施。s o c k s 防火墙技术是一个比较完善的防火墙技术,在国内起步较晚,而国家有 关部门指出国家职能部门不得使用国外安全产品,因此s o c k s 防火墙的内部实现细 节和相关技术是一个迫切需要研究的重要课题。7 本文首先对各层次的防火墙技术进行 了分析和比较,然后介绍了s o c k s 防火墙的原理,对s o c k sv 5 协议和s o c k s 技 术的安全机制进行了分析和研究。在对协议和安全机制的研究基础上,实现了s o c k s 防火墙的基本功能。在文章巾对s o c k sv 5 具有的新功能的实现进行了重点分析: u d p 应用的实现和认证机制的实现。其巾,认证机制的实现包括用户名密码认证的 实现和g s s a p i 的认证的实现。本文着重分析了g s s a p i 的原理、过程和主要接口, 并在分析s o c k f i g s s a p i 协议的基础上,实现了s o c k s 防火墙中的g s s a p i 认证。 最后,木文总结了系统实现的总体框架和流程,并对系统今后的扩展提出了设想。 关键字:s o c k s ,防火墙,g s s a p i ,u d p ,客户端,服务器 、 i 、 ! 竺篁鉴! 堕坐塑塑婴塞兰塞塑 a b s t r a c t w i mt h er a p i dd e v e l o p m e n to fi n t e r a c ta n di n t r a n e t ,f i r e w a l lh a sb e c o m ea ni m p o r t a n t m e a s u r et op r o t e c tt h es e c u r i t yo fi n t r a n e t s o c k sf i r e w a l lt e c h n i q u ei sap r e t t yg o o d f i r e w a l lt e c h n i q u e ,b u ti ts t a r t sl a t e l yi no u r c o u n t r y b e c a u s e s o m ed e p a r t m e n t so f c o u n t r y s h o u l d n tu s et h es e c u r i t yp r o d u c t so f f o r e i g nc o u n t r y ,i ti sa nu r g e n tp r o j e c t t or e s e a r c ht h e i n t e r n a ld e t a i l e dr e a l i z a t i o na n dr e l a t i v et e c h n i q u eo fs o c k sf i r e w a l l f i r s t l y , t h et h e s i s a n a l y z e sa n dc o m p a r e s f i r e w a l lt e c h n i q u e so fe a c hl e v e l s ;a f t e rt h a ti ti n 订o d u c e st h et h e o r y o fs o c k sf i r e w a l l a n da n a l y z e sa n dr e s e a r c h e st h es o c k sv 5p r o t o c o la n ds e c u r i t y m e c h a n i s mo fs o c k s t e c h n i q u e o nt h i sb a s i s ,i tr e a l i z e st h eb a s i cf u n c t i o n so fs o c k s f i r e w a l l t h i st h e s i sm a k e se m p h a s e so nt h er e a l i z a t i o no fn e wf u n c t i o n so fs o c k sv 5 : t h er e a l i z a t i o no f u d p a p p l i c a t i o na n d r e a l i z a t i o no f a u t h o r i z a t i o nm e c h a n i s m a m o n gt h a t , t h er e a l i z a t i o no fa l l t h o r i z a t i o nm e c h a n i s mi n c l u d e st h er e a l i z a t i o no f u s e m a m e p a s s w o r d a u t h o r i z a t i o na n dg s s a p ia u t h o r i z a t i o n t h et h e s i sa n a l y z e st h et h e o r y , p r o c e d u r ea n d i n t e r f a c eo fg s s a p i ,a n do nt h eb a s i so f a n a l y z i n gs o c k s g s s a p ip r o t o c o l ,r e a l i z e s t h eg s s a p ia u t h o r i z a t i o ni no n rs o c k sf i r e w a l l f i n a l l y , t h et h e s i ss u m m a r i z e st h e f r a m ea n df l o wo f t h es y s t e m ,a n d b r i n g sf o r w a r d t h ed e s i g no f t h e s y s t e me x t e n s i o n k e yw o r d s :s o c k s ,f i r e w a l l ,g s s a p i ,u d p , c l i e n t ,s e r v e r i i 南京航空航天大学硕士学位论文 第一章绪论 1 、背景 随着i n t e m e t 的飞速发展,越来越多的政府、企业或教育机构纷纷组建自己的局 域网,并希望将其接入i n t e m e t ,而计算机网络安全问题也越来越被人们所重视。 i n t e m e t 的最大优势之一是它的自由性,没有严格的管理体制来约束网络中的应用; 但是从安全的角度来考虑,这同时又是i n t e m e t 的最大缺点,过分自由的网络用户和 网络应用给i n t e m e t 带来严重的安全隐患。在i n t e m e t 自由和开放地交换信息的同时, 如何保护计算机和联网资源不被非授权者使用或破坏,已成为人们关注的焦点, i n t e m e t 的安全问题对于政府、企业和各类组织机构显得尤为重要。 防火墙是网络之间一种特殊的访问控制设施,是一种屏障,用于隔离i n t e m e t 的 某一部分,限制这部分与i n t e m e t 其他部分之间数据的自由流动,而把诸多安全功能 集中到一点上。通过对网络拓扑结构和服务类型的隔离,防火墙保护了在网络中有明 确闭合边界的一个网块,在不可靠的互联网络中建立了一个可靠的子网。 2 、国内外研究概况 目前,国外已经有了很多的防火墙产品,虽然功能齐全,但由于网络安全产品本 身在网络中处于一个非常关键的部位,已经检测发现某些国外安全产品留有后门,因 此国家有关部门已经明确指出国家的职能部门不得使用国外安全产品。而且,国外的 相关产品在使用过程中发现荠不能很好的满足国内客户的需求,很多功能都是定死 的,不能根据企业的需要来灵活配制。在国内虽然也有不少防火墙产品,但由于采用 的技术较早,功能上不够齐全,安全性不高,从而导致系统的可用性并不好,所以研 究并实现一套防火墙系统就显得非常的必要。 在国内对s o c k s 防火墙技术的研究起步比较晚,直到近两年来才重视起来。 s o c k s 防火墙在国外已经有了现成的产品,而在国内大多数还只在研究阶段,对它 的实现还很欠缺。 所以说我们研究和实现s o c k s 防火墙起到了推动软件国产化的作用,并且降低 了防火墙的实现成本。与此同时这也有助于我们深入了解各种i n t e m e t 协议的实现细 节,研究掌握防火墙的实现技术,这对于社会和个人都是有积极意义的。 3 、本文主要内容 本篇文章在阅读了大量国内外文献、资料的基础上用软件实现了一套s o c k s 防 火墙系统,并研究了与之相关的技术。 本文分析和比较了实现层次不同的各种防火墙技术的优缺点,对s o c k s 防火墙 s o c k s 防火墙的研究与实现 的原理、s o c k sv 5 协议和s o c k s 技术的安全机制进行了深入地研究。本系统实现 了s o c k s 防火墙的基本功能,对s o c k s v 5 所具有的新功能的实现作了详细的阐述。 其中,着重研究了g s s a p i 的原理、过程和主要接口,并在分析s o c k s g s s a p i 协议的基础上,实现了s o c k s 防火墙中的g s s a p i 认证。 本系统吸收了国外产品的先进技术,对s o c k s 防火墙的实现做出了探索。其中, 对g s s a p i 机制的研究也为在通用模式下提供安全服务给出了思路。本系统为软件 国产化起到了推动作用,为某些不能使用国外安全产品的国家职能部门的防火墙实现 提供了解决方案和重要参考。 4 、文章结构 全文共分五章,各章内容如下: 第一章是绪论,介绍了课题的背景,国内外的基本状况和课题实现的意义,以及 论文的主要内容和结构; 第二章分析了防火墙的一般原理和防火墙所能实现的功能。按照防火墙的实现层 次进行分类,对i p 级防火墙、应用级防火墙和s o c k s 防火墙进行了分类和比较, 并指出了防火墙的局限性; 第三章阐述了s o c k s 防火墙的原理,它的工作模式和安全机制,描述了s o c k s v 5 协议,重点突出了s o c k sv 5 比s o c k sv 4 所增强的功能,并给出了s o c k sv 5 这些增强功能的详细的实现过程。 第四章重点阐述了在s o c k sv 5 中使用的g s s a p i 的认证方法,从g s s a p i 认 证机制的原理( 基本特点、基本元素和操作过程) 、g s s a p i 的主要接口,到加密技 术的分析和比较,以及加密方法在g s s a p i 中的应用。然后描述了s o c 刚g s s 。a p i 协议,并给出了该协议详细的实现过程。 第五章主要是描述系统实现的总体框架和对系统的可扩展性的展望。 南京航空航天火学硕1 :学位论文 2 1 防火墙的一般原理 第二章防火墙 随着网络规模的越来越大以及越来越开放,网络上的很多敏感信息和保密数据将 会受到很多主动和被动的人为攻击。尽管为需要保护的网络上的每个工作站和服务器 装配强大的安全特征( 例如入侵检测) 是可能的,但这不是一种切合实际的方法。考 虑到具有几百个甚至上千个系统的网络,运行着不同的操作系统,当发现了安全缺陷 时,每个可能被影响的系统都必须被改进以修复这个缺陷。另一种选择就是防火墙 ( f i r e w a l l ) 。防火墙是设置在可信任的内部网络和不可信任的外界之间的一道屏障, 它可以实施比较广泛的安全政策来控制信息流,防止不可预料的潜在的入侵破坏,如 图2 1 所示。 防火墙具有以下 的性质: ( 1 ) 从里向外和从外 向里的流量都必须 通过防火墙,这是 通过物理上阻塞所 有不经过防火墙的 图2 1防火墙的一般原理 局域网访问来实现 的: ( 2 ) 只有被认可的通信量,通过本地安全策略进行定义后,才能通过防火墙; ( 3 ) 防火墙本身不可穿透,这就隐含使用了一个装有安全操作系统的可信任系统。 2 2 防火墙的功能 从逻辑上说,防火墙是一个分离器,是一个限制器,是一个分析器,建立防火墙 可达到以下的目的: ( 1 ) 管理进、出网络的访问。 i n t e r n e t 防火墙允许网络管理员定义一个中心“扼制点”来防止非法用户进入内部 网络。禁止存在安全脆弱性的服务进出网络,并抗击来自各种路线的攻击。i n t e m e t 防火墙能够简化安全管理,网络安全性是在防火墙系统上得到加固,而不是分布在内 部网络的所有主机上。 s o c k s 防火墙的研究与实现 ( 2 ) 保护网络中脆弱的服务。 防火墙通过过滤存在安全缺陷的网络服务来降低内部网遭受攻击的威胁,因为只 有经过选择的网络服务才能通过防火墙。 ( 3 ) 检测和报警。 在防火墙上可以很方便的监视网络的安全性,并产生报警。对于一个内部网络已 经连接到i n t e m e t 的机构来说,重要的问题不是网络是否会受到攻击,而是何时会受 到攻击。网络管理员必须记录所有通过防火墙的重要信息。如果网络管理员不能及时 响应报警并审查常规记录,防火墙就形同虚设。在这种情况下,网络管理员永远不会 知道防火墙是否受到攻击。 ( 4 ) 集中安全性。 如果一个内部网络的所有或者大部分需要改动的程序以及附加的安全程序都能 集中的放在防火墙系统中,而不是分散到每个主机中,这样防火墙的保护范围就相对 集中,安全成本也相对便宜了。尤其是对于口令系统或其他的身份认证软件等,放在 防火墙系统中更是优于放在每个外部网络能访问的主机上。 ( 5 ) 内部地址隐藏。 i n t e m e t 防火墙是部署n a t ( n e t w o r ka d d r e s st r a n s l a t o r ,网络地址变换) 的合适 位置。因此防火墙可以用来缓解地址空间短缺的问题,也可以隐藏内部网络的结构。 ( 6 ) 增强保密性、强化私有权。 对一些内部网络节点而言,保密性是很重要的,f i n g e r 和d n s 服务常常会暴露内 部节点的信息。使用防火墙系统,网络节点可阻塞f i n g e r 以及d n s 服务,从而使得 外部网络主机无法获取这些有利于攻击的信息。 ( 7 ) 曰志与统计。 i n t e m e t 防火墙是审计和记录i n t e m e t 使用量的一个最佳地点。防火墙可以对正常 的网络使用情况做出统计,通过对统计结果的分析,可以使网络资源得到更好的应用。 2 3 防火墙的分类 按照实现的层次上来进行分类,防火墙可分为i p 级防火墙,应用级防火墙和 s o c k s 防火墙。 2 3 1i p 级防火墙 又称为包过滤( p a c k e tf i l t e r ) 防火墙。它通常实现在路由软件中,在为p 报文进 行转发之前根据报文的源地址、目的地址和端口号来过滤报文。使用这种类型的防火 墙时,内部主机与外部主机之间存在直接的i p 报文交互,即使防火墙停止工作也不 4 南京航空航天火学硕十学位论文 影响其联通性。因此,l p 级防火墙具有很高的网络性能和很好的透明性和方便性。 但一旦防火墙被绕过或被击溃,内部网络就将处于全暴露状态。此外报文过滤只能根 据p 地址和端口号,无法针对特定用户和特定服务请求,粒度不够细致。口级防火 墙可以作为一个独立的软硬件设备出现,也可以作为其他网络设备( 如路由器) 或系 统中的一个功能模块。 2 3 2 应用级防火墙 应用级防火墙又称为代理防火墙,是运行在充当防火墙主机上的一些特定的应用 程序或者服务器程序。充当防火墙的主机是指有一个网络接口连接互联网络而另一个 接口连接内部网络的双宿主主机。它封堵了内外网络的直接连接,一般针对特定的应 用,由用户端的代理客户和防火墙端的代理服务器两部分组成。代理客户通常是对原 应用客户的改造,使其与防火墙而不是真正的应用服务器交互;而代理服务器代用户 向应用服务器提交请求,并将结果返回给用户。应用级防火墙的优点是在用户和服务 器之间不会有直接的i p 报文交换,所有的数据均由防火墙中继,并提供鉴别、目志 与审计功能,增强了安全性。 2 3 3s o c k s 防火墙 s o c k s 防火墙的工作原理和组成结构与应用级防火墙相似,但它并不针对专门 的应用协议,而是一种通用的t c p ( u d p ) 连接中继服务。连接的发起方不直接与响应 方建立连接,而是与s o c k s 防火墙交互,再由s o c k s 防火墙与响应方建立连接, 并在此过程中完成用户的认证。在随后的通信中维护数据的安全( 如进行数据加密、 签名) 、控制通信的进展。s o c k s 防火墙为连接提供的安全保护主要包括: 对连接的存在时间进行监测,将存在时间过大的连接切断,这样可以防止 过大的邮件和文件的传送: 建立允许的发起方表,提供认证机制; 对传输的数据提供加密保护。 2 4 防火墙的比较 下面的表2 1 比较了这几种防火墙的优缺点 s o c k s 防火墒的研究与实现 防火墙的类型 优点缺点 速度快灵活性不好 l p 级防火墙容易实现不独立 i p 层包含了所有的通信没有用户级的认证 客户端无需进行配置日志虽然可行,但没有实际意义 可针对具体的应用设置安全性防火墙主机需要有较高的性能 应用级防火墙可针对具体的应用进行日志客户端可能需要重新配置 用户级认证局限于所支持的应用程序 独立的阻塞u d p 包 几乎和包过滤一样快客户端必须重新配置 s o c k s 防火墙支持所有u d p 和t c p 应用无针对特定应用程序的安全 用户级认证无针对特定应用程序的日志 可针对具体会话设置安全性 可针对特定会话进行日志 独立的 表2 1 几种防火墙的优缺点比较 i p 级代理对静态的通信管理是有用的,但是不提供强壮的安全机制或者动态的灵 活性,反之s o c k s 两者都提供( 强壮的安全机制和包过滤) 。 s o c k s 同样弥补了应用程序代理的不足。应用层代理提供了强壮的安全机制但 是不能处理所有的应用。应用程序代理依然有用,因为它们依靠其技术提供了一定程 度上的不可匹敌的安全机制。因为s o c k s 支持任何应用而不是为每一个特定的应用 程序写一个特定的代理,所以它在应用透明性上是优于应用程序代理的。 从上面的比较可以看出s o c k s 防火墙克服了l p 级防火墙和应用级防火墙的不 足,是一种比较理想的防火墙方案。 2 5 防火墙的局限性 防火墙技术是内部网最重要的安全技术之一。但是它也有自身的局限性,主要是 表现在其无法理解数据内容和无法控制绕过它的数据流两种情况。 ( 1 ) 限制有用的网络服务。 防火墙为了提高被保护网络的安全性,限制或关闭了很多有用但存在安全缺陷的 网络服务。由于绝大多数网络服务设计之初根本没有考虑安全性,只考虑使用的方便 性和资源共享,所以都存在安全问题。这样防火墙一旦限制这些网络服务,等于从一 个极端走到了另外一个极端。 ( 2 ) 无法防护内部网络用户的攻击。 南京航空航天大学硕士学位论文 目前防火墙只提供对外部网络用户攻击的防护,对来自内部网络用户的攻击只能 依靠内部网络主机系统的安全性。对由于内部变节者和用户误操作造成的后果和由于 口令泄漏而受到的攻击,防火墙是无法控制的。 ( 3 ) 防火墙无法防范绕过防火墙的攻击 从客观的技术和管理层次上看,如果在一个被保护的网络上有一个没有限制的拨 号访问存在,内部网络用户可以直接通过s l i p 或p p p 连接进入i n t e r a c t ,则绕过了精 心构造的防火墙系统所提供的安全保护。这就为从后门攻击创造了极大的可能。网络 上的用户们必须了解这种类型的连接对于一个有全面的安全保护系统来说是绝对不 允许的。 ( 4 ) 防火墙也不能完全防止传送己感染病毒的软件或文件。 因为病毒的类型太多,操作系统也有多种,编码与压缩二进制文件的方法也各不 相同。所以不能期望i n t e r n e t 防火墙去对每一个文件进行扫描,查出潜在的病毒。对 病毒特别关心的机构应在每个工作站上都部署防毒软件,防止病毒从各种途径进入网 络。 ( 5 ) 不能防备新的网络安全问题。 防火墙是一种被动式的防护手段,它只能对现在已知的网络威胁起作用。随着网 络攻击手段的不断更新和一些新的网络应用的出现,不可能靠一次性的防火墙设置来 解决永远的网络安全问题。 尽管防火墙的发展迅速,但是防火墙并不是万能的,不能因为有了防火墙而放松 安全防范措施。要将防火墙和其他一些安全技术结合起来才会使系统达到更高的安全 层次。 s o c k s 防火墙的研究与实现 3 1s o c k s 的原理 3 1 1s o c k s 所在层次 第三章s o c k sv 5 s o c k s 协议是由k o b l a s 等在1 9 9 1 年提出来的,它提供了一种通用的架构。按照 o s i 网络参考模型,s o c k s 建立在位于表示层和传输层之间的会话层上,如图3 1 1 所示。s o c k s 是一种非常强大的电路级网关防火墙,它使得基于t c p 和u d p 的各 种应用都能够方便而安全的利用防火墙的服务。 碰么壁 匾亟 越 图3 1 1s o c ks 工作的层次 3 1 2s o c k s 的工作模式 当内部网络用户需要申请外部网络节点的应用服务时,客户程序首先将连接请求 发送给s o c k s 服务器,再由s o c k s 建立与目标的连接,这种方式对用户来讲是完 全透明的。为了支持这种工作方式,用户必须修改现有的t c p i p 客户程序,使其 南京航空航天大学硕士学位论文 s o c k s 化( s o c k s i f i e d ) ,使得客户端了解s o c k s 服务器的存在。为了改变现有的 客户服务器程序,使用支持各种t c p i p 应用的s o c k s 库,将t c p i p 客户程序与 s o c k s 库一起编译,则可使客户端s o c k s 化,就可以生成s o c k s 化的客户端程序。 而这种方式对用户来说透明性较差,且对于无法获得源代码的系统无法实施。所 以,现在更多的做法是使用一个s o c k s 的客户端程序,用以截获客户应用程序发出 的请求,将请求重定向到s o c k s 服务器上。例如,w i n d o w s 版本的s o c k s c a p 能自 动将基于w i n d o w s 的t c p 和u d p 网络的客户端应用传送到s o c k s 防火墙。s o c k s c a p 截获w i n s o c k 应用的网络调用并把它们重定向到s o c k s 服务器,而不需要修改原有 的应用程序或操作系统。目前已经有了支持w i n d o w s 、m a c i n t o s h 和各种u n i x 客户程 序的s o c k s 库版本和s o c k s 客户端程序,并且在i n t e m e t 上可以得到。图3 1 2 描 述了s o c k s 服务器工作的模式。 n 恶鬻。 防火墙 图3 12s o c k s 服务器工作模式 s e c u r e n e t w o r k 这样当一个经过s o c k s 修改的客户端程序试图连接到i n t c m e t 上的时候,s o c k s 的库子程序就截获了这个连接,连接到运行s o c k s 服务程序的主机上去,而不是原 来的i n t e r a c t 上。当连接建立之后,s o c k s 客户程序发送如下的消息:( 版本号:连 接请求命令;客户端的端口号;发起连接的用户名) 。s o c k s 服务进程将检查访问控 制表,判断这个连接可以接受还是应该被拒绝。如果连接被接受,那么s o c k s 服务 进程将打开一个与远程主机的连接,然后在这两台主机之间传递信息;如果连接被拒 绝,s o c k s 服务进程就断开连接。s o c k s 服务进程运行于网关上,允许防火墙内部 的客户端与防火墙外部的服务器通信。 s o c k s 也可以用来允许在防火墙后面的主机接收连接。在这种情况下,由s o c k s 服务进程打开一个连接,由它来接收一个从i n t c m e t 端过来的连接,而不直接由防火 墙后面的客户机接受连接,保证了数据源的安全。 3 1 3s o c k s 防火墙的安全机制 边界控制 + 作为防火墙,s o c k s 服务器处在一个强有力的位置上,控制亍网络边界也就控 s o c k s 防火墙的研究与实现 制了整个网络区域。s o c k s 防火墙可以将安全策略应用到每一个通过的数据包上。 允许算法协商 s o c k s 不仅仅是一个协议,而且是一个协议框架。它提供了一种方法来协商需 要用的加密服务,这是一些安全协议的必须要素,因为加密技术是不断发展和进步的。 除了使动态和可编程的加密服务选择成为可能,方法协商允许s o c k s 添加对新的加 密技术的支持,并且丢弃危及系统安全的加密技术。s o c k sv 5 能为认证、加密和密 钥管理提供“插件”模块,可让用户很自由地采用他们所需要的技术。s o c k s 的最 大贡献是以一种形式为所有的应用程序提供了健壮的安全框架,这使得它非常容易配 置和管理。 与其他协议的兼容性 s o c k s 是一个灵活的可以动态的支持任何一种安全服务的安全协议,几乎和其 他的安全协议和体系结构都是兼容的。例如,把协议过滤结合进s o c k s 工具包内和 s o c k sv 5 共同作用的话,系统将拥有更安全的解决方案。甚至能提供应用程序代理 所具有的状态检查功能,还能够提供一些很复杂的安全功能。s o c k sv 5 在o s i 模型 的会话层控制数据流,它定义了非常详细的访问控制。而在网络层只能根据源和目的 口地址来允许或者拒绝数据包通过,在会话层控制手段要更多一些。 地址隐藏 s o c k sv 5 的防火墙将受它保护的网络与其他网络隔离开来,从而隐藏了内部网 络地址结构。同时这一特点使得在由i p v 4 向i p v 6 过渡期间分离i p v 6 和i p v 4 网络 变得容易管理。 3 2s o c k s v 5 协议 防火墙的使用,有效的隔离了机构的内部网络和外部网络,这种类型的i n t e m e t 架构变得越来越流行。为了推动全球信息的交流,更多的新的应用层协议被推出。这 就有必要提供一个总的架构使这些协议能够更透明和更安全的穿过防火墙,也就有必 要为它们穿过防火墙提供一个更强的认证机制。s o c k sv 5 协议被描述为用来提供在 t c p 和u d p 域下为客户机一服务器应用程序便利和安全的穿过防火墙的一个架构。 该协议在概念上被描述为一个介于应用层和传输层之间的”隔离层”,但是这类服务并 不提供网络层网关服务,如i c m p 报文的传输。 s o c k sv 4 为基于t c p 的客户机- n 务器应用程序提供了一种不安全的穿越防 火墙的机制,包括t e l n e t ,f t p 和当前最流行的信息发现协议如h t t p ,w a i s 和 g o p h e r 。新的s o c k sv 5 协议为了包括u d p 扩展了s o c k sv 4 ,为了包括对总体 上更强的认证机制的支持扩展了协议架构,为了包括域名和i p v 6 地址的支持扩展了 地址集。 1 0 南京航空航天大学硕:f :学位论文 s o c k sv 5 的工作流程如图3 2 1 所示。其中虚线框以外的内容为s o c k sv 5 扩 充s o c k sv 4 所增加的内容。 s o c i 【s w ma t i - - i u h i _ _ _ _ - l i l tm in i ld i e t i me l m _ p a l i _ a i m - a l l 图3 - 2 1s o c k sv 5 工作流程图 当一台客户机希望和目标主机建立连接时,必须经过以下这6 个阶段: ( 1 ) 客户机与s o c k s 服务器建立t c p 连接 当一台客户机希望和台目标主机建立连接时,客户端应用程序调用c o n n e c t ( ) a p i ,s o c k s 客户端程序截获该调用后,检查本地策略以判断目的地址或端口是否应 该重定向到s o c k s 服务器,也就是说目标主机是否必须经过防火墙才能到达,如果 是就必须在s o c k s 服务器端的相应的s o c k s 端口打开一个t c p 连结。s 0 c k s 服 务通常位于t c p 的1 0 8 0 端口。 ( 2 ) 方法协商阶段 一旦上述连接请求成功后,客户端要为 将要使用的认证方式进行一种协商,对所 选的方式进行认证,然后发送一个转发请 图3 2 2 客户端的方法选择请求报文格式 s o c k s 防火墙的研究与实现 求。s o c k s 服务器对该请求进行评估,并且决定是否建立所请求转发的连接。 客户机连接到服务器,发送一个版本标识方法选择报文,如图3 2 2 : v e r ( 版本) 在这个协议版本中被设置为0 5 。n m e t h o d s ( 方法数目) 中包含了 在m e t h o d s ( 方法) 中出现的方法标识的 数目。 服务器从m e t h o d s 给出的m e t h o d j 方法中选出一种,发送一个m e t h o d i!i!j s e l e c t i o nc y 法选择) 报文,如图3 2 3图3 2 3 服务端的方法选择应答报文格式 所示: 当前被定义的m e t h o d 的值有:o o 一不需要验证;o l 一通用安全服务应用程序 接h ( g s s a p d ;0 2 一用户名密码;0 3 7 f i a n a 分配的方法;8 0 f e 一为私用方 法保留;f f 一没有可接受方法。 如果所选择的m e t h o d 的值是f f ,则客户机所列出的方法是没有可以被接受的, 客户机就必须关闭连接。如果有了新的可使用的方法,经过i a n a 分配就可以使用了。 一般的,需要支持g s s a p i 和用户名密码的认证方法方可顺利执行。 ( 3 ) 认证方法的子协商 接下来客户机和服务器进入方法细节的子协商。方法选择予协商( 主要是用户名 密码和g s s a p i 的认证方法子协商) 描述于独立的文档中。本文将在后面的章节中进 行详细的讨论。 ( 4 ) 连接请求 一旦方法选择予协商结束,客户机就发送请求细节。如果协商方法包括了完整性 检查及机密性的封装,则在以后的客户端与服务器的所有通信都必须用选择的方法来 封装。s o c k s 请求如图3 2 4 所示: 其中: 图3 2 4 客户端请求报文格式 c m d :连接的类型,0 1 为c o n n e c t ,0 2 为b i n d ,0 3 为u d p a s s o c i a t e ; r s v :保留; a t y p :地址类型,0 l 是口v 4 的地址,0 3 是域名,0 4 是i p v 6 地址; d s t a d d r 目的主机的口地址或域名( 长度根据a t y p 域所选择的地址类 型不同而不同) ; d s t p o r t 是目的主机的t c p 或u d p 端口号。 ( 5 ) 应答 到s o c k s 服务器的连接一经建立,客户机即发送s o c k s 请求信息,并且完成 1 2 南京航空航天火学硕士学位论文 认证协商。服务器评估请求,返回一个应答,如图3 2 5 所示: 图3 2 5 服务器应答报文格式 其中: r e p :应答域,o o 为成功,0 1 为s o c k s 服务器故障,0 2 为规则不允许 连接,0 3 为网络不可访问,0 4 为主机不能连接,0 5 为拒绝连接,0 6 为t t l 过期,0 7 为命令不支持,0 8 为地址类型不支持,0 9 f f 未分配; b n d a d d r :服务器绑定的地址; b n d p o r t :服务器绑定的端口。 b n d ,a d d r 和b n d p o r t 的用途根据请求类型的不同而不同: i ) c o n n e c t 在c o n n e c t 的应答中,b n d p o r t 包括了服务器分配的连接到目标主机的 端口号,同时b n d a d d r 包含了与此相关联的m 地址。此时的b n d a d d r 通 常情况下不同于客户机连接到s o c k s 服务器所用的m 地址,因为服务器通常允 许提供多址的( m u l t i h o m e d ) 。远端服务器接下来将直接和这个端1 :3 和地址通信。 1 b 帅: b i n d 请求被用在那些需要客户机接收服务器反向连接请求的协议中。f t p 就是一个众所周知的例子,它通过使用命令和状态报告建立最基本的客户机一服 务器连接,按照需要使用服务器一客户端连接来传输数据( 例如:l s ,g e t ,p u t ) 。 在使用这类应用协议的客户端用c o n n e c t 建立首次连接( 主连接) 之后,再使 用b i n d 请求建立第二次连接( 次连接) 。 在b i n d 操作期间,s o c k s 服务器将向客户端发送两次应答信息。在服务器 创建并且绑定了一个新的s o c k e t 之后将向客户端发送第一次应答,这次应答中的 b i n d p o r t 域包含了s o c k s 主机分配用来侦听一个接入连接的端口号,同时 b n d a d d r 域包含了与之相关联的p 地址。客户端将使用这些信息通过已经建 立的主连接来通知远端应用程序服务器,以便它来连接指定地址的s o c k s 服务 器。在远端应用服务器接入连接后,比较该服务器的地址和端口是否客户端请求 之地址和端口,如果相同则说明是预期的连接,此时向客户端发送第二次应答, 应答中的b n d p o r t 和b n d a d d r 域包含了s o c k s 服务器为中继报文所创建 和绑定的s o c k e t 的地址和端口。 h i ) u d p : 对u d p 请求的应答将在后面的章节中作详细的讨论。 ( 6 ) 报文中继 1 3 s o c k s 防火墙的研究与实现 当一个应答指明失败( r e p 值不是o o ) 时,s o c k s 主机必须在发送后马上中断该 t c p 连接。该过程时间必须为在侦测到引起失败的原因后不超过1 0 秒。 如果应答指明成功( p e p 值为o o ) 时,请求类型是b i n d 或者c o n n e c t ,客户机 现在就可以传送数据了。如果所选择的认证方法支持完整性、认证机制或机密性的封 装,则数据被方法选择的封装包来进行封装。类似的,当需要发送给客户端的数据到 达s o c k s 主机时,主机同样必须使用恰当的认证方法来封装数据。 对于u d p 类型的数据报文的中继过程将在后面的章节中详细讨论。 图3 2 6 以t c p 连接( 包括了b i n d 操作) 为例详细的描述了一次在一个s o c k s 客户端和服务器之间的对话过程,包括了发生在三个不同的层次上的对话:套接字应 用程序接口、s o c k s 客户端和服务器、s o c k s 服务器和远端服务器。 i 目的地址需羹l is o c k s 吗t 是l 协议段客户 互亚 4 主方法协商 阶段 按用朋务嚣 指定的方法 进行对话 s o c k s 连接命奇 应用程序 数据交换 阶段 图326 一个基于t c p ( 包括b i n d 操作) 的s o c k s 客户端和服务器的对话过程 般备嚣蠼 认证方法可用 吗? 悬 i t # 一,t 盘避口号码 t c pc o n n e c t i i i l 一十 i l i 一上 i i i 焉 1 1 务丹客 r 蠹号请-定甩口回 一峁成一羞一嚣自# 址务来井 一昕采十一鹳蒋的一吲来按窟一鲫口摧鼻 1i 一 一 罢詈一 南京航空航天大学硕:k 学位论文 3 3s o c k sv 5 在s o c k sv 4 基础上的增强功能 虽然s o c k s 一开始就是作为一个防火墙协议提出来的,但s o c k sv 4 实际上只 是一个较为简单的代理协议,它在许多方面还不完善。主要体现在:它的认证机制不 强,它不支持u d p 代理,客户端需要有一个域名解析过程。s o c k sv 5 则弥补了上 述不足,它主要在四个方面增强了s o c k sv 4 的功能,从而真正成为了一个安全的 防火墙协议。 强壮的认证机制 s o c k sv 5 协议有两种认证方法。一种是由r f c l 9 2 9 描述的用户名口令认证, 一种是由r f c l 9 6 1 定义的通用安全服务应用编程接口( g e n e r i cs e c u r i t y s e r v i c e a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ,g s s a p i ) 认证。 认证方法协商 为了支持认证方法协商,s o c k s v 5 增加了两个消息,第一个消息由客户端发给 s o c k sv 5 服务器,表明它所支持的认证方法列表。第二个消息是s o c k sv 5 服务器 发给客户端的响应,表明服务器从中选择的客户端应使用的认证方法。根据配置的安 全策略,s o c k sv 5 服务器决定具体的认证方法。如果客户端支持的认证方法不符合 其安全策略,则s o c k sv 5 服务器将断开本次连接。 地址解析 s o c k s v 5 内建的地址解析代理,简化了域名解析的管理,其客户端可以直接使 用域名代替口地址发送给s o c k sv 5 服务器,由s o c k s 服务器进行地址解析,并 负责与应用程序服务器建立连接。 u d p 代理 s o c k v 5 允许创建u d p 代理。 地址解析已经在上面的章节中讨论过,下面将着重讨论u d p 代理和认证机制。 3 4u d p 会话 u d p 会话和t c p 会话在总体的框架上是类似的,但是在下面这些方面却有着关 键的不同。 3 4 1u d p 与s o c k s 服务器的连接 当一个客户端应用程序的u d p 套接字调用c o n n e c t 0 或者s e n d t 0 0 1 拘时候,s o c k s 客户端程序需要初始化一条到s o c k s 服务器的t c p 连接。u d pa s s o c i a t e 请求就 是用来建立一个在u d p 延迟过程中操作u d p 数据报的连接。d s t a d d r 和 s o c k s 防火墙的研究与实现 d s t p o r t 域包含了客户机期望在这个连接上用来发送u d p 数据报的地址和端口。 服务器可以利用该信息来限制至这个连接的访问。 t c p 连接在u d p 数据发送和接收的期间一直保持着,t c p 连接终止的时候, s o c k s u d p 会话也就结束了。 3 4 2 对u d pa s s o c i a t e 的应答 s o c k s 服务器在接收到s o c k s 客户端的u d p a s s o c i a t e 请求后,在本地创建 并绑定一个新的s o c k e t 用于接收客户端的u d p 数据报,作为二个u d p 延迟服务器, 并将该s o c k e t 所对应的服务器的地址和端口号在应答中通过b n d p o r t 和 b n d a d d r 域发送给客户端。 3 4 3u d p 数据中继 一个基于u d p 的客户端必须使用在b n d p o r t 和b n d a d d r 中指出的端口和 地址来发送数据报,通过在s o c k s 服务器上的延迟服务器再发送到远程主机。如果 所选择的认证方法提供认证机制、完整性和或机密性,则数据报必须使用恰当的封 装套给予封装。从s o c k s 客户端发送到s o c k s 服务器的每一个u d p 数据报携带一 个u d p 请求的报头( h e a d e r ) ,如图3 4 1 所示: l r s vr l gp :“pd s t a d d rd s t p o i u d a t a i 21lv a r i a b l e2v ;l r i a b l e 图3 4 1u d p 数据报报头 u d p 请求报头是: r s v 保留为0 0 0 0 ; f r a g 当前分片号; a t y p 地址类型,取值与意义同前; d s t a d d r 目的地址; d s t p o r t 目的端口号; d a t a 用户的数据。 当一个u d p 延迟服务器决定延迟一个u d p 数据报时,对客户机无任何通报。类 似的,它会将它不能或不打算延迟的数据报丢掉。当一个u d p 延迟服务器接收到一 个来自远程主机的延迟数据报,它必须使用上面的u d p 请求报头来封装该数据报, 和所选择的认证方法来封装数据;而当接收到客户机的数据报时,必须先去掉这个报 头再将数据报发送给远程主机。 南京航空航天大学硕士学位论文 f r a g 域指出了数据报是否为大量数据片( f r a g m e n t s ) q 。的一片。如果标明了最高 位为1 说明是序列的结束段,而值为o o 则说明该数据报是独立的。值介于1 1 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论