密码管理的方法、装置及密码管理器与流程

文档序号:18702277发布日期:2019-09-17 23:05阅读:334来源:国知局
密码管理的方法、装置及密码管理器与流程

本发明涉及信息安全技术领域,特别是涉及密码管理的方法、装置及密码管理器。



背景技术:

电子账号是互联网世界的身份,具有重大的经济和信息价值。理想情况下,每个用户仅有一个代表互联网身份的账号;但实际情况是,众多网站和应用程序各自为政,造成用户信息的孤岛,导致用户往往有多账户和多密码。多账户多密码的安全问题,不仅深深困扰着用户,而且阻碍了互联网服务的快速推广。此外,随着网络技术的发展,用户信息泄露等安全事故频发,密码也开始变得越来越复杂。因此,有必要对用户的多密码进行安全管理。目前的密码管理通常是通过一个集中的密码管家来存储各个应用程序的密码,用户通过一个主密码登录密码管家后就可以获取到各个应用程序的密码,进而可以实现对密码的管理。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:用户通过密码管家来管理密码的方式,所存储的密码泄露给了密码管家服务的提供商,存在被滥用的风险;另外,若登录密码管家的主密码泄露,则会引起密码管家中存储的多个密码的泄露。因此,目前的密码管理方法无法保证所管理密码的安全性。



技术实现要素:

基于此,本发明实施例提供了密码管理的方法、装置及密码管理器,能有效保证所管理密码的安全性。

本发明实施例的内容如下:

第一方面,本发明实施例提供一种密码管理的方法,包括以下步骤:接收客户端发送的操作请求;所述操作请求中包含有第一待验证密码以及密码操作信息;根据所述第一待验证密码向区块链平台发送验证请求;所述验证请求用于触发所述区块链平台利用已存储密码对所述第一待验证密码进行验证;若接收到所述区块链平台返回的所述第一待验证密码验证通过的消息,判定所述操作请求验证通过;根据所述操作请求中的密码操作信息,对所述区块链平台中对应的已存储密码进行操作。

在一个实施例中,所述接收客户端发送的操作请求的步骤之前,还包括:接收客户端发送的登录请求;其中所述登录请求中包含有第二待验证密码;对所述第二待验证密码进行验证;若所述第二待验证密码验证通过,向所述客户端返回登录成功的信息。

在一个实施例中,所述接收客户端发送的登录请求的步骤之前,还包括:接收客户端发送的注册请求;根据所述注册请求生成对应的第二待验证密码,并向所述客户端返回所述第二待验证密码。

在一个实施例中,所述接收客户端发送的操作请求的步骤之前,还包括:接收所述客户端发送的密码存储指令;其中,所述密码存储指令中包含有待存储密码;根据所述密码存储指令将所述待存储密码发送至所述区块链平台进行记录;其中,所述区块链平台中包括多个节点;所述多个节点对所述待存储密码进行验证,在验证通过时为所述待存储密码生成对应的区块,将所生成的区块接入到区块链中进行记录,将所述待存储密码标记为已存储密码。

在一个实施例中,所述操作请求中包含有账号标识信息;所述区块链平台中还包含有与所述多个已存储密码对应的多个账号;所述操作请求包括查询请求和修改请求;所述根据所述操作请求中的密码操作信息,对所述区块链平台中对应的已存储密码进行操作的步骤,包括:根据所述账号标识信息,从所述区块链平台中确定对应的目标账号;并确定与所述目标账号对应的已存储密码,作为目标已存储密码;若所述操作请求为查询请求,向所述客户端返回所述目标账号和所述目标已存储密码;若所述操作请求为修改请求,根据所述修改请求对所述目标账号和所述目标已存储密码进行修改,控制所述区块链平台中的各个节点记录修改后的目标账号和目标已存储密码,生成修改完成信息,向所述客户端返回所述修改完成信息。

第二方面,本发明实施例提供一种密码管理的方法,包括以下步骤:向服务器发送操作请求;所述操作请求中包含有第一待验证密码以及密码操作信息;所述操作请求用于触发所述服务器根据所述第一待验证密码向区块链平台发送验证请求;所述验证请求用于触发所述区块链平台利用已存储密码对所述第一待验证密码进行验证;若接收到所述区块链平台返回的所述第一待验证密码验证通过的消息,判定所述操作请求验证通过;根据所述操作请求中的密码操作信息,对所述区块链平台中对应的已存储密码进行操作。

