CN114124534A - 一种数据交互系统及方法 - Google Patents

一种数据交互系统及方法 Download PDF

Info

Publication number
CN114124534A
CN114124534A CN202111403230.9A CN202111403230A CN114124534A CN 114124534 A CN114124534 A CN 114124534A CN 202111403230 A CN202111403230 A CN 202111403230A CN 114124534 A CN114124534 A CN 114124534A
Authority
CN
China
Prior art keywords
login
server
data
encryption
client
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.)
Pending
Application number
CN202111403230.9A
Other languages
English (en)
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.)
Aisino Corp
Original Assignee
Aisino Corp
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 Aisino Corp filed Critical Aisino Corp
Priority to CN202111403230.9A priority Critical patent/CN114124534A/zh
Publication of CN114124534A publication Critical patent/CN114124534A/zh
Pending legal-status Critical Current

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/045Network 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 hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据交互系统及方法,该系统包括:客户端,在接收到使用者的登录请求时,生成加解密密钥;以及,基于加解密密钥生成使用者的登录信息,并将登录信息发送至服务端;服务端,基于登录信息进行登录验证,在登录验证通过的情况下确定使用者登录成功,得到登录成功数据;将加解密密钥进行处理,得到处理结果,并保存处理结果,得到保存结果;以及,将登录成功数据与保存结果,一并加密后返回至客户端;客户端,基于保存结果向服务端请求业务服务;业务服务,是客户端需要、且服务端具备的至少一种服务。该方案,通过在网络数据交互过程中,对相关数据进行加解密处理,能够提升网络数据的信息安全性。

Description

