密码验证方法和装置与流程

文档序号:15799657发布日期:2018-11-02 21:20阅读:240来源:国知局
密码验证方法和装置与流程

本发明涉及信息安全技术领域,特别是涉及一种密码验证方法和装置。

背景技术

在进行对智能终端的解锁、以及进行支付等操作过程中,需要输入密码,在验证之后才可完成对应的操作。其中,这些事先设置好的密码数据通常是被保存在终端内部rom中的数据区中。

然而这些密码数据通过电脑等工具将终端root(root,是计算机领域术语,在unix系统和类unix系统以及android系统中,超级用户一般命名为root。root是系统中唯一的超级用户,具有系统中所有的权限,如启动或停止一个进程,删除或增加用户,增加或禁止硬件等等)后,就可以被删除和修改。或者在终端被恢复出厂设置后,这些密码数据也会被相应的删除,导致所设置的密码失效,难以起到对用户身份的验证的作用。因此,传统的方法所设置的密码信息的安全性较低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高密码信息的安全性的密码验证方法和装置。

一种密码验证方法,所述方法包括:

接收密码录入指令;

根据所述密码录入指令获取密码待验数据;

从内存中读取存储的与所述密码待验数据对应的密码验证数据,所述密码验证数据为从安全芯片中导入到所述内存中的数据;

根据所述密码验证数据验证所述密码待验数据,生成验证结果。

在其中一个实施例中,在所述从内存中读取存储的与所述密码待验数据对应的密码验证数据之前,还包括:

从内存中分配用于存储所述密码验证数据的存储空间;

将安全芯片中存储的密码验证数据写入所述存储空间中。

在其中一个实施例中,所述方法还包括:

接收密码更改指令;

根据所述密码更改指令获取对应的更改后的密码验证数据;

将更改后的密码验证数据写入内存中;

将写入内存中的密码验证数据写入安全芯片中。

在其中一个实施例中,所述密码待验数据包括指纹特征数据;所述密码验证数据包括指纹验证标识;

所述根据所述密码验证数据验证所述密码待验数据,生成验证结果,包括:

根据所述指纹特征数据生成对应的指纹标识;

比较所述指纹标识和所述指纹验证标识是否相同,若是,则验证通过,否则,验证不通过。

一种密码验证方法,所述方法包括:

在检测到终端开机后,将存储在安全芯片中的指纹验证数据写入所分配的存储空间中;

获取待验证的指纹数据;

验证所述指纹数据和存储在存储空间中的指纹验证数据是否相匹配;

当验证结果为匹配时,展示密码验证通过后的桌面界面。

一种密码验证装置,所述装置包括:

密码待验数据获取模块,用于接收密码录入指令;根据所述密码录入指令获取密码待验数据;

密码验证数据获取模块,用于从内存中读取存储的与所述密码待验数据对应的密码验证数据,所述密码验证数据为从安全芯片中导入到所述内存中的数据;

密码验证模块,用于根据所述密码验证数据验证所述密码待验数据,生成验证结果。

在其中一个实施例中,所述密码验证数据获取模块还用于从内存中分配用于存储所述密码验证数据的存储空间;将安全芯片中存储的密码验证数据写入所述存储空间中。

在其中一个实施例中,所述装置还包括:

密码更改模块,用于接收密码更改指令;根据所述密码更改指令获取对应的更改后的密码验证数据;

所述密码验证数据获取模块还用于将更改后的密码验证数据写入内存中;将写入内存中的密码验证数据写入安全芯片中。

在其中一个实施例中,所述密码待验数据包括指纹特征数据;所述密码验证数据包括指纹验证标识;

所述密码验证模块还用于根据所述指纹特征数据生成对应的指纹标识;比较所述指纹标识和所述指纹验证标识是否相同,若是,则验证通过,否则,验证不通过。

一种密码验证装置,所述装置包括:

密码验证数据获取模块,用于在检测到终端开机后,将存储在安全芯片中的指纹验证数据写入所分配的存储空间中;

密码待验数据获取模块,用于获取待验证的指纹数据;

密码验证模块,用于验证所述指纹数据和存储在存储空间中的指纹验证数据是否相匹配;当验证结果为匹配时,展示密码验证通过后的桌面界面。

