一种使用指纹key进行登录的方法及装置与流程

文档序号:11215476阅读:1091来源:国知局
一种使用指纹key进行登录的方法及装置与流程

本发明涉及信息安全领域,尤其涉及一种使用指纹key进行登录的方法及装置。



背景技术:

目前,应用程序调用window函数使用usbkey时,会弹出pin码输入框,提示用户输入pin码进行验证,pin码验证通过后,应用才能使用usbkey里保存的数据,进行签名、加解密、生成密钥、导入证书等操作。

在现有技术中,指纹key与普通usbkey相比,操作更安全,但是指纹key不能通过pin码进行验证使用,只能通过指纹进行验证使用,目前的window函数不支持指纹验证,导致指纹key不能使用。因此,如何使window函数支持使用指纹key,是亟待解决的问题。



技术实现要素:

本发明的目的是为了克服现有技术的不足,提供一种使用指纹key进行登录的方法及装置。

本发明提供了一种使用指纹key进行登录的方法,包括:

当第二函数被调用时,装置获取登录验证方式,并将所述登录验证方式返回给操作系统;

当第三函数被调用时,所述装置获取所述第三函数参数中的登录验证方式,并判断所述登录验证方式是否为外部验证方式,是则所述装置获取所述第三函数参数中的登录界面窗口句柄并保存,所述第三函数返回成功信息,否则所述第三函数返回错误信息;

当第四函数被调用时,所述装置根据保存的登录界面窗口句柄弹出指纹验证提示框,提示用户在指纹key上输入指纹进行验证,如验证通过则所述指纹key设置自身当前状态为指纹验证已通过,如验证未通过则所述指纹key设置自身当前状态为指纹验证未通过;

当第五函数被调用时,所述装置将待签名数据发送给所述指纹key,所述指纹key检查自身当前状态是否为指纹验证已通过,是则使用所述第五函数的参数定位签名私钥和签名算法,使用所述签名私钥根据所述签名算法对所述待签名数据进行运算生成登录操作系统所需的凭据信息,所述第五函数将所述凭据信息返回给所述操作系统,否则结束操作。

进一步地,当所述第二函数被调用之前,还包括:

当所述操作系统接收到登录触发信息时,提示用户插入指纹key;如所述操作系统检测到指纹key插入时,获取所述指纹key中的所有用户证书并显示,提示用户选择进行登录所使用的证书,当所述操作系统接收到用户选择的进行登录所使用的证书时调用第一函数;

当所述第一函数被调用时,所述装置将函数地址列表返回给所述操作系统,所述操作系统分别根据所述函数地址列表中的第二函数地址、第三函数地址、第四函数地址和第五函数地址调用所述第二函数、所述第三函数、所述第四函数和所述第五函数。

进一步地,所述装置获取登录验证方式具体为:所述装置将所述第二函数参数中的外部pin码验证方式设置为第一预设值。

进一步地,当第四函数被调用时,所述装置根据保存的登录界面窗口句柄弹出指纹验证提示框,提示用户在所述指纹key上输入指纹进行验证,如验证通过则所述指纹key设置自身当前状态为指纹验证已通过,如验证未通过则所述指纹key设置自身当前状态为指纹验证未通过,具体包括:

步骤a1:当第四函数被调用时,所述装置判断是否需要生成会话pin码,是则执行步骤a6,否则执行步骤a2;

步骤a2:所述装置判断是否需要使用会话pin码进行登录,是则执行步骤a3,否则所述第四函数返回错误信息;

步骤a3:所述装置判断是否保存有合法的会话pin码,是则执行步骤a4,否则所述第四函数返回错误信息;

步骤a4:所述装置判断所述指纹key是否登录有效,是则执行步骤a5,否则所述第四函数返回错误信息;

步骤a5:所述装置设置指纹key的登录状态为已登录,所述第四函数返回成功信息;

步骤a6:所述装置判断生成pin码的条件是否合法,是则执行步骤a7,否则所述第四函数返回错误信息;

步骤a7:所述装置判断所述指纹key的登录状态是否为已登录,是则执行步骤a10,否则执行步骤a8;

步骤a8:所述装置根据保存的所述登录界面窗口句柄弹出指纹验证提示框,提示用户在所述指纹key上输入指纹进行验证,如所述指纹key对输入的指纹验证通过则所述指纹key设置自身当前状态为指纹验证已通过,给所述装置返回验证成功信息,如所述指纹key对输入的指纹验证未通过则所述指纹key设置自身当前状态为指纹验证未通过,给所述装置返回验证失败信息;

步骤a9:所述装置根据接收到的所述指纹key返回的信息判断所述指纹key是否验证成功,是则设置指纹key的登录状态为已登录,执行步骤a10,否则所述第四函数返回错误信息;

步骤a10:所述装置生成会话pin码并保存,且保存登录时间,所述第四函数返回成功信息。

进一步地,所述步骤a1中的所述装置判断是否需要生成会话pin码包括:所述装置判断所述第四函数参数中的pin码标志中的验证标识是否置位,是则需要生成会话pin码,否则不需要生成会话pin码。

进一步地,所述步骤a2包括:所述装置判断所述第四函数参数中的pin码标志中的登录标识是否置位,是则执行步骤a3,否则所述第四函数返回错误信息。

进一步地,所述步骤a3包括:所述装置判断所述第四函数的参数中是否有会话pin码且所述参数中的会话pin码长度是否等于预设长度,是则执行步骤a4,否则所述第四函数返回错误信息。

进一步地,所述步骤a4包括:所述装置判断当前时间减去保存的登录时间是否小于预设值,是则执行步骤a5,否则第四函数返回错误信息。

进一步地,所述步骤a5包括:所述装置将登录标识置位并保存,所述第四函数返回成功信息。

进一步地,所述步骤a6包括:所述装置判断所述第四函数的参数中的会话pin码和会话pin码长度是否均为空,是则所述第四函数返回错误信息,否则执行步骤a7。

进一步地,所述步骤a7包括:所述装置判断保存的登录标识是否置位,是则执行步骤a10,否则执行步骤a8。

进一步地,所述步骤a8包括:所述装置根据保存的所述登录界面窗口句柄弹出指纹验证提示框,并给所述指纹key发送指纹验证指令,当所述指纹key接收到用户输入的指纹时,判断接收到的指纹是否与内部保存的指纹一致,是则所述指纹key设置自身当前状态为指纹验证已通过,给所述装置返回验证成功信息,否则所述指纹key设置自身当前状态为指纹验证未通过,给所述装置返回验证失败信息。

进一步地,所述步骤a9包括:所述装置根据接收到的所述指纹key返回的信息判断所述指纹key是否验证成功,如接收到的信息为验证成功信息则所述指纹key验证成功,将所述登录标识置位,执行步骤a10,如接收到的信息为验证失败信息则所述第四函数返回错误信息。

进一步地,所述步骤a10包括:所述装置根据所述第四函数参数中的函数指针获取生成函数,通过所述生成函数生成对应的会话pin码,保存所述会话pin码和登录时间,所述第四函数返回成功信息。

进一步地,所述指纹key使用所述第五函数的参数定位签名私钥和签名算法包括:所述指纹key分别根据所述第五函数的参数中的容器索引和签名算法标识获取对应容器中的签名私钥和签名算法。

进一步地,所述方法还包括:当所述操作系统接收到所述凭据信息后,使用用户选择的证书对所述凭据信息进行验证,如验证成功则允许登录,如验证失败则拒绝登录。

进一步地,所述使用用户选择的证书对所述凭据信息进行验证包括:所述操作系统使用所述用户选择的证书中的签名公钥对所述凭据信息进行解密,对所述待签名数据进行哈希计算,判断哈希计算结果和解密结果是否一致,是则验证成功,否则验证失败。

本发明又提供了一种使用指纹key进行登录的装置,包括第二操作模块、第三操作模块、第四操作模块和第五操作模块;

所述第二操作模块,用于获取登录验证方式,并将所述登录验证方式返回给操作系统;

所述第三操作模块,用于获取所述第三函数参数中的登录验证方式,并判断所述登录验证方式是否为外部验证方式,是则获取所述第三函数参数中的登录界面窗口句柄并保存,返回成功信息,否则返回错误信息;

所述第四操作模块,用于根据所述第三操作模块保存的登录界面窗口句柄弹出指纹验证提示框,提示用户在指纹key上输入指纹进行验证,如所述指纹key对输入的指纹验证通过则所述指纹key设置自身当前状态为指纹验证已通过,如所述指纹key对输入的指纹验证未通过则所述指纹key设置自身当前状态为指纹验证未通过;

所述第五操作模块,用于将待签名数据发送给所述指纹key,所述指纹key检查自身当前状态是否为指纹验证已通过,是则指纹key使用所述第五函数的参数定位签名私钥和签名算法,使用所述签名私钥根据所述签名算法对所述待签名数据进行运算生成登录操作系统所需的凭据信息,所述第五操作模块还用于将所述凭据信息返回给所述操作系统,否则结束操作。

进一步地,所述装置还包括第一操作模块;

当所述操作系统接收到登录触发信息时,提示用户插入指纹key;如所述操作系统检测到指纹key插入时,获取所述指纹key中的所有用户证书并显示,提示用户选择进行登录所使用的证书,当所述操作系统接收到用户选择的进行登录所使用的证书时触发所述第一操作模块;

