一种数据通信方法、装置、设备和存储介质与流程

文档序号:16672242发布日期:2019-01-18 23:39阅读:203来源:国知局
一种数据通信方法、装置、设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种数据通信方法、一种数据通信装置、一种电子设备、一种服务器、一种存储介质。



背景技术:

物联网(internetofthings,iot),可看作是物物相连的互联网。物联网领域内,海量低功耗设备需要与云端的服务器交互,这些设备通常资源受限,即设备只有少量的内存空间和有限的计算能力,并且设备和云端的数据传输过程可能存在通信安全隐患,如黑客通过劫持网络请求进行数据包篡改、重放数据包进行攻击等。

而在设备与云端的服务器交互,但是这些资源受限的设备所处网络环境的重连比较频繁,会导致设备的资源负担加重。并且,为了保证数据的安全传输,一种方式是使用安全传输层协议(transportlayersecurity,tls)证书,每个设备上烧录了证书信息,这种方式虽然安全系数较高,但是每次重连握手时消耗资源也比较大,会进一步加重设备的资源负担。



技术实现要素:

本申请实施例提供了一种数据通信方法,以保证资源受限设备的安全通信。

相应的,本申请实施例还提供了一种数据通信装置、一种电子设备、一种服务器、一种存储介质,用以保证上述方法的实现及应用。

为了解决上述问题,本申请实施例公开了一种数据通信方法,包括:接收数据请求并依据所述数据请求进行设备认证;在所述设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥;依据所述会话标识建立长连接;通过所述长连接接收加密的业务数据,并依据所述通信密钥对所述加密的业务数据进行解析。

本申请实施例还公开了一种数据通信方法,包括:发送设备认证请求,通过设备认证后,接收会话参数,其中,所述会话参数包括会话标识和通信密钥;依据所述会话标识建立长连接;通过所述长连接传输采用所述通信密钥进行加密的业务数据。

本申请实施例还公开了一种数据通信方法,包括:接收请求并依据所述请求进行认证;在所述认证通过后,发送会话参数,其中,所述会话参数包括会话标识和/或密钥;依据所述会话参数建立连接;通过所述连接接收加密数据,并依据所述会话参数对所述加密数据进行解析。

本申请实施例还公开了一种数据通信方法,包括:发送会话参数,其中,所述会话参数包括会话标识和/或密钥;依据所述会话参数建立连接;通过所述连接接收加密数据,并依据所述会话参数对所述加密数据进行解析。

本申请实施例还公开了一种数据通信装置,包括:请求认证模块,用于接收数据请求并依据所述数据请求进行设备认证;响应模块,用于在所述设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥;长连接建立模块,用于依据所述会话标识建立长连接;数据解析模块,用于通过所述长连接接收加密的业务数据,并依据所述通信密钥对所述加密的业务数据进行解析。

本申请实施例还公开了一种数据通信装置,包括:请求发送模块,用于发送设备认证请求,通过设备认证后,接收会话参数,其中,所述会话参数包括会话标识和通信密钥;建立模块,用于依据所述会话标识建立长连接;数据传输模块,用于通过所述长连接传输采用所述通信密钥进行加密的业务数据。

本申请实施例还公开了一种数据通信装置,包括:认证模块,用于接收请求并依据所述请求进行认证;发送模块,用于在所述认证通过后,发送会话参数,其中,所述会话参数包括会话标识和/或密钥;连接建立模块,用于依据所述会话参数建立连接;解析模块,用于通过所述连接接收加密数据,并依据所述会话参数对所述加密数据进行解析。

本申请实施例还公开了一种数据通信装置,包括:参数发送模块,用于发送会话参数,其中,所述会话参数包括会话标识和/或密钥;连接建立模块,用于依据所述会话参数建立连接;接收并解密模块,用于通过所述连接接收加密数据,并依据所述会话参数对所述加密数据进行解析。

本申请实施例还公开了一种数据通信系统,包括电子设备和服务器,其中,所述电子设备包括如本申请实施例中任一所述的数据通信装置;所述服务器包括如本申请实施例中任一所述的数据通信装置。

本申请实施例还公开了一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本申请实施例中一个或多个所述的方法。

本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如本申请实施例中一个或多个所述的方法。

本申请实施例还公开了一种服务器,其特征在于,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述服务器执行如本申请实施例中一个或多个所述的方法。

本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得服务器执行如本申请实施例中一个或多个所述的方法。

本申请实施例还公开了一种设备,其特征在于,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行如本申请实施例中所述的方法。

本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如本申请实施例中所述的方法。

本申请实施例还公开了一种设备,其特征在于,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行如本申请实施例中所述的方法。

本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如本申请实施例中所述的方法。

与现有技术相比,本申请实施例包括以下优点:

在本申请实施例中,可依据数据请求进行设备认证,从而确定可信设备,并在设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥,然后可基于会话标识建立长连接,通过长连接保持数据通信,无需重连后传输数据,有效减少资源的消耗,并且对于通过长连接传输的加密的业务数据,可采用通信密钥进行解析,能够保证业务数据的安全。

附图说明

图1是本申请实施例的一种交互系统的示意图;

图2是本申请的一种数据通信方法实施例服务器侧的步骤流程图;

图3是本申请的一种数据通信方法实施例电子设备侧的步骤流程图;

图4是本申请的另一种数据通信方法实施例电子设备侧的步骤流程图;

图5是本申请实施例的一种通信报文示意图;

图6是本申请的另一种数据通信方法实施例服务器侧的步骤流程图;

图7是本申请实施例的一种设备交互结构示意图;

图8是本申请实施例的一种电子设备和服务器的交互示意图;

图9是本申请实施例中一种示例的数据通信方法的步骤流程图;

图10是本申请实施例中另一种示例的数据通信方法的步骤流程图;

图11是本申请一种数据通信装置实施例的结构框图;

图12是本申请一种数据通信装置可选实施例的结构框图;

图13是本申请另一种数据通信装置实施例的结构框图;

图14是本申请另一种数据通信装置可选实施例的结构框图;

图15是本申请实施例中一种示例的数据通信装置的结构框图;

图16是本申请实施例中另一种示例的数据通信装置的结构框图;

图17是本申请一实施例提供的设备的硬件结构示意图;

图18是本申请另一实施例提供的设备的硬件结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

