安全云口令管理器控制系统、控制方法、设备及存储介质
技术领域
本发明属于安全认证技术领域,尤其涉及一种安全云口令管理器控制系统与控制方法。
背景技术
目前,口令是最广泛使用的身份认证方式。随着互联网广泛普及,近些年不断涌现出不断发展壮大的互联网公司,软件的数量也在与日俱增。这使得人们日常口令的记忆与管理负担随着使用的软件数量增多变得日益繁重。常见的模式是用户为每个网站或者系统选择一个用户名和口令,但是由于人类记忆限制,用户往往更倾向于采用简易的口令并且在多个系统之间重用同一个口令,这些现象导致了口令认证的安全性降低。对口令的攻击方式主要包括在线也离线猜测攻击,如果用户重用或者部分重用口令,那么攻击者也可以从已经破解的一个口令数据库来猜测同一用户在其他口令数据库中的口令。在口令数据库中存储是口令和盐的哈希值,虽然哈希函数是单向函数,并具有抗冲突性,但攻击者如果通过某种方式获得口令数据库,就可以执行离线猜测的方式以概率降序的方式猜测口令,如果用户的口令不是足够的强大,攻击者能够在很短时间内猜出用户的口令。为了提高口令安全性,至少应满足两个条件,一是用户选择的口令足够强,以致能够抵抗离线猜测,学术界认为强口令至少能够抵抗10^14次猜测。二是,用户为每个网站或者系统选择的强口令都不同。显然只依靠人类的记忆是无法满足这两个条件。为此,学者们开始设计口令管理器,口令管理器是帮忙人类记忆不同网站的账户和口令。在口令管理器中存储了用户为不同网站选择的用户名和口令,用户在登陆网站时,只需打开口令管理器,口令管理器能够自动输入网站的账户和口令。由于不需要人类记忆这些口令,所以使用口令管理器时,人类可以自己选择强口令或者由口令管理器帮助选择随机口令。口令管理器在提高口令安全性方面具有明显的优势。为了提升口令管理器使用的便捷性,学者们又设计了云口令管理器,这样用户可以随时随地访问云来获取登陆网站所使用的口令,但是云口令管理器面临的最大问题是自身的安全性问题,如果云口令管理器被破解,那么用户所有的口令将被泄漏。
口令管理器大致分为三类,第一类是本地口令管理器,如在浏览器中内置口令管理器,或者将口令管理器存储在本地文件中。本地口令管理器的弱点是很容易被攻击。第二类是基于云的口令管理器。这类口令管理器是将用户的账户和口令存储在单个云端,并使用一个主口令加密口令管理器。主口令由用户选择并记忆,每次使用口令管理器时,用户需要输入主口令以进行加密或者解密口令管理器。这类口令管理器的优点是口令管理简单,但缺点是用户选择的主口令常常是容易记忆的弱口令,用弱主口令加密口令管理器很容易被实施离线字典猜测攻击,因而攻击者可以用破解的主口令解密云口令管理器,获取用户所有账户的口令。第三类是基于多云的口令管理器,这类口令管理器是使用秘密共享技术将用户的账户和口令分散存储在多个云上,这种方式明显提升了安全性,但是存在完整性和可靠性问题,当某些分散到某些云端的秘密被修改,将无法恢复用户的口令。
从上面分析可以看到,目前的口令管理器要么存在便捷性问题,要么存在安全性问题,如容易被执行离线字典猜测攻击或者存在可靠性问题,另外,由于上述方法中只存储了用户的账户和口令,也容易被执行钓鱼攻击。
通过上述分析,现有技术存在的问题及缺陷为:目前的口令管理器使用不够便捷,安全性不高,容易被执行离线字典猜测攻击;同时可靠性不高,且只存储用户的账户和口令,容易被执行钓鱼攻击。
解决以上问题及缺陷的难度为:首先需要保证云口令管理器自身安全和用户的方便性。云口令管理器不应该使用用户的主口令直接加密/解密,而应该使用足够强的口令加密/解密云口令管理器;同时为了提高可用性,用户只需记忆一个一般强度的主口令,就能产生强大的密钥加密/解密口令管理器,而攻击者即使破解了主口令,也无法解密云口令管理器。其次,要能够抵抗攻击者对用户的各种账户执行离线攻击和钓鱼攻击。
解决以上问题及缺陷的意义为:口令是目前使用最广的认证方式,口令认证是信息安全的第一道屏障。本发明提出的方法具有很好的安全性和可用性,用户只需用户记忆一般强度的主口令,就能为各种账户产生任意强度的口令,从而能够抵抗各种攻击。
发明内容
针对现有技术存在的问题,本发明提供了一种安全云口令管理器控制系统与控制方法。
本发明是这样实现的,一种安全云口令管理器控制系统与控制方法,所述安全云口令管理器控制系统包括:
口令管理器,用于存储某个用户登陆所有注册网站和系统的用户名和口令;
云端,用于存储口令管理器;
移动设备,使用秘密参数,在不知道用户主口令情况下与用户执行茫然伪随机协议,产生用于加密或者解密口令管理器的随机化主口令;
服务器,用户需要访问网站和系统提供的服务,必须在该网站和系统的服务器中进行登陆认证。服务器中存储了所有用户的用户名和对应的口令;
客户端,用户在客户端调用云口令管理器,并要求输入主口令;同时与移动设备执行茫然伪随机协议,产生用于加密或者解密口令管理器的随机化主口令。
本发明的另一目的在于提供一种应用于所述安全云口令管理器控制系统的安全云口令管理器控制方法,所述安全云口令管理器控制方法包括:
步骤一,用户进行初始化设置。为云口令管理器选择一个主口令mpw,为移动设备选择一个秘密参数k,在客户端和移动设备之间执行茫然伪随机协议,产生一个随机化主口令rmpw;其中,rmpw=Fk(mpw);
步骤二,为注册账户Ui选择任意强度的口令rpwi,并将注册的用户名和用户名对应的域名化口令存储在口令管理器中,同时利用产生的随机化主口令rmpw加密口令管理器,并将加密后的口令管理器存储在云端;
步骤三,服务器为每个用户账户产生一个随机盐si,并在数据库中为每个用户存储(Ui,h(h(rpwi||dni)||si))对;注册完成;
步骤四,用户在客户端调用云端的口令管理器,输入主口令mpw,进行登录;
步骤五,在客户端和移动设备之间执行茫然伪随机协议,计算随机化主口令rmpw,用随机化主口令解密口令管理器;其中rmpw=Fk(mpw);
步骤六,通过口令管理器帮助自动输入登陆网站的用户名Ui和口令h(rpwi||dni);
步骤七,服务器查找是否存在用户名Ui,如果不存在,返回该用户不存在;如果该用户名存在,查找该用户所对应的盐si,计算h(h(rpwi||dni)||si),与存储的该值进行对比,如果相等,认证成功。
进一步,步骤二中,所述为注册账户选择口令的方法包括:
第一,机器辅助用户选择方式;即云口令管理器显示包括大小写字母、数字、特殊符号的口令组成字符和长度选项,用户通过对显示的口令组成字符与长度进行选择,组成自己的口令;
第二,随机生成口令方式;即口令管理器直接为用户生成随机口令。
进一步,步骤二中,所述将注册的用户名和用户名对应的域名化口令存储在口令管理器中包括:
存储格式为:(Ui,h(rpwi||dni));
其中Ui为用户名,h()是密码学中的哈希函数,rpwi为用户选择的强口令或者随机口令,dni是网站的域名,h(rpwi||dni)是域名化口令。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
步骤1,用户进行初始化设置。为云口令管理器选择一个主口令mpw,为移动设备选择一个秘密参数k,在客户端和移动设备之间执行茫然伪随机协议,产生一个随机化主口令rmpw;
步骤2,为注册账户Ui选择任意强度的口令rpwi,并将注册的用户名和用户名对应的域名化口令存储在口令管理器中,同时利用产生的随机化主口令rmpw加密口令管理器,并将加密后的口令管理器存储在云端;
步骤3,服务器为每个用户账户产生一个随机盐si,并在数据库中为每个用户存储(Ui,h(h(rpwi||dni)||si))对;注册完成;
步骤4,用户在客户端调用云端的口令管理器,输入主口令mpw,进行登录;
步骤5,在客户端和移动设备之间执行茫然伪随机协议,计算随机化主口令rmpw,用随机化主口令解密口令管理器;
步骤6,通过口令管理器帮助自动输入登陆网站的用户名Ui和口令h(rpwi||dni);
步骤7,服务器查找是否存在用户名Ui,如果不存在,返回该用户不存在;如果该用户名存在,查找该用户所对应的盐si,计算h(h(rpwi||dni)||si),与存储的该值进行对比,如果相等,认证成功。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
用户进行初始化设置。为云口令管理器选择一个主口令mpw,为移动设备选择一个秘密参数k,在客户端和移动设备之间执行茫然伪随机协议,产生一个随机化主口令rmpw;
为注册账户Ui选择任意强度的口令rpwi,并将注册的用户名和用户名对应的域名化口令存储在口令管理器中,同时利用产生的随机化主口令rmpw加密口令管理器,并将加密后的口令管理器存储在云端;
服务器为每个用户账户产生一个随机盐si,并在数据库中为每个用户存储(Ui,h(h(rpwi||dni)||si))对;注册完成;
用户在客户端调用云端的口令管理器,输入主口令mpw,进行登录;
在客户端和移动设备之间执行茫然伪随机协议,计算随机化主口令rmpw,用随机化主口令解密口令管理器;
通过口令管理器帮助自动输入登陆网站的用户名Ui和口令h(rpwi||dni);
服务器查找是否存在用户名Ui,如果不存在,返回该用户不存在;如果该用户名存在,查找该用户所对应的盐si,计算h(h(rpwi||dni)||si),与存储的该值进行对比,如果相等,认证成功。
本发明的另一目的在于提供一种实施所述安全云口令管理器控制方法的口令管理器。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明使用用户的移动设备盲计算用户的主口令,扩展为一个足够强的随机化主口令,再使用随机化主口令加密口令管理器存储到云端,因而能够阻止攻击者对云口令管理器执行离线字典猜测攻击。另外,在口令管理器中,每个用户账户绑定了网站域名,攻击者也不能执行钓鱼攻击,有效提高了通信的安全性、可靠性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的安全云口令管理器控制系统结构示意图;
图中:1、口令管理器;2、云端;3、移动设备;4、服务器;5、客户端。
图2是本发明实施例提供的安全云口令管理器控制系统原理图。
图3是本发明实施例提供的安全云口令管理器控制方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种安全云口令管理器控制系统与控制方法,下面结合附图对本发明作详细的描述。
如图1-图2所示,本发明实施例提供的安全云口令管理器控制系统包括:
口令管理器1、云端2、移动设备3、服务器4、客户端5;
口令管理器1,用于存储用户登陆所有注册网站和系统的用户名和口令;
云端2,用于存储口令管理器1;
移动设备3,利用一个秘密参数,在不知道用户主口令情况下,与客户端执行茫然伪随机协议,产生用于加密或者解密口令管理器1的随机化主口令;
服务器4,用于存储所有注册用户的用户名和口令,并执行口令认证;
客户端5,用于用户调用云口令管理器,并要求输入主口令;用户输入主口令后,客户端与移动设备执行茫然伪随机协议,产生用于加密或者解密口令管理器1的随机化主口令。
如图3所示,本发明实施例提供的安全云口令管理器控制方法包括:
S101,用户进行初始化设置。为云口令管理器选择一个主口令mpw,为移动设备选择一个秘密参数k,在客户端和移动设备之间执行茫然伪随机协议,产生一个随机化主口令rmpw;其中,rmpw=Fk(mpw)。
S102,为注册账户Ui选择任意强度的口令rpwi,并将注册的用户名和用户名对应的域名化口令存储在口令管理器中,同时利用产生的随机化主口令rmpw加密口令管理器,并将加密后的口令管理器存储在云端。
S103,服务器为每个用户账户产生一个随机盐si,并在数据库中为每个用户存储(Ui,h(h(rpwi||dni)||si))对;注册完成。
S104,用户在客户端调用云端的口令管理器,输入主口令mpw,进行登录。
S105,在客户端和移动设备之间执行茫然伪随机协议,计算随机化主口令rmpw,用随机化主口令解密口令管理器;其中rmpw=Fk(mpw)。
S106,通过口令管理器帮助自动输入登陆网站的用户名Ui和口令h(rpwi||dni)。
S107,服务器查找是否存在用户名Ui,如果不存在,返回该用户不存在;如果该用户名存在,查找该用户所对应的盐si,计算h(h(rpwi||dni)||si),与存储的该值进行对比,如果相等,认证成功。
步骤S102中,本发明实施例提供的为注册账户选择口令的方法包括:
第一,机器辅助用户选择方式;即云口令管理器显示包括大小写字母、数字、特殊符号的口令组成字符和长度选项,用户通过对显示的口令组成字符与长度进行选择,组成自己的口令;
第二,随机生成口令方式;即口令管理器直接为用户生成随机口令。
步骤S102中,本发明实施例提供的将注册的用户名和用户名对应的域名化口令存储在口令管理器中包括:
存储格式为:(Ui,h(rpwi||dni));
其中Ui为用户名,h()是密码学中的哈希函数,rpwi为用户选择的强口令或者随机口令,dni是网站的域名,h(rpwi||dni)是域名化口令。
下面结合具体实施例对本发明的技术方案作进一步说明。
实施例1:
口令管理器-用于存储用户的各种账户的用户名和对应的口令,由于不需要用户记忆,这些存储的口令可以是任意强度的口令。主口令-用户唯一需要记忆的口令,主口令是一般强度的口令,只需要能够抵抗在线猜测攻击。随机化主口令-由用户的移动设备对主口令进行盲计算扩展,生成的随机口令。随机化主口令具有足够强度的。
茫然伪随机函数-是双方(发送方和接收方)安全计算Fk(x)的一个协议,其中k和x分别是发送方和接收方的输入,并且发送方从这次交互中不能学到什么,接收方能够知道Fk(x)。
域名化口令-将用户选择的强口令与登陆网站的域名进行哈希运算后的随机口令,其目的是阻止钓鱼攻击和离线攻击。
本发明实施例提供的安全的云口令管理器系统包括下面几个部件:
口令管理器、云、移动设备、服务器、客户端。
它们之间的关系是:口令管理器存储在云端,用户在客户端输入主口令,客户端与移动设备执行茫然伪随机协议,产生一个随机化主口令。随机化主口令用于加密或者解密口令管理器。口令管理器中存储用户登陆网站和系统的用户名和口令。服务器认证用户登陆的用户名和口令。
本发明实施例提供的安全的云口令管理方法是这样实现的。
注册阶段:
(1)注册时,用户为云口令管理器选择一个主口令mpw,并为移动设备选择一个秘密参数k,在客户端和移动设备之间自动执行茫然伪随机协议,产生一个随机化主口令rmpw=Fk(mpw)。
(2)用随机化主口令rmpw加密口令管理器,并存储在云端。
(3)口令管理器中用户口令的存储。由于不需要用户记忆,所以用户可以为每个账户Ui选择任意强度的口令rpwi,以抵抗在线和离线猜测攻击。本发明提供两种用户选择口令方法:第一,机器辅助用户选择方式。云口令管理器显示口令组成字符和长度选项,如大小写字母、数字、特殊符号和口令长度等选项,用户选择自己的口令组成方式。第二,随机生成口令。由口令管理器直接为用户生成随机口令。在口令管理器中存储用户登陆网站或者系统所需要的用户名和对应的域名化口令(Ui,h(rpwi||dni)),其中Ui为用户名,h()是密码学中的哈希函数,rpwi是用户选择的强口令或者随机口令,dni是该网站的域名,h(rpwi||dni)是域名化口令。
(4)服务器为每个用户账户产生一个随机盐si,在数据库中为每个用户存储(Ui,h(h(rpwi||dni)||si))对。
登陆阶段:
(1)用户在客户端调用云端的口令管理器,输入主口令mpw。
(2)在客户端和移动设备之间自动执行茫然伪随机协议,计算随机化主口令rmpw=Fk(mpw),用随机化主口令解密口令管理器。
(3)口令管理器帮助用户自动输入登陆网站的用户名Ui和口令h(rpwi||dni)。
(4)服务器查找是否存在用户名Ui,如果不存在,返回该用户不存在。如果该用户名存在,查找该用户所对应的盐si,计算h(h(rpwi||dni)||si),与存储的该值进行对比,如果相等,认证成功。
目前认为能够抵抗离线猜测攻击的口令是能够抵抗10^14次猜测,而一个8个字符的随机口令足够人类在其生命期内不能被猜出,本发明中由于不需要用户记忆登陆网站的口令,这些口令可以是随机的,并可以远远超过8个字符,因此离线猜测时间远远超出人类生命时间。
在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上;术语“上”、“下”、“左”、“右”、“内”、“外”、“前端”、“后端”、“头部”、“尾部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。