一种数据交互系统及方法
技术领域
本发明属于计算机技术领域,具体涉及一种数据交互系统及方法,尤其涉及一种数据安全交互加解密的分布式系统和方法。
背景技术
信息技术的不断发展,使得网络资源的双刃剑效应日渐凸现。在网络流量需求增高的同时,网络数据信息安全工作难上加难。特别是众多面向互联网用户的服务系统,保证用户数据信息的安全交互、确保用户数据不泄露变得尤为重要。所以,对于相关数据进行加解密处理,便成为了这些面向互联网用户的服务系统的首选方案。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的目的在于,提供一种数据交互系统及方法,以解决在网络数据交互过程中,网络数据信息的安全工作的实现难度大的问题,达到通过在网络数据交互过程中,对相关数据进行加解密处理,能够提升网络数据的信息安全性的效果。
本发明提供一种数据交互系统,包括:客户端和服务端;其中,所述客户端,被配置为在接收到使用者的登录请求时,生成加解密密钥;以及,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端;所述服务端,被配置为在接收到所述登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,得到登录成功数据;将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果;以及,将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端;所述客户端,还被配置为在接收到所述服务端返回的所述登录成功数据与所述保存结果的情况下,基于所述保存结果向所述服务端请求业务服务;所述业务服务,是所述客户端需要、且所述服务端具备的至少一种服务;其中,所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
在一些实施方式中,所述加解密密钥,包括:AES密钥;所述客户端,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端,包括:提取所述登录请求所携带的登录数据;使用所述服务端提供的SM2公钥,将所述登录数据与所述AES密钥加密,得到使用者的登录信息,并将所述登录信息发送至所述服务端。
在一些实施方式中,所述加解密密钥,包括:AES密钥;所述服务端,将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果,包括:将所述AES密钥进行混淆处理,得到混淆处理结果;
在一些实施方式中,所述保存结果,包括:token;所述客户端,基于所述保存结果向所述服务端请求业务服务,包括:将需要向所述服务端请求业务服务的请求数据与所述token发送至所述服务端,以向所述服务端请求所述业务服务。
在一些实施方式中,还包括:所述服务端的网关,被配置为在所述客户端向所述服务端请求业务服务之后,在所述加解密密钥包括AES密钥、且所述保存结果包括token的情况下,识别所述客户端发送的所述token,获取所述token中的AES密钥并进行还原;以及,将所述还原后的AES密钥与所述客户端发送的请求数据,一并发送给所述服务端的N个业务服务器中与所述请求数据对应的业务服务器;所述服务端的业务服务器,在接收到所述还原后的AES密钥与所述请求数据的情况下,利用所述还原后的AES密钥对所述请求数据进行解密,完成所述请求数据所需要的业务处理,得到业务处理结果数据;以及,利用所述还原后的AES密钥对所述业务处理结果数据进行加密后,返回至所述客户端,完成所述服务端对所述客户端的所述业务服务。
在一些实施方式中,所述客户端,包括:PC端或移动端;所述客户端与所述服务端形成分布式系统。
与上述系统相匹配,本发明另一方面提供一种数据交互方法中,包括:所述数据交互方法,应用于客户端,所述客户端能够与服务端进行数据交互;所述客户端的数据交互方法,包括:在接收到使用者的登录请求时,生成加解密密钥;以及,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端;以使所述服务端在接收到所述登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,得到登录成功数据;将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果;以及,将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端;在接收到所述服务端返回的所述登录成功数据与所述保存结果的情况下,基于所述保存结果向所述服务端请求业务服务;所述业务服务,是所述客户端需要、且所述服务端具备的至少一种服务;其中,所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
在一些实施方式中,其中,所述加解密密钥,包括:AES密钥;基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端,包括:提取所述登录请求所携带的登录数据;使用所述服务端提供的SM2公钥,将所述登录数据与所述AES密钥加密,得到使用者的登录信息,并将所述登录信息发送至所述服务端;和/或,所述保存结果,包括:token;基于所述保存结果向所述服务端请求业务服务,包括:将需要向所述服务端请求业务服务的请求数据与所述token发送至所述服务端,以向所述服务端请求所述业务服务。
与上述系统相匹配,本发明再一方面提供一种数据交互方法中,所述数据交互方法,应用于服务端,所述服务端能够与客户端进行数据交互;所述服务端的数据交互方法,包括:在接收到所述客户端发送的登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,得到登录成功数据;将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果;以及,将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端;其中,所述登录信息,是所述客户端在接收到使用者的登录请求时,生成加解密密钥;以及,基于所述加解密密钥生成所述使用者的登录信息;其中,所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
在一些实施方式中,所述加解密密钥,包括:AES密钥;将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果,包括:将所述AES密钥进行混淆处理,得到混淆处理结果;将所述混淆处理结果存入JWT的token中,将所述token作为保存结果。
在一些实施方式中,还包括:通过所述服务端的网关,在所述客户端向所述服务端请求业务服务之后,在所述加解密密钥包括AES密钥、且所述保存结果包括token的情况下,识别所述客户端发送的所述token,获取所述token中的AES密钥并进行还原;以及,将所述还原后的AES密钥与所述客户端发送的请求数据,一并发送给所述服务端的N个业务服务器中与所述请求数据对应的业务服务器;通过服务端的业务服务器,在接收到所述还原后的AES密钥与所述请求数据的情况下,利用所述还原后的AES密钥对所述请求数据进行解密,完成所述请求数据所需要的业务处理,得到业务处理结果数据;以及,利用所述还原后的AES密钥对所述业务处理结果数据进行加密后,返回至所述客户端,完成所述服务端对所述客户端的所述业务服务。
由此,本发明的方案,通过设置由客户端和服务端构成的分布式系统,用户每次登录时,客户端为该用户的本次登录生成唯一的加解密密钥,实现与服务端之间的数据交互;用户在本次登录之后的环节中使用该加解密密钥,对请求数据与返回数据进行加解密,当用户退出本次登录或本次登录状态失效时,客户端在本次登录时为该用户的本次登录生成唯一的加解密密钥失效,从而,通过在网络数据交互过程中,对相关数据进行加解密处理,能够提升网络数据的信息安全性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的数据交互系统的一实施例的流程示意图;
图2为本发明的数据交互方法的第一实施例的流程示意图;
图3为本发明的数据交互方法中基于加解密密钥生成登录信息并发送至服务端的第一实施例的流程示意图;
图4为本发明的数据交互方法的第二实施例的流程示意图;
图5为本发明的数据交互方法中处理加解密密钥并进行保存的第二实施例的流程示意图;
图6为本发明的数据交互方法中利用加解密密钥进行业务处理的第二实施例的流程示意图;
图7为一种数据安全交互加解密的分布式系统的一实施例的加解密流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种数据交互系统,如图1所示本发明的数据交互系统的一实施例的流程示意图。该数据交互系统可以包括:客户端和服务端。
其中,所述客户端,被配置为在接收到使用者的登录请求时,生成加解密密钥。以及,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端。
在一些实施方式中,所述加解密密钥,包括:AES密钥。
所述客户端,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端,包括:
所述客户端,具体还被配置为提取所述登录请求所携带的登录数据。
所述客户端,具体还被配置为使用所述服务端提供的SM2公钥,将所述登录数据与所述AES密钥加密,得到使用者的登录信息,并将所述登录信息发送至所述服务端。
图7为一种数据安全交互加解密的分布式系统的一实施例的加解密流程示意图。如图7所示的一种数据安全交互加解密的分布式系统,包括:客户端和服务端。如图7所示,一种数据安全交互加解密的分布式系统的加解密流程,包括:
步骤1、客户端在登录时,生成本次登录周期内使用的唯一AES(高级加密标准)密钥,将该唯一AES密钥加入登录数据中,使用服务端提供的SM2(国密的一种算法)公钥进行登录数据加密,发送到服务端。
具体地,客户端在登录时,使用服务端提供的SM2公钥,将客户端的登录信息(如账号密码或手机号验证码)和AES密钥加密后,发送到服务端。
这样,由客户端生成AES密钥,使用服务端提供的SM2公钥进行加密登录数据,保证密钥的安全传输。
所述服务端,被配置为在接收到所述登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,实现所述使用者的登录,得到登录成功数据。将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果。以及,将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端。
在一些实施方式中,所述加解密密钥,包括:AES密钥。
所述服务端,将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果,包括:
所述服务端,具体还被配置为将所述AES密钥进行混淆处理,得到混淆处理结果。所述处理结果,包括:混淆处理结果。
所述服务端,具体还被配置为将所述混淆处理结果存入JWT的token中,将所述token作为保存结果。其中,token作为服务端为每个登录用户颁发的凭证,用户登录成功后,服务端将token返回给客户端,后续客户端使用该凭证调用服务端。将每个用户的AES密钥写入token中,等于为每个密钥添加了生命周期,在用户退出登录或者token因超时而失效时,密钥也随之失效,提高了密钥的安全,保证了每个用户登录后密钥的唯一性和安全。
如图7所示,一种数据安全交互加解密的分布式系统的加解密流程,还包括:
步骤2、服务端在获取到客户端的登录信息后,完成用户登录验证。具体地,服务端使用SM2私钥对客户端请求进行解密,获取到用户账号密码或手机号验证码,与数据库用户账号、密码进行校验,验证通过即完成登录验证过程。进而,对客户端提交的AES秘钥进行混淆处理,如服务端使用SM2加密算法对客户端的AES密钥+当前时间(年月日)进行加密,加密结果与用户id进行字符串拼接,完成混淆处理,之后将混淆处理的结果存入JWT的token中,随着登录成功后的其它数据(如用户姓名、登录的企业税号、企业名称等)一并加密后返回给客户端。
其中,JWT,是一个非常轻巧的规范,这个规范允许人们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。
这样,使用JWT生成的token进行AES密钥保存,使得密钥的安全与服务系统的高效率同时得到了保障。
所述客户端,还被配置为在接收到所述服务端返回的所述登录成功数据与所述保存结果的情况下,基于所述保存结果向所述服务端请求业务服务。所述业务服务,是所述客户端需要、且所述服务端具备的至少一种服务。
在一些实施方式中,所述保存结果,包括:token。
所述客户端,基于所述保存结果向所述服务端请求业务服务,包括:
所述客户端,具体还被配置为将需要向所述服务端请求业务服务的请求数据与所述token发送至所述服务端,以向所述服务端请求所述业务服务。
如图7所示,一种数据安全交互加解密的分布式系统的加解密流程,还包括:
步骤3、客户端在之后的操作过程中,将请求数据与token发送至服务端。
在本发明的方案中,登录过程中,为用户生成加解密密钥的信息,该加解密密钥与本次登录的token(令牌、标记)进行绑定,只为用户本次登录的业务操作进行加解密服务,用户退出登录或者登录状态失效,密钥也随之失效,增强了密钥的安全性和交互数据被破解的复杂度。
本发明的方案提供的一种数据安全交互加解密的分布式系统,具体是提供一种分布式系统环境下的安全加解密服务。用户使用该系统(即数据安全交互加解密的分布式系统),每次登录时,随着客户端(如客户端的PC端和移动端等)的请求,为该用户生成唯一的加解密密钥,用户在登录之后的环节中使用该加解密密钥,对请求数据与返回数据进行加解密,当用户退出登录或登录状态失效时,密钥失效,从而确保用户数据的安全。
其中,所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
在本发明的方案中,在用户重新登录时,需要使用全新的AES密钥与服务端进行数据交互。这样,客户端每次登录之后,都会使用全新的AES密钥与服务端进行数据交互,极大提高了数据交互的安全性,降低了数据交互过程中数据被破解的可能性。
在一些实施方式中,所述服务端,包括:网关和业务服务器。所述数据交互系统,还包括:
所述服务端的网关,被配置为在所述客户端向所述服务端请求业务服务之后,在所述加解密密钥包括AES密钥、且所述保存结果包括token的情况下,识别所述客户端发送的所述token,获取所述token中的AES密钥并进行还原。以及,将所述还原后的AES密钥与所述客户端发送的请求数据,一并发送给所述服务端的N个业务服务器中与所述请求数据对应的业务服务器。
所述服务端的业务服务器,在接收到所述还原后的AES密钥与所述请求数据的情况下,利用所述还原后的AES密钥对所述请求数据进行解密,完成所述请求数据所需要的业务处理,得到业务处理结果数据。以及,利用所述还原后的AES密钥对所述业务处理结果数据进行加密后,返回至所述客户端,完成所述服务端对所述客户端的所述业务服务。
如图7所示,一种数据安全交互加解密的分布式系统的加解密流程,还包括:
在步骤3中,在客户端将请求数据与token发送至服务端之后,服务端网关进行token验证,验证通过后,将token中的AES密钥取出进行还原,将还原后的密钥与数据一并发送给对应的业务服务(即业务服务器)。具体地,统一网关完成token有效性、合法性验证,同时完成请求AES密钥的解密,解密通过后发送给后端业务服务。例如:统一网关用户中心。这样,在网关入口进行AES密钥的统一识别处理,既可以拦截无效的请求,又能够降低业务服务系统的复杂度。
其中,还原,是指服务端取出token中混淆过的AES密钥,进行字符串分割后获得加密状态的AES密钥,使用服务端的SM2私钥其进行解密,获取本次登录使用的AES密钥明文。
业务服务进行数据解密并完成业务处理,使用AES密钥对结果数据进行加密,返回给客户端。其中,该AES密钥,是网关还原后的明文AES密钥,业务服务使用该AES密钥进行业务数据解密。
步骤1至步骤3,是只为用户本次登录的业务操作进行加解密服务。当客户端主动退出或token失效时,对应的AES密钥也随之失效,而保证了密钥与用户数据的安全。
在一些实施方式中,所述客户端,包括:PC端或移动端。
本发明的方案提供的一种数据安全交互加解密的分布式系统,加解密密钥不依赖于控制台,可以跨设备跨平台提供服务,也就是说该服务可以跨平台跨应用,如服务端生成的token可以跨移动端、web网页、pc客户端进行使用,支持windows、linux、iOS等操作系统的应用,达到一端开发,多端使用的效果。例如:客户端如PC端(计算机端)与移动端(如笔记本、手机等终端)均可以提供服务。
所述客户端与所述服务端形成分布式系统。
在本发明的方案中,使用token进行AES密钥的管理,不需要缓存工具,便解决了分布式系统保存每个用户AES密钥的复杂性问题。同时,由网关对token中的AES密钥进行统一识别处理,既可以拦截无效的请求,又能够降低业务服务系统的复杂度,让业务系统专注于业务处理,从而提高分布式系统的效率。
采用本实施例的技术方案,通过设置由客户端和服务端构成的分布式系统,用户每次登录时,客户端为该用户的本次登录生成唯一的加解密密钥,实现与服务端之间的数据交互。用户在本次登录之后的环节中使用该加解密密钥,对请求数据与返回数据进行加解密,当用户退出本次登录或本次登录状态失效时,客户端在本次登录时为该用户的本次登录生成唯一的加解密密钥失效,从而,通过在网络数据交互过程中,对相关数据进行加解密处理,能够提升网络数据的信息安全性。
根据本发明的实施例,还提供了对应于数据交互系统的一种数据交互方法。参见图2所示本发明的数据交互方法的一实施例的流程示意图。该数据交互方法,应用于客户端,所述客户端能够与服务端进行数据交互。所述客户端的数据交互方法,包括:步骤S110至步骤S120。
在步骤S110处,在接收到使用者的登录请求时,生成加解密密钥。以及,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端。以使所述服务端在接收到所述登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,实现所述使用者的登录,得到登录成功数据。将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果。以及,将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端。
在一些实施方式中,所述加解密密钥,包括:AES密钥。
步骤S110中基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端的具体过程,参见以下示例性说明。
下面结合图3所示本发明的方法中基于加解密密钥生成登录信息并发送至服务端的一实施例流程示意图,进一步说明步骤S110中基于加解密密钥生成登录信息并发送至服务端的具体过程,包括:步骤S210和步骤S220。
步骤S210,提取所述登录请求所携带的登录数据。
步骤S220,使用所述服务端提供的SM2公钥,将所述登录数据与所述AES密钥加密,得到使用者的登录信息,并将所述登录信息发送至所述服务端。
图7为一种数据安全交互加解密的分布式方法的一实施例的加解密流程示意图。如图7所示的一种数据安全交互加解密的分布式方法,包括:客户端和服务端。如图7所示,一种数据安全交互加解密的分布式方法的加解密流程,包括:
步骤1、客户端在登录时,生成本次登录周期内使用的唯一AES(高级加密标准)密钥,将该唯一AES密钥加入登录数据中,使用服务端提供的SM2(国密的一种算法)公钥进行登录数据加密,发送到服务端。
具体地,客户端在登录时,使用服务端提供的SM2公钥,将客户端的登录信息和AES密钥加密后,发送到服务端。
这样,由客户端生成AES密钥,使用服务端提供的SM2公钥进行加密登录数据,保证密钥的安全传输。
在步骤S120处,在接收到所述服务端返回的所述登录成功数据与所述保存结果的情况下,基于所述保存结果向所述服务端请求业务服务。所述业务服务,是所述客户端需要、且所述服务端具备的至少一种服务。
本发明的方案提供的一种数据安全交互加解密的分布式方法,具体是提供一种分布式方法环境下的安全加解密服务。用户使用该方法(即数据安全交互加解密的分布式方法),每次登录时,随着客户端(如客户端的PC端和移动端等)的请求,为该用户生成唯一的加解密密钥,用户在登录之后的环节中使用该加解密密钥,对请求数据与返回数据进行加解密,当用户退出登录或登录状态失效时,密钥失效,从而确保用户数据的安全。
其中,所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
在本发明的方案中,在用户重新登录时,需要使用全新的AES密钥与服务端进行数据交互。这样,客户端每次登录之后,都会使用全新的AES密钥与服务端进行数据交互,极大提高了数据交互的安全性,降低了数据交互过程中数据被破解的可能性。
在一些实施方式中,所述保存结果,包括:token。
步骤S120中基于所述保存结果向所述服务端请求业务服务,包括:将需要向所述服务端请求业务服务的请求数据与所述token发送至所述服务端,以向所述服务端请求所述业务服务。
如图7所示,一种数据安全交互加解密的分布式方法的加解密流程,还包括:
步骤3、客户端在之后的操作过程中,将请求数据与token发送至服务端。
在本发明的方案中,登录过程中,为用户生成加解密密钥的信息,该加解密密钥与本次登录的token(令牌、标记)进行绑定,只为用户本次登录的业务操作进行加解密服务,用户退出登录或者登录状态失效,密钥也随之失效,增强了密钥的安全性和交互数据被破解的复杂度。
由于本实施例的方法所实现的处理及功能基本相应于前述系统的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
采用本发明的技术方案,通过设置由客户端和服务端构成的分布式系统,用户每次登录时,客户端为该用户的本次登录生成唯一的加解密密钥,实现与服务端之间的数据交互。用户在本次登录之后的环节中使用该加解密密钥,对请求数据与返回数据进行加解密,当用户退出本次登录或本次登录状态失效时,客户端在本次登录时为该用户的本次登录生成唯一的加解密密钥失效,能够确保用户数据的安全。
根据本发明的实施例,还提供了对应于数据交互系统的一种数据交互方法。参见图4所示本发明的数据交互方法的一实施例的流程示意图。该数据交互方法,应用于服务端,所述服务端能够与客户端进行数据交互。所述服务端的数据交互方法,包括:步骤S310至步骤S320。
在步骤S310处,在接收到所述客户端发送的登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,实现所述使用者的登录,得到登录成功数据。并将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果。
在一些实施方式中,所述加解密密钥,包括:AES密钥。
将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果的具体过程,参见以下示例性说明。
下面结合图5所示本发明的方法中处理加解密密钥并进行保存的一实施例流程示意图,进一步说明步骤S310中处理加解密密钥并进行保存的具体过程,包括:步骤S410和步骤S420。
步骤S410,将所述AES密钥进行混淆处理,得到混淆处理结果。所述处理结果,包括:混淆处理结果。
步骤S420,将所述混淆处理结果存入JWT的token中,将所述token作为保存结果。将每个用户的AES密钥写入token中,等于为每个密钥添加了生命周期,在用户退出登录或者token因超时而失效时,密钥也随之失效,提高了密钥的安全,保证了每个用户登录后密钥的唯一性和安全。
如图7所示,一种数据安全交互加解密的分布式方法的加解密流程,还包括:
步骤2、服务端在获取到客户端的登录信息后,完成用户登录验证,对客户端提交的AES秘钥进行混淆处理,将混淆处理的结果存入JWT的token中,随着登录成功后的其它数据一并加密后返回给客户端。
其中,JWT,是一个非常轻巧的规范,这个规范允许人们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。
这样,使用JWT生成的token进行AES密钥保存,使得密钥的安全与服务方法的高效率同时得到了保障。
在步骤S320处,将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端。
其中,所述登录信息,是所述客户端在接收到使用者的登录请求时,生成加解密密钥。以及,基于所述加解密密钥生成所述使用者的登录信息。
本发明的方案提供的一种数据安全交互加解密的分布式方法,具体是提供一种分布式方法环境下的安全加解密服务。用户使用该方法(即数据安全交互加解密的分布式方法),每次登录时,随着客户端(如客户端的PC端和移动端等)的请求,为该用户生成唯一的加解密密钥,用户在登录之后的环节中使用该加解密密钥,对请求数据与返回数据进行加解密,当用户退出登录或登录状态失效时,密钥失效,从而确保用户数据的安全。
所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
在本发明的方案中,在用户重新登录时,需要使用全新的AES密钥与服务端进行数据交互。这样,客户端每次登录之后,都会使用全新的AES密钥与服务端进行数据交互,极大提高了数据交互的安全性,降低了数据交互过程中数据被破解的可能性。
在一些实施方式中,所述服务端,包括:网关和业务服务器。所述数据交互方法,还包括:利用加解密密钥进行业务处理的过程。
下面结合图6所示本发明的方法中利用加解密密钥进行业务处理的一实施例流程示意图,进一步说明利用加解密密钥进行业务处理的具体过程,包括:步骤S510和步骤S520。
步骤S510,通过所述服务端的网关,在所述客户端向所述服务端请求业务服务之后,在所述加解密密钥包括AES密钥、且所述保存结果包括token的情况下,识别所述客户端发送的所述token,获取所述token中的AES密钥并进行还原。以及,将所述还原后的AES密钥与所述客户端发送的请求数据,一并发送给所述服务端的N个业务服务器中与所述请求数据对应的业务服务器。
步骤S520,通过服务端的业务服务器,在接收到所述还原后的AES密钥与所述请求数据的情况下,利用所述还原后的AES密钥对所述请求数据进行解密,完成所述请求数据所需要的业务处理,得到业务处理结果数据。以及,利用所述还原后的AES密钥对所述业务处理结果数据进行加密后,返回至所述客户端,完成所述服务端对所述客户端的所述业务服务。
如图7所示,一种数据安全交互加解密的分布式方法的加解密流程,还包括:
在步骤3中,在客户端将请求数据与token发送至服务端之后,服务端网关进行token验证,验证通过后,将token中的AES密钥取出进行还原,将还原后的密钥与数据一并发送给对应的业务服务(即业务服务器)。这样,在网关入口进行AES密钥的统一识别处理,既可以拦截无效的请求,又能够降低业务服务方法的复杂度。
业务服务进行数据解密并完成业务处理,使用AES密钥对结果数据进行加密,返回给客户端。
步骤1至步骤3,是只为用户本次登录的业务操作进行加解密服务。当客户端主动退出或token失效时,对应的AES密钥也随之失效,而保证了密钥与用户数据的安全。
在本发明的方案中,使用token进行AES密钥的管理,不需要缓存工具,便解决了分布式方法保存每个用户AES密钥的复杂性问题。同时,由网关对token中的AES密钥进行统一识别处理,既可以拦截无效的请求,又能够降低业务服务方法的复杂度,让业务方法专注于业务处理,从而提高分布式方法的效率。
由于本实施例的方法所实现的处理及功能基本相应于前述系统的实施例、原理和实例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
采用本发明的技术方案,通过设置由客户端和服务端构成的分布式系统,用户每次登录时,客户端为该用户的本次登录生成唯一的加解密密钥,实现与服务端之间的数据交互;用户在本次登录之后的环节中使用该加解密密钥,对请求数据与返回数据进行加解密,当用户退出本次登录或本次登录状态失效时,客户端在本次登录时为该用户的本次登录生成唯一的加解密密钥失效,既可以拦截无效的请求,又能够降低业务服务方法的复杂度。
综上,本领域技术人员容易理解的是,在不冲突的前提下,上述各有利方式可以自由地组合、叠加。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种数据交互系统,其特征在于,包括:客户端和服务端;其中,
所述客户端,被配置为在接收到使用者的登录请求时,生成加解密密钥;以及,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端;
所述服务端,被配置为在接收到所述登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,得到登录成功数据;将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果;以及,将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端;
所述客户端,还被配置为在接收到所述服务端返回的所述登录成功数据与所述保存结果的情况下,基于所述保存结果向所述服务端请求业务服务;所述业务服务,是所述客户端需要、且所述服务端具备的至少一种服务;
其中,所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
2.根据权利要求1所述的数据交互系统,其特征在于,所述加解密密钥,包括:AES密钥;
所述客户端,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端,包括:
提取所述登录请求所携带的登录数据;
使用所述服务端提供的SM2公钥,将所述登录数据与所述AES密钥加密,得到使用者的登录信息,并将所述登录信息发送至所述服务端。
3.根据权利要求1所述的数据交互系统,其特征在于,所述加解密密钥,包括:AES密钥;
所述服务端,将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果,包括:
将所述AES密钥进行混淆处理,得到混淆处理结果。
4.根据权利要求1所述的数据交互系统,其特征在于,所述保存结果,包括:token;
所述客户端,基于所述保存结果向所述服务端请求业务服务,包括:
将需要向所述服务端请求业务服务的请求数据与所述token发送至所述服务端,以向所述服务端请求所述业务服务。
5.根据权利要求1至4中任一项所述的数据交互系统,其特征在于,还包括:
所述服务端的网关,被配置为在所述客户端向所述服务端请求业务服务之后,在所述加解密密钥包括AES密钥、且所述保存结果包括token的情况下,识别所述客户端发送的所述token,获取所述token中的AES密钥并进行还原;以及,将所述还原后的AES密钥与所述客户端发送的请求数据,一并发送给所述服务端的N个业务服务器中与所述请求数据对应的业务服务器;
所述服务端的业务服务器,在接收到所述还原后的AES密钥与所述请求数据的情况下,利用所述还原后的AES密钥对所述请求数据进行解密,完成所述请求数据所需要的业务处理,得到业务处理结果数据;以及,利用所述还原后的AES密钥对所述业务处理结果数据进行加密后,返回至所述客户端,完成所述服务端对所述客户端的所述业务服务。
6.根据权利要求1至4中任一项所述的数据交互系统,其特征在于,所述客户端,包括:PC端或移动端;
所述客户端与所述服务端形成分布式系统。
7.一种数据交互方法,其特征在于,所述数据交互方法,应用于客户端,所述客户端能够与服务端进行数据交互;所述客户端的数据交互方法,包括:
在接收到使用者的登录请求时,生成加解密密钥;以及,基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端;以使所述服务端在接收到所述登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,得到登录成功数据;将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果;以及,将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端;
在接收到所述服务端返回的所述登录成功数据与所述保存结果的情况下,基于所述保存结果向所述服务端请求业务服务;所述业务服务,是所述客户端需要、且所述服务端具备的至少一种服务;
其中,所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
8.根据权利要求7所述的数据交互方法,其特征在于,其中,
所述加解密密钥,包括:AES密钥;
基于所述加解密密钥生成所述使用者的登录信息,并将所述登录信息发送至所述服务端,包括:
提取所述登录请求所携带的登录数据;
使用所述服务端提供的SM2公钥,将所述登录数据与所述AES密钥加密,得到使用者的登录信息,并将所述登录信息发送至所述服务端;
和/或,
所述保存结果,包括:token;
基于所述保存结果向所述服务端请求业务服务,包括:
将需要向所述服务端请求业务服务的请求数据与所述token发送至所述服务端,以向所述服务端请求所述业务服务。
9.一种数据交互方法,其特征在于,所述数据交互方法,应用于服务端,所述服务端能够与客户端进行数据交互;所述服务端的数据交互方法,包括:
在接收到所述客户端发送的登录信息的情况下,基于所述登录信息进行登录验证,在所述登录验证通过的情况下确定所述使用者登录成功,得到登录成功数据;并将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果;
将所述登录成功数据与所述保存结果,一并加密后返回至所述客户端;
其中,所述登录信息,是所述客户端在接收到使用者的登录请求时,生成加解密密钥;以及,基于所述加解密密钥生成所述使用者的登录信息;
所述加解密密钥,是所述使用者在本次登录的周期内使用的唯一密钥,在所述使用者退出所述本次登录或所述使用者未退出所述本次登录但所述本次登录失效的情况下,所述加解密密钥失效。
10.根据权利要求9所述的数据交互方法,其特征在于,所述加解密密钥,包括:AES密钥;
将所述加解密密钥进行处理,得到处理结果,并保存所述处理结果,得到保存结果,包括:
将所述AES密钥进行混淆处理,得到混淆处理结果;
将所述混淆处理结果存入JWT的token中,将所述token作为保存结果。
CN202111403230.9A 2021-11-24 2021-11-24 一种数据交互系统及方法 Pending CN114124534A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111403230.9A CN114124534A (zh) 2021-11-24 2021-11-24 一种数据交互系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111403230.9A CN114124534A (zh) 2021-11-24 2021-11-24 一种数据交互系统及方法

