CN111708762A - 一种权限认证方法、装置及服务端设备 - Google Patents

一种权限认证方法、装置及服务端设备 Download PDF

Info

Publication number
CN111708762A
CN111708762A CN202010562211.XA CN202010562211A CN111708762A CN 111708762 A CN111708762 A CN 111708762A CN 202010562211 A CN202010562211 A CN 202010562211A CN 111708762 A CN111708762 A CN 111708762A
Authority
CN
China
Prior art keywords
random number
preset
seed
number generator
authority authentication
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
CN202010562211.XA
Other languages
English (en)
Other versions
CN111708762B (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010562211.XA priority Critical patent/CN111708762B/zh
Publication of CN111708762A publication Critical patent/CN111708762A/zh
Application granted granted Critical
Publication of CN111708762B publication Critical patent/CN111708762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开实施例提供了一种权限认证方法、装置及服务端设备,涉及云计算领域。其中,所述方法包括:确定预设用户态随机数生成器的生成数量是否达到预设更替阈值,所述生成数量为所述预设用户态随机数生成器使用当前的种子生成的用于权限认证的随机数的数量,所述预设用户态随机数生成器运行于用户态;如果所述生成数量达到预设更替阈值,获取新的种子;控制所述预设用户态随机数生成器使用所述新的种子生成随机数;利用所生成的随机数对所述MongoDB系统中的用户端设备进行权限认证。可以实现在不影响权限认证的准确性的前提下,提高MongoDB系统面对大量短连接的情况下的处理能力。

Description

一种权限认证方法、装置及服务端设备
技术领域
本公开涉及通信技术领域,特别是涉及一种权限认证方法、装置及服务端设备。
背景技术
MongoDB(一种基于分布式文件存储的数据库)作为一种常用的非关系型数据库(Not Only Structuured Queery Language,NOSQL),被广泛的应用于大数据处理中。在MongoDB系统中,用户端设备可以通过与服务端设备建立通信连接以对存储于服务端设备的数据进行读写操作。
出于服务端设备安全性的考虑,服务端设备可以对用户端设备进行权限认证,如果用户端设备通过权限认证,则允许建立连接,如果用户端设备没有通过权限认证,则拒绝建立连接。认证过程中,服务端设备可以生成一个或多个随机数以增加认证过程的随机性,降低非法设备冒充合法的用户端设备的可能性。
相关技术中,为提高所生成的随机数的随机性,可以使用运行于内核态的随机数生成器(下文称内核态随机数生成器)生成随机数,例如/dev/urandom(Linux操作系统中提供的一种内核态随机数生成器)。内核态随机数生成器可以使用系统的熵池生成随机数,由于系统的熵池受到诸多参量的影响,如内存使用、文件使用量、进程数量、输入设备的输入量等,因此随机性较好,使用熵池生成的随机数也具有较好的随机性。
但是,使用内核态随机数生成器生成随机数,需要将用于权限认证的进程切换至内核态,以获取相应的权限,在生成随机数后,再将该进程切换至用户态,以继续完成权限认证。而在用户态和内核态之间切换时,需要消耗一定的系统资源。导致权限认证消耗的系统资源过高。而服务端设备的系统资源有限,导致MongoDB系统中,服务端设备并行进行权限认证的能力较差。
而在MongoDB系统中往往存在大量用户端设备,可能在短时间内有数量较多的用户端设备向服务端设备申请建立短连接,因此服务端设备需要进行大量的权限认证。如前述分析,由于服务端设备并行进行权限认证的能力较差,因此需要花费较多时间完成这些权限认证,即MongoDB系统中,服务端设备在面对大量短连接的情况下,处理能力较差。
发明内容
本公开实施例的目的在于提供一种权限认证方法、装置及服务端设备,以实现在不影响权限认证的准确性的前提下,提高MongoDB系统面对大量短连接的情况下的处理能力。具体技术方案如下:
在本公开实施例的第一方面,提供了一种权限认证方法,应用于服务端设备,所述方法包括:
确定预设用户态随机数生成器的生成数量是否达到预设更替阈值,所述生成数量为所述预设用户态随机数生成器使用当前的种子生成的用于权限认证的随机数的数量,所述预设用户态随机数生成器运行于用户态;
如果所述生成数量达到预设更替阈值,获取新的种子;
控制所述预设用户态随机数生成器使用所述新的种子生成随机数;
利用所生成的随机数对用户端设备进行权限认证。
在一种可能的实施例中,所述获取新的种子,包括:
控制所述预设用户态随机数生成器生成新的种子。
在一种可能的实施例中,所述获取新的种子,包括:
获取所述服务端设备的预设参数的当前值,所述预设参数的值随时间变化而变化;
利用预设映射对所述当前值进行映射,得到映射值,作为新的种子。
在一种可能的实施例中,所述获取新的种子,包括:
控制部署在所述服务端设备的预设内核态随机数生成器生成新的种子。
在一种可能的实施例中,所述方法还包括:
如果所述生成数量未达到预设更替阈值,控制所述预设用户态随机数生成器使用所述当前的种子生成随机数。
在本公开实施例的第二方面,提供了一种权限认证装置,应用于服务端设备,所述装置包括:
随机性检测模块,用于确定预设用户态随机数生成器的生成数量是否达到预设更替阈值,所述生成数量为所述预设用户态随机数生成器使用当前的种子生成的用于权限认证的随机数的数量,所述预设用户态随机数生成器运行于用户态;
种子获取模块,用于如果所述生成数量达到预设更替阈值,获取新的种子;
随机数生成模块,用于控制所述预设用户态随机数生成器使用所述新的种子生成随机数;
权限认证模块,用于利用所生成的随机数对用户端设备进行权限认证。
在一种可能的实施例中,所述种子获取模块,具体用于控制所述预设用户态随机数生成器生成新的种子。
在一种可能的实施例中,所述种子获取模块,具体用于获取所述服务端设备的预设参数的当前值,所述预设参数的值随时间变化而变化;
利用预设映射对所述当前值进行映射,得到映射值,作为新的种子。
在一种可能的实施例中,所述种子获取模块,具体用于控制部署在所述服务端设备的预设内核态随机数生成器生成新的种子。
在一种可能的实施例中,所述随机数生成模块,还用于如果所述生成数量未达到预设更替阈值,控制所述预设用户态随机数生成器使用所述当前的种子生成随机数。
在本公开实施例的第三方面,提供了一种服务端设备设备,包括:
计算机可读存储介质,用于存放计算机程序;
处理器,用于执行所述计算机可读存储介质上所存放的程序时,实现上述第一方面任一所述的方法步骤。
在本公开实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
本公开实施例提供的权限认证方法、装置及服务端设备,使用运行于用户态的预设用户态随机数生成器替代内核态随机数生成器,生成权限认证过程中所使用的随机数,有效降低权限认证所消耗的系统资源,提高了服务端设备并行进行权限认证的能力。并通过定期更替预设用户态随机数生成器的种子的方式,降低预设用户态随机数生成器所生成的随机数的可预测性,有效提高了权限认证过程的随机性,避免了权限认证过程的准确性因使用预设用户态随机数生成器而下降。即实现了在不影响权限认证的准确性的前提下,提高了MongoDB系统面对大量短连接的情况下的处理能力。当然,实施本公开的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的SCRAM-SHA1认证机制的一种时序示意图;
图2为本公开实施例提供的权限认证方法的一种流程示意图;
图3为本公开实施例提供的权限认证方法的另一种流程示意图;
图4为本公开实施例提供的权限认证装置的一种结构示意图;
图5为本公开实施例提供的服务端设备的一种结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
为更清楚的对本公开实施例提供的权限认证方法进行说明,下面将对本公开实施例提供的权限认证方法的一种可能应用场景进行示例性说明。该示例仅是一种可能的应用场景,在其他可能的实施例中,本公开实施例提供的权限认证方法也可以应用于其他可能的应用场景,该示例对此不做限制。
MongoDB系统中,用户端设备可以通过与服务端设备建立通信连接以对存储于服务端设备的数据进行管理,服务端设备可以对用户端设备进行权限认证。如果该权限认证过程不具有随机性,则非法设备可以较为简单的冒充合法的用户端设备通过该权限认证,即权限认证的准确性较低。因此,权限认证过程中可以使用随机数加强随机性,以降低非法设备可以冒充合法的用户端设备通过该权限认证的可能性。
示例性的,MongoDB系统中可以使用SCRAM(Salted Challenge ResponseAuthentication,盐挑战响应认证机制)-SHA1(一种哈希函数)的方式进行权限认证。可以参见图1,图1所示为本公开实施例提供的SCRAM-SHA1认证机制的一种时序示意图,包括:
S101,服务端设备对用户端密码进行加盐哈希,得到服务端密码。
为描述方便,假设用户端密码记为password,所使用的哈希函数(该示例中所使用的哈希函数为SHA1)记为H(),盐值记为salt,哈希迭代次数记为iteration-count,服务端密码记为password[s],则该过程可以表示为下式:
password[s]=H(password,salt,iteration-count)
S102,服务端设备使用服务端面和两个预设字符串计算HMAC(Hash-basedMessage Authentication Code,哈希消息认证码)摘要,得到服务端密钥和用户端密钥
将两个预设字符串分别记为Client key和Server Key,则该过程可以表示为下式:
Key[c]=HMAC(password[s],“Client key”)
Key[s]=HMAC(password[s],“Server key”)
其中,Key[c]为用户端密钥,Key[s]为服务端密钥,HMAC()为计算HMAC摘要所使用的函数。
S103,服务端保存用户端用户名、用户端密钥的哈希值、服务端密钥、盐值、哈希迭代次数。
即用户端保存username、H(Key[c])、Key[s]、salt、iteration-count,其中username为用户端用户名。
S104,用户端设备发送用户端第一消息(client first message)至服务端设备。
用户端第一消息中包括username和用户端生成的随机数,为描述方便,将用户端生成的随机数记为client-nonce。
S105,服务端设备发送服务端第一消息(server first message)至用户端设备。
服务端第一消息中包括salt、iteration-count、client-nonce|server-nonce,其中server-nonce为服务端设备生成的随机数。
S106,用户端设备根据用户端密码,按照接收到的盐值和哈希迭代次数,计算出服务端密码。
由于服务端第一消息中包括salt、iteration-count,因此用户端设备可以按照下式计算得到服务端密码password[s]:
password[s]=H(password,salt,iteration-count)
S107,用户端设备利用服务端密码计算得到用户端密钥。
由于Key[c]=HMAC(password[s],“Client key”),其中Client key为预设字符串,因此在用户端设备已经获取到password[s]的情况下,可以计算得到用户端密钥Key[c]。
S108,用户端设备利用用户端密钥和认证变量(Auth)计算得到用户端证明。
可以是按照下式计算得到用户端证明的:
Proof[c]=key[c]xor HMAC(H(key[c],Auth)
其中,Proof[c]为用户端证明,xor为亦或运算符。
S109,用户端设备发送用户端最终消息(client final meesage)至服务端设备。
用户端最终消息中包括client-nonce|server-nonce和用户端证明,|为位运算符。
S110,服务端设备利用本地保存的用户端密钥的哈希值、认证变量对用户端证明进行逆运算,解析得到用户端密钥的哈希值,并对比解析得到的用户端密钥的哈希值,与本地保存的用户端密钥的哈希值是否一致,根据对比结果确定用户端设备是否通过权限认证。
服务端设备可以是利用本地保存的用户端密钥的哈希值和认证变量计算HMAC摘要,将计算结果与用户端证明进行异或运算,解析得到用户端证明中的用户端密钥,对该用户端密钥进行哈希运算,解析得到用户端密钥的哈希值。
如果两个哈希值一致,则可以确定用户端设备本地的用户端密码量是正确的,因此该用户端设备为合法的用户端设备,可以通过验证,如果两个哈希值不一致,则可以确定用户端设备本地的用户端密码不正确,该用户端设备可能是非法设备冒充的,因此没有通过验证。
在上述权限认证过程中,服务端设备需要生成随机数server-nonce。相关技术总,可以是通过内核态随机数生成器/dev/urandom生成server-nonce的。但是调用/dev/urandom生成随机数时,需要将进程从用户态切换至内核态,在生成随机数后,再将进程由内核态切换至用户态,以继续完成后续的权限认证流程。而用户态和内核态进程之间来回切换需要消耗一定的系统资源,导致相关技术中MongoDB系统的权限认证消耗的系统资源过高。由于权限认证消耗的系统资源过高,导致同一时间内能够并行进行的权限认证数量有限,如果短时间内大量用户端设备申请权限认证,则需要消耗较多时间完成权限认证,因此Mongo系统难以应对高并发的状况。
有鉴于此,本公开实施例提供了一种权限认证方法,该方法可以应用于MongoDB系统中的服务端设备,可以参见图2,图2所示为本公开实施例提供的权限认证方法的一种流程示意图,可以包括:
S201,确定预设用户态随机数生成器的生成数量是否达到预设更替阈值。
S202,如果所述生成数量达到预设更替阈值,获取新的种子。
S203,控制预设用户态随机数生成器使用新的种子生成随机数。
S204,利用生成的随机数进行权限认证。
选用该实施例,可以使用运行于用户态的预设用户态随机数生成器替代内核态随机数生成器,生成权限认证过程中所使用的随机数,有效降低权限认证所消耗的系统资源,提高了服务端设备并行进行权限认证的能力。并通过定期更替预设用户态随机数生成器的种子的方式,降低预设用户态随机数生成器所生成的随机数的可预测性,有效提高了权限认证过程的随机性,避免了权限认证过程的准确性因使用预设用户态随机数生成器而下降。即实现了在不影响权限认证的准确性的前提下,提高了MongoDB系统面对大量短连接的情况下的处理能力。
其中,S201中的预设用户态随机数生成器运行于用户态,即调用该预设用户态随机数生成器生成随机数,无需将进程由用户态切换至内核态,由于进程在生成随机数过程中维持在用户态,因此生成随机数后,也无需从内核态切换至用户态。
生成数量为该预设用户态随机数生成器使用当前的种子生成的用于权限认证的随机数的数量,生成数量可以是指预设用户态随机数生成器使用当前的种子生成的所有用于权限认证的随机数的数量,也可以是指预设用户态随机数生成器使用当前的种子生成的所有用于权限认证的随机数中特定的部分随机数的数量。例如,可以是通过记录使用当前的种子生成的用于权限认证的随机数,并根据记录的随机数统计得到生成数量。在统计生成数量时,可以统计所记录的每个随机数,也可以只统计所记录的随机数中的指定随机数。
可以理解的是,在本次权限认证以前,可能已经进行过多次权限认证,例如MongoDB系统在面对大量短连接的情况下,在对其中一个短连接进行权限认证时,可能已经对其他多个短连接进行过权限认证(这些权限认证可以已经完成,也可以正在进行)。这多次权限认证过程中所使用的随机数可以是由该随机数生成器生成的。由于预设用户态随机数生成器运行于用户态,因此不具有使用系统熵池的权限,所以预设用户态随机数生成器所生成的随机数的随机性相比于内核态随机数生成器生成的随机数较差。
示例性的,以预设用户态随机数生成器为C++(一种编程语言)提供的std::default_random_engine为例,当所使用的种子固定时,std::default_random_engine生成的随机数属于一个固定的随机数列。因此,在已知该随机数列的情况下,std::default_random_engine生成的随机数具有一定的可预测性。
可以理解的是,本文中所提到的随机数可以是指具有一定随机性的值,该值的表示形式可以根据应用场景的不同而不同,本实施例对此不做限制。示例性的,该值可以是以字符(如char、int、long)的形式表示的,也可以是字符串(string)的形式表示的。
并且更替阈值也可以根据实际需求进行设置,可以理解是,更替阈值设置的越大,则预设用户态随机数生成器的种子更替的越频繁,因此生成的随机数的随机性越强。更替阈值设置的越小,获取新的种子的频率越低,因此权限认证过程所消耗的系统资源越少。
S202中,如前述分析,由于预设用户态随机数生成器所生成的随机数的随机性较差,如果预设用户态随机数生成器的生成数量较高,则预设用户态随机数生成器下一个生成的随机数为已经生成过的随机数,或者为与已经生成过的随机数相关联的值的可能性越高,即预设用户态随机数生成器生成的随机数的可预测性越高。
因此,如果生成数量大于预设更替阈值,则可以认为此时预设用户态随机数生成器生成的随机数的随机性较低,可能影响到权限认证的准确性。关于新的种子的获取方式将在后续实施例中进行描述,在此不再赘述。
S203中,种子为预设用户态随机数生成器在生成随机数过程中所使用的变量,因此在使用新的种子后,预设用户态随机数生成器生成的随机数,为已经生成过的随机数,或者为与已经生成过的随机数相关联的值的可能性下降。
示例性的,以预设用户态随机数生成器为C++(一种编程语言)提供的std::default_random_engine为例,当所使用新的种子后,std::default_random_engine生成的随机数将属于一个新的随机数列,因此使用新的种子生成的随机数为已经生成过的随机数,或者为与已经生成过的随机数相关联的值的可能性下降。
在S204中,关于如何使用随机数进行权限认证可以参见前述关于SCRAM-SHA1认证机制的相关描述,在此不再赘述。可以理解的是,除SCRAM-SHA1认证机制以外的其他认证机制中也可以使用随机数,因此本公开实施例提供的权限认证方法也可以是基于SCRAM-SHA1认证机制以外的其他认证机制实现的,至于其他认证机制是如何通过随机数完成权限认证的,并非本公开实施例的主要改进点,因此在此不再赘述。
下面将对新的种子的获取方法进行说明,在不同的实施例中,可以采用不同的方式获取新的种子,并且可以更换获取新的种子的方法。以下仅是获取新的种子的可能的方式,在其他可能的实施例中,也可以采取其他的方式获取新的种子,本实施例对此不做限制。
方式一:控制预设用户态随机数生成器生成新的种子。
可以是控制预设用户态随机数生成器使用当前的种子生成新的种子,也可以是控制预设用户态随机数生成器使用预设种子生成新的种子,该预设种子为当前种子以外的其他种子。预设种子也可以是预先规定的,也可以是按照一定规则生成的,例如按照预设规则从随机数表中选取的。
方式二,获取预设服务端设备的预设参数的当前值,利用预设映射对当前值进行映射,得到映射值,作为新的种子。
其中,预设参数的值随时间变化而变化,例如预设参数可以是系统时间,预设映射的形式可以根据实际需求的不同而不同,本实施例对此不做限制。可以理解的是,由于预设参数的值与时间相关,而映射值与预设参数的当前值相关,因此映射值与时间相关。即该方式所生成的种子与时间相关,因此不同时间生成的种子理论上不同(如果预设映射呈一定的周期性,则不同时间生成的种子也可能相同)。
方式三,控制部署在服务端设备的预设内核态随机数生成器生成新的种子。
在该示例中,如果生成数量表示预设用户态随机数生成器使用当前的种子生成的所有用于权限认证的随机数的数量,则预设更替阈值大于等于2,即预设用户态随机数生成器在生成至少2个用于权限认证的随机数后,才更换新的种子。如果生成数量表示预设用户态随机数生成器使用当前的种子生成的所有用于权限认证的随机数中特定的部分随机数的数量,则预设更替阈值也可以等于1。
可以理解的是,在控制预设内核态随机数生成器生成新的种子时,需要将进程切换至内核态以获取相应的权限。但是,选用该实施例,相比于直接通过内核态随机数生成器生成用于权限认证的随机数,可以降低调用内核态随机数生成器的频次。假设更替阈值为N,则该示例中,在至少生成N个用于权限认证的随机数时,才需要调用一次内核态随机数生成器,而直接通过内核态随机数生成器生成用于权限认证的随机数,则每生成一个随机数,就需要调用一次内核态随机数生成器。可见,虽然该示例中使用了内核态随机数生成器,但是仍然能够降低权限认证所消耗的系统资源。
除上述三种方式外,也可以采用其他方式获取新的种子,例如可以预先构建种子列表,获取在该种子列表中位于当前的种子的下一位的种子,作为新的种子。也可以是在该种子列表中,除当前的种子以外的其他种子中随机选取一个种子作为新的种子。该种子列表中的种子生成方式可以是上述三种方式中的一种或多种方式生成的,也可以是通过其他方式生成的,本实施例对此不做限制。
参见图3,图3所示为本公开实施例提供的权限认证方法的另一种流程示意图,可以包括:
S301,确定预设用户态随机数生成器的生成数量是否达到预设更替阈值,如果达到预设阈值,则执行S302,如果未达到预设阈值,则执行S304。
该步骤与前述S201相同,可以参见前述S201的相关描述,在此不再赘述。
S302,获取新的种子。
关于新的种子的获取方式,可以参见前述相关描述,在此不再赘述。
S303,控制预设用户态随机数生成器使用新的种子生成随机数。
该步骤与S203相同,可以参见前述关于S203的相关描述,在此不再赘述。
S304,控制预设用户态随机数生成器使用当前的种子生成随机数。
如前述分析,如果生成数量未达到更替阈值,则可以认为预设用户态随机数生成器下一个生成的随机数为已经生成过的随机数,或者为与已经生成过的随机数相关联的值的可能性较低,即预设用户态随机数生成器继续使用当前的种子生成随机数时,生成的随机数的随机性较强,不会影响到权限认证的准确性,此时出于降低系统资源消耗的考虑,可以控制预设用户态随机数生成器继续使用当前的种子生成随机数。
S305,利用生成的随机数进行权限认证。
参见图4,图4所示为本公开实施例提供的权限认证装置的一种结构示意图,该权限认证装置可以应用于服务端设备,装置可以包括:
随机性检测模块401,用于确定预设用户态随机数生成器的生成数量是否达到预设更替阈值,所述生成数量为所述预设用户态随机数生成器使用当前的种子生成的用于权限认证的随机数的数量,所述预设用户态随机数生成器运行于用户态;
种子获取模块402,用于如果所述生成数量达到预设更替阈值,获取新的种子;
随机数生成模块403,用于控制所述预设用户态随机数生成器使用所述新的种子生成随机数;
权限认证模块404,用于利用所生成的随机数对用户端设备进行权限认证。
在一种可能的实施例中,所述种子获取模块402,具体用于控制所述预设用户态随机数生成器生成新的种子。
在一种可能的实施例中,所述种子获取模块402,具体用于获取所述服务端设备的预设参数的当前值,所述预设参数的值随时间变化而变化;
利用预设映射对所述当前值进行映射,得到映射值,作为新的种子。
在一种可能的实施例中,所述种子获取模块402,具体用于控制部署在所述服务端设备的预设内核态随机数生成器生成新的种子。
在一种可能的实施例中,所述随机数生成模块403,还用于如果所述生成数量未达到预设更替阈值,控制所述预设用户态随机数生成器使用所述当前的种子生成随机数。
本公开实施例还提供了一种服务端设备,如图5所示,包括:
计算机可读存储介质501,用于存放计算机程序;
处理器502,用于执行计算机可读存储介质501上所存放的程序时,实现如下步骤:
确定预设用户态随机数生成器的生成数量是否达到预设更替阈值,所述生成数量为所述预设用户态随机数生成器使用当前的种子生成的用于权限认证的随机数的数量,所述预设用户态随机数生成器运行于用户态;
如果所述生成数量达到预设更替阈值,获取新的种子;
控制所述预设用户态随机数生成器使用所述新的种子生成随机数;
利用所生成的随机数对用户端设备进行权限认证。
在一种可能的实施例中,所述获取新的种子,包括:
控制所述预设用户态随机数生成器生成新的种子。
在一种可能的实施例中,所述获取新的种子,包括:
获取所述服务端设备的预设参数的当前值,所述预设参数的值随时间变化而变化;
利用预设映射对所述当前值进行映射,得到映射值,作为新的种子。
在一种可能的实施例中,所述获取新的种子,包括:
控制部署在所述服务端设备的预设内核态随机数生成器生成新的种子。
在一种可能的实施例中,所述方法还包括:
如果所述生成数量未达到预设更替阈值,控制所述预设用户态随机数生成器使用所述当前的种子生成随机数。
上述服务端设备提到的计算机可读存储介质可以包括随机存取存储器(RandomAccess Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本公开提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一权限认证方法。
在本公开提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一权限认证方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、服务端设备设备、计算机可读存储介质、计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。凡在本公开的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本公开的保护范围内。

Claims (12)

1.一种权限认证方法,其特征在于,应用于服务端设备,所述方法包括:
确定预设用户态随机数生成器的生成数量是否达到预设更替阈值,所述生成数量为所述预设用户态随机数生成器使用当前的种子生成的用于权限认证的随机数的数量,所述预设用户态随机数生成器运行于用户态;
如果所述生成数量达到预设更替阈值,获取新的种子;
控制所述预设用户态随机数生成器使用所述新的种子生成随机数;
利用所生成的随机数对用户端设备进行权限认证。
2.根据权利要求1所述的方法,其特征在于,所述获取新的种子,包括:
控制所述预设用户态随机数生成器生成新的种子。
3.根据权利要求1所述的方法,其特征在于,所述获取新的种子,包括:
获取所述服务端设备的预设参数的当前值,所述预设参数的值随时间变化而变化;
利用预设映射对所述当前值进行映射,得到映射值,作为新的种子。
4.根据权利要求1所述的方法,其特征在于,包括:
控制部署在所述服务端设备的预设内核态随机数生成器生成新的种子。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述生成数量未达到预设更替阈值,控制所述预设用户态随机数生成器使用所述当前的种子生成随机数。
6.一种权限认证装置,其特征在于,应用于服务端设备,所述装置包括:
随机性检测模块,用于确定预设用户态随机数生成器的生成数量是否达到预设更替阈值,所述生成数量为所述预设用户态随机数生成器使用当前的种子生成的用于权限认证的随机数的数量,所述预设用户态随机数生成器运行于用户态;
种子获取模块,用于如果所述生成数量达到预设更替阈值,获取新的种子;
随机数生成模块,用于控制所述预设用户态随机数生成器使用所述新的种子生成随机数;
权限认证模块,用于利用所生成的随机数对用户端设备进行权限认证。
7.根据权利要求6所述的装置,其特征在于,所述种子获取模块,具体用于控制所述预设用户态随机数生成器生成新的种子。
8.根据权利要求6所述的装置,其特征在于,所述种子获取模块,具体用于获取所述服务端的预设参数的当前值,所述预设参数的值随时间变化而变化;
利用预设映射对所述当前值进行映射,得到映射值,作为新的种子。
9.根据权利要求6所述的装置,其特征在于,所述种子获取模块,具体用于控制部署在所述服务端设备的预设内核态随机数生成器生成新的种子。
10.根据权利要求6所述的装置,其特征在于,所述随机数生成模块,还用于如果所述生成数量未达到预设更替阈值,控制所述预设用户态随机数生成器使用所述当前的种子生成随机数。
11.一种服务端设备,其特征在于,包括:
计算机可读存储介质,用于存放计算机程序;
处理器,用于执行所述计算机可读存储介质上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
CN202010562211.XA 2020-06-18 2020-06-18 一种权限认证方法、装置及服务端设备 Active CN111708762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010562211.XA CN111708762B (zh) 2020-06-18 2020-06-18 一种权限认证方法、装置及服务端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010562211.XA CN111708762B (zh) 2020-06-18 2020-06-18 一种权限认证方法、装置及服务端设备

Publications (2)

Publication Number Publication Date
CN111708762A true CN111708762A (zh) 2020-09-25
CN111708762B CN111708762B (zh) 2023-09-01

Family

ID=72541848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010562211.XA Active CN111708762B (zh) 2020-06-18 2020-06-18 一种权限认证方法、装置及服务端设备

Country Status (1)

Country Link
CN (1) CN111708762B (zh)

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005276113A (ja) * 2004-03-26 2005-10-06 Denso Corp 擬似乱数生成方法、セキュリティチェック方法および制御装置
US20060036857A1 (en) * 2004-08-06 2006-02-16 Jing-Jang Hwang User authentication by linking randomly-generated authentication secret with personalized secret
JP2007158979A (ja) * 2005-12-08 2007-06-21 Fujitsu Access Ltd 認証装置及び乱数生成方法
US20070180250A1 (en) * 2006-01-20 2007-08-02 Jun-Ho Choi Apparatus and Method for Improving Security Level In Card Authentication System
US20100205448A1 (en) * 2009-02-11 2010-08-12 Tolga Tarhan Devices, systems and methods for secure verification of user identity
CN101908113A (zh) * 2010-07-30 2010-12-08 深圳市江波龙电子有限公司 一种认证方法及认证系统
CN102063285A (zh) * 2010-12-24 2011-05-18 倍奥锐(北京)科技有限公司 一种软件实现的真随机数产生方法
CN104380655A (zh) * 2012-06-15 2015-02-25 诺基亚公司 在受限装置上进行证书撤销状态验证的机制
CN104484153A (zh) * 2014-12-29 2015-04-01 珠海全志科技股份有限公司 一种应用层获取真随机数的方法
CN204347842U (zh) * 2014-12-10 2015-05-20 暨南大学 一种主设备对其从属设备的认证装置
CN105760164A (zh) * 2016-02-15 2016-07-13 浪潮(北京)电子信息产业有限公司 一种用户空间文件系统中acl权限的实现方法
CN106230586A (zh) * 2016-07-22 2016-12-14 北京信安世纪科技有限公司 一种令牌种子动态更新方法和装置
CN106357649A (zh) * 2016-09-23 2017-01-25 浙江神州量子网络科技有限公司 用户身份认证系统和方法
CN107145332A (zh) * 2017-04-28 2017-09-08 郑州云海信息技术有限公司 一种OpenCL内核程序中随机数产生方法及装置
CN107980135A (zh) * 2017-10-27 2018-05-01 福建联迪商用设备有限公司 一种终端随机数发生的方法及系统
CN108881320A (zh) * 2018-09-11 2018-11-23 北京北信源信息安全技术有限公司 一种用户登陆的认证处理方法、服务器及客户端
CN109522736A (zh) * 2018-12-13 2019-03-26 中国科学院信息工程研究所 一种在操作系统中进行密码运算的方法和系统
CN109615370A (zh) * 2018-10-25 2019-04-12 阿里巴巴集团控股有限公司 对象选取方法及装置、电子设备
CN109714167A (zh) * 2019-03-15 2019-05-03 北京邮电大学 适用于移动应用签名的身份认证与密钥协商方法及设备

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005276113A (ja) * 2004-03-26 2005-10-06 Denso Corp 擬似乱数生成方法、セキュリティチェック方法および制御装置
US20060036857A1 (en) * 2004-08-06 2006-02-16 Jing-Jang Hwang User authentication by linking randomly-generated authentication secret with personalized secret
JP2007158979A (ja) * 2005-12-08 2007-06-21 Fujitsu Access Ltd 認証装置及び乱数生成方法
US20070180250A1 (en) * 2006-01-20 2007-08-02 Jun-Ho Choi Apparatus and Method for Improving Security Level In Card Authentication System
US20100205448A1 (en) * 2009-02-11 2010-08-12 Tolga Tarhan Devices, systems and methods for secure verification of user identity
CN101908113A (zh) * 2010-07-30 2010-12-08 深圳市江波龙电子有限公司 一种认证方法及认证系统
CN102063285A (zh) * 2010-12-24 2011-05-18 倍奥锐(北京)科技有限公司 一种软件实现的真随机数产生方法
CN104380655A (zh) * 2012-06-15 2015-02-25 诺基亚公司 在受限装置上进行证书撤销状态验证的机制
CN204347842U (zh) * 2014-12-10 2015-05-20 暨南大学 一种主设备对其从属设备的认证装置
CN104484153A (zh) * 2014-12-29 2015-04-01 珠海全志科技股份有限公司 一种应用层获取真随机数的方法
CN105760164A (zh) * 2016-02-15 2016-07-13 浪潮(北京)电子信息产业有限公司 一种用户空间文件系统中acl权限的实现方法
CN106230586A (zh) * 2016-07-22 2016-12-14 北京信安世纪科技有限公司 一种令牌种子动态更新方法和装置
CN106357649A (zh) * 2016-09-23 2017-01-25 浙江神州量子网络科技有限公司 用户身份认证系统和方法
CN107145332A (zh) * 2017-04-28 2017-09-08 郑州云海信息技术有限公司 一种OpenCL内核程序中随机数产生方法及装置
CN107980135A (zh) * 2017-10-27 2018-05-01 福建联迪商用设备有限公司 一种终端随机数发生的方法及系统
CN108881320A (zh) * 2018-09-11 2018-11-23 北京北信源信息安全技术有限公司 一种用户登陆的认证处理方法、服务器及客户端
CN109615370A (zh) * 2018-10-25 2019-04-12 阿里巴巴集团控股有限公司 对象选取方法及装置、电子设备
CN109522736A (zh) * 2018-12-13 2019-03-26 中国科学院信息工程研究所 一种在操作系统中进行密码运算的方法和系统
CN109714167A (zh) * 2019-03-15 2019-05-03 北京邮电大学 适用于移动应用签名的身份认证与密钥协商方法及设备

Also Published As

Publication number Publication date
CN111708762B (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
US11295565B2 (en) Secure smart unlocking
EP3123692B1 (en) Techniques to operate a service with machine generated authentication tokens
US7849320B2 (en) Method and system for establishing a consistent password policy
WO2020258837A1 (zh) 解锁方法、实现解锁的设备及计算机可读介质
CN107483509A (zh) 一种身份验证方法、服务器及可读存储介质
US10542044B2 (en) Authentication incident detection and management
CN110569658A (zh) 基于区块链网络的用户信息处理方法、装置、电子设备及存储介质
US11556630B2 (en) Private password constraint validation
CN114499916A (zh) 安全令牌撤销
US10897353B2 (en) Computer-implemented method for generating passwords and computer program products of same
US20220109573A1 (en) zkMFA: ZERO-KNOWLEDGE BASED MULTI-FACTOR AUTHENTICATION SYSTEM
WO2021137769A1 (en) Method and apparatus for sending and verifying request, and device thereof
US20220286446A1 (en) Authentication credential with embedded authentication information
CN109842616B (zh) 账号绑定方法、装置及服务器
CN112580114B (zh) 一种信息处理方法、装置、设备及存储介质
CN114741704A (zh) 一种基于婚恋交友的隐私保护方法、装置、设备及介质
Jin et al. Erasable pufs: Formal treatment and generic design
CN111708762B (zh) 一种权限认证方法、装置及服务端设备
US20220014366A1 (en) Key protection using a noising and de-noising scheme
CN112217632B (zh) 一种基于智能合约和哈希链的身份认证方法及装置
US11528286B2 (en) Network vulnerability detection
EP3776318B1 (en) Tamper-resistant data encoding for mobile devices
Vegh et al. Complex event processing for attack detection in a cyber-physical system
Du et al. Database padding for dynamic symmetric searchable encryption
KR102665929B1 (ko) 물리적으로 복제 불가능한 기능의 원격 재등록

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