CN116647400A - 弱密码检测方法、装置、电子设备及服务器 - Google Patents
弱密码检测方法、装置、电子设备及服务器 Download PDFInfo
- Publication number
- CN116647400A CN116647400A CN202310692319.4A CN202310692319A CN116647400A CN 116647400 A CN116647400 A CN 116647400A CN 202310692319 A CN202310692319 A CN 202310692319A CN 116647400 A CN116647400 A CN 116647400A
- Authority
- CN
- China
- Prior art keywords
- password
- information
- server
- client
- weak
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007599 discharging Methods 0.000 description 1
- 238000011084 recovery Methods 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- 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/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种弱密码检测方法、装置、电子设备及服务器,属于计算机技术领域。方法应用于客户端,包括:根据待测密码和客户端私钥,得到第一密码信息;向服务端发送第一密码信息和第一信息,第一信息用于表征所述待测密码对应的弱密码字典集合;接收服务端发送的目标数据集和第一服务端协商密钥;目标数据集中包括至少一个第二密码信息,至少一个第二密码信息是根据弱密码字典集合和服务端私钥得到的;第一服务端协商密钥是根据服务端私钥和第一密码信息得到的;根据目标数据集和客户端私钥,得到客户端协商密钥集合;根据客户端协商密钥集合和第一服务端协商密钥,确定所述待测密码是否为弱密码。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种弱密码检测方法、装置、电子设备及服务器。
背景技术
用户在使用互联网服务时,通常需要设置用户名密码。为了提高密码的安全性,会对密码进行检测,判断是否为弱密码。
目前,现有技术在进行弱密码检测时需要将密码的原文或哈希(hash)值上传到服务端,在检测的过程中服务端可以通过对比匹配值,获得用户输入的密码原始值。如果服务端保存不当,容易造成用户密码的泄露,或者被服务端恶意利用。
发明内容
本申请实施例的目的是提供一种弱密码检测方法、装置、电子设备及服务器,能够解决现有技术在检测弱密码检测时服务端侧容易造成密码泄露的问题。
第一方面,本申请实施例提供了一种弱密码检测方法,应用于客户端,包括:
根据待测密码和客户端私钥,得到第一密码信息;
向服务端发送所述第一密码信息和第一信息,所述第一信息用于表征所述待测密码对应的弱密码字典集合;
接收所述服务端发送的目标数据集和第一服务端协商密钥;其中,所述目标数据集中包括至少一个第二密码信息,所述至少一个第二密码信息是根据所述弱密码字典集合和服务端私钥得到的;所述第一服务端协商密钥是根据所述服务端私钥和所述第一密码信息得到的;
根据所述目标数据集和所述客户端私钥,得到客户端协商密钥集合;
根据所述客户端协商密钥集合和所述第一服务端协商密钥,确定所述待测密码是否为弱密码。
第二方面,本申请实施例提供了一种弱密码检测方法,应用于服务端,包括:
根据服务端私钥和P个弱密码字典集合,得到P个数据集,所述数据集与所述弱密码字典集合一一对应,每个所述数据集合包括至少一个第二密码信息;P属于正整数;
接收客户端发送的第一密码信息和第一信息,所述第一信息用于表征待测密码对应的弱密码字典集合;
从P个所述数据集中,确定与所述第一信息对应的目标数据集;
根据服务端私钥和所述第一密码信息,得到第一服务端协商密钥;
向所述客户端发送所述目标数据集和所述第一服务端协商密钥。
第三方面,本申请实施例提供了一种弱密码检测装置,其特征在于,应用于客户端,包括:
第一处理模块,用于根据待测密码和客户端私钥,得到第一密码信息;
第一发送模块,用于向服务端发送所述第一密码信息和第一信息,所述第一信息用于表征所述待测密码对应的弱密码字典集合;
第一接收模块,用于接收所述服务端发送的目标数据集和第一服务端协商密钥;其中,所述目标数据集中包括至少一个第二密码信息,所述至少一个第二密码信息是根据所述弱密码字典集合和服务端私钥得到的;所述第一服务端协商密钥是根据所述服务端私钥和所述第一密码信息得到的;
第二处理模块,用于根据所述目标数据集和所述客户端私钥,得到客户端协商密钥集合;
第一确定模块,用于根据所述客户端协商密钥集合和所述第一服务端协商密钥,确定所述待测密码是否为弱密码。
第四方面,本申请实施例提供了一种弱密码检测装置,应用于服务端,包括:
第四处理模块,用于根据服务端私钥和P个弱密码字典集合,得到P个数据集,所述数据集与所述弱密码字典集合一一对应,每个所述数据集合包括至少一个第二密码信息;P属于正整数;
第二接收模块,用于接收客户端发送的第一密码信息和第一信息,所述第一信息用于表征待测密码对应的弱密码字典集合;
第二确定模块,用于从P个所述数据集中,确定与所述第一信息对应的目标数据集;
第五处理模块,用于根据服务端私钥和所述第一密码信息,得到第一服务端协商密钥;
第二发送模块,用于向所述客户端发送所述目标数据集和所述第一服务端协商密钥。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第六方面,本申请实施例提供了一种服务器,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权第二方面所述的弱密码检测方法的步骤。
第六方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面或第二方面所述的方法的步骤。
第七方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面或第二方面所述的方法。
第八方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面或第二方面所述的方法。
在本申请实施例中,客户端根据待测密码和客户端私钥,得到第一密码信息;并向服务端发送所述第一密码信息和第一信息,所述第一信息用于表征所述待测密码对应的弱密码字典集合;新一步接收服务端根据第一密码信息和第一信息发送的目标数据集和第一服务端协商密钥;其中,所述目标数据集中包括至少一个第二密码信息,所述至少一个第二密码信息是根据所述弱密码字典集合和服务端私钥得到的;所述第一服务端协商密钥是根据所述服务端私钥和所述第一密码信息得到的;客户端根据所述目标数据集和所述客户端私钥,得到客户端协商密钥集合;进一步地,客户端根据所述客户端协商密钥集合和所述第一服务端协商密钥,确定所述待测密码是否为弱密码。如此,在弱密码检测过程中,服务端无法获得用户输入的待测密码原值,用户密码只由客户端自己掌握,避免了服务端恶意收集用户密码,提升了密码的安全性。
附图说明
图1是本申请实施例提供的弱密码检测方法的流程图之一;
图2是本申请实施例提供的弱密码检测方法的流程图之二;
图3是本申请实施例提供的弱密码检测装置的结构框图之一;
图4是本申请实施例提供的弱密码检测装置的结构框图之二;
图5是本申请实施例提供的电子设备的结构框图;
图6是本申请实施例提供的电子设备的硬件结构示意图;
图7是本申请实施例提供的服务器的结构框图;
图8是本申请实施例提供的服务器的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的弱密码检测方法、装置、电子设备及服务器进行详细地说明。
参见图1,本申请实施例提供一种弱密码检测方法,应用于客户端,具体包括以下步骤:
步骤101:根据待测密码和客户端私钥,得到第一密码信息。
可选地,基于客户端私钥对待测密码进行加密处理,得到第一密码信息,以隐藏真实的待测密码。
步骤102:向服务端发送所述第一密码信息和第一信息,所述第一信息用于表征所述待测密码对应的弱密码字典集合。
可选地,客户端在接收到用户输入的待测密码(upw)后,使用哈希(hash)算法,计算待测密码的哈希值,并将待测密码哈希值的前n个字节作为第一信息;相应地,服务端采用与客户端相同的哈希算法,计算弱密码字典对应的哈希值,并利用弱密码字典对应的哈希值的前n字节的内容,将弱密码字典划分为不同的弱密码字典集合。如此,服务端在接收到第一信息后,即可根据第一信息获取待测密码对应的弱密码字典集合。
步骤103:接收所述服务端发送的目标数据集和第一服务端协商密钥;其中,所述目标数据集中包括至少一个第二密码信息,所述至少一个第二密码信息是根据所述弱密码字典集合和服务端私钥得到的;所述第一服务端协商密钥是根据所述服务端私钥和所述第一密码信息得到的。
具体实现时,服务端采用与客户端相同的哈希算法,计算弱密码字典对应的哈希值,并利用弱密码字典对应的哈希值的前n字节的内容,将弱密码字典划分为P个弱密码字典集合;进一步地,服务端侧根据服务端私钥,对P个弱密码字典集合分别进行加密处理,得到P个数据集,即一个数据集对应一个弱密码字典集合,每个数据集中包括至少一个第二密码信息,每个第二密码信息是由服务端私钥和一个弱密码字典得到的;服务端在接收到客户端发送的第一密码信息和第一信息后,根据第一信息从P个数据集中确定与第一信息对应的目标数据集,以及,根据服务端私钥对第一密码信息进行处理,得到第一服务端协商密钥,并向客户端发送第一服务端协商密钥和目标数据集。
示例性地,客户端向服务端发送的第一密码信息为:b*H(upw),服务端向客户端返回的第一服务端协商密码为:a*b*H(upw);其中,upw指待测密码,H(upw)指待测密码对应的处理值,a是服务端私钥,b是客户端私钥。
步骤104:根据所述目标数据集和所述客户端私钥,得到客户端协商密钥集合。
示例性地,服务端向客户端发送的与第一信息对应的目标数据集为:BKTc;客户端根据目标数据集和客户端私钥,得到的客户端协商密钥集合为:b*BKTc;由于目标数据集中的数据不止一个,b*BKTc代表一个协商密钥集合。
其中,服务端基于与弱密码字典集合对应的数据集为:BKTn=a*H(pw),pw指弱密码字典,H(pw)指弱密码字典对应的处理值,a*H(pw)指根据服务端私钥和弱密码字典得到的第二密码信息,a是服务端私钥,b是客户端私钥。如此,客户端协商密钥集合中的值为:b*a*H(pw)。
步骤105:根据所述客户端协商密钥集合和所述第一服务端协商密钥,确定所述待测密码是否为弱密码。
具体实现时,可计算第一协商密钥与协商密钥集合的交集,若存在交集,则交集中的协商密钥所对应的原始密码值即为服务端已收集的弱密码字典。因为只有在用户输入的待测密码与服务端的弱密码字典相同时,才会在相同的客户端私钥b和服务端私钥a的条件下,得到相同的协商密钥。
示例性地,由于第一服务端协商密码为:a*b*H(upw),客户端协商密钥集合中的值为:b*a*H(pw),通过计算a*b*H(upw)和b*a*H(pw)的交集;若存在交集,则说明待测密码属于弱密码字典,即待测密码为弱密码。若不存在交集,则说明待测密码不是弱密码。
上述实施例中,在弱密码检测过程中,服务端无法获得用户输入的待测密码的原值,这样,在通过服务端校验用户的输入密码是否为弱密码时,能够保证服务端无法获取用户输入的原始密码原文,用户密码只由客户端自己掌握,避免了服务端恶意收集用户密码,提升了密码的安全性。
在一实施例中,上述步骤102中,根据待测密码和客户端私钥,得到第一密码信息,包括:
将所述待测密码转换为整数值;
将所述整数值映射到椭圆曲线上,得到第一值;
基于椭圆曲线加密算法,根据客户端私钥对所述第一值进行加密处理,得到所述第一密码信息。
示例性地,用户输入待测密码(upw)后,使用哈希(hash)算法,计算待测密码的哈希值,记为H(upw),并记录此哈希值的前n字节的内容作为第一信息c;进一步地,将此哈希值映射到椭圆曲线上一点,记为Hswu(upw);选择一个随机秘密值b(此值即为客户端私钥),对Hswu(upw)进行处理得到b*Hswu(upw),b*Hswu(upw)即为第一密码信息。这里,需要指出的是,公式中的“*”是指在椭圆曲线上定义的“标量乘法”计算,简单的说就是将映射点在椭圆曲线上面进行移动。如,b*Hswu(upw)表示将Hswu(upw)在椭圆曲线上移动b次后的点。
该实施例中,由于映射点Hswu(upw)在椭圆曲线上面移动b次的特点是:已知初始点和结束点,无法推断出移动了多少次。也就是,即使知道椭圆曲线上面两个点b*Hswu(upw)和Hswu(upw),也无法计算出b的值,因此客户端无法推测出服务端的私钥,保证了服务端弱密码字典的安全性。
为进一步提高服务端的密码还原难度,在一实施例中,上述弱密码检测方法还包括:
根据客户端私钥和N个随机密码,得到N个第三密码信息;N属于正整数;上述步骤102中,向服务端发送所述第一密码信息和第一信息,包括:
向所述服务端发送第一数据集合和第二数据集合;
其中,所述第一数据集合包括:所述第一密码信息和所述N个第三密码信息;所述第二数据集合包括:所述第一信息和N个第二信息;所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合。
示例性地,客户端生成了N个随机密码{r1,r2,…,rN},并用与客户端处理待测密码的方式,基于服务端私钥得到N个第三密码信息{b1*Hswu(r1),b2*Hswu(r2),…,bN*Hswu(rN)},以及获取N个随机密码对应的哈希值前n个字节,作为N个第二信息{c1,c2,…,cN}。最后,客户端向服务端发送的第一数据集合为:{b1*Hswu(r1),b2*Hswu(r2),…,bN*Hswu(rN),b*Hswu(upw)};向服务端发送的第二数据集合为:{c1,c2,…cN,c};其中,b*Hswu(upw)为第一密码信息,c为第一信息。可选地,要求N≥50,以更好地隐藏真正需要检测的密码。
需要指出的是,该示例为了表示方便将b*Hswu(upw)放在了第一数据集合的最后,将第一信息c放在了第二数据集合的最后,但在实际应用时,为了隐藏待测密码相关数据,可对第一数据集合和第二数据集合进行随机排序,只要保证两个集合的值是一一对应即可。
相应地,服务端根据服务端私钥对N个第三密码信息进行加密处理,确定N个第二服务端协商密钥;进一步地,服务端向客户端发送协商密钥集合和N+1个目标数据集;其中,所述N+1个目标数据集是根据所述第一信息和N个所述第二信息从P个所述数据集中确定的;即,一个第二信息对应一个目标数据集,第一信息对应一个目标数据集;所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥;所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
示例性地,服务端收到第一数据集合{b1*Hswu(r1),b2*Hswu(r2),…,bx*Hswu(rx),b*Hswu(upw)},以及第二数据集合{c1,c2,…cx,c}后,进行如下处理:
1、根据第二数据集合{c1,c2,…cN,c},从P个数据集中确定N+1个目标数据集。即,根据{c1,c2,…cN,c}可确定出{BKTc1,BKTc2,…BKTcN,BKTc};其中,BKTc1是与c1对应的目标数据集,……,BKTcN是与cN对应的第一数据集合,BKTc是与第一信息c对应的目标数据集。
2、将第一数据集合{b1*Hswu(r1),b2*Hswu(r2),…,bN*Hswu(rN),b*Hswu(upw)}中的每个值乘以服务端私钥a,得到{a*b1*Hswu(r1),a*b2*Hswu(r2),…,a*bN*Hswu(rN),a*b*Hswu(upw)},此集合即为服务端侧的协商密钥集合。
其中,a*b*Hswu(upw)为第一服务端协商密钥,{a*b1*Hswu(r1),a*b2*Hswu(r2),…,a*bN*Hswu(rN)}为N个第二服务端协商密钥。
3、服务端向客户端发送N+1个目标数据集{BKTc1,BKTc2,…BKTcN,BKTc},以及服务端侧的协商密钥集合{a*b1*Hswu(r1),a*b2*Hswu(r2),…,a*bN*Hswu(rN),a*b*Hswu(upw)}。
上述实施例中,为了避免服务端通过查询的数据,猜测客户端的待检测密码,将真正的待检测密码隐藏在一堆随机密码中,加大了服务端猜测密码的难度,提高了密码的安全性。
在一实施例中,上述步骤103中,接收所述服务端发送的目标数据集合和第一服务端协商密钥,包括:
接收所述服务端发送的协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和所述第二信息从P个数据集中确定的,所述P个数据集是根据服务端私钥和P个弱密码字典集合得到的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥,所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
示例性地,服务端向客户端发送N+1个目标数据集{BKTc1,BKTc2,…BKTcN,BKTc},以及服务端侧的协商密钥集合{a*b1*Hswu(r1),a*b2*Hswu(r2),…,a*bN*Hswu(rN),a*b*Hswu(upw)}之后,客户端在收到服务端发送的协商密钥集合和N+1个目标数据集后,进行如下处理:
1、对{BKTc1,BKTc2,…BKTcN,BKTc}中的值,乘以对应的随机数bi,得到客户端协商密钥集合R1={b1*BKTc1,b2*BKTc2,…bx*BKTcx,b*BKTc},此集合中的值,即为客户端协商密钥。
2、确定服务端协商密钥集合R2={a*b1*Hswu(r1),a*b2*Hswu(r2),…,a*bx*Hswu(rx),a*b*Hswu(upw)}。
3、求R1与R2的交集,在确定R1与R2存在交集时,交集中的数据所对应的原始密码值,即为服务端已记录的弱密码字典,确定用户输入的待检测密码为弱密码。
在一种实施例中,在根据客户端私钥和N个随机密码,得到N个第三密码信息时,N个随机密码采用相同的客户端私钥。也即,上述b=b1=b2=…=bx。该实施例中,若一个密码被服务端破解,则客户端的所有密码都会被破解。
在另一实施例中,上述根据客户端私钥和N个随机密码,得到N个第三密码信息,包括:
随机生成N个客户端私钥;
基于椭圆曲线加密算法,根据N个所述客户端私钥对N个所述随机密码进行加密处理,得到N个所述第三密码信息;其中,所述客户端私钥与所述随机密码一一对应。
该实施例中,一个客户端使用多个客户端私钥,每个要验证的密码都不一样,即,上述b!=b1!=b2=…!=bx。这里,“!=”是计算机中的运算符号,意为“不等于”。因此,该实施例中,即使一个密码被服务端破解,也不影响其他密码的安全性。
参见图2,本申请实施例提供一种弱密码检测方法,应用于服务端,具体包括以下步骤:
步骤201:根据服务端私钥和P个弱密码字典集合,得到P个数据集,所述数据集与所述弱密码字典集合一一对应,每个所述数据集合包括至少一个第二密码信息;P属于正整数;
示例性地,服务端收集互联网常见的、泄露的弱密码字典,并保持更新。为保证后续步骤的安全,弱密码字典至少应有M个,M为预设值;进一步地,服务端采用与客户端相同的哈希算法,计算弱密码字典对应的哈希值,利用弱密码字典对应的哈希值的前n字节的内容,将弱密码字典划分为P个弱密码字典集合。进一步地,服务端侧根据服务端私钥,对P个弱密码字典集合分别进行加密处理,得到P个数据集,即一个数据集对应一个弱密码字典集合,每个数据集中包括至少一个第二密码信息,每个第二密码信息是由服务端私钥和一个弱密码字典得到的。
步骤202:接收客户端发送的第一密码信息和第一信息,所述第一信息用于表征待测密码对应的弱密码字典集合。
可选地,客户端在接收到用户输入的待测密码(upw)后,使用与服务端相同的哈希(hash)算法,计算待测密码的哈希值,并将待测密码哈希值的前n个字节作为第一信息。
步骤203:从P个所述数据集中,确定与所述第一信息对应的目标数据集。
步骤204:根据服务端私钥和所述第一密码信息,得到第一服务端协商密钥。
步骤205:向所述客户端发送所述目标数据集和所述第一服务端协商密钥。
上述实施例中,服务端在接收到客户端发送的第一密码信息和第一信息后,根据第一信息从P个数据集中确定与第一信息对应的目标数据集,以及,根据服务端私钥对第一密码信息进行处理,得到第一服务端协商密钥,并向客户端发送第一服务端协商密钥和目标数据集。
示例性地,客户端向服务端发送的第一密码信息为:b*H(upw),服务端向客户端返回的第一服务端协商密码为:a*b*H(upw);其中,upw指待测密码,H(upw)指待测密码对应的处理值,a是服务端私钥,b是客户端私钥。
示例性地,服务端向客户端发送的与第一信息对应的目标数据集为:BKTc;客户端根据目标数据集和客户端私钥,得到的客户端协商密钥集合为:b*BKTc;由于目标数据集中的数据不止一个,因此,b*BKTc代表一个协商密钥集合。
其中,服务端基于与弱密码字典集合对应的数据集为:BKTn=a*H(pw),pw指弱密码字典,H(pw)指弱密码字典对应的处理值,a*H(pw)指根据服务端私钥和弱密码字典得到的第二密码信息,a是服务端私钥,b是客户端私钥。如此,客户端协商密钥集合中的值为:b*a*H(pw)。
可选地,为提升安全性,可不固定服务端私钥,即针对每个用户采用不同的随机值ai,也即不同用户使用不同的服务端私钥,这样即使某个恶意客户端破解了其收到的第一密码信息b*H(upw),也无法破解其他客户端收到的数据。
上述实施例中,在弱密码检测过程中,服务端无法获得用户输入的待测密码,这样,在通过服务端校验用户的输入密码是否为弱密码时,能够保证服务端无法获取用户输入的原始密码原文,用户密码只由客户端自己掌握,避免了服务端恶意收集用户密码,提升了密码的安全性。
在一实施例中,上述步骤201中,根据服务端私钥和P个弱密码字典集合,得到P个数据集,包括:
针对每个所述弱密码字典集合,将弱密码字典转换为整数值,并将每个所述整数值映射到椭圆曲线上,得到第二值;
基于椭圆曲线加密算法,根据服务端私钥对所述第二值进行加密处理,得到每个所述第二值对应的所述第二密码信息,获得每个弱密码字典集合对应的一个所述数据集。
作为一种可选方式,在将弱密码字典对应的整数值映射到椭圆曲线上时,可采用sha256,sha384,sha512等任意一种,得到每个弱密码字典的哈希值,并用16进制的字符串表示。如sha256(abcd123456)=5fae31539e070a690c1b63720c25eb5b86084b5098a942c86c89c1d67157ed6b。进一步地,对P个字典集合中的弱密码字典的哈希值进行处理,转换为整数值。最后,根据simple SWU方法,将整数值映射到常用椭圆曲线(如P224,P248,P256)上的一个点Hswu(pw)。
具体地,将hash值转换为整数的步骤包括:
先用比特(byte)数组表示哈希值,然后将整个数组翻译为整数(int)。如5fae31539e070a690c1b63720c25eb5b86084b5098a942c86c89c1d67157ed6b对应的整数为:
43277492444570550325322311094995103653756177751910488060832908287034657336683。
该实施例中,在基于服务端私钥a,将整数值映射到常用椭圆曲线上的一个点Hswu(pw)后,由于映射点Hswu(upw)在椭圆曲线上面移动a次的特点是:已知初始点和结束点,无法推断出移动了多少次。也就是,即使知道椭圆曲线上面两个点a*Hswu(pw)和Hswu(pw),也无法计算出a的值,因此客户端无法推测出服务端的私钥,保证了服务端弱密码字典的安全性。
在一实施例中,上述步骤202中,接收客户端发送的第一密码信息和第一信息,包括:
接收所述客户端发送的第一数据集合和第二数据集合;其中,所述第一数据集合包括:所述第一密码信息和N个第三密码信息,所述N个第三密码信息是客户端私钥和N个随机密码得到的;所述第二数据集合包括:所述第一信息和N个第二信息;所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合;
上述步骤205,包括:
向所述客户端发送协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和N个所述第二信息从P个所述数据集中确定的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥;所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
示例性地,客户端生成了N个随机密码{r1,r2,…,rN},并用与处理待测密码相同的方式得到N个第三密码信息{b1*Hswu(r1),b2*Hswu(r2),…,bN*Hswu(rN)},以及与N个随机密码一一对应的N个第二信息{c1,c2,…,cN}。最后,客户端向服务端发送的第一数据集合为:{b1*Hswu(r1),b2*Hswu(r2),…,bN*Hswu(rN),b*Hswu(upw)};向服务端发送的第二数据集合为:{c1,c2,…cN,c};其中,b*Hswu(upw)为第一密码信息,c为第一信息。可选地,要求N≥50,以更好地隐藏真正需要检测的密码。
相应地,服务端收到第一数据集合{b1*Hswu(r1),b2*Hswu(r2),…,bx*Hswu(rx),b*Hswu(upw)},以及第二数据集合{c1,c2,…cx,c}后,进行如下处理:
1、根据第二数据集合{c1,c2,…cN,c},从P个数据集中确定N+1个目标数据集。即,根据{c1,c2,…cN,c}可确定出{BKTc1,BKTc2,…BKTcN,BKTc};其中,BKTc1是与c1对应的目标数据集,……,BKTcN是与cN对应的第一数据集合,BKTc是与第一信息c对应的目标数据集。
2、将第一数据集合{b1*Hswu(r1),b2*Hswu(r2),…,bN*Hswu(rN),b*Hswu(upw)}中的每个值乘以服务端私钥a,得到{a*b1*Hswu(r1),a*b2*Hswu(r2),…,a*bN*Hswu(rN),a*b*Hswu(upw)},此集合即为服务端侧的协商密钥集合。
其中,a*b*Hswu(upw)为第一服务端协商密钥,{a*b1*Hswu(r1),a*b2*Hswu(r2),…,a*bN*Hswu(rN)}为N个第二服务端协商密钥。
3、服务端向客户端发送N+1个目标数据集{BKTc1,BKTc2,…BKTcN,BKTc},以及服务端侧的协商密钥集合{a*b1*Hswu(r1),a*b2*Hswu(r2),…,a*bN*Hswu(rN),a*b*Hswu(upw)}。
上述实施例中,为了避免服务端通过查询的数据,猜测客户端的待检测密码,将真正的待检测密码隐藏在一堆随机密码中,加大了服务端猜测密码的难度,提高了密码的安全性。
在一实施例中,上述步骤201中,根据服务端私钥和P个弱密码字典集合,得到P个数据集之前,所述方法还包括:
获取至少M个弱密码字典;M为正整数;
根据所述弱密码字典的哈希值的前n个字节,将所述至少M个弱密码字典的哈希值划分为P个桶;其中,P=16n,一个桶对应一个所述弱密码字典集合,且每个桶内的哈希值个数大于或等于10000。
示例性地,服务端收集互联网常见的、泄露的弱密码字典,并保持更新。为保证后续步骤的安全,弱密码字典应至少有M个,M为标定值;进一步地,对弱密码字典中的每个密码进行哈希计算,得到对应的哈希(hash)值,根据哈希值的前n字节值,将所有弱密码字典划分到16n桶中,每个桶里面的哈希值数量为S=M/(16n),每个桶的标识名称可以用此n字节表示。
这里,为了保证后续步骤的安全性,S的数量至少应该≥10000。具体估计过程如下:若收集了1亿个弱密码字典,则n应该≤3,理论上,常用hash值是均匀分布的,n=3时,每个桶内有10000000/(163)=24414个值,符合我们上面要求≥10000的要求;n=4时,每个桶内有10000000/(164)=152个值,不符合我们上面要求S≥10000的要求。
本申请实施例提供的弱密码检测方法,执行主体可以为弱密码检测装置。本申请实施例中以弱密码检测装置执行弱密码检测方法为例,说明本申请实施例提供的弱密码检测装置。
参见图3,本申请实施例提供一种弱密码检测装置300,应用于客户端,包括:
第一处理模块301,用于根据待测密码和客户端私钥,得到第一密码信息;
第一发送模块302,用于向服务端发送所述第一密码信息和第一信息,所述第一信息用于表征所述待测密码对应的弱密码字典集合;
第一接收模块303,用于接收所述服务端发送的目标数据集和第一服务端协商密钥;其中,所述目标数据集中包括至少一个第二密码信息,所述至少一个第二密码信息是根据所述弱密码字典集合和服务端私钥得到的;所述第一服务端协商密钥是根据所述服务端私钥和所述第一密码信息得到的;
第二处理模块304,用于根据所述目标数据集和所述客户端私钥,得到客户端协商密钥集合;
第一确定模块305,用于根据所述客户端协商密钥集合和所述第一服务端协商密钥,确定所述待测密码是否为弱密码。
可选地,所述第一处理模块301,包括:
第一处理单元,用于将所述待测密码转换为整数值;
第二处理单元,用于将所述整数值映射到椭圆曲线上,得到第一值;
第三处理单元,用于基于椭圆曲线加密算法,根据客户端私钥对所述第一值进行加密处理,得到所述第一密码信息。
可选地,所述装置300还包括:
第三处理模块,用于根据客户端私钥和N个随机密码,得到N个第三密码信息;N属于正整数;
所述第一发送模块302,包括:
第一发送子模块,用于向所述服务端发送第一数据集合和第二数据集合;
其中,所述第一数据集合包括:所述第一密码信息和所述N个第三密码信息;所述第二数据集合包括:所述第一信息和N个第二信息;所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合。
可选地,所述第一接收模块303,包括:
第一接收子模块,用于接收所述服务端发送的协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和所述第二信息从P个数据集中确定的,所述P个数据集是根据服务端私钥和P个弱密码字典集合得到的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥,所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
本申请实施例中的弱密码检测装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的弱密码检测装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的弱密码检测装置能够实现图1的方法实施例实现的各个过程,为避免重复,这里不再赘述。
参见图4,本申请实施例提供一种弱密码检测装置400,应用于服务端,包括:
第四处理模块401,用于根据服务端私钥和P个弱密码字典集合,得到P个数据集,所述数据集与所述弱密码字典集合一一对应,每个所述数据集合包括至少一个第二密码信息;P属于正整数;
第二接收模块402,用于接收客户端发送的第一密码信息和第一信息,所述第一信息用于表征待测密码对应的弱密码字典集合;
第二确定模块403,用于从P个所述数据集中,确定与所述第一信息对应的目标数据集;
第五处理模块404,用于根据服务端私钥和所述第一密码信息,得到第一服务端协商密钥;
第二发送模块405,用于向所述客户端发送所述目标数据集和所述第一服务端协商密钥。
可选地,所述第四处理模块401,包括:
第四处理单元,用于针对每个所述弱密码字典集合,将弱密码字典转换为整数值,并将每个所述整数值映射到椭圆曲线上,得到第二值;
第五处理单元,用于基于椭圆曲线加密算法,根据服务端私钥对所述第二值进行加密处理,得到每个所述第二值对应的所述第二密码信息,获得每个弱密码字典集合对应的一个所述数据集。
可选地,第二接收模块402,包括:
第一接收子模块,用于接收所述客户端发送的第一数据集合和第二数据集合;其中,所述第一数据集合包括:所述第一密码信息和N个第三密码信息,所述N个第三密码信息是客户端私钥和N个随机密码得到的;所述第二数据集合包括:所述第一信息和N个第二信息;所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合;
所述第二发送模块405,包括:
第二发送子模块,用于向所述客户端发送协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和N个所述第二信息从P个所述数据集中确定的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥;所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
可选地,所述装置400还包括:
获取模块,用于获取至少M个弱密码字典;M为正整数;
第六处理模块,用于根据所述弱密码字典的哈希值的前n个字节,将所述至少M个弱密码字典的哈希值划分为P个桶;其中,P=〖16〗^n,一个桶对应一个所述弱密码字典集合,且每个桶内的哈希值个数大于或等于10000。
本申请实施例中的弱密码检测装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的弱密码检测装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的弱密码检测装置能够实现图2的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图5所示,本申请实施例还提供一种电子设备500,其中,该电子设备作为客户端。包括处理器501和存储器502,存储器502上存储有可在所述处理器501上运行的程序或指令,该程序或指令被处理器501执行时实现上述弱密码检测方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图6为实现本申请实施例的一种电子设备的硬件结构示意图。其中,该电子设备作为客户端。
该电子设备600包括但不限于:射频单元601、网络模块602、音频输出单元603、输入单元604、传感器605、显示单元606、用户输入单元607、接口单元608、存储器609、以及处理器610等部件。
本领域技术人员可以理解,电子设备600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器610,用于根据待测密码和客户端私钥,得到第一密码信息;
射频单元601,用于向服务端发送所述第一密码信息和第一信息,所述第一信息用于表征所述待测密码对应的弱密码字典集合;
射频单元601,还用于接收所述服务端发送的目标数据集和第一服务端协商密钥;其中,所述目标数据集中包括至少一个第二密码信息,所述至少一个第二密码信息是根据所述弱密码字典集合和服务端私钥得到的;所述第一服务端协商密钥是根据所述服务端私钥和所述第一密码信息得到的;
处理器610,还用于根据所述目标数据集和所述客户端私钥,得到客户端协商密钥集合;根据所述客户端协商密钥集合和所述第一服务端协商密钥,确定所述待测密码是否为弱密码。
可选地,处理器610具体用于:
将所述待测密码转换为整数值;
将所述整数值映射到椭圆曲线上,得到第一值;
基于椭圆曲线加密算法,根据客户端私钥对所述第一值进行加密处理,得到所述第一密码信息。
可选地,处理器610还用于:
根据客户端私钥和N个随机密码,得到N个第三密码信息;N属于正整数;
射频单元601,还具体用于:
向所述服务端发送第一数据集合和第二数据集合;
其中,所述第一数据集合包括:所述第一密码信息和所述N个第三密码信息;所述第二数据集合包括:所述第一信息和N个第二信息;所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合。
可选地,射频单元601,还用于:
接收所述服务端发送的协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和所述第二信息从P个数据集中确定的,所述P个数据集是根据服务端私钥和P个弱密码字典集合得到的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥,所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
上述电子设备中,在弱密码检测过程中,服务端无法获得用户输入的待测密码,用户密码只由用户自己掌握,避免了服务端恶意收集用户密码,提升了服务端的安全性。
应理解的是,本申请实施例中,输入单元604可以包括图形处理器(GraphicsProcessing Unit,GPU)6041和麦克风6042,图形处理器6041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元606可包括显示面板6061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6061。用户输入单元607包括触控面板6071以及其他输入设备6072中的至少一种。触控面板6071,也称为触摸屏。触控面板6071可包括触摸检测装置和触摸控制器两个部分。其他输入设备6072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器609可用于存储软件程序以及各种数据。存储器609可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器609可以包括易失性存储器或非易失性存储器,或者,存储器609可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器609包括但不限于这些和任意其它适合类型的存储器。
处理器610可包括一个或多个处理单元;可选的,处理器610集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器610中。
可选地,如图7所示,本申请实施例还提供一种服务器700,包括处理器701和存储器702,存储器702上存储有可在所述处理器701上运行的程序或指令,该程序或指令被处理器701执行时实现上述服务端侧的弱密码检测方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的服务器包括上述所述的移动服务器和非移动服务器。
图8为实现本申请实施例的一种服务器的硬件结构示意图。
该服务器800包括但不限于:射频单元801、网络模块802、音频输出单元803、输入单元804、传感器805、显示单元806、用户输入单元807、接口单元808、存储器809、以及处理器810等部件。
本领域技术人员可以理解,服务器800还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器810逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图8中示出的服务器结构并不构成对服务器的限定,服务器可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器810,用于根据服务端私钥和P个弱密码字典集合,得到P个数据集,所述数据集与所述弱密码字典集合一一对应,每个所述数据集合包括至少一个第二密码信息;P属于正整数;
射频单元801,用于接收客户端发送的第一密码信息和第一信息,所述第一信息用于表征待测密码对应的弱密码字典集合;
处理器810,还用于从P个所述数据集中,确定与所述第一信息对应的目标数据集;根据服务端私钥和所述第一密码信息,得到第一服务端协商密钥;
射频单元801,还用于向所述客户端发送所述目标数据集和所述第一服务端协商密钥。
可选地,处理器810,具体用于:
针对每个所述弱密码字典集合,将弱密码字典转换为整数值,并将每个所述整数值映射到椭圆曲线上,得到第二值;
基于椭圆曲线加密算法,根据服务端私钥对所述第二值进行加密处理,得到每个所述第二值对应的所述第二密码信息,获得每个弱密码字典集合对应的一个所述数据集。
可选地,射频单元801,还用于:
接收所述客户端发送的第一数据集合和第二数据集合;其中,所述第一数据集合包括:所述第一密码信息和N个第三密码信息,所述N个第三密码信息是客户端私钥和N个随机密码得到的;所述第二数据集合包括:所述第一信息和N个第二信息;所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合;
向所述客户端发送协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和N个所述第二信息从P个所述数据集中确定的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥;所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
可选地,处理器810,还用于:
获取至少M个弱密码字典;M为正整数;
根据所述弱密码字典的哈希值的前n个字节,将所述至少M个弱密码字典的哈希值划分为P个桶;其中,P=16n,一个桶对应一个所述弱密码字典集合,且每个桶内的哈希值个数大于或等于10000。
上述服务器中,在弱密码检测过程中,服务端无法获得用户输入的待测密码,这样,在通过服务端校验用户的输入密码是否为弱密码时,能够保证服务端无法获取用户输入的原始密码原文,用户密码只由用户自己掌握,避免了服务端恶意收集用户密码,提升了密码的安全性。
应理解的是,本申请实施例中,输入单元804可以包括图形处理器(GraphicsProcessing Unit,GPU)8041和麦克风8042,图形处理器8041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元806可包括显示面板8061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板8061。用户输入单元807包括触控面板8071以及其他输入设备8072中的至少一种。触控面板8071,也称为触摸屏。触控面板8071可包括触摸检测装置和触摸控制器两个部分。其他输入设备8072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器809可用于存储软件程序以及各种数据。存储器809可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器809可以包括易失性存储器或非易失性存储器,或者,存储器809可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器809包括但不限于这些和任意其它适合类型的存储器。
处理器810可包括一个或多个处理单元;可选的,处理器810集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器810中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述客户端侧或服务端侧的弱密码检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备或服务器中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述客户端侧或服务端侧的弱密码检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述客户端侧或服务端侧的弱密码检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (19)
1.一种弱密码检测方法,其特征在于,应用于客户端,包括:
根据待测密码和客户端私钥,得到第一密码信息;
向服务端发送所述第一密码信息和第一信息,所述第一信息用于表征所述待测密码对应的弱密码字典集合;
接收所述服务端发送的目标数据集和第一服务端协商密钥,其中,所述目标数据集中包括至少一个第二密码信息,所述至少一个第二密码信息是根据所述弱密码字典集合和服务端私钥得到的,所述第一服务端协商密钥是根据所述服务端私钥和所述第一密码信息得到的;
根据所述目标数据集和所述客户端私钥,得到客户端协商密钥集合;
根据所述客户端协商密钥集合和所述第一服务端协商密钥,确定所述待测密码是否为弱密码。
2.根据权利要求1所述的弱密码检测方法,其特征在于,所述根据待测密码和客户端私钥,得到第一密码信息,包括:
将所述待测密码转换为整数值;
将所述整数值映射到椭圆曲线上,得到第一值;
基于椭圆曲线加密算法,根据客户端私钥对所述第一值进行加密处理,得到所述第一密码信息。
3.根据权利要求1所述的弱密码检测方法,其特征在于,所述方法还包括:
根据客户端私钥和N个随机密码,得到N个第三密码信息,N属于正整数;
所述向服务端发送所述第一密码信息和第一信息,包括:
向所述服务端发送第一数据集合和第二数据集合;
其中,所述第一数据集合包括:所述第一密码信息和所述N个第三密码信息;所述第二数据集合包括:所述第一信息和N个第二信息;所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合。
4.根据权利要求3所述的弱密码检测方法,其特征在于,所述接收所述服务端发送的目标数据集和第一服务端协商密钥,包括:
接收所述服务端发送的协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和所述第二信息从P个数据集中确定的,所述P个数据集是根据服务端私钥和P个弱密码字典集合得到的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥,所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
5.一种弱密码检测方法,其特征在于,应用于服务端,包括:
根据服务端私钥和P个弱密码字典集合,得到P个数据集,所述数据集与所述弱密码字典集合一一对应,每个所述数据集合包括至少一个第二密码信息;P属于正整数;
接收客户端发送的第一密码信息和第一信息,所述第一信息用于表征待测密码对应的弱密码字典集合;
从P个所述数据集中,确定与所述第一信息对应的目标数据集;
根据服务端私钥和所述第一密码信息,得到第一服务端协商密钥;
向所述客户端发送所述目标数据集和所述第一服务端协商密钥。
6.根据权利要求5所述的弱密码检测方法,其特征在于,所述根据服务端私钥和P个弱密码字典集合,得到P个数据集,包括:
针对每个所述弱密码字典集合,将弱密码字典转换为整数值,并将每个所述整数值映射到椭圆曲线上,得到第二值;
基于椭圆曲线加密算法,根据服务端私钥对所述第二值进行加密处理,得到每个所述第二值对应的所述第二密码信息,获得每个弱密码字典集合对应的一个所述数据集。
7.根据权利要求5所述的弱密码检测方法,其特征在于,所述接收客户端发送的第一密码信息和第一信息,包括:
接收所述客户端发送的第一数据集合和第二数据集合,其中,所述第一数据集合包括:所述第一密码信息和N个第三密码信息,所述N个第三密码信息是客户端私钥和N个随机密码得到的,所述第二数据集合包括:所述第一信息和N个第二信息,所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合;
所述向所述客户端发送所述目标数据集和所述第一服务端协商密钥,包括:
向所述客户端发送协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和N个所述第二信息从P个所述数据集中确定的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥;所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
8.根据权利要求5所述的弱密码检测方法,其特征在于,所述根据服务端私钥和P个弱密码字典集合,得到P个数据集之前,所述方法还包括:
获取至少M个弱密码字典;M为正整数;
根据所述弱密码字典的哈希值的前n个字节,将所述至少M个弱密码字典的哈希值划分为P个桶;其中,P=16n,一个桶对应一个所述弱密码字典集合,且每个桶内的哈希值个数大于或等于10000。
9.一种弱密码检测装置,其特征在于,应用于客户端,包括:
第一处理模块,用于根据待测密码和客户端私钥,得到第一密码信息;
第一发送模块,用于向服务端发送所述第一密码信息和第一信息,所述第一信息用于表征所述待测密码对应的弱密码字典集合;
第一接收模块,用于接收所述服务端发送的目标数据集和第一服务端协商密钥,其中,所述目标数据集中包括至少一个第二密码信息,所述至少一个第二密码信息是根据所述弱密码字典集合和服务端私钥得到的,所述第一服务端协商密钥是根据所述服务端私钥和所述第一密码信息得到的;
第二处理模块,用于根据所述目标数据集和所述客户端私钥,得到客户端协商密钥集合;
第一确定模块,用于根据所述客户端协商密钥集合和所述第一服务端协商密钥,确定所述待测密码是否为弱密码。
10.根据权利要求9所述的弱密码检测装置,其特征在于,所述第一处理模块,包括:
第一处理单元,用于将所述待测密码转换为整数值;
第二处理单元,用于将所述整数值映射到椭圆曲线上,得到第一值;
第三处理单元,用于基于椭圆曲线加密算法,根据客户端私钥对所述第一值进行加密处理,得到所述第一密码信息。
11.根据权利要求9所述的弱密码检测装置,其特征在于,所述装置还包括:
第三处理模块,用于根据客户端私钥和N个随机密码,得到N个第三密码信息;N属于正整数;
所述第一发送模块,包括:
第一发送子模块,用于向所述服务端发送第一数据集合和第二数据集合;
其中,所述第一数据集合包括:所述第一密码信息和所述N个第三密码信息;所述第二数据集合包括:所述第一信息和N个第二信息;所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合。
12.根据权利要求11所述的弱密码检测装置,其特征在于,所述第一接收模块,包括:
第一接收子模块,用于接收所述服务端发送的协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和所述第二信息从P个数据集中确定的,所述P个数据集是根据服务端私钥和P个弱密码字典集合得到的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥,所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
13.一种弱密码检测装置,其特征在于,应用于服务端,包括:
第四处理模块,用于根据服务端私钥和P个弱密码字典集合,得到P个数据集,所述数据集与所述弱密码字典集合一一对应,每个所述数据集合包括至少一个第二密码信息;P属于正整数;
第二接收模块,用于接收客户端发送的第一密码信息和第一信息,所述第一信息用于表征待测密码对应的弱密码字典集合;
第二确定模块,用于从P个所述数据集中,确定与所述第一信息对应的目标数据集;
第五处理模块,用于根据服务端私钥和所述第一密码信息,得到第一服务端协商密钥;
第二发送模块,用于向所述客户端发送所述目标数据集和所述第一服务端协商密钥。
14.根据权利要求13所述的弱密码检测装置,其特征在于,所述第四处理模块,包括:
第四处理单元,用于针对每个所述弱密码字典集合,将弱密码字典转换为整数值,并将每个所述整数值映射到椭圆曲线上,得到第二值;
第五处理单元,用于基于椭圆曲线加密算法,根据服务端私钥对所述第二值进行加密处理,得到每个所述第二值对应的所述第二密码信息,获得每个弱密码字典集合对应的一个所述数据集。
15.根据权利要求13所述的弱密码检测装置,其特征在于,所述第二接收模块,包括:
第一接收子模块,用于接收所述客户端发送的第一数据集合和第二数据集合,其中,所述第一数据集合包括:所述第一密码信息和N个第三密码信息,所述N个第三密码信息是客户端私钥和N个随机密码得到的,所述第二数据集合包括:所述第一信息和N个第二信息,所述第二信息与所述随机密码一一对应,所述第二信息用于表征所述随机密码对应的弱密码字典集合;
所述第二发送模块,包括:
第二发送子模块,用于向所述客户端发送协商密钥集合和N+1个目标数据集;
其中,所述N+1个目标数据集是根据所述第一信息和N个所述第二信息从P个所述数据集中确定的;
所述协商密钥集合包括:所述第一服务端协商密钥和N个第二服务端协商密钥;所述N个第二服务端协商密钥是根据服务端私钥和N个所述第三密码信息得到的。
16.根据权利要求13所述的弱密码检测装置,其特征在于,所述装置还包括:
获取模块,用于获取至少M个弱密码字典;M为正整数;
第六处理模块,用于根据所述弱密码字典的哈希值的前n个字节,将所述至少M个弱密码字典的哈希值划分为P个桶;其中,P=16n,一个桶对应一个所述弱密码字典集合,且每个桶内的哈希值个数大于或等于10000。
17.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-4任一项所述的弱密码检测方法的步骤。
18.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求5-8任一项所述的弱密码检测方法的步骤。
19.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-4任一项所述的弱密码检测方法的步骤,或者实现如权利要求5-8任一项所述的弱密码检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310692319.4A CN116647400A (zh) | 2023-06-12 | 2023-06-12 | 弱密码检测方法、装置、电子设备及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310692319.4A CN116647400A (zh) | 2023-06-12 | 2023-06-12 | 弱密码检测方法、装置、电子设备及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116647400A true CN116647400A (zh) | 2023-08-25 |
Family
ID=87639908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310692319.4A Pending CN116647400A (zh) | 2023-06-12 | 2023-06-12 | 弱密码检测方法、装置、电子设备及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116647400A (zh) |
-
2023
- 2023-06-12 CN CN202310692319.4A patent/CN116647400A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chinnasamy et al. | HCAC-EHR: hybrid cryptographic access control for secure EHR retrieval in healthcare cloud | |
AU2018299716B2 (en) | Key attestation statement generation providing device anonymity | |
CN106716914B (zh) | 用于漫游的受保护内容的安全密钥管理 | |
US20200236126A1 (en) | Systems and methods for detection and mitigation of malicious encryption | |
US10992481B2 (en) | Two-dimensional code generation method, apparatus, data processing method, apparatus, and server | |
CN108769027B (zh) | 安全通信方法、装置、移动终端和存储介质 | |
CN109214201B (zh) | 一种数据共享方法、终端设备及计算机可读存储介质 | |
JP2017076839A (ja) | 暗号処理方法、暗号処理装置、および暗号処理プログラム | |
CN107786331B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
Alemami et al. | Cloud data security and various cryptographic algorithms | |
CN113691502A (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
US9641328B1 (en) | Generation of public-private key pairs | |
CN105590040A (zh) | 用于加密数字内容的数字权限管理的方法和系统 | |
CN112469036A (zh) | 一种消息加解密方法、装置、移动终端和存储介质 | |
JP5405658B2 (ja) | リセット可能な耐タンパー性ハードウェアトークンを使用する、効率的な秘匿関数計算の方法 | |
US11968300B2 (en) | Data extraction system, data extraction method, registration apparatus, and program | |
CN113067816A (zh) | 数据加密方法及装置 | |
JP2012080152A (ja) | 暗号化システム、暗号化装置、復号装置、暗号化システムプログラム及び暗号化方法 | |
CN113612597A (zh) | 数据计算方法、装置、系统及电子设备 | |
CN115549906A (zh) | 基于区块链的隐私计算方法、系统、设备和介质 | |
US11496287B2 (en) | Privacy preserving fully homomorphic encryption with circuit verification | |
CN114219055B (zh) | 一种条码生成方法、条码验证方法及支付系统 | |
CN107040370B (zh) | 一种用于产生实施模幂运算的代码的装置 | |
CN116647400A (zh) | 弱密码检测方法、装置、电子设备及服务器 | |
CN115134473B (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 |