一种在移动操作系统中完成数字签名的方法和系统的制作方法

文档序号:7870498阅读:190来源:国知局
专利名称:一种在移动操作系统中完成数字签名的方法和系统的制作方法
技术领域
本发明涉及信息安全领域,尤其涉及一种在移动操作系统中完成数字签名的方法和系统。
背景技术
iOS (iPhone Operating System,苹果操作系统)设备是使用iOS作为其操作系统的设备,包括iPhone、iPad、iPod Touch以及Apple TV等苹果产品。随着iOS设备的迅速普及,对iOS设备的应用软件的使用及需求也日益增多。iOS设备软件开发者在编写软件的时候,由于设计人员考虑不全面或程序功能不完善,在软件发行后,通常需要对软件不断进行修改或升级。软件开发者对程序修改或加入新的功能后,以补丁的形式发布的方式,用户把这些补丁更新,即修改或升级完成。软件修改或升级是为了更好的满足用户的需求和防止病毒的入侵。现有技术中,系统修改或升级时,需要同时对服务端软件、客户端软件进行升级,修改或升级过程比较繁琐。

发明内容
本发明的目的是为了克服现有技术的不足,提供一种在移动操作系统中完成数字签名的方法和系统,实现了软件的独立部署。

本发明提供的一种在移动操作系统中完成数字签名的方法,包括当应用程序被调用时,执行以下步骤步骤S1:所述应用程序对待签名数据进行编码,得到第一数据包;步骤S2 :所述应用程序以服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用系统预设函数;步骤S3 :当服务程序被所述系统预设函数调用时,解析所述系统预设函数的参数,保存所述应用程序的地址字符串;步骤S4 :所述服务程序对解析得到的所述系统预设函数的参数中的所述第一数据包进行解码,如解码成功则得到所述待签名数据,执行步骤S5,否则将解码失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S5 :所述服务程序将所述待签名数据和预设签名类型发送给智能密钥设备;步骤S6 :所述服务程序接收所述智能密钥设备返回的信息;步骤S7 :所述服务程序以所述智能密钥设备返回的信息、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数;步骤S8 :当所述应用程序被所述系统预设函数调用时,所述应用程序解析所述系统预设函数的参数,得到签名结果或所述返回值,结束。所述步骤S6至步骤S8替换为
步骤S6’ 所述服务程序接收所述智能密钥设备返回的信息,判断所述智能密钥设备返回的信息是否为签名结果,是则执行步骤S7’,否则将签名错误信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数;步骤S7’ 所述服务程序以所述签名结果、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数;步骤S8’ 当所述应用程序被所述系统预设函数调用时,所述应用程序解析所述系统预设函数的参数,解析得到的返回值是否为表示正确信息的返回值,是则得到所述签名结果,结束,否则得到错误信息,结束。所述步骤SI包括步骤Sl-1 :所述应用程序等待接收用户输入的信息及第一用户按键信息,并判断是否接收到所述用户输入的信息及第一用户按键信息,是则执行步骤S1-3,否则执行步骤S1-2;所述用户输入的信息包括第一账户、第二账户、传输信息、证书用户名和所述智能密钥设备的序列号;步骤S1-2 :所述应用程序通过显示屏将提示信息输出,返回步骤Sl-1 ;步骤S1-3 :所述应用程序对所述用户输入的信息中的所述证书用户名进行加密;步骤S1-4 :所述应用程序根据所述第一用户按键信息判断用户按键类型,若所述用户按键类型为原文签名则执行步骤S1-5,否则执行步骤S1-7 ;步骤S1-5 :所述应用程序将标志位置位,对第一信息、第二信息和第三信息进行组合,得到所述待签名数据,对所述待签名数据进行加密;所述第一信息为所述用户输入的信息的一部分,所述第二信 息由所述用户输入的信息的剩余部分与所述应用程序中的预设信息组合得到,所述第三信息为所述应用程序中的预设信息;步骤S1-6 :所述应用程序对所述待签名数据的加密结果进行编码,根据编码结果生成所述第一数据包,执行步骤S2 ;步骤S1-7 :所述应用程序将标志位复位,对所述第一信息、第二信息和第三信息分别进行加密;步骤S1-8 :所述应用程序分别对所述第一信息、第二信息和第三信息的加密结果进行编码,根据编码结果生成所述第一数据包,执行步骤S2。所述生成第一数据包具体为根据所述编码结果和所述标志位生成第一数据包,所述编码结果中包括所述智能密钥设备的序列号和加密后的证书用户名。所述步骤S2替换为步骤S2’ 所述应用程序以服务程序的地址字符串、所述应用程序的地址字符串、预设的第一认证参数和所述第一数据包为参数,调用所述系统预设函数。所述步骤S2之后还包括步骤S2-1 :所述应用程序获取所述系统预设函数的返回值,判断所述返回值类型,若为是则启动所述服务程序,否则结束。所述步骤S3包括步骤S3-0 :当所述服务程序被所述系统预设函数调用时,解析所述系统预设函数的参数,认证解析得到的所述第一认证参数并判断是否认证成功,是则保存解析得到的所述应用程序的地址字符串,否则结束。所述步骤S3具体为步骤S3-1 :当所述服务程序接收到用户输入的第二用户按键信息时,根据所述第二用户按键信息判断用户按键类型,若是确定键则执行步骤S3-2,否则将用户取消信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S3-2 :所述服务程序通过显示屏将模态框输出;步骤S3-3 :所述服务程序解析所述系统预设函数的参数,并保存所述应用程序的地址字符串;步骤S3-4 :所述服务程序获取所述智能密钥设备的序列号,判断获取的所述智能密钥设备的序列号与解析得到的所述智能密钥设备的序列号是否相同,是则执行步骤S4,否则将验证所述智能密钥设备序列号的失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8。所述步骤S4包括步骤S4-1 :所述服务程序判断所述标志位是否置位,是则执行步骤S4-2,否则执行步骤S4-3 ;步骤S4-2 :所述服务程序对所述第一数据包进行解码,对解码结果进行解密,如解密成功则得到所述用户输入的证书用户名和所述待签名数据,执行步骤S4-4,否则将解码解密失败信息作为返回值,所述服 务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S4-3 :所述服务程序对所述第一数据包进行解码,对解码结果进行解密,如解密成功则得到所述用户输入的证书用户名、所述第一信息、所述第二信息和所述第三信息,将所述第一信息、所述第二信息和所述第三信息进行组合,得到所述待签名数据,执行步骤S4-4,否则将解码解密失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S4-4 :所述服务程序验证用户输入的PIN码,如验证成功则执行步骤S4_5,否则将验证PIN码失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S4-5 :所述服务程序从所述智能密钥设备中的证书中获取证书公钥和证书用户名;步骤S4-6 :所述服务程序用所述获取得到的证书用户名验证所述用户输入的证书用户名,如验证成功则执行步骤S5,否则将验证证书用户名失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8。所述步骤S4-4之前包括所述服务程序接收用户输入的PIN码。所述步骤S4-4、步骤S4-5和步骤S4_6替换为步骤S4-4’ 所述服务程序从所述智能密钥设备中的证书中获取证书公钥和证书用户名;步骤S4-5’ 所述服务程序用所述获取得到的证书用户名验证所述用户输入的证书用户名,如验证成功则执行步骤S4-6’,否则将验证证书用户名失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8;步骤S4-6’ 所述服务程序验证用户输入的PIN码,如验证成功则执行步骤S5,否则将验证PIN码失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8。所述步骤S5之前还包括所述服务程序连接所述智能密钥设备。所述步骤S7替换为步骤S7-1 :所述服务程序以预设的第二认证参数、所述保存的所述应用程序的地址字符串、所述智能密钥设备返回的信息和返回值为参数,调用所述系统预设函数,清除所述模态框,结束。所述步骤S6,和步骤S7’替换为步骤S6’ -1 :所述服务程序接收所述智能密钥设备返回的信息,判断所述智能密钥设备返回的信息是否为签名结果,是则执行步骤S7’,否则将签名错误信息作为返回值,所述服务程序以预设的第二认证参数、所述保存的所述应用程序的地址字符串和所述返回值为参数,调用系统预设函数;步骤S7,-1 :所述服务程序以所述第二认证参数、所述保存的所述应用程序的地址字符串、所述智能密钥设备返回的信息和返回值为参数,调用所述系统预设函数。所述步骤S8包括步骤S8-0 :当所述应用程序被系统预设函数调用时,解析所述系统预设函数的参数,认证解析得到的所述第二认证参数,判断是否认证成功,是则得到签名结果或返回值,结束,否则结束。所述步骤S8’包括步骤S8,-O :当所述应用程序被系统预设函数调用时,解析所述系统预设函数的参数,认证解析得到的所述第二认证参数并判断是否认证成功,如认证成功则判断解析得到的返回值是否为表示正确信息的返回值,是则得到签名结果,结束,否则得到错误信息,结束;如认证失败则结束。所述步骤S8’还包括显示所述签名结果或根据所述返回值显示相应信息。一种在移动操作系统中完成数字签名的系统,包括应用装置和服务装置;所述应用装置包括编码模块、第一调用模块和第一响应模块;所述编码模块,用于对待签名数据进行编码,得到第一数据包;所述第一调用模块,用于以服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用系统预设函数;所述第一响应模块,用于当应用程序被系统预设函数调用时,解析所述系统预设函数的参数;所述服务装置包括解析模块、存储模块、解码模块、发送模块、第二接收模块和第二调用模块;所述解析 模块,用于当服务程序被所述系统预设函数调用时,解析所述系统预设函数的参数;
所述存储模块,用于保存所述应用程序的地址字符串;所述解码模块,用于对解析得到的所述系统预设函数的参数中的所述第一数据包进行解码;所述发送模块,用于将所述解码模块解码成功得到的所述待签名数据和预设签名类型发送给智能密钥设备;所述第二接收模块,用于接收所述智能密钥设备返回的信息;所述第二调用模块,以所述智能密钥设备返回的信息、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数,或者,以所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数。所述服务装置中的所述第二接收模块包括接收单元和第一判断单元;所述接收单元,用于接收所述智能密钥设备返回的信息;所述第一判断单元,用于判断所述智能密钥设备返回的信息是否为签名结果;所述应用装置中还包括第一判断模块;所述第一判断模块,用于判断所述返回值是否为表示正确信息的返回值。所述应用装置还包括第一接收模块和组合模块;所述第一接收模块包括第一接收单元,第二判断单元、第一显示单元、第一加密单元和第三判断单元;

