本文作者:kaifamei

可抗撞库攻击的密码管理方法、系统及介质

更新时间:2025-12-27 04:19:32 0条评论

可抗撞库攻击的密码管理方法、系统及介质



1.本发明属于密码学安全领域,更具体地,涉及一种可抗撞库攻击的密码管理方法、系统及介质。


背景技术:



2.基于密码加密(password based encryption,pbe)方案由于具有简单易用的特性,成为了当前应用最广的文件加密和身份认证体系。然而,随着信息技术与远程服务的发展,用户持有的密码数量不断增加。出于安全性考虑,通常会期望用户使用多个互不相同的高熵密码,但这样会极大地增加用户的记忆成本。为了解决上述问题,不少安全服务提供商都推出了密码管理方案来帮助用户存储和管理密码。
3.撞库攻击是针对密码管理方案的一种典型攻击方式,其中心思想是利用用户泄露的信息作为蓝本,利用比对攻击威胁密码库安全。假设用户在密码库内存储了某网站的登录密码,结果该网站不幸发生了用户数据泄露,攻击者在获取到该用户的登录密码后,就可以将其作为参照物对用户的密码库进行穷举攻击或字典攻击。
4.现有的诸多密码管理方案的关注重点一般聚焦于系统安全与软件可用性层面,在密文存取方面往往只会采用简单的多轮次密钥派生运算或散列存储技术,这虽然大幅降低了系统复杂度,却也使得其面对撞库攻击时几乎无法提供安全防护。现有密码管理方法针对抗撞库攻击缺少有效解决方案。


技术实现要素:



5.针对现有技术的缺陷和改进需求,本发明提供了一种可抗撞库攻击的密码管理方法、系统及介质,其目的在于提高系统针对撞库攻击的防御能力,增强整体安全性。
6.为实现上述目的,按照本发明的一个方面,提供了一种可抗撞库攻击的密码管理方法,包括:s1,为用户构建初始数据库,向所述初始数据库中填充随机密码块,并为所述随机密码块中的每一随机密码生成相应的域名;s2,根据用户主密码以及用户提供的pin码生成打乱密钥,并利用伪随机置换方法,通过所述打乱密钥打乱所述随机密码块中各随机密码的位置排布,得到混淆密码块;s3,为所述混淆密码块创建多个副本并作为诱饵密码块,利用所述用户主密码对所述混淆密码块进行加密,利用在密码字典中选取的随机主密码对各诱饵密码块分别进行加密,将加密后的混淆密码块和加密后的诱饵密码块作为最终密码库文件进行存储。
7.更进一步地,所述s1包括:s11,生成值在(0,1)区间的第一随机数,若所述第一随机数大于设定的采样概率,在公开密码字典中随机采样得到随机密码,否则,执行s12;s12,生成值在[6,18]区间的第二随机数,在ascii可显字符表中随机采样,得到长度为所述第二随机数的随机密码;s13,重复执行l次所述s11-s12,l为所述初始数据库中的规模参数;s14,为每一随机密码生成相应的域名。
[0008]
更进一步地,所述s14包括:在域名字典中选取访问量最高的l个域名,对选取的l
个域名进行散列计算,并将散列计算后的域名作为相应随机密码的索引。
[0009]
更进一步地,所述混淆密码块为:
[0010]btrue

prp(b,ks)
[0011]ks

