掌桥专利:专业的专利平台
掌桥专利
首页

报文识别、报文传输方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:58:21


报文识别、报文传输方法、装置、设备及存储介质

技术领域

本申请实施例涉及互联网技术领域,特别涉及一种报文识别、报文传输方法、装置、设备及存储介质。

背景技术

随着互联网技术的发展,设备之间传输报文的场景越来越普遍。在一些场景下,第一设备向第二设备发送通信请求报文后,攻击设备可能会劫持该通信请求报文,然后向第一设备发送伪造的通信反馈报文,若第一设备执行与该伪造的通信反馈报文匹配的操作,则第一设备可能会被攻击(如,显示推销广告、丢失隐私数据、异常断开与第二设备的连接等)。因此,第一设备如何识别接收到的通信反馈报文是否为第二设备反馈的报文,是一种亟需解决的问题。

发明内容

本申请实施例提供了一种报文识别、报文传输方法、装置、设备及存储介质,可用于提高报文识别的准确性,进而提高第一设备的运行安全性。所述技术方案如下:

一方面,本申请实施例提供了一种报文识别方法,所述方法包括:

向第二设备发送通信请求报文,所述通信请求报文的报文数据包括密钥标识数据,所述密钥标识数据用于标识目标密钥,所述通信请求报文用于请求所述第二设备反馈包括目标参数的报文,所述目标参数利用目标加密算法对包括所述目标密钥的信息进行加密得到;

接收所述通信请求报文对应的通信反馈报文;

响应于所述通信反馈报文包括所述目标参数,确定所述通信反馈报文为所述第二设备反馈的报文。

还提供了一种报文传输方法,所述方法包括:

接收第一设备发送的通信请求报文,所述通信请求报文的报文数据包括密钥标识数据,所述密钥标识数据用于标识目标密钥;

对所述通信请求报文的报文数据进行解析,得到所述密钥标识数据;基于所述密钥标识数据,确定所述目标密钥;

获取包括所述目标密钥的信息,利用目标加密算法对所述包括所述目标密钥的信息进行加密,得到目标参数,向所述第一设备反馈包括所述目标参数的报文。

另一方面,提供了一种报文识别装置,所述装置包括:

发送单元,用于向第二设备发送通信请求报文,所述通信请求报文的报文数据包括密钥标识数据,所述密钥标识数据用于标识目标密钥,所述通信请求报文用于请求所述第二设备反馈包括目标参数的报文,所述目标参数利用目标加密算法对包括所述目标密钥的信息进行加密得到;

第一接收单元,用于接收所述通信请求报文对应的通信反馈报文;

第一确定单元,用于响应于所述通信反馈报文包括所述目标参数,确定所述通信反馈报文为所述第二设备反馈的报文。

在一种可能实现方式中,所述第一确定单元,还用于响应于所述通信反馈报文包括待验证参数,基于所述目标密钥确定验证信息,所述验证信息包括所述目标密钥;基于所述验证信息对所述待验证参数进行验证,响应于所述待验证参数验证通过,确定所述待验证参数为所述目标参数。

在一种可能实现方式中,所述第一确定单元,还用于获取所述通信反馈报文的报文数据和所述通信反馈报文的报文头部中记载的目标字段对应的信息中的至少一种,所述目标字段为构成所述报文头部所需的候选字段中满足选取条件的字段;基于所述通信反馈报文的报文数据和所述报文头部中记载的目标字段对应的信息中的至少一种,以及所述目标密钥,确定所述验证信息。

在一种可能实现方式中,所述发送单元,用于响应于所述第二设备具备反馈包括所述目标参数的报文的功能,向所述第二设备发送所述通信请求报文。

在一种可能实现方式中,所述目标密钥为应用层生成的密钥,所述第一确定单元,用于通过所述应用层将所述目标密钥传递给传输层;通过所述传输层响应于基于所述目标密钥确定所述通信反馈报文包括所述目标参数,确定所述通信反馈报文为所述第二设备反馈的报文。

在一种可能实现方式中,所述第一确定单元,还用于响应于所述通信反馈报文不包括所述目标参数,确定所述通信反馈报文不为所述第二设备反馈的报文,丢弃所述通信反馈报文。

在一种可能实现方式中,所述第一确定单元,还用于利用所述目标加密算法对应的解密算法对所述待验证参数进行解密,响应于解密得到的信息与所述验证信息相同,确定所述待验证参数验证通过。

在一种可能实现方式中,所述第一确定单元,还用于利用所述目标加密算法对所述验证信息进行加密,响应于加密得到的信息与所述待验证参数相同,确定所述待验证参数验证通过。

还提供了一种报文传输装置,所述装置包括:

第二接收单元,用于接收第一设备发送的通信请求报文,所述通信请求报文的报文数据包括密钥标识数据,所述密钥标识数据用于标识目标密钥;

解析单元,用于对所述通信请求报文的报文数据进行解析,得到所述密钥标识数据;

第二确定单元,用于基于所述密钥标识数据,确定所述目标密钥;

获取单元,用于获取包括所述目标密钥的信息,利用目标加密算法对所述包括所述目标密钥的信息进行加密,得到目标参数;

反馈单元,用于向所述第一设备反馈包括所述目标参数的报文。

另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述计算机设备实现上述任一所述的报文识别方法或报文传输方法。

另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使计算机实现上述任一所述的报文识别方法或报文传输方法。

另一方面,还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或所述计算机指令由处理器加载并执行,以使计算机实现上述任一所述的报文识别方法或报文传输方法。

本申请实施例提供的技术方案至少带来如下有益效果:

本申请实施例提供的技术方案,通过判断接收到的通信反馈报文是否包括目标参数,来判断接收到的通信反馈报文是否为第二设备反馈的报文,其中,目标参数通过对包括目标密钥的信息进行加密得到。由于通信请求报文的报文数据的数据量通常较大,所以攻击设备在劫持到通信请求报文后,通常不会对通信请求报文的报文数据进行解析,也就无法根据报文数据包括的密钥标识数据得到目标密钥,更无法伪造出包括目标参数的报文。因此,若接收到的通信反馈报文包括目标参数,则该通信反馈报文极大可能是第二设备反馈的报文,此种报文识别方法的识别准确性较高,有利于降低第一设备因执行与伪造的通信反馈报文匹配的操作而被攻击的可能性,进而避免第一设备的隐私被泄露,提高第一设备的运行安全性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种实施环境的示意图;

图2是本申请实施例提供的一种报文识别方法的流程图;

图3是本申请实施例提供的一种TCP报文的报文头部的结构示意图;

图4是本申请实施例提供的一种内容劫持的过程的示意图;

图5是本申请实施例提供的一种TCP RESET劫持的过程的示意图;

图6是本申请实施例提供的一种报文传输方法的流程图;

图7是本申请实施例提供的一种第一设备与第二设备之间的交互过程的示意图;

图8是本申请实施例提供的一种报文识别装置的示意图;

图9是本申请实施例提供的一种报文传输装置的示意图;

图10是本申请实施例提供的一种服务器的结构示意图;

图11是本申请实施例提供的一种终端的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

对本申请实施例中涉及的名词进行介绍:

内容分发网络(Content Delivery Network,CDN):构建在网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率,其中,CDN的关键技术主要有内容存储和分发技术。

传输控制协议(Transmission Control Protocol,TCP):一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP是面向连接的,也就是在进行数据传输之前,通信的双方需要先建立一个可信的连接。在数据传输结束后,再通过一种协定的方式断开连接,由通信的双方释放资源。TCP是可靠的,它定义了一种数据包的“超时重传机制”,也就是说,就是每一个数据包在发送出去后的都会等待一个响应。如果指定时间内没有收到响应,由发送方进行一定次数的重传来保证数据的可靠传输。TCP是基于字节流的,在传输数据时应用层不需要关注数据包的边界,TCP在数据传输时会自动根据网络环境将数据进行缓冲、分组、合并。

本申请实施例提供的报文识别方法以及报文传输方法可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。在一些实施例中,本申请实施例提供的报文识别方法以及报文传输方法可以应用于云技术领域。

云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

在示例性实施例中,本申请实施例提供的报文识别方法以及报文传输方法可以应用于云技术领域中的云安全领域。云安全是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常检测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。

云安全主要研究方向包括:1、云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2、安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3、云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。本申请实施例提供的报文识别方法以及报文传输方法可应用于云计算安全这一研究方向。

图1示出了本申请实施例提供的一种实施环境的示意图。该实施环境可以包括:第一设备11和第二设备12。

第一设备11和第二设备12之间建立有通信连接,也即第一设备11和第二设备12之间可以传输报文。在一些实施例中,第一设备11和第二设备12之间的通信连接基于传输协议建立,也即第一设备11和第二设备12之间采用传输协议传输报文。示例性地,传输协议可以包括但不限于:TCP、用户数据包协议(User Datagram Protocol,UDP)、互联网协议(Internet Protocol,IP)。示例性地,第一设备11和第二设备12之间的通信连接可以是指有线通信连接,也可以是指无线通信连接,本申请实施例对此不加以限定。

在一些实施例中,第一设备11向第二设备12发送的通信请求报文可能会被攻击设备(也可以称为恶意厂商或者黑客等)劫持,使得第一设备11接收的通信反馈报文不是第二设备12发送的报文,安全性较低。第一设备11能够根据本申请实施例提供的方报文识别法识别接收到的通信反馈报文是否为第二设备12反馈的报文,以提高识别的准确性,进而提高第一设备11的运行安全性,在第一设备11根据本申请实施例提供的方法识别接收到的通信反馈报文是否为第二设备12反馈的报文的情况下,第二设备12能够根据本申请实施例提供的报文传输方法向第一设备11反馈报文。

在示例性实施例中,第一设备11可以为终端,也可以为服务器;第二设备12可以为终端,也可以为服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能手表、车载终端、智能家电(如,智能音箱、智能电视)等,但并不局限于此。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。

在一些实施例中,第一设备11还可以称为客户端,第二设备12还可以称为服务端。

本领域技术人员应能理解上述第一设备11和第二设备12仅为举例,其他现有的或今后可能出现的第一设备或第二设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

基于上述图1所示的实施环境,本申请实施例提供一种报文识别方法,以该方法由第一设备11执行为例。如图2所示,本申请实施例提供的报文识别方法可以包括如下步骤201至步骤203。

在步骤201中,向第二设备发送通信请求报文,通信请求报文的报文数据包括密钥标识数据,密钥标识数据用于标识目标密钥,通信请求报文用于请求第二设备反馈包括目标参数的报文,目标参数利用目标加密算法对包括目标密钥的信息进行加密得到。

第一设备和第二设备之间建立有用于传输报文的通信连接,第一设备能够向第二设备发送通信请求报文。通信请求报文是指请求第二设备反馈报文的报文。示例性地,在第一设备向第二设备发送通信请求报文之前,第一设备需要先与第二设备建立通信连接。第一设备与第二设备建立通信连接的方式与第一设备和第二设备之间传输报文所采用的传输协议有关,本申请实施例对此不加以限定。

示例性地,以第一设备和第二设备之间传输报文所采用的传输协议为TCP为例,第一设备通过TCP三次握手过程与第二设备建立通信连接。第一次握手:第一设备向第二设备发送第一连接报文(SYN包),并进入发送状态(SYN_SENT状态),等待第二设备确认;第二次握手:第二设备收到第一连接报文(SYN包),通过确认响应,确认第一设备的第一连接报文,同时第二设备向第一设备发送第二连接报文,即SYN+ACK包,此时第二设备进入接收状态(SYN_RECV状态);第三次握手:第一设备收到第二设备的SYN+ACK包,向第二设备发送确认包ACK,此确认包ACK发送完毕,第一设备和第二设备进入连接(ESTABLISHED)状态,完成三次握手,连接建立后,第一设备和第一设备之间便可以开始进行报文传输。其中,SYN是指Synchronize(同步)的缩写,ACK是指Acknowledgement(确认)的缩写。

示例性地,第一设备和第二设备之间传输的报文均由报文数据和报文头部这两部分构成,其中,报文头部由候选字段对应的信息构成,候选字段根据经验设置,或者根据应用场景灵活调整,本申请实施例对此不加以限定。

示例性地,以第一设备和第二设备之间基于TCP建立通信连接为例,第一设备和第二设备之间传输的报文可以称为TCP报文,TCP报文是设备通过TCP层传输的数据单元,也可以称为报文段。TCP报文的报文头部的结构如图3所示。此种情况下,候选字段可以包括源端口号字段、目的端口号字段、序号字段、确认号字段、数据偏移字段、保留字段、控制位字段、窗口字段、校验和字段、紧急指针字段和选项字段。

源端口号字段对应的信息是源端口号,源端口号的作用是标识报文的返回地址。目的端口号字段对应的信息是目的端口号,目的端口号的作用是指明接收方设备上的应用程序接口。序号字段对应的信息是当前TCP报文的报文数据(也可以称为当前TCP报文发送的数据组)的第一个字节的序号,序号能够确保TCP传输的有序性。确认号字段用于指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号字段只有当ACK标志为1时才有效。数据偏移字段对应的信息是TCP报文的报文数据部分的起始处距离TCP报文的起始处的距离(也可以称为首部长度)。保留字段,为将来定义新的用途保留,一般置0。

控制位字段包括URG、ACK、PSH、RST、SYN以及FIN,共6个标志位,每一个标志位表示一个控制功能。其中,URG:紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。ACK:确认号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。PSH:push(推动)标志,为1表示是带有push标志的数据,指示接收方在接收到该TCP报文以后,应尽快将这个TCP报文交给应用程序,而不是在缓冲区排队。RST:重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接,或者用于拒绝非法的报文和拒绝连接请求。SYN:同步序号,用于建立连接过程。FIN:finish(结束)标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。窗口:滑动窗口大小,用来告知发送方接收方的缓存大小,以此控制发送方发送数据的速率,从而达到流量控制。

校验和字段用于进行奇偶校验,此校验和是对整个的TCP报文,包括TCP报文的报文数据和报文头部,以16位字段进行计算所得,该字段对应的信息由发送方计算和存储,并由接收方进行验证。紧急指针字段:只有当URG标志置1时紧急指针才有效,紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。选项字段:可以称为TCP options(选项),该选项字段为预留的可编辑字段,可以存储标准定义的结构体数据。

需要说明的是,以上所述候选字段仅为一种示例性举例,本申请实施例并不局限于此,在一些实施例中,候选字段还可以包括源IP地址字段、目的IP地址字段等。源IP地址字段用于记录报文的发送方的IP地址,目的IP地址字段用于记录报文的接收方的IP地址。

