一种DNSSEC否定应答的响应及处理方法与流程

文档序号:12377615阅读:877来源:国知局
一种DNSSEC否定应答的响应及处理方法与流程

本发明涉及DNS安全领域,尤其涉及一种DNSSEC否定应答的响应及处理方法。



背景技术:

DNSSEC是Domain Name System Security Extensions的缩写,是DNS系统的一种安全扩展,是由IETF提供的一系列DNS安全认证的机制(可参考RFC2535)。它提供一种可以验证应答信息真实性和完整性的机制,利用密码技术,使得域名解析服务器可以验证它所收到的应答(包括域名不存在的应答)是否来自于真实的服务器,或者是否在传输过程中被篡改过。DNSSEC目前已经部署在根、多个顶级域和国家顶级域。通过DNSSEC的部署,可以增强对DNS域名服务器的身份认证,进而帮助防止DNS缓存污染等攻击。DNSSEC给解析服务器提供了防止上当受骗的武器,是实现DNS安全的重要一步和必要组成部分。

为了验证域名不存在的应答,DNSSEC引入了一种类型为NSEC3的资源记录(可参考RFC5155)。NSEC3类型的资源记录的owner为域名格式,其内容为域名经过数次SHA1加密之后通过Base32编码转换生成的一串长度为32字节的字符串和区名的组合。为了证明域名的不存在性,通常在回复报文中会包含最多3条的NSEC3资源记录和他们对应资源记录签名(RRSIG),为了回复对应的NSEC3记录,DNS权威服务器在一般的实现方式下会计算多次SHA1算法加密和base32编码转换,这些计算极大地降低了DNS权威服务器对于DNSSEC否定应答的响应速度,目前市面上常用的DNS软件通常都有此问题。由于在这一种特殊情况下DNS权威服务器的处理性能急剧下降,致使黑客能够更加有针对性地对整个DNS系统进行攻击,从而使部署实施DNSSEC的DNS系统变的更加脆弱。



技术实现要素:

本发明的目的在于:提高DNS权威服务器对于DNSSEC否定应答的响应速度;降低针对DNSSEC否定应答的分布式拒绝服务DDOS(Distributed Denial of Service)攻击的风险。

本发明提出了一种DNSSEC否定应答的响应方法,其包括以下步骤:

步骤A1、权威DNS服务器通过区文件形式加载DNS数据;

步骤A3、权威DNS服务器对加载的所有域名进行SHA1加密和base32编码计算并保存计算结果;

步骤A5、权威DNS服务器接收DNS查询。

其中,所述步骤A5具体包括:

步骤A51、判断所述DNS查询是否请求DNSSEC应答;

步骤A53、如果是,则由所述权威DNS服务器处理所述DNS查询。

其中,所述步骤A53具体包括:

步骤A531、权威DNS服务器判断是否针对该DNS查询返回DNSSEC否定应答;

步骤A533、如果是,则根据步骤A3中的计算结果查找NSEC3记录,并构成DNSSEC否定应答消息;

步骤A535、权威DNS服务器返回包含DNSSEC否定应答消息的DNS响应报文。

本发明还提出了一种基于DNSSEC否定应答的响应方法的处理方法,其包括以下步骤:

步骤B1、设定DDOS检测阈值;

步骤B3、计算接收的DNSSEC否定应答查询数;

步骤B5、根据查询数与所述阈值的比较,判断是否存在针对DNSSEC否定应答的DDOS攻击。

其中,所述步骤B1中DDOS检测阈值=带宽/包含DNSSEC否定应答消息的DNS响应报文的平均长度;所述包含DNSSEC否定应答消息的DNS响应报文为步骤A535中DNS服务器返回的DNS响应报文。

其中,所述步骤B5具体包括如果接收的DNSSEC否定应答查询数大于检测阈值,则表示存在针对DNSSEC否定应答的DDOS攻击。

本发明的优点在于:由于不会在查询处理的过程中进行额外的计算,DNSSEC否定应答的响应速度相比一般查询不会有明显的下降,并根据DNSSEC否定应答报文长度相比正常应答报文大幅增加的特点,提供了针对DNSSEC否定应答查询的DDOS攻击检测方法。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

附图1示出了现有技术的处理DNSSEC否定应答的流程图;

附图2示出了正常查询应答速度与DNSSEC否定应答的响应速度对比;

附图3示出了根据本发明实施例的DNSSEC否定应答的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如图1所示为现有技术中处理DNSSEC否定应答的流程图,流程如下:

步骤1、权威DNS服务器通过区文件形式加载DNS数据;

步骤2、权威DNS服务器接收DNS查询;

如果权威DNS服务器对DNNSEC否定应答的DNS查询处理,则进行如下步骤:

判断DNS查询是否请求DNSSEC应答;如果是,则权威DNS服务器处理DNS查询;随后判断该DNS查询权威DNS服务器是否需要返回DNSSEC否定应答;如果是,则对查询域名进行SHA1加密和Base32编码计算;然后根据计算结果查找NEC3记录,组成DNSSEC否定应答;最后权威DNS服务器将应答结果组成DNS报文并回复。