prg(hash(mpw,pin),l)
[0012]
其中,b
true
为所述混淆密码块,b为所述随机密码块,ks为所述打乱密钥,mpw为所述用户主密码,pin为用户提供的pin码,l为所述初始数据库中的规模参数,prp()为伪随机置换函数,hash()为哈希函数,prg()为伪随机数生成函数。
[0013]
更进一步地,所述s3包括:s31,为所述混淆密码块创建多个副本作为诱饵密码块,并为混淆密码块和各诱饵密码块赋予互不相同的编号;s32,利用所述用户主密码生成第一加密密钥,基于所述第一加密密钥对所述混淆密码块进行对称加密;s33,利用在密码字典中选取的随机主密码生成第二加密密钥,基于所述第二加密密钥对相应的诱饵密码块进行对称加密;s34,将加密后的混淆密码块和加密后的诱饵密码块按照编号顺序排布,得到最终密码库文件并进行存储。
[0014]
更进一步地,所述s31中编号的范围为[0,t-1],混淆密码块的编号为:
[0015]
truenum=hash(mpw)%t
[0016]
编号为j的诱饵密码块相应的随机主密码满足:
[0017]
j=hash(mpwj)%t
[0018]
其中,truenum为混淆密码块的编号,hash()为哈希函数,mpw为所述用户主密码,mpwj为在密码字典中选取的随机主密码,%为取余运算,t为混淆密码块和诱饵密码块的总数量。
[0019]
更进一步地,还包括:当需要修改密文时,在本地进行密文更新操作后,将更新后的密文和相应的域名发送至服务端,使得服务端根据接收到的域名将相应密码块处的密文修改为更新后的密文。
[0020]
更进一步地,多设备环境下,所述多设备环境包括服务端和多个客户端,所述方法还包括:当客户端修改用户数据时,将其时间戳cliver更新为当前时间戳;服务端定时检查当前用户注册过的客户端的时间戳,基于最大时间戳对应客户端的数据进行数据备份,并将备份后的数据同步给其它客户端进行备份。
[0021]
按照本发明的另一个方面,提供了一种可抗撞库攻击的密码管理系统,包括:密码填充模块,用于为用户构建初始数据库,向所述初始数据库中填充随机密码块,并为所述随机密码块中的每一随机密码生成相应的域名;逻辑膨胀模块,用于根据用户主密码以及用户提供的pin码生成打乱密钥,并利用伪随机置换方法,通过所述打乱密钥打乱所述随机密码块中各随机密码的位置排布,得到混淆密码块;物理膨胀模块,用于为所述混淆密码块创建多个副本并作为诱饵密码块,利用所述用户主密码对所述混淆密码块进行加密,利用在密码字典中选取的随机主密码对各诱饵密码块分别进行加密,将加密后的混淆密码块和加密后的诱饵密码块作为最终密码库文件进行存储。
[0022]
按照本发明的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上所述的可抗撞库攻击的密码管理方法。
[0023]
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
[0024]
(1)基于膨胀思想,打乱域名和密码之间的对应关系,通过数据拷贝的方式创建大量的诱饵密码块,由此使得即使攻击者拥有参照信息的情况下,也被迫要在多个诱饵密文集合和多个域名-密码对应关系中出唯一正确的一个,在保证存储成本和运算成本可接受的前提下,大大增加了密码管理系统对于撞库攻击的抵抗能力,提高了系统安全性;
[0025]
(2)设计了完整的服务端/客户端架构,将密码管理方法从简单的本地环境拓展至多机环境,提供了多设备间的备份与同步服务,同时关注了服务端系统安全,保证服务端无法获取不必要的敏感信息,在保证系统整体安全的前提下,大大增强了方案的可用性和易用性。
附图说明
[0026]
图1为本发明实施例提供的可抗撞库攻击的密码管理方法的流程图;
[0027]
图2为本发明实施例提供的密码管理本地方案的数据库构造流程图;
[0028]
图3为图2所示密码管理本地方案中密码填充步骤的流程示意图;
[0029]
图4为图2所示密码管理本地方案中逻辑膨胀步骤的流程示意图;
[0030]
图5为图2所示密码管理本地方案中物理膨胀步骤的流程示意图;
[0031]
图6为本发明实施例提供的密码管理在线方案的框架示意图;
[0032]
图7为图6所示密码管理在线方案中服务端密文修改流程示意图;
[0033]
图8为图6所示密码管理在线方案中服务端文件备份流程示意图;
[0034]
图9为本发明实施例提供的可抗撞库攻击的密码管理系统的框图。
具体实施方式
[0035]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0036]
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0037]
图1为本发明实施例提供的可抗撞库攻击的密码管理方法的流程图。参阅图1,结合图2-图8,对本实施例中可抗撞库攻击的密码管理方法进行详细说明,方法包括操作s1-操作s3。
[0038]
本实施例中可抗撞库攻击的密码管理方法包括本地方案。本地方案如图2所示,其目的在于为用户构建一个密码数据库,并采取安全性手段保证用户数据不会在离线环境下受到撞库攻击的威胁。同时,本地方案设计了密码数据库的数据存取方式,包括数据查询方式和数据更新方式,保证用户的数据存取操作不会造成额外的安全隐患。本地方案包括操作s1-操作s3,分别对应图2中示出的密码填充步骤、逻辑膨胀步骤和物理膨胀步骤。
[0039]
操作s1,为用户构建初始数据库,向初始数据库中填充随机密码块,并为随机密码块中的每一随机密码生成相应的域名。
[0040]
操作s1对应图3中示出的密码填充步骤,即向用户的初始数据库内填充随机密码,以实现明文熵均匀,防止攻击者通过对密码明文的消息分布进行统计分析攻击。同时,还会
创建一个与数据库相同规模的域名表,作为密码数据的索引。
[0041]
具体地,密码填充步骤借由公开密码字典采样与随机字符串生成两种方式,为用户生成初始密码数据库,同时生成一个与数据库相同规模的域名列表,作为索引使用。为保证攻击者无法以两种方式生成密码的比值来区分真伪数据库,对于每一个密码项,以采样概率sp来决定使用何种方式生成。
[0042]
本发明实施例中,借助对称加密方案se=(encrypt,decrypt)来实现数据加密。在构造中使用到的密码学工具包括:伪随机数生成器prg:{0,1}
*