在一个实施例中,所述第一待验证密码包括私钥;所述向服务器发送操作请求的步骤之前,还包括:向服务器发送私钥创建指令;所述私钥创建指令用于触发所述服务器为本端生成私钥;接收服务器返回的私钥,输出私钥保存提示信息;所述私钥保存提示信息用于提示用户对所述私钥进行保存。

第三方面,本发明实施例提供一种密码管理的装置,包括:请求接收模块,用于接收客户端发送的操作请求;所述操作请求中包含有第一待验证密码以及密码操作信息;验证模块,用于根据所述第一待验证密码向区块链平台发送验证请求;所述验证请求用于触发所述区块链平台利用已存储密码对所述第一待验证密码进行验证;判断模块,用于若接收到所述区块链平台返回的所述第一待验证密码验证通过的消息,判定所述操作请求验证通过;以及,操作模块,用于根据所述操作请求中的密码操作信息,对所述区块链平台中对应的已存储密码进行操作。

第四方面,本发明实施例提供一种密码管理的装置,包括:请求发送模块,用于向服务器发送操作请求;所述操作请求中包含有第一待验证密码以及密码操作信息;所述操作请求用于触发所述服务器根据所述第一待验证密码向区块链平台发送验证请求;所述验证请求用于触发所述区块链平台利用已存储密码对所述第一待验证密码进行验证;若接收到所述区块链平台返回的所述第一待验证密码验证通过的消息,判定所述操作请求验证通过;根据所述操作请求中的密码操作信息,对所述区块链平台中对应的已存储密码进行操作。

第五方面,本发明实施例提供一种密码管理器,包括:网络连接的客户端、服务器以及区块链平台;其中,所述区块链平台中记录有多个账号以及与所述多个账号对应的多个已存储密码;所述客户端,用于向所述服务器发送操作请求;所述操作请求中包含有第一待验证密码、密码操作信息以及账号标识信息;所述服务器,用于根据所述第一待验证密码向区块链平台发送验证请求;所述区块链平台,用于根据所述验证请求利用已存储密码对所述第一待验证密码进行验证;所述服务器,还用于若接收到所述区块链平台返回的所述第一待验证密码验证通过的消息,根据所述操作请求中的账号标识信息向所述区块链平台发送密码查询指令;所述区块链平台,还用于根据所述密码查询指令从所述区块链平台中确定对应的目标账号;并确定与所述目标账号对应的已存储密码,作为目标已存储密码;所述服务器,还用于接收所述区块链平台发送的目标账号和目标已存储密码,向所述客户端返回所述目标账号和所述目标已存储密码。

上述技术方案中的一个技术方案具有如下优点或有益效果:密码存储在区块链平台中,通过区块链来存储密码能保证密码的不可篡改性,另外,在需要进行密码操作时通过区块链平台来对第一待验证密码进行验证,并在第一待验证密码验证通过之后对对应的已存储密码进行操作。在对区块链平台中存储的密码进行操作之前充分进行合法性校验,能有效保证所管理密码的安全性。

附图说明

图1为一个实施例中密码管理的方法的应用环境图;

图2为一个实施例中密码管理的方法的流程示意图;

图3为一个实施例中区块链的运作流程示意图;

图4为另一个实施例中密码管理的方法的流程示意图;

图5为一个实施例中密码管理的装置的结构框图;

图6为另一个实施例中密码管理的装置的结构框图;

图7为一个实施例中计算机设备的内部结构;

图8为一个实施例中密码管理器的架构图;

图9为一个实施例中密码管理器的应用环境图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请提供的密码管理的方法可以应用于如图1所示的应用环境中。该应用环境包括客户端101、服务器102以及区块链平台103,三者网络连接,所构成的系统可以称为密码管理器;另外,一个服务器可以连接多个客户端(图1仅示出了一个客户端)。其中,客户端101向服务器102发送操作请求,服务器102借助区块链平台103进行操作请求的验证。客户端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,同时,客户端101上可以安装有各种类型的应用程序,这些应用程序中的密码可以由服务器102存储到区块链平台103中;服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现;区块链平台103中可以包含有多个节点,这些节点可以通过各种类型的主机实现。

本发明实施例提供一种密码管理的方法、装置、计算机设备、存储介质及密码管理器。以下分别进行详细说明。

在一个实施例中,如图2所示,提供了一种密码管理的方法。以该方法应用于图1中的服务器端为例进行说明,包括以下步骤:

