一种DNS劫持的检测方法和装置与流程

文档序号:15648821发布日期:2018-10-12 22:54阅读:123来源:国知局

本发明涉及互联网技术领域,特别是涉及一种dns劫持的检测方法和装置。



背景技术:

dns劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析请求,分析请求的域名,并把审查范围以外的请求放行,否则返回假的ip地址,或者什么都不做从而使请求失去响应,其效果就是使特定的网络不能反应或使用户访问假网址。

dns服务器作为互联网的关键基础服务,一旦出现dns劫持,将影响互联网的大部分业务的正常运行,从而使用户无法进行正常的网络访问,甚至给用户造成经济损失。



技术实现要素:

有鉴于此,本发明提供了一种dns劫持的检测方法和装置,以避免因dns劫持而影响用户对互联网的正常访问。

为了解决上述问题,本发明公开了一种dns劫持的检测方法,应用于dns系统,所述检测方法包括步骤:

当用户发出域名解析请求时,获取本地dns服务器对所述域名解析请求进行解析所得到的第一ip地址;

将所述域名解析请求发送给httpdns服务器;

获取httpdns服务器对所述域名解析请求进行解析所得到的第二ip地址;

如果所述第一ip地址与所述第二ip地址不同,则向用户返回所述域名解析请求被劫持的警示信息。

可选的,所述将所述域名解析请求发送至httpdns服务器,包括:

从httpdns服务器ip列表中随机选取一个ip地址;

将所述域名解析请求发送给被选中的ip地址所对应的httpdns服务器。

可选的,还包括步骤:

如果所述httpdns服务器对所述域名解析请求的解析超时或无法返回所述第二ip地址,则将所述域名解析请求发送给urp服务器;

获取所述urp服务器对所述域名解析请求进行解析所得到的第三ip地址;

如果所述第一ip地址与所述第三ip地址不同,则向用户返回所述域名解析请求被劫持的警示信息。

可选的,所述将所述域名解析请求发送给urp服务器,包括:

从urp服务器ip列表中随机选取一个ip地址;

将所述域名解析请求发送给被选中的ip地址所对应的urp服务器。

可选的,还包括步骤:

如果所述urp服务器对所述域名解析请求的解析超时或无法返回所述第三ip地址,则将所述域名解析请求发送给权威dns服务器;

获取所述权威dns服务器对所述域名解析请求进行解析所得到的第四ip地址;

如果所述第一ip地址与所述第四ip地址不同,则向用户返回所述域名解析请求被劫持的警示信息。

可选的,所述将所述域名解析请求发送给权威dns服务器,包括:

从权威dns服务器ip列表中随机选取一个ip地址;

将所述域名解析请求发送给被选中的ip地址所对应的权威dns服务器。

相应的,为了保证上述方法的实施,本发明还提供了一种dns劫持的检测装置,应用于dns系统,所述检测装置包括:

第一获取模块,用于当用户发出域名解析请求时,获取本地dns服务器对所述域名解析请求进行解析所得到的第一ip地址;

第一发送模块,用于将所述域名解析请求发送给httpdns服务器;

第二获取模块,用于获取httpdns服务器对所述域名解析请求进行解析所得到的第二ip地址;

第一示警模块,用于如果所述第一ip地址与所述第二ip地址不同,则向用户返回所述域名解析请求被劫持的警示信息。

可选的,所述第一发送模块包括:

第一选取单元,用于从httpdns服务器ip列表中随机选取一个ip地址;

第一发送单元,用于将所述域名解析请求发送给被选中的ip地址所对应的httpdns服务器。

可选的,还包括:

第二发送模块,用于如果所述httpdns服务器对所述域名解析请求的解析超时或无法返回所述第二ip地址,则将所述域名解析请求发送给urp服务器;

第三获取模块,用于获取所述urp服务器对所述域名解析请求进行解析所得到的第三ip地址;

第二示警模块,用于如果所述第一ip地址与所述第三ip地址不同,则向用户返回所述域名解析请求被劫持的警示信息。

可选的,所述第二发送模块包括:

第二选取单元,用于从urp服务器ip列表中随机选取一个ip地址;