{0,1}
*
以及伪随机置换prp:{0,1}
λ
×
{0,1}
*

{0,1}
λ

[0043]
参阅图3,根据本发明的实施例,操作s1包括子操作s11-子操作s14。
[0044]
在子操作s11中,生成值在(0,1)区间的第一随机数,若第一随机数大于设定的采样概率sp,在公开密码字典中随机采样得到随机密码,否则,执行子操作s12。
[0045]
在子操作s12中,生成值在[6,18]区间的第二随机数,在ascii可显字符表中随机采样,得到长度为第二随机数的随机密码。
[0046]
在子操作s13中,重复执行l次子操作s11-子操作s12,l为初始数据库中的规模参数。通过上述子操作,得到l个随机密码形成的随机密码集合pw={pw1,...,pw
l
},该集合记为初始的随机密码块b,填充至初始数据库中。
[0047]
在子操作s14中,为每一随机密码生成相应的域名。
[0048]
根据本发明的实施例,子操作s14包括:在域名字典中选取访问量最高的l个域名,对选取的l个域名进行散列计算,并将散列计算后的域名作为相应随机密码的索引。
[0049]
具体地,例如采用sha-156算法对选取的l个域名进行散列计算,得到的结果为域名表d,域名表d中的每一个域名散列值为域名,记为di,1≤i≤l。域名表d作为随机密码块b的索引使用,索引di与随机密码pwi一一对应。初始的随机密码块b与域名表d共同作为密码填充步骤的输出。
[0050]
操作s2,根据用户主密码以及用户提供的pin码生成打乱密钥,并利用伪随机置换方法,通过打乱密钥打乱随机密码块中各随机密码的位置排布,得到混淆密码块。
[0051]
操作s2对应图4中示出的逻辑膨胀步骤,则是利用伪随机置换方法,对域名和密码之间的对应关系进行打乱。该步骤会要求用户额外提供一个pin码,如6位十进制pin码,以此生成打乱密钥来混淆不同密码项之间的相对位置。这使得攻击者即使还原出了正确的主密码,也必须使用在线验证来确认真实的pin码,只有出唯一正确的pin码才能还原真实的对应关系。
[0052]
根据本发明的实施例,打乱后得到的混淆密码块为:
[0053]btrue

