




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OSI参考模型背景:3分层的好处:3对OSI参考模型的评价:3数据格式:4数据包:4IP地址的分类:4OSI参考模型中的数据封装过程:5MAC 地址:7为什么我们不直接使用硬件地址进行通信?7IP地址与MAC地址的区别与特点7ARP协议:8ARP欺骗:9ARP欺骗攻击原理:9网络层(Network Layer):10ICMP协议:10TCP/UDP协议11DNS服务及协议:12DNS解析过程及原理12DNS的安全问题13SYN攻击解析14WWW服务及HTTP:15HTTP请求格式16GET方法与POST方法17HTTP应答17HTTPS19HTTPS和HTTP的区别19SSL安全套接层协议(Secure Socket Layer)20SSL协议特点20密钥、密钥对、公钥、证书、私钥20电子邮件服务及SMTP/POP协议21MUA,MTA与MDA21FTP协议:23DHCP协议:24DHCP服务器有3种为DHCP客户机分配TCPIP地址的方式:26Telnet服务及协议:26OSI VS TCP/IP27socket通信与http通信的区别:281、TCP连接282、HTTP连接293、SOCKET原理294、SOCKET连接与TCP连接305、Socket连接与HTTP连接306.socket是什么307.什么时候用http,什么时候用socket31python基于http协议编程:httplib,urllib和urllib231负载均衡(Load Balance)31一个域名对应多个IP地址32OSI参考模型背景: OSI参考模型(OSI/RM)的全称是开放系统互连参考模 型(Open System Interconnection Reference Model,OSI/RM),它是由国际标准化组织(International Standard Organization,ISO)提出的一个网络系统互连模型。在这个OSI七层模型中,每一层都为其上一层提供服务、并为其上一层提供一个访问接口或界面。不同主机之间的相同层次称为对等层。如主机A中的表示层和主机B中的表示层互为对等层、主机A中的会话层和主机B中的会话层互为对等层等。对等层之间互相通信需要遵守一定的规则,如通信的内容、通信的方式,我们将其称为协议(Protocol)。我们将某个主机上运行的某种协议的集合称为协议栈。主机正是利用这个协议栈来接收和发送数据的。分层的好处:各层之间是独立的,结构上可分割开,简化网络系统设计的复杂性,灵活性好,易于实现和维护。可以更加方便地适应网络技术和应用需求变化能促进标准化工作。每一层的功能及服务都可以很精确的说明。简单的说就是可以简化问题的分析、处理过程以及网络系统设计的复杂性。对OSI参考模型的评价:1. OSI模型的最重要的贡献是将服务、接口和协议三个概念区分清楚了;2. 层次数量与内容选择不是很好,会话层很少用到,表示层几乎是空的,数据链路层与网络层有很多的子层插入;3. 寻址、流控与差错控制在每一层里都重复出现,降低系统效率;4. 数据安全性、加密与网络管理在参考模型的设计初期被忽略了;5. 参考模型的设计更多是被通信的思想所支配,不适合于计算机与软件的工作方式;6. 严格按照层次模型编程的软件效率很低。OSI参考模型的提出是为了解决不同厂商、不同结构的网络产品之间互连时遇到的不兼容性问题。但是该模型的复杂性阻碍了其在计算机网络领域的实际应用。 与此对照,TCP/IP参考模型,获得了非常广泛的应用。实际上,也是目前因特网范围内运行的唯一一种协议。数据格式:数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字) IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等) TCP数据信息:TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)数据包:数据包是把所传送的数据分段打成 “包”,再传送出去。但是,与传统的“连接型”分组交换不同,它属于“无连接型”,是把打成的每个“包”(分组)都作为一个“独立的报文”传送出去,所以叫做“数据包”。这样,在开始通信之前就不需要先连接好一条电路,各个数据包不一定都通过同一条路径传输,所以叫做“无连接型”。这一特点非常重要,它大大提高了网络的坚固性和安全性。每个数据包都有报头和报文这两个部分,报头中有目的地址等必要内容,使每个数据包不经过同样的路径都能准确地到达目的地。在目的地重新组合还原成原来发送的数据。这就要IP具有分组打包和集合组装的功能。在实际传送过程中,数据包还要能根据所经过网络规定的分组大小来改变数据包的长度,IP数据包的最大长度可达 65535个字节。 IP地址的分类:网络号:用于识别主机所在的网络;主机号:用于识别该网络中的主机。 IP地址分为五类:A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。 A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。A类地址:(1)A类地址第1字节为网络地址,其它3个字节为主机地址。它的第1个字节的第一位固定为0. (2)A类地址范围:-55 B类地址:(1) B类地址第1字节和第2字节为网络地址,其它2个字节为主机地址。它的第1个字节的前两位固定为10. (2) B类地址范围:-55。 C类地址:(1)C类地址第1字节、第2字节和第3个字节为网络地址,第4个字节为主机地址。另外第1个字节的前三位固定为110。 (2)C类地址范围:-55。 OSI参考模型中的数据封装过程:在OSI参考模型中,当一台主机需要传送用户的数据(DATA)时,数据首先通过应用层的接口进入应用层。在应用层,用户的数据被加上 应用层的报头(Application Header,AH),形成应用层协议数据单元(Protocol Data Unit,PDU),然后被递交到下一层-表示表示层并不关心上层-应用层的数据格式而是把整个应用层递交的数据包看成是一个整体进行封装,即加上表示层的报头(Presentation Header,PH)。然后,递交到下层-会话层。 同样,会话层、传输层、网络层、数据链路层也都要分别给上层递交下来的数据加上自己的报头。它们是:会话层报头(Session Header,SH)、传输层报头(Transport Header,TH)、网络层报头(Network Header,NH)和数据链路层报头(Data link Header,DH)。其中,数据链路层还要给网络层递交的数据加上数据链路层报尾(Data link Termination,DT)形成最终的一帧数据。当一帧数据通过物理层传送到目标主机的物理层时,该主机的物理层把它递交到上层-数据链路层。数据链路层负责去掉数据帧的帧头部DH和尾部DT(同时还进行数据校验)。如果数据没有出错,则递交到上层-网络层。同样,网络层、传输层、会话层、表示层、应用层也要做类似的工作。最终,原始数据被递交到目标主机的具体应用程序中。物理层(Physical Layer):主要定义物理设备标准,如网线的接口类型、光纤的接口 类型、 各种传输介质的传输速率等。 它的主要作用是传输比特流 (就是由 1、 0 转化为电流强弱来进行传输,到达目的地后在转化为 1、0)。确定与传输介质的接口有关的一些特性(包括机械特性、电气特性、功能特性以及过程特性)在这一层,数据的单位称为比特(bit)。接口标准的四个特性: 机械特性:指明接口的形状和尺寸、引脚的数目和排列、电缆的长度及所含导线的数目等等。电气特性:指明在接口电缆的各条线上出现的电压的范围,信号的表示方式,脉冲宽度和频率,数据传送速率,最大传输距离等;功能特性:接口引(线)脚的功能和作用,指明某条线上出现的某一电平的电压表示何种意义;过程特性:指明对于不同功能的各种可能事件的出现顺序。如为了实现建立、维持、释放线路等过程中所要求的各控制信号变化的协调关系数据链路层(Data Link Layer):主要对从上下层接受的数据进行 MAC 地址的封装与解封装。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。帧(frame): 帧头 + 数据 + 校验 数据链路层协议:ARPMAC 地址:在局域网中,硬件地址又称为物理地址,或 MAC 地址。 注意:MAC地址是在数据链路层进行处理,而不是在物理层。网络节点的每一个网络接口(网卡)都有一个唯一的MAC地址。MAC地址固化在网卡中,一个节点允许有多个MAC地址,取决于该站点网络接口的个数。例如:安装有多块网卡的计算机;有多个以太网接口的路由器。路由器由于同时连接到两个网络上,因此它有两块网卡和两个硬件地址。MAC地址的长度为6个字节,共48位为什么我们不直接使用硬件地址进行通信?由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。即使硬件地址格式得到统一,但硬件地址不可能象IP地址一样具有层次结构(网络号+主机号),因此路由表将非常庞大,从而不可实现。 IP地址与MAC地址的区别与特点一、IP地址IP地址,指使用TCP/IP协议指定给主机的32位地址。IP地址由用点分隔开的4个8八位组构成,如 就是一个IP地址,这种写法叫点分十进制格式。IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类、B 类、C类等)的不同而不同。网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机。一个IP地址使得将来自源地址的数据通过路由而传 送到目的地址变为可能。二、MAC地址MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关。三、MAC地址的长度、表示方法、分配方法及其唯一性MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开, 如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由 IEEE(Istitute of Electrical and Electronics Engineers,电气与电子工程师协会)分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。四、IP地址与MAC地址在互连网中的作用既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么还需要为每台主机再分配一个IP地址呢?主要原因有以下几点:(1)IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。(2) 当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。(3)无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protocol:地址解析协议)负责将IP地址映射到MAC地址上来完成的。下面我们来通过一个例子看看IP地址和MAC地址是怎样结合来传送数据包的。假设网络上要将一个数据包(名为PAC)由北京的一台主机(名称为A,IP地址为IP_A,MAC地址为MAC_A)发送到华盛顿的一台主机(名称 为B,IP地址为IP_B,MAC地址为MAC_B)。这两台主机之间不可能是直接连接起来的,因而数据包在传递时必然要经过许多中间节点(如路由器,服 务器等等),我们假定在传输过程中要经过C1、C2、C3(其MAC地址分别为M1,M2,M3)三个节点。A在将PAC发出之前,先发送一个ARP请 求,找到其要到达IP_B所必须经历的第一个中间节点C1的MAC地址M1,然后在其数据包中封装(Encapsulation)这些地址:IP_A、 IP_B,MAC_A和M1。当PAC传到C1后,再由ARP根据其目的IP地址IP_B,找到其要经历的第二个中间节点C2的MAC地址M2,然后再将 带有M2的数据包传送到C2。如此类推,直到最后找到带有IP地址为IP_B的B主机的地址MAC_B,最终传送给主机B。在传输过程中,IP_A、 IP_B和MAC_A不变,而中间节点的MAC地址通过ARP在不断改变(M1,M2,M3),直至目的地址MAC_B。综合上面所述,我们可以归纳出IP地址和MAC地址相同点是它们都唯一,不同的特点主要有:1. 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址, 如我们可以给局域网上的某台计算机分配IP地址为12 ,也可以将它改成00。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。2. 长度不同。IP地址为32位,MAC地址为48位。3. 分配依据不同。IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。4. 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。ARP协议:ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议。在局域网中,网络中实际传输的是“帧”,帧里面有目标主机的MAC地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。目标MAC地址就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。我们以主机Host A()向主机Host B()发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”/00.00.00.00.00.00,这表示向同一网段内的所有主机发出这样的询问:“的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP欺骗:一个入侵者想非法进入某台主机,他知道这台主机的防火墙只对(假设)这个ip开放23口(telnet),而他必须要使用telnet来进入这台主机,所以他要这么做:1、他先研究这台主机,发现这台95的机器使用一个oob就可以让他死掉。2、于是,他送一个洪水包给的139口,于是,该机器应包而死。3、这时,主机发到的ip包将无法被机器应答,系统开始更新自己的arp对应表。将的项目搽去。4、这段时间里,入侵者把自己的ip改成5、他发一个ping(icmp 0)给主机,要求主机更新主机的arp转换表。6、主机找到该ip,然后在arp表中加入新的ip-mac对应关系。7、防火墙失效了,入侵的ip变成合法的mac地址,可以telnet了。 ARP欺骗攻击原理:为了减少网络上过多的ARP数据通信,一台主机,即使收到的ARP应答并非自己请求得到的,它也会将其插入到自己的ARP缓存表中,这样,就造成了“ ARP 欺骗”的可能。如果黑客想探听同一网络中两台主机之间的通信(即使是通过交换机相连),他会分别给这两台主机发送一个 ARP 应答包,让两台主机都“误”认为第三方黑客的主机MAC地址是对方的MAC地址,这样,双方看似“直接”的通信连接,实际上都是通过黑客所在的主机间接进行的。黑客一方面得到了想要的通信内容,另一方面,只需要更改数据包中的一些信息,成功地做好转发工作即可。网络层(Network Layer):主要将从上下层接收到的数据进行 IP 地址的封装与解封装。此外,网络层还可以实现路由选择、主机寻址、拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP,ICMP等。ICMP协议:ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。 它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。 比如我们经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。ICMP的重要性ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“Ping of Death”(死亡之Ping)攻击。“Ping of Death” 攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。(现在的操作系统已经取消了发送ICMP数据包的大小的限制,解决了这个漏洞) 此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。传输层(Transport Layer):定义了一些传输数据的协议和端口号(WWW 端口 80 等)在这一层,数据的单位称为数据段(segment)。传输层协议的代表包括:TCP、UDP等。TCP/UDP协议TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。TCP:1、面向连接,遵循三次握手机制 2、可靠传输,开销大 3、常用于协议:ftp(20/21),telnet(23),smtp(25),http(80).UDP:1、面向无连接 2、不可靠传输,开销小,简单, 3、适合于对延迟敏感但是允许一定程度丢包的应用,比如语音,视频 常用协议:dns,tftp,snmp,rip.会话层(Session Layer):通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。表示层(Presentation Layer):主要是进行对接收的数据进行解释、加密与解密、压缩与 解压缩等 (也就是把计算机能够识别的东西转换成人能够能识别的东西 (如 图片、声音等)应用层(Application Layer):应用层为操作系统或网络应用程序提供访问网络服务的接口。 主要是一些终端的应用,比如说 FTP(各种文件下载),WEB(IE 浏览),QQ 之类的应用层协议的代表包括:Telnet、FTP、HTTP、SMTP、POP3、DNS、DHCP等。DNS服务及协议:DNS 是域名系统 (Domain Name System) ,是一种用以将域名转换为IP地址的Internet服务。在数据网络中,设备以数字IP地址 标记,从而可以参与收发消息。但是人们很难记住这些数字地址。于是,人们创建了可以将数字地址转换为简单易记名称的域名系统。在Internet上,更便于人们记忆的是这样的域名,而不是该服务器的实际数字地址05。而且,即使Cisco决定更换数字地址,也不会给用户造成影响,因为其域名 仍然是。如图3-11所示,公司只需要将新地址与现有域名链接起来即可保证连通性。图3-11 解析DNS地址DNS解析过程及原理第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。第五步:重复第四步,直到找到正确的纪录。第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。让我们举一个例子来详细说明解析域名的过程.假设我们的客户机如果想要访问站点: , 此客户本地的域名服务器是 , 一个根域名服务器是NS.INTER.NET , 所要访问的网站的域名服务器是,域名解析的过程如下所示:(1)客户机发出请求解析域名的报文(2)本地的域名服务器收到请求后, 查询本地缓存, 假设没有该纪录, 则本地域名服务器则向根域名服务器NS.INTER.NET发出请求解析域名(3)根域名服务器NS.INTER.NET收到请求后查询本地记录得到如下结果: NS (表示域中的域名服务器为: ), 同时给出的地址,并将结果返回给域名服务器。(4)域名服务器 收到回应后,再发出请求解析域名的报文。(5)域名服务器 收到请求后,开始查询本地的记录,找到如下一条记录: A 2 (表示域中域名服务器的IP地址为:2),并将结果返回给客户本地域名服务器。(6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机。这样就完成了一次域名解析过程图3-12 DNS服务器层次结构 DNS的安全问题1、 针对域名系统的恶意攻击:DDOS攻击造成域名解析瘫痪。 DDOS全名是Distributed Denial of service (分布式拒绝服务),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使服务器无法处理合法用户的指令。DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当被攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高时,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了 - 目标对恶意攻击包的消化能力加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。你理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,骇客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了SYN攻击解析 SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。TCP协议建立连接的时候需要双方相互确认信息,来防止连接被伪造和精确控制整个数据传输过程数据完整有效。所以TCP协议采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN 同时自己也发送一个SYN包 即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。SYN攻击利用TCP协议三次握手的原理,大量发送伪造源IP的SYN包也就是伪造第一次握手数据包,服务器每接收到一个SYN包就会为这个连接信息分配核心内存并放入半连接队列,如果短时间内接收到的SYN太多,半连接队列就会溢出,操作系统会把这个连接信息丢弃造成不能连接,当攻击的SYN包超过半连接队列的最大值时,正常的客户发送SYN数据包请求连接就会被服务器丢弃,每种操作系统半连接队列大小不一样所以抵御SYN攻击的能力也不一样。2、 域名劫持:修改注册信息、劫持解析结果。 域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址而达到无法访问目标网站的目的。域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。原理域名解析(DNS)的基本原理是把网络地址(域名,以一个字符串的形式,比如 )对应到真实的计算机能够识别的网络地址(IP地址,比如9 这样的形式),以便计算机能够进一步通信,传递网址和内容等。由于域名劫持往往只能在特定的被劫持的网络范围内进行,所以在此范围外的域名服务器(DNS)能够返回正常的IP地址,高级用户可以在网络设置把DNS指向这些正常的域名服务器以实现对网址的正常访问。所以域名劫持通常相伴的措施封锁正常DNS的IP。如果知道该域名的真实IP地址,则可以直接用此IP代替域名后进行访问。比如访问/ ,可以把访问改为9/ ,从而绕开域名劫持。缺点它不是很稳定,在某些网络速度快的地方,真实的IP地址返回得比窃持软件提供的假地址要快,因为监测和返回这么巨大的数据流量也是要花费一定时间的。在网上查询域名的正确IP非常容易。WWW服务及HTTP:HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务,HTTP目前协议的版本是1.1.HTTP是一种无状态的协议,无状态是指Web浏览器和Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息.HTTP遵循请求(Request)/应答(Response)模型。Web浏览器向Web服务器发送请求,Web服务器处理请求并返回适当的应答。所有HTTP连接都被构造成一套请求和应答。在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:(1) 建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP 协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80(2) Web浏览器向Web服务器发送请求命令一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令例如:GET/sample/hello.jsp HTTP/1.1(3) Web浏览器发送请求头信息浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。(4) Web服务器应答客户机向服务器发出请求后,服务器会客户机回送应答,HTTP/1.1 200 OK应答的第一部分是协议的版本号和应答状态码(5) Web服务器发送应答头信息正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。(6) Web服务器向浏览器发送数据Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据(7) Web服务器关闭TCP连接一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码Connection:keep-aliveTCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。HTTP请求格式当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成:l 请求方法URI协议/版本l 请求头(Request Header)l 请求正文下面是一个HTTP请求的例子:GET/sample.jsp HTTP/1.1Accept:image/gif.image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)Accept-Encoding:gzip,deflate username=jinqiao&password=1234 (1) 请求方法URI协议/版本请求的第一行是“方法URL议/版本”:GET/sample.jsp HTTP/1.1以上代码中“GET”代表请求方法,“/sample.jsp”表示URI,“HTTP/1.1代表协议和协议的版本。根据HTTP标准,HTTP请求可以使用多种请求方法。例如:HTTP1.1支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。在Internet应用中,最常用的方法是GET和POST。URL完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头,最后,协议版本声明了通信过程中使用HTTP的版本。(2)请求头(Request Header)请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。Accept:image/gif.image/jpeg.*/*Accept-Language:zh-cnConnection:Keep-AliveHost:localhostUser-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)Accept-Encoding:gzip,deflate.(3)请求正文请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:username=jinqiao&password=1234在以上的例子的HTTP请求中,请求的正文只有一行内容。当然,在实际应用中,HTTP请求正文可以包含更多的内容。GET方法与POST方法l GET方法GET方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向Web服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。例如Http://login.jsp?Name=zhangshi&Age=30&Submit=%cc%E+%BD%BB从上面的URL请求中,很容易就可以辩认出表单提交的内容。(?之后的内容)另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大l POST方法POST方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据。POST方法克服了GET方法的 一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送给Web服务器,这就克服了GET方法中的信息无法保密 和数据量太小的缺点。因此,出于安全的考虑以及对用户隐私的尊重,通常表单提交时采用POST方法。HTTP应答与HTTP请求相似,HTTP响应也由3个部分构成,分别是:l 协议状态版本代码描述l 响应头(Response Header)l 响应正文下面是一个HTTP响应的例子:HTTP/1.1 200 OKServer:Apache Tomcat/5.0.12Date:Mon,6Oct2003 13:23:42 GMTContent-Length:112 HTTP响应示例Hello HTTP!协议状态代码描述HTTP响应的第一行(HTTP/1.1 200 OK)类似于HTTP请求的第一行,它表示通信所用的协议是HTTP1.1服务器已经成功的处理了客户端发出的请求(200表示成功).响应头(Response Header)响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等:Server:Apache Tomcat/5.0.12Date:Mon,6Oct2003 13:13:33 GMTContent-Type:text/htmlLast-Moified:Mon,6 Oct 2003 13:23:42 GMTContent-Length:112响应正文响应正文就是服务器返回的HTML页面:HTTP响应示例Hello HTTP!响应头和正文之间也必须用空行分隔。l HTTP应答码HTTP应答码也称为状态码,它反映了Web服务器处理HTTP请求状态。HTTP应答码由3位数字构成,其中首位数字定义了应答码的类型:1XX信息类(Information),表示收到Web浏览器请求,正在进一步的处理中2XX成功类(Successful),表示用户请求被正确接收,理解和处理例如:200 OK3XX-重定向类(Redirection),表示请求没有成功,客户必须采取进一步的动作。4XX-客户端错误(Client Error),表示客户端提交的请求有错误 例如:404 NOT Found,意味着请求中所引用的文档不存在。5XX-服务器错误(Server Error)表示服务器不能完成对请求的处理:如 500对于我们Web开发人员来说掌握HTTP应答码有助于提高Web应用程序调试的效率和准确性。虽然HTTP是一种很灵活的协议,但它并不安全。POST消息以纯文本格式向服务器上传信息,该信息可能被其他程序中途截取、阅读。与之相同的是,服务器的响应(尤其是HTML页面)也不加密。为了在Internet中进行安全通信,人们使用安全超文本传输(HTTPS)协议来访问或发布Web服务器信息。HTTPS可以采用身份验证和加密(encryption)两种方式保障客户端和服务器间的数据传输安全。HTTPS中还指定了应用层和传输层之间数据通信的附加规则。HTTPSHTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP向下下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS和HTTP的区别一、https协议需要到ca申请证书,一般免费证书很少,需要交费。(CA,电子商务认证授权机构(Certificate Authority),也称为电子商务认证中心,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。) 二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。 三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。SSL安全套接层协议(Secure Socket Layer) 用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。SSL协议位于TCP/IP协议与各种应用层协议之间,是一种国际标准的加密及身份认证通信协议,为TCP提供一个可靠的端到端的安全服务,为两个通讯个体之间提供保密性和完整性(身份鉴别)。SSL协议可分为两层:SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SSL协议特点1)SSL协议可用于保护正常运行于TCP之上的任何应用协议,如HTTP、FTP、S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人肖像权授权游戏角色形象设计合同
- 济南老旧房屋修缮后租赁合同包含维修责任界定
- 节能环保个人租房合同范例
- 奥运商业街区商铺租赁代售与赛事营销合同
- 2025中外企业员工劳动合同范本
- 离婚协议及财产分割、赡养费支付一次性告知服务合同
- 硅石矿采矿权转让及深加工产品出口投资合同
- 儿童职业装定制工作室转让合同及生产设备购买协议
- 2025晚稻收购合同样本
- 2025摄影作品合作合同
- 油气、集输、注水站工艺流程图的绘制
- 产科全身麻醉的应用与管理
- 电梯运行日常检查记录表
- GB/T 34281-2017全民健身活动中心分类配置要求
- GB 14536.9-1996家用和类似用途电自动控制器电动水阀的特殊要求(包括机械要求)
- 《百团大战》历史课件
- 尿培养标本的留取规范及临床意义课件
- 名贵药材-三七课件
- 国学《弟子规》 课件
- 股骨干骨折的护理查房课件
- 六年级上册美术课件-5.蔬菜的联想 |苏少版 (共65张PPT)
评论
0/150
提交评论