增强密码管理APP密码安全强度方法和装置、存储介质

文档序号:29358987发布日期:2022-03-23 00:51阅读:236来源:国知局
增强密码管理APP密码安全强度方法和装置、存储介质
增强密码管理app密码安全强度方法和装置、存储介质
技术领域
1.本发明属于信息安全技术领域,尤其涉及一种增强密码管理app密码安全强度方法和装置、存储介质。


背景技术:

2.随着互联网的深入发展,用户在手机上登录app或者网页的账号和密码种类繁多,因此用来管理各类型口令和密码的密码管理app越来越收到人们的欢迎,但是密码管理app将管理的账号和密码集中式存储在本地或云端,存在一旦被别有用心的人攻击或破解,可能丢失所有账户和密码信息的风险,因此存在两方面的问题,一是用户担心被app信息或密码管理服务器被破解而自己信息丢失,二是密码管理app的软件质量很大程度上决定了用户数据的安全。对于密码管理app中管理的信息,都是及其私密且重要的,如何保证这些信息的绝对安全,是密码管理app厂商需要研究的事情。目前存在密码管理app中管理的密码安全强度不高、用户不信任软件质量从而导致用户安全感不高的问题。


技术实现要素:

3.本发明要解决的技术问题是,提供一种增强密码管理app密码安全强度的方法和装置、存储介质,解决密码管理app中管理的密码安全强度不高、用户不信任软件质量从而导致用户安全感不高的问题。
4.为实现上述目的,本发明采用如下的技术方案:
5.一种增强密码管理app密码安全强度方法,包括以下步骤:
6.利用服务器作为可信中心,进行密码管理app和安全硬件之间的相互认证;
7.认证完成后,密码管理app和安全硬件根据相互认证过程协商的随机数作为通信包加解密的密钥,再进行业务加密和解密。
8.作为优选,所述密码管理app通过互联网与所述服务器通信;所述安全硬件只能与所述密码管理app直接通信,所述安全硬件与所述服务器之间通信通过密码管理app进行转发;所述服务器同时为多个密码管理app提供认证服务,且一个密码管理app拥有多个安全硬件。
9.作为优选,服务器,用于存储公钥pks、每个安全硬件的标识clientid、公钥pkxclient和通信使用对称加密秘钥secretxclients以及每个密码管理app用户的公钥xapp;密码管理app,用于存储私钥skxapp、公钥pkxapp和标识xapp;安全硬件,用于存储标识clientid、私钥skxclient、公钥pkxclient、通信使用对称加解密秘钥secretxclients、业务加解密用的对称加密密钥aes_secret。
10.作为优选,所述进行密码管理app和安全硬件之间的相互认证包括:
11.安全硬件将clientid和公钥pkxclient发送给密码管理app;
12.密码管理app将所述clientid和自身标识xapp发送给服务器,以向服务器发起认证;
13.服务器通过安全硬件标识clientid索引安全硬件的公钥并以签名包的形式发送给密码管理app;
14.密码管理app验证消息签名后,确认服务器发送的安全硬件公钥与获取的安全硬件公钥pkxclient一致,则生成随机数na,并使用安全硬件公钥加密na和密码管理app标识xapp和公钥pkxapp,生成数据包ma发送给安全硬件;
15.安全硬件解密数据包ma,获得随机数na和密码管理app的标识xapp和公钥pkxapp并保存,开启对于密码管理app的认证,使用对称加密秘钥secretxclients加密自身标识clientid和app标识xapp,生成消息ms1;
16.密码管理app获取消息ms1,添加本地存储的安全硬件标识clientid和自身标识xapp后,发送给服务器;
17.服务器通过clientid索引得到安全硬件对称加密秘钥secretxclients,使用secretxclients对消息ms1进行解密,获取安全硬件要验证的app标识xapp,再次通过索引得到app的公钥。将索引到的app公钥使用secretxclients进行加密得到密文sstr,加密后的字符再添加接收到的密码管理app标识xapp后进行签名,得到消息ms2发送给密码管理app;
18.密码管理app验证签名包且消息包内标识与自身一致后,将密文部分使用pkxclient加密以消息mc3发送给安全硬件;
19.安全硬件对消息mc3解密得到密文sstr,使用secretxclients对sstr进行再次解密,验证服务器发来的密码管理app公钥与之前保存的密码管理app公钥一致后,生成新的随机数nb,并将接收到的随机数na和自身的标识clientid,使用密码管理app公钥pkxapp进行加密后得到消息ms4发送给密码管理app;
20.密码管理app解密消息ms4后,验证消息中的随机数和安全硬件标识是否与之前保存的信息一致,如果都一致,则保存获取到的随机数nb,作为后续业务通信的加密秘钥,同时将使用安全硬件公钥加密后的nb发送给安全硬件;
21.安全硬件解密消息后,确认消息中的随机数与保存的nb一致后,完成互认证过程。
22.作为优选,所述业务加密包括:
23.将进行业务加密的明文密码和密码管理app自身的标识xapp,使用相互认证过程协商的秘钥nb加密后,发送到安全硬件;
24.安全硬件使用互认证过程中的nb解密消息后,将密码字段使用业务密码进行单独对称加密后,得到密文密码,并使用相互认证过程协商的na进行二次加密后,发送给密码管理app;
25.密码管理app使用na解密消息后,获取密码密文enc_txt,并存储在本地或云端。
26.作为优选,所述业务解密包括:
27.将进行解密的密文密码和密码管理app自身的标识xapp,使用互认证过程协商的秘钥nb加密后,发送到安全硬件;
28.安全硬件使用互认证过程中的nb解密消息后,将密码字段使用业务密码进行单独对称解密后,得到密码明文password,并使用相互认证过程协商的na进行二次加密后,发送给密码管理app;
29.密码管理app使用na解密消息后,获取密码明文password。
30.本发明还提供一种增强密码管理app密码安全强度装置,包括:
31.认证模块,用于利用服务器作为可信中心,进行密码管理app和安全硬件之间的相互认证;
32.加解密模块,用于认证完成后,密码管理app和安全硬件根据相互认证过程协商的随机数作为通信包加密的密钥,再进行业务加密和解密。
33.作为优选,所述密码管理app通过互联网与所述服务器通信;所述安全硬件只能与所述密码管理app直接通信,所述安全硬件与所述服务器之间通信通过密码管理app进行转发;所述服务器同时为多个密码管理app提供认证服务,且一个密码管理app拥有多个安全硬件。
34.作为优选,服务器,用于存储公钥pks、每个安全硬件的标识clientid、公钥pkxclient和通信使用对称加密秘钥secretxclients以及每个密码管理app用户的标识xapp和公钥pkxapp;密码管理app,用于存储私钥skxapp、公钥pkxapp和标识xapp;安全硬件,用于存储标识clientid、私钥skxclient、公钥pkxclient、通信使用对称加解密秘钥secretxclients、业务加解密用的对称加密密钥aes_secret。
35.本发明还提供一种存储介质,所述存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现增强密码管理app密码安全强度方法。
36.本发明在密码管理app的基础上,引入一个用户持有的安全硬件,提出包含互认证和可靠通信的密码协议,实现了在双因素安全认证的基础上,即使密码管理app本地存储信息和云端存储信息被别有攻击者获取,在没有安全硬件的情况下,攻击者依然无法解密得到账号和密码信息,方案可以实现相互认证性,前向后向安全性,机密性,抗跟踪攻击,假冒攻击,重放攻击,采用本发明的技术方案,可以实现密码管理app和安全硬件之间相互认证和互操作,进而实现密码的高度安全保存。
附图说明
37.图1为本发明涉及通信主体的结构示意图;
38.图2为本发明方法的初始化阶段的示意图;
39.图3为本发明方法的相互认证阶段的示意图;
40.图4为本发明方法的加密步骤的示意图;
41.图5为本发明方法的解密步骤的示意图;
42.图6为本发明装置的结构示意图。
具体实施方式
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
44.实施例1:
45.如图1所示,本发明提供一种增强密码管理app密码安全强度方法,本发明涉及通
信主体包括服务器、密码管理app、安全硬件。服务器作为认证系统的可信中心,密码管理app通过互联网与服务器通信,而安全硬件只能与密码管理app直接通信,与服务的通信需要与密码管理app进行转发;服务器可以与同时为多个密码管理app提供认证服务和其他服务,一个密码管理app可以拥有多个安全硬件。服务器中公钥pks对外是公开的;初始状态服务器保存有每个安全硬件的标识clientid、公钥pkxclient和通信用对称加密秘钥secretxclients;同时服务器保存有每个密码管理app用户的公钥标识xapp和公钥pkxapp。密码管理app拥有私钥skxapp、公钥pkxapp和标识xapp。安全硬件由拥有安全存储区和算法引擎的安全芯片完成,可以使用一种或多种公共信道与密码管理app进行通信;其拥有标识clientid、私钥skxclient、公钥pkxclient、通信使用对称加解密秘钥secretxclients;同时拥有业务加解密用的对称加密密钥aes_secret。
46.本发明增强密码管理app密码安全强度的方法包括:
47.步骤s1、初始化阶段
48.如图2所示,安全硬件随机生成私钥skxclient,根据私钥skxclient生产公钥pkxclient,同时根据芯片id生成唯一的clientid;并向服务器提交{clientid,pkxclient}进行注册,注册完成后,服务器返回{aes_secret,pks},服务器和安全硬件均做持久化保存。密码管理app使用口令完成在服务器上的登录认证,口令认证完成后密码管理app保存有服务器公钥pks,服务器保存有密码管理app标识xapp及公钥pkxapp。服务器在密码管理app认证时保存密码管理app标识xapp及公钥pkxapp;安全硬件向服务器注册时,服务器保存{clientid,pkxclient},并创建aes_secret,发送{aes_secret,pks}给安全硬件保存。
49.步骤s2、认证阶段,如图3所示,包括如下步骤:
50.步骤21、安全硬件将clientid和公钥pkxclient发送给密码管理app;
51.步骤22、密码管理app将所述clientid和自身标识xapp发送给服务器,以向服务器发起认证;
52.步骤23、服务器通过安全硬件标识clientid索引安全硬件的公钥并以签名包的形式发送给密码管理app;
53.步骤24、密码管理app验证消息签名后,确认服务器发送的安全硬件公钥与获取的安全硬件公钥pkxclient一致,则生成随机数na,并使用安全硬件公钥加密na和密码管理app标识xapp和公钥pkxapp,生成数据包ma发送给安全硬件;
54.步骤25、安全硬件解密数据包ma,获得随机数na和密码管理app的标识xapp和公钥pkxapp并保存,开启对于密码管理app的认证,使用对称加密秘钥secretxclients加密自身标识clientid和app标识xapp,生成消息ms1;
55.步骤26、密码管理app获取消息ms1,添加本地存储的安全硬件标识clientid和自身标识xapp后,发送给服务器;
56.步骤27、服务器通过clientid索引得到安全硬件对称加密秘钥secretxclients,使用secretxclients对消息ms1进行解密,获取安全硬件要验证的app标识xapp,再次通过索引得到app的公钥。将索引到的app公钥使用secretxclients进行加密得到密文sstr,加密后的字符再添加接收到的密码管理app标识xapp后进行签名,得到消息ms2发送给密码管理app;
57.步骤28、密码管理app验证签名包且消息包内标识与自身一致后,将密文部分使用
pkxclient加密以消息mc3发送给安全硬件;
58.步骤29、安全硬件对消息mc3解密得到密文sstr,使用secretxclients对sstr进行再次解密,验证服务器发来的密码管理app公钥与之前保存的密码管理app公钥一致后,生成新的随机数nb,并将接收到的随机数na和自身的标识clientid,使用密码管理app公钥pkxapp进行加密后得到消息ms4发送给密码管理app;
59.步骤210、密码管理app解密消息ms4后,验证消息中的随机数和安全硬件标识是否与之前保存的信息一致,如果都一致,则保存获取到的随机数nb,作为后续业务通信的加密秘钥,同时将使用安全硬件公钥加密后的nb发送给安全硬件;
60.步骤s211、安全硬件解密消息后,确认消息中的随机数与保存的nb一致后,完成互认证过程。
61.步骤s3、通信阶段
62.步骤s31、绑定步骤
63.认证完成后,如果安全硬件没有绑定密码管理app,则将密码管理app的公钥保存,之后只有通过一致性验证通信包,才会被安全硬件处理并响应。
64.步骤s32、加密步骤,如图4所示,包括以下步骤:
65.步骤s321、将需要进行业务加密的明文密码和密码管理app自身的标识xapp,使用互认证过程协商的秘钥nb加密后,发送到安全硬件;
66.步骤s322、安全硬件使用互认证过程中的nb解密消息后,将密码字段使用业务密码进行单独对称加密后,得到密文密码,并使用相互认证过程协商的na进行二次加密后,发送给密码管理app;
67.步骤s323、密码管理app使用na解密消息后,获取密码密文enc_txt,并存储在本地或云端。
68.步骤s33、解密步骤,如图5所示,包括以下步骤:
69.步骤s331、将需要进行解密的密文密码和密码管理app自身的标识xapp,使用互认证过程协商的秘钥nb加密后,发送到安全硬件;
70.步骤s332、安全硬件使用互认证过程中的nb解密消息后,将密码字段使用业务密码进行单独对称解密后,得到密码明文password,并使用相互认证过程协商的na进行二次加密后,发送给密码管理app;
71.步骤s333、密码管理app使用na解密消息后,获取密码明文password。
72.本发明方法利用服务器做可信中心,实现密码管理app和安全硬件之间的互认证,且此互认证协议广泛适用于通信中间节点(密码管理app)的场景,认证过程具有前向后向安全性,机密性,认证过程能有效抗跟踪攻击,假冒攻击,重放攻击。互认证基础上,密码管理app与安全硬件的加密流程、解密流程解决了密码管理app的安全性依赖开发商的软件代码质量的问题;即使密码管理app本地存储信息和云端存储信息被别有攻击者获取,在没有安全硬件的情况下,攻击者依然无法解密存储的密码信息。
73.攻击模型与安全分析
74.为了更好的讨论本发明中涉及的安全问题,首先建立合适的攻击模型,在规定的安全范围内进行讨论。一般来说,攻击模型包括攻击者能力假设与攻击手段假设。
75.1)攻击者能力假设
76.由于密码管理app与服务器通过互联网信道传输数据,因此两者之间的通信过程暴露在开发的外部环境中,这意味着两者的通信包可能被攻击者全部监听并加工转发。密码管理app与安全硬件之间的通信虽然不通过互联网,但是使用无线信道,攻击者依然伪装成合法用户,同时可以发起与安全硬件或密码管理app之间的用户通信。
77.a.使用dolev-yao攻击模型
78.dolev-yao攻击模型,被大多数研究者所接受,并作为攻击通信协议的标准模型。在攻击模型中,攻击者的特征如下:
79.攻击者可以得到通信网络上的所有消息;
80.攻击者可以接收网络中任意用户发送的消息;
81.攻击者可以伪装成网络中的任意一个合法用户,同时可以发起与任意其它用户的通信;
82.攻击者可以伪装成任何任意合法用户向网络中任意其他用户发送消息。
83.在攻击模型中,攻击者完全控制了整个通信网络,既可以发送任意消息给网络中的其他用户,也可以从网络中接收任意其他用户发送的消息。但是攻击者受限于常见的知识,它的能力也不是无限放大的,无法完成下列事情:
84.攻击者不能猜测出从足够大的空间中选出的随机数;
85.攻击者不能在没有正确的密胡情况下,将给定的任意密文解密成明文;
86.攻击者不能攻破己知的安全的公钥算法,依据已知的公销推出该算法下对应的私钥;
87.攻击者也不能无视完善的对称加密算法,将已知的明文构造成该算法下的正确的密文;
88.攻击者不能违背已知的知识,如控制网络环境中离线主体的存储器等。
89.b.本发明提出的攻击者能力假设
90.基于上述攻击模型,本发明中对攻击者能力做出如下假设:
91.攻击者可以做到的事情:
92.1.攻击者拥有获取互联网网络空间中密码管理app与服务器通信数据的能力;
93.2.攻击者具备强大的计算能力,可以破解时间复杂度为多项式的函数;
94.3.攻击者能够伪装成密码管理app或安全硬件任何一方给对方发送任何消息。
95.4.攻击者可以伪装成密码管理app或安全硬件任何一方接收对方发送的信息;
96.攻击者无法做到的事情:
97.1.假设服务器内部与数据库之间的通信信道是安全可靠的,攻击者不具备侵入后台数据库的能力,也无法截获内部网络信道上的消息;
98.2.攻击者不能猜到随机数发生器从足够大空间中选出的随机数;
99.3.攻击者不能通过物理的方法得到安全硬件上的信息数据;
100.4.攻击者不具有破解数学难题的能力;
101.2)攻击手段假设
102.针对的主要安全攻击可分为主动攻击和被动攻击两种类型。
103.主动攻击是指:通过物理或者软件方法,利用安全硬件中处理器的通用通信接口,通过发送指令获取安全硬件信息、获取安全硬件主动发出的请求消息,寻求安全协议、加密
算法的弱点,进行删除或篡改安全硬件内容的攻击;或者通过干扰广播、阻塞信道或其他手段,产生异常的应用环境,使合法处理器产生故障,影响应用系统正常使用。
104.被动攻击主要是指:使用窃听技术,来获得服务器与密码管理app及密码管理app与安全硬件之间的通信数据;进而配合其他攻击手段获取更多信息。
105.具体来说,本发明中的方法可以阻止的攻击手段有:物理攻击、窃听、跟踪攻击、前向安全、安全硬件伪造、非法访问、篡改攻击、重放攻击。
106.1.物理攻击
107.物理攻击是攻击者利用安全硬件的某些物理特性对安全硬件进行攻击。这种攻击的攻击成本高,一般是在实验室环境下完成这种攻击。
108.防范措施:
109.安全硬件本身拥有安全芯片,包括安全算法协处理器、安全环境控制模块、主动防护层,攻击者无法通过物理攻击获取安全硬件内部全部信息。
110.2.窃听攻击
111.安全硬件与密码管理app的通信信道是无线信道,因此攻击者发起窃听攻击,很容易得到通信包。窃听攻击是一种十分常见的攻击手段,攻击者一般利用窃听到的数据配合其他手段进行攻击。
112.防范措施:
113.本实施例涉及的协议中在互认证过程和后期通信过程,对安全硬件与密码管理app的消息进行加密,这样即使攻击者发起窃听攻击,得到的也是加密后的消息,无法威胁系统的安全。
114.3.跟踪攻击
115.当密码管理app向安全硬件发送查询求,安全硬件收到请求消息返回的响应都是一个固定或一个有规律的信息时,攻击者就可以利用安全硬件的这个应答消息对标签持续发送询问信息来实现对标签的跟踪。
116.防范措施:
117.密码管理app与安全硬件正常通信前需要向服务器完成互认证。
118.4.前向安全性
119.前向安全也叫数据演绎,当攻击者已经得到了安全硬件当前信息时,并且攻击者利用已经得到的知识,使用数据演择的方法,从标签的当前信息和窃听到的信息演绎出下一次认证中有用的信息。比如一个安全协议中每次安全验证都要更新密朗,若安全协议不能保证前向安全,则攻击者很容易通过已知的标签密铜进而推导出标签下一次的密朗,从而通过系统的身份认证,威胁系统安全。
120.防范措施:
121.每一次互认证的随机数都不同,即使用随机数加密后的通信包每次都不相同可以解决这个问题。
122.5.伪造攻击
123.攻击者通过某种攻击手段获取安全硬件的秘密(比如安全硬件公钥或安全硬件标识符),攻击者就可以伪装成一个合法安全硬件与密码管理app通信,从而有机会通过密码管理app的验证。这种攻击方法是系统安全面临的常见攻击手段,因此一个安全的协议要确
保标签的秘密数据是动态刷新的,这样即使攻击者已知标签某次通信过程中的部分秘密,在后面的通信过程中也不能构造正确的信息来通过阅读器的验证。
124.防范措施:
125.每一次互认证的随机数都不同,即使用随机数加密后的通信包每次都不相同可以解决这个问题。
126.6.篡改攻击
127.攻击者通过窃听攻击等攻击手段通过了服务器的验证,进而行恶意修改其本地的账号密码等数据。
128.防范措施:
129.密码管理app中要操作加密了密码数据均需安全硬件解密后使用,当然不排除攻击者篡改账号信息,但是攻击者只有账号信息同样无法作恶。
130.7.重放攻击
131.攻击者首先通过窃听等手段获得密码管理app与安全硬件的通信内容,并且在下次通信过程中,攻击者伪装成合法一方与对方通信,重放以前截获的信息,并骗取对方的信任,从而通过身份认证。
132.防范措施:
133.为了避免这种攻击,安全协议在每次发送的数据中插入随机数,使得每次通信的数据都不同,保证消息的新鲜性,可以有效的防止重放攻击。
134.实施例2:
135.如图6所示,本发明还提供一种增强密码管理app密码安全强度装置,包括:
136.认证模块,用于利用服务器作为可信中心,进行密码管理app和安全硬件之间的相互认证;
137.加解密模块,用于认证完成后,密码管理app根据相互认证过程协商的秘钥和随机数,与安全硬件进行业务加密和解密。
138.进一步,所述密码管理app通过互联网与所述服务器通信;所述安全硬件只能与所述密码管理app直接通信,所述安全硬件与所述服务器之间通信通过密码管理app进行转发;所述服务器同时为多个密码管理app提供认证服务,且一个密码管理app拥有多个安全硬件。
139.进一步,服务器,用于存储公钥pks、每个安全硬件的标识clientid、公钥pkxclient和通信使用对称加密秘钥secretxclients以及每个密码管理app用户的公钥xapp;密码管理app,用于存储私钥skxapp和公钥xapp;安全硬件,用于存储标识clientid、私钥skxclient,公钥pkxclient、业务加解密用的对称加密密钥aes_secret。
140.本发明还提供一种存储介质,所述存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现增强密码管理app密码安全强度方法。
141.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术
方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1