s201、接收客户端发送的操作请求;该操作请求中包含有第一待验证密码以及密码操作信息。

其中,客户端指的是实现密码管理过程所需的与用户进行交互的终端,可以通过手机、电脑等实现,另外这个客户端上可以安装各种类型的应用程序(例如:web应用和移动应用)。在用户通过客户端登录应用程序时,往往需要密码,此时,该客户端就可以向服务器发送操作请求,获取相应的密码并进行登录。

进一步地,操作请求可以指对密码等进行查询(可以仅指密码的查询,也可以指应用程序登录之前查询密码的过程)、修改等操作。由于密码往往与账号对应,因此该操作请求也可以包括对对应账号的操作。密码操作信息可以指对密码进行特定操作的操作描述信息以及其中涉及到的参数等。

第一待验证密码指的是对密码进行操作之前需要进行验证的密码,对第一待验证密码进行验证的过程可以理解为访问区块链平台之前必须的验证过程。

s202、根据第一待验证密码向区块链平台发送验证请求;该验证请求用于触发区块链平台利用已存储密码对第一待验证密码进行验证。

服务器可以根据客户端的请求,将客户端发送的待存储密码存储到区块链中,得到已存储密码。具体的,区块链平台中的已存储密码可以指登录不同web应用和手机应用所需的密码。另外,已存储密码也可以包括用于密码验证的密码(可以称为验证密码,通过公私钥来实现),与已存储密码对应的账号、网址链接,等。这些已存储密码存储在去中心化的区块链中,不容易被篡改,保证了用户的隐私。

进一步地,区块链平台可以预先存储验证密码,在接收到第一待验证密码时,区块链平台中的各个参与节点将其与预先存储的验证密码进行比对,如果各个节点均认为存在一致的验证密码,可以判定第一待验证密码验证通过。

为便于理解,在此对区块链进行说明:区块链起源于中本聪的比特币,作为比特币的底层技术,本质上是一个去中心化的数据库,是通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案,还具有开放共识、交易透明、双方匿名、不可篡改和不可追溯等特点。对于去中心化,最重要的是采用分布式的架构、点多点传输网络的方式来解决点对点之间的交互;对于去信任化,最重要的则是两个机制:一是公/私钥机制,一是共识机制。另外,本发明实施例中的区块链平台构建于kubernetes集群之上,kubernetes集群可以运行整个区块链平台,负责调度docker容器(其上运行有应用),若发现某些容器运行异常,则自动在其它节点上重新部署任务,以实现微服务的自动化部署、弹性扩缩容、安全治理和运维管控,实现高可用。

s203、若接收到区块链平台返回的第一待验证密码验证通过的消息,判定操作请求验证通过。

在第一待验证密码验证通过之后,也可以结合其他的验证信息来判断操作请求是否验证通过,例如:客户端的登录信息。

s204、根据操作请求中的密码操作信息,对区块链平台中对应的已存储密码进行操作。

本步骤根据密码操作信息对已存储密码进行操作。其中,对已存储密码的操作也可以由区块链平台实现。

在操作请求验证通过后,服务器可以从区块链平台中确定操作请求所对应的已存储密码,进而对对应的已存储密码进行查询、修改等操作,操作结束之后得到操作数据。进一步地,若操作请求为查询请求,则操作数据可以为所查询的已存储密码,也可以为“查询成功”的信息;若操作请求为修改操作,则操作数据可以为“修改完成”,服务器可以将操作数据返回给客户端。

本实施例,通过去中心化的区块链来存储密码,能保证所存储密码的不可篡改性;通过区块链平台对第一待验证密码进行验证,在对已存储密码进行操作之前充分验证客户端的合法性,能有效保证所管理密码的安全性。

在一个实施例中,第一待验证密码包括私钥;s201之前还包括:接收客户端发送的私钥创建指令,根据私钥创建指令为客户端生成私钥;将所生成的私钥返回给客户端并把私钥发送给区块链平台进行存储。客户端接收到私钥之后,可以通知用户对私钥进行妥善保管。本实施例中的服务器为客户端生成私钥,该私钥由用户自己保存。在需要对区块链平台中的已存储密码进行操作时需要对私钥进行验证,因此,若用户没有导入私钥,则读取不到已存储密码,能有效保证所管理密码的安全性。