本申请实施例可应用于电子设备和服务器交互的各种场景下。如应用在物联网领域中,该电子设备为物联网设备,物联网设备可与云端的服务器通信,进行数据交互、管理、控制等操作。其中,物联网设备为物联网系统的各种电子设备,这些电子设备可支持音频、视频、数据等至少一方面的功能,如智能家居设备、智能厨电设备、安保设备、车载设备等。其中,不同电子设备的设备性能不同,有些设备的性能较好,具有较好的存储、计算能力,而有些电子设备的性能较差、资源受限,即电子设备只有少量的内存空间和有限的计算能力;因此在电子设备与服务器交互的过程中,既要考虑数据安全,也要考虑电子设备自身性能。本申请提供的数据通信方法,在设备认证通过后采用长连接方式与服务器通信,并且业务数据加密传输,从而既能够减少由于反复重连带来的资源消耗,又能够保证数据安全。

参照图1,示出了本申请实施例的一种交互系统的示意图。

交互系统包括:电子设备102、服务器104,其中,服务器104可为一台服务器,也可为多台服务器构成的服务器集群。

电子设备102可和服务器104在初始可通过短连接的方式交换通信密钥,以便于后续长连接的安全通信交互。即电子设备102可生成数据请求,该数据请求中携带进行设备认证的参数,如签名等数据。服务器104依据数据请求进行设备认证,在认证通过后获取会话参数,该会话参数为长连接会话所需的参数,会话参数可包括会话标识和通信密钥。会话标识token为所建立长连接会话的标识,会话标识可验证连接是否可信;通信密钥为电子设备和服务器之间通信交互的密钥,通信密钥可生成、验证签名,也可加、解密业务数据。服务器104生成数据请求对应的响应信息,在该响应信息中携带会话参数,然后发送响应信息给电子设备102。

电子设备102对应从响应信息中获取会话参数,然后可采用会话标识与服务器104建立长连接,即依据该会话标识发送会话建立报文给服务器104,服务器104依据会话建立报文验证会话标识,通过后建立与电子设备102之间的长连接会话。此后,电子设备102和服务器104之间可传输加密的业务数据。通过通信密钥进行业务数据的加、解密。

从而能够先通过短连接与服务器进行认证,在设备认证通过后采用长连接方式与服务器通信,并且采用长连接传输加密的业务数据,从而既能够减少由于反复重连带来的资源消耗,又能够保证数据安全。

参照图2,示出了本申请的一种数据通信方法实施例服务器侧的步骤流程图,可包括如下步骤:

步骤202,接收数据请求并依据所述数据请求进行设备认证。

步骤204,在所述设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥。

步骤206,依据所述会话标识建立长连接。

步骤208,通过所述长连接接收加密的业务数据,并依据所述通信密钥对所述加密的业务数据进行解析。

云端的服务器可接收电子设备的数据请求,如电子设备的设备认证请求等,然后从该数据请求中获取请求参数进行设备认证,如获取设备签名进行设备认证。在设备认证通过后,确认该电子设备为可信设备,可获取会话标识和通信密钥,会话标识和通信密钥可按照一定规则获取,如随机分配一会话标识,从数据库中获取一通信密钥等。然后将会话标识和通信密钥作为会话参数,生成针对该数据请求的响应信息,在响应信息中携带会话参数,再将响应信息发送给对应的电子设备。

服务器可接收电子设备要求建立长连接的会话建立报文,依据该会话建立报文中的会话标识判断当前连接可信后,可建立服务器和电子设备之间的长连接会话。然后电子设备和服务器之间可传输加密的业务数据。通过通信密钥进行业务数据的加、解密。即在服务器通过长连接接收到加密的业务数据后,可对加密的业务数据进行解析,如验证签名、解密数据等,从而获取相应的业务数据,继续执行后续的处理操作。

参照图3,示出了本申请的一种数据通信方法实施例电子设备侧的步骤流程图,可包括如下步骤:

步骤302,发送设备认证请求,通过设备认证后,接收会话参数,其中,所述会话参数包括会话标识和通信密钥。

步骤304,依据所述会话标识建立长连接。

步骤306,通过所述长连接传输采用所述通信密钥进行加密的业务数据。

电子设备可生成数据请求如设备认证请求,该设备认证请求用于请求认证设备并获取长连接所需的会话参数,因此该设备认证请求中可携带请求参数如签名等,便于服务器进行设备认证,确认该电子设备为可信设备。因此在服务器的设备认证通过后,可回传响应信息,电子设备可从响应信息中获取会话参数,该会话参数包括会话标识和通信密钥。然后基于会话标识生成会话建立报文,将会话建立报文发送给服务器以建立长连接会话。在长连接建立成功后,可基于通信密钥对业务数据进行加、解密,并通过长连接传输。如将业务数据采用通信密钥加密后,通过长连接传输给服务器。

综上,可依据数据请求进行设备认证,从而确定可信设备,并在设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥,然后可基于会话标识建立长连接,通过长连接保持数据通信,无需重连后传输数据,有效减少资源的消耗,并且对于通过长连接传输的加密的业务数据,可采用通信密钥进行解析,能够保证业务数据的安全。

参照图4,示出了本申请的另一种数据通信方法实施例电子设备侧的步骤流程图,可包括如下步骤:

步骤402,确定设备密钥为签名密钥,并确定设备标识和时间信息为签名内容;依据所述签名密钥和签名内容计算设备签名。

步骤404,将所述设备签名、签名内容构成请求参数,并生成对应的设备认证请求。

步骤406,发送设备认证请求。

电子设备可获取设备密钥、设备标识和时间信息等,其中,设备密钥devicesecret为电子设备对应的密钥,如为私钥;设备标识deviceid为电子设备的唯一标识,该设备密钥和设备标识可预置于电子设备的芯片中。时间信息可为序列号seqnum,如时间戳等。本申请实施例可采用各种签名算法计算签名,其中,对于设备签名的计算,可将设备密钥作为签名密钥,将设备标识和时间信息作为签名内容,然后依据所述签名密钥和签名内容计算设备签名。便于后续依据该设备签名进行设备认证。可生成向服务器请求会话的设备认证请求,并且,可将设备签名、签名内容(即设备标识和时间信息)构成请求参数,添加到设备认证请求中,然后发送设备认证请求给服务器。从而,服务器可将设备标识和时间信息为签名内容,并获取设备密钥作为签名密钥计算签名,来验证与设备签名是否相同。

例如,设备签名为signa、设备标识为deviceid、时间信息为timestamp、设备密钥为devicesecret。则设签名密钥key=devicesecret,签名内容content=deviceid&timestamp,signa=hmac(key,content)。从而可以计算出设备签名,并且可将设备标识和时间信息明文添加到设备认证请求中,便于服务器端通过设备签名验证设备。