所述第一操作模块用于将函数地址列表返回给所述操作系统,所述操作系统分别根据所述函数地址列表中的第二函数地址、第三函数地址、第四函数地址和第五函数地址调用所述第二函数、所述第三函数、所述第四函数和所述第五函数。

进一步地,所述第二操作模块具体用于将所述第二函数参数中的外部pin码验证方式设置为第一预设值,并将第一预设值的外部pin码验证方式返回给所述操作系统。

进一步地,所述第四操作模块包括:

第一判断单元,用于当所述第四函数被调用时,判断是否需要生成会话pin码;

第二判断单元,用于当所述第一判断单元判断为否时,判断是否需要使用会话pin码进行登录,当判断为否时返回错误信息;

第三判断单元,用于当所述第二判断单元判断为是时,判断是否保存有合法的会话pin码,当判断为否时返回错误信息;

第四判断单元,用于当所述第三判断单元判断为是时,判断所述指纹key是否登录有效,当判断为否时返回错误信息;

第一设置单元,用于当所述第四判断单元判断为是时,设置指纹key的登录状态为已登录,返回成功信息;

第五判断单元,用于当所述第一判断单元判断为是时,判断生成pin码的条件是否合法,当判断为否时返回错误信息;

第六判断单元,用于当所述第五判断单元判断为是时,判断所述指纹key的登录状态是否为已登录;

弹出提示单元,用于当所述第六判断单元判断为否时,根据所述第三操作模块保存的所述登录界面窗口句柄弹出指纹验证提示框,提示用户在所述指纹key上输入指纹进行验证;如所述指纹key对输入的指纹验证通过则所述指纹key设置自身当前状态为指纹验证已通过,给所述装置返回验证成功信息,如所述指纹key对输入的指纹验证未通过则所述指纹key设置自身当前状态为指纹验证未通过,给所述装置返回验证失败信息;

接收单元,用于接收所述指纹key返回的验证成功信息或验证失败信息;

第七判断单元,用于根据所述接收单元接收到的所述指纹key返回的信息判断所述指纹key是否验证成功,是则设置指纹key的登录状态为已登录,否则返回错误信息;

生成保存单元,用于当第六判断单元和/或所述第七单元判断为是时生成会话pin码并保存,且保存登录时间,返回成功信息。

进一步地,所述第一判断单元具体用于判断所述第四函数参数中的pin码标志中的验证标识是否置位,是则需要生成会话pin码,否则不需要生成会话pin码。

进一步地,所述第二判断单元具体用于判断所述第四函数参数中的pin码标志中的登录标识是否置位,当判断为否时返回错误信息。

进一步地,所述第三判断单元具体用于判断所述第四函数的参数中是否有会话pin码且所述参数中的会话pin码长度是否等于预设长度,当判断为否时返回错误信息。

进一步地,所述第四判断单元具体用于判断当前时间减去保存的登录时间是否小于预设值,当判断为否时返回错误信息。

进一步地,所述第一设置单元具体用于将登录标识置位并保存,返回成功信息。

进一步地,所述第五判断单元具体用于判断所述第四函数的参数中的会话pin码和会话pin码长度是否均为空,是则返回错误信息。

进一步地,所述第六判断单元具体用于判断保存的登录标识是否置位,是则指纹key处于已登录状态,否则指纹key处于未登录状态。

进一步地,所述弹出提示单元具体用于根据保存的登录界面窗口句柄弹出指纹验证提示框,并给所述指纹key发送指纹验证指令,当所述指纹key接收到用户输入的指纹时,判断接收到的指纹是否与内部保存的指纹一致,是则所述指纹key设置自身当前状态为指纹验证已通过,给所述装置返回验证成功信息,否则所述指纹key设置自身当前状态为指纹验证未通过,给所述装置返回验证失败信息。

进一步地,所述第七判断单元具体用于根据所述接收单元接收到的所述指纹key返回的信息判断所述指纹key是否验证成功,如接收到的信息为所述验证成功信息则将所登录标识置位,如接收到的信息为所述验证失败信息则返回错误信息。

进一步地,所述生成保存单元具体用于根据所述第四函数的参数中的函数指针获取生成函数,通过所述生成函数生成对应的会话pin码,保存所述会话pin码和登录时间,返回成功信息。

本发明与现有技术相比,具有以下优点:

本发明提供的技术方案在window函数中通过使用外部验证密码方式,用指纹验证代替pin验证,只需要修改厂商的windows函数来弹出指纹提示框而不弹出pin码框,让指纹key直接在windows系统中能正常使用,方便用户使用。

附图说明