第二发送单元,用于将所述域名解析请求发送给被选中的ip地址所对应的urp服务器。

可选的,还包括:

第三发送模块,用于如果所述urp服务器对所述域名解析请求的解析超时或无法返回所述第三ip地址,则将所述域名解析请求发送给权威dns服务器;

第四获取模块,用于获取所述权威dns服务器对所述域名解析请求进行解析所得到的第四ip地址;

第三示警模块,用于如果所述第一ip地址与所述第四ip地址不同,则向用户返回所述域名解析请求被劫持的警示信息。

可选的,所述第三发送模块包括:

第三选取单元,用于从权威dns服务器ip列表中随机选取一个ip地址;

第三发送单元,用于将所述域名解析请求发送给被选中的ip地址所对应的权威dns服务器。

从上述技术方案可以看出,本发明提供了一种dns劫持的检测方法和装置,该方法和装置应用于dns系统,具体为:当用户发出域名解析请求时,获取本地dns服务器对域名解析请求进行解析所得到的第一ip地址;将域名解析请求发送给httpdns服务器;获取httpdns服务器对域名解析请求进行解析所得到的第二ip地址;如果第一ip地址与第二ip地址不同,则向用户返回域名解析请求被劫持的警示信息。通过在发生劫持时向用户发出警示信息,可以使用户停止访问被劫持的域名所指向的错误的内容服务器,用户甚至可以根据该警示信息进一步采取相应的处置措施,从而能够避免因dns劫持而影响用户对互联网的正常访问。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种dns劫持的检测方法的步骤流程图;

图2为本发明实施例提供的另一种dns劫持的检测方法的步骤流程图;

图3为本发明实施例提供的又一种dns劫持的检测方法的步骤流程图;

图4为本发明实施例提供的一种dns劫持的检测装置的结构框图;

图5为本发明实施例提供的另一种dns劫持的检测装置的结构框图;

图6为本发明实施例提供的又一种dns劫持的检测装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

图1为本发明实施例提供的一种dns劫持的检测方法的步骤流程图。

参照图1所示,本实施例提供的dns劫持的检测方法应用于dns系统,即域名系统,用于检测一个域名解析请求是否被劫持,即被恶意向用户的域名解析请求返回错误的ip地址或者不返回正确的ip地址,该检测方法具体包括如下步骤:

s101:获取本地dns服务器返回的第一ip地址。

当用户发出域名解析请求时,首先是将该请求发送至本地dns服务器,本地dns服务器在接收到该域名解析请求时,对该请求所携带的域名信息进行解析,给出与该域名所对应的ip地址,将将解析出的ip地址返回给用户用于发送该请求的终端设备,此时,为了判断是否被劫持,获取该本地dns服务器所解析出的ip地址,为了便于区分,这里将本地dns服务器所解析出的ip地址称为第一ip地址。

s102:将域名解析请求发送给httpdns服务器。

在将用户的域名解析请求发送至本地dns服务器的同时,还将该请求发送给httpdns服务器,以使该服务器对该请求进行解析。

httpdns是使用http协议向dns服务器的80端口进行请求,即代替传统的dns协议向dns服务器的53端口进行请求。也就是使用http协议去进行dns解析请求,将服务器返回的解析结果,也就是域名对应的服务器ip地址返回给用户的设备上。

本实施例中具体是通过下述的步骤向httpdns服务器发送该域名解析请求:

首先,为了负载均衡,从httpdns服务器ip列表中随机选取一个ip地址,并将该ip地址所对应的httpdns服务器作为目标httpdns服务器;然后,将该域名解析请求发送给该目标httpdns服务器,以使该目标httpdns服务器对该请求中的域名进行解析,得到与请求中域名相对应ip地址,为了与本地dns服务器所返回的ip地址予以区分,这里将其称为第二ip地址。

s103:获取httpdns服务器返回的第二ip地址。

这里的httpdns服务器即是上面所说的目标httpdns服务器,在目标httpdns服务器根据该域名解析请求中的域名进行解析得到第二ip地址后,获取该第二ip地址。

