html5 指纹识别,Http指纹识别技术

Http指纹识别技术

Http指纹识别现在已经成为应用程序安全中一个新兴的话题,Http服务器和Http应用程序安全也已经成为网络安全中的重要一部分.从网络管理的立场来看,保持对各种web服务器的监视和追踪使得Http指纹识别变的唾手可得,Http指纹识别可以使得信息系统和安全策略变的自动化,在基于已经设置了审核策略的特殊的平台或是特殊的web服务器上,安全测试工具可以使用Http指纹识别来减少测试所需要的配置.

本文将介绍现有的Http指纹识别技术,同时也将讨论所遇到的一些问题并且拿出可行的解决方案.

一.指纹识别理论

指纹的定义是这样的:1是指任何表面上的指尖印象或者是在指尖上蘸上墨水而在纸上留下的的墨水印象;2是指可以用来识别的东西:如特色、痕迹或特性等揭露起源的东西,表示物体或物质的特色的证据.

指纹识别可以分为两步,一是对指纹进行收集和分类;二是将未知的指纹同被储存在数据库中的指纹进行比较,从而找出最符合的.

当采集指纹的时候,对物体的所有主要特性的抓取是必要的.采集较多的细节,可以对第二步产生很大的帮助.当比较指纹的时候,很有可能有几个指纹是被不合适的匹配的,因为可指纹之间微小的差别很容易使识别产生错误,这也要求指纹识别需要很高的技术.

指纹识别技术现在已经是网络安全的已知技术.操作系统指纹识别在任何的网络评估中是一件通常的工作,现在也有很多操作系统指纹识别技术.操作系统指纹识别为什么能成功?那是因为每个操作系统实现TCP/IP时有微小的差别,当前比较流行的是利用TCP/IP堆栈进行后操作系统识别,相关工具比如Nmap;还有的是利用ICMP进行操作系统识别,代表工具如Xprobe.

Http指纹识别的原理大致上也是相同的:记录不同服务器对Http执行中的微小差别进行识别.Http指纹识别比TCP/IP堆栈指纹识别复杂许多,理由是定制Http服务器的配置文件、增加插件或组件使得更改Http的响应信息变的很容易,这样使得识别变的困难;然而定制TCP/IP堆栈的行为需要对核心层进行修改,所以就容易识别.

二.Banner获取

查看Http应答头信息是Http指纹识别中最简单也是最基础的,我们可以通过一个Tcp客户端比如netcat来实现,一般我们用的比较多的是telnet到80端口,然后发送命令来得到响应信息,这里我们以netcat来做例子,以下是三个不同Http服务器的响应信息:

1:Apache1.3.23server:

Http/1.1200OK

Date:Mon,08Sep200317:10:49GMT

Server:Apache/1.3.23

Last-Modified:Mon,08Sep200303:48:19GMT

ETag:"32417-c4-3e5d8a83"

Accept-Ranges:bytes

Content-Length:196

Connection:close

Content-Type:text/html

2:MicrosoftIIS5.0server:

Http/1.1200OK

Server:Microsoft-IIS/5.0

Expires:Mon,08Sep200301:41:33GMT

Date:Mon,08Sep200316:41:33GMT

Content-Type:text/html

Accept-Ranges:bytes

Last-Modified:Mon,08Sep200315:32:21GMT

ETag:"b0aac0542e25c31:89d"

Content-Length:7369

3:NetscapeEnterprise4.1server:

Http/1.1200OK

Server:Netscape-Enterprise/4.1

Date:Mon,08Sep200316:19:04GMT

Content-type:text/html

Last-modified:Mon,08Sep200215:37:56GMT

Content-length:57

Accept-ranges:bytes

Connection:close

三.模糊服务器Banner信息

在很多情况下,获取Banner被证明是一种很好的Http指纹识别方法.但是,网络管理员会选择通过配置或者是增加插件来更改或者是模糊服务器的Banner信息.当然,这样的设置确实是自动的阻止了很多对Http服务器的攻击.

要让服务器返回不同的Banner信息的设置是很简单的,象Apache这样的开放源代码的Http服务器,用户可以在源代码里修改Banner信息,然后重起Http服务就生效了;对于没有公开源代码的Http服务器比如微软的IIS或者是Netscape,可以在存放Banne

你可能感兴趣的:(html5,指纹识别)