通信请求报文同样包括报文数据和报文头部这两个部分,其中,报文数据可以由第一设备通过应用层根据实际的应用场景获取得到,报文头部可以由第一设备通过传输层根据报文数据的实际情况对候选字段填充相应的信息得到。示例性地,第一设备在通过应用层获取报文数据后,会将报文数据传递给传输层,然后通过传输层为报文数据封装上报文头部,得到通信请求报文。

本申请实施例中,第一设备向第二设备发送的通信请求报文的报文数据包括密钥标识数据,其中,密钥标识数据用于标识目标密钥,此种通信请求报文用于请求第二设备反馈包括目标参数的报文。需要说明的是,本申请实施例提到的反馈的报文是指针对通信请求报文反馈的报文,针对通信请求报文反馈的报文的报文数据是通信请求报文指示的所需数据。

由于报文的报文数据的数据量通常较大,所以攻击设备在劫持报文后,通常不会对劫持到的报文的报文数据进行解析,基于此,即使第一设备向第二设备发送的通信请求报文被攻击设备劫持,攻击设备也无法获知到密钥标识数据,自然也无法破解出目标密钥。因此,将密钥标识数据携带在通信请求报文的报文数据中,能够降低攻击设备根据通信请求报文破解出目标密钥的可能性,目标密钥的安全性较高。

在一些实施例中,目标密钥为第一设备的应用层生成的密钥,密钥可以记为secret_key。示例性地,目标密钥可以为第一设备的应用层随机生成的密钥,也即目标密钥可以认为是一个随机数,此种随机生成的目标密钥能够更进一步地降低被攻击设备破解的可能性。在一些实施例中,报文识别的过程由第一设备通过传输层执行,因此,第一设备在通过应用层生成目标密钥后,会通过应用层将目标密钥传递给传输层。

示例性地,第一设备通过应用层利用跨层交互方式将目标密钥传递给传输层。跨层交互方式与第一设备和第二设备传输报文所采用的传输协议有关,以传输协议为TCP为例,则跨层交互方式可以是指利用TCP setsockopt(一种用于跨层交互的函数)实现的方式。

在获取目标密钥后,将用于标识目标密钥的数据称为密钥标识数据,本申请实施例对密钥标识数据的形式不加以限定,只要能够标识目标密钥即可。示例性地,密钥标识数据可能为目标密钥本身,也可能为对目标密钥进行加密后得到的数据。对于密钥标识数据为对目标密钥进行加密后得到的数据的情况,能够更进一步地降低攻击设备根据通信请求报文破解出目标密钥的可能性,提高目标密钥的安全性。

在示例性实施例中,密钥标识数据可以是指利用第一加密算法对目标密钥进行加密后得到的数据。第一加密算法根据经验设置,或者根据应用场景灵活调整。示例性地,第一加密算法为第一设备和第二设备预先约定的加密算法。示例性地,第一加密算法可以为HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer,超文本传输安全协议)下的加密算法。

需要说明的是,对于密钥标识数据为目标密钥本身的情况,通信请求报文的报文数据除包括密钥标识数据外,还可能包括原始请求数据。对于密钥标识数据为对目标密钥进行加密后得到的数据的情况,通信请求报文的报文数据除包括密钥标识数据外,还包括对原始请求数据进行加密后得到的加密请求数据。原始请求数据为第一设备通过应用层产生的请求数据,原始请求数据的内容与实际请求有关,本申请实施例对此不加以限定。

一些实施例中,对原始请求数据进行加密所利用的加密算法与对目标密钥进行加密所利用的加密算法相同,以提高第二设备根据通信请求报文的报文数据获取目标密钥以及原始请求数据的效率。当然,对原始请求数据进行加密所利用的加密算法与对目标密钥进行加密所利用的加密算法也可以不同,只要保证对原始请求数据进行加密所利用的加密算法与对目标密钥进行加密所利用的加密算法均为第一设备和第二设备之间预先约定好的加密算法即可,以保证第二设备能够根据通信请求报文的报文数据获取到目标密钥以及原始请求数据。

示例性地,对于通信请求报文的报文数据包括对目标密钥进行加密后得到的密钥标识数据以及对原始请求数据进行加密后得到的加密请求数据的情况,由于攻击设备无法获知对目标密钥进行加密后所利用的加密算法以及对原始请求数据进行加密所利用的加密算法,所以即使攻击设备劫持到通信请求报文并对通信请求报文的报文数据进行解析,也无法成功破解出目标密钥和原始请求数据,通信请求报文的报文数据的安全性较高。

通信请求报文用于请求第二设备反馈包括目标参数的报文,目标参数是第二设备利用目标加密算法对包括目标密钥的信息进行加密得到的参数,目标参数可以认为是与目标密钥匹配的参数。第二设备获取目标参数的过程详见图6所示的实施例,此处暂不赘述。由于攻击设备无法破解出目标密钥,所以自然也就无法获取目标参数,更无法伪造出包括目标参数的报文反馈给第一设备,因此,第一设备可以通过判断接收到的报文是否包括目标参数来较为准确地判断接收到的报文是否为第二设备反馈的报文。

在一种可能实现方式中,第一设备向第二设备发送通信请求报文可以是指第一设备直接向第二设备发送通信请求报文,也可以是指第一设备响应于第二设备具备反馈包括目标参数的报文的功能,向第二设备发送通信请求报文。

也就是说,可以在确定第二设备具备反馈包括目标参数的报文的功能时,再向第二设备发送报文数据包括密钥标识数据的通信请求报文,以避免因第二设备不具备反馈包括目标参数的报文的功能,而错误地把第二设备反馈的报文识别为攻击设备反馈的报文的现象(也即错误识别正确的反馈报文的现象),提高报文识别的规范性和可靠性。示例性地,第二设备具备反馈包括目标参数的报文的功能还可以认为第二设备处于防劫持状态。

在一种可能实现方式中,判断第二设备是否具备反馈包括目标参数的报文的功能的方式包括:从设备和功能标识的对应关系中查找第二设备对应的功能标识,若第二设备对应的功能标识为目标标识,则确定第二设备具备反馈包括目标参数的报文的功能;若第二设备对应的功能标识不为目标标识,则确定第二设备不具备反馈包括目标参数的报文的功能。其中,目标标识是指反馈包括目标参数的报文的功能对应的标识。

设备和功能标识的对应关系用于记录多个设备分别对应的功能标识,任一设备对应的功能标识可能为目标标识,也可能不为目标标识。目标标识根据经验设置,或者根据应用场景灵活调整,本申请实施例对此不加以限定。示例性地,设备和功能标识的对应关系根据设备的实际情况设定。

在另一种可能实现方式中,判断第二设备是否具备反馈包括目标参数的报文的功能的方式包括:若第二设备在通信连接建立阶段反馈的连接建立报文包括正确的防劫持标识,则确定第二设备具备反馈包括目标参数的报文的功能;若第二设备在通信连接建立阶段反馈的连接建立报文不包括正确的防劫持标识,则确定第二设备不具备反馈包括目标参数的报文的功能。

示例性地,正确的防劫持标识是指利用参考加密算法对报文的报文头部中的指定字段对应的信息进行加密得到的信息。指定字段包括候选字段中的一个或多个字段,根据经验设置,或者根据应用场景灵活调整,例如,指定字段包括IP地址字段(源IP地址字段和目的IP地址字段)、端口号字段(源端口号字段和目的端口号字段)和序号(seq)字段。参考加密算法根据经验设置,或根据应用场景灵活调整。例如,参考加密算法可以包括但不限于哈希算法、对称加密算法或者非对称加密算法等。