s104:如果第一ip地址与第二ip地址不同则发出警示信息。

在得到上述第一ip地址和第二ip地址后,将两者进行比对,如果两者相同,则表明用户的域名解析请求在本地范围内没有被劫持,此时不做任何反应,即不对用户的行为作出任何警示或者干预。

如果第一ip地址与第二ip地址不同,则表明该域名解析请求在本地范围内被劫持,即本地dns服务器内有劫持行为发生,即第一ip地址为错误的内容服务器ip地址,此时及时向用户发出警示信息,向用户提示其发出的请求已经被劫持。同时,为了使避免用户进入该错误的ip地址所指向的内容服务器,还可以控制用户的设备拒绝登陆该错误的内容服务器。

从上述技术方案可以看出,本实施例提供了一种dns劫持的检测方法,该方法应用于dns系统,具体为:当用户发出域名解析请求时,获取本地dns服务器对域名解析请求进行解析所得到的第一ip地址;将域名解析请求发送给httpdns服务器;获取httpdns服务器对域名解析请求进行解析所得到的第二ip地址;如果第一ip地址与第二ip地址不同,则向用户返回域名解析请求被劫持的警示信息。通过在发生劫持时向用户发出警示信息,可以使用户停止访问被劫持的域名所指向的错误的内容服务器,用户甚至可以根据该警示信息进一步采取相应的处置措施,从而能够避免因dns劫持而影响用户对互联网的正常访问。

实施例二

图2为本发明实施例提供的另一种dns劫持的检测方法的步骤流程图。

参照图2所示,本实施例提供的dns劫持的检测方法应用于dns系统,即域名系统,用于检测一个域名解析请求是否被劫持,即被恶意向用户的域名解析请求返回错误的ip地址或者不返回正确的ip地址,该检测方法具体包括如下步骤:

s201:获取本地dns服务器返回的第一ip地址。

这里与上一实施例中获取第一ip地址的方案相同或类似,这里不再赘述。

s202:将域名解析请求发送给httpdns服务器。

在将用户的域名解析请求发送至本地dns服务器的同时,还将该请求发送给httpdns服务器,以使该服务器对该请求进行解析,解析出该请求中域名所对应的ip地址,这里将其称为第二ip地址。

s203:如果不能得到第二ip地址则将域名解析请求发送给urp服务器。

如果在将该域名解析请求发送给httpdns服务器后,该服务器无法对其进行解析得到第二ip地址,或者对该请求的解析超时,则将该域名解析请求发送给urp服务器对其进行解析,具体操作为:

首先,为了负载均衡,从urp服务器ip列表中随机选取一个ip地址,并将该ip地址所对应的urp服务器作为目标urp服务器;然后,将该域名解析请求发送给该目标urp服务器,以使该目标urp服务器对该请求中的域名进行解析,得到与请求中域名相对应ip地址,为了与本地dns服务器所返回的ip地址以及httpdns服务器所返回的ip地址予以区分,这里将其称为第三ip地址。

如果该httpdns服务器能够正常返回第二ip地址,则直接将第二ip地址与第一ip地址进行对比,通过对比得到是否被劫持的结论,也就无需将该域名解析请求再发送给urp服务器。

urp服务器是一种互动管理服务器,其互动性主要表现在四个方面:

协同服务功能:它基于xml的消息机制,负责检查交互信息的有效性,转换不同格式的商务信息,为异步信息处理提供信息的临时保存;代理服务:它能够使各种组织和应用快速接收和递交需交互的商务信息,根据消息响应和驱动应用对象;过程服务:互动管理服务器提供了一个具体的图形化环境,以便使非技术人员也能够对联盟体商务过程建模,它能够处理条件分支、环形和并行流转路线等复杂流程;部署服务:包括管理需要交互信息的服务器地址、代理地址以及对所交互的信息分类。“所交互的信息分类”中很重要的就是联盟企业间的统一编码体系。

s204:获取urp服务器返回的第三ip地址。

这里的urp服务器即是上面所说的目标urp服务器,在目标urp服务器根据该域名解析请求中的域名进行解析得到第三ip地址后,获取该第三ip地址。具体为通过向目标urp服务器发送udp包的方式对urp服务器的解析结果进行查找,以获得该第三ip地址。

s205:如果第一ip地址与第三ip地址不同则发出警示信息。

在得到上述第一ip地址和第三ip地址后,将两者进行比对,如果两者相同,则表明用户的域名解析请求在本地范围内没有被劫持,此时不做任何反应,即不对用户的行为作出任何警示或者干预。

如果第一ip地址与第三ip地址不同,则表明该域名解析请求在本地范围内被劫持,即本地dns服务器内有劫持行为发生,即第一ip地址为错误的内容服务器ip地址,此时及时向用户发出警示信息,向用户提示其发出的请求已经被劫持。同时,为了使避免用户进入该错误的ip地址所指向的内容服务器,还可以控制用户的设备拒绝登陆该错误的内容服务器。

从上述技术方案可以看出,本实施例提供了一种dns劫持的检测方法,该方法应用于dns系统,具体为:当用户发出域名解析请求时,获取本地dns服务器对域名解析请求进行解析所得到的第一ip地址;将域名解析请求发送给httpdns服务器;如果httpdns服务器解析超时或者无法返回解析结果,则将该请求发送给urp服务器;获取urp服务器对域名解析请求进行解析所得到的第三ip地址;如果第一ip地址与第三ip地址不同,则向用户返回域名解析请求被劫持的警示信息。通过在发生劫持时向用户发出警示信息,可以使用户停止访问被劫持的域名所指向的错误的内容服务器,用户甚至可以根据该警示信息进一步采取相应的处置措施,从而能够避免因dns劫持而影响用户对互联网的正常访问。

实施例三

图3为本发明实施例提供的又一种dns劫持的检测方法的步骤流程图。

参照图3所示,本实施例提供的dns劫持的检测方法应用于dns系统,即域名系统,用于检测一个域名解析请求是否被劫持,即被恶意向用户的域名解析请求返回错误的ip地址或者不返回正确的ip地址,该检测方法具体包括如下步骤:

s301:获取本地dns服务器返回的第一ip地址。

这里与上一实施例中获取第一ip地址的方案相同或类似,这里不再赘述。

s302:将域名解析请求发送给httpdns服务器。

在将用户的域名解析请求发送至本地dns服务器的同时,还将该请求发送给httpdns服务器,以使该服务器对该请求进行解析,解析出该请求中域名所对应的ip地址,这里将其称为第二ip地址。

s303:如果不能得到第二ip地址则将域名解析请求发送给urp服务器。

如果在将该域名解析请求发送给urp服务器后,该服务器无法对其进行解析得到第二ip地址,或者对该请求的解析超时,则将该域名解析请求发送给urp服务器对其进行解析,解析得到与请求中域名对应的ip地址,这里将其称为第三ip地址。

如果该urp服务器能够正常返回第三ip地址,则直接将第三ip地址与第一ip地址进行对比,通过对比得到是否被劫持的结论。

s304:如果不能得到第三ip地址则将域名解析请求发送给权威dns服务器。

如果在将该域名解析请求发送给urp服务器后,该服务器无法对对该请求进行解析得到第三ip地址,或者对该请求的解析超时,则将该域名解析请求发送给权威dns服务器或公开的dns服务器对其进行解析,解析得到与该请求中的域名对应的ip地址。为了便于区分,这里将该ip地址称为第四ip地址。

首先,为了负载均衡,从权威dns服务器ip列表中或公开dns服务器ip列表中随机选取一个ip地址,并将该ip地址所对应的权威dns服务器或公开dns服务器作为目标服务器;然后,将该域名解析请求发送给该目标服务器,以使该目标服务器对该请求中的域名进行解析,得到与请求中域名相对应ip地址,为了便于区分,这里将其称为第四ip地址。

如果无法得到第四ip地址或者查询超时,则向用户返回“结果未知”等信息,以提示用户本次检测无法向用户确定其域名解析请求是否被劫持,用户即可采取其他相应措施进行检测,从而增加了安全性。

s305:获取权威dns服务器返回的第四ip地址。