图1为本发明实施例二提供的一种使用指纹key进行登录的方法流程图;

图2为本发明实施例二中的步骤107的具体实现过程流程图;

图3为本发明实施例三提供的一种使用指纹key进行登录的装置的模块组成框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例一提供一种使用指纹key进行登录的方法,包括:

当第二函数被调用时,装置获取登录验证方式,并将登录验证方式返回给操作系统;

具体的,在本实施例中,当第二函数被操作系统调用时还包括:操作系统通过第二函数的返回值判断获取登录验证方式是否成功,如第二函数返回登录验证方式则获取登录验证方式成功,否则获取登录验证方式失败。

在本实施例中,装置获取登录验证方式具体为:装置将第二函数参数中的外部pin码验证方式设置为第一预设值;优选的,装置将第二函数参数中的第三数据结构中的外部pin码验证方式设置为第一预设值。

当第三函数被调用时,装置获取第三函数参数中的登录验证方式,并判断登录验证方式是否为外部验证方式,是则装置获取第三函数参数中的登录界面窗口句柄并保存,第三函数返回成功信息,否则第三函数返回错误信息;

优选的,本实施例中装置将获取的登录界面窗口句柄保存到第二数据结构中;

具体的,在本实施例中,当第三函数被操作系统调用时还包括:操作系统通过第三函数的返回值判断登录界面窗口句柄是否保存成功,如第三函数返回成功信息则登录界面窗口句柄保存成功,否则登录界面窗口句柄保存失败。

当第四函数被调用时,装置根据保存的登录界面窗口句柄弹出指纹验证提示框,提示用户在指纹key上输入指纹进行验证,如验证通过则指纹key设置自身当前状态为指纹验证已通过,如验证未通过则指纹key设置自身当前状态为指纹验证未通过。

在本实施例中,当第四函数被调用时,装置执行的步骤具体包括:

步骤a1:当第四函数被调用时,装置判断是否需要生成会话pin码,是则执行步骤a6,否则执行步骤a2;

具体的,在本实施例中,步骤a1包括:装置判断第四函数参数中的pin码标志中的验证标识是否置位,是则需要生成会话pin码,否则不需要生成会话pin码。

步骤a2:装置判断是否需要使用会话pin码进行登录,是则执行步骤a3,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a2包括:装置判断第四函数参数中的pin码标志中的登录标识是否置位,是则需要使用会话pin码进行登录,否则不需要使用会话pin码进行登录。

步骤a3:装置判断是否保存有合法的会话pin码,是则执行步骤a4,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a3包括:装置判断第四函数的参数中是否有会话pin码且参数中的会话pin码长度是否等于预设长度,是则执行步骤a4,否则第四函数返回错误信息。

步骤a4:装置判断指纹key是否登录有效,是则执行步骤a5,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a4包括:装置判断当前时间减去保存的登录时间是否小于预设值,是则执行步骤a5,否则第四函数返回错误信息。

步骤a5:装置设置指纹key的登录状态为已登录,第四函数返回成功信息;

具体的,在本实施例中,步骤a5包括:装置将登录标识置位并保存,第四函数返回成功信息。

步骤a6:装置判断生成pin码的条件是否合法,是则执行步骤a7,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a6包括:装置判断第四函数的参数中的会话pin码和会话pin码长度是否均为空,是则不合法,否则合法。

步骤a7:装置判断指纹key的登录状态是否为已登录,是则执行步骤a10,否则执行步骤a8;

具体的,在本实施例中,步骤a7包括:装置判断保存的登录标识是否置位,是则指纹key处于已登录状态,否则指纹key处于未登录状态。优选的,登录标识保存在第二数据结构中;

步骤a8:装置根据保存的登录界面窗口句柄弹出指纹验证提示框,提示用户在指纹key上输入指纹进行验证,如指纹key对输入的指纹验证通过则指纹key设置自身当前状态为指纹验证已通过,给装置返回验证成功信息,如指纹key对输入的指纹验证未通过则指纹key设置自身当前状态为指纹验证未通过,给装置返回验证失败信息;

具体的,在本实施例中,步骤a8包括:装置根据保存的登录界面窗口句柄弹出指纹验证提示框,并给指纹key发送指纹验证指令,当指纹key接收到用户输入的指纹时,判断接收到的指纹是否与内部保存的指纹一致,是则指纹key设置自身当前状态为指纹验证已通过,给装置返回验证成功信息,否则指纹key设置自身当前状态为指纹验证未通过,给装置返回验证失败信息;

步骤a9:装置根据接收到的指纹key返回的信息判断指纹key是否验证成功,是则设置指纹key的登录状态为已登录,执行步骤a10,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a9包括:装置根据接收到的指纹key返回的信息判断指纹key是否验证成功,如接收到的信息为验证成功信息则指纹key验证成功,将登录标识置位,执行步骤a10,如接收到的信息为验证失败信息则第四函数返回错误信息。