prp(b,ks)
[0054]ks

prg(hash(mpw,pin),l)
[0055]
其中,b
true
为混淆密码块,b为随机密码块,ks为打乱密钥,mpw为用户主密码,pin为用户提供的pin码,l为初始数据库中的规模参数,prp()为伪随机置换函数,hash()为哈希函数,prg()为伪随机数生成函数。
[0056]
逻辑膨胀步骤的意义在于,即使攻击者还原了正确的主密码,即在解密结果中发现了已泄露的密码明文,也必须额外对pin码进行穷举,以还原出正确的打乱方法,使得泄露密码与泄露域名保持对应。
[0057]
操作s3,为混淆密码块创建多个副本并作为诱饵密码块,利用用户主密码对混淆密码块进行加密,利用在密码字典中选取的随机主密码对各诱饵密码块分别进行加密,将加密后的混淆密码块和加密后的诱饵密码块作为最终密码库文件进行存储。
[0058]
操作s3对应图5中示出的物理膨胀步骤,即通过数据拷贝的方式,对用户的原始数据创建大量副本,每一个副本使用不同的主密码进行加密,从而保证攻击者在尝试还原主密码时,会有多个主密码的解密结果中包含泄露信息,使得攻击者必须使用线上验证来确认真实主密码,攻击者必须出唯一正确的主密码才能还原用户数据。
[0059]
根据本发明的实施例,操作s3包括子操作s31-子操作s34。
[0060]
在子操作s31中,为混淆密码块创建多个副本作为诱饵密码块,并为混淆密码块和各诱饵密码块赋予互不相同的编号。
[0061]
具体地,将逻辑膨胀步骤输出的混淆密码块b
true
拷贝t-1份,拷贝得到的副本统称作诱饵密码块,记作b
decoy
。对b
true
与所有b
decoy
在[0,t-1]范围内赋予不重复编号,且b
true
的编号值truenum满足:
[0062]
truenum=hash(mpw)%t
[0063]
编号后的密码块集合记作bb={b0,...,b
t-1
}。对密码块集合bb执行子操作s32-子操作s33中示出的加密操作。
[0064]
在子操作s32中,利用用户主密码mpw生成第一加密密钥k
truenum
,基于第一加密密钥对混淆密码块b
truenum
进行对称加密,加密后的混淆密码块为:
[0065]
benc
truenum
=encrypt(b
truenum
,k
truenum
)
[0066]
在子操作s33中,利用在密码字典中选取的随机主密码mpwj生成第二加密密钥kj,基于第二加密密钥kj对相应的诱饵密码块bj(j≠truenum)进行对称加密,加密后的诱饵密码块bencj为:
[0067]
bencj={c1,...,c
l
}
[0068]cj
=encrypt(pwj,kj)
[0069]
根据本发明的实施例,编号为j的诱饵密码块相应的随机主密码mpwj满足:
[0070]
j=hash(mpwj)%t
[0071]
其中,%为取余运算,t为混淆密码块和诱饵密码块的总数量,即膨胀系数。
[0072]
在子操作s34中,将加密后的混淆密码块和加密后的诱饵密码块按照编号顺序排布,得到最终密码库文件并进行存储。最终的密码库文件bbenc为:
[0073]
bbenc={benc0,...,benc
t-1
}
[0074]
物理膨胀过程的意义在于保证所有的密码块bj中都包含有攻击者掌握的泄露密码项,对不同的bj使用不同的密钥加密后能保证攻击者在尝试还原主密码mpw时,会发现至少存在t个不同的主密码,其解密结果中均包含泄露密码,此时攻击者需要从t个主密码中出唯一正确的一个。
[0075]
将物理膨胀和逻辑膨胀组合使用,会使得攻击者的在线验证次数以“乘法效应”成倍增加,导致攻击行为更容易被在线检测,或是直接被访问控制机制拦截,从而极大地增加攻击成本,降低攻击成功概率,提升用户数据的安全性。
[0076]
本实施例中可抗撞库攻击的密码管理方法还可以包括在线方案,如图6所示。在线方案对本地方案进行了功能封装,进一步提出了一个由客户端和服务端构成的在线架构模
型。通过此模型,在线方案能为用户提供多设备场景下的数据备份与同步功能,提升方案的整体可用性。需要注意的是,为了保证离线数据安全,服务端不获取用户的隐私数据,也不进行具体的数据运算操作。
[0077]
参阅图6,在线方案的整体架构包含两个参与方:客户端与服务端。客户端对本地方案进行功能封装,对用户提供交互接口,负责在本地对用户数据进行运算和存储。服务端与客户端直接交互,主要进行数据的存储与同步。为保证数据安全,服务端不获取任何用户敏感信息,仅通过访问控制模式验证用户身份,进行简单的数据运算,提供服务端数据的修改和用户数据的定期备份与同步服务。
[0078]
在线方案定义客户端与服务端之间的两种交互功能:密文修改功能和文件备份功能。
[0079]
密文修改功能是指,当用户进行小规模数据更新,即只修改部分密文内容,而不改变整体内容的排布顺序时,客户端在完成本地内容修改后,只需将更新后的密文和更新位置告知服务端,由服务端修改在线密文数据即可。
[0080]
具体地,根据本发明的实施例,当需要修改密文时,在本地进行密文更新操作后,将更新后的密文和相应的域名发送至服务端,使得服务端根据接收到的域名将相应密码块处的密文修改为更新后的密文。
[0081]
参阅图7,示出了在线方案中密文修改功能的过程,具体操作如下:
[0082]
1)客户端在本地执行数据更新操作,并将更新后的密文和索引告知服务端,对于0≤i<t,有:
[0083]
ind