步骤408,接收响应信息,从所述响应信息中获取会话参数。

服务器端验证通过后可基于会话参数生成响应信息,电子设备接收到响应信息后可响应信息中获取会话参数,即会话标识和通信密钥。

步骤410,依据所述会话标识生成会话建立报文,发送所述会话建立报文。

然后可基于该会话标识生成会话建立报文,该会话建立报文中可携带设备信息、会话标识等信息,然后发送会话建立报文。其中,会话建立报文可为初始建立会话时发送的报文,也可为会话断开后重连的报文,其中,会话可能由于网络等问题断开。其中,会话建立报文可携带设备信息,如设备的mac地址等信息,也可携带会话标识token,也可携带一些需要加密的数据。

然后服务器可基于该会话报文中的参数进行校验,可校验该会话标识是否是准确的,又如校验该会话标识对应的设备信息是否一致等。在确认校验通过后,可在电子设备和服务器之间建立长连接,即建立对应的tcp(transmissioncontrolprotocol,传输控制协议)传输通道。

步骤412,通过所述长连接传输加密的业务数据。

在长连接建立后,服务器和电子设备可进行加密的业务数据的传输交互。即电子设备可发送加密的业务数据给服务器,电子设备也可接收服务器发送的加密的业务数据。

其中,电子设备可采用通信密钥对业务数据进行加密后,通过所述长连接传输,包括:依据业务数据的通信参数和通信密钥,确定对应的报文签名;按照加密算法对所述业务数据进行加密,采用加密的业务数据和报文签名构成通信报文;通过所述长连接传输所述通信报文。可获取需要传输的业务数据,采用通信报文传输该业务数据。即可确定该业务数据的通信参数,如数据长度等,还可获取会话参数中的通信密钥,然后基于该通信参数和通信密钥可生成对应的报文签名。并且可按照加密算法采用通信密钥对业务数据进行加密,得到加密的业务数据。然后,采用该加密的业务数据和报文签名构成通信报文,当然能够用于验证报文签名的通信参数等也可添加到通信报文中。

其中,所述依据业务数据的通信参数和通信密钥,确定对应的报文签名,包括:将所述业务数据的通信参数和时间信息作为签名内容,将所述通信密钥作为签名密钥;依据所述签名密钥和签名内容,计算对应的报文签名。可获取业务数据的通信参数,包括业务所属队列数据topic、业务数据的长度length等,还可获取时间信息如时间戳等,将通信参数和时间信息作为签名内容。还可将通信密钥作为签名密钥,然后依据所述签名密钥和签名内容,计算对应的报文签名。例如,时间信息为seqnum,可使用时间戳,hmac为防消息篡改的一种签名算法,其中,签名内容即加签原始值content=topic+seqnum+length(业务数据长度),key=签名密钥,则报文签名signb=hmac(key,content)。

所述按照加密算法对所述业务数据进行加密,采用加密的业务数据和报文签名构成通信报文,包括:按照加密算法,采用所述通信密钥对业务数据进行加密,得到加密的业务数据;将加密的业务数据添加到通信报文中,并将所述报文签名、通信参数和时间信息添加到通信报文的有效位置。本申请实施例可预先设置加、解密算法如对称加密算法,可按照该加密算法,采用通信密钥对业务数据进行加密,得到对应加密的业务数据。然后可将加密的业务数据添加到通信报文中,再将报文签名、通信参数和时间信息添加到通信报文的有效位置payload中。

一种通信报文的示例如图5所示,该通信报文包括数据头header和数据body,其中,该通信报文可采用动态可变长算法,即该通信报文是长度可变的,图5仅为一种示例并不限制通信报文的长度。在数据body至少包括加密的业务数据和有效位置payload(也称为有效载荷),有效位置payload用于承载业务数据的相关参数,从而便于校验该通信报文。如图5的示例中,在有效位置payload承载有时间信息seqnum、报文签名hmac和报文签名的签名内容content。从而能够基于签名内容content和存储的通信密钥计算第二验证签名,来检验报文签名是否准确。还可通过时间信息seqnum检验该通信报文是否为已接收报文。

本申请实施例中,通信密钥可为一个密钥,即在对于报文签名的处理和业务数据的加解密时采用相同的通信密钥,也可为两个密钥,即在生成报文签名、验证报文签名是采用一个密钥(可称为第一通信密钥),在加、解密业务数据时采用另一个密钥(可称为第二通信密钥)。

其中,电子设备也可接收服务器发送的加密的业务数据,即可接收通信报文,依据所述通信密钥对所述通信报文的报文签名进行验证;在所述签名验证通过后,采用所述通信密钥对所述通信报文进行解密。可接收通信报文,然后从通信报文的有效位置中获取时间信息、通信参数等,在获取该电子设备对应的通信密钥,然后可确定对应的签名内容、签名密钥来计算验证的签名,基于该验证的签名和报文签名进行验证,在验证通过后可解密该通信报文中的业务数据。若认证未通过可丢弃该通信数据。从而可基于长连接实现电子设备和服务器之间的加密通信,在减少资源消耗的基础上保证数据安全。

参照图6,示出了本申请的另一种数据通信方法实施例服务器侧的步骤流程图,可包括如下步骤:

步骤602,接收数据请求;从所述数据请求中获取设备签名,并依据所述数据请求计算第一验证签名。

服务器可接收电子设备的数据请求,然后从该数据请求中获取设备签名,并且获取签名内容等数据来计算用于验证设备签名的第一验证签名。其中,所述依据所述数据请求计算第一验证签名,包括:从所述数据请求中获取设备标识和时间信息;将设备标识和时间信息作为签名内容,获取设备密钥作为签名密钥;依据所述签名密钥和签名内容计算第一验证签名。从所述数据请求中获取设备标识和时间信息,然后将设备标识和时间信息作为签名内容,获取预先存储的该设备标识对应的设备密钥,将该设备密钥作为签名密钥,然后可依据所述签名密钥和签名内容计算第一验证签名,计算签名算法与电子设备端一致。

步骤604,判断计算的第一验证签名和获取的设备签名是否一致。

将计算得到的第一验证签名和从数据请求中获取的设备签名进行比较,判断两者是否一致。若是,即第一验证签名和获取的设备签名一致,执行步骤606;若否,即第一验证签名和获取的设备签名不一致,执行步骤626。

步骤606,获取会话参数并生成响应信息,发送所述响应信息。