在一个实施例中,s201之前还包括:接收客户端发送的登录请求;其中登录请求中包含有第二待验证密码;对第二待验证密码进行验证;若第二待验证密码验证通过,向客户端返回登录成功的信息。其中,第二待验证密码也可以称为主密码,可以指用于登录密码管理器(也可以理解为登录服务器)的密码,可以由密码管理器服务供应商加密保存。对第一待验证密码和第二待验证密码进行验证的过程可以认为是对用户进行身份验证的过程。

进一步地,接收客户端发送的登录请求的步骤之前,还包括:接收客户端发送的注册请求;根据注册请求生成对应的第二待验证密码,并向客户端返回第二待验证密码。用户从应用商店下载密码管理器后,点击客户端界面上的注册控件,就可以触发客户端向服务器发送注册请求,并完成注册,客户端所接收的第二待验证密码即为登录密码管理器所需的主密码。

本实施例提供的密码管理的方法通过多重密码(第一待验证密码和第二待验证密码)的验证对使用客户端的用户进行身份验证,能有效保证所管理密码的安全性。

在一个实施例中,s201之前还包括:接收客户端发送的密码存储指令;其中,密码存储指令中包含有待存储密码;根据密码存储指令将待存储密码发送至区块链平台进行记录;其中,区块链平台中包括多个节点(区块链平台中可以包括若干个节点,这里的多个节点可以指参与本次验证的节点,即若干个节点中的部分节点);多个节点对待存储密码进行验证,在验证通过时为待存储密码生成对应的区块,将所生成的区块接入到区块链中进行记录,将待存储密码标记为已存储密码。

区块链存储的基本单元是采用链式结构的区块,即新增的区块记录了上一个区块的标志(哈希值)。区块链保留了业务产生的轨迹,可以一直追溯到根。在新增交易的时候,会根据前面的记录做校验,从而保证了账号信息的不可篡改,以确保账户信息的安全。

进一步地,区块链平台在接收到待存储密码后,会将待存储密码单广播到区块链全网,各参与节点对该区块进行验证。取得验证后的待存储密码信息区块正式接入区块链,完成待存储密码的存储,并且保证已存储密码的不可篡改。

需要说明的是,向区块链平台中新增密码可以在密码管理器构建后的任何时间。即,不仅仅限于“接收客户端发送的操作请求的步骤之前”。这里限定“接收客户端发送的操作请求的步骤之前”的意思是操作请求所针对的需要是已经存储在区块链平台中的密码,对于没有存储的密码则没有必要进行密码操作。

上述实施例通过区块链平台实现对密码的存储,在存储之前各个参与节点会进行验证并将此次存储信息记录到区块链中,使得所存储的密码不可篡改,能实现密码的安全存储。

在一个实施例中,操作请求中包含有账号标识信息;区块链平台中还包含有与多个已存储密码对应的多个账号;操作请求包括查询请求和修改请求;根据操作请求中的密码操作信息,对区块链平台中对应的已存储密码进行操作的步骤,包括:根据账号标识信息,从区块链平台中确定对应的目标账号;并确定与目标账号对应的已存储密码,作为目标已存储密码;若操作请求为查询请求,向客户端返回目标账号和目标已存储密码;若操作请求为修改请求,根据修改请求对目标账号和目标已存储密码进行修改,控制区块链平台中的各个节点记录修改后的目标账号和目标已存储密码,生成修改完成信息,向客户端返回修改完成信息。其中,账号标识信息可以存储在服务器中,也可以存储在区块链平台中;若账号标识信息存储在服务器中,则区块链中可以包括账号标识信息与账号密码的对应关系,区块链平台通过账号标识信息以及该对应关系就能查询到对应的目标账号和目标已存储密码。

在一些实施例中,账号标识信息包括客户端上运行的应用程序的网址。以应用程序为facebook为例,进行账号和密码查询的过程可以为:服务器根据facebook的网址在区块链平台中查询对应用户的facebook账号和密码,并进行后续的结果返回处理。

上述实施例在区块链平台中查找目标账号和目标已存储密码,进而实现对账号和密码的查询和修改,在保证账号密码安全的情况下还能方便用户进行密码的修改更新。

进一步地,在一个实施例中,对区块链平台中的账号和密码进行新增、修改和查询的示意图如图3所示。图3中的区块链平台包括多个节点(如图3中6个相连接的主机),这些节点能够相互通信。另外,成员身份服务可以指密码管理器对客户端进行主密码以及私钥验证的服务。客户端a拟将新增的账户和密码添加到区块链平台中,客户端b拟修改区块链平台中的账号和密码,客户端c拟查询区块链平台中已经存储的账号和密码,这三个客户端向服务器发送操作请求,服务器向区块链平台发送对应的请求,区块链平台在接收到服务器发送的请求后完成相应的操作,并根据操作数据生成区块并添加到区块链中,区块链保留了业务(即对密码进行操作)产生的轨迹,可以一直追溯到根,保证了新增密码、修改后密码以及密码操作过程产生的其他信息的不可篡改。

在一个实施例中,如图4所示,提供了一种密码的管理方法。以该方法应用于图1中的客户端为例进行说明,包括以下步骤:s401、向服务器发送操作请求;操作请求中包含有第一待验证密码以及密码操作信息;操作请求用于触发服务器根据第一待验证密码向区块链平台发送验证请求;验证请求用于触发区块链平台利用已存储密码对第一待验证密码进行验证;若接收到区块链平台返回的第一待验证密码验证通过的消息,判定操作请求验证通过;根据操作请求中的密码操作信息,对区块链平台中对应的已存储密码进行操作,还可以接收服务器在操作结束得到的操作数据。本实施例,客户端向服务器发送操作请求,并可以接收服务器通过区块链平台验证操作请求后返回的操作数据。在对区块链平台中存储的密码进行操作之前充分进行合法性校验,能有效保证所管理密码的安全性。

在一个实施例中,操作请求中包含有账号标识信息;区块链平台中还包含有与多个已存储密码对应的多个账号;向服务器发送操作请求的步骤,包括:向服务器发送登录请求;该登录请求用于触发服务器根据账号标识信息,从区块链平台中确定对应的目标账号;并确定与目标账号对应的已存储密码,作为目标已存储密码;接收服务器返回的目标账号和目标已存储密码。

其中的登录可以指客户端对某一应用程序的登录。在需要登录某一应用程序时,客户端向服务器发送登录请求,以使服务器从区块链平台中获取对应的目标已存储密码。

进一步地,接收服务器返回的目标账号和目标已存储密码的步骤之后,还包括:将目标账号和目标已存储密码填入登录框,完成登录操作。

另一方面,密码管理器具有服务发现功能,能根据用户点击的应用程序,自动发现应用程序的登录页面的账号框和密码框,在确定需要输入密码时给出相应提示,在区块链平台成功返回账户和密码后自动填入到对应的框中。能避免繁琐和重复输入账号信息,在保证账户密码安全的情况下提高用户登录应用程序的效率,进而实现已托管账号的快速认证以及应用程序的快速登录。同时,账号密码的自动填入对用户而言是没有感觉的,实现了用户的无感登录。

在一个实施例中,第一待验证密码包括私钥;向服务器发送操作请求的步骤之前,还包括:向服务器发送私钥创建指令;私钥创建指令用于触发服务器为本端生成私钥;接收服务器返回的私钥,输出私钥保存提示信息;私钥保存提示信息用于提示用户对私钥进行保存。

进一步地,向服务器发送操作请求的步骤之前,还包括:接收私钥;其中,私钥按照ctap协议导入;根据导入的私钥,生成操作请求。

其中,ctap(clienttoauthenticatorprotocol,客户端到认证器协议规范),属于fido2,由外部认证器(例如安全秘钥或手机)通过usb、蓝牙、或者nfc向用户的互联网接入设备(电脑或手机)局部传递强认证证书,可以让用户能够轻松且安全地通过桌面或移动设备验证在线服务。

上述实施例提供的密码管理的方法,除了主密码外,用户还需点击私钥创建界面来处创建私钥并妥善保存。在需要对已存储密码进行操作时,不仅需要输入主密码,而且还需要按照ctap协议导入私钥,才能查询和修改托管的账户和密码,能有效保证所托管密码的安全性。此外,主密码存储在服务供应商的中心化数据中心,而用户托管的账号和密码存储在去中心的区块链中。因私钥仅由用户个人保管,即便出现服务供应商泄露主密码或者黑客攻击数据中心获取主密码的情况,供应商或黑客仍然无法获取用户托管的账号和密码,从而保障了用户的账号安全。

需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。

