TCPIP整体构架分析.doc_第1页
TCPIP整体构架分析.doc_第2页
TCPIP整体构架分析.doc_第3页
TCPIP整体构架分析.doc_第4页
TCPIP整体构架分析.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

TCP/IP整体构架分析 传统的OSI(开放式系统互连)参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP协议并不完全符合OSI的七层参考模型,它采用了4层结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输协议(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:此层提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 下面简单介绍TCP/IP中协议的功能: 1 IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层-TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。 2. TCP 如果IP数据包中有已经封好的TCP数据包,那么IP将把它们传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层、设备驱动程序和物理介质、最后到接收方。 面向连接的服务(例如Telnet、FTP、rlogin、Xwindows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。 3.UDP UDP与TCP位于同一层,但不提供任何顺序或重新排序功能,因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询-应答的服务,例如NFS。欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。 4.ICMP ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的Redirect信息通知主机通向其他系统的更准确的路径,而Unreachable信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接体面地终止。PING是最常用的基于ICMP的服务。 三、TCP/IP各层的安全性和提高各层安全性的方法 TCP/IP的层次不同提供的安全性也不同,例如,在网络层提供虚拟私用网络,在传输层提供安全套接服务。 1、网络层的安全性 在过去十年里,已经提出了一些方案对网络层的安全协议进行标准化。例如,安全协议3号(SP3)就是美国国家安全局以及标准技术协会作为安全数据网络系统(SDNS)的一部分而制定的。网络层安全协议(NLSP)是由国际标准化组织为无连接网络协议(CLNP)制定的安全协议标准。集成化NLSP(I-NLSP)是美国国家科技研究所提出的包括IP和CLNP在内的统一安全机制。SwIPe是另一个网络层的安全协议,由Ioannidis和Blaze提出并实现原型。所有这些提案的共同点多于不同点。事实上,他们用的都是IP封装技术。其本质是,纯文本的包被加密,封装在外层的IP报头里,用来对加密的包进行Internet上的路由选择。到达另一端时,外层的IP报头被拆开,报文被解密,然后送到收报地点。 Internet工程特遣组(IETF)已经特许Internet协议安全协议(IPSEC)工作组对IP安全协议(IPSP)和对应的 Internet密钥管理协议(IKMP)进行标准化工作。IPSP的主要目的是使需要安全措施的用户能够使用相应的加密安全体制。该体制不仅能在目前通行的IP(IPv4)下工作,也能在IP的新版本(IPng或IPv6)下工作。该体制应该是与算法无关的,即使加密算法替换了,也不对其他部分的实现产生影响。此外,该体制必须能实行多种安全政策,但要避免给不使用该体制的人造成不利影响。按照这些要求,IPSEC工作组制订了一个规范:认证头(Authentication Header,AH)和封装安全有效负荷(Encapsulating Security Payload,ESP)。简言之,AH提供IP包的真实性和完整性,ESP提供机要内容。 IP AH指一段消息认证代码(Message Authentication Code,MAC),在发送IP包之前,它已经被事先计算好。发送方用一个加密密钥算出AH,接收方用同一或另一密钥对之进行验证。如果收发双方使用的是单钥体制,那它们就使用同一密钥;如果收发双方使用公钥体制,那它们就使用不同的密钥。在后一种情形,AH体制能额外提供不可否认的服务。有些在传输中可变的域,如IPv4中的time-to-live域或IPv6中的hop limit域,都是在AH的计算中必须忽略不计的。RFC 1828首次规定了加封状态下AH的计算和验证中要采用带密钥的MD5算法。而与此同时,MD5和加封状态都被批评为加密强度太弱,并有替换方案提出。 IP ESP的基本想法是整个IP包进行封装,或者只对ESP内上层协议的数据(运输状态)进行封装,并对ESP的绝大部分数据进行加密。在管道状态下,为当前已加密的ESP附加一个新的IP头(纯文本),它可以用来对IP包在Internet上作路由选择。接收方把这个IP头取掉,再对ESP进行解密,处理并取掉ESP头,再对原来的IP包或更高层协议的数据就象普通的IP包那样进行处理。RFC 1827中对ESP的格式作了规定,RFC 1829中规定了在密码块链接(CBC)状态下ESP加密和解密要使用数据加密标准(DES)。 AH与ESP体制可以合用,也可以分用。不管怎么用,都逃不脱传输分析的攻击。人们不太清楚在网络层上,是否真有经济有效的对抗传输分析的手段,但是在Internet用户里,真正把传输分析当回事儿的也是寥寥无几。 1995年8月,Internet工程领导小组(IESG)批准了有关IPSP的RFC作为Internet标准系列的推荐标准。除RFC 1828和RFC 1829外,还有两个实验性的RFC文件,规定了在AH和ESP体制中,用安全散列算法(SHA)来代替MD5(RFC 1852)和用三元DES代替DES(RFC 1851)。 在最简单的情况下,IPSP用手工来配置密钥。然而,当IPSP大规模发展的时候,就需要在Internet上建立标准化的密钥管理协议。这个密钥管理协议按照IPSP安全条例的要求,指定管理密钥的方法。因此,IPSEC工作组也负责进行Internet密钥管理协议(IKMP),其他若干协议的标准化工作也已经提上日程。 大多数IPSP及其相应的密钥管理协议的实现均基于Unix系统。任何IPSP的实现都必须跟对应协议栈的源码纠缠在一起,而这源码又能在Unix系统上使用,其原因大概就在于此。但是,如果要想在Internet上更广泛地使用和采纳安全协议,就必须有相应的DOS或Windows版本。而在这些系统上实现网络层安全协议所直接面临的一个问题就是,PC上相应的实现TCP/IP的公共源码资源什么也没有。 网络层安全性的主要优点是它的透明性,也就是说,安全服务的提供不需要应用程序、其他通信层次和网络部件做任何改动。它的最主要的缺点是: 网络层一般对属于不同进程和相应条例的包不作区别。对所有去往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理。这可能导致提供不了所需的功能,也会导致性能下降。针对面向主机的密钥分配的这些问题,RFC 1825允许(甚至可以说是推荐)使用面向用户的密钥分配,其中,不同的连接会得到不同的加密密钥。但是,面向用户的密钥分配需要对相应的操作系统内核作比较大的改动。 虽然IPSP的规范已经基本制订完毕,但密钥管理的情况千变万化,要做的工作还很多。尚未引起足够重视的一个重要的问题是在多播(multicast)环境下的密钥分配问题,例如,在Internet多播骨干网(MBone)或IPv6网中的密钥分配问题。 简而言之,网络层是非常适合提供基于主机对主机的安全服务的。相应的安全协议可以用来在Internet上建立安全的IP通道和虚拟私有网。例如,利用它对IP包的加密和解密功能,可以简捷地强化防火墙系统的防卫能力。RSA数据安全公司已经发起了一个倡议,来推进多家防火墙和TCP/IP软件厂商联合开发虚拟私有网,该倡议被称为S-WAN(安全广域网)倡议,其目标是制订和推荐网络层的安全协议标准。 2、传输层的安全性 在网络应用编程中,通常使用广义的进程间通信(IPC)机制来与不同层次的安全协议打交道。在Internet中提供安全服务的首先一个想法便是强化它的IPC界面,如BSD Sockets等,具体做法包括双端实体的认证,数据加密密钥的交换等。Netscape通信公司遵循了这个思路,制定了建立在可靠的传输服务(如TCP/IP所提供)基础上的安全套接层协议(SSL)。SSL主要包含以下两个协议: SSL记录协议。它涉及应用程序提供的信息的分段、压缩、数据认证和加密。SSLv3提供对数据认证用的MD5和SHA以及数据加密用的R4和DES等的支持,用来对数据进行认证和加密的密钥可以通过SSL的握手协议来协商。 SSL握手协议。用来交换版本号、加密算法、(相互)身份认证并交换密钥。SSLv3 提供对Deffie-Hellman密钥交换算法、基于RSA的密钥交换机制和另一种实现在 Fortezza chip上的密钥交换机制的支持。 Netscape通信公司已经向公众推出了SSL的参考实现(称为SSLref)。另一免费的SSL实现叫做SSLeay。SSLref和SSLeay均可给任何TCP/IP应用提供SSL功能。Internet号码分配当局(IANA)已经为具备SSL功能的应用分配了固定端口号,例如,带SSL的 HTTP(https)被分配的端口号为443,带SSL的SMTP(ssmtp)被分配的端口号为465,带SSL的NNTP(snntp)被分配的端口号为563。 微软推出了SSL2的改进版本称为PCT(私人通信技术)。至少从它使用的记录格式来看,SSL和PCT是十分相似的。它们的主要差别是它们在版本号字段的最显著位(The Most Significant Bit)上的取值有所不同: SSL该位取0,PCT该位取1。这样区分之后,就可以对这两个协议都给以支持。 网络层安全机制的主要优点是它的透明性,即安全服务的提供不要求应用层做任何改变。这对传输层来说是做不到的。原则上,任何TCP/IP应用,只要应用传输层安全协议,比如说SSL或PCT,就必定要进行若干修改以增加相应的功能,并使用(稍微)不同的IPC界面。于是,传输层安全机制的主要缺点就是要对传输层IPC界面和应用程序两端都进行修改。可是,比起Internet层和应用层的安全机制来,这里的修改还是相当小的。另一个缺点是,基于UDP的通信很难在传输层建立起安全机制来。同网络层安全机制相比,传输层安全机制的主要优点是它提供基于进程对进程的(而不是主机对主机的)安全服务。这一成就如果再加上应用级的安全服务,就可以再向前跨越一大步了。 3、应用层的安全性 网络层的安全协议允许为主机(进程)之间的数据通道增加安全属性,这意味着真正的数据通道还是建立在主机(或进程)之间,但却不可能区分在同一通道上传输的一个具体文件的安全性要求。比如说,如果一个主机与另一个主机之间建立起一条安全的IP通道,那么所有在这条通道上传输的IP包就都要自动地被加密。同样,如果一个进程和另一个进程之间通过传输层安全协议建立起了一条安全的数据通道,那么两个进程间传输的所有消息就都要自动地被加密。 如果确实想要区分一个具体文件的不同的安全性要求,那就必须借助于应用层的安全性。提供应用层的安全服务实际上是最灵活的处理单个文件安全性的手段。例如一个电子邮件系统可能需要对要发出的信件的个别段落实施数字签名。较低层的协议提供的安全功能一般不会知道任何要发出的信件的段落结构,从而不可能知道该对哪一部分进行签名。只有应用层是唯一能够提供这种安全服务的层次。 一般来说,在应用层提供安全服务有几种可能的做法,一个是对每个应用(及应用协议)分别进行修改。一些重要的TCP/IP应用已经这样做了。在RFC1421至1424中,IETF规定了私用强化邮件(PEM)来为基于SMTP的电子邮件系统提供安全服务。Internet业界采纳PEM的步子太慢的原因是PEM依赖于一个既存的、完全可操作的PKI(公钥基础结构)。 建立一个符合PEM规范的PKI需要多方在一个共同点上达成信任。作为一个中间步骤,Phil Zimmermann开发了一个软件包,叫做PGP(pretty Good Privacy)。PGP符合PEM的绝大多数规范,但不必要求PKI的存在。相反,它采用了分布式的信任模型,即由每个用户自己决定该信任哪些其他用户。因此,PGP不是去推广一个全局的PKI,而是让用户自己建立自己的信任之网。 S-HTTP是Web上使用的超文本传输协议(HTTP)的安全增强版本,它提供了文件级的安全机制,因此每个文件都可以被设成私人/签字状态。用作加密及签名的算法可以由参与通信的收发双方协商。S-HTTP提供了对多种单向散列(Hash)函数的支持,如: MD2,MD5及SHA; 对多种单钥体制的支持,如:DES,三元DES,RC2,RC4,以及CDMF; 对数字签名体制的支持,如: RSA和DSS。 目前还没有Web安全性的公认标准。这样的标准只能由WWW Consortium、IETF或其他有关的标准化组织来制定。S-HTTP和SSL是从不同角度提供Web的安全性的。S-HTTP对单个文件作私人/签字之区分,而SSL则把参与通信的相

温馨提示

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

评论

0/150

提交评论