第一验证签名和获取的设备签名一致,确认该设备校验通过,可获取为该电子设备分配的会话标识和通信密钥,将会话标识和通信密钥作为会话参数,没容纳后依据会话参数设备响应信息,发送该响应信息。

步骤608,接收会话建立报文,从所述会话建立报文中获取会话标识。

步骤610,依据会话标识判断所述电子设备的连接是否可信。

服务器端基于会话参数可发送会话建立报文给服务器,服务器可从该会话建立报文中获取会话标识,及其他报文建立参数,如设备信息、签名等,服务器可校验该会话标识是否是准确的,也可依据该会话标识确定对应的校验信息,判断该校验信息和设备信息、签名等是否相同。

例如,设备信息包括设备mac等信息、会话标识为token,报文的加密信息mqtt_password=加密后的(deviceid=xxx&timestamp=xxx&sign=xxx)。则服务器成功解析信息后,根据token关联的通信密钥,依次解密password,再验证deviceid和sign的合法性,成功后即建立了tcp传输通道。否则连接拒绝。

若是,即判断所述电子设备的连接可信,执行步骤612;若否,即判断所述电子设备的连接不可信,执行步骤626。

步骤612,建立对应的长连接。

判断所述电子设备的连接可信,在确认校验通过,可在电子设备和服务器之间建立长连接,即建立对应的tcp传输通道。

在长连接建立后,服务器和电子设备可进行加密的业务数据的传输交互。即电子设备可发送加密的业务数据给服务器,服务器也可发送的加密的业务数据给电子设备。

以服务器接收电子设备发送的加密数据为例,服务器可对通信报文进行解析,包括以下至少一个步骤:对所述加密的业务数据进行解密;对所述通信报文的报文签名进行校验;对所述通信报文进行重放校验,即校验所述通信报文是否为已接收报文。在通信报文传输的过程中,有些通信报文可能会被劫持,然后篡改报文或者发起重放攻击,其中,重放攻击是指攻击者发送一个目的主机已接收过的包,从而达到通过认证、欺骗系统的目的,可用于身份认证过程中破坏认证的安全性。即系统可能会接收到重复发送的通信报文,该通信报文可能是由重放攻击导致的,也可能是其他原因导致的,但是对于已接收报文无需重复接收、存储,本实施例通过重放校验判断通信报文是否为已接收报文,从而可丢弃重复的已接收报文,保留未接收报文。并且,可通过解析、签名校验等检测通信报文是否被篡改,防止篡改报文导致系统的安全问题。其中,上述三个步骤其中至少两个执行时,不限制各步骤的先后顺序。本实施例中,以先执行重放校验,再校验签名、解密数据为例。

其中,重放校验包括如下步骤614-616、626。

步骤614,接收通信报文,并从所述通信报文中获取时间信息,计算所述时间信息对应的散列值。

步骤616,判断所述散列值是否在校验集合中。

可依据通信报文中有效位置的时间信息,校验通信报文是否为已接收报文,例如确定该时间信息是否准确,之前是否有同一时间的业务数据等。本实施例中,可依据该时间信息对应的散列值来进行重发校验。其中,可在服务器的内存中设置校验集合bloomfilter,该校验集可用于检测一个元素是不是集合中的成员,具有很好的空间和时间效率。即可在校验集合中设置一定数量的成员位置,如0-9这10个成员位置,每个成员位置初始值(元素)为0,计算得到的散列值也在0-9之间,从而可确定散列值对应在校验集合中的成员位置,如散列值为1,则为第2个成员位置,如果该成员位置的值为0,则表征该位置不具有数据,即散列值在校验集合中,可将该成员位置的值置1。如果该成员位置的值为1,表征该位置已具有数据,即散列值不在校验集合中。其中,散列值可计算时间信息的hash值、md5值等确定。

若是,即散列值在校验集合中,执行步骤618;若否,即散列值不在校验集合,执行步骤626。

签名校验可包括如下步骤618-620、626。

步骤618,从所述通信报文中获取报文签名,并依据所述通信报文计算第二验证签名。

然后可从通信报文中获取报文签名,并且依据通信报文有效位置的数据计算第二验证签名,该第二验证签名用于验证报文签名。

其中,所述依据通信报文计算第二验证签名,包括:从所述通信报文中获取通信参数和时间信息;将通信参数和时间信息作为签名内容,获取通信密钥作为签名密钥;依据所述签名密钥和签名内容计算第二验证签名。从所述通信报文的有效位置中获取通信参数和时间信息,然后将将通信参数和时间信息作为签名内容,获取该通信报文对应会话标识的通信密钥,将该通信密钥作为签名密钥,依据所述签名密钥和签名内容计算第二验证签名。从而通过对于报文签名的校验,可以防止通信报文中的明文信息被篡改,如有效位置中的时间信息等,提高数据的安全性。

步骤620,判断计算的第二验证签名和获取的报文签名是否一致。

若是,即第二验证签名和获取的报文签名一致,执行步骤622;若否,即第二验证签名和获取的报文签名不一致,执行步骤626。

步骤622,按照解密算法,采用所述通信密钥对业务数据进行解密,得到对应的业务数据。

按照与电子设备端加密算法对应的解密算法,采用所述通信密钥对业务数据进行解密,得到对应的业务数据。

步骤624,更新对应的校验集合。

本实施例中,若散列值在校验集合中,可更新对应的校验集合,如将对应成员位置的值置为1,此后该成员位置的数据重发就会被检测到并丢弃。其中,可在判断不为已接收报文后即更新对应的校验集合。为了保证数据的准确性,也可在验证签名通过且解密得到业务数据后,再更新校验集合。

步骤626,丢弃该通信报文。

本实施例中,在设备校验、签名校验、可信校验、数据解析等各场景下不符合条件后,丢弃该通信报文。

本申请实施例中,签名等计算时可依据时间信息计算,该时间信息可为时间戳等信息,对于长连接传输的通信报文,服务器还可对每个电子设备的会话,依据时间戳判断消息是否在时间误差范围内,若超出该时间误差范围则丢弃该通信报文,如果在时间误差范围内则继续处理。

本申请实施例中,服务器可设置一个或多个校验集合bloomfilter,如设置一个全局校验集合,则所有业务可共享该校验集合;又如每个业务分别设置一个校验集合,从而依据通信报文所属的业务确定对应的校验集合来进行重放校验;又如针对每个会话设置一校验集合,从而不同的长连接会话采用不同的校验集合进行重放校验。