基于与上述实施例中的密码管理的方法相同的思想,本发明还提供密码管理的装置,该装置可用于执行上述密码管理的方法。为了便于说明,密码管理的装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图5所示,密码管理的装置包括请求接收模块501、验证模块502、判断模块503和操作模块504,详细说明如下:请求接收模块501,用于接收客户端发送的操作请求;操作请求中包含有第一待验证密码以及密码操作信息。验证模块502,用于根据第一待验证密码向区块链平台发送验证请求;验证请求用于触发区块链平台利用已存储密码对第一待验证密码进行验证。判断模块503,用于若接收到区块链平台返回的第一待验证密码验证通过的消息,判定操作请求验证通过。以及,操作模块504,用于根据操作请求中的密码操作信息,对区块链平台中对应的已存储密码进行操作。本实施例,在对区块链平台中存储的密码进行操作之前充分进行合法性校验,能有效保证所管理密码的安全性。

在一个实施例中,第一待验证密码包括私钥;还包括:私钥指令接收模块,用于接收客户端发送的私钥创建指令,根据私钥创建指令为客户端生成私钥;私钥返回模块,用于将所生成的私钥返回给客户端。

在一个实施例中,还包括:登录请求接收模块,用于接收客户端发送的登录请求;其中登录请求中包含有第二待验证密码;登录验证模块,用于对第二待验证密码进行验证;若第二待验证密码验证通过,向客户端返回登录成功的信息。

在一个实施例中,还包括:注册请求接收模块,用于接收客户端发送的注册请求;密码生成模块,用于根据注册请求生成对应的第二待验证密码,并向客户端返回第二待验证密码。

在一个实施例中,还包括:存储指令接收模块,用于接收客户端发送的密码存储指令;其中,密码存储指令中包含有待存储密码;密码存储模块,用于根据密码存储指令将待存储密码发送至区块链平台进行记录;其中,区块链平台中包括多个节点;多个节点对待存储密码进行验证,在验证通过时为待存储密码生成对应的区块,将所生成的区块接入到区块链中进行记录,将待存储密码标记为已存储密码。

在一个实施例中,操作请求中包含有账号标识信息;区块链平台中还包含有与多个已存储密码对应的账号;操作请求包括查询请求和修改请求;操作模块504,包括:密码确定子模块,用于根据账号标识信息,从区块链平台中确定对应的目标账号;并确定与目标账号对应的已存储密码,作为目标已存储密码;查询子模块,用于若操作请求为查询请求,向客户端返回目标账号和目标已存储密码;修改子模块,用于若操作请求为修改请求,根据修改请求对目标账号和目标已存储密码进行修改,控制区块链平台中的各个节点记录修改后的目标账号和目标已存储密码,生成修改完成信息,向客户端返回修改完成信息。

在一个实施例中,账号标识信息包括客户端上运行的应用程序的网址。

如图6所示,密码管理的装置包括请求发送模块601,详细说明如下:请求发送模块601,用于向服务器发送操作请求;操作请求中包含有第一待验证密码以及密码操作信息;操作请求用于触发服务器根据第一待验证密码向区块链平台发送验证请求;验证请求用于触发区块链平台利用已存储密码对第一待验证密码进行验证;若接收到区块链平台返回的第一待验证密码验证通过的消息,判定操作请求验证通过;根据操作请求中的密码操作信息,对区块链平台中对应的已存储密码进行操作。本实施例,在对区块链平台中存储的密码进行操作之前充分进行合法性校验,能有效保证所管理密码的安全性。

在一个实施例中,操作请求中包含有账号标识信息;区块链平台中还包含有与多个已存储密码对应的多个账号;还包括:登录请求发送模块,用于向服务器发送登录请求;该登录请求用于触发服务器根据账号标识信息,从区块链平台中确定对应的目标账号;并确定与目标账号对应的已存储密码,作为目标已存储密码;密码接收模块,用于接收服务器返回的目标账号和目标已存储密码。

在一个实施例中,还包括:登录模块,用于将目标账号和目标已存储密码填入登录框,完成登录操作。

在一个实施例中,第一待验证密码包括私钥;还包括:创建指令发送模块,用于向服务器发送私钥创建指令;私钥创建指令用于触发服务器为本端生成私钥;私钥保存模块,用于接收服务器返回的私钥,输出私钥保存提示信息;私钥保存提示信息用于提示用户对私钥进行保存。

在一个实施例中,还包括:私钥接收模块,用于接收私钥;其中,私钥按照ctap协议导入;操作请求生成模块,用于根据导入的私钥,生成操作请求。

