CN112003879B - 用于虚拟场景的数据传输方法、计算机设备及存储介质 - Google Patents

用于虚拟场景的数据传输方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN112003879B
CN112003879B CN202011139407.4A CN202011139407A CN112003879B CN 112003879 B CN112003879 B CN 112003879B CN 202011139407 A CN202011139407 A CN 202011139407A CN 112003879 B CN112003879 B CN 112003879B
Authority
CN
China
Prior art keywords
data packet
virtual scene
key
public key
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011139407.4A
Other languages
English (en)
Other versions
CN112003879A (zh
Inventor
沈飞
张沫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011139407.4A priority Critical patent/CN112003879B/zh
Publication of CN112003879A publication Critical patent/CN112003879A/zh
Application granted granted Critical
Publication of CN112003879B publication Critical patent/CN112003879B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请是关于一种用于虚拟场景的数据传输方法、计算机设备及存储介质,属于网络安全技术领域。该方法包括:响应于终端运行虚拟场景,生成第一公钥和第一私钥;向虚拟场景对应的服务器发送握手请求;接收服务器发送的握手请求响应;基于第一私钥以及第二公钥对加密后的数据包密码进行解密,获得数据包密码;基于数据包密码,在终端和服务器之间传输虚拟场景的数据包。通过上述方案,可以避免在数据包密码因为明文传输而被第三方获取,并且在传输过程中破解利用数据包密码加密的数据包的情况,解决了加密数据包容易被破解的问题,从而提高了虚拟场景中的数据包传输的安全性。

Description

用于虚拟场景的数据传输方法、计算机设备及存储介质
技术领域
本申请涉及网络安全技术领域,特别涉及一种用于虚拟场景的数据传输方法、计算机设备及存储介质。
背景技术
目前,随着网络游戏的发展,无论是端游还是手游,都存在不法分子通过使用外挂打破游戏的公平性,进而影响普通用户的游戏体验,因此,在游戏过程中维护网络安全是十分重要的。
在相关技术中,在游戏进行的过程中,客户端与服务器需要进行游戏数据包的传输,而进行传输的数据包需要通过服务器生成的密码进行加密,服务器将该密码直接发送给客户端,实现加密后的数据包可以由客户端以及服务器进行解密。
相关技术中,服务器与客户端之间传输的密码容易被第三方截获,导致第三方可以利用密码破解加密后的游戏数据包,导致游戏数据包的安全性较低。
发明内容
本申请实施例提供了一种用于虚拟场景的数据传输方法、计算机设备及存储介质,可以提高数据包传输的安全性。该技术方案包括如下内容。
一方面,提供了一种用于虚拟场景的数据传输方法,所述方法由终端执行,所述方法包括:
响应于所述终端运行虚拟场景,生成第一公钥和第一私钥;
向所述虚拟场景对应的服务器发送握手请求,所述握手请求中包含所述第一公钥;所述握手请求用于请求所述虚拟场景的数据包密码;
接收所述服务器发送的握手请求响应,所述握手请求响应包含第二公钥以及加密后的所述数据包密码;
基于所述第一私钥以及所述第二公钥对加密后的所述数据包密码进行解密,获得所述数据包密码;
基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
一方面,提供了一种用于虚拟场景的数据传输方法,所述方法由服务器执行,所述方法包括:
响应于接收到由终端发送的握手请求,生成第二公钥、第二私钥以及数据包密码;所述握手请求中包含第一公钥;
基于所述第一公钥以及所述第二私钥对所述数据包密码进行加密,获得加密后的所述数据包密码;
向所述终端发送握手请求响应,所述握手请求响应包含所述第二公钥以及加密后的所述数据包密码;
基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
一方面,提供了一种用于虚拟场景的数据传输装置,所述装置用于终端中,所述装置包括:
密钥生成模块,用于响应于所述终端运行虚拟场景,生成第一公钥和第一私钥;
请求发送模块,用于向所述虚拟场景对应的服务器发送握手请求,所述握手请求中包含所述第一公钥;所述握手请求用于请求所述虚拟场景的数据包密码;
响应接收模块,用于接收所述服务器发送的握手请求响应,所述握手请求响应包含第二公钥以及加密后的所述数据包密码;
密码获取模块,用于基于所述第一私钥以及所述第二公钥对加密后的所述数据包密码进行解密,获得所述数据包密码;
第一数据传输模块,用于基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
在一种可能的实现方式中,所述密钥生成模块,包括:
密钥生成子模块,用于响应于所述终端运行虚拟场景,生成与所述虚拟场景对应的所述第一公钥,以及,与所述虚拟场景对应的所述第一私钥。
在一种可能的实现方式中,所述密钥生成子模块,包括:
标识获取单元,用于获取所述虚拟场景对应的虚拟场景标识;
密钥生成单元,用于基于所述虚拟场景标识,生成所述第一公钥以及所述第一私钥。
在一种可能的实现方式中,所述请求发送模块,包括:
第一密钥获取子模块,用于响应于存在第三方加密通道,从所述第三方加密通道获取第一密钥;
第一公钥加密子模块,用于根据所述第一密钥对所述第一公钥进行加密,生成加密后的所述第一公钥;
第一请求发送子模块,用于向所述服务器发送包含有加密后的所述第一公钥的所述握手请求。
在一种可能的实现方式中,所述请求发送模块,包括:
第二请求发送子模块,用于响应于所述终端处于指定网络,向所述服务器发送所述握手请求。
在一种可能的实现方式中,所述指定网络是Wi-Fi网络。
在一种可能的实现方式中,所述密码获取模块,包括:
第二密钥生成子模块,用于基于所述第一私钥以及所述第二公钥生成第二密钥;
密码获取子模块,用于通过所述第二密钥对加密后的所述数据包密码进行解密,获得所述数据包密码。
一方面,提供了一种用于虚拟场景的数据传输装置,所述装置用于服务器中,所述装置包括:
密码生成模块,用于响应于接收到由终端发送的握手请求,生成第二公钥、第二私钥以及数据包密码;所述握手请求中包含第一公钥;所述握手请求用于所述终端向所述服务器请求虚拟场景的数据包密码;
密码加密模块,用于基于所述第一公钥以及所述第二私钥对所述数据包密码进行加密,获得加密后的所述数据包密码;
响应发送模块,用于向所述终端发送握手请求响应,所述握手请求响应包含所述第二公钥以及加密后的所述数据包密码;
第二数据传输模块,用于基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
在一种可能的实现方式中,所述密码生成模块,包括:
密码生成子模块,用于响应于所述握手请求中包含虚拟场景标识,生成数据包密码、所述虚拟场景标识对应的所述第二公钥以及所述虚拟场景标识对应的所述第二私钥。
在一种可能的实现方式中,所述响应发送模块,包括:
第一密钥获取子模块,用于响应于存在第三方加密通道,从所述第三方加密通道获取第一密钥;
第二公钥加密子模块,用于根据所述第一密钥对所述第二公钥进行加密,生成加密后的所述第二公钥;
第一响应发送子模块,用于向所述终端发送所述握手请求响应,所述握手请求响应包含有加密后的所述第二公钥以及加密后的所述数据包密码。
在一种可能的实现方式中,所述响应发送模块,包括:
第二响应发送子模块,用于响应于所述终端处于指定网络,向所述终端发送所述握手请求响应。
另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的用于虚拟场景的数据传输方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的用于虚拟场景的数据传输方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的用于虚拟场景的数据传输方法。
本申请提供的技术方案可以包括以下有益效果:
在本申请实施例所示的方案中,在运行虚拟场景的过程中,服务器生成数据包密码,并且根据终端发送的第一公钥以及自身生成的第二私钥进行加密,将加密后的数据包密码发送给终端,由终端根据服务器发送的第二公钥以及自身生成的第一私钥对其进行解密,可以实现在两侧获得一致的数据包密码,并且利用数据包密码对数据包进行传输。通过上述方案,可以避免在数据包密码因为明文传输而被第三方获取,并且在传输过程中破解利用数据包密码加密的数据包的情况,解决了加密数据包容易被破解的问题,从而提高了虚拟场景中的数据包传输的安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种用于虚拟场景的数据传输系统的示意图;
图2是根据一示例性实施例示出的一种用于虚拟场景的数据传输方法的流程图;
图3是根据一示例性实施例示出的一种用于虚拟场景的数据传输方法的流程图;
图4是根据一示例性实施例示出的一种用于虚拟场景的数据传输方法的流程示意图;
图5是根据一示例性实施例示出的一种网络游戏中数据包的传输示意图;
图6是根据一示例性实施例示出的一种用于虚拟场景的数据传输装置的框图;
图7是根据一示例性实施例示出的一种用于虚拟场景的数据传输装置的框图;
图8是根据一示例性实施例示出的一种计算机设备的结构示意图;
图9是根据一示例性实施例示出的计算机设备的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
应当理解的是,在本文中提及的“若干个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
首先,为了方便理解,下面对本公开实施例中涉及的名词进行说明。
1)云安全
云安全(Cloud Security) 是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
云安全主要研究方向包括:1. 云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2. 安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3. 云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
2)DH密钥交换算法(Diffie–Hellman key exchange,DH)
DH密钥交换算法是一种用于网络环境的密钥交换算法,该算法可以在需要安全传输的前提下,确定交换双方的对称密钥,该算法通过接收到的对方的公开密钥以及己方的私用密钥可以计算出同样的对称密钥。其中,公开密钥,也可以称为公钥,是进入网络传输的密钥部分,该部分是公开的可获取的;私用密钥,也可以称为私钥,是由端本身进行保存的密钥部分,该部分是不公开的,对于其他端是保密状态。
3)异或加密算法
异或加密算法是运用异或运算对数据进行加密的算法,异或运算的数学运算符为XOR(exclusive OR,异或),异或运算是数值相同的输出为0,数值不同输出为1的算法,该算法存在可逆性,当数据a与数据b运用异或运算进行加密后输出数据c后,通过对数据b与数据c再次进行异或运算可以输出得到数据a,利用这种可逆性特质,可以运用异或运算对进行异或加密的数据进行解密,实现加密解密的过程。
4)握手协议
握手协议是通讯设备之间进行信息传递之前需要进行的步骤,目的是使需要进行信息传递的设备互相认识并且建立连接。
请参考图1,其示出了本申请一个实施例提供的用于虚拟场景的数据传输系统的示意图。该用于虚拟场景的数据传输系统可以包括:第一终端110、服务器120和第二终端130。
第一终端110安装和运行有支持虚拟环境的应用程序111,该应用程序111可以是多人在线对战程序。当第一终端运行应用程序111时,第一终端110的屏幕上显示应用程序111的用户界面。该应用程序111可以是军事仿真程序、多人在线战术竞技游戏(Multiplayer Online Battle Arena Games,MOBA)、大逃杀射击游戏、模拟战略游戏(Simulation Game,SLG)的任意一种。第一终端110是第一用户112使用的终端,第一用户112使用第一终端110控制位于虚拟环境中的第一虚拟对象进行活动。
第二终端130安装和运行有支持虚拟环境的应用程序131,该应用程序131可以是多人在线对战程序。当第二终端130运行应用程序131时,第二终端130的屏幕上显示应用程序131的用户界面。该客户端可以是军事仿真程序、MOBA游戏、大逃杀射击游戏、SLG游戏中的任意一种,第二终端130是第二用户132使用的终端,第二用户132使用第二终端130控制位于虚拟环境中的第二虚拟对象进行活动,第二虚拟对象可以称为第二用户132的主控虚拟角色。
可选地,第一终端110和第二终端130上安装的应用程序是相同的,或两个终端上安装的应用程序是不同操作系统平台(安卓或IOS)上的同一类型应用程序。第一终端110可以泛指多个终端中的一个,第二终端130可以泛指多个终端中的另一个,本实施例仅以第一终端110和第二终端130来举例说明。第一终端110和第二终端130的设备类型相同或不同,该设备类型包括:智能手机、平板电脑、电子书阅读器、MP3播放器、MP4播放器、膝上型便携计算机和台式计算机中的至少一种。
图1中仅示出了两个终端,但在不同实施例中存在多个其它终端可以接入服务器120。可选地,还存在一个或多个终端是开发者对应的终端,在该终端上安装有支持虚拟环境的应用程序的开发和编辑平台,开发者可在该终端上对应用程序进行编辑和更新,并将更新后的应用程序安装包通过有线或无线网络传输至服务器120,第一终端110和第二终端130可从服务器120下载应用程序安装包实现对应用程序的更新。
第一终端110、第二终端130以及其它终端通过无线网络或有线网络与服务器120相连。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network, LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。本申请在此不做限制。
服务器120包括一台服务器、多台服务器组成的服务器集群、云计算平台和虚拟化中心中的至少一种。服务器120用于为支持三维虚拟环境的应用程序提供后台服务。可选地,服务器120承担主要计算工作,终端承担次要计算工作;或者,服务器120承担次要计算工作,终端承担主要计算工作;或者,服务器120和终端之间采用分布式计算架构进行协同计算。
在一个示意性的例子中,服务器120包括存储器121、处理器122、用户账号数据库123、对战服务模块124、面向用户的输入/输出接口(Input/Output Interface,I/O接口)125。其中,处理器122用于加载服务器120中存储的指令,处理用户账号数据库123和对战服务模块124中的数据;用户账号数据库123用于存储第一终端110、第二终端130以及其它终端所使用的用户账号的数据,比如用户账号的头像、用户账号的昵称、用户账号的战斗力指数,用户账号所在的服务区;对战服务模块124用于提供多个对战房间供用户进行对战,比如1V1对战、3V3对战、5V5对战等;面向用户的I/O接口125用于通过无线网络或有线网络和第一终端110和/或第二终端130建立通信交换数据。其中,虚拟场景可以是三维虚拟场景,或者,虚拟场景也可以是二维虚拟场景。
图2是根据一示例性实施例示出的一种用于虚拟场景的数据传输方法的流程图。该用于虚拟场景的数据传输方法可以应用在图1所示的用于虚拟场景的数据传输系统中,由图1中的终端执行。如图2所示,该用于虚拟场景的数据传输方法包括的步骤如下。
在步骤201中,响应于终端运行虚拟场景,生成第一公钥和第一私钥。
在步骤202中,向虚拟场景对应的服务器发送握手请求,握手请求中包含第一公钥;握手请求用于请求虚拟场景的数据包密码。
在一种可能的实现方式中,响应于终端需要运行相应的虚拟场景,终端向虚拟场景对应的服务器发送握手请求。
在步骤203中,接收服务器发送的握手请求响应,握手请求响应包含第二公钥以及加密后的数据包密码。
在本申请实施例中,终端接收服务器发送的握手请求响应,完成终端与服务器之间的握手过程,使终端与服务器之间的身份相互识别。
在步骤204中,基于第一私钥以及第二公钥对加密后的数据包密码进行解密,获得数据包密码。
在一种可能的实现的方式中,终端通过第一私钥以及第二公钥计算获取第二密钥,通过第二密钥与加密后的数据包密码进行异或运算,解密加密后的数据包密码,获得数据包密码。
在步骤205中,基于数据包密码,在终端和服务器之间传输虚拟场景的数据包。
在本申请实施例中,终端获取到数据包密码后,在向服务器发送数据包之前,通过数据包密码对数据包进行加密;在接收到由服务器发送的加密后的数据包,通过数据包密码对加密后的数据包进行解密,获得数据包。
综上所述,在本申请实施例所示的方案中,在运行虚拟场景的过程中,服务器生成数据包密码,并且根据终端发送的第一公钥以及自身生成的第二私钥进行加密,将加密后的数据包密码发送给终端,由终端根据服务器发送的第二公钥以及自身生成的第一私钥对其进行解密,可以实现在两侧获得一致的数据包密码,并且利用数据包密码对数据包进行传输。通过上述方案,可以避免在数据包密码因为明文传输而被第三方获取,并且在传输过程中破解利用数据包密码加密的数据包的情况,解决了加密数据包容易被破解的问题,从而提高了虚拟场景中的数据包传输的安全性。
图3是根据一示例性实施例示出的一种用于虚拟场景的数据传输方法的流程图。该用于虚拟场景的数据传输方法可以应用在图1所示的用于虚拟场景的数据传输系统中,由图1中的服务器执行。如图3所示,该用于虚拟场景的数据传输方法包括的步骤如下。
在步骤301中,响应于接收到由终端发送的握手请求,生成第二公钥、第二私钥以及数据包密码;握手请求中包含第一公钥。
在步骤302中,基于第一公钥以及第二私钥对数据包密码进行加密,获得加密后的数据包密码。
在一种可能的实现的方式中,服务器通过第一公钥以及第二私钥计算获取第二密钥,通过第二密钥与数据包密码进行异或运算,对数据包密码进行加密,获得加密后的数据包密码。
在步骤303中,向终端发送握手请求响应,握手请求响应包含第二公钥以及加密后的数据包密码。
在步骤304中,基于数据包密码,在终端和服务器之间传输虚拟场景的数据包。
在本申请实施例中,服务器生成数据包密码后,在向终端发送数据包之前,通过数据包密码对数据包进行加密;在接收到由终端发送的加密后的数据包,通过数据包密码对加密后的数据包进行解密,获得数据包。
综上所述,在本申请实施例所示的方案中,在运行虚拟场景的过程中,服务器生成数据包密码,并且根据终端发送的第一公钥以及自身生成的第二私钥进行加密,将加密后的数据包密码发送给终端,由终端根据服务器发送的第二公钥以及自身生成的第一私钥对其进行解密,可以实现在两侧获得一致的数据包密码,并且利用数据包密码对数据包进行传输。通过上述方案,可以避免在数据包密码因为明文传输而被第三方获取,并且在传输过程中破解利用数据包密码加密的数据包的情况,解决了加密数据包容易被破解的问题,从而提高了虚拟场景中的数据包传输的安全性。
当前数据包采用的是对称加密方法,通常在握手协议中事先协商好明文形式的数据包密码,然后对传输的数据包进行加密和解密。由于在握手阶段协商数据包密码是明文传输,所以不法分子可以获取数据包密码来破解数据包。本申请在握手阶段将加密后的数据包密码进行传输,以防止不法分子获取数据包密码破解数据包,提高数据包传输的安全性。
图4是根据一示例性实施例示出的一种用于虚拟场景的数据传输方法的流程示意图。该用于虚拟场景的数据传输方法可以应用于图1所示的用于虚拟场景的数据传输系统中,由图1中的终端与服务器交互执行。如图4所示,该用于虚拟场景的数据传输方法包括的步骤如下。
步骤401中,响应于终端运行虚拟场景,终端生成第一公钥和第一私钥。
在本申请实施例中,当终端在运行支持虚拟环境的应用程序时,终端生成第一公钥以及第一私钥。
在一种可能的实现方式中,响应于终端运行虚拟场景,终端生成与虚拟场景对应的第一公钥,以及,与虚拟场景对应的第一私钥。
其中,在终端中可以存储有各个虚拟场景对应的虚拟场景标识,不同的虚拟场景对应不同的虚拟场景标识,各个虚拟场景标识可以对应不同的第一私钥,并且各个虚拟场景标识可以对应不同或者相同的第一公钥。
在一种可能的实现方式中,终端获取虚拟场景对应的虚拟场景标识,基于虚拟场景标识,生成第一公钥以及第一私钥。
在一种可能的实现方式中,终端获取到虚拟场景对应的虚拟场景标识后,在基于虚拟场景标识,生成第一公钥以及第一私钥时,将虚拟场景标识或者虚拟场景标识的变形数据,添加至生成的第一公钥和第一私钥中。
在另一种可能的实现方式中,终端中可以存储有第一公钥与虚拟场景标识的对应关系表格,也可以存储有第一私钥与虚拟场景标识的对应关系表格,终端通过获取当前需要运行的虚拟场景对应的虚拟场景标识,在对应关系表格中查找对应的第一公钥与第一私钥。
以回合制游戏为例,比如,在运行回合制游戏的过程中,当进行一局对战时,该局对战对应的虚拟场景为同一虚拟场景,对应的虚拟场景标识也为同一标识。所以,在回合制游戏中,每进行一局对战,终端会查询一次对应关系表格,生成一次第一公钥以及第一私钥,并且,各局对战对应的第一公钥与第一私钥可以是不同的。
在另一种可能的实现方式中,响应于终端运行虚拟场景,生成与虚拟场景标识以及用户账号标识对应的第一公钥,以及,与虚拟场景标识以及用户账号标识对应的第一私钥。
其中,终端中可以存储有第一公钥对应的虚拟场景标识与用户账号标识共同决定的表格,以及,也可以存储有第一私钥对应的虚拟场景标识与用户账号标识共同决定的表格,终端通过获取当前需要运行的虚拟场景对应的虚拟场景标识,以及终端侧的登录对应应用程序的用户账号标识在相应的表格中查找对应的第一公钥与第一私钥。
步骤402中,终端向虚拟场景对应的服务器发送握手请求。
在本申请实施例中,终端为了获取在该虚拟场景下的数据包,需要与对应的服务器建立数据传输通道,终端通过向虚拟场景对应的服务器发送握手请求,实现与告知服务器终端的相关信息。
其中,握手请求中包含第一公钥,并且,握手请求用于请求虚拟场景的数据包密码。
在一种可能的实现方式中,终端生成的第一公钥直接发送给对应的服务器,由服务器进行暂时存储。
在另一种可能的实现方式中,终端生成的第一公钥需要进行加密后,将加密后的第一公钥发送给对应的服务器,由服务器对加密后的第一公钥进行解密获取第一公钥,并且进行暂时存储。
其中,响应于存在第三方加密通道,终端从第三方加密通道获取第一密钥,然后终端根据第一密钥对第一公钥进行加密,生成加密后的第一公钥,向服务器发送握手请求,握手请求中包含有加密后的第一公钥。
其中,第一密钥是由第三方加密通道生成的密钥,第一密钥用来对第一公钥进行加密,或者对加密后的第一公钥进行解密。终端和服务器可以从第三方加密通道获取相同的第一密钥。
在一种可能的实现方式中,响应于终端处于指定网络,向服务器发送握手请求。
其中,指定网络是Wi-Fi网络。当终端通过Wi-Fi热点连接网络,运行虚拟场景时,进行数据传输时的数据包会经过启动Wi-Fi热点的第三方设备,通过抓包工具,第三方设备容易在数据传输中获取数据包,所以,在指定网络是Wi-Fi网络时,需要根据本申请实施例所示方案,启动在进行握手的过程中,传输加密后的数据包密码,从而使得即使第三方设备通过抓包工具获取到加密的数据包,也无法在仅获取到加密的数据包密码的情况下,对加密的数据包进行解密,从而提高了数据传输的安全性。
步骤403中,响应于服务器接收到由终端发送的握手请求,服务器生成第二公钥、第二私钥以及数据包密码。
在本申请实施例中,当服务器接收到由终端发送的握手请求时,服务器生成第二公钥、第二私钥以及数据包密码。
其中,握手请求中包含第一公钥,并且握手请求用于终端向服务器请求虚拟场景的数据包密码。第二公钥是由服务器生成的公开密钥,第二私钥是由服务器生成的私用密钥,数据包密码是用于对游戏数据包进行加密的明文密码。
在一种可能的实现方式中,响应于握手请求中包含虚拟场景标识,生成数据包密码、虚拟场景标识对应的第二公钥以及虚拟场景标识对应的第二私钥。
在一种示例性的方案中,在生成数据包密码、虚拟场景标识对应的第二公钥以及虚拟场景标识对应的第二私钥时,服务器将虚拟场景标识或者虚拟场景标识的变形数据,添加至生成的第二公钥和第二私钥中。
在另一种示例性的方案中,服务器中可以存储有第二公钥与虚拟场景标识的对应关系表格,也可以存储有第二私钥与虚拟场景标识的对应关系表格,该对应关系表格可以是与终端中存储的对应关系表格保持一致的表格,服务器通过获取虚拟场景标识,在对应关系表格中查找对应的第二公钥与第二私钥。
在另一种可能的实现方式中,响应于握手请求中包含虚拟场景标识以及用户账号标识,生成与虚拟场景标识以及用户账号标识对应的第二公钥,以及,与虚拟场景标识以及用户账号标识对应的第二私钥。
在一种例性的方案中,在生成数据包密码、虚拟场景标识对应的第二公钥以及虚拟场景标识对应的第二私钥时,服务器将虚拟场景标识以及用户账号标识,或者虚拟场景标识以及用户账号标识的变形数据,添加至生成的第二公钥和第二私钥中。
在另一种示例性的方案中,服务器中可以存储有第二公钥对应的虚拟场景标识与用户账号标识共同决定的表格,以及,也可以存储有第二私钥对应的虚拟场景标识与用户账号标识共同决定的表格,服务器通过从握手请求中获取虚拟场景标识,以及终端侧登录对应应用程序的用户账号标识,在相应的表格中查找对应的第二公钥与第二私钥。
步骤404中,服务器基于第一公钥以及第二私钥对数据包密码进行加密,获得加密后的数据包密码。
在本申请实施例中,服务器通过从终端获取的第一公钥以及自身生成的第二私钥,对生成的数据包密码进行加密,从而获得加密后的数据包密码。
在一种可能的实现方式中,服务器基于第一公钥以及第二私钥生成第二密钥;通过第二密钥对加密后的数据包密码进行解密,获得数据包密码。
其中,服务器通过将第一公钥以及第二私钥通过DH密钥交换算法进行计算生成对应的第二密钥。
在一种可能的实现方式中,根据DH密钥交换算法,第一公钥以及第二公钥通过指定的算法进行计算生成对应的第二密钥,第一公钥与第二私钥经过指定计算生成的第二密钥与第二公钥与第一私钥经过指定计算生成相同的第二密钥。
比如,终端与服务器共同设置p与g,终端生成第一私钥a,服务器生成第二私钥b,根据p、g、第一私钥以及第二私钥分别计算第一公钥以及第二公钥。其中,第一私钥A=g^amod p,第二私钥B=g^b mod p,mod是指计算两个数字相除的余数。服务器通过将第一公钥A以及第二私钥b通过DH密钥交换算法生成的第二密钥是A^b mod p。其中,A^b mod p与B^amod p是相同的。
在一种可能的实现方式中,服务器将计算得到的第二密钥以及数据包密码进行异或运算,获取加密后的数据包密码。
步骤405中,服务器向终端发送握手请求响应。
在本申请实施例中,当服务器生成加密后的数据包密码后,服务器向终端发送握手请求响应。
其中,握手请求响应包含第二公钥以及加密后的数据包密码。握手请求响应用于向发送握手请求的终端发送第二公钥以及加密后的数据包密码,以使终端获取对应服务器的相关信息。
在一种可能的实现方式中,服务器生成的第二公钥以及加密后的数据包密码直接发送给对应的各个终端,由终端进行暂时存储。
在另一种可能的实现方式中,服务器生成的第二公钥需要进行加密后,将加密后的第二公钥发送给对应的终端,由终端对加密后的第二公钥进行解密获取第二公钥,并且进行暂时存储。
其中,响应于存在第三方加密通道,服务器从第三方加密通道获取第一密钥,然后服务器根据第一密钥对第二公钥进行加密,生成加密后的第二公钥,然后向终端发送握手请求响应,握手请求响应包含有加密后的第二公钥以及加密后的数据包密码。
其中,第一密钥是由第三方加密通道生成的密钥,第一密钥用来对第二公钥进行加密,或者对加密后的第二公钥进行解密。终端和服务器可以从第三方加密通道获取相同的第一密钥。
在一种可能的实现方式中,响应于终端处于指定网络,向终端发送握手请求响应。
在一种可能的实现方式中,终端发送的握手请求中包含终端所处的网络类型标识,服务器根据网络类型标识确定终端处于指定网络,向终端发送上述包含第二公钥以及加密后的数据包密码的握手请求响应。
其中,指定网络是Wi-Fi网络。当服务器接收到由终端发送的握手请求之后,并且终端处于指定网络之中时,可以向终端发送握手请求响应。
步骤406中,终端接收服务器发送的握手请求响应,基于第一私钥以及第二公钥对加密后的数据包密码进行解密,获得数据包密码。
在本申请实施例中,终端在接收到由服务器发送的握手请求响应后,获取到由服务器发送的第二公钥以及加密后的数据包密码,终端基于自身生成的第一私钥以及获取到的第二公钥对获取到的加密后的数据包密码进行解密,获得明文形式的数据包密码。
其中,握手请求响应包含第二公钥以及加密后的所述数据包密码。
在一种可能的实现方式中,基于第一私钥以及第二公钥生成第二密钥;通过第二密钥对加密后的数据包密码进行解密,获得数据包密码。
其中,终端通过将第二公钥以及第一私钥通过DH密钥交换算法进行计算生成对应的第二密钥。通过这种方式生成的第二密钥与在服务器中生成的第二密钥保持一致。
在一种可能的实现方式中,根据DH密钥交换算法,第一公钥以及第二公钥通过指定的算法进行计算生成,在服务器中的第一公钥与第二私钥经过指定计算生成的第二密钥与在终端中的第二公钥与第一私钥经过指定计算生成相同的第二密钥。
比如,终端与服务器共同设置p与g,终端生成第一私钥a,服务器生成第二私钥b,根据p、g、第一私钥以及第二私钥分别计算第一公钥以及第二公钥。其中,第一私钥A=g^amod p,第二私钥B=g^b mod p,mod是指计算两个数字相除的余数。终端通过将第二公钥B以及第一私钥a通过DH密钥交换算法生成的第二密钥是B^a mod p。其中,A^b mod p与B^amod p是相同的。
在一种可能的实现方式中,终端将计算得到的第二密钥以及加密后的数据包密码进行异或运算,获取数据包密码。
其中,由于异或运算具有的特性,经过两次异或运算后可以回到初始状态,可以对数据包密码进行异或加密以及异或解密。
步骤407中,基于数据包密码,在终端和服务器之间传输虚拟场景的数据包。
在本申请实施例中,通过上述步骤终端与服务器中存储有数据包密码,当终端向服务器发送数据包之前,终端通过数据包密码对数据包进行加密,生成加密后的数据包,由终端将加密后的数据包发送给服务器,当服务器接收到加密后的数据包时,服务器根据数据包密码对加密后的数据包进行解密,获得数据包,从而获取数据包中的相关信息;当服务器向终端发送数据包之前,服务器通过数据包密码对数据包进行加密,生成加密后的数据包,由服务器将加密后的数据包发送给终端,当终端接收到加密后的数据包时,终端根据数据包密码对加密后的数据包进行解密,获得数据包,从而获取数据包中的相关信息。从而实现终端与服务器之间的数据包传输。
综上所述,在本申请实施例所示的方案中,在运行虚拟场景的过程中,服务器生成数据包密码,并且根据终端发送的第一公钥以及自身生成的第二私钥进行加密,将加密后的数据包密码发送给终端,由终端根据服务器发送的第二公钥以及自身生成的第一私钥对其进行解密,可以实现在两侧获得一致的数据包密码,并且利用数据包密码对数据包进行传输。通过上述方案,可以避免在数据包密码因为明文传输而被第三方获取,并且在传输过程中破解利用数据包密码加密的数据包的情况,解决了加密数据包容易被破解的问题,从而提高了虚拟场景中的数据包传输的安全性。
以应用在UE4(UnrealEngine 4)游戏引擎开发的游戏运行中为例,图5是根据一示例性实施例示出的一种网络游戏中数据包的传输示意图,如图5所示,网络游戏中数据包的传输过程如下所示。
S51,游戏协议数据包采用的是UDP(User Datagram Protocol,用户数据报协议)包,各个终端侧对应有客户端,客户端在本地生成第一私钥以及第一公钥。第一私钥保存在本地内存中,并且随着每局游戏的不同,生成的第一私钥是不同的,不法分子无法在传输过程中获取第一私钥。
S52,客户端请求服务器握手时携带第一公钥。第一公钥在网络上可以以明文的形式进行传输,若存在不法分子,可以在网络传输的过程中获取到第一公钥。
S53,服务器在本地生成第二私钥、第二公钥以及数据包密码。然后,对数据包密码进行加密,首先,密钥= DH[第一公钥, 第二私钥],这里的密钥为上述实施例中的第二密钥,这里通过客户端的第一公钥和本地第二私钥可以计算出密钥。由于密钥在服务器端生成,所以不法分子不能在传输过程中获取。然后,加密后的数据包密码 =XOR[密钥, 数据包密码],这里通过计算出的密钥和明文形式的数据包密码进行加密生成加密后的数据包密码。
S54,服务器在回复客户端时携带第二公钥和加密后的数据包密码。由于加密后的数据包密码是密文形式,所以不法分子无法在传输过程中获取到加密后的数据包密码无法直接用来解密UDP包。
S55,客户端接收到第二公钥和加密后的数据包密码后,客户端解密加密后的数据包密码,首先,密钥=DH[第一私钥,第二公钥],由于第一私钥在客户端本地,并不会在网络上传输,所以不法分子无法在其他地方计算获得密钥。然后,数据包密码= XOR[密钥,加密后的数据包密码]。客户端获取到数据包密码可以对UDP包进行加密。由于加密后的数据包密码的解密密钥是在本地计算,所以能提高了网络UDP包的安全性。
S56,客户端利用异或运算以及数据包密码对UDP包进行加密,获得加密后的UDP包。
S57,客户端将加密后的UDP包发送给对应的服务器。
S58,服务器接收到加密的UDP包,并且利用异或算法对加密后的UDP包进行解密,获取UDP包。服务器也可以利用数据包密码加密下一个UDP包,发送到客户端,并且由客户端进行解密。实现将加密的UDP在客户端与服务器之间的传输,使客户端与服务器之间进行安全的数据传输。
综上所述,在本申请实施例所示的方案中,在运行虚拟场景的过程中,服务器生成数据包密码,并且根据终端发送的第一公钥以及自身生成的第二私钥进行加密,将加密后的数据包密码发送给终端,由终端根据服务器发送的第二公钥以及自身生成的第一私钥对其进行解密,可以实现在两侧获得一致的数据包密码,并且利用数据包密码对数据包进行传输。通过上述方案,可以避免在数据包密码因为明文传输而被第三方获取,并且在传输过程中破解利用数据包密码加密的数据包的情况,解决了加密数据包容易被破解的问题,从而提高了虚拟场景中的数据包传输的安全性。
图6是根据一示例性实施例示出的一种用于虚拟场景的数据传输装置的框图,如图6所示,该用于虚拟场景的数据传输装置可以通过硬件或者软硬结合的方式实现为终端中的全部或者部分,以执行图2或图4对应实施例所示的方法的全部或部分步骤。该用于虚拟场景的数据传输装置可以包括:
密钥生成模块610,用于响应于所述终端运行虚拟场景,生成第一公钥和第一私钥;
请求发送模块620,用于向所述虚拟场景对应的服务器发送握手请求,所述握手请求中包含所述第一公钥;所述握手请求用于请求所述虚拟场景的数据包密码;
响应接收模块630,用于接收所述服务器发送的握手请求响应,所述握手请求响应包含第二公钥以及加密后的所述数据包密码;
密码获取模块640,用于基于所述第一私钥以及所述第二公钥对加密后的所述数据包密码进行解密,获得所述数据包密码;
第一数据传输模块650,用于基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
在一种可能的实现方式中,所述密钥生成模块610,包括:
密钥生成子模块,用于响应于所述终端运行虚拟场景,生成与所述虚拟场景对应的所述第一公钥,以及,与所述虚拟场景对应的所述第一私钥。
在一种可能的实现方式中,所述密钥生成子模块,包括:
标识获取单元,用于获取所述虚拟场景对应的虚拟场景标识;
密钥生成单元,用于基于所述虚拟场景标识,生成所述第一公钥以及所述第一私钥。
在一种可能的实现方式中,所述请求发送模块,包括:
第一密钥获取子模块,用于响应于存在第三方加密通道,从所述第三方加密通道获取第一密钥;
第一公钥加密子模块,用于根据所述第一密钥对所述第一公钥进行加密,生成加密后的所述第一公钥;
第一请求发送子模块,用于向所述服务器发送包含有加密后的所述第一公钥的所述握手请求。
在一种可能的实现方式中,所述请求发送模块620,包括:
第二请求发送子模块,用于响应于所述终端处于指定网络,向所述服务器发送所述握手请求。
在一种可能的实现方式中,所述指定网络是Wi-Fi网络。
在一种可能的实现方式中,所述密码获取模块640,包括:
第二密钥生成子模块,用于基于所述第一私钥以及所述第二公钥生成第二密钥;
密码获取子模块,用于通过所述第二密钥对加密后的所述数据包密码进行解密,获得所述数据包密码。
综上所述,在本申请实施例所示的方案中,在运行虚拟场景的过程中,服务器生成数据包密码,并且根据终端发送的第一公钥以及自身生成的第二私钥进行加密,将加密后的数据包密码发送给终端,由终端根据服务器发送的第二公钥以及自身生成的第一私钥对其进行解密,可以实现在两侧获得一致的数据包密码,并且利用数据包密码对数据包进行传输。通过上述方案,可以避免在数据包密码因为明文传输而被第三方获取,并且在传输过程中破解利用数据包密码加密的数据包的情况,解决了加密数据包容易被破解的问题,从而提高了虚拟场景中的数据包传输的安全性。
图7是根据一示例性实施例示出的一种用于虚拟场景的数据传输装置的框图,如图7所示,该用于虚拟场景的数据传输装置可以通过硬件或者软硬结合的方式实现为服务器中的全部或者部分,以执行图3或图4对应实施例所示的方法的全部或部分步骤。该用于虚拟场景的数据传输装置可以包括:
密码生成模块710,用于响应于接收到由终端发送的握手请求,生成第二公钥、第二私钥以及数据包密码;所述握手请求中包含第一公钥;所述握手请求用于所述终端向所述服务器请求虚拟场景的数据包密码;
密码加密模块720,用于基于所述第一公钥以及所述第二私钥对所述数据包密码进行加密,获得加密后的所述数据包密码;
响应发送模块730,用于向所述终端发送握手请求响应,所述握手请求响应包含所述第二公钥以及加密后的所述数据包密码;
第二数据传输模块740,用于基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
在一种可能的实现方式中,所述密码生成模块710,包括:
密码生成子模块,用于响应于所述握手请求中包含虚拟场景标识,生成数据包密码、所述虚拟场景标识对应的所述第二公钥以及所述虚拟场景标识对应的所述第二私钥。
在一种可能的实现方式中,所述响应发送模块730,包括:
第一密钥获取子模块,用于响应于存在第三方加密通道,从所述第三方加密通道获取第一密钥;
第二公钥加密子模块,用于根据所述第一密钥对所述第二公钥进行加密,生成加密后的所述第二公钥;
第一响应发送子模块,用于向所述终端发送所述握手请求响应,所述握手请求响应包含有加密后的所述第二公钥以及加密后的所述数据包密码。
在一种可能的实现方式中,所述响应发送模块730,包括:
第二响应发送子模块,用于响应于所述终端处于指定网络,向所述终端发送所述握手请求响应。
综上所述,在本申请实施例所示的方案中,在运行虚拟场景的过程中,服务器生成数据包密码,并且根据终端发送的第一公钥以及自身生成的第二私钥进行加密,将加密后的数据包密码发送给终端,由终端根据服务器发送的第二公钥以及自身生成的第一私钥对其进行解密,可以实现在两侧获得一致的数据包密码,并且利用数据包密码对数据包进行传输。通过上述方案,可以避免在数据包密码因为明文传输而被第三方获取,并且在传输过程中破解利用数据包密码加密的数据包的情况,解决了加密数据包容易被破解的问题,从而提高了虚拟场景中的数据包传输的安全性。
图8是根据一示例性实施例示出的一种计算机设备的结构示意图。所述计算机设备800包括中央处理单元(Central Processing Unit,CPU)801、包括随机存取存储器(Random Access Memory,RAM)802和只读存储器(Read-Only Memory,ROM)803的系统存储器804,以及连接系统存储器804和中央处理单元801的系统总线805。所述计算机设备800还包括帮助计算机设备内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)806,和用于存储操作系统813、应用程序814和其他程序模块815的大容量存储设备807。
所述基本输入/输出系统806包括有用于显示信息的显示器808和用于用户输入信息的诸如鼠标、键盘之类的输入设备809。其中所述显示器808和输入设备809都通过连接到系统总线805的输入输出控制器810连接到中央处理单元801。所述基本输入/输出系统806还可以包括输入输出控制器810以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器810还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备807通过连接到系统总线805的大容量存储控制器(未示出)连接到中央处理单元801。所述大容量存储设备807及其相关联的计算机设备可读介质为计算机设备800提供非易失性存储。也就是说,所述大容量存储设备807可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机设备可读介质(未示出)。
不失一般性,所述计算机设备可读介质可以包括计算机设备存储介质和通信介质。计算机设备存储介质包括以用于存储诸如计算机设备可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机设备存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable ReadOnly Memory,EPROM)、带电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM),CD-ROM、数字视频光盘(Digital Video Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机设备存储介质不局限于上述几种。上述的系统存储器804和大容量存储设备807可以统称为存储器。
根据本公开的各种实施例,所述计算机设备800还可以通过诸如因特网等网络连接到网络上的远程计算机设备运行。也即计算机设备800可以通过连接在所述系统总线805上的网络接口单元811连接到网络812,或者说,也可以使用网络接口单元811来连接到其他类型的网络或远程计算机设备系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器801通过执行该一个或一个以上程序来实现图2、图3或图4所示的方法的全部或者部分步骤。
图9是根据一示例性实施例示出的计算机设备900的结构框图。该计算机设备900可以是图1所示的人脸识别系统中的终端。
通常,计算机设备900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的方法。
在一些实施例中,计算机设备900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置计算机设备900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在计算机设备900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在计算机设备900的弯曲表面上或折叠面上。甚至,显示屏905还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位计算机设备900的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源909用于为计算机设备900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以计算机设备900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制触摸显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测计算机设备900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对计算机设备900的3D动作。处理器901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在计算机设备900的侧边框和/或触摸显示屏905的下层。当压力传感器913设置在计算机设备900的侧边框时,可以检测用户对计算机设备900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在触摸显示屏905的下层时,由处理器901根据用户对触摸显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置计算机设备900的正面、背面或侧面。当计算机设备900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制触摸显示屏905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏905的显示亮度;当环境光强度较低时,调低触摸显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在计算机设备900的前面板。接近传感器916用于采集用户与计算机设备900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与计算机设备900的正面之间的距离逐渐变小时,由处理器901控制触摸显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与计算机设备900的正面之间的距离逐渐变大时,由处理器901控制触摸显示屏905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对计算机设备900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在一示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括至少一条指令、至少一段程序、代码集或指令集的存储器,上述至少一条指令、至少一段程序、代码集或指令集可由处理器执行以完成上述图3或图4任一实施例所示的方法的全部或者部分步骤。例如,非临时性计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本公开实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机设备可读介质中或者作为计算机设备可读介质上的一个或多个指令或代码进行传输。计算机设备可读介质包括计算机设备存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机设备程序的任何介质。存储介质可以是通用或专用计算机设备能够存取的任何可用介质。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的用于虚拟场景的数据传输方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (12)

1.一种用于虚拟场景的数据传输方法,其特征在于,所述方法由终端执行,所述方法包括:
获取所述虚拟场景对应的虚拟场景标识;
基于所述虚拟场景标识,生成第一公钥以及第一私钥;
向所述虚拟场景对应的服务器发送握手请求,所述握手请求中包含所述第一公钥;所述握手请求用于请求所述虚拟场景的数据包密码;
接收所述服务器发送的握手请求响应,所述握手请求响应包含第二公钥以及加密后的所述数据包密码;所述加密后的所述数据包密码是基于所述第一公钥以及第二私钥对所述数据包密码进行加密生成的;所述第二私钥是由所述服务器生成的,所述第二私钥中添加有所述虚拟场景标识或者所述虚拟场景标识的变形数据;
将所述第一私钥以及所述第二公钥通过密钥交换算法进行计算,生成第二密钥;
通过所述第二密钥对加密后的所述数据包密码进行异或运算,对加密后的所述数据包密码进行解密,获得所述数据包密码;
基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
2.根据权利要求1所述的方法,其特征在于,所述向所述虚拟场景对应的服务器发送握手请求,包括:
响应于存在第三方加密通道,从所述第三方加密通道获取第一密钥;
根据所述第一密钥对所述第一公钥进行加密,生成加密后的所述第一公钥;
向所述服务器发送包含有加密后的所述第一公钥的所述握手请求。
3.根据权利要求1所述的方法,其特征在于,所述向所述虚拟场景对应的服务器发送握手请求,包括:
响应于所述终端处于指定网络,向所述服务器发送所述握手请求。
4.根据权利要求3所述的方法,其特征在于,所述指定网络是Wi-Fi网络。
5.一种用于虚拟场景的数据传输方法,其特征在于,所述方法由服务器执行,所述方法包括:
响应于接收到由终端发送的握手请求,生成第二公钥、第二私钥以及数据包密码;所述握手请求中包含第一公钥;所述第二公钥以及所述第二私钥中添加有虚拟场景标识或者所述虚拟场景标识的变形数据;
将所述第一公钥以及所述第二私钥通过密钥交换算法进行计算,获取第二密钥;
通过所述第二密钥与所述数据包密码进行异或运算,对所述数据包密码进行加密,获得加密后的所述数据包密码;
向所述终端发送握手请求响应,所述握手请求响应包含所述第二公钥以及加密后的所述数据包密码;
基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
6.根据权利要求5所述的方法,其特征在于,所述响应于接收到由终端发送的握手请求,生成第二公钥、第二私钥以及数据包密码,包括:
响应于所述握手请求中包含虚拟场景标识,生成数据包密码、所述虚拟场景标识对应的所述第二公钥以及所述虚拟场景标识对应的所述第二私钥。
7.根据权利要求5所述的方法,其特征在于,所述向所述终端发送握手请求响应,包括:
响应于存在第三方加密通道,从所述第三方加密通道获取第一密钥;
根据所述第一密钥对所述第二公钥进行加密,生成加密后的所述第二公钥;
向所述终端发送所述握手请求响应,所述握手请求响应包含有加密后的所述第二公钥以及加密后的所述数据包密码。
8.根据权利要求5所述的方法,其特征在于,所述向所述终端发送握手请求响应,包括:
响应于所述终端处于指定网络,向所述终端发送所述握手请求响应。
9.一种用于虚拟场景的数据传输装置,其特征在于,所述装置用于终端中,所述装置包括:
密钥生成模块,用于获取所述虚拟场景对应的虚拟场景标识;
所述密钥生成模块,还用于基于所述虚拟场景标识,生成第一公钥以及第一私钥;
请求发送模块,用于向所述虚拟场景对应的服务器发送握手请求,所述握手请求中包含所述第一公钥;所述握手请求用于请求所述虚拟场景的数据包密码;
响应接收模块,用于接收所述服务器发送的握手请求响应,所述握手请求响应包含第二公钥以及加密后的所述数据包密码;所述加密后的所述数据包密码是基于所述第一公钥以及第二私钥对所述数据包密码进行加密生成的;所述第二私钥是由所述服务器生成的;所述第二私钥中添加有所述虚拟场景标识或者所述虚拟场景标识的变形数据;
密码获取模块,用于基于所述第一私钥以及所述第二公钥生成第二密钥;通过所述第二密钥对加密后的所述数据包密码进行异或运算,对加密后的所述数据包密码进行解密,获得所述数据包密码;
第一数据传输模块,用于基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
10.一种用于虚拟场景的数据传输装置,其特征在于,所述装置用于服务器中,所述装置包括:
密码生成模块,用于响应于接收到由终端发送的握手请求,生成第二公钥、第二私钥以及数据包密码;所述握手请求中包含第一公钥;所述第二公钥以及所述第二私钥中添加有虚拟场景标识或者所述虚拟场景标识的变形数据;
密码加密模块,用于通过所述第一公钥以及所述第二私钥计算获取第二密钥;通过所述第二密钥与所述数据包密码进行异或运算,对所述数据包密码进行加密,获得加密后的所述数据包密码;
响应发送模块,用于向所述终端发送握手请求响应,所述握手请求响应包含所述第二公钥以及加密后的所述数据包密码;
第二数据传输模块,用于基于所述数据包密码,在所述终端和所述服务器之间传输所述虚拟场景的数据包。
11.一种计算机设备,其特征在于,计算机设备包含处理器和存储器,所述存储器中存储由至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至8任一所述的用于虚拟场景的数据传输方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至8任一所述的用于虚拟场景的数据传输方法。
CN202011139407.4A 2020-10-22 2020-10-22 用于虚拟场景的数据传输方法、计算机设备及存储介质 Active CN112003879B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011139407.4A CN112003879B (zh) 2020-10-22 2020-10-22 用于虚拟场景的数据传输方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011139407.4A CN112003879B (zh) 2020-10-22 2020-10-22 用于虚拟场景的数据传输方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN112003879A CN112003879A (zh) 2020-11-27
CN112003879B true CN112003879B (zh) 2021-05-18

Family

ID=73475120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011139407.4A Active CN112003879B (zh) 2020-10-22 2020-10-22 用于虚拟场景的数据传输方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112003879B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093566B (zh) * 2021-03-04 2022-04-01 深圳供电局有限公司 虚拟电厂的运行控制方法、系统、计算机设备及存储介质
CN113676485A (zh) * 2021-08-27 2021-11-19 中国电信股份有限公司 虚拟现实交互方法、装置、存储介质与电子设备
CN114006697A (zh) * 2021-12-30 2022-02-01 北京微步在线科技有限公司 加密通信方法、装置
CN115174062B (zh) * 2022-06-30 2024-04-09 中国联合网络通信集团有限公司 云服务认证方法、装置、设备及存储介质
CN116644459B (zh) * 2023-07-27 2023-10-20 泰山学院 基于计算机软件开发的加密系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801616A (zh) * 2012-08-02 2012-11-28 华为技术有限公司 报文发送和接收的方法、装置和系统
CN107682141A (zh) * 2017-10-26 2018-02-09 广州市雷军游乐设备有限公司 用于数据传输的数据加密方法和系统
CN108881784A (zh) * 2017-05-12 2018-11-23 腾讯科技(深圳)有限公司 虚拟场景实现方法、装置、终端及服务器
CN111079163A (zh) * 2019-12-16 2020-04-28 国网山东省电力公司威海市文登区供电公司 加解密信息系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789092A (zh) * 2017-02-28 2017-05-31 河源弘稼农业科技有限公司 密钥传输方法、密钥传输装置、服务器和通信设备
CN110399717B (zh) * 2018-11-21 2023-03-14 腾讯科技(深圳)有限公司 密钥获取方法和装置、存储介质及电子装置
CN111617487B (zh) * 2020-05-22 2021-03-16 腾讯科技(深圳)有限公司 游戏应用中的帐号接入方法和装置、存储介质及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801616A (zh) * 2012-08-02 2012-11-28 华为技术有限公司 报文发送和接收的方法、装置和系统
CN108881784A (zh) * 2017-05-12 2018-11-23 腾讯科技(深圳)有限公司 虚拟场景实现方法、装置、终端及服务器
CN107682141A (zh) * 2017-10-26 2018-02-09 广州市雷军游乐设备有限公司 用于数据传输的数据加密方法和系统
CN111079163A (zh) * 2019-12-16 2020-04-28 国网山东省电力公司威海市文登区供电公司 加解密信息系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾可等."网络游戏安全性的数据健壮加密方案".《西南科技大学学报》.2005,第13-15页. *

Also Published As

Publication number Publication date
CN112003879A (zh) 2020-11-27

Similar Documents

Publication Publication Date Title
CN112003879B (zh) 用于虚拟场景的数据传输方法、计算机设备及存储介质
WO2019091289A1 (zh) 生成签名的方法、电子设备及存储介质
CN111046365B (zh) 人脸图像传输方法、数值转移方法、装置及电子设备
CN108810019B (zh) 拒绝服务攻击防御方法、装置、设备和存储介质
CN108769992B (zh) 用户认证方法、装置、终端及存储介质
CN107968783B (zh) 流量管理方法、装置、终端及计算机可读存储介质
CN112073421B (zh) 通信处理方法、装置、终端及存储介质
CN107959727B (zh) 网页与客户端之间进行通讯的方法及装置
CN110321228B (zh) 原生方法的调用方法、装置、设备及计算机可读存储介质
CN110365501B (zh) 基于图形码进行群组加入处理的方法及装置
CN110417710B (zh) 攻击数据捕获方法、装置及存储介质
WO2020253800A1 (zh) 仿真对象的身份识别方法、相关装置及系统
CN110598386B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN110826103A (zh) 基于区块链的文档权限处理方法、装置、设备及存储介质
CN111404991A (zh) 获取云服务的方法、装置、电子设备及介质
CN111309360A (zh) 快充设备的固件更新方法、装置、计算机设备及存储介质
CN113726521A (zh) 通信方法、装置、电子设备及可读存储介质
CN113852459B (zh) 密钥协商方法、设备及计算机可读存储介质
CN111062725A (zh) 人脸支付方法、装置及系统、计算机可读存储介质
CN110677262A (zh) 基于区块链的信息公证方法、装置及系统
CN108537040B (zh) 电信诈骗木马程序拦截方法、装置、终端及存储介质
CN111198922B (zh) 基于区块链的游戏资源管理方法及装置
CN110597840A (zh) 基于区块链的伴侣关系建立方法、装置、设备及存储介质
CN111447132B (zh) 数据传输方法、装置、系统以及计算机存储介质
CN114124405B (zh) 业务处理方法、系统、计算机设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant