G06F21/44 G06F21/46
1.一种程序认证方法,适用于设置有安全芯片的移动终端,其特征在于,包括步骤:
程序、安全芯片之间约定第一公钥、第一私钥、会话密钥和第一杂凑值,所述程序获取 外部输入的PIN码并计算对应的杂凑值,标记其为第二杂凑值;
所述程序获取输入的PIN码并生成验证申请,基于所述第一公钥、会话密钥加密所述验 证申请以获取第一加密码;
所述安全芯片基于所述第一私钥、会话密钥解析并验证所述第一加密码,如验证通过 则随机生成第一随机码、第二公钥和第二私钥,基于会话密钥加密所述第一随机码、第二公 钥以获取第二加密码;
所述程序加密所述第二杂凑值以获取第三加密码;
所述安全芯片解析所述第三加密码以获取所述第二杂凑值,如所述第二杂凑值和第一 杂凑值一致则认证通过。
2.根据权利要求1所述的一种程序认证方法,其特征在于,所述约定会话密钥的步骤包 括:
程序生成公钥请求信息,基于安全密钥加密所述公钥请求信息;
安全芯片解析并验证所述公钥请求信息,通过则生成第一公钥和第一私钥,基于安全 密钥加密所述第一公钥以获取第四加密码,计算所述第一公钥的杂凑值为第三杂凑值,输 出所述第四加密码和第三杂凑值;
程序解析所述第四加密码以获取第一公钥和第三杂凑值,计算并判断所述第一公钥的 杂凑值是否与所述第三杂凑值一致,是则存储所述第一公钥;
程序生成密钥请求信息并计算对应杂凑值,标记该杂凑值为第四杂凑值,结合所述密 钥请求信息和第四杂凑值为第五加密码;
安全芯片解析所述第五加密码以获取密钥请求信息,计算并判断该密钥请求信息的杂 凑值是否与第四杂凑值一致,是则生成第二随机码,加密所述第二随机码以获取会话密钥。
3.根据权利要求2所述的一种程序认证方法,其特征在于,还包括步骤:
程序、安全芯片获取并加密固件信息以获取安全密钥,所述固件信息包括移动终端的 IMEI码和安全芯片的序列号;
程序生成公钥请求信息,基于安全密钥加密所述公钥请求信息。
7.根据权利要求2所述的一种程序认证方法,其特征在于,加密所述第二随机码以获取 会话密钥的步骤包括:
安全芯片产生第三随机码,将第二随机码和第三随机码进行异或,标记异或结果为会 话密钥。
4.根据权利要求1所述的一种程序认证方法,其特征在于,所述基于所述第一公钥、会 话密钥加密所述验证申请以获取第一加密码的步骤包括:
基于会话密钥、SM4算法对所述验证申请进行加密,然后使用所述公钥进行再一次加密 以获取第一加密码。
5.根据权利要求1所述的一种程序认证方法,其特征在于,所述基于会话密钥加密的步 骤包括:
基于会话密钥、SM4算法对所述第一随机码、第二公钥以获取第二加密码。
6.根据权利要求1所述的一种程序认证方法,其特征在于,所述程序加密所述第二杂凑 值以获取第三加密码的步骤包括:
对所述第二杂凑值进行PKCS1_PADDING填充,使用第一随机码和填充后的数据进行异 或运算以获取认证数据,基于公钥和会话密钥加密所述认证数据以获取第三加密码。
8.根据权利要求1~7任一项所述的一种程序认证方法,其特征在于,所述安全芯片基 于SM2算法生成第一公钥和第一私钥。
9.一种认证系统,适用于权利要求1所述方法,其特征在于,包括:
安全芯片和程序,其中,
所述程序用于获取输入的PIN码并生成验证申请,基于所述第一公钥、会话密钥加密所 述验证申请以获取第一加密码;
所述安全芯片用于基于所述第一私钥、会话密钥解析并验证所述第一加密码,如验证 通过则随机生成第一随机码、第二公钥和第二私钥,基于会话密钥加密所述第一随机码、第 二公钥以获取第二加密码;
所述程序还用于加密所述第二杂凑值以获取第三加密码;
所述安全芯片还用于解析所述第三加密码以获取所述第二杂凑值,如所述第二杂凑值 和第一杂凑值一致则认证通过。
本发明涉及软件程序认证技术领域,尤其涉及一种程序认证方法。
随着移动信息技术的发展,以及对移动信息安全技术的不断重视,身份认证技术 作为网络安全的核心,目的在于防止未授权用户访问相关资源,而PIN码是目前在移动支付 中常用的个人身份认证方式,特别是在金融U盾及SIM卡上得到广泛应用,用以验证个人身 份的合法性的重要数据。同时,移动支付的不断普及,各种支付APP应用程序不断被推广,很 多APP需要访问终端中的安全芯片资源,如手机U盾,通过将安全芯片集成在手机中实现普 通U盾功能,用以实现安全、快捷的大额转账与支付功能。手机U盾同传统U盾一样可使用PIN 码作为客户端对硬件访问的一种安全授权方式,由于目前大部分手机系统环境的开放性和 不确定性,对PIN码的造成了泄露风险,所以在PIN码认证中保护好传输过程及进行安全的 身份认证至关重要。
现有的技术中主要通过用户在客户端输入的PIN码进行简单的加密后发送给硬件 比对,用于确认输入者的身份,现有的PIN码保护只是采用了简单的加密,对PIN码的传输并 未做更加安全的保护,黑客利用木马或篡改客户端程序可对通信的指令数据进行监听,窃 取关键数据信息,无法抵御窃听、重放等技术手段对PIN码的攻击,当黑客通过获取的关键 数据信息可窃取用户资金,可造成财产损失,存在重大的安全隐患。
为了解决上述问题,本发明提供一种程序认证方法。
本发明采用的技术方案为一种程序认证方法,适用于设置有安全芯片的移动终 端,包括步骤:程序、安全芯片之间约定第一公钥、第一私钥、会话密钥和第一杂凑值,所述 程序获取外部输入的PIN码并计算对应的杂凑值,标记其为第二杂凑值;所述程序获取输入 的PIN码并生成验证申请,基于所述第一公钥、会话密钥加密所述验证申请以获取第一加密 码;所述安全芯片基于所述第一私钥、会话密钥解析并验证所述第一加密码,如验证通过则 随机生成第一随机码、第二公钥和第二私钥,基于会话密钥加密所述第一随机码、第二公钥 以获取第二加密码;所述程序加密所述第二杂凑值以获取第三加密码;所述安全芯片解析 所述第三加密码以获取所述第二杂凑值,如所述第二杂凑值和第一杂凑值一致则认证通 过。
优选地,所述约定会话密钥的步骤包括:程序生成公钥请求信息,基于安全密钥加 密所述公钥请求信息;安全芯片解析并验证所述公钥请求信息,通过则生成第一公钥和第 一私钥,基于安全密钥加密所述第一公钥以获取第四加密码,计算所述第一公钥的杂凑值 为第三杂凑值,输出所述第四加密码和第三杂凑值;程序解析所述第四加密码以获取第一 公钥和第三杂凑值,计算并判断所述第一公钥的杂凑值是否与所述第三杂凑值一致,是则 存储所述第一公钥;程序生成密钥请求信息并计算对应杂凑值,标记该杂凑值为第四杂凑 值,结合所述密钥请求信息和第四杂凑值为第五加密码;安全芯片解析所述第五加密码以 获取密钥请求信息,计算并判断该密钥请求信息的杂凑值是否与第四杂凑值一致,是则生 成第二随机码,加密所述第二随机码以获取会话密钥。
优选地,还包括步骤:程序、安全芯片获取并加密固件信息以获取安全密钥,所述 固件信息包括移动终端的IMEI码和安全芯片的序列号;程序生成公钥请求信息,基于安全 密钥加密所述公钥请求信息。
优选地,所述基于所述第一公钥、会话密钥加密所述验证申请以获取第一加密码 的步骤包括:基于会话密钥、SM4算法对所述验证申请进行加密,然后使用所述公钥进行再 一次加密以获取第一加密码。
优选地,所述基于会话密钥加密的步骤包括:基于会话密钥、SM4算法对所述第一 随机码、第二公钥以获取第二加密码。
优选地,所述程序加密所述第二杂凑值以获取第三加密码的步骤包括:对所述第 二杂凑值进行PKCS1_PADDING填充,使用第一随机码和填充后的数据进行异或运算以获取 认证数据,基于公钥和会话密钥加密所述认证数据以获取第三加密码。
优选地,所述安全芯片基于SM2算法生成第一公钥和第一私钥。
优选地,加密所述第二随机码以获取会话密钥的步骤包括:安全芯片产生第三随 机码,将第二随机码和第三随机码进行异或,标记异或结果为会话密钥。
本发明采用的技术方案为另一方面为一种认证系统,适用于上述方法,包括:安全 芯片和程序,其中,所述程序用于获取输入的PIN码并生成验证申请,基于所述第一公钥、会 话密钥加密所述验证申请以获取第一加密码;所述安全芯片用于基于所述第一私钥、会话 密钥解析并验证所述第一加密码,如验证通过则随机生成第一随机码、第二公钥和第二私 钥,基于会话密钥加密所述第一随机码、第二公钥以获取第二加密码;所述程序还用于加密 所述第二杂凑值以获取第三加密码;所述安全芯片还用于解析所述第三加密码以获取所述 第二杂凑值,如所述第二杂凑值和第一杂凑值一致则认证通过。
本发明的有益效果为通过程序和安全芯片的独立验证,能够增加安全系数,借助 杂凑值和多级的加密流程,能避免针对PIN码的攻击,提高在移动终端上的软件程序的验证 过程的安全性。
图1所示为基于本发明实施例的手机终端框架图;
图2所示为基于本发明实施例的安全密钥生成流程示意图;
图3所示为基于本发明实施例的程序、安全芯片之间的安全通道建立流程图;
图4所示为基于本发明实施例的认证流程示意图。
以下结合实施例对本发明进行说明。
基于发明的实施例,一种程序认证方法,适用于设置有安全芯片的移动终端,包括 步骤:程序、安全芯片之间约定第一公钥、第一私钥、会话密钥和第一杂凑值,所述程序获取 外部输入的PIN码并计算对应的杂凑值,标记其为第二杂凑值;所述程序获取输入的PIN码 并生成验证申请,基于所述第一公钥、会话密钥加密所述验证申请以获取第一加密码;所述 安全芯片基于所述第一私钥、会话密钥解析并验证所述第一加密码,如验证通过则随机生 成第一随机码、第二公钥和第二私钥,基于会话密钥加密所述第一随机码、第二公钥以获取 第二加密码;所述程序加密所述第二杂凑值以获取第三加密码;所述安全芯片解析所述第 三加密码以获取所述第二杂凑值,如所述第二杂凑值和第一杂凑值一致则认证通过。
针对实施例的进一步说明,如图1所示的手机终端框架,如客户端(即所述程序)为 某一银行的网银,安全芯片集成在手机终端上并与现在的工行U盾的功能一致,而PIN码为 认证用户身份的静态密码,由于手机终端系统是处于一个较为开放的环境若通过明文或简 单加密是无法保证PIN码传输过程的安全,所以两者需建立安全通信通道;为实现安全通道 建立,需在客户端和安全芯片两端预置密钥;客户端和安全芯片由专用的通信接口连接并 通过加密的APDU指令进行数据交换,非授权客户端无法访问安全芯片资源,预置密钥(即 Set-key)过程是在无网络的安全环境下进行,同时用户需要预先设置PIN码(第一杂凑值对 应的初始密码),并将PIN码杂凑值保存在安全芯片内部;用户输入PIN码的安全在客户端软 件中采用了密码控件,使用了动态密码键盘和内存数据无驻留处理;客户端软件和安全芯 片两端分别预置了密钥(预设的)Set-key,同时安全芯片产生一个随机数R-key(即所述第 三随机数)作为根密钥保存在安全芯片内。
所述约定会话密钥的步骤包括:程序生成公钥请求信息,基于安全密钥加密所述 公钥请求信息;安全芯片解析并验证所述公钥请求信息,通过则生成第一公钥和第一私钥, 基于安全密钥加密所述第一公钥以获取第四加密码,计算所述第一公钥的杂凑值为第三杂 凑值,输出所述第四加密码和第三杂凑值;程序解析所述第四加密码以获取第一公钥和第 三杂凑值,计算并判断所述第一公钥的杂凑值是否与所述第三杂凑值一致,是则存储所述 第一公钥;程序生成密钥请求信息并计算对应杂凑值,标记该杂凑值为第四杂凑值,结合所 述密钥请求信息和第四杂凑值为第五加密码;安全芯片解析所述第五加密码以获取密钥请 求信息,计算并判断该密钥请求信息的杂凑值是否与第四杂凑值一致,是则生成第二随机 码,加密所述第二随机码以获取会话密钥。
方法还包括步骤:程序、安全芯片获取并加密固件信息以获取安全密钥,所述固件 信息包括移动终端的IMEI码和安全芯片的序列号;程序生成公钥请求信息,基于安全密钥 加密所述公钥请求信息。
如图2所示的安全密钥生成流程:当手机终端开机时安全芯片上电,客户端通过专 用接口调用终端获取15位IMEI码和安全芯片的16位序列号,并将获取到的15位IMEI码和16 位序列号通过错位运算排序,此时错位运算可以将IMEI码和安全芯片序列号按照字符排位 顺序各取一位填充成字符串数据,将使用预置的密钥Set-key通过SM4算法加密字符串数据 得到密文(Sca-key),将得到的密文作为安全密钥。同理,在安全芯片端通过软件获取终端 15位IMEI码和本芯片中的16位序列号,以同样的错位排序法进行排序组成字符串数据,用 预置的密钥Set-key以SM4算法加密字符串数据,得到密文作为安全密钥(Sca-key);关于 IMEI码和安全芯片序列号的组合方式具有多种形式,这里不一一列举。
针对实施例的进一步说明,如图3所示的程序、安全芯片之间的安全通道建立流程 图:
(1)客户端软件组装请求公钥的APDU指令(即所述公钥请求信息),并使用安全密 钥Sca-key对指令数据进行SM4算法运算得到加密后的APDU指令的密文,将指令数据进行 SM3运算得到杂凑值(标记为第五杂凑值),将密文与杂凑值组包成新的指令数据发送给安 全芯片(仍标记其为公钥请求信息);
(2)安全芯片接收到数据后通过安全密钥Sca-key解密得到指令数据,并通过SM3 算法运算得到指令的杂凑值(标记为第六杂凑值),对比从客户端接收到的杂凑值和本地运 算生成的杂凑值是否一致,若不一致,则创建安全通道失败,若一致,则执行下一步骤;
(3)安全芯片生成一对SM2算法的公私钥(Pub-key、pri-key,即所述第一公钥和第 一私钥),私钥(pri-key)保存于安全芯片存储器中,将传输公钥的APDU指令数据通过Sca- key以SM4算法加密得到指令密文(即所述第四加密码),并将公钥的指令数据(此处指第四 加密码)通过SM3杂凑运算获得杂凑值(即第三杂凑值),并将APDU的指令密文和杂凑值传送 至客户端;
(4)客户接收到传输公钥的指令密文(即所述第四加密码)和杂凑值(即第三杂凑 值)后,使用安全密钥Sca-key和SM4算法解密得到公钥的指令数据明文,通过SM3算法运算 公钥的指令数据明文的杂凑值(标记为第七杂凑值),通过对比接收到的杂凑值(即第三杂 凑值)和客户端本地运算的杂凑值(即第七杂凑值)是否一致,若不一致,则创建安全通道失 败,若一致,则执行下一步骤;
(5)客户端获取解密后的公钥的指令数据明文,提取公钥Pub-key,发送协商会话 密钥指令(即所述密钥请求信息),指令数据(此处指所述密钥请求信息)由安全密钥Sca- key和SM4算法加密,同时将协商会话密钥指令数据进行SM3杂凑运算得到杂凑值(即所述第 四杂凑值),将加密后的指令和杂凑值(两者的结合即所述第五加密码)发送至安全芯片端;
(6)安全芯片通过安全密钥Sca-key解密(所述第五加密码)后获取协商会话密钥 指令(即所述密钥请求信息),同时并验证杂凑值(过程和上述步骤4类似)是否一致,若一致 则由安全芯片生成随机数Rand(即第二随机码),并将Rand与R-key进行异或运算得到会话 密钥Ses-key;
(7)将会话密钥Ses-key通过安全密钥Sca-key以SM4运算加密获得密文,会话密钥 进行SM3杂凑运算得到杂凑值,将会话密钥密文和杂凑值传送给客户端;
(8)解密密文获取会话密钥Ses-key,并对会话密钥进行杂凑运算,对比接收和运 算后的杂凑值,若一致,密钥协商会话密钥Ses-key成功,客户端和安全芯片两端均获得会 话密钥Ses-key,安全通道建立。
针对实施例的进一步说明,如图4所示的客户端输入PIN码进行的个人身份认证的 流程示意图:
1)客户端软件(即所述程序,主要指需要进行秘密保护的程序,例如银行网银客户 端)通过了动态密码键盘及内存无驻留处理(用户输入的密码),当用户通过客户端输入6位 PIN码时,客户端发起获取随机数(用于提醒安全芯片:“有客户输入的PIN码”这个行为的出 现,具体可以体现为一个预设的标识/代码)和保护公私钥指令(即所述验证申请,用于申请 新的公钥和私钥),使用会话密钥Ses-key对以上的指令数据进行SM4(国产密码算法的一 种)加密,同时使用公钥Pub-key(即第一公钥)对加密的数据再次加密(以获得第一加密 码);
2)安全芯片接收到数据(即第一加密码)后通过私钥Pri-key解密验证客户端(即 所述程序)的身份有效性(公私钥验证),同时用会话密钥解密得到随机数和保护公私钥指 令,安全芯片生成随机数Rand1(即所述第一随机码)和一对保护公私钥(Pub1-key,Pri1- key,即所述第二公钥和第二私钥),将保护公钥(pub1-key,即所述第二公钥)和随机数 Rand1用会话密钥Ses-key和SM4算法加密后(即所述第二加密码)发送给客户端;
3)客户端接收到加密后的数据(即所述第二加密码)后,使用会话密钥Ses-key解 密获取到随机数Rand1和保护公钥Pub1-key,同时将PIN码(即外部输入的PIN码)进行SM3 (国产密码算法的一种)杂凑运算得到杂凑值(即所述第二杂凑值),将杂凑值进行PKCS1_ PADDING填充,并使用随机数Rand1和填充后的数据进行异或运算获得认证数据,用Pub1- key对认证数据加密,再用会话密钥Ses-key加密后(即所述第三加密码)组装成APDU密文数 据并发送给安全芯片;
4)安全芯片接收APDU密文数据,用会话密钥Ses-key和Pub-key分别解密,获得认 证数据,再用Rand1去异或和去PADDING得到PIN码杂凑值,对比解密后的杂凑值和本地运算 后的杂凑值(即第一杂凑值,为预设的第一次认证密码时输入的PIN码,相当于初始密码)是 否一致,若一致则PIN码正确,用户个人身份认证成功,使用会话密钥加密认证成功的指令 给客户端;客户端接收密文,解密加密后的认证成功指令,客户端实现登陆应用。
所述基于所述第一公钥、会话密钥加密所述验证申请以获取第一加密码的步骤包 括:基于会话密钥、SM4算法对所述验证申请进行加密,然后使用所述公钥进行再一次加密 以获取第一加密码。
所述基于会话密钥加密的步骤包括:基于会话密钥、SM4算法对所述第一随机码、 第二公钥以获取第二加密码。
所述程序加密所述第二杂凑值以获取第三加密码的步骤包括:对所述第二杂凑值 进行PKCS1_PADDING填充,使用第一随机码和填充后的数据进行异或运算以获取认证数据, 基于公钥和会话密钥加密所述认证数据以获取第三加密码。
所述安全芯片基于SM2算法生成第一公钥和第一私钥。
基于发明的实施例,一种认证系统,适用于上述方法,包括:安全芯片和程序,其 中,所述程序用于获取输入的PIN码并生成验证申请,基于所述第一公钥、会话密钥加密所 述验证申请以获取第一加密码;所述安全芯片用于基于所述第一私钥、会话密钥解析并验 证所述第一加密码,如验证通过则随机生成第一随机码、第二公钥和第二私钥,基于会话密 钥加密所述第一随机码、第二公钥以获取第二加密码;所述程序还用于加密所述第二杂凑 值以获取第三加密码;所述安全芯片还用于解析所述第三加密码以获取所述第二杂凑值, 如所述第二杂凑值和第一杂凑值一致则认证通过。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要 其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范 围内其技术方案和/或实施方式可以有各种不同的修改和变化。
本文发布于:2023-04-15 02:29:37,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/87520.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |