一种用于通过用户设备检测中间人攻击的方法与设备转让专利

申请号 : CN201811014991.3

文献号 : CN108769086B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高迪

申请人 : 连尚(新昌)网络科技有限公司

摘要 :

本申请的目的是提供一种用于通过用户设备检测中间人攻击的方法,其中,该方法包括:向多个随机IP地址发送对应的多个TCP握手请求;根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数;若所述TCP握手成功计数小于或等于TCP握手成功阈值,确定所述用户设备的当前网络中未存在中间人攻击。本申请主动进行检测中间人攻击中的SSLSniff中间人攻击、SSLStrip中间人攻击以及网页篡改中间人攻击,覆盖范围广,迅速识别中间人攻击,大大缩短了用户等待的时间,以便于用户方可以在最短时间内实行对应的防御措施。

权利要求 :

1.一种用于通过用户设备检测中间人攻击的方法,其中,该方法包括:向多个随机IP地址发送对应的多个TCP握手请求;

根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数,其中,所述TCP握手请求包括关于HTTP端口的TCP握手请求;

若所述TCP握手成功计数小于或等于TCP握手成功阈值,确定所述用户设备的当前网络中未存在中间人攻击;

若所述TCP握手成功计数大于所述TCP握手成功阈值,从所述多个TCP握手成功次数对应的多个握手成功IP地址中选取部分IP地址;

向所述部分IP地址发送对应的多个页面访问请求;

根据所述多个页面访问请求是否在预设时间内响应,确定所述多个页面访问请求对应的页面访问响应计数;

若所述页面访问响应计数大于页面访问响应阈值,确定所述用户设备的当前网络中未存在中间人攻击。

2.根据权利要求1所述的方法,其中,所述TCP握手请求包括关于HTTPS端口的TCP握手请求;

其中,所述方法还包括:

若所述TCP握手成功计数大于所述TCP握手成功阈值,确定所述用户设备的当前网络中存在SSLSniff中间人攻击。

3.根据权利要求1所述的方法,其中,所述方法还包括:若所述页面访问响应计数小于或等于页面访问响应阈值,确定所述用户设备的当前网络中存在中间人攻击;

向仅支持https协议的目标网站发送http访问请求;

接收所述目标网站的响应信息;

根据所述响应信息,检测所述用户设备的当前网络中是否存在ssl中间人攻击。

4.根据权利要求3所述的方法,其中,所述根据所述响应信息,检测所述用户设备的当前网络中是否存在ssl中间人攻击,还包括:若所述响应信息包括所述http访问请求对应的请求完成信息,确定所述用户设备的当前网络中存在SSLStrip中间人攻击。

5.根据权利要求3或4所述的方法,其中,所述根据所述响应信息,检测所述用户设备的当前网络中是否存在ssl中间人攻击,包括:若所述响应信息包括所述http访问请求对应的重定向信息,所述重定向信息对应的网址为HTTP类型,且该网址仍然是所请求网站对应的网址或其子域名下的网址,确定所述用户设备的当前网络中存在SSLStrip中间人攻击。

6.根据权利要求3或4所述的方法,其中,所述根据所述响应信息,检测所述用户设备的当前网络中是否存在ssl中间人攻击,包括:若所述响应信息包括所述http访问请求对应的重定向信息,所述重定向信息对应的网址为HTTP类型,且该网址不是所请求网站对应的网址或其子域名下的网址,确定所述用户设备的当前网络中存在网页篡改中间人攻击。

7.根据权利要求3或4所述的方法,其中,所述根据所述响应信息,检测所述用户设备的当前网络中是否存在ssl中间人攻击,包括:若所述响应信息包括所述http访问请求对应的重定向信息,且所述重定向信息对应的网址为非目标网站的HTTPS类型,确定所述用户设备的当前网络中存在网页篡改中间人攻击。

8.根据权利要求3所述的方法,其中,所述根据所述响应信息,检测所述用户设备的当前网络中是否存在ssl中间人攻击,包括:若所述响应信息未包括所述http访问请求对应的重定向信息与请求完成信息,确定所述用户设备的当前网络中存在网页篡改中间人攻击。

9.根据权利要求3所述的方法,其中,所述方法还包括:根据所述用户设备的当前网络的安全检测结果、所述TCP握手成功计数以及所述页面访问响应计数确定所述用户设备的当前网络的安全评测信息。

10.一种用于通过用户设备检测中间人攻击的设备,其中,该设备包括:处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至9中任一项所述方法的操作。

11.一种计算机可读介质,存储指令,所述指令可被处理器执行以实现如权利要求1至9中任一项所述方法的操作。

说明书 :

一种用于通过用户设备检测中间人攻击的方法与设备

技术领域

[0001] 本申请涉及通信领域,尤其涉及一种用于通过用户设备检测中间人攻击的技术。

背景技术

[0002] 网络的迅速发展,给人类的生活带来方便,但也对网络安全提出了更高的要求,网络可以说是一把双刃剑。在网络安全方面,MITM(Man-in-the-Middle)攻击很早就成为黑客常用的一种古老的攻击手段,并且一直到今天还具有极大的扩展空间。
[0003] 中间人攻击(Man-in-the-Middle Attack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。“中间人”计算机将在两台互相通信的目的主机之间转发帧数据包,而两台目的主机对此毫无察觉,这使得用户通信处于危险的网络环境之中。

发明内容

[0004] 本申请的一个目的是提供一种用于通过用户设备检测中间人攻击的方法与设备。
[0005] 根据本申请的一个方面,提供了一种用于通过用户设备检测中间人攻击的方法,该方法包括:
[0006] 向多个随机IP地址发送对应的多个TCP(Transmission Control Protocol,传输控制协议)握手请求;
[0007] 根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数;
[0008] 若所述TCP握手成功计数小于或等于TCP握手成功阈值,确定所述用户设备的当前网络中未存在中间人攻击。
[0009] 根据本申请的一个方面,提供了一种用于检测中间人攻击的用户设备,该用户设备包括:
[0010] 发送模块,用于向多个随机IP(Internet Protocol,网络协议)地址发送对应的多个TCP握手请求;
[0011] 根据模块,用于根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数;
[0012] 确定模块,用于若所述TCP握手成功计数小于或等于TCP握手成功阈值,确定所述用户设备的当前网络中未存在中间人攻击。
[0013] 根据本申请的一个方面,提供了一种用于通过用户设备检测中间人攻击的设备,该设备包括:
[0014] 处理器;以及
[0015] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行:
[0016] 向多个随机IP地址发送对应的多个TCP握手请求;
[0017] 根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数;
[0018] 若所述TCP握手成功计数小于或等于TCP握手成功阈值,确定所述用户设备的当前网络中未存在中间人攻击。
[0019] 根据本申请的一个方面,提供了一种包括指令的计算机可读介质,所述指令在被执行时使得系统进行:
[0020] 向多个随机IP地址发送对应的多个TCP握手请求;
[0021] 根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数;
[0022] 若所述TCP握手成功计数小于或等于TCP握手成功阈值,确定所述用户设备的当前网络中未存在中间人攻击。
[0023] 与现有技术相比,本申请通过用户设备向多个随机IP地址发送TCP握手请求,并设定较短时间等待响应,并基于流量劫持这个中间人攻击前提,根据TCP握手成功次数来判断当前网络中是否存在中间人攻击。本申请可适用于有线与无线通信领域,适用范围广,同时能主动缩短等待TCP响应的时间,准确识别出中间人攻击中的SSLSniff中间人攻击、网页篡改中间人攻击和SSLStrip中间人攻击,识别攻击较为精准。

附图说明

[0024] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0025] 图1示出根据本申请一个实施例的一种用于通过用户设备检测中间人攻击的系统拓扑图;
[0026] 图2示出根据本申请一个实施例的一种用于通过用户设备检测中间人攻击的方法流程图;
[0027] 图3示出根据本申请一个实施例的一种用于检测中间人攻击的用户设备的设备示意图;
[0028] 图4示出可被用于实施本发明中所述的各个实施例的示例性系统。
[0029] 附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