基于现有的技术方案,为了查找对应的NSEC3资源记录,每次的DNSSEC否定应答都需要计算数次的安全哈希算法SHA1(Secure Hash Algorithm)加密和Base32编码运算。对于一次的DNS查询来说,这些计算显然是相当重的,这些计算会增加了单次查询的处理时间,DNS服务器每秒钟能处理的查询数降低。

其中Base32这种数据编码机制,主要用来把二进制数据编码成可见的字符串,其编码规则是:任意给定一个二进制数据,以5个位(bit)为一组进行切分(base64以6个位(bit)为一组),对切分而成的每个组进行编码得到1个可见字符。Base32编码表字符集中的字符总数为25=32个,这也是Base32名字的由来。

图2展示了业界最常用的DNS软件BIND9在DNSSEC否定应答的和正常查询应答情况下的响应速度对比。从上图可得出,对比正常查询应答,DNSSEC否定应答的响应速度急剧下降。

为了克服以上弱点,本发明提出了一种新的方法。如图3所示,一种针对DNSSEC否定应答的快速响应方法,其包括以下步骤:

步骤A1、权威DNS服务器通过区文件形式加载DNS数据;

步骤A3、权威DNS服务器对加载的所有域名进行SHA1加密和base32编码计算并保存计算结果;

步骤A5、权威DNS服务器接收DNS查询。

所述步骤A5具体包括:

步骤A51、判断所述DNS查询是否请求DNSSEC应答;

步骤A53、如果是,则由所述权威DNS服务器处理所述DNS查询。

所述步骤A53具体包括:

步骤A531、权威DNS服务器判断是否针对该DNS查询返回DNSSEC否定应答;

步骤A533、如果是,则根据步骤A3中的计算结果查找NSEC3记录,并构成DNSSEC否定应答消息;

步骤A535、权威DNS服务器返回包含DNSSEC否定应答消息的DNS响应报文。

本发明申请提出的新的技术方案和现有的技术方案最大的区别在于计算SHA1加密和base32编码运算的时间,新的技术方案提出SHA1加密和base32编码计算不再在查询处理的过程中进行,而是在加载完DNS数据之后进行对应的预计算,这样在查询处理查找对应NSEC3资源记录的时候和一般DNS查询一样只需获取预计算的结果然后查找,并不会额外增加单次查询处理的时间。同时通过数据结构和算法的优化,使得SHA1加密和base32编码运算不会增加整个DNS数据加载时间。

其中,NESC3资源记录(RR)为验证DNS资源记录的否定存在。NSEC3 RR具有与NSEC RR相同的功能,除了NSEC3使用加密的散列记录名称以防止区域中记录名称的枚举之外。NSEC3记录链接到区域中的下一个记录名称(以散列名称排序的顺序)并列出为了NSEC3记录持有者名称的第一标签内由散列值所覆盖的名称而存在的记录类型。这些记录可作为DNSSEC验证的一部分而由解析器用于核实记录名称和类型的不存在性。NSEC3记录含有下述数据元素:

散列算法:所用的密码散列算法。

标志:“Opt-out”(指出委托是否被签名)。

迭代:散列算法被应用了多少次。

加盐(salt):用于散列计算的加盐值。

下一散列持有者名称:区域中下一个记录的名称(以散列名称排序的顺序)。

记录类型:为了NSEC3记录持有者名称的第一标签内由散列值覆盖的名称而存在的记录类型。

由于DNSSEC否定应答包含多条NSEC3资源记录和其签名资源记录,致使回应报文长度远大于正常回应报文长度(最大为正常报文长度的13倍),频繁地回复DNSSEC否定应答会对网络带宽造成很大的压力。黑客很容易针对此特性对DNS系统进行放大攻击。因此本发明申请还提出一种针对DNSSEC否定应答的DDOS检测方法,其具体原理为:根据计算设置一个DNSSEC否定应答查询数阈值,阈值为带宽/DNSSEC否定应答报文的平均长度,一旦接收的DNSSEC否定应答查询数超过该阈值,则提示有可能有DNSSEC否定应答查询的DDOS攻击,一旦发现有此类DDOS攻击,则可以通过前端DNS防护设备或者其他安全策略进行DDOS攻击防护。

本发明还提出了一种针对DNSSEC否定应答的处理方法,其包括以下步骤:

步骤B1、设定DDOS检测阈值;

步骤B3、计算接收的DNSSEC否定应答查询数;

步骤B5、根据查询数与所述阈值的比较,判断是否存在针对DNSSEC否定应答的DDOS攻击。

其中,所述步骤B1中DDOS检测阈值=带宽/包含DNSSEC否定应答消息的DNS响应报文的平均长度;所述包含DNSSEC否定应答消息的DNS响应报文为步骤A535中DNS服务器返回的DNS响应报文。

其中,所述步骤B5具体包括如果接收的DNSSEC否定应答查询数大于检测阈值,则表示存在针对DNSSEC否定应答的DDOS攻击。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1