Publications (1)

Publication Number Publication Date
CN114124534A true CN114124534A (zh) 2022-03-01

Family

ID=80371794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111403230.9A Pending CN114124534A (zh) 2021-11-24 2021-11-24 一种数据交互系统及方法

Country Status (1)

Country Link
CN (1) CN114124534A (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105915537A (zh) * 2016-05-27 2016-08-31 努比亚技术有限公司 一种token生成、校验方法及验证服务器
CN108023874A (zh) * 2017-11-15 2018-05-11 平安科技(深圳)有限公司 单点登录的校验装置、方法及计算机可读存储介质
CN108040048A (zh) * 2017-12-11 2018-05-15 福建福诺移动通信技术有限公司 一种基于http协议的移动客户端用户动态秘钥加密通讯方法
CN110460439A (zh) * 2019-08-08 2019-11-15 平安科技(深圳)有限公司 信息传输方法、装置、客户端、服务端及存储介质
CN110493258A (zh) * 2019-09-09 2019-11-22 平安普惠企业管理有限公司 基于token令牌的身份校验方法及相关设备
CN111010385A (zh) * 2019-12-09 2020-04-14 山东浪潮商用系统有限公司 一种基于RESTful的安全交互方法
CN111181977A (zh) * 2019-12-31 2020-05-19 瑞庭网络技术(上海)有限公司 一种登录方法、装置、电子设备及介质
CN111193718A (zh) * 2019-12-13 2020-05-22 航天信息股份有限公司 一种基于第三方授权的安全登录方法及系统
CN112217810A (zh) * 2020-09-27 2021-01-12 中国建设银行股份有限公司 请求响应方法、装置、设备及介质
US20210008457A1 (en) * 2019-07-12 2021-01-14 Microsoft Technology Licensing, Llc Data transport of encryption key used to secure communication between computing devices
CN112788033A (zh) * 2021-01-13 2021-05-11 京东方科技集团股份有限公司 一种认证方法及认证系统
CN113438086A (zh) * 2021-06-24 2021-09-24 深圳前海微众银行股份有限公司 一种数据安全防护方法和系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105915537A (zh) * 2016-05-27 2016-08-31 努比亚技术有限公司 一种token生成、校验方法及验证服务器
CN108023874A (zh) * 2017-11-15 2018-05-11 平安科技(深圳)有限公司 单点登录的校验装置、方法及计算机可读存储介质
CN108040048A (zh) * 2017-12-11 2018-05-15 福建福诺移动通信技术有限公司 一种基于http协议的移动客户端用户动态秘钥加密通讯方法
US20210008457A1 (en) * 2019-07-12 2021-01-14 Microsoft Technology Licensing, Llc Data transport of encryption key used to secure communication between computing devices
CN110460439A (zh) * 2019-08-08 2019-11-15 平安科技(深圳)有限公司 信息传输方法、装置、客户端、服务端及存储介质
CN110493258A (zh) * 2019-09-09 2019-11-22 平安普惠企业管理有限公司 基于token令牌的身份校验方法及相关设备
CN111010385A (zh) * 2019-12-09 2020-04-14 山东浪潮商用系统有限公司 一种基于RESTful的安全交互方法
CN111193718A (zh) * 2019-12-13 2020-05-22 航天信息股份有限公司 一种基于第三方授权的安全登录方法及系统
CN111181977A (zh) * 2019-12-31 2020-05-19 瑞庭网络技术(上海)有限公司 一种登录方法、装置、电子设备及介质
CN112217810A (zh) * 2020-09-27 2021-01-12 中国建设银行股份有限公司 请求响应方法、装置、设备及介质
CN112788033A (zh) * 2021-01-13 2021-05-11 京东方科技集团股份有限公司 一种认证方法及认证系统
CN113438086A (zh) * 2021-06-24 2021-09-24 深圳前海微众银行股份有限公司 一种数据安全防护方法和系统

Similar Documents

Publication Publication Date Title
US7028180B1 (en) System and method for usage of a role certificate in encryption and as a seal, digital stamp, and signature
CN1697367B (zh) 一种用于通过通信网络不暴露专用数据对密码保护的专用数据进行恢复的方法和系统
US6367010B1 (en) Method for generating secure symmetric encryption and decryption
EP1175038B1 (en) Technique for obtaining a sign-on certificate from a foreign PKI system using an existing strong authentication PKI system
WO2017164159A1 (ja) 1:n生体認証・暗号・署名システム
US20130007464A1 (en) Protocol for Controlling Access to Encryption Keys
CN111770057B (zh) 身份验证系统及身份验证方法
CN108833361B (zh) 一种基于虚拟账号的身份认证方法及装置
CN113067699B (zh) 基于量子密钥的数据共享方法、装置和计算机设备
CN107920052B (zh) 一种加密方法及智能装置
CN101965574B (zh) 认证信息生成系统、认证信息生成方法、客户机装置
CN109618341A (zh) 一种数字签名认证方法、系统、装置以及存储介质
CN112565265B (zh) 物联网终端设备间的认证方法、认证系统及通讯方法
CN111130798B (zh) 一种请求鉴权方法及相关设备
CN110233850B (zh) 基于联盟链的注册方法、应用服务器、用户端以及系统
CN110380859B (zh) 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统
US20080155669A1 (en) Multiple account authentication
CN111355591A (zh) 一种基于实名认证技术的区块链账号安全的管理方法
CN107682367A (zh) 一种pc端网页登录方法和系统
CN114143082A (zh) 一种加密通信方法、系统及装置
CN114244508A (zh) 数据加密方法、装置、设备及存储介质
JP6533542B2 (ja) 秘密鍵複製システム、端末および秘密鍵複製方法
CN112633884B (zh) 交易主体身份证书的本地私钥恢复方法及装置
CN112989320B (zh) 一种用于密码设备的用户状态管理系统及方法
EP1164745A2 (en) System and method for usage of a role certificate in encryption, and as a seal, digital stamp, and a signature

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