这里的权威dns服务器即是上面所说的目标服务器,在目标服务器根据该域名解析请求中的域名进行解析得到第四ip地址后,获取该第四ip地址。具体为利用bind协议向目标dns服务器发送查询请求,以获得该第四ip地址。

s306:如果第一ip地址与第四ip地址不同则发出警示信息。

在得到上述第一ip地址和第四ip地址后,将两者进行比对,如果两者相同,则表明用户的域名解析请求在本地范围内没有被劫持,此时不做任何反应,即不对用户的行为作出任何警示或者干预。

如果第一ip地址与第四ip地址不同,则表明该域名解析请求在本地范围内被劫持,即本地dns服务器内有劫持行为发生,即第一ip地址为错误的内容服务器ip地址,此时及时向用户发出警示信息,向用户提示其发出的请求已经被劫持。同时,为了使避免用户进入该错误的ip地址所指向的内容服务器,还可以控制用户的设备拒绝登陆该错误的内容服务器。

从上述技术方案可以看出,本实施例提供了一种dns劫持的检测方法,该方法应用于dns系统,具体为:当用户发出域名解析请求时,获取本地dns服务器对域名解析请求进行解析所得到的第一ip地址;将域名解析请求发送给httpdns服务器;如果httpdns服务器解析超时或者无法返回解析结果,则将该请求发送给urp服务器;如果urp服务器解析超时或者无法返回解析结果,则将该请求发送给权威dns服务器;获取权威dns服务器对域名解析请求进行解析所得到的第四ip地址;如果第一ip地址与第四ip地址不同,则向用户返回域名解析请求被劫持的警示信息。通过在发生劫持时向用户发出警示信息,可以使用户停止访问被劫持的域名所指向的错误的内容服务器,用户甚至可以根据该警示信息进一步采取相应的处置措施,从而能够避免因dns劫持而影响用户对互联网的正常访问。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

实施例四

图4为本发明实施例提供的一种dns劫持的检测装置的结构框图。

参照图4所示,本实施例提供的dns劫持的检测方法应用于dns系统,即域名系统,用于检测一个域名解析请求是否被劫持,即被恶意向用户的域名解析请求返回错误的ip地址或者不返回正确的ip地址,该检测装置具体包括第一获取模块10、第一发送模块20、第二获取模块30和第一示警模块40。

第一获取模块用于获取本地dns服务器返回的第一ip地址。

当用户发出域名解析请求时,首先是将该请求发送至本地dns服务器,本地dns服务器在接收到该域名解析请求时,对该请求所携带的域名信息进行解析,给出与该域名所对应的ip地址,将将解析出的ip地址返回给用户用于发送该请求的终端设备,此时,为了判断是否被劫持,获取该本地dns服务器所解析出的ip地址,为了便于区分,这里将本地dns服务器所解析出的ip地址称为第一ip地址。

第一发送模块用于将域名解析请求发送给httpdns服务器。

在将用户的域名解析请求发送至本地dns服务器的同时,还将该请求发送给httpdns服务器,以使该服务器对该请求进行解析。

httpdns是使用http协议向dns服务器的80端口进行请求,即代替传统的dns协议向dns服务器的53端口进行请求。也就是使用http协议去进行dns解析请求,将服务器返回的解析结果,也就是域名对应的服务器ip地址返回给用户的设备上。

本实施例的第一发送模块具体包括第一选取单元和第一发送单元。

为了负载均衡,第一选取单元从httpdns服务器ip列表中随机选取一个ip地址,并将该ip地址所对应的httpdns服务器作为目标httpdns服务器;第一发送单元则用于将该域名解析请求发送给该目标httpdns服务器,以使该目标httpdns服务器对该请求中的域名进行解析,得到与请求中域名相对应ip地址,为了与本地dns服务器所返回的ip地址予以区分,这里将其称为第二ip地址。

第二获取模块用于获取httpdns服务器返回的第二ip地址。

这里的httpdns服务器即是上面所说的目标httpdns服务器,在目标httpdns服务器根据该域名解析请求中的域名进行解析得到第二ip地址后,获取该第二ip地址。

