CN112019493B - 身份认证方法、身份认证装置、计算机设备和介质 - Google Patents
身份认证方法、身份认证装置、计算机设备和介质 Download PDFInfo
- Publication number
- CN112019493B CN112019493B CN201910475902.3A CN201910475902A CN112019493B CN 112019493 B CN112019493 B CN 112019493B CN 201910475902 A CN201910475902 A CN 201910475902A CN 112019493 B CN112019493 B CN 112019493B
- Authority
- CN
- China
- Prior art keywords
- client
- identity
- signature
- verification code
- request
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012795 verification Methods 0.000 claims abstract description 190
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 13
- 230000003993 interaction Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 4
- 239000000758 substrate Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 digital signatures
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)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种身份认证方法,应用于服务器端,包括:接收客户端发送的请求消息,所述请求消息包括:身份标识、第一签名和请求参数,所述第一签名是由所述客户端基于所述身份标识、所述请求参数、以及所述客户端获得的验证码得到的;获取本服务器端为所述身份标识预先分配的第一验证码;当满足预定条件时,基于所述身份标识、所述第一验证码和所述请求参数,得到第二签名;当所述第二签名与所述第一签名一致时,确定所述客户端身份认证通过;以及当确定所述客户端身份认证通过时,向所述客户端返回针对所述请求参数的响应参数。本公开还提供了一种身份认证装置、一种计算机设备以及一种计算机可读存储介质。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种身份认证方法、身份认证装置、计算机设备和介质。
背景技术
现有技术中,服务器端在接收到客户端发送的请求消息后,仅仅通过客户端发送的请求消息中携带版本号、编译号、用户编号等唯一字段来对客户端进行身份认证,此种身份认证方式存在以下问题。
一方面,此种方式对于攻击者来说很容易伪造请求消息。当攻击者截获几条请求消息后,就可以获得这些重复、固定的唯一字段,将这些唯一字段添加进伪造的请求消息中再发送至服务器端,服务器端无法验明这些请求消息的真实性。另一方面,基于此方式,服务器端在进行身份认证时,必须先解析请求消息的消息体以获取特定字段。在面对大量攻击请求或伪造请求的环境下,每条请求消息的解析极大浪费了服务器端性能。
发明内容
有鉴于此,本公开提供了一种改进的身份认证方法、身份认证装置、计算机设备和介质。
本公开的一个方面提供了一种身份认证方法。该方法应用于服务器端,包括:接收客户端发送的请求消息,其中所述请求消息包括:身份标识、第一签名和请求参数,所述第一签名是由所述客户端基于所述身份标识、所述请求参数、以及所述客户端获得的验证码得到的。获取本服务器端为所述身份标识预先分配的第一验证码。当满足预定条件时,基于所述身份标识、所述第一验证码和所述请求参数,得到第二签名。当所述第二签名与所述第一签名一致时,确定所述客户端身份认证通过。以及,当确定所述客户端身份认证通过时,向所述客户端返回针对所述请求参数的响应参数。
根据本公开的实施例,上述方法还包括:在所述接收客户端发送的请求消息之前,接收所述客户端发送的身份标识;为接收到的任一身份标识分配验证码并将所述验证码发送至与所述任一身份标识相关联的另一客户端;以及,在数据库中存储所述任一身份标识的验证信息,其中所述验证信息包括:所述任一身份标识、以及与所述任一身份标识对应的验证码。
根据本公开的实施例,所述身份标识为手机号码。上述为接收到的任一身份标识分配验证码并将所述验证码发送至与所述任一身份标识相关联的另一客户端包括:为接收到的任一手机号码生成验证码并将所述验证码发送至与所述任一手机号码相关联的即时通信客户端。
根据本公开的实施例,上述任一身份标识的验证信息还包括:所述验证码的生成时间和所述验证码的有效时间。上述请求消息还包括请求时间。所述预定条件包括:所述请求时间与所述第一验证码的生成时间之间的时差不超过所述第一验证码的有效时间。
根据本公开的实施例,上述基于所述身份标识、所述第一验证码和所述请求参数,得到第二签名包括:根据第一组合规则将所述身份标识的部分或全部与所述第一验证码组合为第一字符串;利用第一加密算法对所述第一字符串进行加密得到第一密钥;根据第二组合规则将所述第一密钥、所述请求参数、以及本服务器端的标识信息组合为第二字符串;以及,利用第二加密算法对所述第二字符串进行加密得到所述第二签名。
本公开的另一个方面提供了一种身份认证方法。该方法应用于客户端,包括:获取身份标识、第二验证码和请求参数。基于所述身份标识、所述第二验证码和所述请求参数,得到第一签名。向服务器端发送请求消息,其中所述请求消息包括:所述身份标识、所述第一签名和所述请求参数,以使所述服务器端基于所述身份标识、所述服务器端为所述身份标识分配的验证码以及所述请求参数来验证所述第一签名的正确性。以及,当所述第一签名被验证真实时,接收所述服务器端返回的针对所述请求参数的响应参数。
根据本公开的实施例,上述获取身份标识和第二验证码包括:从与所述身份标识相关联的另一客户端接收所述第二验证码。
根据本公开的实施例,上述基于所述身份标识、所述第二验证码和请求参数,得到第一签名包括:根据第一组合规则将所述身份标识的部分或全部与所述第二验证码组合为第三字符串;利用第一加密算法对所述第三字符串进行加密得到第二密钥;根据第二组合规则将所述第二密钥、所述请求参数、以及服务器端的标识信息组合为第四字符串;以及,利用第二加密算法对所述第四字符串进行加密得到所述第一签名。
本公开的另一个方面提供了一种身份认证装置。该装置应用于服务器端,包括接收模块、获取模块、签名模块、确定模块和响应模块。接收模块用于接收客户端发送的请求消息,其中所述请求消息包括:身份标识、第一签名和请求参数,所述第一签名是由所述客户端基于所述身份标识、所述请求参数、以及所述客户端获得的验证码得到的。获取模块用于获取本服务器端为所述身份标识预先分配的第一验证码。签名模块用于当满足预定条件时,基于所述身份标识、所述第一验证码和所述请求参数,得到第二签名。确定模块用于当所述第二签名与所述第一签名一致时,确定所述客户端身份认证通过。以及,响应模块用于当确定所述客户端身份认证通过时,向所述客户端返回针对所述请求参数的响应参数。
本公开的另一个方面提供了一种身份认证装置。该装置应用于客户端,包括获取模块、签名模块、发送模块和接收模块。获取模块用于获取身份标识、第二验证码和请求参数。签名模块用于基于所述身份标识、所述第二验证码和所述请求参数,得到第一签名。发送模块用于向服务器端发送请求消息,其中所述请求消息包括:所述身份标识、所述第一签名和所述请求参数,以使所述服务器端基于所述身份标识、所述服务器端为所述身份标识分配的验证码以及所述请求参数来验证所述第一签名的正确性。以及,接收模块用于当所述第一签名被验证真实时,接收所述服务器端返回的针对所述请求参数的响应参数。
本公开的另一方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,服务器端在接收到客户端发送的请求消息后,依据请求消息中的身份标识找到预先为身份标识分配的第一验证码,基于身份标识、第一验证码和请求消息中的请求参数得到第二签名,利用第二签名来验证请求消息中第一签名的正确性。由于第一签名中包含了身份标识、请求参数和客户端获得的验证码等信息,任一信息不正确均会导致第一签名的变化,利用服务器端端生成的第二签名对第一签名进行验证,能够防止攻击者对请求消息的伪造。并且在上述身份认证过程中不需要服务器端对第一签名进行解析,只需利用第二签名与第一签名进行比对,能够节省服务器端对单条请求消息进行身份认证的时间,提高服务器端性能。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用身份认证方法和装置的示例性***架构;
图2A示意性示出了根据本公开实施例的身份认证方法的流程图;
图2B示意性示出了根据本公开另一实施例的身份认证方法的流程图;
图3示意性示出了根据本公开另一实施例的身份认证方法的流程图;
图4示意性示出了根据本公开实施例的身份认证过程的示意图;
图5示意性示出了根据本公开实施例的身份认证装置的框图;
图6示意性示出了根据本公开另一实施例的身份认证装置的框图;
图7示意性示出了根据本公开另一实施例的身份认证装置的框图;
图8示意性示出了根据本公开另一实施例的身份认证装置的框图;以及
图9示意性示出了根据本公开实施例的计算机设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
本公开的实施例提供了一种身份认证方法和装置。该方法应用于服务器端,包括请求接收阶段、验证码获取阶段、签名阶段、认证阶段和响应阶段。在请求接收阶段,接收客户端发送的包含身份标识、第一签名和请求参数的请求消息。然后在验证码获取阶段,根据请求消息中的身份标识获取服务器端侧所记录的为该身份标识预先分配的第一验证码。在满足预定条件时进入签名阶段,基于身份标识、第一验证码和请求参数得到第二签名。在认证阶段,当服务器端侧生成的第二签名与客户端发来的第一签名一致时,确定客户端身份认证通过。身份认证通过后进入响应阶段,向客户端返回针对所述请求参数的响应参数。
图1示意性示出了根据本公开实施例的可以应用身份认证方法和装置的示例性***架构100。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103中的各种客户端提供支持的后台管理服务器。后台管理服务器接收客户端发送的请求消息,可以先对客户端进行身份认证,在身份认证通过后对接收到的请求消息进行分析处理等响应,并将针对该请求消息的响应结果(例如根据请求消息获取或生成的网页、信息、或数据等)反馈给终端设备101、102、103,用户通过终端设备101、102、103浏览相应的响应结果。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实际需要,可以具有任意数目的终端设备、网络和服务器。
图2A示意性示出了根据本公开实施例的身份认证方法的流程图,从服务器端侧描述根据本公开实施例的身份认证方法。
如图2A所示,该方法包括操作S201~S205。
在操作S201,接收客户端发送的请求消息。
本操作中,客户端发送的请求消息包括:身份标识、第一签名和请求参数。其中,身份标识用于标识客户端的用户身份。第一签名是由客户端基于身份标识、请求参数、以及该客户端获取到的验证码得到的。请求参数包括与请求消息相关的一个或多个参数信息,可以表征客户端所请求获得的业务数据的名称、格式、长度等,客户端的软件信息,客户端所在设备的硬件信息,等等,在此不做限制。客户端向服务器端发送请求消息的目的在于获取其所请求获得的数据内容。
在操作S202,获取本服务器端为身份标识预先分配的第一验证码。
本操作中,服务器端为身份标识预先分配的第一验证码是该身份标识的唯一合法验证码。只有与身份标识相关联的合法客户端才能够获取到该身份标识的合法验证码。服务器端在接收到客户端发送的请求消息后,根据请求消息中的身份标识获取预先分配的第一验证码,以便后续利用该第一验证码来确定客户端所获取到的验证码的正确性。
在操作S203,当满足预定条件时,基于所述身份标识、所述第一验证码和所述请求参数,得到第二签名。
在操作S204,当所述第二签名与所述第一签名一致时,确定所述客户端身份认证通过。
本操作S204在利用第一验证码来确定客户端所获取到的验证码的正确性时,没有将第一验证码与客户端所获取到的验证码直接进行比对,而是以服务器端端生成的第二签名为依据来验证客户端所发送的请求消息中的第一签名的正确性。由于第二签名是服务器端基于身份标识、第一验证码和请求参数得到的,第一签名是客户端基于身份标识、请求参数和客户端所获得的验证码得到的,如果第二签名和第一签名一致,说明客户端所获得的验证码和服务器端所记录的第一验证码是一致的。此时,确定客户端持有合法的身份标识以及与该身份标识对应的正确的验证码,确定客户端身份认证通过。如果第二签名和第一签名不一致,说明客户端所获得的验证码和服务器端所记录的第一验证码是不一致的。此时,确定客户端持有的身份标识和验证码不对应,确定客户端身份认证未通过。
在操作S205,当确定所述客户端身份认证通过时,向所述客户端返回针对所述请求参数的响应参数。
可见,在图2A所示的方法中,服务器端在接收到客户端发送的请求消息后,依据请求消息中的身份标识找到预先为身份标识分配的第一验证码,基于身份标识、第一验证码和请求消息中的请求参数得到第二签名,利用第二签名来验证请求消息中第一签名的正确性。由于第一签名中包含了身份标识、请求参数和客户端获得的验证码等信息,任一信息不正确均会导致第一签名的变化,利用服务器端端生成的第二签名对第一签名进行验证,能够防止攻击者对请求消息的伪造。并且在上述身份认证过程中不需要服务器端对第一签名进行解析,只需利用第二签名与第一签名进行比对,能够节省服务器端对单条请求消息进行身份认证的时间,提高服务器端性能。
图2B示意性示出了根据本公开另一实施例的身份认证方法的流程图,从服务器端侧描述根据本公开实施例的身份认证方法。
如图2B所示,该方法包括操作S211~S213以及操作S201~S205,其中操作S201~S205在上文已说明,在此不再赘述。
在操作S211,接收客户端发送的身份标识。
在操作S212,为接收到的任一身份标识分配验证码并将所述验证码发送至与所述任一身份标识相关联的另一客户端。
本操作中,将为一个身份标识分配的验证码发送至与该身份标识相关联的另一客户端,使得当发送身份标识的客户端是与该身份标识关联的合法客户端时,能够通过所述另一客户端获取到服务器端为该身份标识分配的验证码,即能够获取到该身份标识的唯一合法验证码。
在操作S213,在数据库中存储所述任一身份标识的验证信息,所述验证信息包括:所述任一身份标识、以及本服务器端为所述任一身份标识分配的验证码。
本操作中,对于来自于任意客户端的每个身份标识,服务器端均将该身份标识和为该身份标识分配的验证码对应存储于数据库中,作为该身份标识的验证信息。
在操作S213之后,再执行操作S201~S205。
在一个具体的实施例中,身份标识可以为手机号码,客户端为客户端C,服务器端为服务器S。在用户使用客户端C实现预定功能的场景下,客户端C响应于用户输入手机号码A的操作,将该手机号码A发送至服务器S,服务器S接收客户端C发送的该手机号码A并为该手机号码分配验证码a。一方面,服务器S将手机号码A和验证码a对应存储为手机号码A的验证信息。另一方面,服务器S将该验证码a发送至与手机号码A关联的另一客户端C’,例如客户端C’是与手机号码A关联的即时通信客户端C’。客户端C与客户端C’可以运行于相同或不同的电子设备上。如果客户端C是与手机号码A关联的合法客户端,则可以从客户端C’获得验证码a,例如,客户端C通过与客户端C’的直接或间接通信获得验证码a,或者,用户从客户端C’获知该验证码a后,再向客户端C输入验证码a。如果客户端C是非法的客户端或者由非法用户进行操作,则客户端C无法获取到验证码或获取到错误的验证码。
客户端C获取到验证码后,基于手机号码A、获取到的验证码和本次请求消息的请求参数得到第一签名,将手机号码A、第一签名和请求参数放入请求消息中,将请求消息发送至服务器S。服务器S接收到该请求消息后,从中提取出手机号码A、第一签名和请求参数,依据手机号码A从数据库中查找与手机号码A对应的验证码a,基于手机号码A、验证码a和请求参数得到第二签名,利用第二签名来验证第一签名的正确性,从而验证客户端C是否获得了正确的验证码a。
在另一个具体的实施例中,身份标识可以为邮箱地址,客户端为客户端C,服务器端为服务器S。在用户使用客户端C实现预定功能的场景下,客户端C响应于用户输入邮箱地址B的操作,将该邮箱地址B发送至服务器S,服务器S接收客户端C发送的该邮箱地址B并为该手机号码分配验证码b。一方面,服务器S将邮箱地址B和验证码b对应存储为邮箱地址B的验证信息。另一方面,服务器S将该验证码b发送至与邮箱地址B关联的另一客户端C’,例如客户端C’是与邮箱地址B关联的即时通信客户端C’。客户端C与客户端C’可以运行于相同或不同的电子设备上。如果客户端C是与邮箱地址B关联的合法客户端,则可以从客户端C’获得验证码b,例如,客户端C通过与客户端C’的直接或间接通信获得验证码b,或者,用户从客户端C’获知该验证码b后,再向客户端C输入验证码b。如果客户端C是非法的客户端或者由非法用户进行操作,则客户端C无法获取到验证码或获取到错误的验证码。
根据本公开的实施例,为了进一步提高身份认证的可靠性,服务器端为身份标识所分配的验证码是随机生成的动态验证码,具有一定的有效时间。服务器端所存储的任一身份标识的验证信息除了身份标识和验证码之外,还包括该验证码的生成时间和该验证码的有效时间。客户端发送的请求消息除身份标识、第一签名和请求参数之外,还包括请求时间。则上述预定条件包括:所述请求时间与所述第一验证码的生成时间之间的时差不超过所述第一验证码的有效时间。也就是说,服务器端在接收到请求消息后,依据该请求消息中的身份标识在数据库中找到该身份标识的验证信息,获取到本服务器端为该身份标识分配的第一验证码、第一验证码的生成时间和第一验证码的有效时间。服务器端还从请求消息中获取请求时间,当该请求时间与第一验证码的生成时间之间的时差超过第一验证码的有效时间时,表明本服务器端为身份标识分配的第一验证码已经失效,此时,请求消息必然是失效的,无需再执行后续验证过程。反之,表明本服务器端为身份标识分配的第一验证码尚未失效,可以进行后续验证过程。
根据本公开的实施例,上述服务器端基于所述身份标识、所述第一验证码和所述请求参数,得到第二签名包括:根据第一组合规则将身份标识的部分或全部与本服务器端为身份标识分配的第一验证码组合为第一字符串,利用第一加密算法对该第一字符串进行加密得到第一密钥。然后,根据第二组合规则将第一密钥、请求消息中的请求参数、以及本服务器端的标识信息组合为第二字符串,利用第二加密算法对该第二字符串进行加密得到第二签名。可以看出,上述过程生成的第二签名包含身份标识、本服务器端为身份标识分配的第一验证码、请求消息以及本服务器端的标识信息共四种信息,任一种信息的变化都会导致第二签名的变化,且通过双层组合和双层加密对各信息(尤其是第一验证码)进行保护。
图3示意性示出了根据本公开另一实施例的身份认证方法的流程图,从客户端侧描述根据本公开实施例的身份认证方法。
如图3所示,该方法包括操作S301~S304。
在操作S301,获取身份标识、第二验证码和请求参数。
其中,身份标识表征本客户端的用户身份。第二验证码是本客户端获得的与身份标识对应的验证码,当本客户端为与身份标识相关联的合法客户端时,第二验证码应当与服务器端预先为身份标识分配的验证码一致,否则,第二验证码是伪造的。请求参数包括与请求消息相关的一个或多个参数信息,可以表征客户端所请求获得的业务数据的名称、格式、长度等,客户端的软件信息,客户端所在设备的硬件信息,等等,在此不做限制。客户端可以根据实际需要在本地生成请求参数。
在操作S302,基于所述身份标识、所述第二验证码和所述请求参数,得到第一签名。
本操作得到的第一签名包含有本客户端获取到的身份标识、第二验证码和请求参数这三种信息,任一信息的变化都会导致第一签名的变化。
在操作S303,向服务器端发送请求消息,所述请求消息包括:所述身份标识、所述第一签名和所述请求参数,以使所述服务器端基于所述身份标识、所述服务器端为所述身份标识分配的验证码以及所述请求参数来验证所述第一签名的正确性。
在操作S304,当所述第一签名被验证为正确时,接收所述服务器端返回的针对所述请求参数的响应参数。
可以看出,图3所示的应用于客户端的身份认证方法与图2A~2B所示的应用于服务器端的身份认证方法相对应,客户端与服务器端的相互配合可以实现完整的身份认证过程,重复的部分不再赘述。
在本公开的一个实施例中,上述客户端获取第二验证码包括:从与身份标识相关联的另一客户端接收该第二验证码。
在本公开的一个实施例中,上述基于身份标识、第二验证码和请求参数,得到第一签名包括:根据第一组合规则将身份标识的部分或全部与第二验证码组合为第三字符串,利用第一加密算法对该第三字符串进行加密得到第二密钥。根据第二组合规则将第二密钥、请求参数、以及服务器端的标识信息组合为第四字符串,利用第二加密算法对该第四字符串进行加密得到第一签名。可以看出,上述过程生成的第一签名包含身份标识、本客户端所获得的第二验证码、请求消息以及服务器端的标识信息共四种信息,任一种信息的变化都会导致第一签名的变化,且通过双层组合和双层加密对各信息(尤其是第二验证码)进行保护,避免攻击者截获请求消息时对第二验证码的解析。
下面参考图4,结合具体实施例对根据本公开实施例的身份认证方法进行展开说明。本实施例中,以客户端的身份标识为手机号码为例进行说明,在其他实施例中,客户端的身份标识可以是任意可以表征客户端身份的唯一标识,如可以是邮箱地址、用户名等,实现逻辑相同,在此不重复说明。
图4示意性示出了根据本公开实施例的身份认证过程的示意图。
如图4所示,本例中,客户端为客户端C,服务器端为服务器S,展示了客户端C向服务器S发起注册请求时所进行的身份认证过程。客户端C的界面上显示一个输入控件和一个验证码获取控件,用户通过该输入控件输入手机号码A,客户端C获取到手机号码A。响应于用户触发验证码获取控件的操作,客户端C将手机号码A发送至服务器S。服务器S在接收到该手机号码A后,为该手机号码A分配一个6位随机数的验证码a,该验证码a只能使用一次,有效时间为N(N>0)分钟。服务器S将验证码a通过直接或间接的方式发送至客户端C,同时服务器A将手机号码A、验证码a、验证码a的生成时间和验证码a的有效时间在数据库中存储为手机号码A的验证信息。
假设客户端C接收到验证码a’,在身份认证完成之前尚不知道该验证码a’是否与验证码a一致。客户端C与服务器S通过Https(Hyper Text Transfer Protocol Secure,超文本传输安全协议)进行通信,客户端C将注册请求所需的请求参数封装成json字符串,将该json字符串作为请求消息的请求体(body)。客户端C将接收到的验证码a’与手机号码A的后四位组合为字符串1,利用第一加密算法对该字符串1进行加密,得到第一密钥。其中第一加密算法可以是各种可逆或不可逆的加密算法,例如可以是SHA256算法、MD5算法、SHA1算法等,在此不做限制。然后,客户端C将第一密钥、URL信息和请求体组合为字符串2,利用第二加密算法对该字符串2进行加密,得到第一签名(signature)。其中第二加密算法通常为可逆的加密算法,例如预定的移位、反序等加密算法。客户端C将手机号码A和第一签名放入消息头(header),将消息头和消息体组成为注册请求的请求消息,向服务器S发送该请求消息。
服务器S在接收到该请求消息后,确定客户端C的请求时间,通过解析消息头得到手机号码A和第一签名,根据手机号码A在数据库中查找手机号码A的验证信息,从中获取到服务器S预先为手机号码A分配的验证码a、验证码a的生成时间和验证码a的有效时间。如果请求时间距验证码a的生成时间超过N分钟,确定该请求消息失效,直接确定客户端C身份认证失败,不允许进行注册。如果请求时间距验证码a的生成时间未超过N分钟,确定该请求消息有效。则服务器S将查找到的验证码a与手机号码A的后四位组合为字符串3,利用第一加密算法对该字符串3进行加密,得到第二密钥。然后,服务器S将第二密钥、URL信息和请求消息中的请求体组合为字符串4,利用第二加密算法对该字符串4进行加密,得到第二签名。
服务器S将生成的第二签名和消息头中的第一签名进行比对,如果二者一致表示该请求消息来自真实合法的客户端,确定客户端C身份认证成功,允许进行注册,服务器S向客户端C返回针对注册请求的响应参数,以使客户端C基于手机号码A注册成功。
本例中以客户端向服务器端进行注册请求为例进行说明,需要说明的是,根据本公开实施例的身份认证方法适用于客户端向服务器端发起请求的各种场景,如登录场景、业务数据请求场景等,在此不做限制。
进一步地,在服务器S与客户端C之前有过交互的情况下,服务器S还可以预存与客户端C相关的各种信息,如客户端C所在的设备的硬件信息、客户端C的软件信息、与客户端C关联的手机号码等。服务器S在接收到客户端C发送的请求消息后,可以将请求体中记载的各种信息与预存的与客户端C相关的各种信息进行匹配,当匹配程度低于预定阈值时向客户端C发送安全警告信息。然后再进行上述身份认证过程。
图5示意性示出了根据本公开实施例的身份认证装置的框图,该身份认证装置500应用于服务器端。
如图5所示,身份认证装置500包括:接收模块510、获取模块520、签名模块530、确定模块540、以及响应模块550。
接收模块510用于接收客户端发送的请求消息,所述请求消息包括:身份标识、第一签名和请求参数,所述第一签名是由所述客户端基于所述身份标识、所述请求参数、以及所述客户端获得的验证码得到的。
获取模块520用于获取本服务器端为所述身份标识分配的第一验证码。
签名模块530用于当满足预定条件时,基于所述身份标识、所述第一验证码和所述请求参数,得到第二签名。
确定模块540用于当所述第二签名与所述第一签名一致时,确定所述客户端身份认证通过。
以及,响应模块550用于当确定所述客户端身份认证通过时,向所述客户端返回针对所述请求参数的响应参数。
图6示意性示出了根据本公开另一实施例的身份认证装置的框图,该身份认证装置600应用于服务器端。
如图6所示,身份认证装置600包括:接收模块610、获取模块620、签名模块630、确定模块640、以及响应模块650。其中,接收模块610、获取模块620、签名模块630、确定模块640、以及响应模块650分别具有与接收模块510、获取模块520、签名模块530、确定模块540、以及响应模块550对应相同的功能,重复的部分不再赘述。
在本公开的一个实施例中,身份认证装置600还包括:身份标识接收模块660、分配模块670、以及存储处理模块680。
身份标识接收模块660用于在接收模块610接收客户端发送的请求消息之前,接收所述客户端发送的身份标识。分配模块670用于为接收到的任一身份标识分配验证码并将所述验证码发送至与所述任一身份标识相关联的另一客户端;以及存储处理模块680用于在数据库中存储所述任一身份标识的验证信息,所述验证信息包括:所述任一身份标识、以及与所述任一身份标识对应的验证码。
在本公开的一个实施例中,所述身份标识为手机号码。分配模块670具体用于为接收到的任一手机号码生成验证码并将所述验证码发送至与所述任一手机号码相关联的即时通信客户端。
在本公开的一个实施例中,所述任一身份标识的验证信息还包括:所述验证码的生成时间和所述验证码的有效时间。所述请求消息还包括请求时间。所述预定条件包括:所述请求时间与所述第一验证码的生成时间之间的时差不超过所述第一验证码的有效时间。
在本公开的一个实施例中,签名模块630包括:第一组合子模块631、第一加密子模块632、第二组合子模块633、以及第二加密子模块634。
第一组合子模块631用于根据第一组合规则将所述身份标识的部分或全部与所述第一验证码组合为第一字符串。第一加密子模块632用于利用第一加密算法对所述第一字符串进行加密得到第一密钥。第二组合子模块633用于根据第二组合规则将所述第一密钥、所述请求参数、以及本服务器端的标识信息组合为第二字符串。以及第二加密子模块634用于利用第二加密算法对所述第二字符串进行加密得到所述第二签名。
图7示意性示出了根据本公开另一实施例的身份认证装置的框图,该身份认证装置700应用于客户端。
如图7所示,身份认证装置700包括:获取模块710、签名模块720、发送模块730、以及接收模块740。
获取模块710用于获取身份标识、第二验证码和请求参数。
签名模块720用于基于所述身份标识、所述第二验证码和所述请求参数,得到第一签名。
发送模块730用于向服务器端发送请求消息,所述请求消息包括:所述身份标识、所述第一签名和所述请求参数,以使所述服务器端基于所述身份标识、所述服务器端为所述身份标识分配的验证码以及所述请求参数来验证所述第一签名的正确性。
以及接收模块740用于当所述第一签名被验证真实时,接收所述服务器端返回的针对所述请求参数的响应参数。
图8示意性示出了根据本公开另一实施例的身份认证装置的框图,该身份认证装置800应用于客户端。
如图8所示,身份认证装置800包括:获取模块810、签名模块820、发送模块830、以及接收模块840。其中,获取模块810、签名模块820、发送模块830、以及接收模块840分别具有与获取模块710、签名模块720、发送模块730、以及接收模块740对应相同的功能,重复的部分不再赘述。
在本公开的一个实施例中,获取模块810具体用于从与所述身份标识相关联的另一客户端接收所述第二验证码。
在本公开的一个实施例中,签名模块820包括:第一组合子模块821、第一加密子模块822、第二组合子模块823、以及第二加密子模块824。
第一组合子模块821用于根据第一组合规则将所述身份标识的部分或全部与所述第二验证码组合为第三字符串。第一加密子模块822用于利用第一加密算法对所述第三字符串进行加密得到第二密钥。第二组合子模块823用于根据第二组合规则将所述第二密钥、所述请求参数、以及服务器端的标识信息组合为第四字符串。以及第二加密子模块824用于利用第二加密算法对所述第四字符串进行加密得到所述第一签名。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,接收模块610、获取模块620、签名模块630、确定模块640、响应模块650、身份标识接收模块660、分配模块670、以及存储处理模块680中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,接收模块610、获取模块620、签名模块630、确定模块640、响应模块650、身份标识接收模块660、分配模块670、以及存储处理模块680中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块610、获取模块620、签名模块630、确定模块640、响应模块650、身份标识接收模块660、分配模块670、以及存储处理模块680中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
又例如,获取模块810、签名模块820、发送模块830、以及接收模块840中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块810、签名模块820、发送模块830、以及接收模块840中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块810、签名模块820、发送模块830、以及接收模块840中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机设备的框图。图9示出的计算机设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,根据本公开实施例的计算机设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有设备900操作所需的各种程序和数据。处理器901、ROM 902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (9)
1.一种身份认证方法,应用于服务器端,包括:
接收客户端发送的请求消息,所述请求消息包括:身份标识、第一签名和请求参数,所述第一签名是由所述客户端基于所述身份标识、所述请求参数、所述客户端获得的第二验证码和所述服务器端的标识信息得到的,所述请求参数包括所述客户端所请求获得的业务数据的名称、格式和长度;
获取所述服务器端为所述身份标识预先分配的第一验证码;
当满足预定条件时,根据第一组合规则将所述身份标识的部分或全部与所述第一验证码组合为第一字符串;
利用第一加密算法对所述第一字符串进行加密得到第一密钥;
根据第二组合规则将所述第一密钥、所述请求参数、以及所述服务器端的标识信息组合为第二字符串,其中,所述服务器端的标识信息包括URL信息;
利用第二加密算法对所述第二字符串进行加密得到第二签名;
当所述第二签名与所述第一签名一致时,确定所述客户端身份认证通过;以及
当确定所述客户端身份认证通过时,向所述客户端返回针对所述请求参数的响应参数;
其中,在所述服务器端与所述客户端之间存在交互的情况下,在接收到客户端发送的请求消息后,将所述请求消息的请求体中记载的各种信息与预存的与客户端相关的各种信息进行匹配,当匹配程度低于预定阈值时向客户端发送安全警告信息;
其中,所述各种信息包括所述客户端所在的设备的硬件信息、所述客户端的软件信息、与所述客户端关联的手机号码。
2.根据权利要求1所述的方法,还包括在所述接收客户端发送的请求消息之前:
接收所述客户端发送的身份标识;
为接收到的任一身份标识分配验证码并将所述验证码发送至与所述任一身份标识相关联的另一客户端;以及
在数据库中存储所述任一身份标识的验证信息,所述验证信息包括:所述任一身份标识、以及与所述任一身份标识对应的验证码。
3.根据权利要求2所述的方法,其中:
所述任一身份标识的验证信息还包括:所述验证码的生成时间和所述验证码的有效时间;
所述请求消息还包括请求时间;
所述预定条件包括:所述请求时间与所述第一验证码的生成时间之间的时差不超过所述第一验证码的有效时间。
4.一种身份认证方法,应用于客户端,包括:
获取身份标识、第二验证码和请求参数,所述请求参数包括所述客户端所请求获得的业务数据的名称、格式和长度;
根据第一组合规则将所述身份标识的部分或全部与所述第二验证码组合为第三字符串;
利用第一加密算法对所述第三字符串进行加密得到第二密钥;
根据第二组合规则将所述第二密钥、所述请求参数、以及服务器端的标识信息组合为第四字符串,所述服务器端的标识信息包括URL信息;以及
利用第二加密算法对所述第四字符串进行加密得到第一签名;
向服务器端发送请求消息,所述请求消息包括:所述身份标识、所述第一签名和所述请求参数,以使所述服务器端基于所述身份标识、所述服务器端为所述身份标识分配的第一验证码、所述请求参数和所述服务器端的标识信息生成的第二签名来验证所述第一签名的正确性,其中,所述第二签名与所述第一签名一致时所述第一签名被验证正确;以及
当所述第一签名被验证正确时,接收所述服务器端返回的针对所述请求参数的响应参数。
5.根据权利要求4所述的方法,其中,所述获取身份标识和第二验证码包括:从与所述身份标识相关联的另一客户端接收所述第二验证码。
6.一种身份认证装置,应用于服务器端,包括:
接收模块,用于接收客户端发送的请求消息,所述请求消息包括:身份标识、第一签名和请求参数,所述第一签名是由所述客户端基于所述身份标识、所述请求参数、所述客户端获得的第二验证码和所述服务器端的标识信息得到的,所述请求参数包括所述客户端所请求获得的业务数据的名称、格式和长度;
获取模块,用于获取所述服务器端为所述身份标识预先分配的第一验证码;
签名模块,用于当满足预定条件时,
根据第一组合规则将所述身份标识的部分或全部与所述第一验证码组合为第一字符串;
利用第一加密算法对所述第一字符串进行加密得到第一密钥;
根据第二组合规则将所述第一密钥、所述请求参数、以及所述服务器端的标识信息组合为第二字符串,其中,所述服务器端的标识信息包括URL信息;
利用第二加密算法对所述第二字符串进行加密得到第二签名;
确定模块,用于当所述第二签名与所述第一签名一致时,确定所述客户端身份认证通过;以及
响应模块,用于当确定所述客户端身份认证通过时,向所述客户端返回针对所述请求参数的响应参数;
其中,在所述服务器端与所述客户端之间存在交互的情况下,在接收到客户端发送的请求消息后,将所述请求消息的请求体中记载的各种信息与预存的与客户端相关的各种信息进行匹配,当匹配程度低于预定阈值时向客户端发送安全警告信息;
其中,所述各种信息包括所述客户端所在的设备的硬件信息、所述客户端的软件信息、与所述客户端关联的手机号码。
7.一种身份认证装置,应用于客户端,包括:
获取模块,用于获取身份标识、第二验证码和请求参数,所述请求参数包括所述客户端所请求获得的业务数据的名称、格式和长度;
签名模块,用于根据第一组合规则将所述身份标识的部分或全部与所述第二验证码组合为第三字符串;
利用第一加密算法对所述第三字符串进行加密得到第二密钥;
根据第二组合规则将所述第二密钥、所述请求参数、以及服务器端的标识信息组合为第四字符串,所述服务器端的标识信息包括URL信息;以及
利用第二加密算法对所述第四字符串进行加密得到第一签名;
发送模块,用于向服务器端发送请求消息,所述请求消息包括:所述身份标识、所述第一签名和所述请求参数,以使所述服务器端基于所述身份标识、所述服务器端为所述身份标识分配的第一验证码、所述请求参数和所述服务器端的标识信息生成第二签名来验证所述第一签名的正确性,其中,所述第二签名与所述第一签名一致时所述第一签名被验证正确;以及
接收模块,用于当所述第一签名被验证正确时,接收所述服务器端返回的针对所述请求参数的响应参数。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现:
如权利要求1~5中任一项所述的身份认证方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行:
如权利要求1~5中任一项所述的身份认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910475902.3A CN112019493B (zh) | 2019-05-31 | 2019-05-31 | 身份认证方法、身份认证装置、计算机设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910475902.3A CN112019493B (zh) | 2019-05-31 | 2019-05-31 | 身份认证方法、身份认证装置、计算机设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112019493A CN112019493A (zh) | 2020-12-01 |
CN112019493B true CN112019493B (zh) | 2024-04-09 |
Family
ID=73506386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910475902.3A Active CN112019493B (zh) | 2019-05-31 | 2019-05-31 | 身份认证方法、身份认证装置、计算机设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112019493B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112737790B (zh) * | 2020-12-30 | 2023-04-07 | 北京天融信网络安全技术有限公司 | 数据传输方法、装置及服务器、客户终端 |
CN112765588B (zh) * | 2021-01-21 | 2024-05-10 | 网易宝有限公司 | 一种身份识别方法、装置、电子设备及存储介质 |
CN113672897B (zh) * | 2021-07-22 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 数据通信方法、装置、电子设备及存储介质 |
CN113641656A (zh) * | 2021-08-19 | 2021-11-12 | 平安普惠企业管理有限公司 | 问卷答题管理方法、装置、计算机设备和存储介质 |
CN113691377B (zh) * | 2021-08-20 | 2023-04-11 | 珠海格力电器股份有限公司 | 设备列表的处理方法与装置 |
CN114401110B (zh) * | 2021-12-13 | 2024-05-28 | 杭州安恒信息技术股份有限公司 | 请求认证方法、***、计算机设备和可读存储介质 |
CN114338682A (zh) * | 2021-12-24 | 2022-04-12 | 北京字节跳动网络技术有限公司 | 流量身份标识传递方法、装置、电子设备及存储介质 |
CN114285662B (zh) * | 2021-12-28 | 2023-11-10 | 北京天融信网络安全技术有限公司 | 一种认证方法、装置、设备以及存储介质 |
CN114117376B (zh) * | 2022-01-28 | 2022-04-15 | 蘑菇物联技术(深圳)有限公司 | 身份认证的方法、分配动态密码的方法及相应的设备 |
CN114363088B (zh) * | 2022-02-18 | 2024-04-16 | 京东科技信息技术有限公司 | 用于请求数据的方法和装置 |
CN114785560B (zh) * | 2022-03-29 | 2024-02-06 | 中国工商银行股份有限公司 | 信息处理方法、装置、设备和介质 |
CN114980098A (zh) * | 2022-04-28 | 2022-08-30 | 中移互联网有限公司 | 一种基于用户识别模块sim卡的身份验证方法及装置 |
CN114584328B (zh) * | 2022-05-09 | 2022-08-02 | 武汉四通信息服务有限公司 | Api接口的访问方法、计算机设备及计算机存储介质 |
CN116916310A (zh) * | 2023-07-07 | 2023-10-20 | 中移互联网有限公司 | 验证码生成及校验方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009175923A (ja) * | 2008-01-23 | 2009-08-06 | Dainippon Printing Co Ltd | プラットフォーム完全性検証システムおよび方法 |
CN102624739A (zh) * | 2012-03-30 | 2012-08-01 | 奇智软件(北京)有限公司 | 一种适用于客户端平台的认证授权方法和*** |
CN106375348A (zh) * | 2016-11-17 | 2017-02-01 | 杭州华三通信技术有限公司 | 一种Portal认证方法和装置 |
CN106533687A (zh) * | 2015-09-14 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种身份认证方法和设备 |
CN107249004A (zh) * | 2017-07-24 | 2017-10-13 | 广州市玄武无线科技股份有限公司 | 一种身份认证方法、装置及客户端 |
-
2019
- 2019-05-31 CN CN201910475902.3A patent/CN112019493B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009175923A (ja) * | 2008-01-23 | 2009-08-06 | Dainippon Printing Co Ltd | プラットフォーム完全性検証システムおよび方法 |
CN102624739A (zh) * | 2012-03-30 | 2012-08-01 | 奇智软件(北京)有限公司 | 一种适用于客户端平台的认证授权方法和*** |
CN106533687A (zh) * | 2015-09-14 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种身份认证方法和设备 |
CN106375348A (zh) * | 2016-11-17 | 2017-02-01 | 杭州华三通信技术有限公司 | 一种Portal认证方法和装置 |
CN107249004A (zh) * | 2017-07-24 | 2017-10-13 | 广州市玄武无线科技股份有限公司 | 一种身份认证方法、装置及客户端 |
Also Published As
Publication number | Publication date |
---|---|
CN112019493A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112019493B (zh) | 身份认证方法、身份认证装置、计算机设备和介质 | |
CN108200050B (zh) | 单点登录服务器、方法及计算机可读存储介质 | |
CN107135073B (zh) | 接口调用方法和装置 | |
US11539690B2 (en) | Authentication system, authentication method, and application providing method | |
KR101744747B1 (ko) | 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법 | |
US9294479B1 (en) | Client-side authentication | |
US20160241536A1 (en) | System and methods for user authentication across multiple domains | |
CN111666564B (zh) | 应用程序安全启动方法、装置、计算机设备和存储介质 | |
US20200196143A1 (en) | Public key-based service authentication method and system | |
EP3381166B1 (en) | Systems and methods for cross-channel device binding | |
CN113630412B (zh) | 资源下载方法、资源下载装置、电子设备以及存储介质 | |
CN113055182B (zh) | 认证方法及***、终端、服务器、计算机***和介质 | |
CN114584381A (zh) | 基于网关的安全认证方法、装置、电子设备和存储介质 | |
CN111406257A (zh) | 用于认证的参数化的应用安装和启动的***和方法 | |
CN110399706B (zh) | 授权认证方法、装置和计算机*** | |
CN108965335B (zh) | 防止恶意访问登录接口的方法、电子设备及计算机介质 | |
CN115001714B (zh) | 资源访问方法及装置、电子设备、存储介质 | |
CN108809927B (zh) | 身份认证方法及装置 | |
CN114172923B (zh) | 数据传输方法、通信***及通信装置 | |
US20150082026A1 (en) | Systems and methods for locking an application to device without storing device information on server | |
CN112769565B (zh) | 密码加密算法的升级方法、装置、计算设备和介质 | |
CN112583602B (zh) | 信息码数据传输方法、装置、***、计算机设备和介质 | |
CN114861144A (zh) | 基于区块链的数据权限处理方法 | |
CN114640524A (zh) | 用于处理交易重放攻击的方法、装置、设备及介质 | |
CN114553570B (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 |