http协议十篇

时间:2023-03-16 14:12:10

http协议

http协议篇1

关键词:万维网;WWW;HTTP;FTP;Web服务器

WWW(World Wide Web,3W,Web)中文译名为万维网,环球信息网等。是欧洲核物理研究中心(CERN)为全球范围的科学家利用Internet建立在客户机/服务器模型之上,为了方便地进行通信、交流和查询所建立的。Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。万维网是一个分布式的超媒体(Hypermedia)系统,它是超文本(Hypertext)系统的扩充,所谓超文本是包含指向其他文档的链接文本,超文本是万维网的基础,在万维网中,主要使用了两个协议,分别是HTTP协议和FTP协议。

1 HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)提供了访问超文本信息的功能,是万维网与Web服务器之间的通信协议,属于应用层。HTTP协议是用于分布式协作超文本信息系统的、通用的、面向对象的协议。可以用于传输各种超文本页面和数据。

HTTP协议包括以下4个步骤:

第一,建立连接。客户端向服务器发出建立连接HTTP报文的请求,服务端将响应发送回客户端,连接建立。

第二,发送请求。客户端按照HTTP协议通过连接线路向服务端发送请求。

第三,给出应答。服务器按照客户端的要求给出应答,将结果HTML文件返回给客户端。

第四,关闭连接。客户端接到HTTP报文请求后关闭连接。

HTTP协议是基于TCP/IP之上的协议,它不仅保证是否能够正确传输超文本文档,而且还要确定传输文档中的哪一部分,以及哪部分内容首先显示等。通常HTTP报文消息包括客户向服务器的请求报文和服务器向客户的响应报文。这两种类型的报文消息由一个起始行,一个或者多个头域,一个指示结束的空行和消息体组成。HTTP的报文结构包括通用首部、请求首部、响应首部、实体首部和实体主体五个部分。每个头域由,和三部分组成。(注意:域名与大小写无关,可以在域值前添加任何数量的空格符,可将万维网的头域扩展为多行。)

通用域名首部包含请求和响应报文,其中的头域还包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via等。对通用头域的扩展要求通讯双方都支持,如果存在不支持的通用头域,一般将会作为实体处理。

一次HTTP操作其工作过程可分为以下几步:

第一,浏览器分析链接指向页面的URL。

第二,浏览器向DNS请求解析IP地址。

第三,域名系统DNS解析出微软服务器的IP地址。

第四,浏览器与该服务器建立TCP链接。

第五,浏览器发出HTTP请求GET。

第六,服务器通过HTTP响应把文件index.heml发送给浏览器。

第七,TCP连接释放。

第八,浏览器将文件index.heml进行解释,并将Web页显示给用户。

如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。HTTP采用TCP作为运输层协议,保证了数据的可靠传输,HTTP不需要考虑数据在传输过程中丢失后是怎样重传的,但是HTTP协议本身是无连接的,即通信双方在交换HTTP报文之前不需要先建立HTTP链接。

2 FTP协议

文件传输协议(File Transfer Protocol,FTP)是因特网上使用最广泛的文件传输协议,FTP运行在TCP上采用客户/服务器模型,包括两个组成部分,分别为FTP服务器、FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于服务器上的资源。FTP使用20和21这两个端口,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,数据传输端口就是21。

FTP提供以下功能:

第一,提供不同种类的主机系统之间的传输。

第二,使用户对远程服务器上的文件进行管理。

第三,提供文件共享能力。

另FTP还有两种模式,主动方式Standard(PORT方式),被动方式Passive(PASV方式)。Standard模式下FTP客户端发送PORT命令到服务器。Passive模式下FTP的客户端发送PASV命令到FTP Server。

Port:FTP客户端与服务器的21端口建立控制连接,用来传输控制信息,客户端发送请求,通过控制连接发送给服务器端的控制进程。服务器通过自己的数据连接端口连接至客户端的指定端口并发送数据。

FTP服务器在很多情况下是不支持PASV模式的,因为很多防火墙在设置时,是不允许接受外部发起连接的,因而位于防火墙后或内网的客户端无法穿过防火墙打开FTP服务器的高端端口,故许多内网的客户端不能用PORT模式登陆FTP服务器,造成无法连接。

文件交换协议(File Exchange Protoco,FXP)相当于是FTP的控制器,也可以认为FXP本身其实就是FTP的一个子集,使一个FTP客户端控制两个FTP服务器,在两个服务器之间传送文件。FTP协议的任务是使计算机将文件传送至另一台计算机,它与这两台计算机所处的位置、联接的方式、是否使用相同的计算机操作系统均没有关系。例如,两台计算机通过FTP协议连接,并且能够成功地访问Internet,用户就可以使用FTP命令来传输文件。

其传输方式可分为两大类:ASCII传输和二进制数据传输。

ASCII传输模式:若客户端当时正在拷贝的文件中包含的简单ASCII码,在机器上运行的是不同的操作系统,当文件传输时,FTP协议通常会自动地调整文件的内容以便于将文件“翻译”成另一台计算机存储的文本文件格式,就是我们通常所说的翻译。但是时常会有这样的情况发生,用户正在传输的文件包含的不是文本文件,它们可能是程序、数据库、字处理文件或者压缩文件等信息。那么这时,ASCII传输模式则会消耗大量的时间、资源进行翻译,与我们所希望的相去甚远,于是,出现了第二种传输方式,二进制传输。

参考文献:

[1] 沈红,李爱华.计算机网络(第二版)[M].清华大学出版社,2010.

[2] 谢希仁.计算机网络(第5版)[M].电子工业出版社,2011.

作者简介:周开强(1993―),男,黑龙江庆安人。

http协议篇2

>> 基于HTTP协议的无线AP远程配置实现方法 基于HTTP协议的服务器程序分析 浅析HTTP协议下的隧道技术 HTTP Tunnel在基于SIP协议的即时通信系统中的应用 如何实现无线AP的直接通讯 基于HTTP协议下自动更新平台的构建 基于多层协议理解的HTTP数据还原技术研究 基于零配置的瘦AP组网模式在X公司办公楼的应用与实现 基于H.323协议族技术标准远程监控系统的实现 基于Xilinx器件的CPRI协议实现方法 HTTP协议技术浅析 成套仪表远程无线通信协议的研究 基于位置信息的无线传感器网络路由协议的设计与实现 基于OpenWrt和TCP/IP协议的的Android远程无线智能机械弹琴手系统 基于ZigBee协议的无线键盘软件设计与实现 基于ZigBee的微气象无线监测系统通讯协议实现 基于ARM的无线传感器网络MAC协议设计与实现 基于DCS的无线数据传输控制协议设计与实现 基于802.11协议无线网络的嵌入式远程测控系统研究 基于TTCN-3的HTTP测试适配器的设计与实现 常见问题解答 当前所在位置:l语句,可把该页面设为主页,通过访问服务器即可看到该页面。

2.3 修改服务器访问权限

启动服务器后,如果要在客户端通过html页面执行服务器命令是不被允许的,因为apache的客户端的权限不是根用户级别,而系统的网络命令(如ifconfig)须在根用户权限下才能执行。解决方法是使用sudo,即在非根用户的情况下执行根用户权限的命令。但使用sudo时需密码,而http服务器在远程控制时不可能每执行一个命令就输入一次密码,因此需要更改sudo配置文件/etc/sudoers,即可实现这一目的。

3 远程修改无线AP配置

3.1 CGI程序结构图

本文CGI程序的总体框架:如图3 。

3.2 用户登录模块

http协议篇3