示例性地,判断连接建立报文是否包括正确的防劫持标识的方式包括:若连接建立报文的指定位置包括指定形式的标识,将该指定形式的标识作为待验证的防劫持标识;基于连接建立报文的报文头部中记载的指定字段对应的信息对待验证的防劫持标识进行验证,响应于待验证的防劫持标识验证通过,确定连接建立报文包括正确的防劫持标识,响应于待验证的防劫持标识未验证通过,确定连接建立报文不包括正确的防劫持标识。

指定位置为连接建立报文中的一个能够存储信息的位置,指定位置根据经验设置,或根据应用场景灵活调整,本申请实施例对此不加以限定,例如,指定位置为连接建立报文的报文头部中的用于记载选项字段对应的信息的位置。指定形式是指防劫持标识的标识形式,根据经验设置,或者根据应用场景灵活调整。

在示例性实施例中,基于连接建立报文的报文头部中记载的指定字段对应的信息对待验证的防劫持标识进行验证的过程可以为:利用参考加密算法对连接建立报文的报文头部中记载的指定字段对应的信息进行加密,响应于加密得到的信息与待验证的防劫持标识相同,确定待验证的防劫持标识验证通过;响应于加密得到的信息与待验证的防劫持标识不相同,确定待验证的防劫持标识未验证通过。

在示例性实施例中,基于连接建立报文的报文头部中记载的指定字段对应的信息对待验证的防劫持标识进行验证的过程可以为:利用参考加密算法对应的解密算法对待验证的防劫持标识进行解密,响应于解密得到的信息与连接建立报文的报文头部中记载的指定字段对应的信息相同,确定待验证的防劫持标识验证通过;响应于解密得到的信息与连接建立报文的报文头部中记载的指定字段对应的信息不相同,确定待验证的防劫持标识未验证通过。参考加密算法对应的解密算法用于对利用参考加密算法加密得到的信息进行解密,与参考加密算法的具体情况有关,本申请实施例对此不加以限定。

在一些实施例中,第二设备还可能不具备反馈包括目标参数的报文的功能。此种情况下,第一设备可以向第二设备发送报文数据不包括密钥标识数据的通信请求报文,以避免对第二设备反馈的报文的错误识别。第二设备在接收到报文数据不包括密钥标识数据的通信请求报文后,会向第一设备反馈不包括目标参数的报文。

示例性地,向第二设备发送报文数据包括密钥标识数据的通信请求报文能够实现防劫持功能,向第二设备发送报文数据不包括密钥标识数据的通信请求报文能够实现与未处于防劫持状态的设备的交互。也就是说,本申请实施例提供的方法不仅可以实现防劫持功能,也可以兼容已有的传输协议标准,也即可以正常的和未处于防劫持状态的设备正常交互。一些实施例中,以传输协议为TCP为例,采用传输协议进行报文传输的设备也可以称为TCP协议栈。

在一些实施例中,第一设备向第二设备发送的通信请求报文还可以包括目标验证标识,该目标验证标识用于供第二设备判断接收到的通信请求报文是否为第一设备发送的通信请求报文。示例性地,目标验证标识可以利用第二加密算法对参考信息进行加密得到,参考信息包括通信请求报文的报文数据和报文头部中记载的参考字段对应的信息中的至少一种。

第二加密算法为第一设备和第二设备共知的加密算法,可以根据经验设置,或根据应用场景灵活调整。例如,第二加密算法可以包括但不限于哈希算法、对称加密算法或者非对称加密算法等。参考字段包括候选字段中的一个或多个字段,根据经验设置,或者根据应用场景灵活调整,例如,参考字段包括IP地址字段(源IP地址字段和目的IP地址字段)、端口号字段(源端口号字段和目的端口号字段)和序号(seq)字段。

需要说明的是,第二加密算法可以与第一加密算法或参考加密算法相同,也可以与第一加密算法和参考加密算法均不相同。参考字段可以与指定字段相同,也可以与指定字段不相同。

在步骤202中,接收通信请求报文对应的通信反馈报文。

第一设备在向第二设备发送通信请求报文后,可以接收通信请求报文对应的通信反馈报文。需要说明的是,该通信反馈报文可能为攻击设备伪造的报文,也可能是第二设备反馈的报文,需要根据步骤203的方式进行进一步识别。

在示例性实施例中,通信请求报文对应的通信反馈报文可以是指第一设备在向第二设备发送通信请求报文后最先接收到的反馈报文,也可以是指第一设备在向第二设备发送通信请求报文后最先接收到的满足筛选条件的反馈报文,本申请实施例对此不加以限定。

满足筛选条件根据经验设置,或者根据应用场景灵活调整。示例性地,满足筛选条件的反馈报文可以是指形式为传输协议(如,TCP)指定的报文形式的反馈报文。示例性地,满足筛选条件的反馈报文可以是指源IP地址为第二设备的IP地址、目的IP地址为第一设备的IP地址的反馈报文。

在步骤203中,响应于通信反馈报文包括目标参数,确定通信反馈报文为第二设备反馈的报文。

第一设备在接收到通信反馈报文后,识别通信反馈报文是否为第二设备反馈的报文,以降低第一设备因执行与伪造的通信反馈报文匹配的操作而被攻击的可能性,进而提高第一设备的运行安全性。示例性地,第一设备被攻击包括但不限于显示推销广告、丢失隐私数据、异常断开与第二设备的连接等。

在一种可能实现方式中,识别通信反馈报文是否为第二设备反馈的报文的过程包括:判断通信反馈报文是否包括目标参数,响应于通信反馈报文包括目标参数,确定通信反馈报文为第二设备反馈的报文。响应于反馈报文不包括目标参数,确定通信反馈报文不为第二设备反馈的报文。其中,目标参数由第二设备利用目标加密算法对包括目标密钥的信息进行加密得到。

示例性地,由于目标参数是基于目标密钥获取的参数,所以判断通信反馈报文是否包括目标参数的过程基于目标密钥实现。也就是说,第一设备基于目标密钥判断通信反馈报文是否包括目标参数。

在一种可能实现方式中,判断通信反馈报文是否包括目标参数的过程包括:判断通信反馈报文是否包括待验证参数,响应于通信反馈报文不包括待验证参数,确定通信反馈报文不包括目标参数。响应于通信反馈报文包括待验证参数,基于待验证参数和目标密钥判断通信反馈报文是否包括目标参数。其中,待验证参数的参数形式与目标参数的参数形式相同。

在一种可能实现方式中,判断通信反馈报文是否包括待验证参数的方式包括:判断通信反馈报文的目标位置是否存在目标形式的参数,若目标位置存在目标形式的参数,将目标位置存在的目标形式的参数作为待验证参数,确定通信反馈报文包括待验证参数;若目标位置不存在目标形式的参数,确定通信反馈报文不包括待验证参数。

目标位置是指通信反馈报文中的一个能够存储信息的位置,目标位置可以为通信反馈报文的报文数据中的一个位置,也可以是指通信反馈报文的报文头部中的一个位置等,可以根据经验设置,或根据应用场景灵活调整,本申请实施例对此不加以限定。示例性地,以构成报文头部所需的候选字段如图3所示为例,由于除保留字段和选项字段外的其他字段不能被占用,且已被广泛应用,不便于更改后普及使用,所以,目标位置可以是指通信反馈报文的报文头部中用于记载保留字段或选项字段的位置。目标形式是指目标参数的参数形式,根据经验设置,或者根据应用场景灵活调整。