步骤a10:装置生成会话pin码并保存,且保存登录时间,第四函数返回成功信息;

具体的,在本实施例中,步骤a10包括:装置根据第四函数参数中的函数指针获取生成函数,通过生成函数生成对应的会话pin码,保存会话pin码和登录时间,第四函数返回成功信息。优选的,装置根据第四函数参数中的第一数据结构中的函数指针获取生成函数;

在本实施例中,当第四函数被操作系统调用时还包括:操作系统通过第四函数的返回值判断指纹key是否验证成功,如第四函数返回成功信息则指纹key验证成功,否则指纹key验证失败。

当第五函数被调用时,装置将待签名数据发送给指纹key,指纹key检查自身当前状态是否为指纹验证已通过,是则使用第五函数的参数定位签名私钥和签名算法,使用签名私钥根据签名算法对待签名数据进行运算生成登录操作系统所需的凭据信息并将其返回给操作系统,否则结束操作;

其中,指纹key使用第五函数的参数定位签名私钥和签名算法包括:指纹key分别根据第五函数的参数中的容器索引和签名算法标识获取对应容器中的签名私钥和签名算法;

具体的,在本实施例中,当第五函数被操作系统调用时还包括:操作系统通过第五函数的返回值判断计算签名是否成功,如第五函数返回凭据信息则计算签名成功,否则计算签名失败;当操作系统接收到凭据信息后,使用用户选择的证书对凭据信息进行验证,如验证成功则允许登录,如验证失败则拒绝登录。具体的,使用用户选择的证书对签名结果进行验证包括:操作系统使用用户选择的证书中的签名公钥对签名结果进行解密,对待签名数据进行哈希计算,判断哈希计算结果和解密结果是否一致,是则验证成功,否则验证失败。

在本实施例中,当第二函数被调用之前,还包括:

当操作系统接收到登录触发信息时,提示用户插入指纹key;如操作系统检测到指纹key插入时,获取指纹key中的所有用户证书并显示,提示用户选择进行登录所使用的证书,当操作系统接收到用户选择的进行登录所使用的证书时调用第一函数;

当第一函数被调用时,装置将函数地址列表返回给操作系统,操作系统分别根据函数地址列表中的第二函数地址、第三函数地址、第四函数地址和第五函数地址调用第二函数、第三函数、第四函数和第五函数;具体地,装置将函数地址列表返回给操作系统具体为:装置初始化第一数据结构,获取第二函数指针、第三函数指针、第四函数指针、第五函数指针,创建第二数据结构并将其保存到第一数据结构中;

具体的,在本实施例中,当第一函数被操作系统调用时还包括:操作系统通过第一函数的返回值判断初始化是否成功,如第一函数返回函数地址列表则初始化成功,否则初始化失败。

实施例二

本发明实施例二提供一种使用指纹key进行登录的方法,如图1所示,包括:

当操作系统接收到登录触发信息时,提示用户插入指纹key;如检测到指纹key插入时,获取指纹key中的所有用户证书并显示,提示用户选择进行登录所使用的证书;当操作系统接收到用户选择的进行登录所使用的证书时调用第一函数;

步骤101:当第一函数被调用时,装置将函数地址列表返回给所述操作系统;

具体的,在本实施例中,第一函数为cardacquirecontext,其中,传入的参数包括:第一数据结构;装置将函数地址列表返回给所述操作系统包括:初始化第一数据结构,获取第二函数地址、第三函数地址、第四函数地址、第五函数地址,创建自定义的第二数据结构并将其保存到第一数据结构中;操作系统会根据第二函数地址、第三函数地址、第四函数地址、第五函数地址调用对应的函数;优选的,第二函数地址、第三函数地址、第四函数地址、第五函数地址为第二函数指针、第三函数指针、第四函数指针、第五函数指针;

步骤102:操作系统通过第一函数的返回值判断初始化是否成功,是则操作系统根据第二函数指针调用对应的第二函数,执行步骤103,否则结束;

在本实施例中,步骤102具体为:操作系统判断第一函数的返回值,如为函数地址列表则初始化成功,否则初始化失败;

步骤103:当第二函数被调用时,装置获取登录验证方式,并将其返回给操作系统;

具体的,在本实施例中,第二函数为cardgetproperty,传入的参数包括第三数据结构,装置获取登录验证方式具体为:将第三数据结构中的外部pin码验证方式设置为第一预设值,表示登录验证方式为指纹验证;

步骤104:操作系统通过第二函数的返回值判断获取登录验证方式是否成功,是则操作系统根据第三函数指针调用对应的第三函数,执行步骤105,否则结束;

