一种隐藏手机APP访问的服务器DNS域名的方法转让专利

申请号 : CN202010120910.9

文献号 : CN111262881B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李宗宇

申请人 : 杭州云缔盟科技有限公司

摘要 :

本发明通过设置多个设有加密隧道的DNS服务器,来实现隐藏手机APP访问的服务器DNS域名;隐藏手机APP访问的服务器DNS域名的方法包括以下步骤:建立DNS服务器列表,所述DNS服务器列表包含至少两个DNS服务器;APP和所述DNS服务器列表中的每个DNS服务器均建立加密隧道;APP在每个加密隧道中发送加密DNS请求至所述DNS服务器;每个DNS服务器均向APP返回加密的DNS响应信息;筛选每个DNS服务器返回的DNS响应信息,选择重复率最高的DNS响应信息为企业服务器IP地址;APP发送HTTP请求至企业服务器IP地址。

权利要求 :

1.一种隐藏手机APP访问的服务器DNS域名的方法,其特征在于,包括以下步骤:S1、建立DNS服务器列表,所述DNS服务器列表包含至少两个DNS服务器;

S2、APP和所述DNS服务器列表中的每个DNS服务器均建立加密隧道;

S3、APP在每个加密隧道中发送加密DNS请求至所述DNS服务器;

S4、每个DNS服务器均向APP返回加密的DNS响应信息;

S5、筛选每个DNS服务器返回的DNS响应信息,选择被大多数DNS服务器返回的IP地址为企业服务器IP地址;

S6、APP发送HTTP请求至企业服务器IP地址;

S7、企业服务器返回HTTP响应。

2.根据权利要求1所述的隐藏手机APP访问的服务器DNS域名的方法,其特征在于:每个所述DNS服务器均支持DOT协议。

3.根据权利要求1或2所述的隐藏手机APP访问的服务器DNS域名的方法,其特征在于:APP向DNS服务器列表中的每个DNS服务器均建立TLS加密隧道。

说明书 :

一种隐藏手机APP访问的服务器DNS域名的方法

技术领域

[0001] 本发明涉及计算机领域,具体涉及一种隐藏手机APP访问的服务器DNS域名的方法。

背景技术