[0030] 下面结合附图对本申请作进一步详细描述。
[0031] 在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0032] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0033] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0034] 本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。
[0035] 当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0036] 在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
[0037] 图1示出了本申请的一个典型场景,用户设备对多个随机IP地址发送多个TCP(Transmission Control Protocol,传输控制协议)握手请求,同时设置检测时间为较短时间,例如2S,并统计多个TCP握手请求中成功的TCP握手请求数,若该TCP握手请求数大于预设的TCP握手成功阈值,此时用户设备确认当前网络中存在中间人攻击。其中,所述用户设备未使用IP代理,如用户设备设置了全局代理,用户设备在进行检测时停用该全局代理;若用户设备的代理包括某个应用设置的代理(如,专门在浏览器中设置的HTTP代理等),用户设备在检测时无需停用该代理。
[0038] 例如,用户设备随机选取多个IP地址,例如IP1(4.4.4.4)、IP2(192.168.0.1)、IP3(86.9.24)和IP4(6.25.25.120),用户持有用户设备通过浏览器对这四个IP地址发送TCP握手请求,并设置检测的时间为2S,在该时间内,一般的用户感知不到明显的等待时间。其中,该用户设备未主动设置代理,用户设备在极短的时间内发出对多个IP地址的TCP握手请求,攻击者收到请求后确认该连接请求报文,并反馈确认信息至用户设备,用户设备确认IP1未握手成功,IP2、IP3、IP4握手成功,该TCP握手成功数大于TCP握手成功阈值,该TCP握手成功阈值为2,用户设备判断当前网络存在中间人攻击的风险。
[0039] 图2示出根据本申请的一个方面的一种用于通过用户设备检测中间人攻击的方法,其中,该方法包括步骤S11、S12和步骤S13。在步骤S11中,用户设备向多个随机IP地址发送对应的多个TCP握手请求;在步骤S12中,用户设备根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数;在步骤S13中,若所述TCP握手成功计数小于或等于TCP握手成功阈值,用户设备确定所述用户设备的当前网络中未存在中间人攻击。
[0040] 具体地,在步骤S11中,用户设备向多个随机IP地址发送对应的多个TCP握手请求。例如,用户设备随机选取多个IP地址,该多个IP地址包含可以到达的IP地址和不可到达的IP地址,用户设备对该多个IP地址同时发送TCP握手请求。
[0041] 在步骤S12中,用户设备根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数。例如,所述预设时间为极短时间,例如2S,用户设备发送多个TCP握手请求至多个随机IP地址,在较短时间内等待多个TCP握手请求的响应。若用户设备收到对应IP地址的相应的TCP握手请求回复,则确认该TCP握手请求成功,收到一次TCP握手成功的回复进行一次计数。
[0042] 在步骤S13中,若所述TCP握手成功计数小于或等于TCP握手成功阈值,用户设备确定所述用户设备的当前网络中未存在中间人攻击。例如,在用户设备对多个IP地址发起多个TCP握手请求结束后,对TCP握手成功次数进行计数,并与预设的TCP握手成功阈值进行比较,若所述TCP握手成功计数小于或等于TCP握手成功阈值,用户设备确定所述用户设备的当前网络中未存在中间人攻击。
[0043] 例如,用户持有用户设备,用户设备对随机产生的十个IP地址同时发送TCP握手请求并设定2S的等待响应时间,其中,十个IP地址分别为IP1(4.4.4.4)、IP2(4.4.4.1)、IP3(255.1.1.1)、IP4(3.3.3.3)…IP10(4.3.3.3),其中,IP地址存在可以访问和不可访问的情况。对于可访问的IP地址,用户设备向服务器的端口发起TCP握手请求,该数据包中TCP包头有两个标志位ACK和SYN,和两个4字节的序列号和确认号其中,ACK=0表示确认号无效,SYN=1表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq=x表示用户设备自己的初始序号(此时的x是随机数),这时候用户设备进入syn_sent状态,表示在等待服务器的回复,随后服务器同意连接请求后进入syn_rcvd状态,表示服务器已经收到用户设备的连接请求,等待用户设备的确认,随后用户设备收到确认后再次发送确认,表明TCP握手请求成功;对于不可访问的IP地址,当用户设备发起TCP握手请求时,由于这些IP地址未分配到对应的主机,该IP数据包会在网络上进行传输但因其找不到对应主机,最终当这个数据包经过足够多的路由器或交换机后,其ttl(Time To Live,生产周期)值减为0,数据包被丢弃,用户设备对这些IP地址发起TCP握手请求,由于该IP地址的数据包被丢弃,用户设备收不到相应的TCP握手请求的回复,超过2S的时长即认定为超时,此时用户设备确定TCP握手失败。用户设备根据IP地址存在的这两种情况确定这随机产生的十个IP地址中对IP1和IP2的TCP握手请求成功,其计数小于用户设备预先设定的TCP握手成功阈值数5,其中,用户设备TCP握手成功阈值主要依据对当前系统的敏感度的考虑,当TCP握手成功数的值非常高时,这时的网络状况应是比较良好,并且流量已经被劫持,当TCP握手成功数值非常低时,这时可以认为是随机到了一个开放的IP端口上,或是已经被劫持,但是网络状况非常差,丢包非常高,这个时候正常的网站访问都会受到很大的影响,因此中间人攻击很难成功,若TCP握手成功阈值设置的较低,则漏报率会降低,绝大部分可能存在中间人攻击的情况都能区分出,但是误报率会升高一些,例如可能的确有少数几个IP随机到了开放端口的IP上,若TCP握手成功阈值设置的较高,则漏报率会升高,可能存在少部分网络不佳的攻击不会被区分出,但是此时相应的误报率会降低,此时区分出的攻击情况更小的几率是IP随机到开放端口的IP上,确定的TCP握手成功阈值即是在误报率和漏报率中间的一个折中的一个方案。在对这十个随机IP发起的TCP握手请求中,TCP握手请求成功数小于TCP握手成功阈值,用户设备确定当前网络中未存在中间人攻击。
[0044] 当然,本领域技术人员应能理解上述用户设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0045] 在一些实施例中,其中,所述TCP握手请求包括关于HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)端口的TCP握手请求;所述方法还包括步骤S14(未示出),在步骤S14中,若所述TCP握手成功计数大于所述TCP握手成功阈值,用户设备确定所述用户设备的当前网络中存在SSLSniff中间人攻击。例如,在https(Hyper Text Transfer Protocol over Secure Socket Layer)协议中,用户设备在较短时间内对随机选取的多个IP地址发送多个TCP握手请求后,若所述TCP握手成功计数大于所述TCP握手成功阈值,用户设备确认当前网络中传输的https协议流量受到中间人攻击,确定所述用户设备的当前网络中存在SSLSniff(Secure Sockets Layer Sniff,安全套接层嗅探)中间人攻击。
[0046] 例如,在https协议中,用户持有用户设备,用户设备对随机产生的十个IP地址的443端口同时发送TCP握手请求并设定2S的等待响应时间,其中,十个IP地址分别为IP1(4.4.4.4)、IP2(4.4.4.1)、IP3(255.1.1.1)、IP4(3.3.3.3)…IP10(4.3.3.3),其中,IP地址存在可以访问和不可访问的情况。对于可访问的IP地址,用户设备向服务器的端口发起TCP握手请求,该数据包中TCP包头有两个标志位ACK和SYN,和两个4字节的序列号和确认号其中,ACK=0表示确认号无效,SYN=1表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq=x表示用户设备自己的初始序号(此时的x是随机数),这时候用户设备进入syn_sent状态,表示在等待服务器的回复,随后服务器同意连接请求后进入syn_rcvd状态,表示服务器已经收到用户设备的连接请求,等待用户设备的确认,随后用户设备收到确认后再次发送确认,表明TCP握手请求成功;对于不可访问的IP地址,当用户设备发起TCP握手请求时,由于这些IP地址未分配到对应的主机,该IP数据包会在网络上进行传输但因其找不到对应主机,最终当这个数据包经过足够多的路由器或交换机后,其ttl值减为0,数据包被丢弃,用户设备对这些IP地址发起TCP握手请求,由于该IP地址的数据包被丢弃,用户设备收不到相应的TCP握手请求的回复,超过2S的时长即认定为超时,此时用户设备确定TCP握手失败。用户设备根据IP地址存在的这两种情况确定这随机产生的十个IP地址中对IP1和IP2的TCP握手请求未成功,TCP握手请求成功的计数大于用户设备预先设定的TCP握手成功阈值数5,表明https的网络流量已经被劫持到攻击者的服务器。由于https协议中需要CA颁发的证书,此时用户设备正在访问或将要访问的网站中,极有可能会有部分网站的证书被攻击者替换为攻击者自己的证书,用户设备确认当前证书遭到攻击,当前网络中存在SSLSniff中间人攻击。
[0047] 当然,本领域技术人员应能理解上述较短时间仅为举例,其他现有的或今后可能出现的较短时间如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0048] 在一些实施例中,所述TCP握手请求包括关于HTTP端口的TCP握手请求;所述方法包括步骤S15(未示出),在步骤S15中,若所述TCP握手成功计数大于所述TCP握手成功阈值,从所述多个TCP握手成功次数对应的多个握手成功IP地址中选取部分IP地址;用户设备向所述部分IP地址发送对应的多个页面访问请求,并根据所述多个页面访问请求是否在预设时间内响应,确定所述多个页面访问请求对应的页面访问响应计数;若所述页面访问响应计数大于页面访问响应阈值,用户设备确定所述用户设备的当前网络中未存在中间人攻击。例如,在http协议中,用户设备在较短时间内对随机选取的多个IP地址同时发送多个TCP握手请求后,若所述TCP握手成功计数大于所述TCP握手成功阈值,用户设备从所述多个TCP握手成功次数对应的多个握手成功IP地址中选取部分IP地址,用户设备在较短时间内继续对部分IP地址同时发送多个页面访问请求,并根据多个页面访问请求在较短时间内的响应数用来确定所述用户设备的当前网络中是否存在中间人攻击。若多个页面访问请求在较短时间内的响应数大于用户设备预设的页面访问响应阈值,用户设备确定当前网络需要进行portal认证的信息,并确定当前网络中未存在中间人攻击。
[0049] 例如,在http协议中,用户持有用户设备,用户设备对随机产生的十个IP地址的443端口同时发送TCP握手请求并设定2S的等待响应时间,其中,十个IP地址分别为IP1(4.4.4.4)、IP2(4.4.4.1)、IP3(255.1.1.1)、IP4(3.3.3.3)…IP10(4.3.3.3),其中,IP地址存在可以访问和不可访问的情况。对于可访问的IP地址,用户设备向服务器的端口发起TCP握手请求,该数据包中TCP包头有两个标志位ACK和SYN,和两个4字节的序列号和确认号其中,ACK=0表示确认号无效,SYN=1表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq=x表示用户设备自己的初始序号(此时的x是随机数),这时候用户设备进入syn_sent状态,表示在等待服务器的回复,随后服务器同意连接请求后进入syn_rcvd状态,表示服务器已经收到用户设备的连接请求,等待用户设备的确认,随后用户设备收到确认后再次发送确认,表明TCP握手请求成功;对于不可访问的IP地址,当用户设备发起TCP握手请求时,由于这些IP地址未分配到对应的主机,该IP数据包会在网络上进行传输但因其找不到对应主机,最终当这个数据包经过足够多的路由器或交换机后,其ttl值减为0,数据包被丢弃,用户设备对这些IP地址发起TCP握手请求,由于该IP地址的数据包被丢弃,用户设备收不到相应的TCP握手请求的回复,超过2S的时长即认定为超时,此时用户设备确定TCP握手失败。用户设备根据IP地址存在的这两种情况确定这随机产生的十个IP地址中对IP1和IP2的TCP握手请求未成功,TCP握手请求成功的计数大于用户设备预先设定的TCP握手成功阈值数5,随后,用户设备随机选取TCP握手成功的IP地址,选取到IP3至IP10中的IP3、IP4、IP5和IP6,并同时向IP3、IP4、IP5和IP6发送对应的页面访问请求,例如,在浏览器中键入IP地址向服务器请求数据,此时服务器响应IP3、IP4和IP5的页面访问请求,该页面访问响应大于用户设备预设的页面访问响应阈值2,并且用户设备接收到的响应页面信息为portal认证的信息,例如,页面信息呈现一个需要输入手机号与手机短信验证码进行认证的网页页面。此时用户设备确定当前网络中未存在中间人攻击。
[0050] 在一些实施例中,所述方法还包括步骤S16(未示出)、S17(未示出)、S18(未示出)和S19(未示出)。在步骤S16中,若所述页面访问响应计数小于或等于页面访问响应阈值,用户设备确定所述用户设备的当前网络中存在中间人攻击;在步骤S17中,用户设备向仅支持https协议的目标网站发送http访问请求;在步骤S18中,用户设备接收所述目标网站的响应信息;在步骤S19中,根据所述响应信息,用户设备检测所述用户设备的当前网络中是否存在ssl中间人攻击。例如,在http协议中,用户设备在较短时间内对随机选取的多个IP地址同时发送多个TCP握手请求后,若所述TCP握手成功计数大于所述TCP握手成功阈值,用户设备从所述多个TCP握手成功次数对应的多个握手成功IP地址中选取部分IP地址,用户设备在较短时间内继续对部分IP地址同时发送多个页面访问请求,并根据多个页面访问请求在较短时间内的响应数用来确定所述用户设备的当前网络中是否存在中间人攻击。若多个页面访问请求在较短时间内的响应数小于或等于用户设备预设的页面访问响应阈值,用户设备确定当前网络中存在中间人攻击,进一步地,用户设备向仅支持https协议的目标网站发送http访问请求,其中,所述https协议是一种网络安全传输协议。例如,在计算机网络中,若目标网站支持https协议,则经由超文本传输协议(http)进行通信,并利用SSL(安全套接层)来加密数据包。用户设备接收所述目标网站的响应信息,其中,所述响应信息包括响应代码为200、响应代码为301或302和其他表示找不到网站的信息。其中,响应代码为200表示请求成功完成,资源发送至用户设备的信息、响应代码为301或302表示网页被转移到另一个URL上的信息。用户设备向所述目标网站的网站服务器发送以http开头的网站地址的访问请求,用户设备接收网站服务器发送的响应信息,根据响应信息的不同,分别确定每种状态对应的受到ssl中间人攻击的风险。
[0051] 例如,在http协议中,用户持有用户设备,用户设备对随机产生的十个IP地址的443端口同时发送TCP握手请求并设定2S的等待响应时间,其中,十个IP地址分别为IP1(4.4.4.4)、IP2(4.4.4.1)、IP3(255.1.1.1)、IP4(3.3.3.3)…IP10(4.3.3.3),其中,IP地址存在可以访问和不可访问的情况。对于可访问的IP地址,用户设备向服务器的端口发起TCP握手请求,该数据包中TCP包头有两个标志位ACK和SYN,和两个4字节的序列号和确认号其中,ACK=0表示确认号无效,SYN=1表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq=x表示用户设备自己的初始序号(此时的x是随机数),这时候用户设备进入syn_sent状态,表示在等待服务器的回复,随后服务器同意连接请求后进入syn_rcvd状态,表示服务器已经收到用户设备的连接请求,等待用户设备的确认,随后用户设备收到确认后再次发送确认,表明TCP握手请求成功;对于不可访问的IP地址,当用户设备发起TCP握手请求时,由于这些IP地址未分配到对应的主机,该IP数据包会在网络上进行传输但因其找不到对应主机,最终当这个数据包经过足够多的路由器或交换机后,其ttl值减为0,数据包被丢弃,用户设备对这些IP地址发起TCP握手请求,由于该IP地址的数据包被丢弃,用户设备收不到相应的TCP握手请求的回复,超过2S的时长即认定为超时,此时用户设备确定TCP握手失败。用户设备根据IP地址存在的这两种情况确定这随机产生的十个IP地址中对IP1和IP2的TCP握手请求未成功,TCP握手请求成功的计数大于用户设备预先设定的TCP握手成功阈值数5,随后,用户设备选取IP3至IP10中的IP3、IP4、IP5和IP6,并同时向IP3、IP4、IP5和IP6发送对应的页面访问请求,例如,在浏览器中键入IP地址向服务器请求数据,此时服务器响应IP3的页面访问请求,该页面访问响应小于用户设备预设的页面访问响应阈值2,用户设备随后通过浏览器向仅支持https协议的目标网站发送http页面访问请求,比如用户设备向目标网站A发起http页面访问请求,用户在浏览器中输入http://www.AAA.com,随后用户设备收到目标网站A的网站服务器发来的响应信息HTTP/1.1 
200OK,用户设备确认该响应信息表明访问请求成功完成,资源发送至用户设备,由于该网站使用的是https协议,在以http开头的访问请求顺利进行,此时用户设备检测到当前网络中存在ssl中间人攻击。
[0052] 在一些实施例中,所述步骤S19包括若所述响应信息包括所述http访问请求对应的请求完成信息,用户设备确定所述用户设备的当前网络中存在SSLStrip中间人攻击。例如,用户设备选取仅支持https协议的网站,并对该网站发起http的页面访问请求,服务器确认该http访问请求顺利完成,用户设备可依次检测当前网络中存在SSLStrip((Secure Sockets Layer Strip,证书剥离攻击)中间人攻击。
[0053] 例如,用户设备向目标网站A发起http页面访问请求,用户在浏览器中输入http://www.AAA.com,随后用户设备收到目标网站A的网站服务器发来的响应信息HTTP/1.1 200OK,用户设备确认该响应信息表明访问请求成功完成,资源发送至用户设备,由于该网站使用的是https协议,在以http开头的访问请求顺利进行,此时用户设备检测到当前网络中存在SSLStrip中间人攻击。
[0054] 在一些实施例中,所述步骤S19包括:若所述响应信息包括所述http访问请求对应的重定向信息,且所述重定向信息对应的网址为HTTP类型,且该网址仍然是所请求网站对应的网址或其子域名下的网址,用户设备确定所述用户设备的当前网络中存在SSLStrip中间人攻击。例如,用户设备向仅支持https的目标网站发送http访问请求,用户设备基于http请求接收到目标网站的网站服务器发送的响应信息,其中,所述响应信息包括对应目标网站或者对应目标网站同一子域名网站的http跳转链接信息,即将该http访问请求重新定个方向转到对应目标网站或者对应目标网站同一子域名网站的http访问请求,用户设备确定当前网络中存在SSLStrip中间人攻击。
[0055] 例如,用户持有用户设备,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息HTTP/1.1 301 Permanently Moved,且浏览器中的网址跳转至http://yyy.BBB.com。基于上述用户设备判断当前网络存在中间人攻击的情况,此时用户设备确定当前网络中存在SSLStrip中间人攻击。
[0056] 在一些实施例中,所述步骤S19包括:若所述响应信息包括所述http访问请求对应的重定向信息,所述重定向信息对应的网址为HTTP类型,且该网址不是所请求网站对应的网址或其子域名下的网址,确定所述用户设备的当前网络中存在网页篡改中间人攻击。例如,用户设备向仅支持https的目标网站发送http访问请求,用户设备基于http请求接收到目标网站的网站服务器发送的响应信息,其中,所述响应信息包括对应目标网站或者对应目标网站同一子域名网站的http跳转链接信息,即将该http访问请求重新定个方向转到非对应目标网站或者非对应目标网站同一子域名网站的http访问请求,用户设备确定当前网络中存在网页篡改中间人攻击。
[0057] 例如,用户持有用户设备,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息HTTP/1.1 301 Permanently Moved,且浏览器中的网址跳转至http://yyy.CBB.com。基于上述用户设备判断当前网络存在中间人攻击的情况,此时用户设备确定当前网络中存在网页篡改中间人攻击。
[0058] 在一些实施例中,所述步骤S19包括:若所述响应信息包括所述http访问请求对应的重定向信息,且所述重定向信息对应的网址为非目标网站的HTTPS类型,用户设备确定所述用户设备的当前网络中存在网页篡改中间人攻击。例如,用户设备向仅支持https的目标网站发送http访问请求,用户设备基于http请求接收到目标网站的网站服务器发送的响应信息,其中,所述响应信息包括所述非目标网站的https跳转链接信息,即将该http访问请求重新定个方向转到非目标网站的https访问请求,用户设备确定当前网络中存在网页篡改中间人攻击。在另一些实施例中,若所述响应信息包括所述目标网站的https跳转链接信息,用户设备确定当前网络未存在中间人攻击。
[0059] 例如,用户持有用户设备,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息HTTP/1.1 301 Permanently Moved,且浏览器中的网址跳转至https://xxy.CBB.com。基于上述用户设备判断当前网络存在中间人攻击的情况,此时用户设备确定当前网络中存在网页篡改中间人攻击。
[0060] 又如,用户持有用户设备,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息HTTP/1.1 301 Permanently Moved,且浏览器中的网址跳转至https://xxx.BBB.com。用户设备确定当前网络安全状况良好,未存在中间人攻击。
[0061] 在一些实施例中,所述步骤S19包括:若所述响应信息未包括所述http访问请求对应的重定向信息与请求完成信息,用户设备确定所述用户设备的当前网络中存在网页篡改中间人攻击。例如,用户设备向仅支持https的目标网站发送http访问请求,用户设备基于http请求接收到目标网站的网站服务器发送的响应信息,响应信息包括提示文件目录未找到,此时用户设备确定当前网络中存在网页篡改中间人攻击。
[0062] 例如,在http协议中,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息404网站页面消失。基于上述用户设备判断当前网络存在中间人攻击的情况,此时用户设备确定当前网络中存在网页篡改中间人攻击。
[0063] 在一些实施例中,所述方法还包括步骤S20(未示出),在步骤S20中,用户设备根据所述用户设备的当前网络的安全检测结果、所述TCP握手成功计数以及所述页面访问响应计数确定所述用户设备的当前网络的安全评测信息。例如,用户设备确定当前网络的安全检测结果,比如,存在网页篡改中间人攻击、存在SSLStrip中间人攻击、存在SSLSniff中间人攻击和网络中未存在中间人攻击等。用户设备根据所述用户设备的当前网络的安全检测结果、所述TCP握手成功计数以及所述页面访问响应计数确定所述用户设备的当前网络的安全评测信息。
[0064] 例如,用户持有用户设备,用户设备获取当前网络的安全检测结果、所述TCP握手成功计数以及所述页面访问响应计数。例如,用户设备利用对数关系对当前网络安全进行评测,例如计算公式可以为100-{[60*b1+20*b2]*[log1010*(n1+1)-1]+50*[log1010*(n2+1)-1]}*f(n3),其中n1,n2,n3分别为在http协议中TCP握手成功计数,在https协议中TCP握手成功计数,页面访问响应计数的值,b1和b2为判定为SSLStrip或网页篡改的逻辑值(即为0或1),f为函数,当n3大于页面访问响应阈值时输出0,否则输出1。
[0065] 图3示出根据本申请的一个方面的一种用于检测中间人攻击的用户设备,其中,该方法包括发送模块11、根据模块12和确定模块13。发送模块11,用于向多个随机IP地址发送对应的多个TCP握手请求;根据模块12,用于根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数;确定模块13,用于若所述TCP握手成功计数小于或等于TCP握手成功阈值,确定所述用户设备的当前网络中未存在中间人攻击。
[0066] 具体地,发送模块11,用于向多个随机IP地址发送对应的多个TCP握手请求。例如,用户设备随机选取多个IP地址,该多个IP地址包含可以到达的IP地址和不可到达的IP地址,用户设备对该多个IP地址同时发送TCP握手请求。
[0067] 根据模块12,用于根据所述多个TCP握手请求是否在预设时间内成功,确定所述多个TCP握手请求对应的TCP握手成功计数。例如,所述预设时间为极短时间,例如2S,用户设备发送多个TCP握手请求至多个随机IP地址,在较短时间内等待多个TCP握手请求的响应。若用户设备收到对应IP地址的相应的TCP握手请求回复,则确认该TCP握手请求成功,收到一次TCP握手成功的回复进行一次计数。
[0068] 确定模块13,用于若所述TCP握手成功计数小于或等于TCP握手成功阈值,确定所述用户设备的当前网络中未存在中间人攻击。例如,在用户设备对多个IP地址发起多个TCP握手请求结束后,对TCP握手成功次数进行计数,并与预设的TCP握手成功阈值进行比较,若所述TCP握手成功计数小于或等于TCP握手成功阈值,用户设备确定所述用户设备的当前网络中未存在中间人攻击。
[0069] 例如,用户持有用户设备,用户设备对随机产生的十个IP地址同时发送TCP握手请求并设定2S的等待响应时间,其中,十个IP地址分别为IP1(4.4.4.4)、IP2(4.4.4.1)、IP3(255.1.1.1)、IP4(3.3.3.3)…IP10(4.3.3.3),其中,IP地址存在可以访问和不可访问的情况。对于可访问的IP地址,用户设备向服务器的端口发起TCP握手请求,该数据包中TCP包头有两个标志位ACK和SYN,和两个4字节的序列号和确认号其中,ACK=0表示确认号无效,SYN=1表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq=x表示用户设备自己的初始序号(此时的x是随机数),这时候用户设备进入syn_sent状态,表示在等待服务器的回复,随后服务器同意连接请求后进入syn_rcvd状态,表示服务器已经收到用户设备的连接请求,等待用户设备的确认,随后用户设备收到确认后再次发送确认,表明TCP握手请求成功;对于不可访问的IP地址,当用户设备发起TCP握手请求时,由于这些IP地址未分配到对应的主机,该IP数据包会在网络上进行传输但因其找不到对应主机,最终当这个数据包经过足够多的路由器或交换机后,其ttl值减为0,数据包被丢弃,用户设备对这些IP地址发起TCP握手请求,由于该IP地址的数据包被丢弃,用户设备收不到相应的TCP握手请求的回复,超过2S的时长即认定为超时,此时用户设备确定TCP握手失败。用户设备根据IP地址存在的这两种情况确定这随机产生的十个IP地址中对IP1和IP2的TCP握手请求成功,其计数小于用户设备预先设定的TCP握手成功阈值数5,其中,用户设备TCP握手成功阈值主要依据对当前系统的敏感度的考虑,当TCP握手成功数的值非常高时,这时的网络状况应是比较良好,并且流量已经被劫持,当TCP握手成功数值非常低时,这时可以认为是随机到了一个开放的IP端口上,或是已经被劫持,但是网络状况非常差,丢包非常高,这个时候正常的网站访问都会受到很大的影响,因此中间人攻击很难成功,若TCP握手成功阈值设置的较低,则漏报率会降低,绝大部分可能存在中间人攻击的情况都能区分出,但是误报率会升高一些,例如可能的确有少数几个IP随机到了开放端口的IP上,若TCP握手成功阈值设置的较高,则漏报率会升高,可能存在少部分网络不佳的攻击不会被区分出,但是此时相应的误报率会降低,此时区分出的攻击情况更小的几率是IP随机到开放端口的IP上,确定的TCP握手成功阈值即是在误报率和漏报率中间的一个折中的一个方案。在对这十个随机IP发起的TCP握手请求中,TCP握手请求成功数小于TCP握手成功阈值,用户设备确定当前网络中未存在中间人攻击。
[0070] 当然,本领域技术人员应能理解上述用户设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0071] 在一些实施例中,其中,所述TCP握手请求包括关于HTTPS端口的TCP握手请求;所述方法还包括第一确定模块(未示出),第一确定模块,用于若所述TCP握手成功计数大于所述TCP握手成功阈值,确定所述用户设备的当前网络中存在SSLSniff中间人攻击。例如,在https(Hyper Text Transfer Protocol over Secure Socket Layer)协议中,用户设备在较短时间内对随机选取的多个IP地址发送多个TCP握手请求后,若所述TCP握手成功计数大于所述TCP握手成功阈值,用户设备确认当前网络中传输的https协议流量受到中间人攻击,确定所述用户设备的当前网络中存在SSLSniff(Secure Sockets Layer Sniff,安全套接层嗅探)中间人攻击。
[0072] 例如,在https协议中,用户持有用户设备,用户设备对随机产生的十个IP地址的443端口同时发送TCP握手请求并设定2S的等待响应时间,其中,十个IP地址分别为IP1(4.4.4.4)、IP2(4.4.4.1)、IP3(255.1.1.1)、IP4(3.3.3.3)…IP10(4.3.3.3),其中,IP地址存在可以访问和不可访问的情况。对于可访问的IP地址,用户设备向服务器的端口发起TCP握手请求,该数据包中TCP包头有两个标志位ACK和SYN,和两个4字节的序列号和确认号其中,ACK=0表示确认号无效,SYN=1表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq=x表示用户设备自己的初始序号(此时的x是随机数),这时候用户设备进入syn_sent状态,表示在等待服务器的回复,随后服务器同意连接请求后进入syn_rcvd状态,表示服务器已经收到用户设备的连接请求,等待用户设备的确认,随后用户设备收到确认后再次发送确认,表明TCP握手请求成功;对于不可访问的IP地址,当用户设备发起TCP握手请求时,由于这些IP地址未分配到对应的主机,该IP数据包会在网络上进行传输但因其找不到对应主机,最终当这个数据包经过足够多的路由器或交换机后,其ttl值减为0,数据包被丢弃,用户设备对这些IP地址发起TCP握手请求,由于该IP地址的数据包被丢弃,用户设备收不到相应的TCP握手请求的回复,超过2S的时长即认定为超时,此时用户设备确定TCP握手失败。用户设备根据IP地址存在的这两种情况确定这随机产生的十个IP地址中对IP1和IP2的TCP握手请求未成功,TCP握手请求成功的计数大于用户设备预先设定的TCP握手成功阈值数5,表明https的网络流量已经被劫持到攻击者的服务器。由于https协议中需要CA颁发的证书,此时用户设备正在访问或将要访问的网站中,极有可能会有部分网站的证书被攻击者替换为攻击者自己的证书,用户设备确认当前证书遭到攻击,当前网络中存在SSLSniff中间人攻击。
[0073] 当然,本领域技术人员应能理解上述较短时间仅为举例,其他现有的或今后可能出现的较短时间如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0074] 在一些实施例中,所述TCP握手请求包括关于HTTP端口的TCP握手请求;所述方法包括页面检测模块(未示出),页面检测模块,用于若所述TCP握手成功计数大于所述TCP握手成功阈值,从所述多个TCP握手成功次数对应的多个握手成功IP地址中选取部分IP地址,并向所述部分IP地址发送对应的多个页面访问请求,并根据所述多个页面访问请求是否在预设时间内响应,确定所述多个页面访问请求对应的页面访问响应计数;若所述页面访问响应计数大于页面访问响应阈值,页面检测模块,用于确定所述用户设备的当前网络中未存在中间人攻击。例如,在http协议中,用户设备在较短时间内对随机选取的多个IP地址同时发送多个TCP握手请求后,若所述TCP握手成功计数大于所述TCP握手成功阈值,用户设备从所述多个TCP握手成功次数对应的多个握手成功IP地址中选取部分IP地址,用户设备在较短时间内继续对部分IP地址同时发送多个页面访问请求,并根据多个页面访问请求在较短时间内的响应数用来确定所述用户设备的当前网络中是否存在中间人攻击。若多个页面访问请求在较短时间内的响应数大于用户设备预设的页面访问响应阈值,用户设备确定当前网络需要进行portal认证的信息,并确定当前网络中未存在中间人攻击。
[0075] 例如,在http协议中,用户持有用户设备,用户设备对随机产生的十个IP地址的443端口同时发送TCP握手请求并设定2S的等待响应时间,其中,十个IP地址分别为IP1(4.4.4.4)、IP2(4.4.4.1)、IP3(255.1.1.1)、IP4(3.3.3.3)…IP10(4.3.3.3),其中,IP地址存在可以访问和不可访问的情况。对于可访问的IP地址,用户设备向服务器的端口发起TCP握手请求,该数据包中TCP包头有两个标志位ACK和SYN,和两个4字节的序列号和确认号其中,ACK=0表示确认号无效,SYN=1表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq=x表示用户设备自己的初始序号(此时的x是随机数),这时候用户设备进入syn_sent状态,表示在等待服务器的回复,随后服务器同意连接请求后进入syn_rcvd状态,表示服务器已经收到用户设备的连接请求,等待用户设备的确认,随后用户设备收到确认后再次发送确认,表明TCP握手请求成功;对于不可访问的IP地址,当用户设备发起TCP握手请求时,由于这些IP地址未分配到对应的主机,该IP数据包会在网络上进行传输但因其找不到对应主机,最终当这个数据包经过足够多的路由器或交换机后,其ttl值减为0,数据包被丢弃,用户设备对这些IP地址发起TCP握手请求,由于该IP地址的数据包被丢弃,用户设备收不到相应的TCP握手请求的回复,超过2S的时长即认定为超时,此时用户设备确定TCP握手失败。用户设备根据IP地址存在的这两种情况确定这随机产生的十个IP地址中对IP1和IP2的TCP握手请求未成功,TCP握手请求成功的计数大于用户设备预先设定的TCP握手成功阈值数5,随后,用户设备随机选取TCP握手成功的IP地址,选取到IP3至IP10中的IP3、IP4、IP5和IP6,并同时向IP3、IP4、IP5和IP6发送对应的页面访问请求,例如,在浏览器中键入IP地址向服务器请求数据,此时服务器响应IP3、IP4和IP5的页面访问请求,该页面访问响应大于用户设备预设的页面访问响应阈值2,并且用户设备接收到的响应页面信息为portal认证的信息,例如,页面信息呈现一个需要输入手机号与手机短信验证码进行认证的网页页面。此时用户设备确定当前网络中未存在中间人攻击。
[0076] 在一些实施例中,所述方法还包括第二确定模块(未示出)、第一发送模块(未示出)、接收模块(未示出)和检测模块(未示出)。第二确定模块,用于若所述页面访问响应计数小于或等于页面访问响应阈值,确定所述用户设备的当前网络中存在中间人攻击;第一发送模块,用于向仅支持https协议的目标网站发送http访问请求;接收模块,用于接收所述目标网站的响应信息;检测模块,用于根据所述响应信息,检测所述用户设备的当前网络中是否存在ssl中间人攻击。例如,在http协议中,用户设备在较短时间内对随机选取的多个IP地址同时发送多个TCP握手请求后,若所述TCP握手成功计数大于所述TCP握手成功阈值,用户设备从所述多个TCP握手成功次数对应的多个握手成功IP地址中选取部分IP地址,用户设备在较短时间内继续对部分IP地址同时发送多个页面访问请求,并根据多个页面访问请求在较短时间内的响应数用来确定所述用户设备的当前网络中是否存在中间人攻击。若多个页面访问请求在较短时间内的响应数小于或等于用户设备预设的页面访问响应阈值,用户设备确定当前网络中存在中间人攻击,进一步地,用户设备向仅支持https协议的目标网站发送http访问请求,其中,所述https协议是一种网络安全传输协议。例如,在计算机网络中,若目标网站支持https协议,则经由超文本传输协议(http)进行通信,并利用SSL(安全套接层)来加密数据包。用户设备接收所述目标网站的响应信息,其中,所述响应信息包括响应代码为200、响应代码为301或302和其他表示找不到网站的信息。其中,响应代码为200表示请求成功完成,资源发送至用户设备的信息、响应代码为301或302表示网页被转移到另一个URL上的信息。用户设备向所述目标网站的网站服务器发送以http开头的网站地址的访问请求,用户设备接收网站服务器发送的响应信息,根据响应信息的不同,分别确定每种状态对应的受到ssl中间人攻击的风险。
[0077] 例如,在http协议中,用户持有用户设备,用户设备对随机产生的十个IP地址的443端口同时发送TCP握手请求并设定2S的等待响应时间,其中,十个IP地址分别为IP1(4.4.4.4)、IP2(4.4.4.1)、IP3(255.1.1.1)、IP4(3.3.3.3)…IP10(4.3.3.3),其中,IP地址存在可以访问和不可访问的情况。对于可访问的IP地址,用户设备向服务器的端口发起TCP握手请求,该数据包中TCP包头有两个标志位ACK和SYN,和两个4字节的序列号和确认号其中,ACK=0表示确认号无效,SYN=1表示这是一个连接请求或连接接受报文,同时表示这个数据报不能携带数据,seq=x表示用户设备自己的初始序号(此时的x是随机数),这时候用户设备进入syn_sent状态,表示在等待服务器的回复,随后服务器同意连接请求后进入syn_rcvd状态,表示服务器已经收到用户设备的连接请求,等待用户设备的确认,随后用户设备收到确认后再次发送确认,表明TCP握手请求成功;对于不可访问的IP地址,当用户设备发起TCP握手请求时,由于这些IP地址未分配到对应的主机,该IP数据包会在网络上进行传输但因其找不到对应主机,最终当这个数据包经过足够多的路由器或交换机后,其ttl值减为0,数据包被丢弃,用户设备对这些IP地址发起TCP握手请求,由于该IP地址的数据包被丢弃,用户设备收不到相应的TCP握手请求的回复,超过2S的时长即认定为超时,此时用户设备确定TCP握手失败。用户设备根据IP地址存在的这两种情况确定这随机产生的十个IP地址中对IP1和IP2的TCP握手请求未成功,TCP握手请求成功的计数大于用户设备预先设定的TCP握手成功阈值数5,随后,用户设备选取IP3至IP10中的IP3、IP4、IP5和IP6,并同时向IP3、IP4、IP5和IP6发送对应的页面访问请求,例如,在浏览器中键入IP地址向服务器请求数据,此时服务器响应IP3的页面访问请求,该页面访问响应小于用户设备预设的页面访问响应阈值2,用户设备随后通过浏览器向仅支持https协议的目标网站发送http页面访问请求,比如用户设备向目标网站A发起http页面访问请求,用户在浏览器中输入http://www.AAA.com,随后用户设备收到目标网站A的网站服务器发来的响应信息HTTP/1.1 
200OK,用户设备确认该响应信息表明访问请求成功完成,资源发送至用户设备,由于该网站使用的是https协议,在以http开头的访问请求顺利进行,此时用户设备检测到当前网络中存在ssl中间人攻击。
[0078] 在一些实施例中,检测模块,用于若所述响应信息包括所述http访问请求对应的请求完成信息,确定所述用户设备的当前网络中存在SSLStrip中间人攻击。例如,用户设备选取仅支持https协议的网站,并对该网站发起http的页面访问请求,服务器确认该http访问请求顺利完成,用户设备可依次检测当前网络中存在SSLStrip((Secure Sockets Layer Strip,证书剥离攻击)中间人攻击。
[0079] 例如,用户设备向目标网站A发起http页面访问请求,用户在浏览器中输入http://www.AAA.com,随后用户设备收到目标网站A的网站服务器发来的响应信息HTTP/1.1 200OK,用户设备确认该响应信息表明访问请求成功完成,资源发送至用户设备,由于该网站使用的是https协议,在以http开头的访问请求顺利进行,此时用户设备检测到当前网络中存在SSLStrip中间人攻击。
[0080] 在一些实施例中,检测模块,用于若所述响应信息包括所述http访问请求对应的重定向信息,且所述重定向信息对应的网址为HTTP类型,且该网址仍然是所请求网站对应的网址或其子域名下的网址,确定所述用户设备的当前网络中存在SSLStrip中间人攻击。例如,用户设备向仅支持https的目标网站发送http访问请求,用户设备基于http请求接收到目标网站的网站服务器发送的响应信息,其中,所述响应信息包括对应目标网站或者对应目标网站同一子域名网站的http跳转链接信息,即将该http访问请求重新定个方向转到对应目标网站或者对应目标网站同一子域名网站的http访问请求,用户设备确定当前网络中存在SSLStrip中间人攻击。
[0081] 例如,用户持有用户设备,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息HTTP/1.1 301Permanently Moved,且浏览器中的网址跳转至http://yyy.BBB.com。基于上述用户设备判断当前网络存在中间人攻击的情况,此时用户设备确定当前网络中存在SSLStrip中间人攻击。
[0082] 在一些实施例中,检测模块,用于若所述响应信息包括所述http访问请求对应的重定向信息,所述重定向信息对应的网址为HTTP类型,且该网址不是所请求网站对应的网址或其子域名下的网址,确定所述用户设备的当前网络中存在网页篡改中间人攻击。例如,用户设备向仅支持https的目标网站发送http访问请求,用户设备基于http请求接收到目标网站的网站服务器发送的响应信息,其中,所述响应信息包括对应目标网站或者对应目标网站同一子域名网站的http跳转链接信息,即将该http访问请求重新定个方向转到非对应目标网站或者非对应目标网站同一子域名网站的http访问请求,用户设备确定当前网络中存在网页篡改中间人攻击。
[0083] 例如,用户持有用户设备,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息HTTP/1.1 301Permanently Moved,且浏览器中的网址跳转至http://yyy.CBB.com。基于上述用户设备判断当前网络存在中间人攻击的情况,此时用户设备确定当前网络中存在网页篡改中间人攻击。
[0084] 在一些实施例中,检测模块,用于若所述响应信息包括所述http访问请求对应的重定向信息,且所述重定向信息对应的网址为非目标网站的HTTPS类型,用户设备确定所述用户设备的当前网络中存在网页篡改中间人攻击。例如,用户设备向仅支持https的目标网站发送http访问请求,用户设备基于http请求接收到目标网站的网站服务器发送的响应信息,其中,所述响应信息包括所述非目标网站的https跳转链接信息,即将该http访问请求重新定个方向转到非目标网站的https访问请求,用户设备确定当前网络中存在网页篡改中间人攻击。在另一些实施例中,若所述响应信息包括所述目标网站的https跳转链接信息,用户设备确定当前网络未存在中间人攻击。
[0085] 例如,用户持有用户设备,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息HTTP/1.1 301Permanently Moved,且浏览器中的网址跳转至https://xxy.CBB.com。基于上述用户设备判断当前网络存在中间人攻击的情况,此时用户设备确定当前网络中存在网页篡改中间人攻击。又如,用户持有用户设备,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息HTTP/1.1 301 Permanently Moved,且浏览器中的网址跳转至https://xxx.BBB.com。用户设备确定当前网络安全状况良好,未存在中间人攻击。
[0086] 在一些实施例中,检测模块,用于若所述响应信息未包括所述http访问请求对应的重定向信息与请求完成信息,确定所述用户设备的当前网络中存在网页篡改中间人攻击。例如,用户设备向仅支持https的目标网站发送http访问请求,用户设备基于http请求接收到目标网站的网站服务器发送的响应信息,响应信息包括提示文件目录未找到,此时用户设备确定当前网络中存在网页篡改中间人攻击。
[0087] 例如,在http协议中,用户通过用户设备在浏览器中输入http://xxx.BBB.com,随后用户设备收到目标网站B的网站服务器发来的响应信息404网站页面消失。基于上述用户设备判断当前网络存在中间人攻击的情况,此时用户设备确定当前网络中存在网页篡改中间人攻击。
[0088] 在一些实施例中,所述设备还包括安全评测模块(未示出),安全评测模块,用于根据所述用户设备的当前网络的安全检测结果、所述TCP握手成功计数以及所述页面访问响应计数确定所述用户设备的当前网络的安全评测信息。例如,用户设备确定当前网络的安全检测结果,比如,存在网页篡改中间人攻击、存在SSLStrip中间人攻击、存在SSLSniff中间人攻击和网络中未存在中间人攻击等。用户设备根据所述用户设备的当前网络的安全检测结果、所述TCP握手成功计数以及所述页面访问响应计数确定所述用户设备的当前网络的安全评测信息。
[0089] 例如,用户持有用户设备,用户设备获取当前网络的安全检测结果、所述TCP握手成功计数以及所述页面访问响应计数。例如,用户设备利用对数关系对当前网络安全进行评测,例如计算公式可以为100-{[60*b1+20*b2]*[log1010*(n1+1)-1]+50*[log1010*(n2+1)-1]}*f(n3),其中n1,n2,n3分别为在http协议中TCP握手成功计数,在https协议中TCP握手成功计数,页面访问响应计数的值,b1和b2为判定为SSLStrip或网页篡改的逻辑值(即为0或1),f为函数,当n3大于页面访问响应阈值时输出0,否则输出1。
[0090] 图4示出了可被用于实施本申请中所述的各个实施例的示例性系统;
[0091] 如图4所示在一些实施例中,系统300能够作为各所述实施例中的任意一个用于检测中间人攻击的用户设备。在一些实施例中,系统300可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备320)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器305)。
[0092] 对于一个实施例,系统控制模块310可包括任意适当的接口控制器,以向(一个或多个)处理器305中的至少一个和/或与系统控制模块310通信的任意适当的设备或组件提供任意适当的接口。
[0093] 系统控制模块310可包括存储器控制器模块330,以向系统存储器315提供接口。存储器控制器模块330可以是硬件模块、软件模块和/或固件模块。
[0094] 系统存储器315可被用于例如为系统300加载和存储数据和/或指令。对于一个实施例,系统存储器315可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器315可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
[0095] 对于一个实施例,系统控制模块310可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备320及(一个或多个)通信接口325提供接口。
[0096] 例如,NVM/存储设备320可被用于存储数据和/或指令。NVM/存储设备320可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
[0097] NVM/存储设备320可包括在物理上作为系统300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备320可通过网络经由(一个或多个)通信接口325进行访问。
[0098] (一个或多个)通信接口325可为系统300提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
[0099] 对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器(例如,存储器控制器模块330)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
[0100] 在各个实施例中,系统300可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、持有计算设备、平板电脑、上网本等)。在各个实施例中,系统300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统300包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
[0101] 本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
[0102] 本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
[0103] 本申请还提供了一种计算机设备,所述计算机设备包括:
[0104] 一个或多个处理器;
[0105] 存储器,用于存储一个或多个计算机程序;
[0106] 当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
[0107] 需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0108] 另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
[0109] 通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
[0110] 作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
[0111] 在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
[0112] 对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。