所述第一接收单元,用于接收用户输入的信息及第一用户按键信息;所述第二判断单元,用于判断是否接收到所述用户输入的信息及第一用户按键信息;所述第一显示单元,用于通过显示屏将提示信息输出;所述第一加密单元,用于对所述用户输入的信息中的证书用户名进行加密;所述第三判断单元,用于根据所述第一用户按键信息判断用户按键类型;所述组合模块包括标志位单元、第一组合单元和第二加密单元;所述标志位单元,用于将标志位置位或将标志位复位;所述第一组合单元,用于对第一信息、第二信息和第三信息进行组合,得到所述待签名数据;所述第二加密单元,用于对所述待签名数据进行加密,或者,对所述第一信息、第二信息和第三信息分别进行加密。所述第一调用模块还用于以所述服务程序的地址字符串、所述应用程序的地址字符串、预设的第一认证参数和所述第一数据包为参数,调用所述系统预设函数。所述第一调用模块包括第一调用单元、第一获取单元和第四判断单元;所述第一调用单元,用于以所述服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用所述系统预设函数;所述第一获取单元,用于获取所述系统预设函数的返回值;所述第四判断单元,用于判断所述系统预设函数的返回值类型。所述服务装置包括第二响应模块,用于响应所述系统预设函数;所述第二响应模块包括第二认证单元和第五判断单元;所述第二认证单元,用于认证解析得到的第一认证参数;
所述第五判断单元,用于判断是否成功认证所述第一认证参数。所述服务装置还包括验证模块,用于验证所述解析模块得到的智能密钥设备的序列号;所述验证模块包括第二接收单元、第六判断单元、第二显示单元、第二获取单元和第七判断单元;所述第二接收单元,用于接收第二用户按键信息;所述第六判断单元,用于根据所述第二用户按键信息判断用户按键类型;所述第二显示单元,用于通过显示屏将模态框输出;所述第二获取单元,用于获取所述智能密钥设备的序列号;所述第七判断单元,用于判断获取得到的所述智能密钥设备的序列号与解析得到的所述智能密钥设备序列号是否相同。所述解码模块包括第八判断单元、解码单元、解密单元、第二组合单元、第一验证单元、第三获取单元和第二验证单元;所述第八判断单元,用于判断解析得到的所述标志位是否置位;所述解码单元,用于对解析得到的所述第一数据包进行解码;所述解密单 元,用于对所述解码单元解码成功的结果进行解密;所述第二组合单元,用于当所述解密单元解密成功时将所述解密得到的第一信息、所述第二信息和所述第三信息进行组合,得到所述待签名数据;所述第一验证单元,用于验证所述用户输入的PIN码;所述第三获取单元,用于从所述智能密钥设备中的证书中获取证书公钥和证书用户名;所述第二验证单元,用于根据所述第三获取单元获取的证书用户名验证所述用户输入的证书用户名。所述第二接收单元还用于接收用户输入的PIN码。所述应用装置还包括连接模块,用于与所述智能密钥设备进行连接。所述第二调用模块还用于以预设的第二认证参数、所述保存的所述应用程序的地址字符串、所述智能密钥设备返回的信息和返回值为参数,调用所述系统预设函数,清除所述模态框。所述第一响应模块包括解析单元、第一认证单元和第九判断单元;所述解析单元,用于当应用程序被系统预设函数调用时,解析所述系统预设函数的参数;所述第一认证单元,用于认证解析得到的第二认证参数;所述第九判断单元,用于判断是否成功认证所述第二认证参数。所述应用装置还包括显示模块,用于显示所述签名结果或根据返回值显示相应错误信息。本发明与现有技术相比,具有以下优点服务端为客户端提供服务接口,用户按照接口规范编写完程序后,服务端修改或升级服务程序,客户端程序不需要改变;反之,客户端程序进行修改或升级,服务端不需要改变,系统升级简单方便。