其中,校验集合bloomfilter中成员位置被置1即插入的元素后即已接收到对应的通信报文,而校验集合bloomfilter中插入的元素越多,错判“在集合内”的概率就越大,这是因为不同时间信息对应计算得到的散列值并不是绝对唯一的,即可能出现相同的情况,而插入越多元素即越多的成员位置被填充,则剩余的成员位置就越少,计算出相同散列值的概率就越大。在一个实验场景下,设校验集合bloomfilter的容量为631kb(千字节),则对于每天发送1000条消息的设备而言,当设备在线10天时,也就是在校验集合bloomfilter接收到1万条报文时,误判率为0%;类似的,当该设备在线100天时,也就是在校验集合bloomfilter接收到10万条报文时,误判率为0%;类似的,当该设备在线200天时,也就是在校验集合bloomfilter接收到20万条报文时,误判率为0.0004%。因此随着接收消息数量的增加,校验集合bloomfilter的误判率也会增加,为了保证校验集合bloomfilter的准确性,可在满足一定重置条件后重置该校验集合。校验集合的重置方法可基于各种场景下的实验结果以及校验集合bloomfilter的具体设置方法确定。

例如对于全局的校验集合,可依据校验集合的容量,以及服务器单位时间所接收各种业务对应通信报文的总量,确定重置条件,从而在满足重置条件后重置校验集合。例如设置重置条件为至多达到校验集合容量的50%;又如依据接收的数据量确定达到校验集合容量的50%通常是10天,则设置重置条件为10天。

对于业务对应的校验集合,也可与全局校验集合类似,依据校验集合的容量,以及服务器单位时间所接收该业务对应通信报文的总量,确定重置条件,如重置条件为至多达到校验集合容量的50%,或者达到集合容量的50%的时间等。

对于会话对应的校验集合,可按照上述容量和通行报文的数量的方式确定重置条件,也可按照其他方式,如依据会话的时效确定重置条件。其中,长连接会话通常具有时效性,即一个会话标识对应的长连接具有连接时间阈值,如为24小时。则本申请一个可选实施例中,校验集合的重置时间达到时间阈值,重置所述校验集合。即在该长连接会话有效的时间内,设置重建条件为依据时间判断的条件,即设置校验集合的时间阈值,如为10小时,则校验集合的重置时间达到时间阈值即满足重置条件,重置所述校验集合,之后重新计算校验集合的重置时间,并与时间阈值进行比较。对于长连接的时效性,可通过token通过分布式锁控制只允许一个登录请求,并且有实效性,比如24小时后token失效,电子设备需要重新认证。

服务器也可按照加密算法对所述业务数据进行加密,采用加密的业务数据和报文签名构成通信报文。即依据业务数据的通信参数和通信密钥,确定对应的报文签名;按照加密算法对所述业务数据进行加密,采用加密的业务数据和报文签名构成通信报文;通过所述长连接传输所述通信报文。可获取需要传输的业务数据,采用通信报文传输该业务数据。即可确定该业务数据的通信参数,如数据长度等,还可获取会话参数中的通信密钥,然后基于该通信参数和通信密钥可生成对应的报文签名。并且可按照加密算法采用通信密钥对业务数据进行加密,得到加密的业务数据。然后,采用该加密的业务数据和报文签名构成通信报文,当然能够用于验证报文签名的通信参数等也可添加到通信报文中。其中,所述依据业务数据的通信参数和通信密钥,确定对应的报文签名,包括:将所述业务数据的通信参数和时间信息作为签名内容,将所述通信密钥作为签名密钥;依据所述签名密钥和签名内容,计算对应的报文签名。服务器可获取业务数据的通信参数,包括业务所属队列数据topic、业务数据的长度length等,还可获取时间信息如时间戳等,将通信参数和时间信息作为签名内容。还可将通信密钥作为签名密钥,然后依据所述签名密钥和签名内容,计算对应的报文签名。例如,时间信息为seqnum,可使用时间戳,hmac为防消息篡改的一种签名算法,其中,签名内容即加签原始值content=topic+seqnum+length(业务数据长度),key=签名密钥,则报文签名signb=hmac(key,content)。所述按照加密算法对所述业务数据进行加密,采用加密的业务数据和报文签名构成通信报文,包括:按照加密算法,采用所述通信密钥对业务数据进行加密,得到加密的业务数据;将加密的业务数据添加到通信报文中,并将所述报文签名、通信参数和时间信息添加到通信报文的有效位置。本申请实施例可预先设置加、解密算法如对称加密算法,可按照该加密算法,采用通信密钥对业务数据进行加密,得到对应加密的业务数据。然后可将加密的业务数据添加到通信报文中,再将报文签名、通信参数和时间信息添加到通信报文的有效位置payload中。

参照图7,示出了本申请实施例的一种设备交互结构示意图。

电子设备包括:数据应用模块、加密认证模块和芯片;服务器包括:通信协议解析模块和分布式认证模块。当然,电子设备和服务器还可包括其他架构组成部分,本申请实施例不一一列举。其中:

芯片为电子设备内置的芯片,可包括只读寄存器rom,在电子设备出厂时烧录了唯一的设备标识deviceid和设备密钥devicesecret,该设备密钥可为私钥,一般不容易破解,拆解后可自动销毁。

加密认证模块用于与服务器交换密钥,如通过udp(userdatagramprotocol,用户数据报协议)短连接方式获取通信密钥。本申请实施例中,电子设备和服务器之间的短连接可使用coap(constrainedapplicationprotocol,受限的应用协议),并基于dtls(datagramtransportlayersecurity,数据包传输层安全性协议)加密。加密认证模块还可提供一些安全函数,如:用于获取当前会话token的函数、用于加密某个数据的函数、用于解密某个密文的函数、用于请求签名的函数,用于请求验证签名的函数等。

数据应用模块即业务逻辑的sdk(softwaredevelopmentkit,软件开发工具包)层,数据应用模块可与服务器保持tcp长连接,使用加密认证模块得到的token与服务器建立长连接,以及后续数据传输中使用加密认证模块函数进行加、解密。其中,业务数据的加解密可通过各种算法实现,如对称算法的des(dataencryptionstandard,数据加密标准)算法、aes(advancedencryptionstandard,高级加密标准)算法等,又如采用非对称加密算法。

分布式认证模块可基于coap协议下的restful,其中,coap协议更精简,对设备资源要求不高。可在认证成功后生成本次会话token以及关联的通信密钥的会话参数。

通信协议解析模块可基于tcp协议,负责会话认证。其中,本申请实施例的会话认证,可采用mqtt(messagequeuingtelemetrytransport,消息队列遥测传输)协议进行connect报文认证,该认证报文在首次连接或重连时发送一次即可,如果不认证会话而直接发出业务数据,服务器可拒绝该业务数据。

