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

文档序号:21038050发布日期:2020-06-09 20:31阅读:2164来源:国知局
一种隐藏手机APP访问的服务器DNS域名的方法与流程

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



背景技术:

一般情况下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请求和响应结束。

现有方案缺点:(1)手机app对服务器的域名访问,会将服务器的域名暴露在internet上;(2)如果黑客对服务器的域名(比如www.xxx.com)发起dnsddos攻击,dns服务提供商会将被攻击的域名(比如www.xxx.com)放入黑洞,导致对这个域名(www.xxx.com)的访问都会失败;(3)如果黑客对服务器的域名进行域名劫持或者域名污染攻击,会导致app访问到一个错误ip地址,导致信息泄露,或者访问失败。

术语解释:

ip地址:ip地址是ip协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

域名(英语:domainname),又称网域,是由一串用点分隔的名字组成的internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于ip地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(dns,domainnamesystem)来将域名和ip地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的ip地址数串。

dns:dns(domainnamesystem,域名系统)是互联网的一项服务。它作为将域名和ip地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

ddos:ddos(distributeddenialofserviceattack,分布式拒绝服务攻击)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击,其中的攻击者可以有多个。

app:英文application的简称,即应用软件,通常是指ios、android等手机应用软件

api(applicationprogramminginterface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。

http(hypertexttransferprotocol):超文本传输协议(http)是一个用于传输超媒体文档的应用层协议。它是为web浏览器与web服务器之间的通信而设计的,但也可以用于其他目的。http遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待它收到服务器端响应。http是无状态协议,这意味着服务器不会在两个请求之间保留任何数据(状态)。

tls:传输层安全性协议(英语:transportlayersecurity,缩写作tls),及其前身安全套接层(securesocketslayer,缩写作ssl)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。

dot:dnsovertls(缩写:dot)是通过传输层安全协议(tls)来加密并打包域名系统(dns)的安全协议。此协议旨在防止中间人攻击与控制dns数据以保护用户隐私。

域名劫持:域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(dns),或伪造域名解析服务器(dns)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。

域名污染:网域服务器缓存污染(dnscachepollution),又称域名服务器缓存投毒(dnscachepoisoning),是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的ip地址。一般来说,在互联网上都有可信赖的网域服务器,但为减低网络上的流量压力,一般的域名服务器都会把从上游的域名服务器获得的解析记录暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的计算机导引往错误的服务器或服务器的网址。



技术实现要素:

本发明的目的在于提供一种隐藏手机app访问的服务器dns域名的方法,通过设置多个设有加密隧道的dns服务器,来实现隐藏手机app访问的服务器dns域名。

为达上述目的,本发明的主要技术解决手段是提供一种隐藏手机app访问的服务器dns域名的方法,包括以下步骤:

s1、建立dns服务器列表,所述dns服务器列表包含至少两个dns服务器;

s2、app和所述dns服务器列表中的每个dns服务器均建立加密隧道;

s3、app在每个加密隧道中发送加密dns请求至所述dns服务器;

s4、每个dns服务器均向app返回加密的dns响应信息;

s5、筛选每个dns服务器返回的dns响应信息,选择重复率最高的dns响应信息为企业服务器ip地址;

s6、app发送http请求至企业服务器ip地址。

s7、企业服务器返回http响应。

进一步的,每个所述dns服务器均支持dot协议。

进一步的,app向dns服务器列表中的每个dns服务器均建立tls加密隧道。

本发明的有益效果是:

(1)可以防止服务器的域名被域名劫持;由于app同时发送多个dns请求给internet上多个dns服务器,本方案不相信单个dns服务器的返回的单一结果,而相信大多数dns服务器的结果,大多数dns服务器中域名都被篡改的概率是很低的,因此本方案可以防止服务器的域名被域名劫持;

(2)可以防止企业服务器的被域名污染;域名污染一般情况下都是中间人攻击引起,本方案使用协议是基于tls协议,tls本身不能被中间人攻击的;

(3)可以隐藏app访问的服务器的域名,防止服务器的域名被ddos攻击;由于本方案的dns解析过程被完全隐藏在tls协议中,黑客无法通过在网络上或者手机上抓包分析dns的解析过程,所以本方案能有效隐藏服务器的域名,从而避免服务器域名被ddos攻击而无法访问。

附图说明

图1是现有技术方案app访问企业服务器的流程示意图。

图2是本发明实施例app访问企业服务器的流程示意图。

具体实施方式

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

本领域技术人员应理解的是,在本发明的揭露中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系是基于附图所示的方位或位置关系,其仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本发明的限制。

可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。

参见图2,一种隐藏手机app访问的服务器dns域名的方法,包括以下步骤:

s1、建立dns服务器列表,dns服务器列表包含至少两个dns服务器;

s2、app和所述dns服务器列表中的每个dns服务器均建立tls加密隧道;

s3、app在每个加密隧道中发送加密dns请求至dns服务器;

s4、每个dns服务器均向app返回加密的dns响应信息;

s5、筛选每个dns服务器返回的dns响应信息,选择重复率最高的dns响应信息为企业服务器ip地址;

s6、app发送http请求至企业服务器ip地址。

s7、企业服务器返回http响应。

用dot协议一个标准的http访问请求和响应如下所述:

(1)收集生成dns服务器列表:收集internet上支持dot协议的公共的知名的dns服务器,这样能收集多个dns服务器,形成一个dns服务器列表;这样app不再发送dns请求到系统默认的dns服务器

(2)app和各个dns服务器建立加密隧道:app发送tls请求,和第1步收集到的dns服务器列表中的每个服务器都建立一个tls加密隧道

(3)dns服务器应答加密隧道建立成功:dns服务器返回加密隧道建立成功

(4)app在加密隧道中发送加密dns请求:app自己组装dns请求而不是调用操作系统api,组装的请求中为了查询www.xxx.com对应的ip地址,并将请求发送到已经建立加密隧道的各个dns服务器

(5)dns服务器返回加密的dns响应:各个dns服务器在加密隧道中返回www.xxx.com对应的ip地址

(6)选择企业服务器的ip地址:根据多个dns服务器返回的ip地址,选择一个被大多数dns服务器返回ip地址作为企业服务器的ip地址

(7)客户端app发送http请求到企业服务器

(8)企业服务器返回http响应。

至此,一个完整的http请求和响应结束。

本方法中由于app同时发送多个dns请求给internet上多个dns服务器,本方法不相信单个dns服务器的返回的单一结果,而相信大多数dns服务器的结果,大多数dns服务器中域名都被篡改的概率很低,因此本方法可以防止服务器的域名被域名劫持。

本方法使用协议是基于tls协议,tls本身不能被中间人攻击的,所以也不会出现域名污染。

由于本方法的dns解析过程被完全隐藏在tls协议中,黑客无法通过在网络上或者手机上抓包分析dns的解析过程,能有效隐藏服务器的域名,从而避免服务器域名被ddos攻击而无法访问。

本发明不局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。

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