服务基于HTTP协议;HTTP是HypertextTransferProtocol的缩写,即超文本传输协议。顾名思义,HTTP提供了访问超文本信息的功能,是WWW浏览器和WWW服务器之间的应用层通信协议。HTTP协议是用于分布式协作超文本信息系统的、通用的、面向对象的协议。通过扩展命令,它可用于类似的任务,如域名服务或分布式面向对象系统。WWW使用HTTP协议传输各种超文本页面和数据。

(来源:文章屋网 http://www.wzu.com)

http协议篇4

当前中国市场上,智能手机已经越来越流行。随之而来的智能手机应用软件也多种多样,内容也越来越丰富。如何通过智能手机这个平台来丰富自己产品的应用和功能,已经被许多的开发者所重视,并且市场上也已经出现了许多类似的软件应用。为了给消费者提供一个舒适、方便和高效的使用环境,摒弃掉那些华而不实,只能充作摆设的功能,产品力求以实用性、易用性和人性化为主。

二、系统构成

本文设计的系统构成如上图所示。本系统由智能手机和网络家电两组成,这两部分通过无线局域网络连接起来。

(一)智能手机:即现在市场上的使用Android或IOS等系统的手机。在智能手机上安装家电控制管理软件,即可通过智能手机来控制家用电器。

(二)网络家电:网络家电是将普通家用电器利用数字技术、网络技术及智能控制技术设计改进的新型家电产品。网络家电可以实现互联组成一个家庭内部网络。可见,网络家电技术包括两个层面:首先就是家电之间的互连问题,也就是使不同家电之间能够互相识别,协同工作。第二个层面是解决家电网络的通信,使家庭中的家电能够互相传递信息。要实现家电间互联和信息交换,就需要用到SSDP和HTTP协议。

三、技术原理与实现

(一)SSDP协议:SSDP是一个“简单服务发现协议”,该协议定义了如何在网络上发现网络服务的方法。SSDP也规定了存放在XML文件中的信息格式。SSDP信息的传送是依靠HTTPU和HTTPMU进行的。不论是控制点,或是UPnP设备,工作中都必然用到SSDP,设备接入网络之后,要利用它向网络广播自己的存在(广播的信息中还有设备位置的描述),以便尽快与对应的控制点建立联系;控制点则利用SSDP来搜索自己将要控制的设备在哪里.并且可以排除已经存在的设备和控制点,只为新近的或尚未“联络”上的双方服务。

智能手机接入局域网落后,会向局域网内保留地址239.255.255.250:1900发送SSDP协议设备查询指令。路由器收到查询指令后,会在局域网内广播SSDP服务。网内支持SSDP服务的设备收到广播后,会向查询源(智能手机)返回SSDP服务应答指令。该应答指令包含设备的IP地址、SERVER信息设备UID等内容。手机收到应答指令后,即实现设备之间的互联。

本系统使用的SSDP设备查询消息格式如下:

M-SEARCH * HTTP/1.1 消息头

HOST:239.255.255.250:1900 协议保留多播地址和端口

MAN:"ssdp:discover“ 协议查询的类型

MX:seconds to delay response 设置设备响应最长等待时间

ST:search target 设置服务查询的目标

(二)HTTP协议:HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议。手机与家电之间信息的传递就使用HTTP协议。

本系统主要使用了HTTP协议中的POST方法,格式如下:

POST/WAN/dvdr/dvdr_ctrl.cgi HTTP/1.1

content-type:application/x-www-form-urlencoded

……

按照HTTP协议格式,把通信信息打包并通过HTTP协议发送到目的家电。Java语言库中提供一个Http连接的类HttpURLConnection,按照类说明配置相关属性就可以实现向目的地址发送数据的功能。实现代码如下:

hp = new URL(ip); //访问地址

//开始配置连接属性

URLConnection hpCon = hp.openConnection();

HttpURLConnection httpUrlConnection = (HttpURL Connection) hpCon;

……

//开始连接

httpUrlConnection.connect();

//配置输出流,并发送数据

OutputStream outStrm = httpUrlConnection.getOutput Stream();

byte[] b= s.getBytes();

……

(三)实现控制家电:家用电器通过HTTP协议接收到智能手机发来的信息后,会根据信息的内容做出相应的动作,比如开/关机、改变音量等。

而随着云技术的发展,也可以使云语音控制融入到控制系统中去,不需要专业的设备,任意一台智能手机或是平板电脑安装上软件即可,开启手机软件,启用监听模式,在声场的覆盖的范围内,即可与系统对话控制电气设备。

四、结语

本文通过对SSDP、HTTP协议的应用,把家用电器的控制扩展到当前流行的智能手机平台上,给用户增添了另一种体验。随着智能手机和网络家电的不断发展,类似这样方便、舒适、人性化的功能会越来越多,越来越完善。

参考文献:

http协议篇5

关键词:SSLStrip;中间人攻击;Cookie Proxy;DHCP

中图分类号:TP393.1 文献标识码:A 文章编号:1009-3044(2016)09-0068-04

1 引言

根据IEEE802.11协议簇,工作在2.4Ghz频段的Wi-Fi能够提供高达300-600Mbps传输速率的无线网络。良好的覆盖范围与众多的应用场合使得越来越多的家庭、企业将其作为接入Internet的首选布网方式。轻便、智能、快捷的同时却也带来了一定的安全隐患。

由于无线信道的共享属性。所有人均可以在一定工具的帮助下拦截、捕获、篡改WLAN中传输的明文数据报文。其大致方法为:通过ARP Spoof使客户端误将攻击者视为无线局域网中的网关;然后用同样的方法使局域网网关误将攻击者视为客户端;最后便可以抓取客户端与网关之间的所有明文数据包。这显然是对用户隐私的不尊重。

为了保护用户重要的数据在无线局域网中传输时不被监听,HTTPS协议应运而生。由于缺乏有效的SSL证书与正确的密钥,一个正在进行中的SSL会话是很难被监听和攻击的。当然,这只是在SSL会话正在进行的过程中是这样,那么,如果一个SSL会话还没有建立之前也是这样吗?考虑一种情形,用户在键入http://content时被服务器要求跳转至相应的https://content网页,在这一过程中,由于SSL会话尚未建立,所有的数据报文仍然明文传输,所以是存在被攻击的可能的。SSLStrip攻击就是在这种假设上完成的。

客观上讲,这种假设是普遍存在的。人们在访问一个网站时出于便捷的考虑会首选短网址进行输入,而不会在乎http与https的差别。因此,SSLStrip攻击具有难度低,实现率高的特点。在防范措施上,宣传并要求用户自觉输入https://content固然为一种办法,但是出于减轻用户负担的考虑,本文进一步研究了HTTP Proxy、Cookie Proxy、拓展DHCP这三种防范措施。

HTTP Proxy在客户端创建了一个数据库和一定的匹配策略,该数据库会自动记录用户浏览过的所有HTTPS网站的SSL配置信息。当用户再次访问相同的网站时会根据匹配策略比对当前网站的SSL配置信息和数据库中的SSL配置信息,得出客户端是否存在被攻击的结论,从而对当前访问的网站做出放行或阻止的行为。鉴于HTTP Proxy数据库无法检测未访问过的网站,而且匹配策略也可能较为庞大,本文进一步改进该方案:将数据库与匹配策略均放置于服务器端,通过爬虫自动补充SSL配置信息,从而提高匹配精确度。

Cookie Proxy采用了一个安全cookie 协议和增设了安全LAN与安全服务器的网络拓扑。其防范策略为:如果安全LAN检测到客户端发送的是HTTP请求而安全服务器中存储的相同Cookie ID的set-cookie为HTTPS类型,那么就可以认为客户端已经遭受中间人攻击,请求被立刻抛弃。

拓展DHCP则利用SSLStrip攻击中必须欺骗客户端把攻击者视为网关这一事实,利用DHCP确认消息在客户端的ARP缓存中绑定局域网网关的IP与MAC地址,从而有效阻止攻击的实现。

本文的研究思路为:首先介绍与SSLStrip相关的理论工作,并通过Kali下的实验予以展现;接着逐一介绍三种防范措施;最后对全文进行总结。

2 SSLStrip的相关理论与工作

伴随着互联网的不断发展,人们越来越多地使用网络来进行交流和娱乐。然而,在网络不断地融入人们生活方方面面的同时,网络安全问题也渐渐地显现了出来。近年来,越来越多的网络公司开始关注网络安全,例如Google、Baidu这些大型搜索引擎,诸多的电子商务网站(银行、邮箱、公司网站等)和大部分政府机关网站,都采用了HTTPS来加密用户与网站服务器之间的链接,从而保障用户的私密信息不会被盗取。

超文本传输安全协议(HTTPS)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议(HTTP)进行通讯,但利用SSL/TLS来对数据包进行加密。HTTPS开发的主要目的是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。SSL/TLS,即传输层安全协议,目的是为互联网通信,提供安全及数据完整性保障。其原理为利用非对称加密演算来对通讯方做身份认证,之后交换对称密钥作为会谈密钥(Session key)将通讯双方交换的数据做加密,以保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。

SSL/TLS采用TCP传输协议接收和发送数据,并且采用不对称加密技术实现双方身份的鉴别和信息的秘密完整传输。当我们建立一个HTTPS链接的时候,客户端与服务器端就开始进行握手过程。首先双方通过交换各自信息来鉴别身份。其中,由客户端先提供认证信息给服务器端并由服务器进行验证,之后由服务器返回证书给客户端验证,待验证通过后双方将建立起SSL/TLS链接并且双方将通过各自拥有的公钥私钥加密证书并生成一个会话密钥。最后通过该密钥进行加密会话,从而保证会话内容全程加密,不会被第三方监听或干扰。

目前,在浏览器、电子邮件、即时通讯、VoIP、网络传真等应用程序中,广泛支持SSL/TLS协议。主要的网站,如Google、Facebook、Twitter等也以SSL/TLS协议来创建安全连接,发送数据。SSL/TLS已成为互联网上保密通讯的工业标准。这很大一部分程度上杜绝了用户的隐私信息的泄露。然而,HTTPS本身也并非无懈可击,随着对HTTPS的研究的不断深入,针对其的攻击方法也日渐增多,这些攻击不仅仅让用户的隐私受到威胁,同时也阻碍了互联网安全的发展。其中最典型的一种攻击方式就是中间人攻击(MITM)。

所谓中间人攻击,是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。目前,主流的攻击方式有SSL劫持攻击、SSLStrip攻击以及漏洞攻击等。由于HTTPS所使用的证书颁发者必须是经过认证的对象,因此如果使用SSL劫持攻击则必须让用户信任攻击者自己签发的证书,这使得该攻击的成功率大大降低。鉴于目前针对HTTPS的漏洞攻击尚不成熟,本文就着重来探讨SSLStrip的攻击实现方式,以及针对该类攻击的防御措施。

SSLStrip,是一种不针对任何程序错误,而是基于HTTPS体系实现的攻击方式。其原理为基于多数用户不会主动请求SSL协议来保护自己和服务器之间的通信,从而不会主动在浏览器中输入https访问域名。但是由于http跳转https往往是通过服务器端302重定向实现,因此本攻击方式就抓住了这个特点,在用户端接受到跳转信息之前通过明文HTTP协议去除掉HTTPS跳转的过渡,从而使得原先本应被加密的信息都明文呈现在了攻击者的面前,使得攻击者能够自由获取需要的信息。

具体的实现步骤如下:

(1) 攻击者利用ARP欺骗等方式成功监听客户端;

(2) 客户端向服务器端发送http请求,第三方攻击者如实转发请求;

(3) 服务器端回复https链接给客户端,攻击者收到请求并将该链接篡改为http链接回复给客户端;

(4) 客户再次发送http请求给服务器端,攻击者将其改为https发送至服务器端;

(5) 至此,客户端与攻击者就建立了一个http明文链接,攻击者与服务器端建立了https加密链接,客户端的所有信息都暴露在了攻击者的视野之下。

实现过程展示如下:

3 SSLStrip在Kali上的实现

实现步骤如下:

(1)开启Kali Linux,打开命令行,输入echo 1 > /proc/sys/net/ipv4/ip_forward打开数据包转发功能;

(2)更改iptables,将所有80端口的TCP数据全部转发至另一未用端口以便监听(图中设定8080端口);

(3)输入ifconfig,查看本机的ip并且确认自己即将攻击的主机的ip以及自己所处局域网内的路由器的ip地址;

(4)利用Ettercap工具进行ARP欺骗。根据步骤3的信息,首先选择需要嗅探的网卡,此处为eth0,因此选择sniff > unified sniffing > eth0,之后扫描需要被攻击的Host,选择Hosts > scan for hosts >hosts list。选择Target 1,即刚刚选定的需要攻击的主机IP(此处为192.168.1.111),Target 2,即网关IP(此处为192.168.1.1),实现双向欺骗从而能够监听双向的数据包;

(5)待成功进行ARP欺骗后,打开sslstrip开始监听8080端口,输入:sslstrip Cp Cl 8080。

(6)之后另开一个命令行,键入tail -F sslstrip.log查看监听日志;

从上图中可以看到,针对豆瓣的登陆网址(),客户端发送的信息原本是以https协议加密传输,被全部转换至http明文并成功被SSLStrip监听和记录(form_email=&form_password=123456),并且客户端没有任何错误或警告信息提示。

至此,一个完整的SSLStrip攻击过程结束,第三方攻击者成功获取到了用户的登录信息并且客户端没有发现任何异常。

由此可见,SSLStrip的攻击方式非常简单,只需利用ARP欺骗监听同一网段下的受害者主机和网关,将所有主机到网关的HTTPS协议数据包篡改为HTTP协议的数据包即可实现数据的获取。经过多次的测试,我们发现很多大型邮箱服务网站(、、等)都可以通过SSLStrip攻击获取用户的账号密码。由于没有使用SSL劫持攻击,所以不会产生浏览器证书报错或是HTTPS协议中包含HTTP明文内容的问题,从而能让用户在丝毫都没有察觉到信息被监听的情况下获取到用户的隐私。可以看出,整个攻击的行为应用了多种协议的攻击手段,效果非常明显。

当然,除了ARP欺骗受害者主机与网关这种方式以外,还可以通过其他方式来截获数据包并进行篡改,例如DNS欺骗、设置等。总而言之,通过多种方式攻击方式结合SSLStrip,可以成功将原本用户端发送的HTTPS加密的内容转换为HTTP明文内容,并被第三方攻击者监听获取。所以说,防范SSLStrip此类攻击方式,显得非常重要。

4 基于HTTP Proxy的防范措施

HTTP Proxy的核心为数据库和匹配规则。传统上,数据库与匹配规则均存储在客户端中,数据库负责记录浏览过的所有HTTPS站点的SSL配置信息,匹配规则负责比对当前浏览的网站所使用的SSL配置信息与数据库中的配置信息,从而做出客户端是否已经遭受中间人攻击的结论。为了提高效率与精确率,本文认为:可以将数据库与匹配规则均放置于服务器端,由爬虫定期更新SSL配置信息与匹配规则,从而减轻客户端负担。

由于传统的HTTP Proxy建立在客户端,因此存在如下假设:用户在大多数情况下都处在安全的网络环境之下,由此拥有足够的样本去建立一个数据库,告诉客户端在当前浏览的网站中,应该存在或不存在什么特征。从而为匹配规则建立相应的基础。基于此种特征,该防范策略将同样适用于动态网站。

History Proxy中内嵌三个模块,分别是:分析模块,用来解析浏览器发出的请求以及服务器的响应信息;检测模块,用来监测不符合检测规则的所有请求和回应,从而认定当前页面是否安全;私密数据跟踪模块,在中间人检测器出错的情况下用来防止私密数据的泄露。

其中,私密数据跟踪模块基于以下事实做出判断:所有登陆框都应使用HTTPS进行传输,因此,如果在HTTP数据流中发现用户键入的账号密码,那么,我们就可以断定攻击者绕过了客户端的HTTP Proxy检测规则。此时只要断开连接即可避免损失。根据上述描述,我们在客户端增加一段JavaScript代码,将用户在登陆框中键入的账号密码加密后发送至HTTP Proxy的一个数组中。之后,私密数据跟踪模块将检查所有POST出去的数据,如发现存在与数组中存储的私密数据相匹配的明文账号密码则立刻断开该链接。

下面针对不同的HTTP消息谈论检测模块所应包含的规则:

①HTTP Moved消息:如果攻击者能够成功阻止Moved消息,那么将导致HTTP跳转HTTPS无法完成。表1列举了可能的修改以及它们是否被检测规则所允许:

表1 HTTP Moved Messages 检测规则

[当前响应\& 修改情况以及是否允许\&跳转到HTTPS域名\&无修改,允许跳转\&跳转到HTTPS域名\&修改Page,允许跳转\&跳转到HTTP 域名\& 非SSL协议,不允许跳转\&跳转到HTTP 域名\& 修改了的域名,不允许\&跳转到HTTPS域名\& 修改了的域名,不允许\&OK....\& HTML代替MOVED,不允许\&]

②JavaScript:由于JavaScript可以被用来在页面中读取用户键入的字符串。所以,我们应当对一个HTTPS页面中所有的JavaScript(包括内部与外部的)的执行过程予以记录,从而与当前的HTTPS页面进行比较,判断是否有额外加入或篡改的JavaScript 。一旦检测到这种情况就应当对用户发出警告。

③Iframe Tags:由于Iframe Tags可以将一个伪造的登录框覆盖到原始的登录框之上。因此,一旦数据库中的信息表示该网页在此处不应当有Iframe Tags时,我们就应该阻止该段代码的执行。

④HTTP Forms:由于增加的表单可能会诱导用户泄露私密信息,所以,我们在检测规则中对HTTP Forms采取如下策略:

(1)表单缺失:如果HTTP Proxy发现页面缺失安全登陆表单,则提出警告,建议终止会话。

(2)新表单:如果新表单为登陆框,发出警告;若不是,检测该表单是否采取加密传输并与其他表单指向相同安全域名。

(3)表单篡改:当HTTP Proxy发现表单由HTTPS转向HTTP或者表单所指向的目标域名发生变化,则提出警告。

对于实时变化额动态网站,我们做如下处理:

(1)对网页进行抽象:HTTP Proxy在首次访问一个网页时做两次相同的请求。比较两次请求的相应,若不同,记录相同部分的配置以及不同部分的配置变化域,将这些信息记录到数据库供检测模块比对。

(2)JavaScript认证:对网站上使用的JavaScript进行签名,从而认证该网页所使用的JavaScript没有被篡改过。

5 基于Cookie Proxy的防范措施

目前的Cookie机制可以描述如下:

(1)客户端发送HTTP(S)请求到服务器端;

(2)服务器端生成set-cookie发送至客户端;

(3)客户端生成一个cookie并存储;

(4)客户端将cookie发送至服务器端;

(5)服务器端予以响应。

Cookie Proxy采用了一个安全Cookie 协议和增设了安全LAN与安全服务器的网络拓扑。安全Cookie协议的主要作用为判断当前使用的是HTTP还是HTTPS进行数据传输。该协议工作在安全LAN与安全服务器之间。我们将安全Cookie协议表示如图3所示:

说明:expires:有效期;EK(data):使用密钥K加密data;

HMACK密钥为K的data的哈希消息认证码。

图3中的SN为HTTPS标志,当SN的值为secure时,我们认为当前传输协议为HTTPS。CID即Cookie ID,为标志该Cookie的随机数。我们建立如图拓扑。

根据该拓扑,WLAN中客户端的所有数据报文均经过SLGP过滤后再转发至网关。同样,服务器端所有的数据报文也是通过SSGP转发到其所在的网关。Cookie Proxy的运行机制为:如果SLGP发现客户端请求的传输类型为HTTP而SLGP中存储的具有相同CID的set-cookie为secure类型,那么SLGP将拒绝该次请求。

综述,我们将Cookie Proxy运行流程归纳如下:

(1)客户端将一个请求发送到SSGP;

(2)SSGP 接收到请求,从中解析出Cookie并验证该Cookie是否有效。如果有效,将请求转发至服务器组。

(3)服务器根据接收到的请求生成set-cookie,将set-cookie发送至SSGP。

(4)SSGP 将set-cookie进行封装,发送至SLGP。

(5)SLGP接收到SSGP发送的set-cookie,验证签名,如果有效就发送至客户端。

(6)客户端将接收到的set-cookie进行存储。

(7)客户端根据存储的set-cookie生成一个新的cookie并发送请求。

(8)返回第一步。

6 基于拓展DHCP的防范措施

在说明拓展DHCP之前,本文首先介绍一下目前DHCP协议中对DHCP ACK消息采取的规范。根据RFC2132,DHCP ACK消息中包含的配置信息有:IP Address、Net Mask、Default Gateway、DNS Sever等。但由于不存在对MAC Address的描述,所以我们无法通过DHCP ACK信息对局域网网关的IP-MAC关系进行绑定。ARP欺骗也因此容易成功。本文在查阅DHCP ACK报文结构之后发现,我们可以在ACK报文的一个可选项NIS (Network Information Service) 中加入相应的MAC消息完成网关绑定。

图5为拓展DHCP对NIS的一个结构设想:

根据协议,NIS的Code为40,由于NIS Domain Name中封装的是MAC Address,所以长度我们设置为6。从图5中可以推断该局域网内的网关的MAC 地址为3f-06-1e-5c-03-05。为进一步说明拓展DHCP的工作流程,我们构建如下拓扑:

在拓展DHCP网络拓扑中,DHCP服务器将局域网网关的IP-MAC关系通过重新设想的DHCP ACK消息告知客户端。客户端接收到DHCP服务器传送过来的DHCP ACK消息之后首先进行签名验证,验证通过后会将NIS字段和IP Address字段进行解析,之后将解析到的信息写入ARP缓存,从而完成网关的IP-MAC关系绑定。这样便可以有效避免ARP欺骗,并进一步制止SSLStrip的攻击。

7 论文总结与展望

本文在介绍了SSL工作机制之后对在其之上建立的HTTPS传输协议进行了分析,指出在网页由HTTP跳转HTTPS的过程中存在可以被中间人攻击所利用的漏洞。对于该漏洞的利用,本文以SSLStrip为例进行了展示。

由于该种攻击方式难度低、成功率高、防范少,本文随后重点分析了三种防范此类攻击的措施。第一种措施以HTTPS页面的配置信息比对结果为参考,重点在于检测规则的完善与精确。第二种措施通过Cookie中的SN字段判断传输类型是HTTP还是HTTPS,从而检测出本该请求HTTPS页面而实际获得HTTP页面的情形。这样便可以及时阻止该次攻击。第三种措施通过拓展DHCP在客户端的ARP缓存中绑定局域网网关的IP-MAC关系,从而有效制止基于ARP Spoof的SSLStrip攻击。

本文认为,由于HTTPS通信的开销相对较大,且用户在大多数情况下还是处于一个相对安全的网络环境之中的。所以,额外的攻击检测将使网络的负载更大。如何权衡开销更小的攻击检测与防范策略还需要我们进一步予以探究。

参考文献:

[1] 王立彦. HTTPS协议中间人攻击的实现与防御[D]. 东北大学,2011.

[2] 赵森栋.安全套接层中间人攻击与防护研究[D]. 哈尔滨工程大学,2013.

[3] Yan zhao. A New Strategy to Defense against SSLStrip for Android[J]. Proceedings of ICCT2013,2013:70-74.

[4] Marlinspike M. More Tricks for Defeating SSL in Practice. In Black Hat USA,2009.

[5] Marlinspike M. New tricks for defeating ssl in practice,2009.

[6] Callegati F, Cerroni W, Ramilli M. Man-in-the-Middle Attack to the HTTPS Protocol[J]. Security Privacy. 2009, 7(1):78-81.

http协议篇6

万维网WWW(World Wide web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的消息储藏所,英文简称为Web。万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点(也就是所谓的“链接到另一个站点”),从而主动地按需获取丰富的信息。

本程序是一个简单易用、方便快捷的多页面网页浏览器。您可以通过它快速地链接到全球任何一个可浏览网站,浏览丰富的Web资源。

论文先介绍了程序编程语言Visual C++和面向对象编程的概念,以及 Microsoft Visual Studio 6.0开发环境。然后介绍了要完成这个软件必须先了解WWW所用到的协议: HTTP和TCP/IP协议。HTTP的全称是HyperText Transfer Protocol,即超文本传输协议。HTTP是一个应用层协议,它使用TCP的80端口连接进行可靠的传送。TCP/IP是用于网络的一组通信协议,包括TCP(Transmission Control Protocol)协议和IP(Internet Protocol)协议。

要访问网页还得输入它的URL(Uniform Resource Locator),即统一资源定位符。对于HTTP协议,URL的一般形式是::/。默认端口80通常省略。

当我们了解以上内容后,文章就开始介绍围绕程序进行的一系列分析和设计。介绍程序有哪些功能,是如何实现的。

使用本软件的时候,用户只需要在地址栏输入网址(URL),敲击回车就可以连接精彩的网络世界了。

关键词:万维网 网页浏览器

HTTP TCP/IP URL

录 IV

1

论 1

2

系统平台开发介绍 2

略……

3

MFC 编程 4

略……

4

HTTP与TCP/IP协议介绍 7

略……

5

需求分析和可行性研究 12

略……

6

总体设计 14

略……

7

详细设计与函数实现 17

略……

8

论 37

参考文献 39

附件1

英文翻译原文(英文) 40

附件2

英文翻译中文 45

:13000多字

有中英文摘要、目录、参考文献、程序包及运行文件

300元

另:有2100字的外文文献及3300的中文翻译

http协议篇7

关键词:BitTorrent协议流;鉴别;控制;局域网

1 背景

P2P应用会使用掉局域网中大部分的网络带宽,最新的应用BitTorrent协议的P2P软件可以使用任意的端口来避免固定的端口阻挡穿越防火墙,甚至可以将封包的内容加密以隐藏P2P协议来躲避应用层内容检测。在没有硬件级防火墙的局域网中,通过对BitTorrent协议的分析,最终能做到有效地鉴别和阻止BitTorrent协议。

2 分析

通过分析典型P2P协议的建立过程,可以找出有效监控P2P的方法。本文中分析的软件为Bitcomet 0.84。Bitcomet不仅利用种子服务器来进行Peer间的资源共享,而且还使用一个DHT来为无种子服务器的流存储Peer信息。DHT能做到即使没有种子服务器,依然能够进行P2P的下载。

Bitcomet进行的P2P下载通常通过以下过程进行:

(1) 连接Tracker服务器,获得当前Peers列表。

Bitcomet通过TCP或者HTTP方式与种子服务器进行连接,从种子服务器获得当前Peers列表。请求通讯数据包中均含有以下特征字:

“GET /announce Info_hash”和“user-agent:BitTorrent”。

(2) 与Tracker服务器返回的Peers间进行BitTorrent协议握手,建立P2P连接。

0.60版本以前的Bitcoment所用的BitTorrent协议握手时,头信息按照以下格式: 第一个字节是19(0x13),相临19个字节为:BitTorrent protocol[1]。在Peers间协议握手时,可以通过数据包中含有BitTorrent protocol特征确认BitTorrent协议。但较新Bitcomet对Peers间握手的P2P通讯进行了加密处理,对数据包的监控无法得到很明显的特征字。

但通过对通讯数据的分析,我们可以发现P2P数据流具有这样一个特征:在与同一个IP地址进行BT协议通讯时,数据包的变化从64byte到1500byte不等。可以确定的是:64byte的TCP数据包是用来保持P2P信号连接的,1500byte的TCP数据包是用于P2P流数据的传送。

BT通讯中,64byte的P2P信号和1500byte的数据通讯之间的转化非常频繁,这个和FTP、HTTP的通讯有非常大的区别。也就是说,通过对这个特征的鉴别,可以准确地找出海量网络流量中的Bittorrent协议通讯。

(3) 如果没有种子服务器或者种子服务器没有响应,Bitcoment则通过DHT方式进行P2P连接。DHT有效使用每个Peer都成了一个种子服务器。所有的DHT请求有一个“id”关键字,它的值包含了发出请求节点的节点ID,所有的回复也有一个“id”关键字。

DHT通讯包含以下方法:

Ping:一个Ping的请求或回复都有一个关键字“id”。

Find_Node:Find_Node用来找出ID节点的联系信息。一个Find_Node请求包含“Target”。当一个节点收到了Find_Node请求,会回复一个关键字“Node”。

Get_Peers:Get_Peers联合一个流数据的Info_Hash。无论有无符合的数据情况,一个“token”关键字也将包含在返回值中。

Announce_Peer:宣布那个发出请求的节点正在一个端口上下载。

DHT通讯使用不加密的明文格式,可以在DHT通讯数据包中检测到DHT请求中所有包含的关键字信息。

通讯中的UDP包中均包含如下特征字:(所有的DHT方法均有的)

本地远程:“d1:ad2:id20”

远程本地:“d1:rd2:id20”

3 控制与对策

通过对BitTorrent协议的分析,我们可以通过阻止服务器间的文件信息交互来达到限制BT下载,甚至阻断BT下载。

通常我们使用ISA作为局域网服务器软件。ISA2004能针对应用层数据进行过滤和检测――HTTP签名阻止。当阻止特定的签名时,本质上是阻止在 HTTP 上进行隧道通讯的应用程序,并且以在请求头、请求正文、响应头和响应正文中的特定模式为特征。

对于与种子服务器或DHT通讯过程:设置HTTP签名阻止功能。通过对BitTorrent协议的分析,特征字(HTTP签名)存在于包中的请求正文(DHT请求、HTTP Request)或者响应正文(DHT响应)中。

对于没有硬件级防火墙的局域网来说,有文献[5]说可以用神经网络技术判别。

4 结论

对于没有硬件防火墙的局域网来说,对P2P流进行有效的控制是对网络管理员的一个挑战。本文所探讨的方法比单纯的端口控制要有效得多,这种通过分析软件通讯中所包含的特征字来鉴别通讯,从而进一步进行控制或者阻断通讯的方法,同样可以应用到其它协议中去。

参考文献

[1]Subhabrata Sen. Accurate, Scalable In-Network Identification of P2P Traffic Using Application Signatures [EB/OL]. AT&T labs-Research,2004.

[2]Wayne Blackard. White Paper: Managing Peer-to-Peer Traffic In Network Environments [R/OL]. . 2005.

[3]刘芹.一种利用BP神经网络的Internet 流量预测算法[D].华中师范大学计算机科学系.

[4]Cyril Soldani. Peer-to Peer behavior detection by TCP Flows analysis [D]. University of Liege,2003.

http协议篇8

DM9000A由3.3V供电,支持IEEE的802.3网络传输协议的10/100M以太网物理层单芯片收发器,片内集成滤波器、16kB的FIFO的SRAM缓存,自带可触发中断的MII管理接口并支持中继模式和节点模式、全双工和半双工模式的转换[2]。通过RJ45连接到Internet,综合LwIP程序包、通信协议(TCP/UDP)和网络编程函数,即可实现网络数据传输。

底层网络驱动DM9000A的网络设备驱动程序分为设备的初始化和数据的发送接收两部分。DM9000A的初始化过程是在CPU配置内部网络控制寄存器(NCR)、中断寄存器(ISR)等寄存器后进行的,具体过程包括软件复位、设置网络工作模式、设置PHY、选择模式、使能唤醒时间、使能RX/TX中断,使能数据接收功能等。初始化完成后,DM9000A进入等待数据发送/接收状态,图2是其数据传输流程图。当处理器发送数据时,先将TCP或IP数据打包成以太网数据帧,然后通过16bit总线写入到DM9000A的数据缓存区,再将数据长度等信息写到DM9000A的相应寄存器内后使能发送;当DM9000A接收到外部网络传来的网络数据时,将数据帧缓存在内部SRAM中,由CPU通过标志位对接收到的数据进行处理[3]。

RT-Thread操作系统

RT-Thread是采用面向对象风格设计、C语言实现的开放源代码的RTOS,其突出特点是小型、实用和可裁剪。其核心能够小到仅占用2.5kB的ROM和1kB的RAM空间;系统线程调度核心是完全bitmap方式,可使计算时间完全固定;配置文件rtconfig.h包含多种选项,能够对Kernel细节进行精细调整,并可对文件系统、网络协议栈、图形用户界面及FinshShell等组件进行可选配置。

RT-Thread系统移植RT-ThreadKernel代码目前支持多数主流CPU芯片,其bsp(板级支持包)含有所支持的各平台的移植代码,并会包含有两个汇编文件,一个是系统启动初始化文件,一个是线程进行上下文切换的文件,其他的都是C源文件。移植时选好开发平台后仅需修改rtconfig.py和rtconfig.h文件。RT-Thread源码具有非常好的移植性,可以非常容易的移植到其他开发环境下。本系统采用MDK开发环境,修改rtconfig.py文件中CROSS_TOOL=‘keil’和EXEC_PATH=‘D:/Keil’后,并配置rtconfig.h使能LwIP和FinshShell(其他组件可根据需要配置)。

RT-Thread初始化RealViewMDK的用户程序入口是main()函数,main()函数调用rt_thread_startup()函数(RT-Thread多平台下的统一入口点),函数中包含了RT-Thread操作系统的启动流程:包括初始化系统相关的硬件,初始化定时器、调度器等系统组件,初始化系统设备,初始化各个应用线程、并启动调度器。其中用户代码入口位置是rt_application_init(),在这个函数中可以初始化用户应用程序的线程,当打开调度器后,用户线程也将得到执行。

LwIP协议栈

LwIP是一种源代码开放的TCP/IP协议栈的实现,占用的体积大概在几十kB的RAM和40kB的ROM代码左右,因此十分适合于使用到嵌入式设备中。

LwIP协议初始化LwIP由协议的实现模块(IP,ICMP,UDP,TCP)、操作系统模拟层、缓冲与内存管理模块、网络接口函数和API接口函数等相对独立的模块组成。使用LwIP协议栈,需要初始化协议栈,同时协议栈本身会启动一个TCP/IP的线程,和协议相关的处理都会放在这个线程中完成[4]。

LwIPAPILwIPAPI在LwIP的应用中,可以充分发挥其内部结构优势,且不必在协议栈和应用程序之间复制数据,故可以使应用程序巧妙地直接处理内部缓冲区。LwIPAPI主要使用两种数据类型,netbuf和netconn。netbuf是描述网络缓存,对应的函数为netbuf_new()、netbuf_delete()、netbuf_ref()、netbuf_data()等;netconn是描述网络连接,对应的函数为netconn_new()、netconn_delete()、netconn_connect()、net-conn_recv()、netconn_write()等。

BSDSocket网络编程LwIP提供了一个轻型BSDSocketAPI的实现,为大量已有的网络应用程序提供了兼容的接口。LwIP的socket接口实现都在函数名前加有lwip前缀,同时在头文件中把它采用宏定义的方式定义成标准的BSDSocketAPI接口。BSD是UNIX/Linux系统中通用的网络接口,也广泛应用于嵌入式系统和实时操作系统中,不仅能够支持不同的网络类型,而且拥有内部进程之间的通信机制,图3显示了通过BSDSocket网络编程实现的分层结构[5]。

嵌入式网络应用实现

RT-Thread实时操作系统可实现多任务的调度管理,上层应用程序则可通过LwIP协议栈及调用LwIPAPI来实现网络通信及网络任务,再配合操作系统的RTGUI,DFS文件系统及设备驱动等组件来增加系统的实用性及扩展性。

HTTP协议通信过程超文本传输协议(HTTP)是一个实现WWW的应用层协议,是一种请求/响应协议,当基于HTTP的客户端/服务器数据交换有请求产生时,就开始一次HTTP数据通信。其过程如下:浏览器(客户端)首先提取出URL中的主机,然后向DNS发出请求、解析主机名的IP地址(服务器侦听端口一般为80);DNS将解析地址返回给浏览器;浏览器向该地址请求建立TCP连接;客户端发出请求报文,服务器向客户端发送响应报文,并将指定数据发送给客户端;结束后断开连接[6]。

WebServer实现WebServer任务是基于LwIPAPI接口函数来实现应用,图4为其任务流程图。从图中可以看出当用户通过网络连接访问服务器页面时,HTTP协议首先和服务器建立TCP连接,服务器通过进入netconn_accept()函数,并等待其邮箱信息的到来,等待期间线程被挂起。通过两次握手后,客户端就把HTTP请求报文作为第三次握手的第三个报文的数据发送给服务器,服务器收到HTTP请求报文后,就把所请求的页面作为响应报文返回给客户。该WebServe通过建立数据处理函数HTML编写服务器设置界面后,可应用于远程网络控制系统,通过在网页程序中加入<META/>标记,浏览器可以自发周期性的刷新页面,用户在浏览器端可及时收到远程现场传感器采集的数据,并可控制及设置参数来调节和监控远程现场环境,图5为基于HTTP协议实现的嵌入式远程网络监控系统的测试效果[7]。

系统网络通信测试LwIP协议已经实现了大部分的Socket网络连接函数,要实现Socket的基本通信,只需要在此基础上通过调用其Socket网络连接函数即可实现简单的客户机/服务器网络数据通信。为测试本网络通信系统的可靠性和稳定性,在RT-Thread操作系统下增加TCP客户端和UDP服务器网络测试程序线程,其实现过程与WebServer类似,不同之处是基本网络通信过程采用了更为标准化的BSDSocketAPI来实现,数据处理过程也和各测试任务相关。经TCP&UDP测试工具及RT-Thread自带的FinshShell的测试表明,该系统发送数据和接收数据稳定可靠,传输速率可达10Mb/s以上,满足多数嵌入式网络通信设备的要求。

结束语

http协议篇9

关键词:嵌入式;Web服务器;动态Web技术

Web作为一种Intel应用服务层,目前已经成为人们生活和工作中必不可少的一部分。将嵌入式技术和Web技术融合起来,实现嵌入式Web服务,形成远程控制和管理智能化嵌入设备,构建起远程控制和管理嵌入式设备。嵌入式Web技术具备良好的用户界面,具备较强的远程交互能力。嵌入式系统具备其自身的系统特色,传统的Web服务器上通过各种协议实现数据交换。本文针对嵌入式Web服务器中的动态Web技术进行研究,以期能够减少Web服务器的开发难度,并提高服务器的性能。

1 动态Web技术以及Web服务器概述

近年来,随着Web技术不断提高,新型的动态Web技术的出现,使得Web技术在嵌入式Web服务器中应用更加普遍。浏览器和服务器之间存在着很强的交互性,需要采用各种服务器端技术动态来生成Web网页。传统的Web服务器技术有SSI、JSP、ASP、CGI以及PHP技术。但是大多数的解决Web服务器难点方案都是针对某种语言,或者依赖于某种特定的操作系统和软件作为基础。如JSP、ASP和PHP技术都需要相应的语言支持,而对于嵌入式的Web服务器都需要考虑到编程语言的限制和资源的有限性。

嵌入式Web服务器指Web服务器嵌入到控制设备和现场测试之中,依靠相应的硬件和软件构成的平台系统将嵌入式转变为网络协议来实现网络通信。嵌入式Web服务器是以HTTP协议为基础的网络通信形式和通信协议,其接入网络之后用户通过浏览器界面来进行数据交互。Web服务器必须具备独立的平台,因此在某种程度上来看,Web动态技术在Web服务器上使用将会降低软件的开发难度,使得通信系统和软件系统的维护和设计工作变得更加容易。

2 嵌入式Web服务器的硬件架构

2.1 软件服务器构架

嵌入式Web服务器主要需要解决的问题就是通过Intel网络实现远程访问和控制,因此嵌入式的设备之中必须要有网络协议支撑。通常使用TCP/IP协议来实现通信和数据交互。嵌入式服务器系统需要一些基本的网络功能,网络通信协议也应该减去一些使用不到的功能,以节省嵌入式的有限资源。

2.2 精简TCP/IP协议

嵌入式Web服务器中的TCP/IP协议应适当精简,以满足Web服务器的网络数据交互需求。精简的Web服务器网络通信协议包括TCP、IP、ICMP以及ARP四种协议模式。其中ARP协议模式实现过程则是系统收到ARP协议的请求之后,ARP协议报文中的目标机和本地IP和物理地址进行交换,并将EWS的物理地址写成ARP应答报文实现数据交换。

2.3 HTTP协议

HTTP引擎主要是以Web服务器作为核心,HTTP也是浏览器和Web服务器通信协议。因此HTTP协议规定了服务器和Web之间数据和信息交换的格式,通过这种特殊的格式实现消息发送和报文应答。

2.4 TCP/IP协议实现

TCP/IP协议主要是连接可靠字节流服务,建立起数据连接和关闭的工作系统,确保TCP协议数据传输的稳定性和可靠性。数据传输之前,必须与数据传输源之间组成连接通道。数据的接收端也应对接收到的报出判断,凡是未经判断的报文均会被认为会出错。嵌入式Web服务器在本地打开一个监听端口,监测到远程用户系统,并使用TCP协议连接,当系统确认发送报文之后建立起TCP连接,然后实现服务器和Web网页之间的数据交换。

3 嵌入式动态Web技术的实现

在嵌入式设备之中加入Web服务器并实现Web功能,因为Web服务器的资源和处理能力有限,要求通过Web技术来构建Web服务器精简系统。嵌入式的动态Web生成模块需使用一种方法来处理Web服务器,以增强Web服务器的功能。嵌入式动态Web技术在网页中穿插动态数据,并将其用于控制和信息,实现用户和嵌入式设备间相互交互。Web服务器精简模块由CGI实现,扩展的CGI则是在HTTP服务器和嵌入式应用。每个客户端需要发送URL请求来和Web服务器之间实现数据交互,实现对设备参数的控制和读取。

嵌入式Web服务器的文件系统是Web服务器必不可少的组成部分,但为了实现Web页面的生成,网页的内容采用文件形式进行组织。扩展的CGI设计中,需要用到HTML模块,在网页生成过程中还可能涉及到图片信息。嵌入式Web服务器设计时,需要有一个文件系统,改系统主要用于存储生成的网页其他信息。完成一个文件系统使用HTML模块使用嵌入式Web服务器提供相应的文件系统服务,同时实现对数据库文件管理。

4结束语

嵌入式Web服务器的动态解决Web技术难点方案,在嵌入式服务器中扩展CGI,扩展的设计用于嵌入式Web服务器,并且结合CGI和HTTP技术等优势解决维护性差的问题。随着信息技术不断发展,嵌入式Web服务器动态Web技术的应用越来越广泛,但是在使用过程中如何提升动态技术的开发和维护质量已经成为了当前的研究重点。

参考文献:

[1]潘琢金,王秋实. 嵌入式Web服务器中动态Web技术的研究[J]. 计算机工程与设计,2010,18:3975-3978.

http协议篇10

近年来,国家对网络信息安全的重视程度日益提升,2012年,国务院《关于大力推进信息化发展和切实保障信息安全的若干意见》(国发[2012]23号)提出建设我国网络与信息安全保障体系的要求,十报告中19处提及信息技术与信息安全,并提出“健全信息安全保障体系”的目标。在此大背景之下,基础电信企业和增值IDC/ISP企业作为互联网建设和接入的第一主体,承担起信息内容安全防护及溯源定位的安全责任。2012年,工信部电管局《工业和信息化部关于进一步规范因特网数据中心业务和因特网接入服务业务市场准入工作的通告》,宣布恢复跨地区IDC、ISP许可申请,并在申请实施方案中明确要求新申请企业需建设信息安全管理系统,具备基础数据管理、访问日志管理、违法违规网站及违法信息发现处置等技术能力。2013年,基础电信企业责任制考核中加入了移动上网日志留存与IDC/ISP信息安全管理系统建设相关考核指标。伴随着基础企业责任制考核、IDC/ISP企业准入/年检实质性评测工作的开展,信息安全的测试工作量也迅速上升,信息安全测试技术手段的建设与评测要求日益迫切,根据测算在移动上网日志留存系统测试中,每种上网方式拨测量约1.1万次,针对IDC/ISP信安管理系统测试,每处局址EU拨测量约2万次,而在某些违法信息监测效果评估项目中,一轮测试的拨测量就超过24万次,一年中累计拨测量达到了数百万次。为配合相关考核及准入评测工作,迫切需要开发和完善稳定、高效、可靠的移动应用拨测工具套件,以便提高有关信息安全技术系统/设备的现网技术测试效率,规范拨测操作、简化评测实施难度,为此我们根据移动上网日志留存系统、IDC/ISP信息安合移动网络业务特点,针对互联网上主流应用协议及应用场景进行了分析,自主研发了具备HTTP、HTTPS、FTP、SMTP等11种公开协议、基于TCP和UDP的2种私有协议的的拨测套件。

2系统设计及功能说明

2.1系统功能简介

本文所述信息安全综合拨测工具指的是具备用户网络行为模拟,具备各类网络协议拨测,用于验证企业日志留存准确性、违法信息处置有效性的综合拨测系统。

2.2系统设计框架

本项目研究内容主要是拨测系统的各功能模块实现,根据现有测试需求,分为移动业务拨测工具、桌面业务拨测工具、服务端业务参考网站及辅助模块四个部分,框架示意图如图1所示。本项目研究内容将主要围绕上述模块的应用协议设计及实现、拨测方案设计及实现、测试结果统计及报告导出等实现具体功能。

2.3功能模块说明

2.3.1移动业务拨测工具本模块实现移动业务访问和用户行为模拟,在终端选型中主要考虑可靠性强,可编程行完善,能主流厂商量产便携终端、支持多种移动制式(2G/3G/4G)。支持Wi-Fi、支持USB及扩展存储,并具有主流操作系统,能便捷地开发移动终端应用,操作系统应支持多种硬件,经过筛选,最终确定了An-droid操作系统,并考虑到制式支持全面等问题,优先选取全网通终端。软件功能上,拨测工具开发具备如下多种功能。•支持多种拨测协议(HTTP、FTP、SSH、SMTP、POP3、IMAP、SMTPS、IMAPS、DNS、NTP、SNMP及自定义端口的拨测)。•支持拨测(HTTP、Socks),能通过协议进行HTTP拨测。•支持数据对比,能支持大小写敏感的文件列表匹配,支持几万条URL直接对比。•支持多线程拨测,能根据CPU核数和网络环境进行自动调整。•支持用户行为定义,能配置时间间隔,定义同一TCP流中是否进行多次HTTP请求。•能定义HTTP请求的UA信息。•自定义超时配置,能根据网络环境定义HTTP请求及响应的超时信息。•项目管理,支持以项目为单位,对拨测结果进行统计、导出。•报告导出,支持用户拨测记录按照指定格式导出测试记录报告。•地理位置识别,能通过GPS和网络自动定位当前拨测地点。•手机号码识别,能自动识别SIM卡中的手机号码,对于不能识别的SIM卡,支持以IMSI为标识符的手动管理。•服务端同步管理,支持URL远程下载,支持URL远程上传。•自动更新,支持云端自动检测软件版本,支持自动下载更新。•错误反馈,支持在程序崩溃后自动将错误日志提交远程服务器,支持错误后自动重启。•授权管理,支持机器码相关的授权管理,支持远程授权验证。开发的UI界面摘选如图2所示。2.3.2桌面业务拨测工具本模块实现桌面业务访问和用户行为模拟,在终端选型中主要考虑可编程性完善、便携性强,具有主流操作系统,能便捷的开发桌面应用程序,主流厂商量产便携终端、支持Wi-Fi、支持USB及扩展存储,通过USB扩展移动上网功能。功能上拨测工具与移动业务拨测工具类似,不同之处在于桌面业务拨测工具性能更强,能具备支持高并发、大流量的拨测能力,且能支持验证功能。开发的UI界面摘选如图3所示。2.3.3服务端业务参考网站本模块配合拨测工具实现服务端业务系统模拟,设计中主要考虑系统需具备可靠性,能承担大压力的业务会话处理,具备可扩展性,具备丰富的应用接口,最终选定用PHP下的bootstrap框架、Python下的Tornado框架以及MySQL实现服务端业务参考网站。功能上支持如下功能。•多种协议响应回显功能(HTTP、FTP、SSH、SMTP、POP3、IMAP、SMTPS、IMAPS、DNS、NTP、SN-MP及自定义端口的回显)。•支持日志查询,包括各类协议,各个字段查询。•支持拨测记录统计,可按单位和终端两个维度统计用户的拨测工作量及拨测所在网络。•支持各类管理操作,具备客户端注册管理、客户端校验回显、公网URL分配、企业导出URL管理、APK应用版本升级管理、服务器信息管理、应用崩溃日志管理。业务系统示意图如图4、图5所示。2.3.4辅助模块本部分主要包括业务爬虫、拨测列表筛选器和服务器三个组成部分,具体说明如下。•业务爬虫爬虫编写较为复杂,为此我们考虑其编写框架应具有可扩展性,具备丰富的编程扩展库,具备丰富的程序接口;此外需具备高效性,具备高效爬取互联网上业务URL的能力;考虑到可靠性,具备在服务器上持续运行的稳定性,最终我们选用了Python下的Scrapy爬虫框架,并况下1天可爬取500万条公网URL,能高效的实现业务上对URL的爬取。•拨测列表筛选器拨测列表筛选器需要是对业务爬虫爬取的URL进行筛选,能从大量的URL中挑选出实际可用的URL,主要功能需包括去除重复URL、去除非法URL(含非法字符)。考虑到测试的高效性,我们筛选中还会针对性的帅选URL目的文件较小的测试样本,以便在测试中提升测试效率,并节约流量。•服务器服务器目前Linux平台下具备相关成熟应用,我们将其整合到参考网站中,功能具备HTTP、HTTPS、Socks、DNS、FTP等各种协议,考虑到通用性,我们选用了3Proxy作为服务器应用,但在应用中我们发现3proxy对HTTP的PATH支持有限,部分情况下会出现URL转发错误,最终针对HTTP我们选用了更为成熟的squid3作为应用服务器。辅助模块的运行示意图如图6所示。

3项目难点、创新性及亮点

项目研究过程中我们发现存在若干难点,并创新性的提出了针对性解决方案,列举如下。一是如何在信息安全拨测中获取网络日志信息。测试需要源IP、源端口等详尽数据,但仅在客户端中无法得到上述信息,只有服务端才能获取相关数据,而标准的网络应用协议并不会传输上述网络日志信息,因此本项目在协议实现中,基于现网网络协议进行了流程改造,不仅能实现网络应用协议交互,还能传输测试所需的源IP、源端口、访问时间等日志信息。二是如何更好的模拟终端用户行为。在HTTP协议拨测中,传统的测试均只在一个TCP流中传输一次协议请求,但在现网环境,用户的一次交互会产生多次HTTP请求,并在同一个TCP流中完成,对于上述用户现网真实行为,需要在测试中进行重现。为此我们在测试工具实现时,支持针对不同用户行为的定制,可定义测试中是否进行重练接。在实际测试中发现,启用重练接后能有效验证企业测试中是否存在协议漏控现象。三是如何提高拨测效率。信息安全拨测的量巨大,测试耗时较长,曾经在某省测试中发现在3G网络下进行一次实验环境的测试耗时8个小时,为提高测试效率,本工具从技术实现、测试目标筛选、网络响应等方面进行了创新改造。首先是采用多线程并发的技术提高单位时间的拨测量,同时针对移动平台处理器性能较低的特点,我们在拨测算法上进行了优化,以便充分利用测试工具性能。其次是筛选测试目标。测试前,我们会通过爬虫程序对网络测试目标进行爬取,爬取中会判断筛选出延时小、访问便捷的测试目标作为拨测对象。提升实际测试中的效率。再次我们对自己的服务段业务参考网站进行了拨测方面的优化,采用了smarty框架进行模板渲染,能大大加强业务参考网站的并发性能,更好的响应拨测需求。四是如何确保测试结果准确性。测试工作涉及基础企业考核和准入企业牌照申请,因此需确保测试结果准确,结果不存在争议。为此我们会对测试过程进行详细的日志记录,留存好中间数据,包括每次的测试访问时间、服务器回应数据、拨测工具记录数据等。以确保测试过程所有数据均有据可循。同时为了确保测试结果的有效,我们还实现了从中间数据直接导出测试结果和测试报告的功能,即保证测试过程详细,又确保测试结果直观。

4应用现状