需要说明的是,本发明的密码管理的装置与本发明的密码管理的方法一一对应,在上述密码管理的方法的实施例阐述的技术特征及其有益效果均适用于密码管理的装置的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。

此外,上述示例的密码管理的装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述密码管理的装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。

本申请提供的密码管理的方法可以应用于如图7所示的计算机设备中。该计算机设备可以是服务器,也可以是终端设备,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,处理器用于提供计算和控制能力;存储器包括非易失性存储介质、内存储器,该非易失性存储介质存储有操作系统、计算机程序(该计算机程序被处理器执行时实现一种密码管理的方法)和数据库,该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境;数据库用于存储第一待验证密码、第二待验证密码等数据;网络接口用于与外部的终端通过网络连接通信,例如:与客户端连接,用于接收客户端发送的操作请求。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,处理器执行计算机程序时实现上述各个方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

在一个实施例中,还提供一种密码管理器,包括:网络连接的客户端(可以称为密码管理器客户端)、服务器(可以称为密码管理器服务端)以及区块链平台;其中,区块链平台中记录有多个账号以及与多个账号对应的多个已存储密码;客户端,用于向服务器发送操作请求;操作请求中包含有第一待验证密码、密码操作信息以及账号标识信息;服务器,用于根据第一待验证密码向区块链平台发送验证请求;区块链平台,用于根据验证请求利用已存储密码对第一待验证密码进行验证;服务器,还用于若接收到区块链平台返回的第一待验证密码验证通过的消息,根据操作请求中的账号标识信息向区块链平台发送密码查询指令;区块链平台,还用于根据密码查询指令从区块链平台中确定对应的目标账号;并确定与目标账号对应的已存储密码,作为目标已存储密码;服务器,还用于接收区块链平台发送的目标账号和目标已存储密码,向客户端返回目标账号和目标已存储密码。

其中,客户端展示了密码管理器的基本功能,如登录与注册、账号密码托管、安全状态监控、应用设置等,用于与用户进行交互。客户端发出的请求经过微服务网关到达密码管理器服务端相应的微服务,并在服务端进行各种业务逻辑的处理。服务端(即前述实施例中的服务器)采用了分布式的微服务架构,将系统按照业务进行了拆分,以实现敏捷开发、快速演化、便捷容错与弹性伸缩等特性。中间件是密码管理器服务端调用区块链平台服务的桥梁,以sdk、api、rpc访问接口的形式对接服务端的多种业务。区块链平台除了提供身份和证书服务、区块链功能实现等基础功能,还提供了数据服务、管理与经营、区块链网关服务等核心服务。

具体的,该密码管理器的架构如图8所示,该密码管理器有展示层、应用层、区块链应用中间件层和区块链平台服务层。

其中,展示层包含移动和web应用客户端,提供登录/注册、托管账号查询管理、主密码管理、账号安全状态监控、已连接设备查询和应用设置等界面。对于已连接设备查询,密码管理器可以安装在多个手机、平板或pc机上,登录其中一台终端,就可以查看其它终端的连接状态,确保密码管理器只存储在合适的终端上,若发现不是自己的终端,可以修改主密码,使其它终端的登录状态不可用。

处于应用层的微服务网关是微服务架构的一个核心概念,是客户端的唯一入口。由于服务的颗粒度变细,它承担着安全与访问认证等诸多职能。密码管理器客户端发出的请求经过微服务网关处理后,有的被简单地代理/路由到合适的服务,有的被转给一组服务。处于应用层的密码管理器服务端,处理各种业务逻辑,如主密码管理、公/私钥管理、加密服务和账号安全监控等。

在一些实施例中,密码管理器服务端通过sdk、api、rpc接口来对接区块链应用中间件。中间件可以在认证、安全、密码系统、加工、管理、监控和报告等方面提供不同等级的服务。

上述实施例的密码管理器,结合了客户端、服务器以及区块链平台实现密码的存储以及身份验证,能有效保证所管理密码的安全性。

为了更好地理解上述密码管理器的运行过程,如图9所示,以下详细阐述一个本发明密码管理器的应用实例。

1、用户在密码管理器中注册主密码,通过主密码登录密码管理器之后,把待存储密码通过密码管理器中的区块链平台来存储,作为已存储密码。若用户需要登录某个应用程序的密码,可以通过主密码登录密码管理器,密码管理器在后台运行。