在本实施例中,步骤104具体为:操作系统判断第二函数的返回值,如为登录验证方式则获取登录验证方式成功,执行步骤105;否则获取登录验证方式失败,结束;

步骤105:当第三函数被调用时,装置获取第三函数参数中的登录验证方式,判断登录验证方式是否为外部验证方式,是则获取第三函数参数中的登录界面窗口句柄,并将登录界面窗口句柄保存到第二数据结构中,第三函数返回成功信息;否则第三函数返回错误信息;

具体的,在本实施例中,第三函数为cardsetproperty,传入的参数为第一数据结构和登录界面窗口句柄,将登录界面窗口句柄保存到第二数据结构中具体为:装置将登录界面窗口句柄保存到第一数据结构中的第二数据结构中;

步骤106:操作系统通过第三函数的返回值判断登录界面窗口句柄是否保存成功,是则操作系统根据第四函数指针调用对应的第四函数,执行步骤107,否则结束;

在本实施例中,步骤106具体为:操作系统判断第三函数的返回值,如为成功信息则登录界面窗口句柄保存成功,执行步骤107;如为失败信息则登录界面窗口句柄保存失败,结束;

步骤107:当第四函数被调用时,装置根据第二数据结构中的登录界面窗口句柄弹出指纹验证提示框,提示用户在指纹key上输入指纹进行验证,如指纹key对输入的指纹验证成功则第四函数返回成功信息,执行步骤108,如指纹key对输入的指纹验证失败则第四函数返回错误信息;

具体的,在本实施例中,第四函数为cardauthenticateex,传入的参数包括:第一数据结构、pin码标志、会话密码、会话密码长度,步骤107的具体实现过程如图2所示,包括:

步骤a1:当第四函数被调用时,装置根据pin码标志判断是否需要生成会话pin码,是则执行步骤a6,否则执行步骤a2;

具体的,在本实施例中,步骤a1包括:当第四函数被调用时,装置判断pin码标志中的验证标识是否置位,是则需要生成会话pin码,执行步骤a6;否则不需要生成会话pin码,执行步骤a2。例如,pin码标志中第8位的值为1则表示需要生成会话pin码;

步骤a2:装置判断是否需要使用会话pin码进行登录,是则执行步骤a3,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a2包括:装置判断pin码标志中的登录标识是否置位,是则需要使用会话pin码进行登录,执行步骤a3;否则不需要使用会话pin码进行登录,第四函数返回错误信息;例如pin码标志中第7位或第6位的值为1则表示需要使用会话pin码进行登录;

步骤a3:装置判断是否保存有合法的会话pin码,是则执行步骤a4,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a3包括:装置判断第四函数的参数中是否有会话pin码且参数中的会话pin码长度是否等于预设长度,是则执行步骤a4,否则第四函数返回错误信息;

步骤a4:装置判断指纹key是否登录有效,是则执行步骤a5,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a4包括:装置判断当前时间减去第二数据结构中的登录时间是否小于预设值,是则执行步骤a5,否则第四函数返回错误信息;

步骤a5:装置设置指纹key的登录状态为已登录,第四函数返回成功信息;

具体的,在本实施例中,装置设置登录状态为已登录包括:装置将登录标识置位并保存;优选的,将登录标识保存到第二数据结构中;

步骤a6:装置判断生成pin码的条件是否合法,是则执行步骤a7,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a6包括:装置判断第四函数的参数中的会话pin码和会话pin码长度是否均为空,是则不合法,第四函数返回错误信息;否则合法,执行步骤a7;

步骤a7:装置判断指纹key的登录状态是否为已登录,是则执行步骤a10,否则执行步骤a8;

具体的,在本实施例中,步骤a7包括:装置判断第二数据结构中保存的登录标识是否置位,是则指纹key处于已登录状态,执行步骤a10;否则指纹key处于未登录状态,执行步骤a8;

步骤a8:装置根据第一数据结构中的登录界面窗口句柄弹出指纹验证提示框,提示用户在指纹key上输入指纹进行验证,如指纹key对输入的指纹验证通过则指纹key设置自身当前状态为指纹验证已通过,给装置返回验证成功信息;如指纹key对输入的指纹验证未通过则指纹key设置自身当前状态为指纹验证未通过,给装置返回验证失败信息;

具体的,在本实施例中,步骤a8具体为:装置根据保存的登录界面窗口句柄弹出指纹验证提示框,并给指纹key发送指纹验证指令,当指纹key接收到用户输入的指纹时,判断接收到的指纹是否与内部保存的指纹是否相同,是则指纹key设置自身当前状态为指纹验证已通过,给装置返回指纹验证成功信息,否则指纹key设置自身当前状态为指纹验证未通过,给装置返回指纹验证失败信息;