在确定通信反馈报文包括待验证参数的情况下,需要基于待验证参数和目标密钥判断通信反馈报文是否包括目标参数。在一种可能实现方式中,基于待验证参数和目标密钥判断通信反馈报文是否包括目标参数的过程包括:响应于通信反馈报文包括待验证参数,基于目标密钥确定验证信息;基于验证信息对待验证参数进行验证,响应于待验证参数验证通过,确定待验证参数为目标参数,也即确定通信反馈报文包括目标参数;响应于待验证参数验证不通过,确定待验证参数不为目标参数,也即确定通信反馈报文不包括目标参数。其中,验证信息包括目标密钥。

验证信息为验证待验证参数是否为目标参数所需的信息,验证信息包括目标密钥。在一种可能实现方式中,验证信息为目标密钥本身,此种情况下,可以直接将目标密钥作为验证信息。

在另一种可能实现方式中,验证信息包括通信反馈报文的报文数据和通信反馈报文的报文头部中记载的目标字段对应的信息中的至少一种,以及目标密钥。也就是说,验证信息包括通信反馈报文的报文数据以及目标密钥;或者,验证信息包括通信反馈报文的报文头部中记载的目标字段对应的信息以及目标密钥;再或者,验证信息包括通信反馈报文的报文数据、通信反馈报文的报文头部中记载的目标字段对应的信息以及目标密钥。

其中,目标字段为构成报文头部所需的候选字段中满足选取条件的字段。构成报文头部所需的候选字段可以根据经验设置,或者根据报文传输所采用的传输协议灵活调整,本申请实施例对此不加以限定。

满足选取条件根据经验设置,或者根据应用场景灵活调整,在一些实施例中,满足选取条件的字段是指全部的候选字段。在一些实施例中,满足选取条件的字段是指IP地址字段、端口号字段和序号字段。当然,满足选取条件的字段还可能为其他情况,在此不再一一举例。

对于验证信息包括通信反馈报文的报文数据和通信反馈报文的报文头部中记载的目标字段对应的信息中的至少一种,以及目标密钥的情况,基于目标密钥确定验证信息的过程包括:获取通信反馈报文的报文数据和通信反馈报文的报文头部中记载的目标字段对应的信息中的至少一种;基于通信反馈报文的报文数据和通信反馈报文的报文头部中记载的目标字段对应的信息中的至少一种,以及目标密钥,确定验证信息。示例性地,将包括通信反馈报文的报文数据和通信反馈报文的报文头部中记载的目标字段对应的信息中的至少一种,以及包括目标密钥的信息作为验证信息。

在接收到通信反馈报文后,第一设备能够对通信反馈报文进行解析,从而解析出通信反馈报文的报文数据和报文头部,其中,通信反馈报文的报文头部由候选字段对应的信息构成。根据解析出的通信反馈报文的报文数据和报文头部,即可获取到通信反馈报文的报文数据和通信反馈报文的报文头部中记载的目标字段对应的信息中的至少一种。

在获取验证信息后,基于验证信息对待验证参数进行验证,以确定待验证参数是否验证通过,进而根据待验证参数是否验证通过的验证结果判断待验证参数是否为目标参数,进而判断通信反馈报文是否包括目标参数。

在一种可能实现方式中,基于验证信息对待验证参数进行验证的过程可以为:利用目标加密算法对验证信息进行加密,响应于加密得到的信息与待验证参数相同,确定待验证参数验证通过;响应于加密得到的信息与待验证参数不相同,确定待验证参数未验证通过。

目标加密算法为第一设备和第二设备预先约定的加密算法,也即,目标加密算法为第一设备和第二设备共知的加密算法。目标加密算法根据经验设置,或根据应用场景灵活调整,本申请实施例对此不加以限定。例如,目标加密算法可以包括但不限于哈希算法、对称加密算法或者非对称加密算法等。需要说明的是,目标加密算法可以与第一加密算法、参考加密算法和第二加密算法中的任一加密算法相同,也可以与第一加密算法、参考加密算法和第二加密算法均不相同。

在另一种可能实现方式中,基于验证信息对待验证参数进行验证的过程可以为:利用目标加密算法对应的解密算法对待验证参数进行解密,响应于解密得到的信息与验证信息相同,确定待验证参数验证通过;响应于解密得到的信息与验证信息不相同,确定待验证参数未验证通过。目标加密算法对应的解密算法用于对利用目标加密算法加密得到的信息进行解密,与目标加密算法的具体情况有关,本申请实施例对此不加以限定。

在示例性实施例中,识别通信反馈报文是否为第二设备反馈的报文的过程由第一设备通过传输层执行,也就是说,第一设备通过传输层响应于通信反馈报文包括目标参数,确定通信反馈报文为第二设备反馈的报文。需要说明的是,通过传输层识别通信反馈报文是否为第二设备反馈的报文的过程需要利用到目标密钥,该目标密钥可以由第一设备通过应用层传递给传输层。

也就是说,判断通信反馈报文是否为第二设备反馈的报文的过程包括:第一设备通过应用层将目标密钥传递给传输层;通过传输层响应于基于目标密钥确定通信反馈报文包括目标参数,确定通信反馈报文为第二设备反馈的报文。

在示例性实施例中,在确定通信反馈报文不为第二设备反馈的报文时,可以认为该通信反馈报文为攻击设备伪造的报文,此种情况下,第一设备丢弃该通信反馈报文。示例性地,在丢弃已经接收到的通信反馈报文后,第一设备能够继续接收通信请求报文对应的新的通信反馈报文,然后继续利用本申请实施例提供的报文识别方法识别新的通信反馈报文是否为第二设备反馈的报文。

在示例性实施例中,在确定通信反馈报文为第二设备反馈的报文时,可以认为该通信反馈报文为通信请求报文对应的正确的反馈报文,此种情况下,第一设备执行与通信反馈报文匹配的操作。示例性地,第一设备执行与通信反馈报文匹配的操作的过程包括:第一设备通过传输层对通信反馈报文进行解析,得到通信反馈报文的报文数据,将通信反馈报文的报文数据提交至应用层,通过应用层显示与通信反馈报文的报文数据匹配的页面或图片等。

在示例性实施例中,在确定通信反馈报文为第二设备反馈的报文时,可以进一步对通信反馈报文进行校验,如,对通信反馈报文中的确认号以及序号进行校验,在校验通过后,第一设备再执行与通信反馈报文匹配的操作,以保证通信反馈报文的可靠性。

当前互联网大量业务采用TCP进行报文传输,但是网络(也可以称为公网)上存在攻击设备(也可以称为恶意厂商或者黑客)采用伪造TCP报文的方式对正常的TCP报文进行劫持(内容篡改,内容注入或者TCP RESET(复位)攻击),以达到其不可告人的目的。例如CDN业务中,TCP报文被劫持将极大的劣化终端的用户体验从而劣化CDN厂商的口碑。本申请实施例提供的报文识别方法可视为一种基于网络传输协议跨层交互的TCP防劫持方法,能够有效地避免途径网络的TCP报文被劫持从而使得攻击设备利用伪造的报文(如,篡改数据包括的报文、破坏TCP连接的报文等)攻击报文发送方的问题,能够在实现TCP层防劫持功能的同时,增强TCP报文在网络上传输的鲁棒性,提高TCP防劫持技术在真实产品中使用的广泛性。