基于上述结构可实现电子设备和服务器之间的加密通信交互。设置独立的加密认证模块,并提供硬件来提升确保设备密钥安全性,从而系统中上层应用模块只负责数据传输,不感知密钥信息,有利于不同模块厂商的交付过程的安全保护。

参照图8,示出了本申请实施例的一种电子设备和服务器的交互示意图。

8.02、电子设备发送数据请求给服务器。

电子设备的加密认证模块可从芯片中获取设备标识和设备密钥,然后基于设备密钥、设备标识、时间戳生成设备签名,基于设备签名、设备标识、时间戳生成数据请求,然后可通过udp短连接方式发送数据请求。其中,短连接可使用coap协议,可基于dtls加密。

8.04、服务器依据数据请求认证设备签名,在设备签名的认证通过后,基于会话参数生成响应信息,发送响应信息给电子设备。

服务器的分布式认证模块可基于coap协议下的restful,依据数据请求计算签名,并与设备签名进行比对,在设备签名的认证通过后生成本次会话token以及关联的通信密钥的会话参数,基于该会话参数生成响应信息,发送响应信息给电子设备。

8.06、电子设备和服务器之间建立长连接。

电子设备的数据应用模块可与服务器保持tcp长连接,即使用加密认证模块得到的token与服务器建立长连接,以及后续数据传输中使用加密认证模块函数进行加、解密。服务器的通信协议解析模块可基于tcp协议,来进行会话认证。在认证通过后与电子设备建立并保持tcp长连接。

在长连接建立后,服务器和电子设备可进行加密的业务数据的传输交互。即电子设备可发送加密的业务数据给服务器,服务器也可发送的加密的业务数据给电子设备。本示例以服务器接收电子设备发送的加密数据为例,

8.08、电子设备获取业务数据,依据业务数据和通信密钥生成报文签名,并对业务数据进行加密,得到对应的通信报文。

电子设备的数据应用模块可获取业务数据,依据加密认证模块提供的函数生成报文签名,以及对业务数据进行加密,得到相应的通信报文。

8.10、电子设备发送通信报文给服务器。

8.12、服务器对通信报文进行重发校验、报文签名校验以及业务数据的解密处理。

服务器的通信协议解析模块可在接收到通信报文后,以及时间戳进行重发校验,以及通信报文的有效位置进行报文签名校验,并且可对加密的业务数据进行解密,以便于后续处理。

本申请实施例中,设置独立的加密认证模块,并提供硬件来提升确保设备密钥安全性,从而系统中上层应用模块只负责数据传输,不感知密钥信息,有利于不同模块厂商的交付过程的安全保护,同时能够减少重连过程的开销,无需每次做认证,只需tcp握手。

基于tcp明文报文,本实施例增加了时间信息、签名、加密等处理,并且在服务器端通过校验结合bloomfilter的刷新策略,防止数据的重放攻击,通过签名校验、加解密处理,有效的防止了消息被篡改。

上述实现电子设备和服务器之间的加密通信交互,实际处理中,这种加密通信的技术构思可应用于各种场景下。如可不限于在电子设备和服务器之间建立长连接,也可用于短连接等各种客户端和服务器之间的连接方式。又如通信报文的密钥可预先设置在电子设备侧,而无需服务器在认证后传输,或者设备在请求建立会话的过程中,服务器实时为其分配会话标识等。

一个示例中,数据通信方法包括如下步骤:

参照图9,示出了本申请实施例中一种示例的数据通信方法的步骤流程图,可包括如下步骤:

步骤902,接收请求并依据所述请求进行认证。

步骤904,在所述认证通过后,发送会话参数,其中,所述会话参数包括会话标识和/或密钥。

步骤906,依据所述会话参数建立连接。

步骤908,通过所述连接接收加密数据,并依据所述会话参数对所述加密数据进行解析。

设备(如服务器、电子设备等)可接收请求,该请求用于进行认证,如对于设备、数据等的安全认证,基于所需认证的内容不同,该请求中可携带不同的请求参数,然后基于相应的请求参数执行对应类型的认证。例如认证设备标识、mac地址等是否为已注册的设备、如上述实施例中通过签名认证设备,认证用户是否为已知用户如注册用户等。

在所述认证通过后,可获取会话参数并发送该会话参数。例如生成携带会话参数的响应信息,然后传输该响应信息,则该响应信息可用于反馈认证通过以及返回会话参数。其中,该会话参数用于配置安全传输的连接,如短连接、长连接等。会话参数包括会话标识和/或密钥,该会话标识可用于建立会话,或通知电子设备建立会话等连接。密钥可为连接后通信所需的密钥,也可为其他设备、数据认证所需的密钥。

然后可建立连接,该连接可依据会话标识建立,其中在会话参数中没有会话标识时,可请求连接后分配会话标识并建立接连,若会话参数中存在会话标识,则请求建立连接时直接依据该会话标识建立、认证即可。

会话参数中可具有密钥,从而在后续数据交互过程中,可采用该密钥进行加密处理、解密处理和/或签名处理等各种安全处理,若会话参数中不具有密钥,则可在后续连接建立等过程中获取密钥,也可预先存储在设备中或在各种需要的场景下获取密钥。从而对于通过该连接接收的加密数据,可采用密钥进行解析,如解密数据、验证签名等,也可对要传输的数据通过密钥进行加密、设置签名等处理后得到加密数据,通过该连接传输。

另一个示例中,数据通信方法包括如下步骤:

参照图10,示出了本申请实施例中另一种示例的数据通信方法的步骤流程图,可包括如下步骤:

步骤1002,发送会话参数,其中,所述会话参数包括会话标识和/或密钥。

步骤1004,依据所述会话标识建立连接。

步骤1006,通过所述连接接收加密数据,并依据所述密钥对所述加密数据进行解析。

设备(如服务器、电子设备等)可发出会话参数,该会话参数用于配置安全传输的连接,如短连接、长连接等。会话参数可包括会话标识和/或密钥,该会话标识可用于建立会话,或通知电子设备建立会话等连接。密钥可为连接后通信所需的密钥,也可为其他设备、数据认证所需的密钥。

然后可依据会话参数建立连接,如该连接可依据会话标识建立,其中在会话参数中没有会话标识时,可请求连接后分配会话标识并建立接连,若会话参数中存在会话标识,则请求建立连接时直接依据该会话标识建立、认证即可。