步骤a9:装置根据接收到的指纹key返回的信息判断指纹key是否验证成功,是则设置指纹key的登录状态为已登录,执行步骤a10,否则第四函数返回错误信息;

具体的,在本实施例中,步骤a9包括:装置根据接收到的信息判断指纹验证是否成功,如接收到的信息为指纹验证成功信息则指纹key验证成功,将第二数据结构中的登录标识置位,执行步骤a10,如接收到的信息为指纹验证失败信息则指纹key验证失败,第四函数返回错误信息;

步骤a10:装置生成会话pin码并保存,且保存登录时间,第四函数返回成功信息;

具体的,在本实施例中,步骤a10包括:装置根据第四函数的参数中的第一数据结构中的函数指针获取生成函数,通过生成函数生成对应的会话pin码,保存生成的会话pin码和本次登录时间,第四函数返回成功信息;优选的,将生成的会话pin码和本次登录时间保存在第二数据结构中;

步骤108:操作系统通过第四函数的返回值判断指纹key是否验证成功,是则操作系统根据第五函数指针调用对应的第五函数,执行步骤109,否则结束;

具体的,在本实施例中,如第四函数返回成功信息则指纹key验证成功,否则指纹key验证失败;

在本实施例中,装置将容器索引、签名算法标识、待签名数据作为参数调用第五函数;

步骤109:当第五函数被调用时,装置将待签名数据发送给指纹key,指纹key使用第五函数的参数定位签名私钥和签名算法,使用签名私钥根据签名算法对待签名数据进行运算生成登录操作系统所需的凭据信息,第五函数将凭据信息返回给操作系统;

具体的,在本实施例中,其中,指纹key使用第五函数的参数定位签名私钥和签名算法包括:指纹key分别根据第五函数的参数中的容器索引和签名算法标识获取对应容器中的签名私钥和签名算法;如指纹key签名不成功则给操作系统返回签名失败信息,第五函数返回错误信息;

例如,本实施例中的待签名数据可以包括:用户名、域名、随机数等;

步骤110:操作系统通过第五函数的返回值判断计算签名是否成功,是则执行步骤111,否则结束;

具体的,在本实施例中,如第五函数返回凭据信息则计算签名成功,否则计算签名失败;

步骤111:操作系统使用用户选择的证书对凭据信息进行验证,如验证成功则允许登录,如验证失败则拒绝登录;

具体的,在本实施例中,使用用户选择的证书对签名结果进行验证,具体为:操作系统使用用户选择的证书中的签名公钥对签名结果进行解密,对待签名数据进行哈希计算,判断哈希计算结果和解密结果是否一致,是则验证成功,否则验证失败。

实施例三

本发明实施例三提供一种使用指纹key进行登录的装置,如图3所示,包括第二操作模块302、第三操作模块303、第四操作模块304和第五操作模块305;

第二操作模块302,用于获取登录验证方式,并将登录验证方式返回给操作系统;

在本实施例中,第二操作模块302具体用于将第二函数参数中的外部pin码验证方式设置为第一预设值,并将第一预设值的外部pin码验证方式返回给操作系统;优选的,第二操作模块302具体用于将第二函数参数中的第三数据结构中的外部pin码验证方式设置为第一预设值,并将第一预设值的外部pin码验证方式返回给操作系统;

第三操作模块303,用于获取第三函数参数中的登录验证方式,并判断登录验证方式是否为外部验证方式,是则获取第三函数参数中的登录界面窗口句柄并保存,返回成功信息,否则返回错误信息;

第四操作模块304,用于根据第三操作模块303保存的登录界面窗口句柄弹出指纹验证提示框,提示用户在指纹key上输入指纹进行验证,如指纹key对输入的指纹验证通过则指纹key设置自身当前状态为指纹验证已通过,如指纹key对输入的指纹验证未通过则指纹key设置自身当前状态为指纹验证未通过;

具体的,在本实施例中,第四操作模块304包括:

第一判断单元,用于当第四函数被调用时,判断是否需要生成会话pin码;

在本实施例中,第一判断单元具体用于判断第四函数参数中的pin码标志中的验证标识是否置位,是则需要生成会话pin码,否则不需要生成会话pin码;

第二判断单元,用于当第一判断单元判断为否时,判断是否需要使用会话pin码进行登录,当判断为否时返回错误信息;

在本实施例中,第二判断单元具体用于判断第四函数参数中的pin码标志中的登录标识是否置位,当判断为否时返回错误信息;

第三判断单元,用于当第二判断单元判断为是时,判断是否保存有合法的会话pin码,当判断为否时返回错误信息;