上述的密码验证方法和装置,通过将存储在安全芯片中的密码验证数据导入内存中,从该内存中读取从安全芯片中导入的密码验证数据,将其与所接收到的密码待验数据进行验证。由于该密码验证数据为保存在安全芯片中,难以被篡改。且是在内存中进行密码验证数据的读取操作,没有和内部rom的数据区交互,同时也避开了终端内部rom的数据被擦除或篡改的风险,提高了密码验证的安全性。

附图说明

图1为一个实施例中终端的内部结构图;

图2为一个实施例中密码验证方法的流程图;

图3为一个实施例中密码更改的步骤的流程图;

图4为另一个实施例中密码验证方法的流程图;

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

图6为另一个实施例中密码验证装置的结构框图。

具体实施方式

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

图1为一个实施例中终端的内部结构示意图。该终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器、安全芯片和显示屏。其中,该终端的处理器用于提供计算和控制能力,支撑整个终端的运行。该终端的非易失性存储介质存储有操作系统和密码验证装置。该密码验证装置用于实现以下各实施例提供的一种密码验证方法。该内存储器中可存储有计算机可读指令,该计算机指令可读指令被处理器执行时,可使得处理器执行一种密码验证方法。安全芯片中可存储和导入用于实现上述的密码数据验证方法相关的数据,比如可存储所设置的密码验证数据,并对后续所导入的密码验证数据进行验证等。该终端的显示屏可以是触摸屏,比如为电容屏或电子屏,可通过接收作用于该触摸屏上显示的控件的点击操作,生成相应的指令。

本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,如图2所示,提供了一种密码验证方法。该方法可应用于如图1所示的终端中,包括:

步骤s202,接收密码录入指令。

本实施例中,密码录入指令可为在检测到进行需要进行密码验证的操作而触发的密码录入指令。其中,该操作可包括但不限于预先设置的敏感操作或预先设置的开机后或在锁屏状态,需要进入应用界面的操作。其中敏感操作包括预先设置的支付操作、敏感信息查看操作等。其中,当检测到用户进行支付操作,或对所设置的敏感信息如照片等进行查看的操作时,可触发该密码录入指令。

在一个实施例中,终端可针对对应需要进行密码验证的应用,提供相应的密码录入界面,该界面上包括相应的用于接收密码录入指令的控件,在检测到作用于该控件的点击操作时,触发密码录入指令。或者在展示该密码录入界面时,即触发了相应的密码录入指令,而无需提供对应的控件,以简化密码验证的操作。

步骤s204,根据密码录入指令获取密码待验数据。

本实施例中,终端可实时获取用户所输入的密码待验数据。该密码待验数据包括但不限于文本密码数据、语音密码数据、路径密码数据和指纹密码数据等其中的任意一种或几种的组合。文本密码数据可由具有预设长度的数字、字母或其它字符等其中的一种或多种的组合。终端可在检测到所输入的文本密码数据的长度达到预设长度时,即判定获取到了完整的密码数据。语音密码数据可通过采集在特定时长之内,终端所处环境的音频信息,将该音频信息作为语音密码数据。指纹数据可通过终端内置的指纹采集设备进行采集。

步骤s206,从内存中读取存储的与密码待验数据对应的密码验证数据,密码验证数据为从安全芯片中导入到内存中的数据。

本实施例中,与密码待验数据对应的,密码验证数据也包括但不限于文本密码数据、语音密码数据、路径密码数据和指纹密码数据等其中的任意一种或几种的组合。

终端中预置有安全芯片,并通过spi(serialperipheralinterface,串行外设接口)总线和处理器相连接。该安全芯片是可信任平台模块,是一个可独立进行密钥生成、加解密的装置,内部拥有独立的处理器和存储单元,可存储密钥和特征数据,为电脑提供加密和安全认证服务。终端可在开机之后,或检测到需要进行密码验证的时候,或者检测到密码产生变动之后,将存储在安全芯片中的密码验证数据导入到终端的内存中。终端可从该内存中读取从安全芯片中导入的密码验证数据。

在一个实施例中,上述的密码验证数据可为用户直接设置的密码,还可为根据用户所设置的密码,按照预设的转换方式所转换成的密码转换数据。具体地,该转换方式可为某一种或多种转换方式的组合。该转换方式可包括hash生成方式,还可包括密码加密的方式。比如,该密码转换数据可为根据预设的hash生成方式,将用户设置的密码转换为唯一对应的hash码,作为密码验证数据。或者按照预设的加密规则,对该密码进行加密,将加密后的数据作为密码验证数据。通过对密码进行转换,可进一步提高密码被窃取难度。