的第一示警模块用于如果第一ip地址与第二ip地址不同则发出警示信息。

在得到上述第一ip地址和第二ip地址后,将两者进行比对,如果两者相同,则表明用户的域名解析请求在本地范围内没有被劫持,此时不做任何反应,即不对用户的行为作出任何警示或者干预。

如果第一ip地址与第二ip地址不同,则表明该域名解析请求在本地范围内被劫持,即本地dns服务器内有劫持行为发生,即第一ip地址为错误的内容服务器ip地址,此时及时向用户发出警示信息,向用户提示其发出的请求已经被劫持。同时,为了使避免用户进入该错误的ip地址所指向的内容服务器,还可以控制用户的设备拒绝登陆该错误的内容服务器。

从上述技术方案可以看出,本实施例提供了一种dns劫持的检测装置,该装置应用于dns系统,具体为:当用户发出域名解析请求时,获取本地dns服务器对域名解析请求进行解析所得到的第一ip地址;将域名解析请求发送给httpdns服务器;获取httpdns服务器对域名解析请求进行解析所得到的第二ip地址;如果第一ip地址与第二ip地址不同,则向用户返回域名解析请求被劫持的警示信息。通过在发生劫持时向用户发出警示信息,可以使用户停止访问被劫持的域名所指向的错误的内容服务器,用户甚至可以根据该警示信息进一步采取相应的处置措施,从而能够避免因dns劫持而影响用户对互联网的正常访问。

实施例五

图5为本发明实施例提供的另一种dns劫持的检测装置的结构框图。

参照图5所示,本实施例提供的dns劫持的检测装置是在上一实施例的基础上增设了第二发送模块50、第三获取模块60和第二示警模块70。

第二发送模块用于如果不能得到第二ip地址则将域名解析请求发送给urp服务器。

如果在将该域名解析请求发送给httpdns服务器后,该服务器无法对其进行解析得到第二ip地址,或者对该请求的解析超时,则将该域名解析请求发送给urp服务器对其进行解析,该模块具体包括第二选取单元和第二发送单元。

为了负载均衡,第二选取单元从urp服务器ip列表中随机选取一个ip地址,并将该ip地址所对应的urp服务器作为目标urp服务器;第二发送单元则用于将该域名解析请求发送给该目标urp服务器,以使该目标urp服务器对该请求中的域名进行解析,得到与请求中域名相对应ip地址,为了与本地dns服务器所返回的ip地址以及httpdns服务器所返回的ip地址予以区分,这里将其称为第三ip地址。

如果该httpdns服务器能够正常返回第二ip地址,则直接将第二ip地址与第一ip地址进行对比,通过对比得到是否被劫持的结论,也就无需将该域名解析请求再发送给urp服务器。

第三获取模块用于获取urp服务器返回的第三ip地址。

这里的urp服务器即是上面所说的目标urp服务器,在目标urp服务器根据该域名解析请求中的域名进行解析得到第三ip地址后,获取该第三ip地址。具体为通过向目标dns服务器发送udp包的方式对urp服务器的解析结果进行查找,以获得该第三ip地址。

第二警示模块用于如果第一ip地址与第三ip地址不同则发出警示信息。

在得到上述第一ip地址和第三ip地址后,将两者进行比对,如果两者相同,则表明用户的域名解析请求在本地范围内没有被劫持,此时不做任何反应,即不对用户的行为作出任何警示或者干预。

如果第一ip地址与第三ip地址不同,则表明该域名解析请求在本地范围内被劫持,即本地dns服务器内有劫持行为发生,即第一ip地址为错误的内容服务器ip地址,此时及时向用户发出警示信息,向用户提示其发出的请求已经被劫持。同时,为了使避免用户进入该错误的ip地址所指向的内容服务器,还可以控制用户的设备拒绝登陆该错误的内容服务器。

