本发明涉及通信安全、存储安全领域,尤其是涉及一种便携式移动口令管理系统及其管理方法。
背景技术:
随着网络技术的快速发展和“互联网+”理念的普及,网络应用的数量呈现高速增长的趋势。人们为了享受网络各项服务带来的便利,通常需要在不同的网络应用中注册多个不同的账户。然而,如此多的账户口令若是未能实现科学的管理,就会存在很大的安全隐患。
目前黑客针对口令的攻击方法主要有以下几项:对弱口令进行猜测或字典攻击的攻击方法;针对不同应用中相同账户名和口令的撞库攻击方法;服务器记录错误口令以尝试其他应用的攻击方法。对于以上提到的攻击方法,目前最有效的缓解策略只能是让用户自行为每个不同的账户设置各不相同的高强度口令,并准确记忆。在现实生活中,能够做到这些的用户少之又少,导致口令泄漏事件频发。
目前口令的安全管理方面主要有以下几个问题。
第一,用户为了便于记忆,在注册的过程中,多使用强度较低的口令,而且长期不修改。在这种情况下,口令很容易通过社会工程学、猜测或字典攻击的方法被黑客窃取,引起安全问题。
第二,用户在使用不同应用时,为了不增添自己记忆口令的负担,常选择使用完全相同的账户名和口令注册这些应用。一旦一组账户名和口令被窃取,多个应用中的信息都将受到安全威胁。
第三,用户对不同账号设置不同口令后,有时无法准确对应,发生混淆。在这种情况下,某些服务器会利用后台记录的错误口令对其他应用中的账户进行口令猜测,从而产生安全威胁。
第四,为简化登录流程,部分用户会在应用中设置“记住密码”选项。此选项将在登录时帮助用户自动填充账户名与口令,但同时也会带来很多安全问题。大部分“记住密码”功能是利用本地数据库实现的。黑客如果能够破解本地数据库,就可以直接获得用户口令。
技术实现要素:
针对上述问题,本发明的目的是提供一种便携式移动口令管理系统及其管理方法,在保证用户体验的同时,帮助管理并更新其各个账号的密钥,极大地提高了账号使用的安全性。
为实现上述目的,本发明采取以下技术方案:一种便携式移动口令管理系统,其特征在于:其包括移动端系统和个人电脑端,所述移动端系统和个人电脑端通过无线通信进行数据传输;所述移动端系统包括用户接口模块、身份认证模块、linux驱动模块、加密模块、通信安全模块、数据存储模块和第一数据传输模块;所述用户接口模块用于为用户提供接口,便于用户输入账户相关信息并进行账户口令和指纹管理;所述身份认证模块用于采集用户的指纹信息以及对用户身份进行认证,采集的指纹信息通过所述linux驱动模块发送至所述加密模块;所述加密模块用于根据账户相关信息生成第一随机数和复杂口令,并对账户相关信息、复杂口令和输入的指纹信息进行加密,并将加密后的所有数据发送到所述数据存储模块;所述通信安全模块用于生成与所述个人电脑端进行通信密钥协商时的第二随机数,并对待传输的账户用户名和复杂口令信息进行数字签名后,发送到所述第一数据传输模块;所述数据存储模块用于存储账户相关信息、第一随机数以及加密后的用户指纹信息;所述第一数据传输模块用于所述移动端系统与所述个人电脑端的无线通信。
所述个人电脑端包括第二数据传输模块、windows驱动模块、解密模块和自动登录模块;所述第二数据传输模块用于接收所述移动端系统发送的所有数据,并通过所述windows驱动模块发送到所述解密模块;所述解密模块用于对得到的数据进行数字签名验证、解密后,发送到所述自动登录模块;所述自动登录模块用于模拟键盘自动输入接收到的账户用户名和复杂口令信息。
所述加密模块包括指纹加密模块、第一随机数生成模块、口令生成模块和口令加密模块;所述指纹加密模块用于对用户录入的指纹信息进行加密,并将加密后的指纹数据发送到所述数据存储模块;所述第一随机数生成模块用于根据用户输入的账户信息,生成与该账户唯一对应的第一随机数,并发送到所述数据存储模块;所述口令生成模块用于根据用户输入的账户信息、第一随机数以及系统主密钥生成该账户的复杂口令,并发送到所述口令加密模块;所述口令加密模块用于根据通信密钥对待传输的账户用户名和复杂口令信息进行加密,并发送到所述通信安全模块。
所述通信安全模块包括第二随机数生成模块和数字签名模块;所述第二随机数生成模块用于根据unix时间戳,生成与所述个人电脑端进行通信密钥协商时的第二随机数,并通过所述第一数据传输模块发送到所述个人电脑端;所述数字签名模块用于对接收到的加密后的账户用户名和复杂口令信息进行数字签名,并通过所述第一数据传输模块发送到所述个人电脑端。
所述解密模块包括通信密钥生成模块、数字签名验证模块和口令解密模块;所述通信密钥生成模块用于根据所述移动端系统发送的第二随机数生成通信密钥,并通过所述第二数据传输模块返回所述移动端系统;所述数字签名验证模块用于对接收到的数据进行数字签名的验证,并将验证通过后的数据发送到所述口令解密模块;所述口令解密模块用于对加密后的账户用户名和口令信息进行解密,并发送到所述自动登录模块。
一种基于所述系统的便携式移动口令管理系统的管理方法,其特征在于包括以下步骤:1)当用户接口模块接收到用户添加指纹认证的请求后,身份认证模块采集用户首次录入的指纹信息,并由指纹加密模块加密后存储在数据存储模块中;2)当身份认证模块接收到用户再次录入的指纹信息时,根据移动端系统中存储的用户指纹数据,对用户身份进行认证;3)认证通过后,用户通过用户接口模块输入其各账户的相关信息,进行旧口令的存储或新口令的更新;4)当用户接口模块接收到用户需要使用某一账户口令的请求信号时,口令生成模块根据该账户的相关信息以及第一随机数,生成该账户的复杂口令;5)当用户接口模块接收到用户需要发送某一账户口令的请求信号时,移动端系统通过无线通信与个人电脑端进行密钥协商,得到一个通信密钥;6)移动端系统中的口令加密模块根据得到的通信密钥,对该账户的用户名和复杂口令进行加密,并发送到数字签名模块;7)移动端系统中的数字签名模块采用sm2椭圆公钥算法对加密后的账户用户名和复杂口令进行数字签名,并通过第一数据传输模块将加密后的账户用户名和复杂口令信息及其数字签名发送到个人电脑端;8)个人电脑端接收到相应信息后,由解密模块对接收到的数据进行验签和解密,并将解密后的账户用户名和复杂口令数据发送到自动登录模块实现个人电脑端的自动输入。
所述步骤3)中,进行旧口令的存储或新口令的更新的方法为:若选择存储旧口令,则口令加密模块采用zuc算法对用户的旧口令进行流加密,并将该账户的用户名、账户所属应用名以及加密后的旧口令发送到数据存储模块中进行存储;若选择更新新口令,则第一随机数生成模块根据该账户的相关信息生成一个与该账户唯一对应的第一随机数,并将该账户的用户名、账户所属应用名以及与该账户唯一对应的随机数发送到数据存储模块中进行存储。
所述步骤4)中,口令生成模块生成账户复杂口令的方法为:口令生成模块从数据存储模块中提取该账户的所有数据,根据该账户的所有数据中是否具有第一随机数,判断其是否需要重新生成复杂口令:若该账户信息包括第一随机数,则口令生成模块根据该账户的用户名、账户所属应用名、与该账户唯一对应的随机数以及系统主密钥,采用sm3杂凑算法将所有数据连接成字符串并进行杂凑,得到一个消息认证码,作为该账户唯一的复杂口令;若该账户信息不包括第一随机数,则不需要生成复杂口令,直接使用用户存储的旧口令。
所述步骤5)中,移动端系统与个人电脑端进行密钥协商的方法具体包括以下步骤:①移动端系统中用户接口模块接收到用户请求发送某一账户口令的请求信号,并发送到通信安全模块;②通信安全模块中第二随机数生成模块基于unix时间戳生成第二随机数,并通过第一数据传输模块发送到个人电脑端;③个人电脑端的第二数据传输模块接收到该第二随机数后,通过windous驱动模块发送到解密模块;④解密模块中通信密钥生成模块根据第二随机数生成通信密钥,并通过第二数据传输模块发送到移动端系统;⑤移动端系统和个人电脑端分别对第二随机数和通信密钥进行存储,用于之后的解密和验证签名。
本发明由于采取以上技术方案,其具有以下优点:1、本发明由于移动端系统设置有指纹加密模块,对通过身份认证模块采集的用户指纹信息进行加密后存储,保证了用户指纹信息的机密性。2、本发明中数据存储模块中不直接存储用户口令,使用时由口令生成模块基于不同账号自动生成不同复杂口令,保证了用户口令的安全存储,不被非法获取。3、本发明移动端系统通过口令加密模块对待传输的账户用户名和复杂口令进行加密,以防止信息泄露,提高了通信的安全性。4、本发明在移动端与个人电脑端进行数据传输时,采用sm2椭圆曲线公钥算法对账户用户名和口令生成数字签名,并经个人电脑端验签通过后,进行口令的自动输入,避免了传输过程中的中间人攻击,保证了数据传输的安全性。5、本发明由于采用zuc流密码算法对口令进行加密,个人电脑端在解密时可以实现“解密一位、输入一位”,避免了在个人电脑端主机中存储已解密的口令,从而保证了口令信息的安全。本发明体积小巧,能够随身携带,系统使用简单,界面对用户友好,在提高口令安全性的同时,很好地考虑了用户的使用需求,简化了用户管理口令的过程,极大地提高了口令管理系统的安全性、智能性和便携性。因而本发明可以广泛应用于口令的安全管理中。
附图说明
图1是本发明便携式移动口令管理系统的模块架构图;
图2是本发明便携式移动口令管理系统的整体架构示意图;
图3是本发明便携式移动口令管理系统的设备展示图;
图4是本发明采用的zuc流密码算法结构设计图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。然而应当理解,附图的提供仅为了更好地理解本发明,它们不应该理解成对本发明的限制。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅仅是用于描述的目的,而不能理解为指示或暗示相对重要性。
如图1~图3所示,本发明便携式移动口令管理系统包括移动端系统1和个人电脑端2,移动端系统1和个人电脑端2通过无线通信进行数据传输。
移动端系统1包括用户接口模块11、身份认证模块12、linux驱动模块13、加密模块14、通信安全模块15、数据存储模块16和第一数据传输模块17。用户接口模块11用于为用户提供接口,便于用户输入账户相关信息并进行账户口令和指纹管理;身份认证模块12用于采集用户的指纹信息以及对用户身份进行认证,采集的指纹信息通过linux驱动模块13发送至加密模块14;加密模块14用于根据账户相关信息生成第一随机数和复杂口令,并对账户相关信息、复杂口令和输入的指纹信息进行加密,并将加密后的所有数据发送到数据存储模块16;通信安全模块15用于生成与个人电脑端2进行通信密钥协商时的第二随机数,并对待传输的账户用户名和复杂口令信息进行数字签名后,发送到第一数据传输模块17;数据存储模块16用于存储账户相关信息、第一随机数以及加密后的用户指纹信息;第一数据传输模块17用于移动端系统1与个人电脑端2的无线通信。
加密模块14包括指纹加密模块、第一随机数生成模块、口令生成模块和口令加密模块。指纹加密模块用于对用户录入的指纹信息进行加密,并将加密后的指纹数据发送到数据存储模块16;第一随机数生成模块用于根据用户输入的账户信息,生成与该账户唯一对应的第一随机数,并发送到数据存储模块16;口令生成模块用于根据用户输入的账户信息、第一随机数以及系统主密钥生成该账户的复杂口令,并发送到口令加密模块;口令加密模块用于根据通信密钥对待传输的账户用户名和复杂口令信息进行加密,并发送到通信安全模块15。
通信安全模块15包括第二随机数生成模块和数字签名模块。第二随机数生成模块用于根据unix时间戳,生成与个人电脑端2进行通信密钥协商时的第二随机数,并通过第一数据传输模块17发送到个人电脑端2;数字签名模块用于对接收到的加密后的账户用户名和复杂口令信息进行数字签名,并通过第一数据传输模块17发送到个人电脑端2。
个人电脑端2包括第二数据传输模块21、windows驱动模块22、解密模块23和自动登录模块24。第二数据传输模块21用于接收移动端系统1发送的所有数据,并通过windows驱动模块22发送到解密模块23。解密模块23对得到的数据进行数字签名验证、解密后,发送到自动登录模块24;自动登录模块24用于模拟键盘自动输入接收到的账户用户名和复杂口令信息。
解密模块23包括通信密钥生成模块、数字签名验证模块和口令解密模块。通信密钥生成模块用于根据移动端系统1发送的第二随机数生成通信密钥,并通过第二数据传输模块21返回移动端系统1;数字签名验证模块用于对接收到的数据进行数字签名的验证,并将验证通过后的数据发送到口令解密模块;口令解密模块用于对加密后的账户用户名和口令信息进行解密,并发送到自动登录模块24。
上述实施例中,移动端系统1采用raspberrypi3的modeb型号。身份认证模块12采用fpm10a指纹识别硬件。第一数据传输模块17和第二数据传输模块21均采用nrf24l01无线通信芯片。
基于上述便携式移动口令管理系统,本发明还提供一种便携式移动口令管理系统的管理方法,包括以下步骤:
1)当用户接口模块11接收到用户添加指纹认证的请求后,身份认证模块12采集用户首次录入的指纹信息,并由指纹加密模块加密后存储在数据存储模块16中。
用户在首次使用时,需通过移动端系统1中的用户接口模块11,选择添加指纹信息。在此过程中,身份认证模块12将采集用户录入的指纹信息,并通过linux驱动模块13将指纹信息发送到加密模块14。加密模块14中指纹加密模块采用zuc流密码算法(祖冲之算法)对录入的指纹信息进行流加密后,将其发送到数据存储模块16中进行存储。
如图4所示,为本发明所采用的zuc流密码算法结构设计图。zuc流密码算法采用三层逻辑结构设计,主要用于实现通信过程加密、存储过程加密以及会话密钥的协商。其上层为定义在素域上的lfsr(线性反馈移位寄存器)。zuc算法的lfsr设计首次采用素域的m序列,该类序列周期长、统计特性好,且在特征为2的有限域上是非线性的,其具有线性结构弱、比特关系符合率低等优点。中间层为比特重组,比特重组采用取半合并技术,实现lfsr数据单元到非线性函数f和密钥输出的数据转换,其主要目的是破坏lfsr在素域上的线性结构。下层为非线性函数f,在非线性函数f的设计上,zuc算法设计充分借鉴了分组密码的设计技巧,采用s盒和高扩散特性的线性变换l。非线性函数f的s盒采用结构化设计方法,在具有好的密码学性质的同时降低了硬件实现代价,具有实现面积小、功耗低等特点。
2)当身份认证模块12接收到用户再次录入的指纹信息时,根据移动端系统1中存储的用户指纹数据,对用户身份进行认证。
当用户再次录入指纹时,身份认证模块12将采集用户指纹,同时从数据存储模块16中取出加密的指纹特征数据,并通过指纹加密模块对加密的指纹特征数据进行解密后,比对用户指纹与数据存储模块16中存储的指纹特征数据,对用户身份进行认证。若再次录入的用户指纹数据与数据存储模块16中存储的指纹特征数据相匹配,则允许用户对口令进行管理,否则拒绝用户的一切操作。
3)认证通过后,移动端系统1中的用户接口模块11接收用户输入的各账户的相关信息,并由加密模块14进行旧口令的存储或新口令的更新。
用户通过用户接口模块11输入其各账户的相关信息,包括账户的用户名、旧口令以及账户所属应用名。之后,用户接口模块11自动提示存储旧口令或更新新口令:
若选择存储旧口令,则口令加密模块采用zuc算法对用户的旧口令进行流加密,并将该账户的用户名、账户所属应用名以及加密后的旧口令发送到数据存储模块16中进行存储。
若选择更新新口令,则第一随机数生成模块根据该账户的相关信息生成一个与该账户唯一对应的第一随机数,并将该账户的用户名、账户所属应用名以及与该账户唯一对应的随机数发送到数据存储模块16中进行存储。
4)当用户接口模块11接收到用户需要使用某一账户口令的请求信号时,口令生成模块根据该账户的相关信息以及第一随机数,生成该账户的复杂口令。
口令生成模块从数据存储模块16中提取该账户的所有数据,根据该账户的所有数据中是否具有第一随机数,判断其是否需要重新生成复杂口令:
若该账户信息包括第一随机数,则口令生成模块根据该账户的用户名、账户所属应用名、与该账户唯一对应的随机数以及系统主密钥,采用sm3杂凑算法将所有数据连接成字符串并进行杂凑,得到一个消息认证码,作为该账户唯一的复杂口令。
若该账户信息不包括第一随机数,则不需要生成复杂口令,直接使用用户存储的旧口令即可。
5)当用户接口模块11接收到用户需要发送某一账户口令的请求信号时,移动端系统1通过无线通信与个人电脑端2进行密钥协商,得到一个通信密钥。
移动端系统1与个人电脑端2进行密钥协商的方法具体包括以下步骤:
①移动端系统1中用户接口模块11采集到用户请求发送某一账户口令的请求信号,并发送到通信安全模块15。
②通信安全模块15中第二随机数生成模块基于unix时间戳生成第二随机数,并通过第一数据传输模块17发送到个人电脑端2。
③个人电脑端2的第二数据传输模块21接收到该第二随机数后,通过windous驱动模块22发送到解密模块23。
④解密模块23中通信密钥生成模块根据第二随机数生成通信密钥,并通过第二数据传输模块21发送到移动端系统1。
⑤移动端系统1和个人电脑端2分别对第二随机数和通信密钥进行存储,用于之后的解密和验证签名。
6)移动端系统1中的口令加密模块根据得到的通信密钥,对该账户的用户名和复杂口令进行加密,并发送到数字签名模块。
7)移动端系统1中的数字签名模块采用sm2椭圆公钥算法对加密后的账户用户名和复杂口令进行数字签名,并通过第一数据传输模块17将加密后的账户用户名和复杂口令信息及其数字签名发送到个人电脑端2。
8)个人电脑端2接收到相应信息后,由解密模块23对接收到的数据进行验签和解密,并将解密后的账户用户名和复杂口令数据发送到自动登录模块实现个人电脑端2的自动输入。
个人电脑端2的第二数据传输模块21接收到账户用户名及口令信息后,通过windows驱动模块22发送到解密模块23。解密模块23中数字签名验证模块231采用sm2椭圆曲线公钥密码算法对接收到的账户用户名和口令信息的数字签名进行验签。若验签通过,则发送到口令解密模块。若验签不通过,则拒绝该口令输入,以避免传输过程中的中间人攻击。口令解密模块采用zuc流密码算法对该账户的用户名和复杂口令信息进行解密,并将解密后的账户用户名和口令信息发送到自动登录模块24,自动登录模块24将解密后的账户及口令以模拟键盘输入的方式输入到口令框中,实现自动登录。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。