举例来说,若用户所设置的密码为123456,则该密码验证数据可直接为所设置的密码123456,也还可为按照预设的转换规则,将123456进行转换,形成的转换后的数据。

在一个实施例中,上述的步骤s204和步骤s206之间的顺序可不做限定。比如,可首先执行步骤s206,读取内存中的密码验证数据,在读取完毕后,再获取密码待验数据。还可以两者同时执行。

步骤s208,根据密码验证数据验证密码待验数据,生成验证结果。

本实施例中,验证结果包括验证通过和验证不通过。若该密码验证数据为用户直接设置的密码,则可将密码验证数据和密码待验数据进行对比,判断两者是否相同,当两者相同时,验证通过,同时可执行预设的密码验证通过后的操作。否则,可生成密码录入错误的提示信息。

若该密码验证数据为根据设置的密码进行了转换的数据,则可将密码待验数据也按照相同的转换方式进行转换,将密码待验数据转换后的数据,是否和该密码验证数据相同,并生成验证结果。

上述的密码验证方法,通过将存储在安全芯片中的密码验证数据导入内存中,从该内存中读取从安全芯片中导入的密码验证数据,将其与所接收到的密码待验数据进行验证。由于该密码验证数据为保存在安全芯片中,难以被篡改。且是在内存中进行密码验证数据的读取操作,没有和内部rom的数据区交互,同时也避开了终端内部rom的数据被擦除或篡改的风险,提高了密码验证的安全性。

在一个实施例中,在上述的步骤s206之前,还包括:从内存中分配用于存储密码验证数据的存储空间;将安全芯片中存储的密码验证数据写入存储空间中。

本实施例中,终端可在检测到需要进行密码验证时,则在内存中划分出一个用于存储密码验证数据的存储空间。或者在检测到未从安全芯片中未存储密码验证数据时,则从中分配用于存储密码验证数据的存储空间。或者在检测到已分配的存储空间中的密码验证数据被异常篡改时,也可从内存中重新分配用于存储密码验证数据的存储空间,所重新分配的存储空间可与之前所分配的存储空间为相同的存储区。将安全芯片中存储的密码验证数据写入存储空间中,用于从所分配的存储空间中读取密码验证数据,并进行密码验证。

在一个实施例中,所分配的存储空间的大小可由安全芯片中的密码验证数据所占据的数据量来确定,使得所分配的存储空间能够完整地存储该安全芯片的密码验证数据。

在一个实施例中,在步骤s208之后,还包括:删除内存中的密码验证数据。

本实施例中,可在结束密码验证之后,将从安全芯片中导入内存中的密码验证数据删除,以防止密码验证数据的泄露。并在下次进行密码验证时,再次导入密码验证数据。

在一个实施例中,如图3所示,上述的密码验证方法还包括密码更改的步骤,该步骤具体包括:

步骤s302,接收密码更改指令。

本实施例中,终端可在检测到作用于相应应用的开始进行密码更改的控件的操作时而生成密码更改指令。或者还可根据预设的开始进行密码更改的手势或语音等生成密码更改指令。其中,密码可包括多个,更改指令包括新增密码指令、删除密码指令和对原密码进行修改的指令。

步骤s304,根据密码更改指令获取对应的更改后的密码验证数据。

本实施例中,更改后的密码验证数据包括但不限于文本密码数据、语音密码数据、路径密码数据和指纹密码数据等其中的任意一种或几种的组合。终端可在检测到在连续的预设次数所获取的密码验证数据一致时,将其作为更改后的密码验证数据。终端可在获取更改后的密码验证数据之前,获取原始的密码验证数据,并在验证通过后,可获取更改后的密码验证数据。

在一个实施例中,更改后的密码验证数据包括新增的密码验证数据和原始的部分或全部的密码验证数据。其中,若为原始的部分的密码验证数据,则表示对原始的密码验证数据进行了删除。

当存在多个密码验证数据,且该密码更改指令为删除密码指令时,终端可展示所有原始的密码验证数据的列表,并接收作用于对列表中的一个或多个密码验证数据的删除操作,根据该删除操作删除所选择的密码验证数据,并将所保留的密码验证数据作为更改后的密码验证数据。

步骤s306,将更改后的密码验证数据写入内存中。

终端可在内存中分配用于存储更改后的密码验证数据的存储空间,并将更改后的密码验证数据存储到所分配的存储空间中。该存储空间可为原始的密码验证数据的存储空间,或者为重新分配的存储空间。当为原始的存储空间时,可删除原始的密码验证数据,并重新写入更改后的密码验证数据,实现对密码验证数据的更新。