d.index(dm)
[0084]
pwupdate(pw,dm,mpw,pin)
[0085]ci

bbenci[ind]
[0086]
客户端将密文集合c={c0,c1,...,c
t-1
}和索引ind发送给服务端。
[0087]
2)服务端修改在线数据,对于0≤i<t,将加密密码块bbenci的对应位置密文修改为ci:
[0088]
bbenci[ind]
←ci
[0089]
在密文修改过程中,服务端不允许获知实际修改的域名dm和密码pw,否则服务端将有能力利用dm和index计算出pin码,或利用pw和密文集合c通过对照攻击还原出加密密钥ki。
[0090]
文件备份功能是指,当用户进行大规模数据更新,即修改了数据库的规模,需要对数据库重新执行膨胀操作时,由于服务端不执行运算操作,此时需进行文件备份操作,将本地数据上传至服务端,直接替换在线数据。
[0091]
具体地,根据本发明的实施例,当客户端修改用户数据时,将其时间戳cliver更新为当前时间戳;服务端定时检查当前用户注册过的客户端的时间戳,基于最大时间戳对应客户端的数据进行数据备份,并将备份后的数据同步给其它客户端进行备份。
[0092]
为保证双端数据一致性,客户端和服务端分别维护一个时间戳,记作cliver和srvver。当客户端对用户数据进行修改时,则将cliver更新为当前时间戳;当服务端发起定期沟通时检查cliver与srvver是否一致,若一致则结束沟通,否则进行文件备份操作。
[0093]
在多设备环境下,用户可能使用多个客户端与服务端交互,进行定期沟通时,服务
端会轮询当前用户所有注册过的客户端,并检查相应的客户端时间戳cliver。服务端选择cliver中的最大值对应的客户端进行数据备份,并将备份后的数据同步给其他客户端。
[0094]
参阅图8,示出了在线方案中文件备份功能的过程,具体操作如下:
[0095]
1)客户端更新本地数据,并修改客户端版本号:
[0096]
pwupdate(pw,dm,mpw,pin)
[0097]
cliver

currenttimestamp()
[0098]
其中,pwupdate()为本地数据更新操作。
[0099]
2)服务端轮询所有客户端,假设客户端数量为s
cli
,对于1≤i≤s
cli

[0100]
srvver

max(srvver,cliveri)
[0101]
3)假设用户dte模型文件为model,密文文件为bbenc,域名表为d。假设cliver最大的客户端编号为n,则服务端备份客户端clientn的数据:
[0102]
server.model

clientn.model
[0103]
server.bbenc

clientn.bbenc
[0104]
server.d

clientn.d
[0105]
4)对于其他所有客户端,服务端将在线文件备份至客户端本地,对于i∈[1,s
cli
]/n,有:
[0106]
clienti.model

server.model
[0107]
clienti.bbenc

server.bbenc
[0108]
clienti.d

server.d
[0109]
clienti.cliver

srvver
[0110]
当用户使用新设备登录时,置cliver为零,再执行文件备份操作,下载在线数据并更新cliver即可。
[0111]
图9为本发明实施例提供的可抗撞库攻击的密码管理系统的框图。参阅图9,该可抗撞库攻击的密码管理系统900包括密码填充模块910、逻辑膨胀模块920以及物理膨胀模块930。
[0112]
密码填充模块910例如执行操作s1,用于为用户构建初始数据库,向初始数据库中填充随机密码块,并为随机密码块中的每一随机密码生成相应的域名。
[0113]
逻辑膨胀模块920例如执行操作s2,用于根据用户主密码以及用户提供的pin码生成打乱密钥,并利用伪随机置换方法,通过打乱密钥打乱随机密码块中各随机密码的位置排布,得到混淆密码块。
[0114]
物理膨胀模块930例如执行操作s3,用于为混淆密码块创建多个副本并作为诱饵密码块,利用用户主密码对混淆密码块进行加密,利用在密码字典中选取的随机主密码对各诱饵密码块分别进行加密,将加密后的混淆密码块和加密后的诱饵密码块作为最终密码库文件进行存储。
[0115]
可抗撞库攻击的密码管理系统900用于执行上述图1-图8所示实施例中的可抗撞库攻击的密码管理方法。本实施例未尽之细节,请参阅前述图1-图8所示实施例中的可抗撞库攻击的密码管理方法,此处不再赘述。
[0116]
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述图1-图8所示实施例中的可抗撞库攻击的密码管理方法。
[0117]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种可抗撞库攻击的密码管理方法,其特征在于,包括:s1,为用户构建初始数据库,向所述初始数据库中填充随机密码块,并为所述随机密码块中的每一随机密码生成相应的域名;s2,根据用户主密码以及用户提供的pin码生成打乱密钥,并利用伪随机置换方法,通过所述打乱密钥打乱所述随机密码块中各随机密码的位置排布,得到混淆密码块;s3,为所述混淆密码块创建多个副本并作为诱饵密码块,利用所述用户主密码对所述混淆密码块进行加密,利用在密码字典中选取的随机主密码对各诱饵密码块分别进行加密,将加密后的混淆密码块和加密后的诱饵密码块作为最终密码库文件进行存储。2.如权利要求1所述的可抗撞库攻击的密码管理方法,其特征在于,所述s1包括:s11,生成值在(0,1)区间的第一随机数,若所述第一随机数大于设定的采样概率,在公开密码字典中随机采样得到随机密码,否则,执行s12;s12,生成值在[6,18]区间的第二随机数,在ascii可显字符表中随机采样,得到长度为所述第二随机数的随机密码;s13,重复执行l次所述s11-s12,l为所述初始数据库中的规模参数;s14,为每一随机密码生成相应的域名。3.如权利要求2所述的可抗撞库攻击的密码管理方法,其特征在于,所述s14包括:在域名字典中选取访问量最高的l个域名,对选取的l个域名进行散列计算,并将散列计算后的域名作为相应随机密码的索引。4.如权利要求1所述的可抗撞库攻击的密码管理方法,其特征在于,所述混淆密码块为:b
true

prp(b,k
s
)k
s

