【技术实现步骤摘要】
一种安全签名的实现方法及装置
本专利技术涉及信息安全领域,尤其涉及一种安全签名的实现方法及装置。
技术介绍
随着信息安全的发展,智能密钥设备签名模块开始广泛的应用于安全领域,用户使用签名模块(例如智能密钥设备)对传输报文进行签名来保证用户信息的安全性。在现有技术中,首先通过验PIN操作对用户身份的合法性进行确认,确认合法后再对传输报文进行签名操作。由于验PIN操作和签名操作是通过两条彼此独立的指令来实现的,验PIN操作和签名操作无任何数据关联,有可能存在以下问题:验PIN操作之后很久才进行签名操作,在这期间会出现验一次PIN而进行多次签名操作,多次签名操作中可能是合法用户操作也可能是非法用户操作,导致用户信息泄露,而无法保证签名操作的安全性。故亟待提供一种更安全签名方法来保护用户信息的安全性。
技术实现思路
本专利技术的目的是为了克服现有技术的不足,提供一种安全签名的实现方法及装置。本专利技术提供了一种安全签名的实现方法,包括:步骤F1:当签名模块接收到终端发送的验PIN指令时,根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,并使用所述第二共享密 ...
【技术保护点】
1.一种安全签名的实现方法,其特征在于,包括:步骤F1:当签名模块接收到终端发送的验PIN指令时,根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,并使用所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证,如验证成功则执行步骤F2;如验证失败则重新生成签名模块密钥对并替换保存的签名模块密钥对;所述签名模块密钥对包括签名模块私钥和签名模块公钥;步骤F2:所述签名模块生成验PIN签名数据并保存,根据所述第二共享密钥和所述验PIN签名数据生成第二计算结果,并将所述第二计算结果发送给所述终端;步骤H1:当签名模块接收到终端发送的签名操作指令时,判断所述签 ...
【技术特征摘要】
1.一种安全签名的实现方法,其特征在于,包括:步骤F1:当签名模块接收到终端发送的验PIN指令时,根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,并使用所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证,如验证成功则执行步骤F2;如验证失败则重新生成签名模块密钥对并替换保存的签名模块密钥对;所述签名模块密钥对包括签名模块私钥和签名模块公钥;步骤F2:所述签名模块生成验PIN签名数据并保存,根据所述第二共享密钥和所述验PIN签名数据生成第二计算结果,并将所述第二计算结果发送给所述终端;步骤H1:当签名模块接收到终端发送的签名操作指令时,判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤H2,否则报错;步骤H2:所述签名模块使用保存的签名私钥对所述签名操作指令中的待签名中间数据进行签名;步骤H3:所述签名模块判断当前状态是否满足预设条件,是则清除保存的所述验PIN签名数据,并将签名结果返回给所述终端,否则将签名结果返回所述终端。2.如权利要求1所述的方法,其特征在于,所述根据所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证之前包括:所述签名模块解析接收到的验PIN指令,并判断是否解析成功,是则继续,否则报错;所述步骤H1中的判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致之前,还包括:所述签名模块解析接收到的签名操作指令,并判断是否解析成功,是则继续,否则报错。3.如权利要求1所述的方法,其特征在于,所述使用所述第二共享密钥对所述验PIN指令中的第一计算结果进行验证,包括:所述签名模块使用生成的第二共享密钥对所述验PIN指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码转换成第二字节流数据,对所述第二字节流数据进行哈希运算并提取哈希结果中的前16字节数据作为提取数据,判断提取数据是否与所述第二结果数据一致,是则验证成功,否则验证失败。4.如权利要求1所述的方法,其特征在于,所述根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥,包括:所述签名模块将所述验PIN指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对所述第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥。5.如权利要求1所述的方法,其特征在于,所述根据生成的第二共享密钥对所述验PIN指令中的第一计算结果进行验证之前包括:所述签名模块判断PIN码重试次数是否为预定数据,是则报错,提示PIN码锁定;否则继续;所述步骤F1中验证失败时还包括:步骤C1:所述签名模块更新所述PIN码重试次数;步骤C2:所述签名模块判断所述PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤C3;步骤C3:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误;所述步骤F2还包括:将所述PIN码重试次数改为初始值。6.如权利要求1所述的方法,其特征在于,所述根据所述第二共享密钥和所述验PIN签名数据生成第二计算结果,并将所述第二计算结果发送给所述终端包括:使用第二共享密钥对验PIN签名数据进行加密得到密文数据,并将所述密文数据发送给所述终端。7.如权利要求1所述的方法,其特征在于,所述步骤H1和H2替换为:步骤P1:当签名模块接收到所述终端发送的设置安全环境操作指令时,判断所述设置安全环境操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤P2,否则结束;步骤P2:所述签名模块根据所述设置安全环境指令中的算法ID和密钥容器ID判断设置签名算法是否合法,是则执行步骤P3,否则结束;步骤P3:所述签名模块根据所述密钥容器ID打开对应的密钥容器,根据所述算法ID设置对应的算法,并给所述终端返回成功设置安全环境响应;步骤T1:当签名模块接收到所述终端发送的哈希操作指令时,判断所述哈希操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤T2,否则结束;步骤T2:所述签名模块对所述哈希操作指令进行解析得到待签名数据并保存;步骤T3:所述签名模块根据设置的算法对所述待签名数据进行哈希运算得到哈希值并保存,给所述终端返回哈希计算成功响应;步骤Q1:当签名模块接收到终端发送的签名操作指令时,判断所述签名操作指令中的验PIN签名数据与保存的验PIN签名数据是否一致,是则执行步骤Q2,否则结束;步骤Q2:所述签名模块从保存的待签名数据中提取关键信息并判断是否提取成功,是则执行步骤Q3,否则结束;步骤Q3:所述签名模块显示所述关键信息并判断是否接收到用户确认信息,是则所述签名模块使用与所述签名操作指令中的容器ID所对应的容器中的签名私钥对保存的哈希值进行签名得到签名结果并保存,否则结束;步骤Q4:所述签名模块判断当前状态是否满足预设条件,是则清除保存的所述验PIN签名数据,并给所述终端返回签名成功信息,否则给所述终端返回签名失败信息;步骤L1:当签名模块接收到终端发送的获取签名结果指令时,将签名结果返回给终端。8.如权利要求7所述的方法,其特征在于,所述步骤P2包括:步骤P21:所述签名模块根据所述密钥容器ID判断对应的密钥容器是否存在,是则执行步骤P22,否则结束;步骤P22:所述签名模块根据所述算法ID判断是否支持对应的算法,是则执行步骤P3,否则结束。9.如权利要求7所述的方法,其特征在于,所述步骤T3还包括:所述签名模块给所述终端返回所述哈希值。10.如权利要求1或7所述的方法,其特征在于,所述步骤F2还包括:将验PIN签名标识设为有效;所述步骤H1、步骤P1、步骤T1、步骤Q1中还包括:所述签名模块判断所述验PIN签名标识是否有效,是则继续,否则报错;所述步骤H3中判断为是时还包括:将所述验PIN签名标识设为无效。11.如权利要求10所述的方法,其特征在于,所述将所述验PIN签名标识设为有效,具体为:将验PIN签名标识置位;所述判断所述验PIN签名标识是否有效,具体为:判断所述验PIN签名标识是否置位;所述将所述验PIN签名标识设为无效,具体为:将所述验PIN签名标识复位。12.如权利要求11所述的方法,其特征在于,所述步骤F2还包括:将签名次数设为初始值;所述签名模块判断当前状态是否满足预设条件,包括:更新所述签名次数,并判断所述签名次数是否等于预设值,是则满足预设条件,否则不满足预设条件。13.如权利要求1或7所述的方法,其特征在于,所述步骤F2还包括:设置签名有效时间;所述签名模块判断当前状态是否满足预设条件,包括:判断当前时间是否在签名有效时间内,是则不满足预设条件,否则满足预设条件。14.如权利要求1所述的方法,其特征在于,还包括:当签名模块接收到设置PIN码指令时,所述签名模块判断PIN码是否已设置,是则报错,否则对所述设置PIN码指令进行验证,如验证成功则根据所述设置PIN码指令中的第一密文生成PIN码并保存,如验证失败则结束。15.如权利要求14所述的方法,其特征在于,所述签名模块对所述设置PIN码指令进行验证,包括:步骤M1:所述签名模块将保存的签名模块私钥与所述设置PIN码指令中的终端公钥进行计算得到第一计算值,对第一计算值进行哈希运算,将哈希结果作为第二共享密钥;步骤M2:所述签名模块使用所述第二共享密钥、对所述设置PIN码指令中的第一密文进行HMAC运算得到第二运算结果,并提取第二运算结果中的前16个字节数据得到提取数据;步骤M3:所述签名模块判断所述提取数据是否与所述设置PIN码指令中的第一结果数据一致,是则验证成功,否则验证失败。16.如权利要求15所述的方法,其特征在于,所述步骤M1之前还包括:所述签名模块对接收到的所述设置PIN码指令进行解析,并判断是否解析成功,是则执行步骤M1,否则报错。17.如权利要求15所述的方法,其特征在于,所述根据所述设置PIN码指令中的第一密文生成PIN码并保存,包括:步骤N1:所述签名模块使用所述第二共享密钥对所述设置PIN码指令中的第一密文进行解密得到第一解密值,去除所述第一解密值中的填充数据得到密码中间值;步骤N2:所述签名模块判断所述密码中间值是否小于第一预设值,是则报错,否则执行步骤N3;步骤N3:所述签名模块对所述密码中间值进行哈希运算得到哈希结果,提取哈希结果中的前16个字节数据并保存为PIN码。18.如权利要求17所述的方法,其特征在于,还包括:当所述签名模块接收到修改PIN码指令时,对所述修改PIN码指令进行验证,如验证成功则用所述修改PIN码指令中的PIN码替换保存的PIN码,如验证失败则报错。19.如权利要求18所述的方法,其特征在于,所述对所述修改PIN码指令进行验证,包括:步骤W1:所述签名模块对保存的签名模块私钥与所述修改PIN码指令中的终端公钥进行计算得到第一结果数据,对第一结果数据进行哈希运算得到第二共享密钥;将所述修改PIN码指令中的第一加密值和所述修改PIN码指令中的第二加密值进行拼接得到第二拼接结果;步骤W2:所述签名模块使用第二共享密钥、对第二拼接结果进行HMAC运算得到第二运算结果,并从第二运算结果中提取前16个字节数据得到提取数据;步骤W3:所述签名模块判断所述修改PIN码指令中的中间数据与所述提取数据是否一致,是则执行步骤W4,否则报错;步骤W4:所述签名模块使用所述第二共享密钥对所述第一加密值进行解密得到第一解密值;步骤W5:所述签名模块判断所述第一解密值与内部保存的PIN码是否一致,是则验证成功,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。20.如权利要求19所述的方法,其特征在于,所述用所述修改PIN码指令中的PIN码替换保存的PIN码,包括:步骤K1:所述签名模块使用所述第二共享密钥对所述第二加密值进行解密得到第二解密值,去除所述第二解密值中的填充数据得到第一中间值;步骤K2:所述签名模块判断第一中间值的长度是否小于第一预设值,是则执行步骤K3,否则报错;步骤K3:所述签名模块对所述第一中间值进行哈希运算得到哈希结果,提取所述哈希结果的前16个字节数据并替换所述内部保存的PIN码。21.如权利要求20所述的方法,其特征在于,所述步骤W1之前还包括:所述签名模块解析接收到的修改PIN码指令,并判断是否解析成功,是则执行步骤W1,否则报错。22.如权利要求20所述的方法,其特征在于,所述步骤N3还包括:所述签名模块将PIN码重试次数设为初始值;所述步骤K3还包括:所述签名模块将所述PIN码重试次数改为初始值;所述步骤W1之前还包括:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤W1;所述步骤W5中验证失败之后还包括:步骤W6:所述签名模块更新所述PIN码重试次数;步骤W7:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤W8;步骤W8:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。23.如权利要求17所述的方法,其特征在于,还包括:当签名模块接收到获取验PIN签名数据指令时,对所述获取验PIN签名数据指令进行验证,如验证成功则生成验PIN签名数据并发送给所述终端,如验证失败则结束。24.如权利要求23所述的方法,其特征在于,所述对所述获取验PIN签名数据指令进行验证,包括:步骤R1:所述签名模块将所述获取验PIN签名数据指令中的终端公钥与保存的签名模块私钥进行计算得到第一计算值,对第一计算值进行哈希运算得到第一哈希值并将其作为第二共享密钥;步骤R2:所述签名模块使用第二共享密钥、对所述获取验PIN签名数据指令中的第一计算结果进行解密运算得到第二结果数据,获取内部保存的PIN码,将PIN码转换成字节流数据,对字节流数据进行哈希运算并提取哈希结果中的前16字节数据得到提取数据;步骤R3:所述签名模块判断所述第二结果数据是否与提取数据相同,是则验证成功,否则验证失败,重新生成签名模块密钥对并替换保存的签名模块密钥对。25.如权利要求23所述的方法,其特征在于,所述生成验PIN签名数据并发送给所述终端,包括:生成第一随机数作为验PIN签名数据,使用所述第二共享密钥对验PIN签名数据进行加密得到密文数据,并将密文数据返回给终端。26.如权利要求24所述的方法,其特征在于,所述步骤R1之前还包括:步骤R0:所述签名模块解析接收到的获取验PIN签名数据指令,并判断是否解析成功,是则执行步骤R1,否则报错。27.如权利要求24所述的方法,其特征在于,所述步骤N3还包括:所述签名模块将PIN码重试次数设为初始值;所述步骤R3验证成功时还包括:所述签名模块将所述PIN码重试次数改为初始值;所述步骤R1之前还包括:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定;否则执行步骤R1;所述步骤R3判断为否还包括:步骤R4:所述签名模块更新PIN码重试次数;步骤R5:所述签名模块判断PIN码重试次数是否为预定数据,是则提示PIN码锁定,否则执行步骤R6;步骤R6:所述签名模块判断验证PIN码是否连续三次出错,是则提示PIN码认证报文错误,否则提示输入PIN码错误。28.如权利要求4或15或19或24所述的方法,其特征在于,还包括:当所述签名模块接收到协商共享密钥指令时,生成签名模块密钥对并保存,将所述签名模块密钥对中的签名模块公钥返回给所述终端。29.一种安全签名的实现装置,其特征在于,包括签名模块,所述签名模块:接收子模块,用于接收终端发送的验PIN指令和签名操作指令;第一生成子模块,用于当所述接收子模块接收到验PIN码指令时,根据所述验PIN指令中的终端公钥和保存的签名模块私钥生成第二共享密钥;第一验证子模块,用于使用所述第一生成子模块生成的第二共享密钥对所述验PIN指令中的第一计算结果进行验证,如验证成功则触发第三生成子模块;如验证失败则触发第二生成子模块;所述第二生成子模块,用于重新生成签名模块密钥对并替换保存的签名模块密钥对;所述签名模块密钥对包括签名模块私钥和签名模块公钥;所述第三生成子模块,用于生成验PIN签名数据并保存;根据所述第一生成子模块生成的第二共享密钥和所述验PIN签名数据生成第二计算结果;第一判...
【专利技术属性】
技术研发人员:陆舟,于华章,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。