图1是本发明实施例1提供的一种在移动操作系统中完成数字签名的方法流程图;图2、图3和图4是本发明实施例2提供的一种在移动操作系统中完成数字签名的方法流程图;图5是本发明实施例3提供的一种在移动操作系统中完成数字签名的系统的方框示意图。
具体实施例方式目前iOS4及其以上版本的多任务机制并不是传统意义上的多任务,即任何程序都可以自由地在后台运行。苹果开放给第三方软件开发者的后台运行接口只包括音频播放(例如网络电台软件)、地理位置侦测(例如,GPS软件)和网络电话(例如,网络即时语音沟通工具Skype)等几个功能。在iOS4及其以上版本里,如果用户单击Home退到桌面,那么正在运行的软件并没有退出,而是被冻结。虽然软件被置入后台,处于凝滞状态,但仍然在运行,之前分配给软件的系统资源仍然在位。因此,当用户重新回到这个软件时,软件可以立即恢复到上次退出时的状态,这就是iOS4及其以上版本的多任务功能的核心所在。处于冻结状态的软件可以进行某些操作,例如音频播放,但并不是所有操作都能进行,而且,iOS系统会因为需要省出内存而终止某个程序。综上所述,为满足一种应用程序与服务程序相互调用的需求,本发明采用openURL函数跳转方式以解决此问题。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护 的范围。实施例1本发明的实施例1提供一种在移动操作系统中完成数字签名的方法,如图1所示,本方法包括当应用程序被调用时,执行以下步骤步骤101 :应用程序对待签名数据进行编码,得到第一数据包;步骤102 :应用程序以服务程序的地址字符串、应用程序的地址字符串和第一数据包为参数,调用系统预设函数;步骤103 :当服务程序被系统预设函数调用时,解析系统预设函数的参数,保存应用程序的地址字符串;步骤104 :服务程序对解析得到的系统预设函数的参数中的第一数据包进行解码,如解码成功则得到待签名数据,执行步骤105,否则将解码失败信息作为返回值,服务程序以保存的所述应用程序的地址字符串和返回值为参数,调用系统预设函数,执行步骤108 ;步骤105 :服务程序将待签名数据和预设签名类型发送给智能密钥设备;
具体地,本实施例中,该步骤之前还包括服务程序连接智能密钥设备;智能密钥设备接收到待签名数据和预设签名类型后,根据预设签名类型对应的算法对待签名数据进行签名,并将签名结果返回给服务程序;如智能密钥设备中没有与预设签名类型对应的算法,则给服务器返回签名错误的信息;步骤106 :服务程序接收智能密钥设备返回的信息;具体地,本实施例中,智能密钥设备返回的信息包括签名结果或签名错误信息;步骤107 :服务程序以智能密钥设备返回的信息、保存的应用程序的地址字符串和返回值为参数,调用系统预设函数;步骤108 :当应用程序被系统预设函数调用时,解析系统预设函数的参数,得到签名结果或返回值,结束。本实施例中提供的一种在移动操作系统中完成数字签名的方法,当应用程序进行修改或升级时,服务程序不需要改变;反之,服务程序进行修改或升级时,应用程序不需要改变,实现了应用程序和服务程序的独立部署。实施例2本发明的实施例2提供一种在移动操作系统中完成数字签名的方法,如图2、图3和图4所示,应用程序和服务程序配置文件中的URL选项预先设置,本方法包括当应用程序被调用时,执行以下步骤步骤201 :应用程序等待接收用户输入的信息及第一用户按键信息,应用程序判断是否接收到用户输入的信息及第一用户按键信息,是则执行步骤203,否则执行步骤202 ;优选地,本实施例中,用户从预置列表中选择是否调用该应用程序;除此之外,也可以根据配置文件选择是否调用该应用程序;例如,本实施例中,用户输入信息包括第一账户、第二账户、传输信息、CN字段和智能密钥设备的序列号;例如,本实施例中第一账户为123456789,第二账户为987654321,传输信息为12,CN字段为test,智能密钥设备的序列号为FFFFFFFFFF ;步骤202 :应用程序通过显示屏将提示信息输出,返回步骤201 ;例如,本实施例中,提示信息为用户需输入第一账户、第二账户、传输信息、CN字段和智能密钥设备序列号;步骤203 :应用程序对用户输入的CN字段进行加密;例如,本实施例中,使用对称加密算法对CN字段进行加密,优选地,使用3DES对称加密算法,CBC模式,2key,采用PKCS#5补位,密钥由多个因子生成,包括内置密钥、会话标识、随机因子,以上因子依次拼接后进行SHAl摘要,取前16字节作为密钥;其中内置密钥预先存储在智能密钥设备中;步骤204:应用程序根据第一用 户按键信息判断用户按键类型,若用户按键为原文签名则执行步骤205,若用户按键为Xml签名则执行步骤209 ;步骤205 :应用程序将标志位设为I,对显示信息、Xml信息和扩展信息进行组合,得到待签名数据,对待签名数据进行加密;具体地,本实施例中,显示信息由用户输入,Xml信息由预先设置在应用程序中的信息和用户输入的信息组合而成,扩展信息预先设置在应用程序中;本实施例中,该步骤加密方法与步骤203相同;优选地,本实施例中,应用程序对显示信息、Xml信息和扩展信息进行TLV组合;例如,本实施例中,组合报文为110000000966210000000848〈 xml
权利要求
1.一种在移动操作系统中完成数字签名的方法,其特征在于,所述方法包括当应用程序被调用时,执行以下步骤步骤S1:所述应用程序对待签名数据进行编码,得到第一数据包;步骤S2 :所述应用程序以服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用系统预设函数;步骤S3:当服务程序被所述系统预设函数调用时,解析所述系统预设函数的参数,保存所述应用程序的地址字符串;步骤S4 :所述服务程序对解析得到的所述系统预设函数的参数中的所述第一数据包进行解码,如解码成功则得到所述待签名数据,执行步骤S5,否则将解码失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S5 :所述服务程序将所述待签名数据和预设签名类型发送给智能密钥设备;步骤S6 :所述服务程序接收所述智能密钥设备返回的信息;步骤S7 :所述服务程序以所述智能密钥设备返回的信息、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数;步骤S8 :当所述应用程序被所述系统预设函数调用时,所述应用程序解析所述系统预设函数的参数,得到签名结果或所述返回值,结束。
2.根据权利要求1所述的方法,其特征在于,所述步骤S6至步骤S8替换为步骤S6’ 所述服务程序接收所述智能密钥设备返回的信息,判断所述智能密钥设备返回的信息是否为签名结果,是则执行步骤S7’,否则将签名错误信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数;步骤S7’ 所述服务程序以所述签名结果、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数;步骤S8’ 当所述应用程序被所述系统预设函数调用时,所述应用程序解析所述系统预设函数的参数,解析得到的返回值是否为表示正确信息的返回值,是则得到所述签名结果, 结束,否则得到错误信息,结束。
3.根据权利要求1所述的方法,其特征在于,所述步骤SI包括步骤Sl-1 :所述应用程序等待接收用户输入的信息及第一用户按键信息,并判断是否接收到所述用户输入的信息及第一用户按键信息,是则执行步骤S1-3,否则执行步骤 S1-2 ;所述用户输入的信息包括第一账户、第二账户、传输信息、证书用户名和所述智能密钥设备的序列号;步骤S1-2 :所述应用程序通过显示屏将提示信息输出,返回步骤Sl-1 ;步骤S1-3 :所述应用程序对所述用户输入的信息中的所述证书用户名进行加密;步骤S1-4 :所述应用程序根据所述第一用户按键信息判断用户按键类型,若所述用户按键类型为原文签名则执行步骤S1-5,否则执行步骤S1-7 ;步骤S1-5 :所述应用程序将标志位置位,对第一信息、第二信息和第三信息进行组合, 得到所述待签名数据,对所述待签名数据进行加密;所述第一信息为所述用户输入的信息的一部分,所述第二信息由所述用户输入的信息的剩余部分与所述应用程序中的预设信息组合得到,所述第三信息为所述应用程序中的预设信息;步骤S1-6 :所述应用程序对所述待签名数据的加密结果进行编码,根据编码结果生成所述第一数据包,执行步骤S2 ;步骤S1-7 :所述应用程序将标志位复位,对所述第一信息、第二信息和第三信息分别进行加密;步骤S1-8 :所述应用程序分别对所述第一信息、第二信息和第三信息的加密结果进行编码,根据编码结果生成所述第一数据包,执行步骤S2。
4.根据权利要求3所述的方法,其特征在于,所述生成第一数据包具体为根据所述编码结果和所述标志位生成第一数据包,所述编码结果中包括所述智能密钥设备的序列号和加密后的证书用户名。
5.根据权利要求1所述的方法,其特征在于,所述步骤S2替换为步骤S2’ 所述应用程序以服务程序的地址字符串、所述应用程序的地址字符串、预设的第一认证参数和所述第一数据包为参数,调用所述系统预设函数。
6.根据权利要求1所述的方法,其特征在于,所述步骤S2之后还包括步骤S2-1 :所述应用程序获取所述系统预设函数的返回值,判断所述返回值类型,若为是则启动所述服务程序,否则结束。
7.根据权利要求5所述的方法,其特征在于,所述步骤S3包括步骤S3-0 :当所述服务程序被所述系统预设函数调用时,解析所述系统预设函数的参数,认证解析得到的所述第一认证参数并判断是否认证成功,是则保存解析得到的所述应用程序的地址字符串,否则结束。
8.根据权利要求3所述的方法,其特征在于,所述步骤S3具体为步骤S3-1 :当所述服务程序接收到用户输入的第二用户按键信息时,根据所述第二用户按键信息判断用户按键类型,若是确定键则执行步骤S3-2,否则将用户取消信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S3-2 :所述服务程序通过显示屏将模态框输出;步骤S3-3 :所述服务程序解析所述系统预设函数的参数,并保存所述应用程序的地址字符串;步骤S3-4 :所述服务程序获取所述智能密钥设备的序列号,判断获取的所述智能密钥设备的序列号与解析得到的所述智能密钥设备的序列号是否相同,是则执行步骤S4,否则将验证所述智能密钥设备序列号的失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8。
9.根据权利要求8所述的方法,其特征在于,所述步骤S4包括步骤S4-1 :所述服务程序判断所述标志位是否置位,是则执行步骤S4-2,否则执行步骤 S4-3 ;步骤S4-2 :所述服务程序对所述第一数据包进行解码,对解码结果进行解密,如解密成功则得到所述用户输入的证书用户名和所述待签名数据,执行步骤S4-4,否则将解码解密失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S4-3 :所述服务程序对所述第一数据包进行解码,对解码结果进行解密,如解密成功则得到所述用户输入的证书用户名、所述第一信息、所述第二信息和所述第三信息,将所述第一信息、所述第二信息和所述第三信息进行组合,得到所述待签名数据,执行步骤 S4-4,否则将解码解密失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S4-4 :所述服务程序验证用户输入的PIN码,如验证成功则执行步骤S4-5,否则将验证PIN码失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S4-5:所述服务程序从所述智能密钥设备中的证书中获取证书公钥和证书用户名;步骤S4-6 :所述服务程序用所述获取得到的证书用户名验证所述用户输入的证书用户名,如验证成功则执行步骤S5,否则将验证证书用户名失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8。
10.根据权利要求9所述的方法,其特征在于,所述步骤S4-4之前包括所述服务程序接收用户输入的PIN码。
11.根据权利要求10所述的方法,其特征在于,所述步骤S4-4、步骤S4-5和步骤S4-6 替换为步骤S4-4’ 所述服务程序从所述智能密钥设备中的证书中获取证书公钥和证书用户名;步骤S4-5’ 所述服务程序用所述获取得到的证书用户名验证所述用户输入的证书用户名,如验证成功则执行步骤S4-6’,否则将验证证书用户名失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8 ;步骤S4-6’ 所述服务程序验证用户输入的PIN码,如验证成功则执行步骤S5,否则将验证PIN码失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8。
12.根据权利要求1所述的方法,其特征在于,所述步骤S5之前还包括所述服务程序连接所述智能密钥设备。
13.根据权利要求11所述的方法,其特征在于,所述步骤S7替换为步骤S7-1 :所述服务程序以预设的第二认证参数、所述保存的所述应用程序的地址字符串、所述智能密钥设备返回的信息和返回值为参数,调用所述系统预设函数,清除所述模态框,结束。
14.根据权利要求2所述的方法,其特征在于,所述步骤S6’和步骤S7’替换为步骤S6’ -1 :所述服务程序接收所述智能密钥设备返回的信息,判断所述智能密钥设备返回的信息是否为签名结果,是则执行步骤S7’,否则将签名错误信息作为返回值,所述服务程序以预设的第二认证参数、所述保存的所述应用程序的地址字符串和所述返回值为参数,调用系统预设函数;步骤S7’ -1 :所述服务程序以所述第二认证参数、所述保存的所述应用程序的地址字符串、所述智能密钥设备返回的信息和返回值为参数,调用所述系统预设函数。
15.根据权利要求13所述的方法,其特征在于,所述步骤S8包括步骤S8-0 :当所述应用程序被系统预设函数调用时,解析所述系统预设函数的参数, 认证解析得到的所述第二认证参数,判断是否认证成功,是则得到签名结果或返回值,结束,否则结束。
16.根据权利要求14所述的方法,其特征在于,所述步骤S8’包括步骤S8’ -O :当所述应用程序被系统预设函数调用时,解析所述系统预设函数的参数, 认证解析得到的所述第二认证参数并判断是否认证成功,如认证成功则判断解析得到的返回值是否为表示正确信息的返回值,是则得到签名结果,结束,否则得到错误信息,结束;如认证失败则结束。
17.根据权利要求16所述的方法,其特征在于,所述步骤S8’还包括显示所述签名结果或根据所述返回值显示相应信息。
18.—种在移动操作系统中完成数字签名的系统,其特征在于,所述系统包括应用装置和服务装置;所述应用装置包括编码模块、第一调用模块和第一响应模块;所述编码模块,用于对待签名数据进行编码,得到第一数据包;所述第一调用模块,用于以服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用系统预设函数;所述第一响应模块,用于当应用程序被系统预设函数调用时,解析所述系统预设函数的参数;所述服务装置包括解析模块、存储模块、解码模块、发送模块、第二接收模块和第二调用模块;所述解析模块,用于当服务程序被所述系统预设函数调用时,解析所述系统预设函数的参数;所述存储模块,用于保存所述应用程序的地址字符串;所述解码模块,用于对解析得到的所述系统预设函数的参数中的所述第一数据包进行解码;所述发送模块,用于将所述解码模块解码成功得到的所述待签名数据和预设签名类型发送给智能密钥设备;所述第二接收模块,用于接收所述智能密钥设备返回的信息;所述第二调用模块,以所述智能密钥设备返回的信息、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数,或者,以所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数。
19.根据权利要求18所述的系统,其特征在于,所述服务装置中的所述第二接收模块包括接收单元和第一判断单元;所述接收单元,用于接收所述智能密钥设备返回的信息;所述第一判断单元,用于判断所述智能密钥设备返回的信息是否为签名结果;所述应用装置中还包括第一判断模块;所述第一判断模块,用于判断所述返回值是否为表示正确信息的返回值。
20.根据权利要求18所述的系统,其特征在于,所述应用装置还包括第一接收模块和组合模块;所述第一接收模块包括第一接收单元,第二判断单元、第一显示单元、第一加密单元和第三判断单元;所述第一接收单元,用于接收用户输入的信息及第一用户按键信息;所述第二判断单元,用于判断是否接收到所述用户输入的信息及第一用户按键信息; 所述第一显示单元,用于通过显示屏将提示信息输出;所述第一加密单元,用于对所述用户输入的信息中的证书用户名进行加密;所述第三判断单元,用于根据所述第一用户按键信息判断用户按键类型;所述组合模块包括标志位单元、第一组合单元和第二加密单元;所述标志位单元,用于将标志位置位或将标志位复位;所述第一组合单元,用于对第一信息、第二信息和第三信息进行组合,得到所述待签名数据;所述第二加密单元,用于对所述待签名数据进行加密,或者,对所述第一信息、第二信息和第三信息分别进行加密。
21.根据权利要求18所述的系统,其特征在于,所述第一调用模块还用于以所述服务程序的地址字符串、所述应用程序的地址字符串、预设的第一认证参数和所述第一数据包为参数,调用所述系统预设函数。
22.根据权利要求18所述的系统,其特征在于,所述第一调用模块包括第一调用单元、 第一获取单元和第四判断单元;所述第一调用单元,用于以所述服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用所述系统预设函数;所述第一获取单元,用于获取所述系统预设函数的返回值;所述第四判断单元,用于判断所述系统预设函数的返回值类型。
23.根据权利要求21所述的系统,其特征在于,所述服务装置包括第二响应模块,用于响应所述系统预设函数;所述第二响应模块包括第二认证单元和第五判断单元;所述第二认证单元,用于认证解析得到的第一认证参数;所述第五判断单元,用于判断是否成功认证所述第一认证参数。
24.根据权利要求20所述的系统,其特征在于,所述服务装置还包括验证模块,用于验证所述解析模块得到的智能密钥设备的序列号;所述验证模块包括第二接收单元、第六判断单元、第二显示单元、第二获取单元和第七判断单元;所述第二接收单元,用于接收第二用户按键信息;所述第六判断单元,用于根据所述第二用户按键信息判断用户按键类型;所述第二显示单元,用于通过显示屏将模态框输出;所述第二获取单元,用于获取所述智能密钥设备的序列号;所述第七判断单元,用于判断获取得到的所述智能密钥设备的序列号与解析得到的所述智能密钥设备序列号是否相同。
25.根据权利要求24所述的系统,其特征在于,所述解码模块包括第八判断单元、解码单元、解密单元、第二组合单元、第一验证单元、第三获取单元和第二验证单元;所述第八判断单元,用于判断解析得到的所述标志位是否置位;所述解码单元,用于对解析得到的所述第一数据包进行解码;所述解密单元,用于对所述解码单元解码成功的结果进行解密;所述第二组合单元,用于当所述解密单元解密成功时将所述解密得到的第一信息、所述第二信息和所述第三信息进行组合,得到所述待签名数据;所述第一验证单元,用于验证所述用户输入的PIN码;所述第三获取单元,用于从所述智能密钥设备中的证书中获取证书公钥和证书用户名;所述第二验证单元,用于根据所述第三获取单元获取的证书用户名验证所述用户输入的证书用户名。
26.根据权利要求25所述的系统,其特征在于,所述第二接收单元还用于接收用户输入的PIN码。
27.根据权利要求26所述的系统,其特征在于,所述应用装置还包括连接模块,用于与所述智能密钥设备进行连接。
28.根据权利要求27所述的系统,其特征在于,所述第二调用模块还用于以预设的第二认证参数、所述保存的所述应用程序的地址字符串、所述智能密钥设备返回的信息和返回值为参数,调用所述系统预设函数,清除所述模态框。
29.根据权利要求28所述的系统,其特征在于,所述第一响应模块包括解析单元、第一认证单元和第九判断单元;所述解析单元,用于当应用程序被系统预设函数调用时,解析所述系统预设函数的参数;所述第一认证单元,用于认证解析得到的第二认证参数;所述第九判断单元,用于判断是否成功认证所述第二认证参数。
30.根据权利要求18所述的系统,其特征在于,所述应用装置还包括显示模块,用于显示所述签名结果或根据返回值显示相应错误信息。
全文摘要
本发明公开一种在移动操作系统中完成数字签名的方法和系统,该方法包括应用程序对待签名数据进行编码得到第一数据包;以服务程序的地址字符串、应用程序的地址字符串和第一数据包为参数调用系统预设函数;当服务程序被系统预设函数调用时,解析函数参数,保存应用程序的地址字符串;对第一数据包进行解码,成功则将待签名数据和预设签名类型发送到智能密钥设备,否则将解码失败信息作为返回值,以应用程序的地址字符串和返回值为参数,调用系统预设函数;接收智能密钥设备返回的信息;以智能密钥设备返回的信息、应用程序的地址字符串和返回值为参数调用系统预设函数;应用程序解析系统预设函数参数,得到签名结果或返回值,结束。
文档编号H04L9/32GK103067174SQ20121057862
公开日2013年4月24日 申请日期2012年12月27日 优先权日2012年12月27日
发明者陆舟, 于华章 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1