在本实施例中,第三判断单元具体用于判断第四函数的参数中是否有会话pin码且参数中的会话pin码长度是否等于预设长度,当判断为否时返回错误信息;

第四判断单元,用于当第三判断单元判断为是时,判断指纹key是否登录有效,当判断为否时返回错误信息;

在本实施例中,第四判断单元具体用于判断当前时间减去保存的登录时间是否小于预设值,当判断为否时返回错误信息;优选的,登录时间保存在第二数据结构中;

第一设置单元,用于当第四判断单元判断为是时,设置指纹key的登录状态为已登录,返回成功信息;

在本实施例中,第一设置单元具体用于将登录标识置位并保存,返回成功信息;优选的,将登录标识保存到到第二数据结构中;

第五判断单元,用于当第一判断单元判断为是时,判断生成pin码的条件是否合法,当判断为否时返回错误信息;

在本实施例中,第五判断单元具体用于判断第四函数的参数中的会话pin码和会话pin码长度是否均为空,是则返回错误信息;

第六判断单元,用于当第五判断单元判断为是时,判断指纹key的登录状态是否为已登录;

在本实施例中,第六判断单元具体用于判断第二数据结构中保存的登录标识是否置位,是则指纹key处于已登录状态,否则指纹key处于未登录状态;

弹出提示单元,用于当第六判断单元判断为否时,根据第三操作模块保存的登录界面窗口句柄弹出指纹验证提示框,提示用户在指纹key上输入指纹进行验证;如指纹key对输入的指纹验证通过则指纹key设置自身当前状态为指纹验证已通过,给装置返回验证成功信息;如指纹key对输入的指纹验证未通过则指纹key设置自身当前状态为指纹验证未通过,给装置返回验证失败信息;

在本实施例中,弹出提示单元具体用于根据保存的登录界面窗口句柄弹出指纹验证提示框,并给指纹key发送指纹验证指令,当指纹key接收到用户输入的指纹时,判断接收到的指纹是否与内部保存的指纹一致,是则指纹key设置自身当前状态为指纹验证已通过,给装置返回验证成功信息;否则指纹key设置自身当前状态为指纹验证未通过,给装置返回验证失败信息;

接收单元,用于接收指纹key返回的验证成功信息或验证失败信息;

第七判断单元,用于根据接收单元接收到的指纹key返回的信息判断指纹key是否验证成功,是则设置指纹key的登录状态为已登录,否则返回错误信息;

在本实施例中,第七判断单元具体用于根据接收单元接收到的指纹key返回的信息判断指纹key是否验证成功,如接收到的信息为验证成功信息则将登录标识置位,如接收到的信息为验证失败信息则返回错误信息;优选的,本实施例中的登录标识保存在第二数据结构中;

生成保存单元,用于当第六判断单元和/或第七单元判断为是时生成会话pin码并保存,且保存登录时间,返回成功信息。

在本实施例中,生成保存单元具体用于根据第四函数的参数中的函数指针获取生成函数,通过生成函数生成对应的会话pin码,保存会话pin码和登录时间,返回成功信息;优选的,生成保存单元将会话pin码和登录时间保存在第二数据结构中;

第五操作模块305,用于将待签名数据发送给指纹key,指纹key检查自身当前状态是否为指纹验证已通过,是则指纹key使用第五函数的参数定位签名私钥和签名算法,使用签名私钥根据签名算法对待签名数据进行运算生成登录操作系统所需的凭据信息,第五操作模块还用于将凭据信息返回给操作系统;否则结束操作。

在本实施例中的装置还可以包括第一操作模块,当操作系统接收到登录触发信息时,提示用户插入指纹key;如操作系统检测到指纹key插入时,获取指纹key中的所有用户证书并显示,提示用户选择进行登录所使用的证书,当操作系统接收到用户选择的进行登录所使用的证书时触发第一操作模块;第一操作模块用于将函数地址列表返回给操作系统,操作系统分别根据函数地址列表中的第二函数地址、第三函数地址、第四函数地址和第五函数地址调用第二函数、第三函数、第四函数和第五函数。在本实施例中,第一操作模块具体用于初始化第一数据结构,获取第二函数地址、第三函数地址、第四函数地址、第五函数地址,创建第二数据结构并将第二数据结构保存到第一数据结构中。优选的,第二函数地址、第三函数地址、第四函数地址、第五函数地址为第二函数指针、第三函数指针、第四函数指针、第五函数指针。

本发明技术方案在window函数中通过使用外部验证密码方式,用指纹验证代替pin验证,只需要修改厂商的windows函数来弹出指纹提示框而不弹出pin码框,让指纹key直接在windows系统中能正常使用,方便用户使用。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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