在示例性实施例中,本申请实施例提供的报文识别方法适用于使用TCP协议通过网络进行报文传输的设备,例如,通过网络进行TCP报文传输的CDN服务器或终端设备等。示例性地,本申请实施例提供的报文识别方法能够有效避免以下两种劫持案例下的攻击行为:

第一种劫持案例为内容劫持,在内容劫持过程中,攻击设备通过在第一设备和第二设备之间,植入恶意设备或者控制网络设备的手段,检测或篡改第一设备和第二设备之间的数据,这种劫持可以实现在设备中插入广告或者直接显示某网站的内容,从而实现恶意推广或窃取用户重要数据(包括用户密码,用户身份数据等)的目的。

示例性地,内容劫持的过程如图4所示。第一设备的IP地址为1.1.1.1,第二设备的IP地址为2.2.2.2,第一设备向第二设备发起一个用于请求内容A的通信请求报文。攻击设备通过控制网络中的交换机(或中间转发设备),劫持到了第一设备发送的通信请求报文,攻击设备构造了一个包括假的内容A(即内容B)的报文发送给第一设备。第一设备在处理攻击设备发出的包括内容B的报文后,攻击设备攻击成功,容易导致第一设备展示恶意广告或者导致第一设备中的客户信息被窃取等。第二设备发出的包括内容A的报文在这之后才到达,直接被第一设备中的TCP协议丢弃。

第二种劫持案例为TCP RESET(复位)劫持(或者称为恶意中断TCP连接劫持)。在TCP RESET劫持过程中,第一设备和第二设备之间建立了TCP连接,攻击设备能够伪造了一个TCP连接终止报文发给第一设备,使第一设备异常的断开与第二设备之间的TCP连接。此种劫持会影响用户体验或者影响CDN厂商服务质量以达到其恶意目标。

示例性地,TCP RESET劫持的过程如图5所示。第一设备的IP地址为1.1.1.1,第二设备的IP地址为2.2.2.2,第一设备向第二设备发起一个用于请求内容A的通信请求报文。攻击设备通过控制网络中的交换机(或中间转发设备),劫持到了第一设备发送的通信请求报文。攻击设备构造了一个TCP连接终止报文反馈给第一设备。第一设备在收到攻击设备发出的TCP连接终止报文后,会断开与第二设备的TCP连接,本次内容A的请求过程失败,攻击设备攻击成功。第二设备发出的反馈内容A的报文在这之后才达到,而此时的TCP连接已经失效。

相关技术中,第一设备在接收到通信反馈报文后,检测该通信反馈报文是否包括正确的验证标识;若包括正确的验证标识,则确定通信反馈报文为第二设备反馈的报文。其中,正确的验证标识利用固定加密算法对信息进行加密得到,该信息为通信反馈报文的报文头部中记载的固定字段对应的信息。

相关技术中的正确的验证标识的获取方式容易被攻击设备破解,从而使得攻击设备能够伪造出包括正确的验证标识的通信反馈报文来欺骗第一设备,导致第一设备将攻击设备反馈的通信反馈报文错误地认为是第二设备反馈的报文,报文识别的准确性较低。

而本申请实施例中,通过判断通信反馈报文是否包括目标参数来识别通信反馈报文是否为第二设备反馈的报文。其中,目标参数利用目标加密算法对包括目标密钥的信息进行加密得到,目标密钥为通信请求报文的报文数据携带的密钥标识数据所标识的密钥。

由于攻击设备在劫持到通信请求报文后,通常不会对通信请求报文的报文数据进行解析,所以攻击设备难以根据通信请求报文的报文数据包括的密钥标识数据破解出目标密钥。此外,要想破解利用目标加密算法对包括目标密钥的信息进行加密这一获取目标参数的方式,攻击设备除了需要破解出目标密钥外,还需要破解出目标加密算法以及包括目标密钥的信息,破解难度较大,因此,攻击设备难以伪造出包括目标参数的报文。也就是说,若接收到的通信反馈报文包括目标参数,则该通信反馈报文极大可能是第二设备反馈的报文,报文识别的准确性较高。

本申请实施例提供的报文识别方法,通过判断接收到的通信反馈报文是否包括目标参数,来判断接收到的通信反馈报文是否为第二设备反馈的报文,其中,目标参数通过对包括目标密钥的信息进行加密得到。由于通信请求报文的报文数据的数据量通常较大,所以攻击设备在劫持到通信请求报文后,通常不会对通信请求报文的报文数据进行解析,也就无法根据报文数据包括的密钥标识数据得到目标密钥,更无法伪造出包括目标参数的报文。因此,若接收到的通信反馈报文包括目标参数,则该通信反馈报文极大可能是第二设备反馈的报文,此种报文识别方法的识别准确性较高,有利于降低第一设备因执行与伪造的通信反馈报文匹配的操作而被攻击的可能性,进而避免第一设备的隐私被泄露,提高第一设备的运行安全性。

基于上述图1所示的实施环境,本申请实施例提供一种报文传输方法,以该方法由第二设备12执行为例。如图6所示,本申请实施例提供的报文传输方法可以包括如下步骤601至步骤603。

在步骤601中,接收第一设备发送的通信请求报文,通信请求报文的报文数据包括密钥标识数据,密钥标识数据用于标识目标密钥。

在第一设备向第二设备发送通信请求报文后,第二设备能够接收第一设备发送的通信请求报文。示例性地,第一设备发送的通信请求报文可以是指第一设备直接发送的通信请求报文,也可以是指第一设备通过交换机(或中间转发设备)转发的通信请求报文。

通信请求报文包括用于标识目标密钥的密钥标识数据,通信请求报文的详细介绍参见图2所示的实施例中的步骤201,此处不再加以赘述。

在示例性实施例中,第二设备在具备反馈包括目标参数的报文的功能的情况下接收第一设备发送的通信请求报文。

在示例性实施例中,第二设备可以判断接收的通信请求报文是否包括目标验证标识,若接收的通信请求报文包括目标验证标识,则确定接收的通信请求报文为第一设备发送的通信请求报文;若接收的通信请求报文不包括目标验证标识,则确定接收的通信请求报文不为第一设备发送的通信请求报文。在确定接收的通信请求报文为第一设备发送的通信请求报文的情况下,接收到第一设备发送的通信请求报文。

在步骤602中,对通信请求报文的报文数据进行解析,得到密钥标识数据;基于密钥标识数据,确定目标密钥。

由于通信请求报文的报文数据包括密钥标识数据,所以第二设备能够通过对通信请求报文的报文数据进行解析,得到密钥标识数据。由于密钥标识数据用于标识目标密钥,所以能够基于密钥标识数据确定目标密钥。

在示例性实施例中,密钥标识数据为目标密钥本身,则可以直接将密钥标识数据作为目标密钥。在示例性实施例中,密钥标识数据为利用第一加密算法对目标密钥进行加密得到的数据,则可以利用第一加密算法对应的解密算法对密钥标识数据进行解密,将解密得到的信息作为目标密钥。

示例性地,对通信请求报文的报文数据进行解析得到密钥标识数据,以及基于密钥标识数据确定目标密钥的过程由第二设备通过应用层执行。

在步骤603中,获取包括目标密钥的信息,利用目标加密算法对包括目标密钥的信息进行加密,得到目标参数,向第一设备反馈包括目标参数的报文。

在获取目标密钥后,进一步获取目标参数,以便于第二设备向第一设备反馈包括目标参数的报文。获取目标参数的过程包括:获取包括目标密钥的信息,利用目标加密算法对包括目标密钥的信息进行加密,得到目标参数。本申请实施例中,将包括目标密钥的信息称为待加密信息。

在示例性实施例中,待加密信息仅包括目标密钥,此种情况下,直接将目标密钥作为待加密信息。

在示例性实施例中,待加密信息包括目标报文数据和目标报文头部中记载的目标字段对应的信息中的至少一种,以及目标密钥,此种情况下,获取待加密信息的过程包括:获取目标报文数据和目标报文头部中记载的目标字段对应的信息中的至少一种,基于目标报文数据和目标报文头部中记载的目标字段对应的信息中的至少一种,以及目标密钥,确定待加密信息。

其中,目标报文数据为第二设备向第一设备反馈的报文所需携带的报文数据,目标报文头部为第二设备向第一设备反馈的报文所需携带的报文头部。示例性地,目标报文数据可以由第二设备通过应用层根据从通信请求报文的报文数据中解析出的原始请求数据获取得到,目标报文头部中记载的目标字段对应的信息可以根据目标报文数据的实际情况以及当前传输过程确定。

目标字段为构成目标报文头部所需的候选字段中满足选取条件的字段。构成目标报文头部所需的候选字段可以根据经验设置,或者根据报文传输所采用的传输协议灵活调整,本申请实施例对此不加以限定。满足选取条件根据经验设置,或者根据应用场景灵活调整,在一些实施例中,满足选取条件的字段是指全部的候选字段。在一些实施例中,满足选取条件的字段是指IP地址字段、端口号字段和序号字段。当然,满足选取条件的字段还可能为其他情况,在此不再一一举例。

在获取包括目标密钥的信息(也即待加密信息)后,利用目标加密算法对包括目标密钥的信息进行加密,将加密得到的信息作为目标参数,至此,获取到目标参数。目标加密算法为第一设备和第二设备预先约定的加密算法,目标加密算法根据经验设置,或根据应用场景灵活调整,本申请实施例对此不加以限定。例如,目标加密算法可以包括但不限于哈希算法、对称加密算法或者非对称加密算法等。

在获取到目标参数后,第二设备向第一设备反馈包括目标参数的报文。示例性地,目标参数位于反馈的报文中的目标位置处。目标位置可以为反馈的报文的报文数据中的一个位置,也可以是指反馈的报文的报文头部中的一个位置等,可以根据经验设置,或根据应用场景灵活调整,本申请实施例对此不加以限定。示例性地,目标位置可以是指反馈的报文的报文头部中用于记载保留字段或选项字段的位置。

示例性地,目标密钥(可以记为secret_key)由第二设备通过应用层获取,目标参数由第二设备通过传输层获取,第二设备在通过应用层获取目标密钥之后,可以通过应用层利用网络传输协议栈的跨层交互方式(如,利用TCP setsockopt实现的方式)将目标密钥传递给传输层。第二设备可以通过传输层利用哈希算法将目标密钥与IP地址、端口号、序号一起加密后作为目标参数,将目标参数存储于TCP option字段中发送给第一设备。

本申请实施例提供的报文传输方法,第二设备在接收到第一设备发送的报文数据包括密钥标识数据的通信请求报文后,向第一设备反馈包括目标参数的报文,基于此,能够使得第一设备通过判断接收到的通信反馈报文是否包括目标参数来识别接收到的通信反馈报文是否为第二设备反馈的报文。其中,目标参数通过对包括目标密钥的信息进行加密得到。

由于通信请求报文的报文数据的数据量通常较大,所以攻击设备在劫持到通信请求报文后,通常不会对通信请求报文的报文数据进行解析,也就无法根据报文数据包括的密钥标识数据得到目标密钥,更无法伪造出包括目标参数的报文。因此,通过判断接收到的通信反馈报文是否包括目标参数来识别接收到的通信反馈报文是否为第二设备反馈的报文的识别准确性较高,有利于降低第一设备因执行与伪造的通信反馈报文匹配的操作而被攻击的可能性,进而避免第一设备的隐私被泄露,提高第一设备的运行安全性。

示例性地,第一设备与第二设备之间的交互过程可以如图7所示。第一设备与第二设备为建立有TCP连接的两个设备,第一设备与第二设备建立TCP连接的三次握手过程包括:第一设备向第二设备发送SYN包,该SYN包中包括确认号(ACK)字段对应的信息、序号(SEQ)字段对应的信息以及利用哈希(hash)算法对IP地址、端口号(port)以及序号(seq)进行加密后得到的防劫持标识。第二设备接收到第一设备发送的SYN包后,向第一设备反馈SYN+ACK包,该SYN+ACK包中包括ACK字段对应的信息、SEQ字段对应的信息以及利用hash算法对IP地址、port以及seq进行加密后得到的防劫持标识。第一设备在接收到第二设备反馈的SYN+ACK包后,向第二设备发送ACK包,该ACK包中包括ACK字段对应的信息、SEQ字段对应的信息以及利用hash算法对IP地址、port以及seq进行加密后得到的防劫持标识。至此,完成三次握手,第一设备与第二设备之间成功建立TCP连接。

在成功与第二设备建立TCP连接后,若第一设备需要向第二设备传输报文,则第一设备通过应用层生成随机密钥secret_key(也即目标密钥),在通信请求报文的报文数据中加入secret_key,以将secret_key发送给第二设备,此外,第一设备还通过应用层将secret_key传输给第一设备的TCP层(也即传输层),以使第一设备通过TCP层利用secret_key对报文进行校验,也即识别报文是否为第二设备反馈的报文。需要说明的是,第一设备向第二设备发送的通信请求报文中,除包括secret_key外,还包括ACK字段对应的信息、SEQ字段对应的信息。

第二设备在接收到第一设备发送的通信请求报文后,第二设备通过应用层对通信请求报文的报文数据进行解析,以解析出secret_key,在解析出secret_key后,第二设备将secret_key传递给TCP层。第二设备通过TCP层获取待反馈给第一设备的报文,然后将该报文反馈给第一设备。其中,反馈给第一设备的报文包括ACK字段对应的信息、SEQ字段对应的信息以及利用哈希算法对IP地址、port、seq以及secret_key进行加密后得到的hash值(也即目标参数)。第一设备在接收到报文后,第一设备通过TCP层根据应用层传递的secret_key对接收到的报文中的hash值进行校验,若校验通过,则确定接收到的报文为第二设备反馈的报文,执行与接收到的报文匹配的操作。

参见图8,本申请实施例提供了一种报文识别装置,该装置包括:

发送单元801,用于向第二设备发送通信请求报文,通信请求报文的报文数据包括密钥标识数据,密钥标识数据用于标识目标密钥,通信请求报文用于请求第二设备反馈包括目标参数的报文,目标参数利用目标加密算法对包括目标密钥的信息进行加密得到;

第一接收单元802,用于接收通信请求报文对应的通信反馈报文;

第一确定单元803,用于响应于通信反馈报文包括目标参数,确定通信反馈报文为第二设备反馈的报文。

在一种可能实现方式中,第一确定单元803,还用于响应于通信反馈报文包括待验证参数,基于目标密钥确定验证信息,验证信息包括目标密钥;基于验证信息对待验证参数进行验证,响应于待验证参数验证通过,确定待验证参数为目标参数。