[0002] 一般情况下Internet上对外提供网络服务的服务器,都有一个公开服务器域名;客户端APP访问服务器,首先要把服务器的域名解析为服务器的IP地址;然后APP访问服务
器的IP地址,完成对服务器的访问。参见图1,具体步骤为:(1)APP首先调用Android/iOS操
作系统API:gethostname来获取域名www.xxx.com对应的服务器的IP地址;(2)Android/iOS
操作系统的DNS处理模块组装DNS报文,发送DNS请求到Internet公共的DNS服务器,目的是
获取www.xxx.com这个域名,对应的IP地址(说明:每一个Android/iOS手机操作系统,如果
能访问Internet,那么这个手机操作系统都会有一个默认DNS服务器);(3)公共DNS服务器,
返回DNS响应;告诉iOS/Android操作系统的DNS模块,www.xxx.com对应的IP地址是
74.86.12.172;(4)iOS/Android操作系统DNS模块通过API返回到APP,www.xxx.com这个域
名对应的IP地址是74.86.12.172.;(5)客户端APP发送HTTP请求到企业服务器
74.86.12.172;(6)企业服务器74.86.12.172返回HTTP响应。至此,一个完整的HTTP请求和
响应结束。
[0003] 现有方案缺点:(1)手机APP对服务器的域名访问,会将服务器的域名暴露在Internet上;(2)如果黑客对服务器的域名(比如www.xxx.com)发起DNS DDoS攻击,DNS服务
提供商会将被攻击的域名(比如www.xxx.com)放入黑洞,导致对这个域名(www.xxx.com)的
访问都会失败;(3)如果黑客对服务器的域名进行域名劫持或者域名污染攻击,会导致APP
访问到一个错误IP地址,导致信息泄露,或者访问失败。
[0004] 术语解释:
[0005] IP地址:IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
[0006] 域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地
理位置)。由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设
计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映
射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
[0007] DNS:DNS(Domain Name System,域名系统)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
[0008] DDoS:DDoS(Distributed Denial of Service attack,分布式拒绝服务攻击)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位
于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布
在不同地方的,这类攻击称为分布式拒绝服务攻击,其中的攻击者可以有多个。
[0009] APP:英文APPlication的简称,即应用软件,通常是指iOS、Android等手机应用软件
[0010] API(APPlication Programming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件
或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
[0011] HTTP(HyperText Transfer Protocol):超文本传输协议(HTTP)是一个用于传输超媒体文档的应用层协议。它是为Web浏览器与Web服务器之间的通信而设计的,但也可以
用于其他目的。HTTP遵循经典的客户端‑服务端模型,客户端打开一个连接以发出请求,然
后等待它收到服务器端响应。HTTP是无状态协议,这意味着服务器不会在两个请求之间保
留任何数据(状态)。
[0012] TLS:传输层安全性协议(英语:Transport Layer Security,缩写作TLS),及其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,目的是为互联网通信
提供安全及数据完整性保障。
[0013] DoT:DNS over TLS(缩写:DoT)是通过传输层安全协议(TLS)来加密并打包域名系统(DNS)的安全协议。此协议旨在防止中间人攻击与控制DNS数据以保护用户隐私。
[0014] 域名劫持:域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无
法访问目标网站的目的。
[0015] 域名污染:网域服务器缓存污染(DNS cache pollution),又称域名服务器缓存投毒(DNS cache poisoning),是指一些刻意制造或无意中制造出来的域名服务器数据包,把
域名指往不正确的IP地址。一般来说,在互联网上都有可信赖的网域服务器,但为减低网络
上的流量压力,一般的域名服务器都会把从上游的域名服务器获得的解析记录暂存起来,
待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器
的缓存受到污染,就会把网域内的计算机导引往错误的服务器或服务器的网址。

发明内容

[0016] 本发明的目的在于提供一种隐藏手机APP访问的服务器DNS域名的方法,通过设置多个设有加密隧道的DNS服务器,来实现隐藏手机APP访问的服务器DNS域名。
[0017] 为达上述目的,本发明的主要技术解决手段是提供一种隐藏手机APP访问的服务器DNS域名的方法,包括以下步骤:
[0018] S1、建立DNS服务器列表,所述DNS服务器列表包含至少两个DNS服务器;
[0019] S2、APP和所述DNS服务器列表中的每个DNS服务器均建立加密隧道;
[0020] S3、APP在每个加密隧道中发送加密DNS请求至所述DNS服务器;
[0021] S4、每个DNS服务器均向APP返回加密的DNS响应信息;
[0022] S5、筛选每个DNS服务器返回的DNS响应信息,选择重复率最高的DNS响应信息为企业服务器IP地址;
[0023] S6、APP发送HTTP请求至企业服务器IP地址。
[0024] S7、企业服务器返回HTTP响应。
[0025] 进一步的,每个所述DNS服务器均支持DOT协议。
[0026] 进一步的,APP向DNS服务器列表中的每个DNS服务器均建立TLS加密隧道。
[0027] 本发明的有益效果是:
[0028] (1)可以防止服务器的域名被域名劫持;由于APP同时发送多个DNS请求给Internet上多个DNS服务器,本方案不相信单个DNS服务器的返回的单一结果,而相信大多
数DNS服务器的结果,大多数DNS服务器中域名都被篡改的概率是很低的,因此本方案可以
防止服务器的域名被域名劫持;
[0029] (2)可以防止企业服务器的被域名污染;域名污染一般情况下都是中间人攻击引起,本方案使用协议是基于TLS协议,TLS本身不能被中间人攻击的;
[0030] (3)可以隐藏APP访问的服务器的域名,防止服务器的域名被DDoS攻击;由于本方案的DNS解析过程被完全隐藏在TLS协议中,黑客无法通过在网络上或者手机上抓包分析
DNS的解析过程,所以本方案能有效隐藏服务器的域名,从而避免服务器域名被DDoS攻击而
无法访问。

附图说明

[0031] 图1是现有技术方案APP访问企业服务器的流程示意图。
[0032] 图2是本发明实施例APP访问企业服务器的流程示意图。

具体实施方式

[0033] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的
范围。
[0034] 本领域技术人员应理解的是,在本发明的揭露中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关
系是基于附图所示的方位或位置关系,其仅是为了便于描述本发明和简化描述,而不是指
示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术
语不能理解为对本发明的限制。
[0035] 可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不
能理解为对数量的限制。
[0036] 参见图2,一种隐藏手机APP访问的服务器DNS域名的方法,包括以下步骤:
[0037] S1、建立DNS服务器列表,DNS服务器列表包含至少两个DNS服务器;
[0038] S2、APP和所述DNS服务器列表中的每个DNS服务器均建立TLS加密隧道;
[0039] S3、APP在每个加密隧道中发送加密DNS请求至DNS服务器;
[0040] S4、每个DNS服务器均向APP返回加密的DNS响应信息;
[0041] S5、筛选每个DNS服务器返回的DNS响应信息,选择重复率最高的DNS响应信息为企业服务器IP地址;
[0042] S6、APP发送HTTP请求至企业服务器IP地址。
[0043] S7、企业服务器返回HTTP响应。
[0044] 用DoT协议一个标准的HTTP访问请求和响应如下所述:
[0045] (1)收集生成DNS服务器列表:收集Internet上支持DoT协议的公共的知名的DNS服务器,这样能收集多个DNS服务器,形成一个DNS服务器列表;这样APP不再发送DNS请求到系
统默认的DNS服务器
[0046] (2)APP和各个DNS服务器建立加密隧道:APP发送TLS请求,和第1步收集到的DNS服务器列表中的每个服务器都建立一个TLS加密隧道
[0047] (3)DNS服务器应答加密隧道建立成功:DNS服务器返回加密隧道建立成功
[0048] (4)APP在加密隧道中发送加密DNS请求:APP自己组装DNS请求而不是调用操作系统API,组装的请求中为了查询www.xxx.com对应的IP地址,并将请求发送到已经建立加密
隧道的各个DNS服务器
[0049] (5)DNS服务器返回加密的DNS响应:各个DNS服务器在加密隧道中返回www.xxx.com对应的IP地址
[0050] (6)选择企业服务器的IP地址:根据多个DNS服务器返回的IP地址,选择一个被大多数DNS服务器返回IP地址作为企业服务器的IP地址
[0051] (7)客户端APP发送HTTP请求到企业服务器
[0052] (8)企业服务器返回HTTP响应。
[0053] 至此,一个完整的HTTP请求和响应结束。
[0054] 本方法中由于APP同时发送多个DNS请求给Internet上多个DNS服务器,本方法不相信单个DNS服务器的返回的单一结果,而相信大多数DNS服务器的结果,大多数DNS服务器
中域名都被篡改的概率很低,因此本方法可以防止服务器的域名被域名劫持。
[0055] 本方法使用协议是基于TLS协议,TLS本身不能被中间人攻击的,所以也不会出现域名污染。
[0056] 由于本方法的DNS解析过程被完全隐藏在TLS协议中,黑客无法通过在网络上或者手机上抓包分析DNS的解析过程,能有效隐藏服务器的域名,从而避免服务器域名被DDoS攻
击而无法访问。
[0057] 本发明不局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技
术方案,均落在本发明的保护范围之内。