步骤s308,将写入内存中的密码验证数据写入安全芯片中。

终端可进一步读取所分配的存储空间中所存储的更改后的密码验证数据,将该密码验证数据写入到安全芯片中。具体的,可删除该安全芯片中待删除的密码验证数据,并保存更改后的密码验证数据。

在一个实施例中,该密码待验数据包括指纹特征数据和指纹标识,对应的,密码验证数据包括指纹特征数据和指纹验证标识。指纹标识和指纹验证标识为根据对应的指纹特征数据,按照预设的指纹算法所生成的唯一标识,其中,具有相同特征的指纹特征数据所生成的指纹标识或指纹验证标识相同。

终端可预先在内存中分配一片存储指纹特征数据和指纹验证标识的存储空间,并读取安全芯片中已保存的指纹特征数据和指纹验证标识,将其写入该存储空间中。在采集到待更改的指纹特征数据后,根据预先设置的指纹算法生成相应的指纹验证标识,检测该指纹验证标识是否与其中的一个指纹验证标识相同。若是,则提示该指纹密码已经录入,否则,将该采集的指纹特征数据和生成的指纹验证标识更新到该内存的存储空间中。并将更新后的指纹特征数据和指纹验证标识写去安全芯片中,替换安全芯片中原先存在的指纹特征数据和指纹验证标识。

本实施例中,通过将更改后的密码验证数据首先写入内存中,再从内存中写入安全芯片中,使更改后的密码验证数据最终保存在安全芯片中。避免了和内部rom的数据区交互,同时也避开了终端内部rom的数据被擦除或篡改的风险,提高了密码被篡改的难度,从而提高了密码更改的安全性。

在一个实施例中,密码待验数据包括指纹特征数据;密码验证数据包括指纹验证标识;步骤s208包括:根据指纹特征数据生成对应的指纹标识;比较指纹标识和指纹验证标识是否相同,若是,则验证通过,否则,验证不通过。

本实施例中,终端可根据密码录入指令采集用户所输入的指纹特征数据,并根据该指纹特征数据按照预设的指纹算法生成相应的指纹标识,比较该指纹标识是否和内存中的其中一个指纹验证标识相同。若是,则判定验证通过,若与内存中的任意一个指纹验证标识均不相同,则判定验证不通过。在一个实施例中,该指纹标识和指纹验证标识为由指纹特征数据按照预设的指纹算法,所生成的32位数的id。

本实施例中,根据采集的指纹特征数据生成指纹标识,通过比较指纹标识和指纹验证标识是否相同,来验证所输入的指纹密码是否一致,可提高指纹密码验证的速度。

在一个实施例中,如图4所示,提供了另一种密码验证方法,该方法具体为一种开机密码验证方法,可应用到如图1所示的终端中,具体包括:

步骤s402,在检测到终端开机后,将存储在安全芯片中的指纹验证数据写入所分配的存储空间中。

本实施例中,终端在关机之后,内存中所存储的数据会被清除,而安全芯片中所存储的密码待验数据则依然存在,其中,该密码待验数据包括指纹验证数据。当检测到开机后,可从内存中分配用于存储密码验证数据的存储空间;将安全芯片中存储的指纹验证数据写入所分配的存储空间中。该指纹验证数据包括指纹特征数据,以及根据预设的指纹算法生成的与该指纹对应的指纹验证标识。

步骤s404,获取待验证的指纹数据。

本实施例中,终端可在开机界面上显示用于提示用户录入指纹密码的提示信息。通过预设的指纹采集模块,采集用户录入的指纹数据,该指纹数据包括指纹特征数据。

步骤s406,验证指纹数据和存储在存储空间中的指纹验证数据是否相匹配。

本实施例中,终端可根据所采集到的指纹特征数据,按照预设的指纹算法,生成与该指纹特征数据对应的指纹标识。并读取存储在内存中的指纹验证标识,比较该指纹标识是否与其中一个指纹验证标识相同。

在一个实施例中,指纹验证标识和指纹标识均为32位长度的id编号。通过比较指纹验证标识和指纹标识,可提高指纹验证的速度。

步骤s408,当验证结果为匹配时,展示密码验证通过后的桌面界面。

当判定存在一个指纹验证标识与该指纹标识相同时,则判定验证结果为匹配,密码验证正确,可展示密码验证通过后的桌面界面。否则,可显示密码输入错误的提示信息。