prg(hash(mpw,pin),l)其中,b
true
为所述混淆密码块,b为所述随机密码块,k
s
为所述打乱密钥,mpw为所述用户主密码,pin为用户提供的pin码,l为所述初始数据库中的规模参数,prp()为伪随机置换函数,hash()为哈希函数,prg()为伪随机数生成函数。5.如权利要求1所述的可抗撞库攻击的密码管理方法,其特征在于,所述s3包括:s31,为所述混淆密码块创建多个副本作为诱饵密码块,并为混淆密码块和各诱饵密码块赋予互不相同的编号;s32,利用所述用户主密码生成第一加密密钥,基于所述第一加密密钥对所述混淆密码块进行对称加密;s33,利用在密码字典中选取的随机主密码生成第二加密密钥,基于所述第二加密密钥对相应的诱饵密码块进行对称加密;s34,将加密后的混淆密码块和加密后的诱饵密码块按照编号顺序排布,得到最终密码库文件并进行存储。6.如权利要求5所述的可抗撞库攻击的密码管理方法,其特征在于,所述s31中编号的范围为[0,t-1],混淆密码块的编号为:truenum=hash(mpw)%t编号为j的诱饵密码块相应的随机主密码满足:j=hash(mpw
j
)%t
其中,truenum为混淆密码块的编号,hash()为哈希函数,mpw为所述用户主密码,mpw
j
为在密码字典中选取的随机主密码,%为取余运算,t为混淆密码块和诱饵密码块的总数量。7.如权利要求1-6任一项所述的可抗撞库攻击的密码管理方法,其特征在于,还包括:当需要修改密文时,在本地进行密文更新操作后,将更新后的密文和相应的域名发送至服务端,使得服务端根据接收到的域名将相应密码块处的密文修改为更新后的密文。8.如权利要求1-6任一项所述的可抗撞库攻击的密码管理方法,其特征在于,多设备环境下,所述多设备环境包括服务端和多个客户端,所述方法还包括:当客户端修改用户数据时,将其时间戳cliver更新为当前时间戳;服务端定时检查当前用户注册过的客户端的时间戳,基于最大时间戳对应客户端的数据进行数据备份,并将备份后的数据同步给其它客户端进行备份。9.一种可抗撞库攻击的密码管理系统,其特征在于,包括:密码填充模块,用于为用户构建初始数据库,向所述初始数据库中填充随机密码块,并为所述随机密码块中的每一随机密码生成相应的域名;逻辑膨胀模块,用于根据用户主密码以及用户提供的pin码生成打乱密钥,并利用伪随机置换方法,通过所述打乱密钥打乱所述随机密码块中各随机密码的位置排布,得到混淆密码块;物理膨胀模块,用于为所述混淆密码块创建多个副本并作为诱饵密码块,利用所述用户主密码对所述混淆密码块进行加密,利用在密码字典中选取的随机主密码对各诱饵密码块分别进行加密,将加密后的混淆密码块和加密后的诱饵密码块作为最终密码库文件进行存储。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一项所述的可抗撞库攻击的密码管理方法。

技术总结


本发明公开了一种可抗撞库攻击的密码管理方法、系统及介质,属于密码学安全领域,方法包括:向初始数据库中填充随机密码块,并为随机密码块中的每一随机密码生成相应的域名;根据用户主密码以及用户提供的pin码生成打乱密钥,并利用伪随机置换方法,通过打乱密钥打乱随机密码块中各随机密码的位置排布,得到混淆密码块;为混淆密码块创建多个副本并作为诱饵密码块,利用用户主密码对混淆密码块进行加密,利用在密码字典中选取的随机主密码对各诱饵密码块分别进行加密,将加密后的混淆密码块和加密后的诱饵密码块作为最终密码库文件进行存储。针对系统可能遭遇撞库攻击威胁,增加攻击者的攻击成本,从而提高系统针对撞库攻击的防御能力。的防御能力。的防御能力。


技术研发人员:

王蔚 黄啸尘 徐鹏 杨天若 孙斌

受保护的技术使用者:

华中科技大学

技术研发日:

2022.08.16

技术公布日:

2022/12/8


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-45796-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-18 02:01:25

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论