会话参数中可具有密钥,从而在后续数据交互过程中,可采用该密钥进行加密处理、解密处理和/或签名处理等各种安全处理,若会话参数中不具有密钥,则可在后续连接建立等过程中获取密钥,也可预先存储在设备中或在各种需要的场景下获取密钥。从而对于通过该连接接收的加密数据,可采用密钥进行解析,如解密数据、验证签名等,也可对要传输的数据通过密钥进行加密、设置签名等处理后得到加密数据,通过该连接传输。

从而在各种设备之间,可传输会话参数来建立连接,并通过连接传输加密数据。其中,会话标识可在会话参数中获取,从而基于该会话标识建立连接,也可在依据会话参数请求建立连接的过程中获取。密钥可用于对连接传输过程中数据进行加密处理、解密处理、签名设置、签名校验等,从而保证连接传输数据的安全。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

在上述实施例的基础上,本实施例还提供了一种数据通信装置,应用于服务器中。

参照图11,示出了本申请一种数据通信装置实施例的结构框图,具体可以包括如下模块:

请求认证模块1102,用于接收数据请求并依据所述数据请求进行设备认证。

响应模块1104,用于在所述设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥。

长连接建立模块1106,用于依据所述会话标识建立长连接。

数据解析模块1108,用于通过所述长连接接收加密的业务数据,并依据所述通信密钥对所述加密的业务数据进行解析。

综上,可依据数据请求进行设备认证,从而确定可信设备,并在设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥,然后可基于会话标识建立长连接,通过长连接保持数据通信,无需重连后传输数据,有效减少资源的消耗,并且对于通过长连接传输的加密的业务数据,可采用通信密钥进行解析,能够保证业务数据的安全。

参照图12,示出了本申请一种数据通信装置可选实施例的结构框图,具体可以包括如下模块:

请求认证模块1102,用于接收数据请求并依据所述数据请求进行设备认证。

响应模块1104,用于在所述设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥。即获取会话参数并生成对应的响应信息,发送所述响应信息。

长连接建立模块1106,用于依据所述会话标识建立长连接。

数据解析模块1108,用于通过所述长连接接收加密的业务数据,并依据所述通信密钥对所述加密的业务数据进行解析。

报文生成模块1110,用于按照加密算法对所述业务数据进行加密,采用加密的业务数据和报文签名构成通信报文。

重置模块1112,用于若满足重置条件,重置所述校验集合。

其中,所述请求认证模块1102,包括:

接收子模块11022,用于接收数据请求。

设备签名校验子模块11024,用于从所述数据请求中获取设备签名,并依据所述数据请求计算第一验证签名;判断计算的第一验证签名和获取的设备签名是否一致;若计算的第一验证签名和获取的设备签名一致,确认设备认证通过;若计算的第一验证签名和获取的设备签名不一致,确认设备认证未通过。

所述设备签名校验子模块11024,用于从所述数据请求中获取设备标识和时间信息;将设备标识和时间信息作为签名内容,获取设备密钥作为签名密钥;依据所述签名密钥和签名内容计算第一验证签名。

所述长连接建立模块1106,用于接收会话建立报文,从所述会话建立报文中获取会话标识;依据会话标识判断所述电子设备的连接是否可信;若所述电子设备的连接可信,则建立对应的长连接。

所述数据解析模块1108,包括:

报文接收子模块11082,用于通过长连接接收通信报文,所述通信报文包括加密的业务数据。

解密子模块11084,用于对所述加密的业务数据进行解密。

报文签名校验子模块11086,用于包对所述通信报文的报文签名进行校验。

重发校验子模块11088,用于依据时间信息,校验所述通信报文是否为已接收报文;若所述通信报文为已接收报文,丢弃所述通信报文;若所述通信报文为未接收报文,更新对应的校验集合。

其中,在报文接收子模块11082通过长连接接收通信报文后,后续可执行数据解密、签名校验和重放校验中的至少一种,并且不限制不同各解析校验的执行顺序,因此在报文接收子模块11082后,可依据需求确定对解密子模块11084、报文签名校验子模块11086和重发校验子模块11088中任一个或多个子模块的触发执行顺序,如报文接收子模块11082后触发重发校验子模块11088,再触发报文签名校验子模块11086、解密子模块11084。

其中,所述重发校验子模块11088,用于从所述通信报文中获取时间信息,计算所述时间信息对应的散列值;判断所述散列值是否在校验集合中;若所述散列值在校验集合中,确认所述通信报文为已接收报文;若所述散列值不在校验集合中,确认所述通信报文为未接收报文。

其中,所述解密子模块11084,用于按照解密算法,采用所述通信密钥对业务数据进行解密,得到对应的业务数据。

所述报文签名校验子模块11086,用于从所述通信报文中获取报文签名,并依据所述通信报文计算第二验证签名;判断计算的第二验证签名和获取的报文签名是否一致;若计算的第二验证签名和获取的报文签名一致,确认报文签名的校验通过;若计算的第二验证签名和获取的报文签名不一致,确认报文签名的校验未通过。

所述报文签名校验子模块11086,用于从所述通信报文中获取通信参数和时间信息;将通信参数和时间信息作为签名内容,获取通信密钥作为签名密钥;依据所述签名密钥和签名内容计算第二验证签名。

在上述实施例的基础上,本实施例还提供了一种数据通信装置,应用于电子设备中。

参照图13,示出了本申请另一种数据通信装置实施例的结构框图,具体可以包括如下模块:

请求发送模块1302,用于发送设备认证请求,通过设备认证后,接收会话参数,其中,所述会话参数包括会话标识和通信密钥。

建立模块1304,用于依据所述会话标识建立长连接。

数据传输模块1306,用于通过所述长连接传输采用所述通信密钥进行加密的业务数据。

综上,可依据请求进行设备认证,从而确定可信设备,并在设备认证通过后,发送会话参数,其中,所述会话参数包括会话标识和通信密钥,然后可基于会话标识建立长连接,通过长连接保持数据通信,无需重连后传输数据,有效减少资源的消耗,并且对于通过长连接传输的加密的业务数据,可采用通信密钥进行解析,能够保证业务数据的安全。

参照图14,示出了本申请另一种数据通信装置可选实施例的结构框图,具体可以包括如下模块:

请求生成模块1308,用于确定设备密钥为签名密钥,并确定设备标识和时间信息为签名内容;依据所述签名密钥和签名内容计算设备签名;将所述设备签名、签名内容构成请求参数,并生成对应的设备认证请求。

请求发送模块1302,用于发送设备认证请求,通过设备认证后,接收会话参数,其中,所述会话参数包括会话标识和通信密钥。