2、用户打开移动或web应用界面后,会唤醒密码管理器客户端,去查询移动或web应用的账户与密码。客户端响应该事件,向密码管理器服务端申请验证主密码和客户端私钥签名。主密码由密码管理器服务端进行验证,私钥签名由区块链平台进行验证。

3、经过主密码和私钥签名的双重身份验证后,客户端会根据移动或web应用的网址,去区块链平台查询账户和密码。区块链平台成功返回账户和密码后,密码管理器客户端将会自动填写账户信息,并向用于返回账号信息填充结果(例如:应用程序登录成功等信息)。

目前,为了降低账号认证的成本和保障账号的安全,电信运营商和互联网企业在不断地尝试新的账号认证方式。主要有5种账号认证方式:a、账户密码认证,缺点是多账号多密码对用户而言较难记忆。有的网站要求有特殊字符,找回或重置的成本高。b、动态密码认证,缺点是验证码容易被劫持,验证过程麻烦。c、第三方授权登录,缺点是将隐私主动泄露给了第三方。d、基于手机号的免密认证,不足之处是高度依赖手机的网关验证,需要关掉wifi使用手机的4g网络;若手机丢失,则找回手机号非常麻烦,存在安全隐患。此外,需要互联网公司进入电信运营商的手机号码认证服务,适用范围有限。e、基于公钥的免密认证,通过在web浏览器中嵌入webauthn接口扩展来实现fido身份验证。不足之处是仅支持web应用且处于尝试阶段,尚未得到广泛应用。

因此,对多账号多密码进行集中管理具有较大的需求。对目前常用的账号密码集中管理方法分析如下:

1)小红伞密码管家/密码管家app。可在手机和电脑上设备上安全地存储地密码和笔记,其特征是:a、仅需记住一个主密码即可。有了主密码,用户可以访问使用军用级加密(aes-256)安全存储的所有其它密码。b、直观地存储密码和笔记:在冲浪时保存密码。用户还可以创建笔记,要么对特定登录进行评论,要么只是记录想法并在所有设备上访问它们。c、轻松登录全自动:避免繁琐和重复输入登录详细信息,小红伞密码管理器会自动填写所有信息。d、创造不可动摇的密码。密码管理器为账户生成并存储唯一密码,以防止身份被盗。这类密码管理器均是依赖中心化的数据来存储用户的密码,有以下2个缺点:a、用户存储的密码泄露给了密码管家服务的提供商,存在被滥用的风险;b、若主密码泄露,则会引起多个账户密码的泄露。

2)passport密码管家。passport采用先进的加密技术致力保证用户的隐私,可以安全地保存账号密码和信用卡信息。passport可以记录各个账户,因此用户可以轻易地使用随机密码生成器以在不同网站上使用不同的用户名和密码组合。与此同时,还能确保用户的密码安全无虞。passport的使用毫无门槛,用户可以使用指纹解锁(仅在支持的设备上),甚至可以直接在网页中扫描指纹便自动填充密码,相当于可以使用指纹登录保存的网站。passport甚至没有网络权限,永久的资料可以备份至sd卡或者通过安装免费的云同步插件来使用云同步服务。但是passport密码管家仅支持移动终端,同步与备份过程繁琐。

3)w3c的webauthnapi。是一种可融入浏览器和相关web平台基础架构的标准webapi,可为每个站点提供强大、唯一且基于公钥的凭证,消除了从某一站点窃取密码后被用于其他站点的风险。使用fido身份验证器加载到设备上的在浏览器中运行的web应用程序,可以通过密码操作代替密码交换,或除了密码交换之外,还可为服务提供者和用户带来更简单的身份验证和更强的身份验证。但是,webauthnapi仅支持web终端,没有解决现存的多用户多密码的问题,而且尚处于试验阶段。

相比于现有的密码管理器,本发明实施例的密码管理器的优势是:1、能有效保证用户的隐私安全。2、不需要关闭wifi网络,简化操作,适用范围广。3、不需要更改互联网应用的登录接口以支持手机免密认证,因此适用范围更广。4、经过客户端解密后的账户和密码,将自动填充移动或web应用终端的登录界面,可以避免繁琐和重复输入账号信息。5、账号密码查询以及填写的过程均在后台运行,用户只看账号信息填充的结果,而对账号和密码填充过程无感。在已托管账户和密码自动填充后,可以快速完成各个应用程序的快速认证过程。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本发明实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1