CN104079673B - 一种应用下载中防止dns劫持的方法、装置和系统 - Google Patents

一种应用下载中防止dns劫持的方法、装置和系统 Download PDF

Info

Publication number
CN104079673B
CN104079673B CN201410369830.1A CN201410369830A CN104079673B CN 104079673 B CN104079673 B CN 104079673B CN 201410369830 A CN201410369830 A CN 201410369830A CN 104079673 B CN104079673 B CN 104079673B
Authority
CN
China
Prior art keywords
downloading
application
server
request
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410369830.1A
Other languages
English (en)
Other versions
CN104079673A (zh
Inventor
李小庆
鲁小锁
彭国州
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
360 Digital Security Technology Group Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410369830.1A priority Critical patent/CN104079673B/zh
Publication of CN104079673A publication Critical patent/CN104079673A/zh
Application granted granted Critical
Publication of CN104079673B publication Critical patent/CN104079673B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种应用下载中防止DNS劫持的方法、装置和系统,其中,方法包括:发送应用下载请求;接收第一服务器返回的与应用下载请求对应的响应消息;根据响应消息得到下载应用的第一特征信息,通过将第一特征信息与预先从提供下载应用的第二服务器处获取的下载应用的第二特征信息进行匹配,判断应用下载过程是否受到劫持;若应用下载过程受到劫持,通过将下载应用的URL提供给代理服务器或利用域名解析服务器进行域名解析,从第二服务器获取下载应用。根据该方案,解决现有技术中存在的由于运营商的网络劫持导致的下载失败、无法安装或数据包替换、产品更新失败等问题,节省了用户的时间以及流量、费用。

Description

一种应用下载中防止DNS劫持的方法、装置和系统
技术领域
本发明涉及互联网技术领域,具体涉及一种应用下载中防止DNS劫持的方法、装置和系统。
背景技术
用户通过手机应用分发平台或者是游戏网站下载应用时,在下载过程中会经过运营商的提供的网络服务进行下载。某些运营商出于节省流量,节省带宽的目的,比如,对某个小区进行流量缓存,有可能劫持用户的下载请求,通过DNS劫持,修改域名解析的结果,将下载应用的域名解析为运营商的服务器的IP地址。上述情况并不仅仅是从哪个服务器上下载应用的问题,而是有可能会出现一些用户下载无效或者失败的情况,例如,一种情况是,某些运营商的服务器稳定性较差,当运营商的服务器出现运行故障,脚本维护不及时,或出现配置错误时,可能导致下载失败或中断或者下载超时;或者,下载完的文件中存在错误,用户无法安装或使用;运营商还可能与其他服务商合作,出于产品推广目的,可能会将用户要下载的程序数据包调换,例如,将用户下载的某安全浏览器的数据包调换为其它公司的高速浏览器数据包,这种数据包的内容被调换后可能并不是用户希望下载的;此外,运营商服务器上的下载应用可能更新不及时,导致用户下载的程序等落后于新版本,病毒库无法升级等众多问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用下载中防止DNS劫持的方法、装置和服务器。
根据本发明的一个方面,提供了一种应用下载中防止DNS劫持的方法,其包括:发送应用下载请求;接收第一服务器返回的与应用下载请求对应的响应消息;根据响应消息得到下载应用的第一特征信息,通过将下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否受到劫持,其中,下载应用的第二特征信息是预先从提供下载应用的第二服务器处获取的;若应用下载过程受到劫持,通过将下载应用的URL提供给代理服务器或利用域名解析服务器进行域名解析,从第二服务器获取下载应用。
根据本发明的另一方面,提供了一种应用下载中防止DNS劫持的装置,其包括:发送模块,适于发送应用下载请求;接收模块,适于接收第一服务器返回的与应用下载请求对应的响应消息;判断模块,适于根据响应消息得到下载应用的第一特征信息,通过将下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否受到劫持;下载模块,适于在应用下载过程受到劫持时,通过将下载应用的URL提供给代理服务器或利用域名解析服务器进行域名解析,从第二服务器获取所述下载应用。
根据本发明的另一个方面,提供了一种应用下载中防止DNS劫持的系统,其包括上述的应用下载装置,还包括:第二服务器,适于提供下载应用;
代理服务器,适于接收应用下载装置发送的HTTP请求,HTTP请求的HTTP头信息中添加有下载应用的目标URL;
从HTTP请求中解析出下载应用的URL,并根据URL从第二服务器获取下载应用;
域名解析服务器,适于接收应用下载装置发送的下载应用的域名,根据下载应用的域名得到提供下载应用的第二服务器的IP地址。
根据本发明的应用下载中防止DNS劫持的方法、装置和系统,根据下载应用的特征信息判断应用下载过程是否受到劫持,在受到劫持时,通过将下载应用的URL提供给代理服务器或利用域名解析服务器进行域名解析从下载服务器重新获取下载应用。根据该方案,避免了由于运营商的网络劫持导致的下载失败、下载的文件无法安装、或下载应用的数据包被恶意替换、产品更新失败等问题,节省了用户的时间以及流量、费用。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的应用下载中防止DNS劫持的方法的流程图;
图2示出了根据本发明另一个实施例的应用下载中防止DNS劫持的方法的流程图;
图3示出了根据本发明另一个实施例的应用下载中防止DNS劫持的方法的流程图;
图4示出了根据本发明另一个实施例的应用下载中防止DNS劫持的方法的流程图;
图5示出了根据本发明一个实施例的应用下载中防止DNS劫持的装置的结构框图;
图6示出了根据本发明另一个实施例的应用下载中防止DNS劫持的系统的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的应用下载中防止DNS劫持的方法的流程图,如图1所示,方法包括如下步骤:
步骤S110,发送应用下载请求。
下载应用可以是计算机安装文件,手机apk文件,压缩文件,以及音乐、视频文件等。以安卓平台上的apk文件下载为例,常见的下载方式是用户通过浏览器页面,或手机app获取下载地址,例如,手机浏览器,手机助手等,用户点击app上提供的下载按钮,app根据为该下载应用预设的下载URL,向该URL对应下载服务器发送请求,获取下载应用。
本实施例中,发送下载请求的可以是终端通过例如360手机助手等应用分发平台,也可以通过一些其他的应用下载渠道。可以理解为包括运营360手机助手的应用服务器、推送(push)服务器和文件服务器,所述终端例如包括用户台式电脑或笔记本电脑等计算设备,或者包括用户手机等移动设备。
步骤S120,接收第一服务器返回的与应用下载请求对应的响应消息。
本发明中,第一服务器是指接收了应用下载请求并向客户端返回与应用下载请求对应的响应消息的服务器。
正常状况下,若应用下载请求未受到DNS劫持,应用下载请求未受到拦截,而被发送到预先指定的下载服务器中,这时,第一服务器即为app,或网页中预设URL对应的下载服务器。
若应用下载请求受到DNS劫持,例如,域名解析结果被网络运营商篡改,将下载应用的域名解析为运营商服务器的IP地址。这时,向发起应用下载请求的客户端返回响应消息的是运营商服务器,则第一服务器为运营商的服务器。
步骤S130,根据响应消息得到下载应用的第一特征信息,通过将下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否收到劫持。
下载应用的第一特征信息是第一服务器返回的响应消息中的信息,例如,可以是应用下载请求发送后,第一服务器返回的响应消息中的内容长度信息,如HTTP header消息中的content-length字段,或者,下载应用从第一服务器下载的文件的MD5值等。
下载应用的第二特征信息来自第二服务器。本发明中的第二服务器即是手机下载app或浏览器页面提供的预设的下载URL对应的下载服务器。具体地,手机下载app的提供者在收集、准备下载应用时,预先从提供下载应用的第二服务器处获取的内容长度信息,MD5值或其他与第一特征信息对应的信息。也就是说,第二特征信息是下载应用的实际特征信息。
若应用下载请求未受劫持,第一特征信息和第二特征信息是一致的,响应消息都由指定的下载服务器,即第二服务器返回的。
当第一服务器返回的第一特征信息与第二特征信息,即下载应用的实际特征信息不一致时,认为应用下载过程受到劫持。
本发明的目的是避免DNS劫持而导致的下载应用错误,无法安装等问题。而在该步骤中,一种可能的情况是,应用下载请求受到了运营商的劫持,但运营商的服务器响应于该应用下载请求,提供了正确的下载应用,由于下载应用正常,不会导致上述问题。本发明将这种情况判断为未受劫持,也就是说,本发明只在运营商服务器返回的文件有误时才执行后续的步骤。这在一些情况下是有利的,因为从运营商的服务器进行下载,可能会达到较高的下载速度,节省用户时间。
步骤S140,若应用下载过程受到劫持,通过将下载应用的URL提供给代理服务器或利用域名解析服务器进行域名解析,从第二服务器获取下载应用。
当第一特征信息和第二特征信息不一致时,下载文件有误,认为下载过程受到劫持。根据运营商的劫持方式,采用代理服务器避免劫持,间接获取下载应用,或重新进行域名解析,获取第二服务器的IP等方式,从第二服务器获取下载应用。
根据本发明上述实施例提供的方法,根据下载应用的特征信息判断应用下载过程是否受到劫持,在判断受到劫持时,通过代理服务器从第二服务器间接获取下载应用,或采用另外的域名解析服务器准确获取第二服务器的IP等方式,重新从第二服务器下载。
根据该方案,避免了由于运营商的网络劫持导致的应用下载失败、下载完成的文件无法安装、或下载应用的数据包被替换、产品更新失败等问题,节省了用户的流量、费用。同时本发明的方法只在下载文件有误时执行重新下载的步骤,这有利于节省用户时间,提高下载速度。
图2示出了根据本发明另一个实施例的应用下载中防止DNS劫持的方法的流程图,该实施例以HTTP方式下载和运营商劫持为例,说明了本发明的下载方法的一种方式,如图2所示,方法包括如下步骤:
步骤S210,发送应用下载请求。
例如,用户在app界面点击按钮,想要下载手机助手,该app预先收集了手机助手的预设下载URL,该预设的下载URL对应于第二服务器。例如,该URL具体为:http://gdown.360.com/data/360shoujizhushou.apk,接收点击后,通过运营商提供的网络服务向下载服务器发送应用下载请求。
步骤S220,接收第一服务器返回的与应用下载请求对应的响应消息。
详见上一实施例步骤S120,此处不再赘述。
步骤S230,从应用下载请求对应的响应消息的HTTP头信息中提取内容长度信息。
本实施例中以第一服务器返回的响应消息中的内容长度信息为下载应用的第一特征信息。
用户在手机,电脑上通过浏览器或应用程序下载,其中一种常用的下载方式为HTTP下载,客户端和服务器之间通过HTTP协议进行文件的传送。
HTTP协议采用了请求/响应模型,浏览器或其他客户端程序向服务器发出请求,服务器返回一个包含HTTP header信息的消息作为响应消息。HTTP header中包含content-length字段,该字段的值可作为一种内容长度信息,表示服务器响应于本次HTTP请求,将要向客户端返回的HTTP消息实体的传输长度。
步骤S240,将响应消息中的内容长度信息与下载应用的实际内容长度信息进行比对,若响应消息中的内容长度信息与下载应用的实际内容长度信息不一致,则执行步骤S250;若响应消息中的内容长度信息与下载应用的实际内容长度信息一致,则执行步骤S280。
在未发生劫持的情况下,应用下载的请求发送到提供该下载应用的第二服务器上。由该第二服务器返回HTTP header信息,则HTTP header信息中的content-length的值即为实际的content-length值。
如果发生了运营商DNS劫持,并且劫持行为导致下载应用被换包,或字节错误,下载文件不完整等问题,则content-length值也发生变化,content-length值作为特征信息能够在实体消息传输之前判断应用下载过程是否受到劫持。
实际的content-length值作为第二特征信息,预先从提供下载应用的第二服务器处获取。例如,下载app上提供有多个下载应用的链接,每个下载应用的实际的content-length值由提供该下载应用的第二服务器预先计算出。app在提供下载链接时,已从第二服务器获取相应的content-length值,并存储在本地或云端等,可由app读取该实际的content-length值。
将响应消息中的content-length值与实际的content-length值比对,若两者不一致,判断应用下载过程受到劫持。
具体地,应用下载请求被运营商劫持时,应用下载请求被转到运营商的服务器。运营商服务器作为第一服务器,对应用下载请求返回包含HTTP header信息的消息,HTTPheader中的content-length表示运营商服务器将要返回的HTTP消息实体的传输长度,如果该传输长度与实际的下载应用的传输长度不一致,则说明运营商服务器可能做了换包,或是运营商提供的下载应用存在字节错误,文件缺失等,下载完成后的文件不是用户实际需求的文件或无法安装或无法正常使用。这时,下载过程不必继续进行,执行步骤S250。
步骤S250,中断应用下载过程。
具体地,中断从第一服务器,即运营商服务器获取下载应用的过程。
步骤S260,向代理服务器发送HTTP请求。
运营商的劫持方式一般是,预先从第二服务器处获取下载应用,存储在自身的服务器上,根据HTTP应用下载请求的URL判断是否能够提供对应的下载应用,如果能,则阻止用户从第二服务器进行下载,通过修改域名解析结果等方式将应用下载请求的URL解析为自身服务期的IP,以达到节省带宽费用的目的。
运营商劫持应用下载请求一般针对具有明显的下载特征的URL,例如,http://gdown.360.com/data/360shoujizhushou.apk等以apk结尾的URL,或exe,mkv等结尾的URL。
在本发明实施例中,在应用下载请求受到劫持时,通过代理服务器进行下载。将下载应用的预设URL提供给代理服务器,代理服务器根据预设URL从第二服务器获取下载应用。然后,再从代理服务器获取下载应用。
具体地,判断应用下载请求受到劫持时,向代理服务器发送HTTP请求,通过访问代理服务器的URL发送请求,该代理服务器的URL不具有下载特征,可以是以html为结尾的网页的URL,如http://gdown.360.com/redownload.html。这样,运营商不会劫持该HTTP请求。将预设URL,例如,http://gdown.360.com/data/360shoujizhushou.apk添加在该HTTP请求的request header中。代理服务器接收该HTTP请求后,从request header中解析出下载应用的目标URL,根据该目标URL从第二服务器上获取下载应用。代理服务器与第二服务器以服务器间的通信方式进行下载应用的传输,不会受到运营商的劫持。
步骤S270,从代理服务器获取下载应用。
具体地,可以通过代理服务器获取下载应用后向客户端推送,或app从代理服务器主动拉取等方式获取下载应用。
步骤S280,继续应用下载过程。
如果比对结果一致,就认为从第一服务器获取的下载应用是正确的,继续从第一服务器上的下载过程。如同上一实施例步骤S130中所述的,这有利于节省下载时间。
根据本发明上述实施例提供的方法,根据服务器响应消息中的内容长度信息与实际内容长度信息比较的方式,在应用下载实体消息传输前就能够判断劫持,根据内容长度信息的比较结果选择中断或继续从第一服务器的下载过程。
由于本实施例中的方法在实体消息传输前作出判断,判断更加及时,几乎能够完全避免用户浪费流量。
图3示出了根据本发明另一个实施例的应用下载中防止DNS劫持的方法的流程图,如图3所示,方法包括如下步骤:
步骤S310,计算应用下载请求对应文件的MD5值。
MD5用于确保信息传输完整一致,通过其特定算法为每个文件产生唯一的MD5信息摘要。
下载完成后,计算本次应用下载请求下载获取的文件的MD5值。
当然,也可以选用其他的文件校验算法,例如SHA-1等。
步骤S320,将应用下载请求对应文件的MD5值与下载应用对应文件的实际MD5值进行比对,若比对结果不一致,执行步骤S330;若比对结果一致,则流程结束。
本实施例中,计算第一服务器返回的下载应用对应文件的MD5值作为第一特征信息,以从第二服务器预先获取的下载应用对应文件的实际MD5值作为第二特征信息。
若应用下载未受劫持,下载结束后的文件来自第二服务器,MD5值与实际MD5值一致;若两者不一致,表明文件不完整或被换包,认为应用下载受到劫持。
步骤S330,向代理服务器发送HTTP请求。
步骤S340,从代理服务器获取下载应用。
步骤S330-S340的具体实现方式参见上一实施例,此处不再赘述。
与上一实施例相比,劫持者可以对不同文件进行修改而使内容长度信息与实际值一致,在本实施例中,由于MD5值与文件唯一对应,因此,根据MD5值等文件校验值的劫持判断方式更加准确。
图4示出了根据本发明另一个实施例提供的应用下载中防止DNS劫持的方法的流程图,如图4所示,方法包括如下步骤:
步骤S410,从第一服务器返回的应用下载请求的响应消息中提取内容长度信息。
步骤S420,将响应消息中的内容长度信息与下载应用的实际内容长度信息进行比对,若响应消息中的内容长度信息与下载应用的实际内容长度信息不一致,执行步骤S430;若响应消息中的内容长度信息与下载应用的实际内容长度信息一致,则执行步骤S440。
步骤S430,中断应用下载过程,执行步骤S460。
步骤S410-S430的具体描述详见上文实施例,此处不再赘述。
步骤S440,计算下载应用对应文件的MD5值。
content-length等内容长度信息的劫持判断方式较为快捷,在文件传输前能够判断出绝大多数的劫持,然而内容长度信息并不与下载应用唯一对应。因此,这种方式并不总是准确。在本实施例中,结合了内容长度信息和MD5值,对于大部分的劫持,通过步骤S410-S430作出判断,若内容长度信息一致,再通过MD5值进行判断。
步骤S450,将下载应用对应文件的MD5值与下载应用对应文件的实际MD5值进行比对,若比对结果不一致,执行步骤S460;若比对结果一致,则流程结束。
本实施例中,第一特征信息和第二特征信息的匹配涉及了内容长度信息和下载文件MD5值两种信息,判断结果更加准确。
步骤S460,通过域名解析服务器提供的接口向域名解析服务器发送下载应用的域名。
DNS劫持的常见方式是修改域名解析的结果,将下载应用的域名访问结果由第二服务器的IP转到修改后的IP。
在本发明实施例中,通过DNS劫持范围外的域名解析服务器重新获取域名解析结果,避免劫持的发生。对于app等应用程序提供的下载链接,域名解析服务器在一个数据库中保存每个下载链接的第二服务器域名和IP的对应关系。域名解析服务器还为app等应用程序提供接口,当判断劫持发生时,app通过该接口向域名解析服务器发送下载应用的域名,域名解析服务器查询数据库,找到该域名对应的IP向app返回。
步骤S470,根据域名解析服务器返回的IP地址从第二服务器下载应用。
直接通过IP地址访问第二服务器,避免了运营商的劫持。
根据本发明上述实施例提供的方法,先根据内容长度信息判断劫持,当内容长度信息一致时,继续下载过程,再计算下载文件的MD5值,进行准确判断。对大部分劫持来讲,通过内容长度信息在实体消息传输前即可做出快速判断,完全避免流量的浪费。同时也能够克服运营商对文件的修改使内容长度信息一致而无法检测的问题。
然后,通过运营商以外,或DNS劫持范围外的域名解析服务器获取下载应用域名对应的IP地址,该域名解析服务器中的IP地址和域名的关联是预先设定的,这样客户端的app可以直接通过IP地址访问,避免域名修改。避免了由于运营商的网络劫持导致的应用下载失败、下载完成的文件无法安装、或下载应用的数据包被替换、产品更新失败等问题,节省了用户的流量、费用。
图5示出了根据本发明一个实施例的应用下载中防止DNS劫持的装置的结构框图,如图5所示,装置包括:
发送模块510,适于发送应用下载请求。
本实施例中,发送下载请求的可以是终端通过例如360手机助手等应用分发平台,也可以通过一些其他的应用下载渠道。可以理解为包括运营360手机助手的应用服务器、推送(push)服务器和文件服务器,所述终端例如包括用户台式电脑或笔记本电脑等计算设备,或者包括用户手机等移动设备。
下载应用可以是计算机安装文件,手机apk文件,压缩文件,以及音乐、视频文件等。以安卓平台上的apk文件下载为例,常见的下载方式是用户通过浏览器页面,或手机app获取下载地址,例如,手机浏览器,手机助手等,用户点击app上提供的下载按钮,app根据该下载应用预设的URL,向该URL对应下载服务器发送请求,获取下载应用。
接收模块520,适于接收第一服务器返回的与应用下载请求对应的响应消息。
本发明中,第一服务器是指接收了应用下载请求并向客户端返回与应用下载请求对应的响应消息的服务器。
正常状况下,若应用下载请求未受到DNS劫持,应用下载请求未受到拦截,而被发送到预先指定的下载服务器中,这时,第一服务器即为app,或网页中预设URL对应的下载服务器。
若应用下载请求受到DNS劫持,例如,域名解析结果被网络运营商篡改,将下载应用的域名解析为运营商服务器的IP地址。这时,向发起应用下载请求的客户端返回响应消息的是运营商服务器,则第一服务器为运营商的服务器。
判断模块530,适于根据响应消息得到下载应用的第一特征信息,通过将下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否受到劫持。
可选地,下载应用的第一特征信息包括应用下载请求对应的响应消息中的内容长度信息;下载应用的第二特征信息是预先从提供下载应用的第二服务器处获取的下载应用的实际内容长度信息。
判断模块530进一步包括:
提取单元5301,适于从接收模块接收的响应消息的HTTP头信息中提取内容长度信息;
第一比对单元5302,适于将响应消息中的内容长度信息与下载应用的实际内容长度信息进行比对;
判断单元5303,适于在响应消息中的内容长度信息与下载应用的实际内容长度信息不一致时,判断应用下载过程受到劫持。
可选地,下载应用的第一特征信息还包括应用下载请求对应文件的MD5值;下载应用的第二特征信息是预先从提供下载应用的第二服务器处获取的下载应用对应文件的实际MD5值。
判断模块530进一步包括:
计算单元5304,适于根据响应消息,计算应用下载请求对应文件的MD5值;
第二比对单元5305,适于将应用下载请求对应文件的MD5值与下载应用对应文件的实际MD5值进行比对;其中,下载应用对应文件的实际MD5值预先从提供下载应用的第二服务器处获取。
判断单元5303进一步适于:在应用下载请求对应文件的MD5值与下载应用对应文件的实际MD5值不一致时,判断应用下载过程受到劫持。
下载模块540,适于在应用下载过程受到劫持时,通过将下载应用的URL提供给代理服务器或利用域名解析服务器进行域名解析,从第二服务器获取所述下载应用。
可选地,下载模块540进一步包括:
代理服务器接口5401,适于将下载应用的URL提供给代理服务器,以供代理服务器根据URL从第二服务器获取下载应用。
可选地,代理服务器接口5201进一步适于:当判断模块510判断应用下载请求受到劫持时,代理服务器接口5201向代理服务器发送HTTP请求,HTTP请求中的URL即为代理服务器的URL,该URL不具有下载特征,可以是以html为结尾的网页的URL,如http://gdown.360.com/redownload.html。这样,运营商不会劫持该HTTP请求。将目标URL,例如,http://gdown.360.com/data/360shoujizhushou_16783385.apk添加在该HTTP请求的request header中。代理服务器接收该HTTP请求后,从request header中解析出下载应用的目标URL,根据该目标URL从第二服务器上获取下载应用。
第一下载单元5402,适于从代理服务器获取下载应用。
可选地,下载模块520进一步包括:
域名解析服务器接口5403,适于向域名解析服务器发送下载应用的域名,以供域名解析服务器根据下载应用的域名得到提供下载应用的第二服务器的IP地址;
第二下载单元5404,适于根据域名解析服务器返回的IP地址从第二服务器下载应用。
图6示出了根据本发明一个实施例的应用下载中防止DNS劫持的系统的结构框图,如图6所示,系统包括:上一实施例中的应用下载装置600,还包括:
第二服务器610,适于提供下载应用;
代理服务器620,适于接收应用下载装置600发送的HTTP请求,HTTP请求的HTTP头信息中添加有下载应用的URL;从HTTP请求中解析出下载应用的URL,并根据URL获取下载应用;
域名解析服务器630,适于接收应用下载装置600发送的下载应用的域名,根据下载应用的域名得到提供下载应用的第二服务器610的IP地址。
根据本发明上述实施例提供的应用下载中防止DNS劫持的装置和系统,判断模块根据下载应用content-length值,或文件MD5值等特征信息判断应用下载过程是否受到劫持,在受到劫持时,通过使用代理服务器,或者获取第二服务器IP,根据IP直接访问等方式获取来自第二服务器的下载应用。根据该方案,避免了由于运营商的网络劫持导致的下载失败、无法安装、或数据包替换、产品更新失败等问题,节省了用户的时间以及流量、费用。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的应用下载装置和系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (17)

1.一种应用下载中防止DNS劫持的方法,其包括:
发送应用下载请求;
接收第一服务器返回的与所述应用下载请求对应的响应消息;
根据所述响应消息得到下载应用的第一特征信息,通过将所述下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否受到劫持,其中,所述下载应用的第二特征信息包括从提供下载应用的第二服务器处获取的,由第二服务器计算得到的下载应用的实际内容长度信息和/或下载应用对应文件的实际文件校验码,所述下载应用的第一特征信息包括应用下载请求对应的响应消息中的内容长度信息和/或应用下载请求对应文件的文件校验值;
若所述应用下载过程受到劫持,通过将下载应用的URL提供给代理服务器或利用域名解析服务器进行域名解析,从所述第二服务器获取所述下载应用。
2.根据权利要求1所述的方法,其中,所述下载应用的第一特征信息包括应用下载请求对应的响应消息中的内容长度信息;所述下载应用的第二特征信息包括预先从提供下载应用的第二服务器处获取的所述下载应用的实际内容长度信息;
所述通过将所述下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否受到劫持进一步包括:
从所述响应消息的HTTP头信息中提取内容长度信息;
将所述响应消息中的内容长度信息与所述下载应用的实际内容长度信息进行比对;
若所述响应消息中的内容长度信息与所述下载应用的实际内容长度信息不一致,判断所述应用下载过程受到劫持。
3.根据权利要求2所述的方法,其中,所述方法还包括:若所述响应消息的HTTP头信息中的内容长度信息与所述下载应用的实际内容长度信息不一致,则中断所述应用下载过程。
4.根据权利要求1所述的方法,其中,所述下载应用的第一特征信息具体为所述应用下载请求对应文件的MD5值;所述下载应用的第二特征信息具体为预先从提供下载应用的第二服务器处获取的所述下载应用对应文件的实际MD5值;
所述通过将所述下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否受到劫持进一步包括:
根据所述响应消息,计算所述应用下载请求对应文件的MD5值;
将应用下载请求对应文件的MD5值与所述下载应用对应文件的实际MD5值进行比对;若所述应用下载请求对应文件的MD5值与所述下载应用对应文件的实际MD5值不一致,判断所述应用下载过程受到劫持。
5.根据权利要求2所述的方法,其中,所述下载应用的第一特征信息具体为所述应用下载请求对应文件的MD5值,所述下载应用的第二特征信息具体为预先从提供下载应用的第二服务器处获取的所述下载应用对应文件的实际MD5值;
所述通过将所述下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否受到劫持进一步包括:
根据所述响应消息,计算所述应用下载请求对应文件的MD5值;
将应用下载请求对应文件的MD5值与所述下载应用对应文件的实际MD5值进行比对;若所述应用下载请求对应文件的MD5值与所述下载应用对应文件的实际MD5值不一致,判断所述应用下载过程受到劫持。
6.根据权利要求1-5任一项所述的方法,其中,所述通过将下载应用的URL提供给代理服务器,从所述第二服务器获取所述下载应用进一步包括:
将下载应用的URL提供给代理服务器,以供所述代理服务器根据所述URL从所述第二服务器获取所述下载应用;
从所述代理服务器获取所述下载应用。
7.根据权利要求6所述的方法,其中,所述将下载应用的URL提供给代理服务器,以供所述代理服务器根据所述URL从所述第二服务器获取所述下载应用进一步包括:
向所述代理服务器发送HTTP请求,所述HTTP请求的HTTP头信息中添加有所述下载应用的URL;以供所述代理服务器从所述HTTP请求中解析出所述下载应用的URL,并根据所述URL获取所述下载应用。
8.根据权利要求1-5任一项所述的方法,其中,所述通过域名解析服务器进行域名解析,从所述第二服务器获取所述下载应用进一步包括:
通过域名解析服务器提供的接口向所述域名解析服务器发送所述下载应用的域名,以供所述域名解析服务器根据所述下载应用的域名得到提供所述下载应用的第二服务器的IP地址;
根据所述域名解析服务器返回的IP地址从所述第二服务器下载应用。
9.一种应用下载装置,其包括:
发送模块,适于发送应用下载请求;
接收模块,适于接收第一服务器返回的与所述应用下载请求对应的响应消息;
判断模块,适于根据所述响应消息得到下载应用的第一特征信息,通过将所述下载应用的第一特征信息与下载应用的第二特征信息进行匹配判断应用下载过程是否受到劫持;其中,所述下载应用的第二特征信息包括从提供下载应用的第二服务器处获取的,由第二服务器计算得到的下载应用的实际内容长度信息和/或下载应用对应文件的文件校验码,所述下载应用的第一特征信息包括应用下载请求对应的响应消息中的内容长度信息和/或应用下载请求对应文件的文件校验值;
下载模块,适于在所述应用下载过程受到劫持时,通过将下载应用的URL提供给代理服务器或利用域名解析服务器进行域名解析,从所述第二服务器获取所述下载应用。
10.根据权利要求9所述的装置,其中,所述下载应用的第一特征信息包括应用下载请求对应的响应消息中的内容长度信息;所述下载应用的第二特征信息是预先从提供下载应用的第二服务器处获取的所述下载应用的实际内容长度信息;
所述判断模块进一步包括:
提取单元,适于从所述接收模块接收的响应消息的HTTP头信息中提取内容长度信息;
第一比对单元,适于将所述响应消息中的内容长度信息与所述下载应用的实际内容长度信息进行比对;
判断单元,适于在所述响应消息中的内容长度信息与所述下载应用的实际内容长度信息不一致时,判断所述应用下载过程受到劫持。
11.根据权利要求10所述的装置,其中,所述装置还包括:中断模块,适于在所述响应消息的HTTP头信息中的内容长度信息与所述下载应用的实际内容长度信息不一致时,中断所述应用下载过程。
12.根据权利要求9所述的装置,其中,所述下载应用的第一特征信息还包括所述应用下载请求对应文件的MD5值;所述下载应用的第二特征信息是预先从提供下载应用的第二服务器处获取的所述下载应用对应文件的实际MD5值;
所述判断模块进一步包括:
计算单元,适于根据所述响应消息,计算所述应用下载请求对应文件的MD5值;
第二比对单元,适于将所述应用下载请求对应文件的MD5值与所述下载应用对应文件的实际MD5值进行比对;
判断单元,适于在所述应用下载请求对应文件的MD5值与所述下载应用对应文件的实际MD5值不一致时,判断所述应用下载过程受到劫持。
13.根据权利要求10所述的装置,其中,若所述下载应用的第一特征信息还包括所述应用下载请求对应文件的MD5值,所述下载应用的第二特征信息是预先从提供下载应用的第二服务器处获取的所述下载应用对应文件的实际MD5值;
所述判断模块进一步包括:
计算单元,适于根据所述响应消息,计算所述应用下载请求对应文件的MD5值;
第二比对单元,适于将所述应用下载请求对应文件的MD5值与所述下载应用对应文件的实际MD5值进行比对;
所述判断单元进一步适于:在所述应用下载请求对应文件的MD5值与所述下载应用对应文件的实际MD5值不一致时,判断所述应用下载过程受到劫持。
14.根据权利要求9-13任一项所述的装置,其中,所述下载模块进一步包括:
代理服务器接口,适于将下载应用的URL提供给代理服务器,以供所述代理服务器根据所述URL从所述第二服务器获取所述下载应用;
第一下载单元,适于从所述代理服务器获取所述下载应用。
15.根据权利要求14所述的装置,其中,所述代理服务器接口进一步适于:
向所述代理服务器发送HTTP请求,所述HTTP请求的HTTP头信息中添加有所述下载应用的目标URL;以供所述代理服务器从所述HTTP请求中解析出所述下载应用的目标URL并根据所述目标URL获取所述下载应用。
16.根据权利要求9-13任一项所述的装置,其中,所述下载模块进一步包括:
域名解析服务器接口,适于向所述域名解析服务器发送所述下载应用的域名,以供所述域名解析服务器根据所述下载应用的域名得到提供所述下载应用的第二服务器的IP地址;
第二下载单元,适于根据所述域名解析服务器返回的IP地址从所述第二服务器下载应用。
17.一种应用下载系统,包括权利要求9-16任一项所述的应用下载装置,还包括:
第二服务器,适于提供所述下载应用;
代理服务器,适于接收所述应用下载装置发送的HTTP请求,所述HTTP请求的HTTP头信息中添加有所述下载应用的目标URL;
从所述HTTP请求中解析出所述下载应用的URL,并根据所述URL从第二服务器获取所述下载应用;
域名解析服务器,适于接收所述应用下载装置发送的下载应用的域名,根据下载应用的域名得到提供所述下载应用的第二服务器的IP地址。
CN201410369830.1A 2014-07-30 2014-07-30 一种应用下载中防止dns劫持的方法、装置和系统 Active CN104079673B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410369830.1A CN104079673B (zh) 2014-07-30 2014-07-30 一种应用下载中防止dns劫持的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410369830.1A CN104079673B (zh) 2014-07-30 2014-07-30 一种应用下载中防止dns劫持的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN104079673A CN104079673A (zh) 2014-10-01
CN104079673B true CN104079673B (zh) 2018-12-07

Family

ID=51600713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410369830.1A Active CN104079673B (zh) 2014-07-30 2014-07-30 一种应用下载中防止dns劫持的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN104079673B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104683330A (zh) * 2015-02-06 2015-06-03 广州酷狗计算机科技有限公司 反域名劫持方法和装置
CN106161542A (zh) * 2015-04-10 2016-11-23 广州市动景计算机科技有限公司 一种数据下载方法及装置
CN104735086B (zh) * 2015-04-14 2018-01-16 广东欧珀移动通信有限公司 一种文件的安全下载方法和装置
CN106331009A (zh) * 2015-06-26 2017-01-11 广州市动景计算机科技有限公司 一种应用程序下载方法、装置及系统
WO2017008543A1 (zh) 2015-07-15 2017-01-19 广州市动景计算机科技有限公司 网络攻击判断方法、安全的网络数据传输方法及相应装置
CN106385395B (zh) * 2015-07-15 2020-10-16 阿里巴巴(中国)有限公司 网络攻击判断方法、安全的网络数据传输方法及相应装置
CN105227673B (zh) * 2015-10-16 2019-03-05 北京奇虎科技有限公司 防劫持的数据下载方法、客户端、服务器及系统
CN105245550B (zh) * 2015-10-29 2019-01-22 广州酷狗计算机科技有限公司 域名劫持判定方法和装置
CN105516246B (zh) * 2015-11-25 2019-03-26 魅族科技(中国)有限公司 一种防应用程序下载劫持的方法及服务器
CN105897947B (zh) * 2016-04-08 2019-04-30 网宿科技股份有限公司 移动终端的网络访问方法和装置
CN105897911A (zh) * 2016-05-20 2016-08-24 广州优视网络科技有限公司 下载文件的方法、装置及用户终端
CN106060046A (zh) * 2016-05-30 2016-10-26 努比亚技术有限公司 一种防止下载劫持的装置、移动终端和方法
CN107770213A (zh) * 2016-08-18 2018-03-06 中兴通讯股份有限公司 数据处理方法、装置、服务器及终端
CN108111561B (zh) * 2016-11-25 2021-03-02 腾讯科技(深圳)有限公司 一种数据下载方法及其设备
CN107257361A (zh) * 2017-05-27 2017-10-17 广东艾檬电子科技有限公司 一种下载应用程序的方法及移动终端
CN107360187B (zh) * 2017-08-21 2020-09-25 网宿科技股份有限公司 一种网络劫持的处理方法、装置及系统
CN109831779B (zh) * 2019-01-15 2021-10-26 浙江吉利汽车研究院有限公司 一种升级包下载方法、装置、服务器、终端及系统
CN109819274B (zh) * 2019-02-27 2021-09-14 聚好看科技股份有限公司 数据传输方法、数据处理方法及装置
CN111726322B (zh) * 2019-03-19 2023-07-07 国家计算机网络与信息安全管理中心 一种文件篡改劫持的检测方法、装置及存储介质
CN110311972B (zh) * 2019-06-27 2022-02-22 百度在线网络技术(北京)有限公司 用于应用软件分发的检测方法、装置、设备及介质
CN110737852A (zh) * 2019-09-04 2020-01-31 上海连尚网络科技有限公司 信息处理方法、装置、电子设备及介质
CN110932933B (zh) * 2019-11-15 2020-11-06 掌阅科技股份有限公司 网络状况监测方法、计算设备及计算机存储介质
CN111510429B (zh) * 2020-03-11 2021-07-09 南京大学 一种安卓系统应用推广中流量劫持的分析检测方法及系统
CN113395337B (zh) * 2021-06-02 2022-09-27 Oppo广东移动通信有限公司 浏览器网页防劫持的方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945347A (zh) * 2012-09-29 2013-02-27 中兴通讯股份有限公司 一种检测Android恶意软件的方法、系统及设备
CN102982281A (zh) * 2012-11-09 2013-03-20 北京奇虎科技有限公司 程序状况检测方法和系统
CN103001947A (zh) * 2012-11-09 2013-03-27 北京奇虎科技有限公司 一种程序处理方法和系统
CN103401836A (zh) * 2013-07-01 2013-11-20 北京卓易讯畅科技有限公司 一种用于判断网页是否被isp劫持的方法与设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945347A (zh) * 2012-09-29 2013-02-27 中兴通讯股份有限公司 一种检测Android恶意软件的方法、系统及设备
CN102982281A (zh) * 2012-11-09 2013-03-20 北京奇虎科技有限公司 程序状况检测方法和系统
CN103001947A (zh) * 2012-11-09 2013-03-27 北京奇虎科技有限公司 一种程序处理方法和系统
CN103401836A (zh) * 2013-07-01 2013-11-20 北京卓易讯畅科技有限公司 一种用于判断网页是否被isp劫持的方法与设备

Also Published As

Publication number Publication date
CN104079673A (zh) 2014-10-01

Similar Documents

Publication Publication Date Title
CN104079673B (zh) 一种应用下载中防止dns劫持的方法、装置和系统
CN106445583B (zh) 一种页面显示方法、设备及系统
US10182324B2 (en) Contextual deep linking of applications
CN107809383B (zh) 一种基于mvc的路径映射方法及装置
CN105743945B (zh) 基于切换下载源的文件下载方法及系统
CN106027644B (zh) 一种业务的校验方法及系统
CN107181779B (zh) 访问请求的处理方法、装置和系统
CN103942225A (zh) 一种混合型应用客户端的资源调用方法、客户端及系统
WO2015153925A1 (en) Processing requests to access content
CN107026758B (zh) 用于cdn业务更新的信息处理方法、信息处理系统及服务器
CN104333548B (zh) 在https网页中访问本地服务的方法及系统
CN109802919B (zh) 一种web网页访问拦截方法及装置
TW201814509A (zh) 實現網路頁面與本體應用通信的方法、裝置和電子設備
CN106709323A (zh) 一种识别伪装下载链接的方法和装置
US8579187B2 (en) System and method to identify machine-readable codes
CN106339273A (zh) 一种应用程序修复方法、终端及服务器
CN104767614B (zh) 一种信息认证方法及装置
CN107656742A (zh) 一种软件产品发布方法和装置
CN105554136B (zh) 备份数据还原方法、装置及系统
CN108667768B (zh) 一种网络应用指纹的识别方法及装置
CN105556918B (zh) 一种资源下载方法及电子设备
CN104320483B (zh) 辅助应用程序升级的系统及其方法
US20150082402A1 (en) System and method for automated authentication
CN111225038A (zh) 服务器访问方法及装置
CN110928547A (zh) 公共文件的提取方法、装置、终端和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210511

Address after: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee after: Beijing Hongteng Intelligent Technology Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee after: Sanliu0 Digital Security Technology Group Co.,Ltd.

Address before: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee before: Beijing Hongteng Intelligent Technology Co.,Ltd.