如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
域名系统(DomainNameSystem,DNS)是一个将DomainName和IPAddress进行互相映射的DistributedDatabase.DNS是网络应用的基础设施,它的HYPERLINK"http://security.chinaitlab.com/"\t"_blank"安全性对于HYPERLINK"http://internet.chinaitlab.com/"\t"_blank"互联网的HYPERLINK"http://security.chinaitlab.com/"\t"_blank"安全有着举足轻重的影响。但是由于DNSProtocol在自身设计方面存在缺陷,安全保护和认证机制不健全,造成DNS自身存在较多安全隐患,导致其很容易遭受攻击。很多专家就DNSProtocol的安全缺陷提出了很多技术解决方案。例如IETF提出的域名系统安全HYPERLINK"http://cisco.chinaitlab.com/List_11.html"\t"_blank"协议(DomainNameSystemSecurity,DNSSEC),其目标就在于解决这些安全隐患。这个Protocol增加了安全认证项目,增强了Protocol自身的安全功能。但是新增加的安全机制需要占用更多的系统和网络资源,同时要升级Database和SystemManggamentSoftware,这些基于DNSSECHYPERLINK"http://cisco.chinaitlab.com/List_11.html"\t"_blank"协议的软件还不成熟,距离普及应用还有较长时间。目前,常见的措施是定期升级DNS软件和加强相关的安全配置,禁用不安全的端口等。本文对以侦听为基础的DNSID欺骗(DNSIDspoofing)进行了探讨,并提出了相关的防护解决方案。一、DNSSERVER的服务工作过程DNS是一种实现DomainName和IPAddress之间转换的系统,它的工作原理就是在两者间进行相互映射,相当于起到翻译作用,所以称为域名解析系统。DNSSystem分为Server和Client两部分,Server的通用Port是53.当Client向Server发出解析请求时,LocalDNSServer第一步查询自身的Database是否存在需要的内容,如果有则发送应答数据包并给出相应的结果;否则它将向上一层DNSServer查询。如此不断查询,最终直至找到相应的结果或者将查询失败的信息反馈给客户机。如果LocalDNSServer查到信息,则先将其保存在本机的高速缓存中,然后再向客户发出应答。日常我们上网是通过Browser方式来申请从DomainName到IPAddress的解析,即Client向DNSServer提交域名翻译申请,希望得到对应的IPAddress.这里以笔者所在院校为例,说明DNS的工作原理。例如Client的Address为10.252.2.16,学校DNSServer为218.30.19.40,从此客户机来访问西安财经学院网站。在地址栏键入学校网站的HYPERLINK"http://www.xaufe.edu.cn"www.xaufe.edu.cn,通过DNSServer查找其对应的IPAddress.这个申请从10.252.2.16的一个随机PORT发送出去,由218.30.19.40的53绑定端口接收到此申请并进行翻译,首先在218.30.19.40的高速缓存中查找HYPERLINK"http://www.xaufe.edu.cn"www.xaufe.edu.cn的IPAddress,若存在对应的映射关系,就直接将IPAddress发送给客户机,若缓存中没有,则218.30.19.40会向上层DNSSERVER查询,最后将查询到的结果先发送到218.30.19.40,最后由218.30.19.40将西安财经学院的IPAddress(281.195.32.1)返回给Client10.252.2.16.这样10.252.2.16就可以和西安财经学院站点建立连接并访问了。二、DNS欺骗攻击原理2.1欺骗原理Client的DNS查询请求和DNSServer的应答数据包是依靠DNS报文的ID标识来相互对应的。在进行域名解析时,Client首先用特定的ID号向DNSServer发送域名解析数据包,这个ID是随机产生的。DNSServer找到结果后使用此ID给Client发送应答数据包。Client接收到应答包后,将接收到的ID与请求包的ID对比,如果相同则说明接收到的数据包是自己所需要的,如果不同就丢弃此应答包。根据攻击者的查询和应答原理,可使用不同方法实现攻击,如:(