在一种可能实现方式中,第一确定单元803,还用于获取通信反馈报文的报文数据和通信反馈报文的报文头部中记载的目标字段对应的信息中的至少一种,目标字段为构成报文头部所需的候选字段中满足选取条件的字段;基于通信反馈报文的报文数据和报文头部中记载的目标字段对应的信息中的至少一种,以及目标密钥,确定验证信息。

在一种可能实现方式中,发送单元801,用于响应于第二设备具备反馈包括目标参数的报文的功能,向第二设备发送通信请求报文。

在一种可能实现方式中,目标密钥为应用层生成的密钥,第一确定单元803,用于通过应用层将目标密钥传递给传输层;通过传输层响应于基于目标密钥确定通信反馈报文包括目标参数,确定通信反馈报文为第二设备反馈的报文。

在一种可能实现方式中,第一确定单元803,还用于响应于通信反馈报文不包括目标参数,确定通信反馈报文不为第二设备反馈的报文,丢弃通信反馈报文。

在一种可能实现方式中,第一确定单元803,还用于利用目标加密算法对应的解密算法对待验证参数进行解密,响应于解密得到的信息与验证信息相同,确定待验证参数验证通过。

在一种可能实现方式中,第一确定单元803,还用于利用目标加密算法对验证信息进行加密,响应于加密得到的信息与待验证参数相同,确定待验证参数验证通过。

本申请实施例提供的报文识别装置,通过判断接收到的通信反馈报文是否包括目标参数,来判断接收到的通信反馈报文是否为第二设备反馈的报文,其中,目标参数通过对包括目标密钥的信息进行加密得到。由于通信请求报文的报文数据的数据量通常较大,所以攻击设备在劫持到通信请求报文后,通常不会对通信请求报文的报文数据进行解析,也就无法根据报文数据包括的密钥标识数据得到目标密钥,更无法伪造出包括目标参数的报文。因此,若接收到的通信反馈报文包括目标参数,则该通信反馈报文极大可能是第二设备反馈的报文,此种报文识别方法的识别准确性较高,有利于降低第一设备因执行与伪造的通信反馈报文匹配的操作而被攻击的可能性,进而避免第一设备的隐私被泄露,提高第一设备的运行安全性。

参见图9,本申请实施例提供了一种报文传输装置,该装置包括:

第二接收单元901,用于接收第一设备发送的通信请求报文,通信请求报文的报文数据包括密钥标识数据,密钥标识数据用于标识目标密钥;

解析单元902,用于对通信请求报文的报文数据进行解析,得到密钥标识数据;

第二确定单元903,用于基于密钥标识数据,确定目标密钥;

获取单元904,用于获取包括目标密钥的信息,利用目标加密算法对包括目标密钥的信息进行加密,得到目标参数;

反馈单元905,用于向第一设备反馈包括目标参数的报文。

本申请实施例提供的报文传输装置,第二设备在接收到第一设备发送的报文数据包括密钥标识数据的通信请求报文后,向第一设备反馈包括目标参数的报文,基于此,能够使得第一设备通过判断接收到的通信反馈报文是否包括目标参数来识别接收到的通信反馈报文是否为第二设备反馈的报文。其中,目标参数通过对包括目标密钥的信息进行加密得到。

由于通信请求报文的报文数据的数据量通常较大,所以攻击设备在劫持到通信请求报文后,通常不会对通信请求报文的报文数据进行解析,也就无法根据报文数据包括的密钥标识数据得到目标密钥,更无法伪造出包括目标参数的报文。因此,通过判断接收到的通信反馈报文是否包括目标参数来识别接收到的通信反馈报文是否为第二设备反馈的报文的识别准确性较高,有利于降低第一设备因执行与伪造的通信反馈报文匹配的操作而被攻击的可能性,进而避免第一设备的隐私被泄露,提高第一设备的运行安全性。

需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图10是本申请实施例提供的一种服务器的结构示意图,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,CPU)1001和一个或多个存储器1002,其中,该一个或多个存储器1002中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器1001加载并执行,以使该服务器实现上述各个方法实施例提供的报文识别方法或报文传输方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。示例性地,该服务器可以是指执行图2所示的实施例的第一设备,也可以是指执行图6所示的实施例的第二设备。

图11是本申请实施例提供的一种终端的结构示意图。该终端可以是:智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备、智能手表、车载终端、智能家电(如,智能音箱、智能电视)等。终端还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。示例性地,终端可以是指执行图2所示的实施例的第一设备,也可以是指执行图6所示的实施例的第二设备。

通常,终端包括有:处理器1501和存储器1502。

处理器1501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1501可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1501所执行,以使该终端实现本申请中方法实施例提供的报文识别方法或报文传输方法。

在一些实施例中,终端还可选包括有:外围设备接口1503和至少一个外围设备。示例性地,外围设备包括:射频电路1504、显示屏1505、摄像头组件1506、音频电路1507和电源1508中的至少一种。

外围设备接口1503可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1501和存储器1502。射频电路1504用于接收和发射RF(RadioFrequency,射频)信号,也称电磁信号。显示屏1505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。

摄像头组件1506用于采集图像或视频。音频电路1507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,扬声器则用于将来自处理器1501或射频电路1504的电信号转换为声波。电源1508用于为终端中的各个组件进行供电。电源1508可以是交流电、直流电、一次性电池或可充电电池。

在一些实施例中,终端还包括有一个或多个传感器1509。该一个或多个传感器1509包括但不限于:加速度传感器1510、陀螺仪传感器1511、压力传感器1512、光学传感器1513以及接近传感器1514。

加速度传感器1510可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。陀螺仪传感器1511可以检测终端的机体方向及转动角度,陀螺仪传感器1511可以与加速度传感器1510协同采集用户对终端的3D(三维)动作。

压力传感器1512可以设置在终端的侧边框和/或显示屏1505的下层。当压力传感器1512设置在终端的侧边框时,可以检测用户对终端的握持信号,由处理器1501根据压力传感器1512采集的握持信号进行左右手识别或快捷操作。当压力传感器1512设置在显示屏1505的下层时,由处理器1501根据用户对显示屏1505的压力操作,实现对UI界面上的可操作性控件进行控制。

光学传感器1513用于采集环境光强度。在一个实施例中,处理器1501可以根据光学传感器1513采集的环境光强度,控制显示屏1505的显示亮度。接近传感器1514,也称距离传感器,通常设置在终端的前面板。接近传感器1514用于采集用户与终端的正面之间的距离。

本领域技术人员可以理解,图11中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条计算机程序。该至少一条计算机程序由一个或者一个以上处理器加载并执行,以使该计算机设备实现上述任一种报文识别方法或报文传输方法。

在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由计算机设备的处理器加载并执行,以使计算机实现上述任一种报文识别方法或报文传输方法。

在一种可能实现方式中,上述计算机可读存储介质可以是只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact DiscRead-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,该计算机程序或计算机指令由处理器加载并执行,以使计算机实现上述任一种报文识别方法或报文传输方法。

需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的原始请求数据等是在充分授权的情况下获取的。

需要说明的是,本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以上示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 报文处理方法、装置、计算机设备和存储介质
  • 基于网络融合的报文转发方法、设备、存储介质及装置
  • 报文转发方法及装置、计算机可读存储介质、电子设备
  • 报文预定义代码生成方法、装置、电子设备和存储介质
  • 传输报文的方法、代理服务器和计算机可读存储介质
  • 一种报文传输方法、报文传输装置、电子设备及存储介质
  • 报文传输方法、设备、系统、存储介质和报文处理方法
技术分类

06120116485198