流量拷贝方法、装置、介质及设备与流程

文档序号:24397364发布日期:2021-03-26 22:17阅读:153来源:国知局
流量拷贝方法、装置、介质及设备与流程

1.本文涉及测试领域,尤其涉及流量拷贝方法、装置及介质。


背景技术:

2.相关技术中,tcpcopy技术可以将http流量从一台线上服务器机器上拷贝到测试服务器,在测试服务器上安装待测试的软件,在不影响用户的情况下,使用和线上真实情况一致的http流量对软件进行测试。但cdn服务器上的请求基本上是https流量和http流量,但tcpcopy只能拷贝http流量,不能拷贝https流量。随着https流量占比越来越多,现有的tcpcopy技术能拷贝的流量越来越少,因此并不能达到真实模拟线上情况的目的。


技术实现要素:

3.为克服相关技术中存在的问题,本文提供一种流量拷贝方法、装置、介质及设备。
4.根据本文的第一方面,提供一种流量拷贝方法,应用于线上服务器,包括:
5.接收客户端请求;
6.将所述客户端请求拷贝到线下服务器;
7.发送用于解密所述客户端请求的线上服务器信息至线下服务器,以使所述线下服务器解密所述客户端请求;或者,接收线下服务器发送的线下服务器随机数,并基于所述线下服务器随机数生成第二秘钥;其中,所述客户端请求包括https请求。
8.所述线上服务器信息包括线上服务器随机数或者与客户端握手后生成的第一秘钥,所述发送用于解密所述客户端请求的线上服务器信息至线下服务器包括:
9.发送与客户端握手过程中生成的线上服务器随机数至所述线下服务器;
10.或者,发送与客户端握手后生成的第一秘钥至线下服务器。
11.所述基于所述线下服务器随机数生成第二秘钥包括:使用所述线下服务器的随机数取代线上服务器的随机数,并基于所述线下服务器的随机数和客户端随机数,生成所述第二秘钥。
12.一种流量拷贝方法,应用于线下服务器,包括:
13.接收线上服务器拷贝的客户端请求,所述客户端请求包括https请求;
14.发送线下服务器随机数至线上服务器,并基于线下服务器随机数和客户端随机数,生成第三秘钥。或者,接收线上服务器发送的线上服务器信息;
15.当所述客户端请求为https请求时,使用所述第三秘钥解密所述https请求;或者基于所述线上服务器信息,解密所述https请求。
16.所述线上服务器信息为线上服务器随机数或者线上服务器与客户端握手后生成的第一秘钥,所述基于线上服务器信息,解密所述https请求包括:
17.当所述线上服务器信息为线上服务器随机数时,基于所述线上服务器随机数生成第四秘钥,并使用所述第四密钥解密所述https请求;
18.当所述线上服务器信息为第一密钥时,使用所述第一密钥解密所述https请求。
19.所述基于所述线上服务器随机数生成第四秘钥包括:
20.使用所述线上服务器的随机数取代线下服务器的随机数,并基于所述线上服务器的随机数和客户端随机数,生成所述第四秘钥。
21.根据本文的另一方面,提供一种流量拷贝装置,包括:
22.请求接收模块,用于接收客户端请求;
23.流量拷贝模块,用于将所述客户端请求拷贝到线下服务器;
24.第一信息交换模块,用于发送用于解密所述客户端请求的线上服务器信息至线下服务器,以使所述线下服务器解密所述客户端请求;或者,接收线下服务器发送的线下服务器随机数,并基于所述线下服务器随机数生成第二秘钥;其中,所述客户端请求包括https请求。
25.所述线上服务器信息为线上服务器随机数或者与客户端握手后生成的第一秘钥,所述发送线上服务器信息至线下服务器包括:
26.发送与客户端握手过程中生成的线上服务器随机数至所述线下服务器;
27.或者,发送与客户端握手后生成的第一秘钥至线下服务器。
28.所述基于所述线下服务器随机数生成第二秘钥包括:使用所述线下服务器的随机数取代线上服务器的随机数,并基于所述线下服务器的随机数和客户端随机数,生成所述第二秘钥。
29.一种流量拷贝装置,包括:
30.流量接收模块,用于接收线上服务器拷贝的客户端请求,所述客户端请求包括https请求;
31.第二信息交换模块,用于发送线下服务器随机数至线上服务器,并基于线下服务器随机数和客户端随机数,生成第三秘钥。或者,接收线上服务器发送的线上服务器信息;
32.流量处理模块,用于当所述客户端请求为https请求时,使用所述第三秘钥解密所述https请求;或者,基于所述线上服务器信息,解密所述https请求。
33.所述线上服务器信息为线上服务器随机数或者线上服务器与客户端握手后生成的第一秘钥;所述流量处理模块基于线上服务器信息,解密所述https请求包括:
34.当所述线上服务器信息为线上服务器随机数时,基于所述线上服务器随机数生成第四秘钥,并使用所述第四密钥解密所述https请求;
35.当所述线上服务器信息为第一密钥时,使用所述第一密钥解密所述https请求。
36.所述基于所述线上服务器随机数生成第四秘钥包括:
37.使用所述线上服务器的随机数取代线下服务器的随机数,并基于所述线上服务器的随机数和客户端随机数,生成所述第四秘钥。
38.根据本文的另一方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现流量拷贝方法的步骤。
39.根据本文的另一方面,提供一种计算机设备,包括处理器、存储器和存储于存储器上的计算机程序,处理器执行所述计算机程序时实现流量拷贝方法的步骤。
40.本文通过流量拷贝方法,可以将包含https请求的流量拷贝到测试服务器,使用与线上真实情况一致的流量对测试服务器上的软件进行测试。
41.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不
能限制本文。
附图说明
42.构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
43.图1是根据一示例性实施例示出的一种流量拷贝方法的流程图。
44.图2是根据一示例性实施例示出的一种流量拷贝方法的流程图。
45.图3是根据一示例性实施例示出的一种流量拷贝装置的框图。
46.图4是根据一示例性实施例示出的一种流量拷贝装置的框图。
47.图5是根据一示例性实施例示出的一种计算机设备的框图。
具体实施方式
48.为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
49.在对服务器上的软件进行测试的时候,一般使用tcpcopy将线上服务器的真实流量拷贝到测试服务器,模拟真实流量对软件进行充分的测试,但由于现实中客户端请求包括http请求和https请求,由于http请求为无状态请求,所以tcpcopy可以顺利将http请求的流量拷贝到测试服务器,然而对于https请求,由于使用了加密技术,并不能简单地将https请求的流量拷贝到测试服务器。
50.本文提供一种流量拷贝方法,图1为流量拷贝方法应用于线上服务器的流程图,参考图1,流量拷贝方法应用于线上服务器,包括:
51.步骤s11,接收客户端请求;
52.步骤s12,将客户端请求拷贝到线下服务器;
53.步骤s13,发送用于解密所述客户端请求的线上服务器信息至线下服务器,以使所述线下服务器解密所述客户端请求;或者,接收线下服务器发送的线下服务器随机数,并基于所述线下服务器随机数生成第二秘钥;其中,所述客户端请求包括https请求。
54.客户端的请求可以为http请求,也可以是https请求,线上服务器接收客户端请求后,将客户端请求拷贝到线下服务器。对应http请求,由于http本身的特点,线下服务器可以对http请求直接作出响应。而对于https请求,使用了https协议,是由ssl+http协议构建,其数据传输是加密后的数据。而加密的方式是由客户端和服务器双方约定,用于加密的秘钥是基于客户端的随机数和线上服务器的随机数生成的,即使线下服务器使用与线上服务器相同的证书,相同的配置,由于服务器本身的随机数不同,基于线下服务器的随机数和客户端的随机数会生成不同于线上服务器的秘钥,因此无法解密线上服务器拷贝的流量数据。因此本文所述的方法中,为了使线上服务器和线下服务器能够解密相同的https请求,需要进行相关的设置和操作,使线上服务器和线下服务器使用相同的服务器随机数线,或者使用相同的秘钥,因此,线上服务器还需要发送用于解密客户端请求的线上服务器信息
至线下服务器,以使线下服务器能够解密客户端请求。或者接收线下服务器发送的线下服务器随机数,并基于所述线下服务器随机数生成第二秘钥。
55.线上服务器信息包括线上服务器随机数或者与客户端握手后生成的第一秘钥,发送用于解密客户端请求的线上服务器信息至线下服务器包括:
56.发送与客户端握手过程中生成的线上服务器随机数至线下服务器;
57.或者,发送与客户端握手后生成的第一秘钥至线下服务器。
58.为了使线下服务器能够解密客户端的加密请求,线上服务器可以在与客户端握手的过程中,将自身的服务器随机数发送给线下服务器,线下服务器可以基于线上服务器随机数和客户端随机数生成秘钥,解密客户端请求。
59.或者,线上服务器可以在与客户端握手后,将生成的第一秘钥发送给线下服务器,线下服务器可以使用第一秘钥,解密客户端请求。
60.同样,线上服务器也可以基于线下服务器随机数生成第二秘钥,包括:使用线下服务器的随机数取代线上服务器的随机数,并基于线下服务器的随机数和客户端随机数,生成第二秘钥。线下服务器基于自身的随机数与客户端随机数,也会生成与第二秘钥相同的秘钥,因此就可以解密客户端发往线上服务器的使用第二秘钥加密的https请求。
61.图2为流量拷贝方法应用于线下服务器的流程图,参考图2,流量拷贝方法包括:
62.步骤s21,接收线上服务器拷贝的客户端请求,客户端请求包括https请求;
63.步骤s22,发送线下服务器随机数至线上服务器,并基于线下服务器随机数和客户端随机数,生成第三秘钥。或者,接收线上服务器发送的线上服务器信息。
64.步骤s23,当客户端请求为https请求时,使用第三秘钥解密https请求;或者基于线上服务器信息,解密https请求。
65.线下服务器收到线上服务器拷贝的客户端请求后,发送自身的随机数给线上服务器,以使线上服务器基于线下服务器随机数和客户端随机数生成第二秘钥,同时在线下服务器,基于线下服务器随机数和客户端随机数生成第三秘钥,可见第二秘钥和第三秘钥是通过相同的随机数生成的,因此第二秘钥和第三秘钥完全相同,使得线下服务器能够解密线上服务器拷贝的https请求。
66.或者,线下服务器在接收线上服务器拷贝的客户端请求的同时,接收线上服务器发送的线上服务器信息,线下服务器就可以对线上服务器拷贝的客户端流量中的https请求进行解密。
67.线上服务器信息为线上服务器随机数或者线上服务器与客户端握手后生成的第一秘钥,基于线上服务器信息,解密所述https请求包括:
68.当线上服务器信息为线上服务器随机数时,基于线上服务器随机数生成第四秘钥,并使用第四密钥解密客户端https请求;
69.当线上服务器信息为第一密钥时,使用所述第一密钥解密客户端https请求。
70.基于线上服务器随机数生成第四秘钥包括:
71.使用线上服务器的随机数取代线下服务器的随机数,并基于线上服务器的随机数和客户端随机数,生成第四秘钥。
72.同样,第一秘钥和第四秘钥也是基于相同的随机数生成的,因此第一秘钥和第四秘钥完全相同,使得线下服务器能够解密线上服务器拷贝的https请求。
73.如果线上服务器发送的线上服务器信息为第一秘钥,流量服务器在接收到客户端的握手请求后,可以基于流量服务器的随机数响应客户端的请求,但在生成秘钥阶段,使用第一秘钥作为生成后的秘钥,或者替代生成后的秘钥,对客户端https流量进行解密。
74.通过上述方法,在对线上服务器的流量进行拷贝的过程中,不用再区分http流量和https流量,同时将线上服务器信息发送给测试服务器,使测试服务器可以顺利解密https流量,达到真实模拟线上流量的目的。
75.图3为流量拷贝装置的框图,参考图3,流量拷贝装置包括:请求接收模块301,流量拷贝模块302,第一信息交换模块303。
76.请求接收模块301被配置为用于接收客户端请求。
77.流量拷贝模块302被配置为用于将客户端请求拷贝到线下服务器。
78.第一信息交换模块303被配置为用于发送用于解密客户端请求的线上服务器信息至线下服务器,以使线下服务器解密所述客户端请求;或者,接收线下服务器发送的线下服务器随机数,并基于所述线下服务器随机数生成第二秘钥;其中,所述客户端请求包括https请求。
79.线上服务器信息为线上服务器随机数或者与客户端握手后生成的第一秘钥,第一信息交换模块发送线上服务器信息至线下服务器包括:
80.发送与客户端握手过程中生成的线上服务器随机数至所述线下服务器;
81.或者,发送与客户端握手后生成的第一秘钥至线下服务器。
82.基于线下服务器随机数生成第二秘钥包括:使用线下服务器的随机数取代线上服务器的随机数,并基于线下服务器的随机数和客户端随机数,生成所述第二秘钥。
83.图4为流量拷贝装置的框图,参考图4,流量拷贝装置包括:流量接收模块401,第二信息交换模块402,流量处理模块403。
84.流量接收模块401被配置为于接收线上服务器拷贝的客户端请求,客户端请求包括https请求。
85.第二信息交换模块402被配置为用于发送线下服务器随机数至线上服务器,并基于线下服务器随机数和客户端随机数,生成第三秘钥。或者,接收线上服务器发送的线上服务器信息;
86.流量处理模块403被配置为用于当客户端请求为https请求时,使用第三秘钥解密https请求;或者,基于线上服务器信息,解密所述https请求。
87.线上服务器信息为线上服务器随机数或者线上服务器与客户端握手后生成的第一秘钥;流量处理模块基于线上服务器信息,解密所述https请求包括:
88.当线上服务器信息为线上服务器随机数时,基于线上服务器随机数生成第四秘钥,并使用第四密钥解密所述https请求;
89.当线上服务器信息为第一密钥时,使用所述第一密钥解密所述https请求。
90.基于线上服务器随机数生成第四秘钥包括:
91.使用线上服务器的随机数取代线下服务器的随机数,并基于线上服务器的随机数和客户端随机数,生成所述第四秘钥。
92.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
93.图5是根据一示例性实施例示出的一种用于流量拷贝的计算机设备500的框图。例如,计算机设备500可以被提供为一服务器。参照图5,计算机设备500包括处理器501,处理器的个数可以根据需要设置为一个或者多个。计算机设备500还包括存储器502,用于存储可由处理器501的执行的指令,例如应用程序。存储器的个数可以根据需要设置一个或者多个。其存储的应用程序可以为一个或者多个。处理器501被配置为执行指令,以执行上述方法。
94.本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
95.本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
96.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能
97.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
98.在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
99.尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
100.显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和
范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1