CN113806810A - 认证方法、认证系统、计算设备以及存储介质 - Google Patents

认证方法、认证系统、计算设备以及存储介质 Download PDF

Info

Publication number
CN113806810A
CN113806810A CN202110783927.7A CN202110783927A CN113806810A CN 113806810 A CN113806810 A CN 113806810A CN 202110783927 A CN202110783927 A CN 202110783927A CN 113806810 A CN113806810 A CN 113806810A
Authority
CN
China
Prior art keywords
server
signature
time information
timestamp
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.)
Granted
Application number
CN202110783927.7A
Other languages
English (en)
Other versions
CN113806810B (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.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software Technology 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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202110783927.7A priority Critical patent/CN113806810B/zh
Publication of CN113806810A publication Critical patent/CN113806810A/zh
Application granted granted Critical
Publication of CN113806810B publication Critical patent/CN113806810B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种认证方法、认证系统、计算设备以及存储介质,该认证方法在在客户端执行,包括:接收第一服务器发送的第一结果、第二结果、第一时间戳、第二时间戳,其中第一结果包括第一时间信息和第一签名,第二结果包括第二时间信息和第三签名;判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证第三签名的有效性;若第三签名有效,则指示第一服务器身份认证通过。

Description

认证方法、认证系统、计算设备以及存储介质
技术领域
本发明涉及互联网领域,具体涉及一种认证方法、认证系统、计算设备以及存储介质。
背景技术
随着计算机网络应用的日益深入,网络的安全访问控制愈来愈重要。身份认证作为网络应用系统的首要屏障,目的是验证用户的真实身份,防止非法用户进入系统。网络中的各种应用和计算机系统都需要通过身份认证来确认用户的合法性,然后确定这个用户的个人数据和特定权限。
现有的网络安全软件通常分为设置在用户机器上客户端和设置在安全服务提供商侧的服务器端,两者之间需要交换数据并由服务器端执行一部分运算以实现降低客户端负荷并同时提高系统性能的目的。然而,现有的安全软件缺乏对客户端和服务器端之间通信安全的重视,通常只是采用常规的加密方式对传输的数据进行加密,这种机制就为不法用户提供了干预安全软件正常工作的机会,不法用户可通过身份伪造、数据篡改或重复转发等手段冒充其中一终端对另一终端发起攻击,尤其是伪造客户端的查询请求对服务器端发起重复攻击,达到瘫痪安全防护软件功能的目的。
并且在现有的认证方案中,客户端、服务器保存两对公私钥,在通信过程中会各自进行随机串签名验证,以保障身份认证安全性,但由于每个请求都需要进行加签验签计算,对于服务器性能压力较大。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的认证方法、认证系统、计算设备以及存储介质。
根据本发明的一个方面,提供一种认证方法,在客户端执行,该方法包括:向第一服务器发送第一请求,以使第一服务器根据指示当前时间的第一时间戳从第二服务器获取相应的第一结果,第一结果至少包括第一签名和第一时间信息,其中,第一签名与第一时间信息预先关联,且第一时间信息基于第一时间戳来确定;接收第一服务器返回的第一结果和第一时间戳;生成第二请求,第二请求至少包括第二签名;向第一服务器发送第二请求,以使第一服务器通过第二服务器验证所述第二签名的有效性,并在验证有效时生成令牌,以指示客户端身份认证通过,以及,第一服务器基于指示当前时间的第二时间戳从第二服务器获取相应的第二结果,第二结果至少包括预先关联的第三签名及第二时间信息,且第二时间信息基于第二时间戳来确定;接收第一服务器返回的第二结果、第二时间戳和令牌;判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证第三签名的有效性;若第三签名有效,则指示第一服务器身份认证通过。
可选地,在根据本发明的认证方法中,还包括步骤:生成第三请求,第三请求至少包括令牌;向第一服务器发送第三请求,以使第一服务器验证所令牌的有效性,在验证有效时,指示客户端身份认证通过,生成与所述第三请求相应的业务数据,以及,第一服务器基于指示当前时间的第三时间戳从第二服务器获取相应的第三结果,第三结果至少包括预先关联的第四签名及第三时间信息,且第三时间信息基于第三时间戳来确定;接收第一服务器返回的第三结果、第三时间戳和业务数据;判断第二时间戳、第三时间戳及第三时间信息是否满足预设条件,若满足预设条件,则验证第四签名的有效性;若第四签名有效,则指示第一服务器身份认证通过,并基于业务数据执行相应的业务流程。
可选地,在根据本发明的认证方法中,生成第二请求,第二请求至少包括第二签名的步骤包括:生成随机值;基于预设的算法对随机值进行加签,生成第二签名;基于第二签名,生成第二请求。
可选地,在根据本发明的认证方法中,判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证第三签名的有效性的步骤包括:判断第二时间戳是否大于第一时间戳;若是,则判断第二时间戳与第二时间信息的差值是否大于预设阈值;若否,则基于预设的验证策略,对第三签名的有效性进行验证。
根据本发明的又一个方面,提供一种认证方法,在第二服务器执行,该方法包括:当接收到来自第一服务器的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息;从预先生成的签名集中,确定出与第一时间信息关联的第一签名;将第一签名及第一签名对应的第一时间信息发送至第一服务器;当接收到来自第一服务器的包含第二签名的验证请求时,基于预设的验证策略,对第二签名的有效性进行验证;当接收到来自第一服务器的包含第二时间戳的签名请求时,基于第二时间戳,确定其对应的第二时间信息;从预先生成的签名集中,确定出与第二时间信息关联的第三签名;将第三签名及第二时间信息发送至所述第一服务器。
可选地,在根据本发明的认证方法中,当接收到来自第一服务器的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息的步骤包括:获取签名集中各签名对应的各时间信息;将各时间信息中与第一时间戳差值最小的时间信息,作为第一时间信息。
可选地,在根据本发明的认证方法中,签名集的预先生成步骤包括:判断当前时刻的负载状态;若负载状态为低负载,则生成预设时间内的签名集并保存。
根据本发明的又一个方面,提供一种客户端,包括:第一请求发送模块,适于向第一服务器发送第一请求,以使第一服务器根据指示当前时间的第一时间戳从第二服务器获取相应的第一结果,第一结果至少包括第一签名和第一时间信息,其中,第一签名与第一时间信息预先关联,且第一时间信息基于第一时间戳来确定;第一接收模块,适于接收第一服务器返回的第一结果和第一时间戳;第二请求生成模块,适于生成第二请求,第二请求至少包括第二签名;第二请求发送模块,适于向第一服务器发送第二请求,以使第一服务器通过第二服务器验证第二签名的有效性,并在验证有效时生成令牌,以指示客户端身份认证通过,以及,所述第一服务器基于指示当前时间的第二时间戳从第二服务器获取相应的第二结果,第二结果至少包括预先关联的第三签名及第二时间信息,且第二时间信息基于第二时间戳来确定;第二接收模块,适于接收第一服务器返回的第二结果、第二时间戳和令牌;第一判断模块,判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件;第二验证模块,验证第三签名的有效性。
可选地,在根据本发明的客户端中,还包括:第三请求生成模块,适于生成第三请求,第三请求至少包括所述令牌;第三请求发送模块,适于向第一服务器发送第三请求,以使第一服务器验证令牌的有效性,在验证有效时,指示客户端身份认证通过,生成与第三请求相应的业务数据,以及,第一服务器基于指示当前时间的第三时间戳从第二服务器获取相应的第三结果,第三结果至少包括预先关联的第四签名及第三时间信息,且第三时间信息基于第三时间戳来确定;第三接收模块,适于接收第一服务器返回的第三结果、第三时间戳和业务数据;第二判断模块,适于判断第二时间戳、第三时间戳及第三时间信息是否满足预设条件;第二验证模块,适于验证第四签名的有效性;业务模块,适于基于业务数据执行相应的业务流程。
根据本发明的又一个方面,提供一种第二服务器,包括:第一时间确定模块,适于当接收到来自第一服务器的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息;第一签名确定模块,适于从预先生成的签名集中,确定出与第一时间信息关联的第一签名;第一发送模块,将第一签名及第一签名对应的第一时间戳发送至第一服务器;第三验证模块,适于当接收到来自第一服务器的包含第二签名的验证请求时,基于预设的验证策略,对第二签名的有效性进行验证;第二时间确定模块,适于当接收到来自第一服务器的包含第二时间戳的签名请求时,基于第二时间戳,确定其对应的第二时间信息;第二签名确定模块,适于从预先生成的签名集中,确定出与第二时间信息关联的第三签名;第二发送模块,适于将第三签名及第二签名对应的第二时间戳发送至第一服务器。
可选地,在根据本发明的第二服务器中,还包括:负载判断模块,适于判断当前时刻的负载状态;签名集生成模块,适于根据对当前时刻的负载状态,生成预设时间内的签名集并保存。
根据本发明的又一个方面,提供一种认证系统,包括:客户端,适于向第一服务器发送第一请求;第一服务器,适于在接收到第一请求时,根据第一时间戳向第二服务器发送第一签名请求;第二服务器,适于在接收到第一签名请求时,生成第一结果,并将第一结果发送至第一服务器,第一结果至少包括第一签名和第一时间信息,其中,第一签名与第一时间信息预先关联,且第一时间信息基于第一时间戳来确定;第一服务器,还适于将第一时间戳和接收到的第一结果发送至客户端;客户端,还适于接收第一结果和第一时间戳,生成第二请求,第二请求至少包括第二签名,并将第二请求发送至第一服务器;第一服务器,还适于将接收到的第二请求发送至第二服务器;第二服务器,还适于验证第二签名的有效性,并将验证结果返回至第一服务器;第一服务器,还适于判断验证结果是否为有效,若有效,生成令牌,以指示客户端身份认证通过,并根据第二时间戳向第二服务器发送第二签名请求;第二服务器,还适于在接收到第二签名请求时,生成第二结果,并将第二结果发送至第一服务器,第二结果至少包括第三签名和第二时间信息,其中,第三签名与第二时间信息预先关联,且第二时间信息基于第二时间戳来确定;第一服务器,还适于将第二时间戳和接收到的第二结果发送至客户端;客户端,还适于判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证第三签名的有效性,若有效,则指示第一服务器身份认证通过。
根据本发明的又一个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行上述方法的指令。
根据本发明的又一个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行上述的方法。
根据本发明的方案,在签名验证之前,对每个请求对应的时间戳进行验证,增加了认证的安全性,即使不法用户想模拟官方服务器行为,也无法使用历史认证数据重放达到服务器认证目的(由于每个请求响应服务器时间是递增的,如时间无递增表现则认证失败)。
根据本发明的方案,引入签名集,签名值依据系统时间戳进行生成,可依据当下系统时间推算未来n天内的全部签名值,并且在服务器低负载的情况下进行签名补充,客户端请求时可以从签名池中直接获取当下时间所对应的签名结果,此过程不存在计算,进一步降低服务器负载压力,本方案即降低了双向认证过程中对客户端、服务器的性能损耗,又保障了双向认证的安全性,通过更低的成本达到相同的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了现有技术中双向认证方案100的时序图;
图2示出了根据本发明一个实施例的认证系统200的示意图;
图3示出了根据本发明一个实施例的客户端、第一服务器和第二服务器认证交互方法300的时序图;
图4示出了根据本发明一个实施例的客户端对第一服务器进行身份认证方法400的流程图;
图5示出了根据本发明一个实施例的计算设备500的结构图;
图6示出了根据本发明一个实施例的认证方法600的流程图;
图7示出了根据本发明一个实施例的认证方法700的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出现有技术中双向认证方案100的时序图,如图1所示,首先,在客户端生成随机值,并将生成的随机值用客户端私钥配合加签算法(例如椭圆曲线算法(EllipticCurve Cryptography,简称ECC))进行加签后形成携带随机加签串的请求,并将该请求从客户端发送至服务器端。然后,服务器端在接收到该请求后依据配套公钥及随机值进行验签,若验签通过则客户端的身份认证通过,继续进行正常业务响应。之后,在服务器生成随机值,并将生成的随机值用服务器私钥配合加签算法进行加签后与响应数据一并形成携带随机加签串的响应请求,并将该请求从服务器发送至客户端。最后,在客户端依据配套的公钥及随机值对服务器发送的携带随机加签串的响应请求进行验签操作,若验签通过则说明服务器的身份认证通过,说明当前响应是由可信服务器返回,可进行正常业务交互。
但是,这种机制就为不法用户提供了干预安全软件正常工作的机会,不法用户可通过身份伪造、数据篡改或重复转发等手段冒充其中一终端对另一终端发起攻击,尤其是伪造客户端的查询请求对服务器端发起重复攻击,达到瘫痪安全防护软件功能的目的。并且,采用该认证方式,由于每个请求都需要进行加签验签计算,对于服务器性能压力较大。
因此,为解决上述现有技术中存在的问题,提出了本发明。图2示出了根据本发明一个实施例的认证系统200的示意图。如图2所示,该系统200可以包括客户端210、第一服务器220和第二服务器230。客户端210与第一服务器220之间以及第一服务器220和第二服务器230之间可以通过各种连接类别进行通信,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用客户端210与第一服务器220进行交互,以实现客户端210与第一服务器220之间的身份认证。
其中,客户端210可以为个人电脑(Personal Computerm,简称PC),云端设备、移动设备等,移动设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等具有各种操作系统的硬件设备。客户端210上可以安装有各种应用。例如各种客户端210应用、多方交互应用、服务器身份验证应用等。
第一服务器220和第二服务器230可以是提供各种应用服务的服务器,例如为第一服务器220为客户端210提供支撑的后台服务器。后台服务器可以对客户端210的身份进行认证。
在本实施例中,第一服务器220为业务服务器,第二服务器230为算法服务器。换言之,第一服务器220负责与客户端210进行正常的业务交互,第二服务器230负责签名的形成和对客户端210发送的签名验证信息进行验证。
需要说明的是,第一服务器220和第二服务器230可以是硬件,也可以是软件。当为硬件是时,可以实现成多个服务器组成的分布式服务器集群,也可实现成单个服务器。当服务器为软件时,可以实现成例如用来提供分布式服务的多个软件或软件模块,也可实现成单个软件或软件模块。在此不做具体限定。
应当理解,图2示出的客户端210、第一服务器220和第二服务器230的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端210、第一服务器220和第二服务器230。
在一些实施例中,图3示出根据本发明一个实施例的客户端、第一服务器和第二服务器认证交互方法300的时序图,结合图3对本实施例的认证系统200的认证过程进行如下说明。
本实施例的认证系统200的认证过程可划分为四个阶段,在第一阶段,客户端210对第一服务器220的健康情况进行验证;在第二阶段,第二服务器230对客户端210的身份进行认证;在第三阶段,客户端210对第一服务器220的身份进行认证;第四阶段,在业务请求场景中,客户端210发送业务请求,第一服务器220对客户端210的身份进行再次认证及客户端210对第一服务器220的身份进行再次认证,认证通过,第一服务器210才响应业务请求,返回相应业务数据。以下对四个阶段分别描述。
对于第一阶段:
在步骤1.1中,客户端210向第一服务器220发送第一请求。第一请求为健康检查请求,以确认服务器的健康状态。
需要说明的是,在第一阶段中,客户端210与第一服务器220或第二服务器230之间无业务请求和认证请求。
在步骤1.2中,第一服务器220在接收到第一请求后,根据第一时间戳向第二服务器230发送第一签名请求。第一时间戳为第一服务器220在生成第一签名请求时的时间,换言之,第一时间戳为第一服务器220的当前时间。
在步骤1.3中,第二服务器230在接收到第一签名请求时,生成第一结果,并将第一结果发送至第一服务器220,第一结果中包括第一签名和第一时间信息,其中,第一签名与第一时间信息预先关联,第一时间信息基于第一时间戳来确定。具体地,第二服务器230中存储有预先生成的签名集,在第二服务器230低负载时,依据当前时间补充未来一段时间(例如未来24小时)内的所有签名,例如,规定每隔1分钟,生成一个签名,将生成的每个签名与其对应的时间关联起来,比如,当前时间为00:00,则生成的第一个签名对应的时间为00:01,第二个签名对应的时间为00:02,依次类推生成预设时间内的所有签名待用。当接收到第一签名请求时,基于第一时间戳指示的时间在签名集中各签名对应的时间与第一时间戳进行就近匹配,例如,第一时间戳指示的时间为2021-04-21 15:28:31,那么最终获取的第一签名为第一时间信息2021-04-21 15:29:00对应的签名,以30S为分界线,若第一时间戳为15:28:00至15:28:30之间,则对应第一时间信息为2021-04-21 15:28关联的签名,若第一时间戳为15:28:30至15:29:00之间,则对应第一时间信息为2021-04-21 15:29关联的签名。
在步骤1.4中,第一服务器220将第一时间戳和接收到的第一结果发送至客户端210。
在步骤1.5中,客户端210接收第一结果和第一时间戳,并验证第一结果中的第一签名的有效性,若有效,则说明第一服务器220为健康服务器,可进行业务交互。客户端210可根据配套的公钥对第一签名进行验签操作。
对于第二阶段(此阶段是基于第一阶段客户端210验证第一服务器220为健康服务器的前提下进行,如果客户端210验证第一服务器220为不健康服务器,则放弃第二阶段和第三阶段的身份认证):
在步骤2.1中,客户端210生成第二请求,第二请求包括第二签名,并将该第二请求发送至第一服务器220。第二签名由客户端210本地生成随机值,并依据客户端210私钥配合加签算法(例如ECC算法)对随机值进行加签生成。此阶段的第二请求可为客户端210登录验证请求。
在步骤2.2中,第一服务器220将接收到的第二请求发送至第二服务器230。第一服务器220不对第二请求中的第二签名进行验签操作,这样可减小第一服务器220的性能负载。
在步骤2.3中,第二服务器230验证第二签名的有效性,并将验证结果返回至第一服务器220。第二服务器230可通过配套的公钥及随机值进行验签操作,具体的验证过程可参考前述现有技术中服务器对客户端210发送的签名的验签操作,在此不再赘述。
在步骤2.4中,第一服务器220判断验证结果是否为有效,若有效,生成令牌,以指示客户端210身份认证通过。至此完成第一服务器220对客户端210身份的认证。该处生成的令牌为JSON Web Token(JWT),JWT是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。由于它是数字签名的,故该信息可以被验证和信任。利用该令牌,在之后对客户端210进行身份验证时,只需验证令牌的有效性即可,减小了客户端210在每次进行认证请求时,都需要进行签名生成造成的客户端210的性能压力。
对于第三阶段:
在步骤3.1中,第一服务器220根据第二时间戳向第二服务器230发送第二签名请求。需要注意的是,此时,第一服务器220已通过第二服务器230对客户端210进行了身份认证,并且认证通过。
在步骤3.2中,第二服务器230在接收到所述第二签名请求时,生成第二结果,并将第二结果发送至第一服务器220,第二结果至少包括第三签名和第二时间信息,其中,第三签名与第二时间信息预先关联,且第二时间信息基于第二时间戳来确定。通过第二时间戳来确定第三签名的过程,可参考前文步骤1.3的相关描述,此处不再赘述。
在步骤3.3中,第一服务器220将第二时间戳和接收到的第二结果发送至客户端210。
在步骤3.4中,客户端210判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证第三签名的有效性,若有效,则指示第一服务器220身份认证通过。至此,完成客户端210对第一服务器220的身份认证。
具体地,参考图4,图4示出了根据本发明一个实施例的客户端210对第一服务器220进行身份认证方法400的流程图。
首先,判断第二时间戳是否大于第一时间戳,即判断请求发送的时间是否递增,时间特性只允许递增,不允许停滞或倒退。在当前方案中时间精度可精确到秒,根据实际业务场景可以对精度进行调整精确至纳秒、微秒,此调整不影响客户端210算法正确性,本实施例对此不做限定。
然后,判断第二时间戳与第二时间信息的差值是否大于预设阈值。第二时间信息关联的签名是由第二时间信息与第二时间戳遵循就近原则选出来的,此条件确保第二时间戳与第二时间信息之间符合就近原则。
最后,基于预设的验证策略,对第三签名的有效性进行验证。
以上三个条件均满足才可说明对第一服务器220的身份认证通过,在三个条件控制下即使不法用户想模拟官方服务器行为,也无法使用历史认证数据重放达到服务器认证目的(每个请求响应服务器时间递增是判断服务器认证是否成功的前置条件,若无递增表现则认证失败)。
对于第四阶段:
在步骤4.1中,客户端210生成第三请求,第三请求包括令牌,并将生成的第三请求发送至第一服务器220。根据本发明的一种实施方式,第三请求通常为业务请求。
在步骤4.2中,第一服务器220对令牌进行验证,在验证有效时,指示客户端210身份认证通过。
在步骤4.3中,第一服务器220根据第三时间戳向第二服务器230发送第三签名请求。
在步骤4.4中,第二服务器230在接收到所述第三签名请求时,生成第三结果,并将第三结果发送至第一服务器220,第三结果至少包括第四签名和第三时间信息,其中,第四签名与第三时间信息预先关联,且第三时间信息基于第三时间戳来确定。
在步骤4.5中,第一服务器220将第三时间戳和接收到的第三结果、以及客户端210业务请求相应数据包发送至客户端210。
在步骤4.6中,客户端210判断第二时间戳、第三时间戳及第三时间信息是否满足预设条件,若满足预设条件,则验证第四签名的有效性,若有效,则指示第一服务器220身份认证通过,说明当前请求由身份正确的第一服务器响应,并基于业务数据执行相应的业务流程。具体验证过程可参考步骤3.4,在此不再赘述。
在本实施例中,为避免服务器每次请求都需验证签名,使用信令(JSON WebToken,简称jwt)作为身份凭证,jwt有效期内仅需登录时验签一次,以此降低整个业务生命周期内服务器认证客户端210的负载压力。而客户端210认证服务器的验签操作,需要保障签名的随机性,以避免被他人恶意篡改。业务服务器在响应客户端210的每个业务请求时都进行随机签名,使得业务服务器性能压力较大,为降低业务服务器瞬时负载,此处引入算法服务器及签名集,签名值依据操作系统的时间戳进行生成,依据当下时间推算未来一段时间内(例如,n天内)的全部签名值,在算法服务器低负载的情况下进行签名补充,客户端210请求时可以从签名集中直接获取当下时间所对应的签名结果,此过程不存在计算,进一步降低业务服务器负载压力。
图5示出了根据本发明一个实施例的计算设备500的结构图。如图5所示,在基本的配置502中,计算设备500典型地包括系统存储器506和一个或者多个处理器504。存储器总线508可以用于在处理器504和系统存储器506之间的通信。
取决于期望的配置,处理器504可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器504可以包括诸如一级高速缓存510和二级高速缓存512之类的一个或者多个级别的高速缓存、处理器核心514和寄存器516。示例的处理器核心514可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器518可以与处理器504一起使用,或者在一些实现中,存储器控制器518可以是处理器504的一个内部部分。
取决于期望的配置,系统存储器506可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器504读取。系统存储器506可以包括操作系统520、一个或者多个应用522以及程序数据524。应用522实际上是多条程序指令,其用于指示处理器504执行相应的操作。在一些实施方式中,在一些实施方式中,应用522可以布置为在操作系统上由一个或多个处理器504利用程序数据524执行指令。操作系统520例如可以是Linux、Windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用522包括用于实现各种用户期望的功能的程序指令,应用522例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用522被安装到计算设备500中时,可以向操作系统520添加驱动模块。
在计算设备500启动运行时,处理器504会从存储器506中读取操作系统520的程序指令并执行。应用522运行在操作系统520之上,利用操作系统520以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用522时,应用522会加载至存储器506中,处理器504从存储器506中读取并执行应用522的程序指令。
计算设备500还包括储存设备532,储存设备532包括可移除储存器536和不可移除储存器538,可移除储存器536和不可移除储存器538均与储存接口总线534连接。
计算设备500还可以包括有助于从各种接口设备(例如,输出设备542、外设接口544和通信设备546)到基本配置502经由总线/接口控制器530的通信的接口总线540。示例的输出设备542包括图形处理单元548和音频处理单元550。它们可以被配置为有助于经由一个或者多个A/V端口552与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口544可以包括串行接口控制器554和并行接口控制器556,它们可以被配置为有助于经由一个或者多个I/O端口558和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备546可以包括网络控制器560,其可以被布置为便于经由一个或者多个通信端口564与一个或者多个其他计算设备562通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备500还包括与总线/接口控制器530相连的储存接口总线534。储存接口总线534与储存设备532相连,储存设备532适于进行数据存储。示例的储存设备532可以包括可移除储存器536(例如CD、DVD、U盘、可移动硬盘等)和不可移除储存器538(例如硬盘驱动器HDD等)。
在根据本发明的计算设备500中,应用522包括执行方法600或方法700的多条程序指令。
图6示出了根据本发明一个实施例的认证方法600的流程图。该认证方法600适于在如上所述的客户端210中执行。以下将结合上述认证系统200,对认证方法600进行描述。
如图6所示,方法600的目的是实现客户端210与服务器之间的双向认证,始于步骤S602,在步骤S602中,向第一服务器220发送第一请求,以使第一服务器220根据指示当前时间的第一时间戳从第二服务器230获取相应的第一结果,第一结果至少包括第一签名和第一时间信息,其中,第一签名与第一时间信息预先关联,且第一时间信息基于第一时间戳来确定。该第一请求为健康检查请求,目的是检查第一服务器220的健康状态。
在步骤S604中,接收第一服务器220返回的第一结果和第一时间戳。
在步骤S606中,生成第二请求,第二请求至少包括第二签名。
在步骤S608中,向第一服务器220发送第二请求,以使第一服务器220通过第二服务器230验证第二签名的有效性,并在验证有效时生成令牌,以指示客户端210身份认证通过,以及,第一服务器220基于指示当前时间的第二时间戳从第二服务器230获取相应的第二结果,第二结果至少包括预先关联的第三签名及第二时间信息,且第二时间信息基于第二时间戳来确定。
在步骤S610中,接收第一服务器220返回的第二结果、第二时间戳和令牌。
在步骤S612中,判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证第三签名的有效性,若第三签名有效,则指示第一服务器220身份认证通过。
需要说明的是,本实施例提供的认证方法600与前述提供的认证系统200的原理和工作流程相似,相关之处可参考对上述认证系统200的说明,在此,不再赘述。
图7示出了根据本发明一个实施例的认证方法700的流程图。该认证方法700适于在如上所述的第二服务器230中执行。以下将结合上述认证系统200,对认证方法700进行描述。
如图7所示,方法700的目的是实现客户端210与服务器之间的双向认证,始于步骤S702,在步骤S702中,当接收到来自第一服务器220的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息。
在步骤S704中,从预先生成的签名集中,确定出与所述第一时间信息关联的第一签名。
在步骤S706中,将第一签名及第一签名对应的第一时间信息发送至所述第一服务器220。
在步骤S708中,当接收到来自第一服务器220的包含第二签名的验证请求时,基于预设的验证策略,对第二签名的有效性进行验证。
在步骤S710中,当接收到来自第一服务器220的包含第二时间戳的签名请求时,基于第二时间戳,确定其对应的第二时间信息。
在步骤S712中,从预先生成的签名集中,确定出与第二时间信息关联的第三签名。
在步骤S714中,将第三签名及第二时间信息发送至第一服务器220。
需要说明的是,本实施例提供的认证方法700与前述提供的认证系统200的原理和工作流程相似,相关之处可参考对上述认证系统200的说明,在此,不再赘述。
相应地,在本申请的一个实施例中,提供了一种客户端210,包括:第一请求发送模块,适于向第一服务器220发送第一请求,以使第一服务器220根据指示当前时间的第一时间戳从第二服务器230获取相应的第一结果,第一结果至少包括第一签名和第一时间信息,其中,第一签名与第一时间信息预先关联,且第一时间信息基于第一时间戳来确定;第一接收模块,适于接收第一服务器220返回的第一结果和第一时间戳;第二请求生成模块,适于生成第二请求,第二请求至少包括第二签名;第二请求发送模块,适于向第一服务器220发送第二请求,以使第一服务器220通过第二服务器230验证第二签名的有效性,并在验证有效时生成令牌,以指示客户端210身份认证通过,以及,所述第一服务器220基于指示当前时间的第二时间戳从第二服务器230获取相应的第二结果,第二结果至少包括预先关联的第三签名及第二时间信息,且第二时间信息基于第二时间戳来确定;第二接收模块,适于接收第一服务器220返回的第二结果、第二时间戳和令牌;第一判断模块,判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件;第二验证模块,验证第三签名的有效性。
需要说明的是,本实施例提供的客户端210的原理与工作流程与前述提供的认证方法600相似,相关之处可参考对上述认证方法600的说明,在此,不再赘述。
在本申请的再一个实施例中,提供了一种第二服务器230,包括:第一时间确定模块,适于当接收到来自第一服务器220的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息;第一签名确定模块,适于从预先生成的签名集中,确定出与第一时间信息关联的第一签名;第一发送模块,将第一签名及第一签名对应的第一时间戳发送至第一服务器220;第三验证模块,适于当接收到来自第一服务器220的包含第二签名的验证请求时,基于预设的验证策略,对第二签名的有效性进行验证;第二时间确定模块,适于当接收到来自第一服务器220的包含第二时间戳的签名请求时,基于第二时间戳,确定其对应的第二时间信息;第二签名确定模块,适于从预先生成的签名集中,确定出与第二时间信息关联的第三签名;第二发送模块,适于将第三签名及第二签名对应的第二时间戳发送至第一服务器220。
需要说明的是,本实施例提供的第二服务器的原理与工作流程与前述提供的认证方法700相似,相关之处可参考对上述认证方法700的说明,在此,不再赘述。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
A2、如A1所述的认证方法600,还包括步骤:
生成第三请求,第三请求至少包括令牌;向第一服务器220发送第三请求,以使第一服务器220验证所令牌的有效性,在验证有效时,指示客户端210身份认证通过,生成与所述第三请求相应的业务数据,以及,第一服务器220基于指示当前时间的第三时间戳从第二服务器230获取相应的第三结果,第三结果至少包括预先关联的第四签名及第三时间信息,且第三时间信息基于第三时间戳来确定;接收第一服务器220返回的第三结果、第三时间戳和业务数据;判断第二时间戳、第三时间戳及第三时间信息是否满足预设条件,若满足预设条件,则验证第四签名的有效性;若第四签名有效,则指示第一服务器220身份认证通过,并基于业务数据执行相应的业务流程。
A3、如A1所述的认证方法600,所述生成第二请求,第二请求至少包括第二签名的步骤包括:生成随机值;基于预设的算法对随机值进行加签,生成第二签名;基于第二签名,生成第二请求。
A4、如A1所述的认证方法600,所述判断第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证第三签名的有效性的步骤包括:判断第二时间戳是否大于第一时间戳;若是,则判断第二时间戳与第二时间信息的差值是否大于预设阈值;若否,则基于预设的验证策略,对第三签名的有效性进行验证。
B2、如B1所述的认证方法700,其中,所述当接收到来自第一服务器220的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息的步骤包括:获取签名集中各签名对应的各时间信息;将各时间信息中与第一时间戳差值最小的时间信息,作为第一时间信息。
B3、如B1所述的认证方法700,其中,所述签名集的预先生成步骤包括:判断当前时刻的负载状态;若负载状态为低负载,则生成预设时间内的签名集并保存。
C2、如C1所述的客户端210,还包括:第三请求生成模块,适于生成第三请求,第三请求至少包括所述令牌;第三请求发送模块,适于向第一服务器发送第三请求,以使第一服务器验证令牌的有效性,在验证有效时,指示客户端身份认证通过,生成与第三请求相应的业务数据,以及,第一服务器基于指示当前时间的第三时间戳从第二服务器获取相应的第三结果,第三结果至少包括预先关联的第四签名及第三时间信息,且第三时间信息基于第三时间戳来确定;第三接收模块,适于接收第一服务器返回的第三结果、第三时间戳和业务数据;第二判断模块,适于判断第二时间戳、第三时间戳及第三时间信息是否满足预设条件;第二验证模块,适于验证第四签名的有效性;业务模块,适于基于业务数据执行相应的业务流程。
D2、如D1所述的第二服务器230,还包括:负载判断模块,适于判断当前时刻的负载状态;签名集生成模块,适于根据对当前时刻的负载状态,生成预设时间内的签名集并保存。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的较佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.一种认证方法,在客户端执行,所述方法包括:
向第一服务器发送第一请求,以使所述第一服务器根据指示当前时间的第一时间戳从第二服务器获取相应的第一结果,所述第一结果至少包括第一签名和第一时间信息,其中,所述第一签名与第一时间信息预先关联,且所述第一时间信息基于所述第一时间戳来确定;
接收所述第一服务器返回的第一结果和第一时间戳;
生成第二请求,所述第二请求至少包括第二签名;
向所述第一服务器发送第二请求,以使所述第一服务器通过第二服务器验证所述第二签名的有效性,并在验证有效时生成令牌,以指示所述客户端身份认证通过,以及,所述第一服务器基于指示当前时间的第二时间戳从所述第二服务器获取相应的第二结果,所述第二结果至少包括预先关联的第三签名及第二时间信息,且所述第二时间信息基于第二时间戳来确定;
接收所述第一服务器返回的第二结果、第二时间戳和令牌;
判断所述第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证所述第三签名的有效性;
若所述第三签名有效,则指示所述第一服务器身份认证通过。
2.如权要求1所述的方法,其中,所述还包括步骤:
生成第三请求,所述第三请求至少包括所述令牌;
向所述第一服务器发送第三请求,以使所述第一服务器验证所述令牌的有效性,在验证有效时,指示所述客户端身份认证通过,生成与所述第三请求相应的业务数据,以及,所述第一服务器基于指示当前时间的第三时间戳从所述第二服务器获取相应的第三结果,所述第三结果至少包括预先关联的第四签名及第三时间信息,且所述第三时间信息基于第三时间戳来确定;
接收所述第一服务器返回的第三结果、第三时间戳和业务数据;
判断所述第二时间戳、第三时间戳及第三时间信息是否满足预设条件,若满足预设条件,则验证所述第四签名的有效性;
若所述第四签名有效,则指示所述第一服务器身份认证通过,并基于所述业务数据执行相应的业务流程。
3.一种认证方法,在第二服务器执行,所述方法包括:
当接收到来自第一服务器的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息;
从预先生成的签名集中,确定出与所述第一时间信息关联的第一签名;
将所述第一签名及所述第一签名对应的第一时间信息发送至所述第一服务器;
当接收到来自第一服务器的包含第二签名的验证请求时,基于预设的验证策略,对所述第二签名的有效性进行验证;
当接收到来自第一服务器的包含第二时间戳的签名请求时,基于第二时间戳,确定其对应的第二时间信息;
从预先生成的签名集中,确定出与所述第二时间信息关联的第三签名;
将所述第三签名及所述第二时间信息发送至所述第一服务器。
4.如权利要求3所述的方法,其中,所述当接收到来自第一服务器的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息的步骤包括:
获取所述签名集中各签名对应的各时间信息;
将各所述时间信息中与所述第一时间戳差值最小的时间信息,作为所述第一时间信息。
5.如权利要求3所述的方法,其中,所述签名集的预先生成步骤包括:
判断当前时刻的负载状态;
若所述负载状态为低负载,则生成预设时间内的签名集并保存。
6.一种客户端,包括:
第一请求发送模块,适于向第一服务器发送第一请求,以使所述第一服务器根据指示当前时间的第一时间戳从第二服务器获取相应的第一结果,所述第一结果至少包括第一签名和第一时间信息,其中,所述第一签名与第一时间信息预先关联,且所述第一时间信息基于所述第一时间戳来确定;
第一接收模块,适于接收所述第一服务器返回的第一结果和第一时间戳;
第二请求生成模块,适于生成第二请求,所述第二请求至少包括第二签名;
第二请求发送模块,适于向所述第一服务器发送第二请求,以使所述第一服务器通过第二服务器验证所述第二签名的有效性,并在验证有效时生成令牌,以指示所述客户端身份认证通过,以及,所述第一服务器基于指示当前时间的第二时间戳从所述第二服务器获取相应的第二结果,所述第二结果至少包括预先关联的第三签名及第二时间信息,且所述第二时间信息基于第二时间戳来确定;
第二接收模块,适于接收所述第一服务器返回的第二结果、第二时间戳和令牌;
第一判断模块,判断所述第一时间戳、第二时间戳及第二时间信息是否满足预设条件;
第二验证模块,验证所述第三签名的有效性。
7.一种第二服务器,包括:
第一时间确定模块,适于当接收到来自第一服务器的包含第一时间戳的签名请求时,基于第一时间戳,确定其对应的第一时间信息;
第一签名确定模块,适于从预先生成的签名集中,确定出与所述第一时间信息关联的第一签名;
第一发送模块,将所述第一签名及所述第一签名对应的第一时间戳发送至所述第一服务器;
第三验证模块,适于当接收到来自第一服务器的包含第二签名的验证请求时,基于预设的验证策略,对所述第二签名的有效性进行验证;
第二时间确定模块,适于当接收到来自第一服务器的包含第二时间戳的签名请求时,基于第二时间戳,确定其对应的第二时间信息;
第二签名确定模块,适于从预先生成的签名集中,确定出与所述第二时间信息关联的第三签名;
第二发送模块,适于将所述第三签名及所述第二签名对应的第二时间戳发送至所述第一服务器。
8.一种认证系统,包括:
客户端,适于向第一服务器发送第一请求;
第一服务器,适于在接收到所述第一请求时,根据第一时间戳向第二服务器发送第一签名请求;
第二服务器,适于在接收到所述第一签名请求时,生成第一结果,并将所述第一结果发送至第一服务器,所述第一结果至少包括第一签名和第一时间信息,其中,所述第一签名与第一时间信息预先关联,且所述第一时间信息基于所述第一时间戳来确定;
第一服务器,还适于将第一时间戳和接收到的第一结果发送至客户端;
客户端,还适于接收所述第一结果和第一时间戳,生成第二请求,所述第二请求至少包括第二签名,并将所述第二请求发送至所述第一服务器;
第一服务器,还适于将接收到的第二请求发送至第二服务器;
第二服务器,还适于验证所述第二签名的有效性,并将验证结果返回至所述第一服务器;
第一服务器,还适于判断所述验证结果是否为有效,若有效,生成令牌,以指示所述客户端身份认证通过,并根据第二时间戳向第二服务器发送第二签名请求;
第二服务器,还适于在接收到所述第二签名请求时,生成第二结果,并将所述第二结果发送至第一服务器,所述第二结果至少包括第三签名和第二时间信息,其中,所述第三签名与第二时间信息预先关联,且所述第二时间信息基于所述第二时间戳来确定;
第一服务器,还适于将第二时间戳和接收到的第二结果发送至客户端;
客户端,还适于判断所述第一时间戳、第二时间戳及第二时间信息是否满足预设条件,若满足预设条件,则验证所述第三签名的有效性,若有效,则指示所述第一服务器身份认证通过。
9.一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-5中任一项所述方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-5中任一项所述的方法。
CN202110783927.7A 2021-07-12 2021-07-12 认证方法、认证系统、计算设备以及存储介质 Active CN113806810B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110783927.7A CN113806810B (zh) 2021-07-12 2021-07-12 认证方法、认证系统、计算设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110783927.7A CN113806810B (zh) 2021-07-12 2021-07-12 认证方法、认证系统、计算设备以及存储介质

Publications (2)

Publication Number Publication Date
CN113806810A true CN113806810A (zh) 2021-12-17
CN113806810B CN113806810B (zh) 2024-05-14

Family

ID=78893105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110783927.7A Active CN113806810B (zh) 2021-07-12 2021-07-12 认证方法、认证系统、计算设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113806810B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030065774A (ko) * 2002-01-31 2003-08-09 한국전자통신연구원 네트워크에서의 생체정보 재시도 공격(replayattack)방지장치 및 방법
CN102223237A (zh) * 2011-07-15 2011-10-19 飞天诚信科技股份有限公司 一种数据签名认证方法及系统
CN104753881A (zh) * 2013-12-30 2015-07-01 上海格尔软件股份有限公司 一种基于软件数字证书和时间戳的WebService安全认证访问控制方法
CN105099707A (zh) * 2015-08-27 2015-11-25 赛肯(北京)科技有限公司 一种离线认证方法、服务器及系统
CN108322469A (zh) * 2018-02-05 2018-07-24 北京百度网讯科技有限公司 信息处理系统、方法和装置
CN109587126A (zh) * 2018-11-26 2019-04-05 平安科技(深圳)有限公司 用户鉴权方法和系统
CN110690973A (zh) * 2019-10-22 2020-01-14 泰康保险集团股份有限公司 身份验证方法、装置、介质及电子设备
WO2020048241A1 (zh) * 2018-09-04 2020-03-12 阿里巴巴集团控股有限公司 区块链跨链的认证方法、系统、服务器及可读存储介质
CN111212095A (zh) * 2020-04-20 2020-05-29 国网电子商务有限公司 一种身份信息的认证方法、服务器、客户端及系统
WO2020123959A1 (en) * 2018-12-14 2020-06-18 Iot And M2M Technologies, Llc Secure ids certificate verification for a primary platform
CN111506632A (zh) * 2020-04-23 2020-08-07 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN112711759A (zh) * 2020-12-28 2021-04-27 山东鲁能软件技术有限公司 一种防重放攻击漏洞安全防护的方法及系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030065774A (ko) * 2002-01-31 2003-08-09 한국전자통신연구원 네트워크에서의 생체정보 재시도 공격(replayattack)방지장치 및 방법
CN102223237A (zh) * 2011-07-15 2011-10-19 飞天诚信科技股份有限公司 一种数据签名认证方法及系统
CN104753881A (zh) * 2013-12-30 2015-07-01 上海格尔软件股份有限公司 一种基于软件数字证书和时间戳的WebService安全认证访问控制方法
CN105099707A (zh) * 2015-08-27 2015-11-25 赛肯(北京)科技有限公司 一种离线认证方法、服务器及系统
CN108322469A (zh) * 2018-02-05 2018-07-24 北京百度网讯科技有限公司 信息处理系统、方法和装置
WO2020048241A1 (zh) * 2018-09-04 2020-03-12 阿里巴巴集团控股有限公司 区块链跨链的认证方法、系统、服务器及可读存储介质
CN109587126A (zh) * 2018-11-26 2019-04-05 平安科技(深圳)有限公司 用户鉴权方法和系统
WO2020123959A1 (en) * 2018-12-14 2020-06-18 Iot And M2M Technologies, Llc Secure ids certificate verification for a primary platform
CN110690973A (zh) * 2019-10-22 2020-01-14 泰康保险集团股份有限公司 身份验证方法、装置、介质及电子设备
CN111212095A (zh) * 2020-04-20 2020-05-29 国网电子商务有限公司 一种身份信息的认证方法、服务器、客户端及系统
CN111506632A (zh) * 2020-04-23 2020-08-07 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN112711759A (zh) * 2020-12-28 2021-04-27 山东鲁能软件技术有限公司 一种防重放攻击漏洞安全防护的方法及系统

Also Published As

Publication number Publication date
CN113806810B (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
JP6992105B2 (ja) 認証能力を決定するためのクエリシステム及び方法
US9992189B2 (en) Generation and validation of derived credentials
US10574648B2 (en) Methods and systems for user authentication
CN106664208B (zh) 使用安全传输协议建立信任的系统和方法
US8091120B2 (en) Adaptive authentication methods, systems, devices, and computer program products
CN108369615B (zh) 动态更新captcha质询
EP3378214B1 (en) Controlling access to online resources using device validations
US8689003B2 (en) System and method for secure password-based authentication
JP6530049B2 (ja) ホスト型認証サービスを実装するためのシステム及び方法
US20200014538A1 (en) Methods and systems to facilitate authentication of a user
CN110177124B (zh) 基于区块链的身份认证方法及相关设备
KR20150036104A (ko) 로그인 검증의 방법, 클라이언트, 서버 및 시스템
CN112989309B (zh) 基于多方授权的登录方法、认证方法、系统及计算设备
WO2014048749A1 (en) Inter-domain single sign-on
WO2015010568A1 (en) Method,apparatus and server for identity authentication
US20210241270A1 (en) System and method of blockchain transaction verification
US20230042508A1 (en) Securely communicating service status in a distributed network environment
US11997210B2 (en) Protection of online applications and webpages using a blockchain
KR20210142180A (ko) 효율적인 챌린지-응답 인증을 위한 시스템 및 방법
CN114301617A (zh) 多云应用网关的身份认证方法、装置、计算机设备及介质
WO2019178440A1 (en) System and method for securing private keys behind a biometric authentication gateway
JP2008539482A (ja) クライアントをネットワークに接続する方法、システム、及びプログラム製品
JP5186648B2 (ja) 安全なオンライン取引を容易にするシステム及び方法
CN105379176A (zh) 用于验证scep证书注册请求的系统和方法
CN112738005A (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