建立模块1304,用于依据所述会话标识建立长连接。

数据传输模块1306,用于通过所述长连接传输采用所述通信密钥进行加密的业务数据。

报文接收处理模块1310,用于通过所述长连接接收通信报文,依据所述通信密钥对所述通信报文的报文签名进行验证;在所述报文签名验证通过后,采用所述通信密钥对所述通信报文进行解密。

其中,所述建立模块1304,用于依据所述会话标识生成会话建立报文,发送所述会话建立报文,以验证会话可信并建立对应的长连接。

所述数据传输模块1306,包括:

报文签名生成子模块13062,用于依据业务数据的通信参数和通信密钥,确定对应的报文签名。

通信报文生成子模块13064,用于按照加密算法对所述业务数据进行加密,采用加密的业务数据和报文签名构成通信报文。

通信报文传输子模块13066,用于通过所述长连接传输所述通信报文。

所述报文签名生成子模块13062,用于将所述业务数据的通信参数和时间信息作为签名内容,将所述通信密钥作为签名密钥;依据所述签名密钥和签名内容,计算对应的报文签名。

所述通信报文生成子模块13066,用于按照加密算法,采用所述通信密钥对业务数据进行加密,得到加密的业务数据;将加密的业务数据添加到通信报文中,并将所述报文签名、通信参数和时间信息添加到通信报文的有效位置。

本申请实施例还提供了一种数据通信系统,包括电子设备和服务器,其中,所述电子设备包括如上述图8、9对应实施例所述的数据通信装置;所述服务器包括如上述图10、11对应实施例所述的数据通信装置。本实施例中电子设备和服务器对应模块的划分方式与上述图6的划分方式不同,但两者均为设备可具有的模块结构,具体依据需求确定。

在上述实施例的基础上,本申请实施例还提供一种数据通信装置,应用于电子设备、服务器等各种设备中。

参照图15,示出了本申请实施例中一种示例的数据通信装置的结构框图,具体可以包括如下模块:

认证模块1502,用于接收请求并依据所述请求进行认证。

发送模块1504,用于在所述认证通过后,发送会话参数,其中,所述会话参数包括会话标识和/或密钥。

连接建立模块1506,用于依据所述会话参数建立连接。

解析模块1508,用于通过所述连接接收加密数据,并依据所述会话参数对所述加密数据进行解析。

在上述实施例的基础上,本申请实施例还提供一种数据通信装置,应用于电子设备、服务器等各种设备中。

参照图16,示出了本申请实施例中另一种示例的数据通信装置的结构框图,具体可以包括如下模块:

参数发送模块1602,用于发送会话参数,其中,所述会话参数包括会话标识和/或密钥。

连接建立模块1604,用于依据所述会话参数建立连接。

接收并解密模块1606,用于通过所述连接接收加密数据,并依据所述会话参数对所述加密数据进行解析。

本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。

本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得服务器执行如上述实施例中一个或多个所述的方法。本申请实施例还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如上述实施例中一个或多个所述的方法。

图17为本申请一实施例提供的设备的硬件结构示意图,该设备可包括电子设备和服务器等。如图17所示,该设备可以包括输入设备170、处理器171、输出设备172、存储器173和至少一个通信总线174。通信总线174用于实现元件之间的通信连接。存储器173可能包含高速ram(randomaccessmemory,随机存取存储器),也可能还包括非易失性存储nvm(non-volatilememory),例如至少一个磁盘存储器,存储器173中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。

可选的,上述处理器171例如可以为中央处理器(centralprocessingunit,简称cpu)、应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,该处理器171通过有线或无线连接耦合到上述输入设备170和输出设备172。

可选的,上述输入设备170可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如usb接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备172可以包括显示器、音响等输出设备。

在本实施例中,该设备的处理器包括用于执行各设备中数据通信装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。

图18为本申请另一实施例提供的设备的硬件结构示意图。图18是对图17在实现过程中的一个具体的实施例。如图18所示,本实施例的设备包括处理器181以及存储器182。

处理器181执行存储器182所存放的计算机程序代码,实现上述实施例中图1至图10的数据通信方法。

存储器182被配置为存储各种类型的数据以支持在设备的操作。这些数据的示例包括用于在设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器182可能包含随机存取存储器ram,也可能还包括非易失性存储器nvm,例如至少一个磁盘存储器。

可选地,处理器181设置在处理组件180中。该设备还可以包括:通信组件183,电源组件184,多媒体组件185,音频组件186,输入/输出接口187和/或传感器组件188。设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。

处理组件180通常控制设备的整体操作。处理组件180可以包括一个或多个处理器181来执行指令,以完成上述图1至图10方法的全部或部分步骤。此外,处理组件180可以包括一个或多个模块,便于处理组件180和其他组件之间的交互。例如,处理组件180可以包括多媒体模块,以方便多媒体组件185和处理组件180之间的交互。

电源组件184为设备的各种组件提供电力。电源组件184可以包括电源管理系统,一个或多个电源,及其他与为设备生成、管理和分配电力相关联的组件。

多媒体组件185包括在设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(lcd)和触摸面板(tp)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

音频组件186被配置为输出和/或输入音频信号。例如,音频组件186包括一个麦克风(mic),当设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器182或经由通信组件183发送。在一些实施例中,音频组件186还包括一个扬声器,用于输出音频信号。

输入/输出接口187为处理组件180和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。

传感器组件188包括一个或多个传感器,用于为设备提供各个方面的状态评估。例如,传感器组件188可以检测到设备的打开/关闭状态,组件的相对定位,用户与设备接触的存在或不存在。传感器组件188可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与设备间的距离。在一些实施例中,该传感器组件188还可以包括摄像头等。

通信组件183被配置为便于设备和其他设备之间有线或无线方式的通信。设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个实施例中,该设备中可以包括sim卡插槽,该sim卡插槽用于插入sim卡,使得设备可以登录gprs网络,通过互联网与服务器建立通信。

由上可知,在图10实施例中所涉及的通信组件183、音频组件186以及输入/输出接口187、传感器组件188均可以作为图17实施例中的输入设备的实现方式。

本申请实施例提供了一种电子设备,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本申请实施例中一个或多个所述的方法。

本申请实施例还提供了一种服务器,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述服务器执行如本申请实施例中一个或多个所述的方法。

本申请实施例还提供了一种设备,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述服务器执行如本申请实施例中一个或多个所述的方法。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种数据通信方法、一种数据通信装置、一种电子设备、一种服务器、一种存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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