发明内容
为了解决现有技术中软件身份认证时直接输入用户名和密码安全性不高、使用不够方便的问题,本发明提供了一种软件身份认证的方法,首先获取用户名和密码,并将所述用户名和密码写入智能密钥装置中,然后执行以下步骤:
步骤A:将所述智能密钥装置与计算机连接,申请软件身份验证;
步骤B:所述智能密钥装置验证用户的身份是否合法,如果合法则执行步骤C,否则结束;
步骤C:从所述智能密钥装置中读出用户名和密码;
步骤D:将所述读出的用户名和密码与软件数据库中的用户名和密码进行比对,如果一致,则验证通过;如果不一致,则提示出错信息,拒绝所述用户登录。
所述智能密钥装置通过USB接口或串行ATA(Advanced Technology Attachment,高级技术配件)接口与计算机连接。
所述步骤B中所述智能密钥装置验证用户的身份是否合法的步骤具体为验证用户输入的PIN码或验证用户的生物特征。
所述智能密钥装置中内置有加密算法和解密算法,将所述用户名和密码写入所述智能密钥装置的步骤还包括利用所述加密算法对写入的用户名和密码进行加密的步骤,从所述智能密钥装置中读出用户名和密码的步骤还包括利用所述解密算法对所述读出的用户名和密码进行解密的步骤。
所述智能密钥装置中至少存储一组用户名和密码。
本发明还提供了一种软件身份认证的系统,所述系统包括:
(1)获取模块,用于获取用户名和密码;
(2)存储模块,用于将所述获取模块获取的用户名和密码写入智能密钥装置中;
(3)读取模块,用于在所述智能密钥装置验证用户的身份为合法之后,从所述智能密钥装置中读出用户名和密码;
(4)比对模块,用于将所述读取模块读出的用户名和密码与软件数据库中的用户名和密码进行比对,并返回验证成功或失败的结果。
首先获取用户名和密码,对所述密码进行变换处理,并将所述用户名和变换处理后的密码写入智能密钥装置中,然后执行以下步骤:
步骤A’:将所述智能密钥装置与计算机连接,申请软件身份验证;
步骤B’:所述智能密钥装置验证用户的身份是否合法,如果合法则执行步骤C’,否则结束;
步骤C’:从所述智能密钥装置中读出用户名和密码;
步骤D’:将所述用户名和密码与软件数据库中的用户名和密码进行比对,如果一致,则验证通过;如果不一致,则提示出错信息,拒绝所述用户登录。
所述变换处理为可逆变换;所述步骤C’之后还包括对所述读出的密码进行所述可逆变换的反变换的步骤。
所述可逆变换为采用固定数结合DES、3DES、AES或XOR算法对所述密码进行运算。
所述变换处理为可逆变换或不可逆变换,或者是重新建立一个与所述密码无关的新密码;所述步骤A’之前还包括将软件数据库中的密码改写为所述变换处理后的密码的步骤。
所述方法在完成软件身份认证之后还包括:
对从所述智能密钥装置中读出的密码进行再次变换处理,并将所述智能密钥装置和软件数据库中的密码均改写为再次变换处理后的密码。
所述再次变换处理为对所述读出的密码进行可逆变换或不可逆变换,或者是重新建立一个与所述读出的密码无关的新密码。
所述可逆变换为采用固定数结合DES、3DES、AES或XOR算法对所述读出的密码进行运算。
所述不可逆变换为采用SHA1、MD5或SHA256算法对所述读出的密码进行运算,或者是采用随机数结合DES、3DES、AES或XOR算法对所述读出的密码进行运算。
所述智能密钥装置通过USB接口或串行ATA接口与计算机连接。
所述智能密钥装置验证用户的身份是否合法的步骤具体为验证用户输入的PIN码或验证用户的生物特征。
所述智能密钥装置中内置有加密算法和解密算法,将所述用户名和密码写入所述智能密钥装置的步骤还包括利用所述加密算法对写入的密码进行加密的步骤,从所述智能密钥装置中读出用户名和密码的步骤还包括利用所述解密算法对所述读出的密码进行解密的步骤。
所述智能密钥装置中至少存储一组用户名和密码。
本发明还提供了一种软件身份认证的系统,所述系统包括:
(1)获取模块,用于获取用户名和密码;
(2)变换模块,用于对所述获取模块获取的密码进行变换处理;
(3)存储模块,用于将所述获取模块获取的用户名和所述变换模块变换处理后得到的密码写入智能密钥装置中;
(4)读取模块,用于在所述智能密钥装置验证用户的身份为合法之后,从所述智能密钥装置中读出用户名和密码;
(5)比对模块,用于将所述读取模块读出的用户名和密码与软件数据库中的用户名和密码进行比对,并返回验证成功或失败的结果。
所述变换处理具体为可逆变换;所述比对模块具体为:
反变换比对模块,用于先对所述读取模块读出的密码进行所述可逆变换的反变换,再将所述读取模块读出的用户名和所述反变换后得到的密码与软件数据库中的用户名和密码进行比对,并返回验证成功或失败的结果。
所述变换处理具体为可逆变换或不可逆变换,或者是重新建立一个与所述密码无关的新密码;
所述系统还包括:
数据库更新模块,用于将软件数据库中的密码改写为所述变换处理后的密码。
所述系统还包括:
密码重建模块,用于对所述读取模块读出的密码进行再次变换处理,并将所述智能密钥装置和软件数据库中的密码均改写为再次变换处理后的密码。
所述再次变换处理为可逆变换或不可逆变换,或者是重新建立一个与所述读取模块读出的密码无关的新密码。
本发明的有益效果是:
1、用户将用户名和密码存放在智能密钥装置中,有效地防止了密码泄露;
2、将经过变换的密码保存在智能密钥装置中,极大地提高了用户名和密码的安全性;
3、用户不需记住用户名和密码,只需记忆智能密钥装置的PIN码或提供个人生物特征即可,从而减少了用户需要记忆的内容;
4、采用了软硬件相结合的强双因子认证模式,即通过智能密钥装置和“用户名/密码”相结合的方式来验证,相对目前用户直接输入用户名和密码方式进行软件认证的方式更安全可靠,而且很好地解决了安全性与易用性之间的矛盾;
5、智能密钥装置可以存放多组用户名和密码,为用户的使用提供了很大的便利;
6、针对目前广泛采用的单纯“用户名/密码”方式的身份验证方法而言,需要做的改动非常小,简单易行。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
本发明中的软件均指需要进行身份认证的软件。
实施例一
参见图1,本发明提供了一种软件身份认证的方法,首先在智能密钥装置中写入用户名和密码,即执行以下步骤:
步骤101:获取原始用户名和密码PW;
获取原始用户名和密码的方法可以是通过用户输入的方法获取,也可以通过查询软件数据库的方法获取;
步骤102:用户将获取的原始用户名和密码PW写入智能密钥装置中;
当智能密钥装置中内置有加密和解密算法时,智能密钥装置会利用加密算法对写入其中的密码PW进行加密处理,生成PW’后以密文形式存储在智能密钥装置中;
当需要进行软件身份认证时,执行以下步骤:
步骤103:将智能密钥装置与计算机连接;
步骤104:用户输入PIN码用来验证其是否为该智能密钥装置的合法持有者;
步骤105:智能密钥装置验证用户输入的PIN是否正确,如果不正确,说明用户不是智能密钥装置的合法持有者,则执行步骤106,否则说明用户是智能密钥装置的合法持有者,则执行步骤107;
步骤106:智能密钥装置提示出错信息,拒绝用户使用智能密钥装置,并做异常处理,然后结束;
步骤107:用户启动软件,申请进行软件身份验证;
步骤108:软件从智能密钥装置中读出用户名和密码;
如果智能密钥装置中没有内置加密和解密算法,则读出的密码就是原始密码PW,如果智能密钥装置中内置有加密和解密算法,则读出密码时智能密钥装置会自动利用解密算法解密密文PW’得到PW,因此读出的密码也是原始密码PW;
步骤109:软件比对从智能密钥装置中读出的用户名和密码与软件数据库中的用户名和密码,如果一致,说明用户的用户名和密码有效,通过验证,则用户可以使用软件;如果不一致,说明用户名和密码无效,用户不能通过验证,则软件提示出错信息,拒绝用户登录。
实施例二
为了提高软件身份认证的安全性,在将用户名和密码存入智能密钥装置之前,还可以对密码进行可逆变换。与实施例一不同的是,本实施例对从软件数据库中获取的原始密码先进行可逆变换,然后再存入智能密钥装置中;软件身份验证时,对从智能密钥装置中读出的密码先进行可逆变换的反变换,然后再验证。
参见图2所示,本发明还提供了一种软件身份认证的方法,首先执行在智能密钥装置中写入用户名和密码的步骤:
步骤201:获取原始用户名和密码PW;
获取原始用户名和密码的方法可以是通过用户输入的方法获取,也可以通过查询软件数据库的方法获取;
步骤202:用户对获取的原始密码PW进行可逆变换,如采用固定数结合DES、3DES、AES或XOR等算法对原始密码进行可逆变换,得到新的密码PW’;
步骤203:用户将用户名和变换后的密码PW’写入智能密钥装置中;
当智能密钥装置中内置有加密和解密算法时,智能密钥装置会利用加密算法对写入其中的密码PW’进行加密处理,生成PW”后以密文形式存储在智能密钥装置中;
当需要进行软件身份认证时,执行以下步骤:
步骤204:将智能密钥装置与计算机连接;
步骤205:用户输入PIN码用来验证其是否为该智能密钥装置的合法持有者;
步骤206:智能密钥装置验证用户输入的PIN是否正确,如果不正确,说明用户不是智能密钥装置的合法持有者,则执行步骤207,否则说明用户是智能密钥装置的合法持有者,则执行步骤208;
步骤207:智能密钥装置提示出错信息,拒绝用户使用智能密钥装置,并做异常处理,然后结束;
步骤208:用户启动软件,申请进行软件身份验证;
步骤209:软件从智能密钥装置中读出用户名和密码;
如果智能密钥装置中没有内置加密和解密算法,则读出的密码为PW’即经过变换后的密码;如果智能密钥装置中内置有加密和解密算法,则读出密码时智能密钥装置会自动利用解密算法解密密文PW”得到PW’,因此读出的密码也是密码PW’;
步骤210:软件对读出的密码PW’进行上述可逆变换的反变换,得到原始密码PW;
步骤211:软件对从智能密钥装置中读出的用户名和反变换得到的密码与软件数据库中的用户名和密码进行比对,如果一致,说明用户的用户名和密码有效,通过验证,则用户可以使用软件;如果不一致,说明用户名和密码无效,用户不能通过验证,则软件提示出错信息,拒绝用户登录。
实施例三
与实施例二不同的是,本实施例对从软件数据库中获取的原始密码进行变换后,不仅存入智能密钥装置中,也存入软件数据库中,即将软件数据库中的密码改写为变换后的密码;软件身份验证时,从智能密钥装置中读出的密码即变换后的密码,用它来进行验证。本实施例中的变换可以是可逆变换或不可逆变换,还可以是抛弃原密码重新创建一个新密码,使密码的安全性更高。
参见图3,本发明还提供了一种软件身份认证的方法,首先在智能密钥装置中写入用户名和密码,即执行以下步骤:
步骤301:获取原始用户名和密码PW;
获取原始用户名和密码的方法可以是通过用户输入的方法获取,也可以通过查询软件数据库的方法获取;
步骤302:用户利用变换模块对原始密码PW进行变换;
对原始密码进行的变换可以是可逆变换,如采用固定数结合DES、3DES、AES或XOR等算法实现;还可以是不可逆变换,如用SHA1、MD5或SHA256等算法实现,或者采用随机数结合DES、3DES、AES或XOR等算法实现;还可以抛弃原始密码,重新建立一个密码,新建的密码与原始密码没有任何关系;变换后得到的密码为PW’;
步骤303:用户利用软件自带的修改密码功能将软件数据库中的密码PW改写为变换后的密码PW’;
步骤304:用户将用户名和变换后的密码PW’写入智能密钥装置中;
当智能密钥装置中内置有加密和解密算法时,智能密钥装置会利用加密算法对写入其中的密码PW’进行加密处理,生成PW”后以密文形式存储在智能密钥装置中;
当需要进行软件身份认证时,执行以下步骤:
步骤305:将智能密钥装置与计算机连接;
步骤306:用户输入PIN码用来验证其是否为该智能密钥装置的合法持有者;
步骤307:智能密钥装置验证用户输入的PIN是否正确,如果不正确,说明用户不是智能密钥装置的合法持有者,则执行步骤308,否则说明用户是智能密钥装置的合法持有者,则执行步骤309;
步骤308:智能密钥装置提示出错信息,拒绝用户使用智能密钥装置,并做异常处理,然后结束;
步骤309:用户启动软件,申请进行软件身份验证;
步骤310:软件从智能密钥装置中读出用户名和密码;
如果智能密钥装置中没有内置加密和解密算法,则读出的密码为PW’即经过变换后的密码;如果智能密钥装置中内置有加密和解密算法,则读出密码时智能密钥装置会自动利用解密算法解密密文PW”得到PW’,因此读出的密码也是密码PW’;
步骤311:软件比对读出的用户名和密码与软件数据库中的用户名和密码,如果一致,说明用户的用户名和密码有效,通过验证,则用户可以使用软件;如果不一致,说明用户名和密码无效,用户不能通过验证,则软件提示出错信息,拒绝用户登录。
实施例四
与上述所有实施例不同的是,上述所有实施例中的密码都可以重复使用,而本实施例中变换后的密码只能使用一次,即一次一密模式,更提高了密码使用的安全性;本实施例中在完成软件身份认证后,需要重新生成新的密码,并存放在软件数据库和智能密钥装置中,以备以后使用。
参见图4,本发明还提供了一种软件身份认证的方法,首先在智能密钥装置中写入用户名和密码,即执行以下步骤:
步骤401:获取原始用户名和密码PW;
获取原始用户名和密码的方法可以是通过用户输入的方法获取,也可以通过查询软件数据库的方法获取;
步骤402:用户利用变换模块对原始密码PW进行变换;
对原始密码进行的变换可以是可逆变换,如采用固定数结合DES、3DES、AES或XOR等算法实现;还可以是不可逆变换,如用SHA1、MD5或SHA256等算法实现,或者采用随机数结合DES、3DES、AES或XOR等算法实现;还可以抛弃原始密码,重新建立一个密码,新建的密码与原始密码没有任何关系;变换后得到的密码为PW’;
步骤403:用户利用软件自带的修改密码功能将软件数据库中的密码PW改写为变换后的密码PW’;
步骤404:用户将用户名和变换后的密码PW’写入智能密钥装置中;
当智能密钥装置中内置有加密和解密算法时,智能密钥装置会利用加密算法对写入其中的密码PW’进行加密处理,生成PW”后以密文形式存储在智能密钥装置中;
当需要进行软件身份认证时,执行以下步骤:
步骤405:将智能密钥装置与计算机连接;
步骤406:用户输入PIN码用来验证其是否为该智能密钥装置的合法持有者;
步骤407:智能密钥装置验证用户输入的PIN是否正确,如果不正确,说明用户不是智能密钥装置的合法持有者,则执行步骤408,否则说明用户是智能密钥装置的合法持有者,则执行步骤409;
步骤408:智能密钥装置提示出错信息,拒绝用户使用智能密钥装置,并做异常处理,然后结束;
步骤409:用户启动软件,申请进行软件身份验证;
步骤410:软件从智能密钥装置中读出用户名和密码;
如果智能密钥装置中没有内置加密和解密算法,则读出的密码为PW’即经过变换后的密码;如果智能密钥装置中内置有加密和解密算法,则读出密码时智能密钥装置会自动利用解密算法解密密文PW”得到PW’,因此读出的密码也是密码PW’;
步骤411:软件比对读出的用户名和密码与软件数据库中的用户名和密码,如果一致,说明用户的用户名和密码有效,通过验证,则用户可以使用软件;如果不一致,说明用户名和密码无效,用户不能通过验证,则软件提示出错信息,拒绝用户登录;
完成软件身份认证后,由于密码已经失效,需要重新生成一个密码以备以后使用,因此本实施例还要执行以下步骤:
步骤412:利用变换模块对从智能密钥装置中读出的密码PW’进行再次变换;
再次变换可以是可逆变换,如采用固定数结合DES、3DES、AES或XOR等算法实现;还可以是不可逆变换,如利用SHA1、MD5或SHA256等算法实现,或者采用随机数结合DES、3DES、AES或XOR等算法实现;还可以抛弃现在的密码PW’,重新建立一个密码,新建的密码与抛弃的密码没有任何关系;经过再次变换后得到的密码为PW1;
步骤413:用户将新生成的密码PW1写入智能密钥装置中;
当智能密钥装置中内置有加密和解密算法时,智能密钥装置会利用加密算法对写入其中的密码PW1进行加密处理,生成PW1’后以密文形式存储在智能密钥装置中,以备下次使用;
步骤414:用户利用软件自带的修改密码功能将软件数据库中的密码PW’改写为新生成的密码PW1,以备下次使用。
上述所有实施例中的智能密钥装置可以存储一组或多组用户名和密码,对应一个或多个软件,当存储有多组用户名和密码时,可以完成对多个软件的身份认证。
上述所有实施例中用户输入PIN码,智能密钥装置验证该PIN码是否正确的步骤均可以由用户输入生物特征,智能密钥装置验证该生物特征是否正确的步骤替换。
实施例五
参见图5,本发明还提供了一种软件身份认证的系统,包括:
(1)获取模块,用于获取用户名和密码;
(2)存储模块,用于将获取模块获取的用户名和密码写入智能密钥装置中;
(3)读取模块,用于在智能密钥装置验证用户的身份为合法之后,从智能密钥装置中读出用户名和密码;
(4)比对模块,用于将读取模块读出的用户名和密码与软件数据库中的用户名和密码进行比对,并返回验证成功或失败的结果。
智能密钥装置验证用户的身份是指验证用户输入的PIN码或验证用户的生物特征,当验证用户的身份不合法时,则智能密钥装置提示错误信息并进行异常处理。
本实施例中的智能密钥装置可以存储一组或多组用户名和密码,对应一个或多个软件,当存储有多组用户名和密码时,可以完成对多个软件的身份认证。
实施例六
参见图6,本发明还提供了一种软件身份认证的系统,包括:
(1)获取模块,用于获取用户名和密码;
(2)变换模块,用于对获取模块获取的密码进行变换处理;
(3)存储模块,用于将获取模块获取的用户名和变换模块变换处理后得到的密码写入智能密钥装置中;
(4)读取模块,用于在智能密钥装置验证用户的身份为合法之后,从智能密钥装置中读出用户名和密码;
(5)比对模块,用于将读取模块读出的用户名和密码与软件数据库中的用户名和密码进行比对,并返回验证成功或失败的结果。
当变换处理具体为可逆变换时,比对模块具体为:
反变换比对模块,用于先对读取模块读出的密码进行可逆变换的反变换,再将读取模块读出的用户名和反变换后得到的密码与软件数据库中的用户名和密码进行比对,并返回验证成功或失败的结果。
当变换处理具体为可逆变换或不可逆变换,或者是重新建立一个与密码无关的新密码时;系统还包括:
数据库更新模块,用于将软件数据库中的密码改写为变换处理后的密码。
上述情况智能密钥装置和软件数据库中的密码均可以重复使用,即可以多次使用。在对系统安全性要求较高的情况下,需要一次一密,即密码使用过后就失效,不能重复使用,因此需要重建密码,以备后续使用,因此需要在系统中增加:
密码重建模块,用于对读取模块读出的密码进行再次变换处理,并将智能密钥装置和软件数据库中的密码均改写为再次变换处理后的密码。
再次变换处理为可逆变换或不可逆变换,或者是重新建立一个与读取模块读出的密码无关的新密码。
在本实施例中,所有可逆变换均指采用固定数结合DES、3DES、AES或XOR算法对密码进行运算;所有不可逆变换均指采用SHA1、MD5或SHA256算法对密码进行运算,或者是采用随机数结合DES、3DES、AES或XOR算法对密码进行运算。
智能密钥装置验证用户的身份是指验证用户输入的PIN码或验证用户的生物特征,当验证用户的身份不合法时,则智能密钥装置提示错误信息并进行异常处理。
本实施例中的智能密钥装置可以存储一组或多组用户名和密码,对应一个或多个软件,当存储有多组用户名和密码时,可以完成对多个软件的身份认证。
实施例一至实施例六中的智能密钥装置通过USB接口或串行ATA接口与计算机连接。
以上所述的实施例,只是本发明较优选的具体实施方式的几种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。