上述的密码验证方法,通过将存储在安全芯片中的密码验证数据导入内存中,从该内存中读取从安全芯片中导入的密码验证数据,将其与所接收到的密码待验数据进行验证。由于该密码验证数据为保存在安全芯片中,难以被篡改。且是在内存中进行密码验证数据的读取操作,没有和内部rom的数据区交互,同时也避开了终端内部rom的数据被擦除或篡改的风险,提高了密码验证的安全性。

在一个实施例中,上述的密码验证方法还包括:接收密码更改指令;根据密码更改指令获取对应的更改后的指纹特征数据;根据更改后的指纹特征数据生成指纹验证标识;将更改后的指纹特征数据和指纹验证标识写入内存中;将写入内存中的指纹特征数据和指纹验证标识写入安全芯片中。

终端可预先在内存中分配一片存储指纹特征数据和指纹验证标识的存储空间,并读取安全芯片中已保存的指纹特征数据和指纹验证标识,将其写入该存储空间中。在采集到待更改的指纹特征数据后,根据预先设置的指纹算法生成相应的指纹验证标识,检测该指纹验证标识是否与其中的一个指纹验证标识相同。若是,则提示该指纹密码已经录入,否则,将该采集的指纹特征数据和生成的指纹验证标识更新到该内存的存储空间中。并将更新后的指纹特征数据和指纹验证标识写去安全芯片中,替换安全芯片中原先存在的指纹特征数据和指纹验证标识。

本实施例中,通过将更改后的密码验证数据首先写入内存中,再从内存中写入安全芯片中,使更改后的密码验证数据最终保存在安全芯片中,提高了被篡改的难度。且是在内存中进行密码验证数据的更改操作,没有和内部rom的数据区交互,同时也避开了终端内部rom的数据被擦除或篡改的风险,提高了密码更改的安全性。

在一个实施例中,如图5所示,提供了一种密码验证装置。装置包括:

密码待验数据获取模块502,用于接收密码录入指令;根据密码录入指令获取密码待验数据。

密码验证数据获取模块504,用于从内存中读取存储的与密码待验数据对应的密码验证数据,密码验证数据为从安全芯片中导入到内存中的数据。

密码验证模块506,用于根据密码验证数据验证密码待验数据,生成验证结果。

密码更改模块508,用于接收密码更改指令;根据密码更改指令获取对应的更改后的密码验证数据。

密码验证数据获取模块504还用于将更改后的密码验证数据写入内存中;将写入内存中的密码验证数据写入安全芯片中。

在一个实施例中,上述的密码验证装置还可不包括密码更改模块508。

在一个实施例中,密码验证数据获取模块504还用于从内存中分配用于存储密码验证数据的存储空间;将安全芯片中存储的密码验证数据写入存储空间中。

在一个实施例中,密码待验数据包括指纹特征数据;密码验证数据包括指纹验证标识。

密码验证模块506还用于根据指纹特征数据生成对应的指纹标识;比较指纹标识和指纹验证标识是否相同,若是,则验证通过,否则,验证不通过。

在一个实施例中,如图6所示,提供了另一种密码验证装置,该装置包括:

密码验证数据获取模块602,用于在检测到终端开机后,将存储在安全芯片中的指纹验证数据写入所分配的存储空间中。

密码待验数据获取模块604,用于获取待验证的指纹数据。

密码验证模块606,用于验证指纹数据和存储在存储空间中的指纹验证数据是否相匹配;当验证结果为匹配时,展示密码验证通过后的桌面界面。

密码更改模块608,用于接收密码更改指令;根据密码更改指令获取对应的更改后的指纹特征数据;根据更改后的指纹特征数据生成指纹验证标识。

密码验证数据获取模块602还用于将更改后的指纹特征数据和指纹验证标识写入内存中;将写入内存中的指纹特征数据和指纹验证标识写入安全芯片中。

在一个实施例中,上述的密码验证装置还可不包括密码更改模块608。

上述的密码验证装置,通过将存储在安全芯片中的密码验证数据导入内存中,从该内存中读取从安全芯片中导入的密码验证数据,将其与所接收到的密码待验数据进行验证。由于该密码验证数据为保存在安全芯片中,难以被篡改。且是在内存中进行密码验证数据的读取操作,没有和内部rom的数据区交互,同时也避开了终端内部rom的数据被擦除或篡改的风险,提高了密码验证的安全性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等。

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

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

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