从上述技术方案可以看出,本实施例提供了一种dns劫持的检测装置,该装置应用于dns系统,具体为:当用户发出域名解析请求时,获取本地dns服务器对域名解析请求进行解析所得到的第一ip地址;将域名解析请求发送给httpdns服务器;如果httpdns服务器解析超时或者无法返回解析结果,则将该请求发送给urp服务器;获取urp服务器对域名解析请求进行解析所得到的第三ip地址;如果第一ip地址与第三ip地址不同,则向用户返回域名解析请求被劫持的警示信息。通过在发生劫持时向用户发出警示信息,可以使用户停止访问被劫持的域名所指向的错误的内容服务器,用户甚至可以根据该警示信息进一步采取相应的处置措施,从而能够避免因dns劫持而影响用户对互联网的正常访问。

实施例六

图6为本发明实施例提供的又一种dns劫持的检测装置的结构框图。

参照图6所示,本实施例提供的dns劫持的检测装置是在上一实施例的基础上增设了第三发送模块80、第四获取模块90和第三示警模块100。

第三发送模块用于如果不能得到第三ip地址则将域名解析请求发送给权威dns服务器。

如果在将该域名解析请求发送给urp服务器后,该urp服务器无法对对该请求进行解析得到第三ip地址,或者对该请求的解析超时,则将该域名解析请求发送给权威dns服务器或公开的dns服务器对其进行解析,解析得到与该请求中的域名对应的ip地址。为了便于区分,这里将该ip地址称为第四ip地址。该模块具体包括第三选取单元和第三发送单元。

为了负载均衡,地形选取单元从权威dns服务器ip列表中或公开dns服务器ip列表中随机选取一个ip地址,并将该ip地址所对应的权威dns服务器或公开dns服务器作为目标服务器;第三发送单元用于将该域名解析请求发送给该目标服务器,以使该目标服务器对该请求中的域名进行解析,得到与请求中域名相对应ip地址,为了便于区分,这里将其称为第四ip地址。

如果无法得到第四ip地址或者查询超时,则向用户返回“结果未知”等信息,以提示用户本次检测无法向用户确定其域名解析请求是否被劫持,用户即可采取其他相应措施进行检测,从而增加了安全性。

第四获取模块用于获取权威dns服务器返回的第四ip地址。

这里的权威dns服务器即是上面所说的目标服务器,在目标服务器根据该域名解析请求中的域名进行解析得到第四ip地址后,获取该第四ip地址。具体为利用bind协议向目标dns服务器发送查询请求,以获得该第三ip地址。

第三示警模块用于如果第一ip地址与第四ip地址不同则发出警示信息。

在得到上述第一ip地址和第四ip地址后,将两者进行比对,如果两者相同,则表明用户的域名解析请求在本地范围内没有被劫持,此时不做任何反应,即不对用户的行为作出任何警示或者干预。

如果第一ip地址与第四ip地址不同,则表明该域名解析请求在本地范围内被劫持,即本地dns服务器内有劫持行为发生,即第一ip地址为错误的内容服务器ip地址,此时及时向用户发出警示信息,向用户提示其发出的请求已经被劫持。同时,为了使避免用户进入该错误的ip地址所指向的内容服务器,还可以控制用户的设备拒绝登陆该错误的内容服务器。

从上述技术方案可以看出,本实施例提供了一种dns劫持的检测装置,该装置应用于dns系统,具体为:当用户发出域名解析请求时,获取本地dns服务器对域名解析请求进行解析所得到的第一ip地址;将域名解析请求发送给httpdns服务器;如果httpdns服务器解析超时或者无法返回解析结果,则将该请求发送给urp服务器;如果urp服务器解析超时或者无法返回解析结果,则将该请求发送给权威dns服务器;获取权威dns服务器对域名解析请求进行解析所得到的第四ip地址;如果第一ip地址与第四ip地址不同,则向用户返回域名解析请求被劫持的警示信息。通过在发生劫持时向用户发出警示信息,可以使用户停止访问被劫持的域名所指向的错误的内容服务器,用户甚至可以根据该警示信息进一步采取相应的处置措施,从而能够避免因dns劫持而影响用户对互联网的正常访问。

另外,上述的第一示警模块、第二示警模块和第三示警模块可以为同一模块,即利用一个模块完成在不同情况下的示警作用。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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