CN103067174B - 一种在移动操作系统中完成数字签名的方法和系统 - Google Patents
一种在移动操作系统中完成数字签名的方法和系统 Download PDFInfo
- Publication number
- CN103067174B CN103067174B CN201210578627.6A CN201210578627A CN103067174B CN 103067174 B CN103067174 B CN 103067174B CN 201210578627 A CN201210578627 A CN 201210578627A CN 103067174 B CN103067174 B CN 103067174B
- Authority
- CN
- China
- Prior art keywords
- information
- application program
- function
- unit
- return value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000006870 function Effects 0.000 claims description 145
- 230000009885 systemic effect Effects 0.000 claims description 102
- 238000004321 preservation Methods 0.000 claims description 40
- 230000005540 biological transmission Effects 0.000 claims description 6
- 239000002131 composite material Substances 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 2
- 230000008859 change Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- VBMOHECZZWVLFJ-GXTUVTBFSA-N (2s)-2-[[(2s)-6-amino-2-[[(2s)-6-amino-2-[[(2s,3r)-2-[[(2s,3r)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-2-[[(2s)-2,6-diaminohexanoyl]amino]-5-(diaminomethylideneamino)pentanoyl]amino]propanoyl]amino]hexanoyl]amino]propanoyl]amino]hexan Chemical compound NC(N)=NCCC[C@@H](C(O)=O)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCCN)NC(=O)[C@H]([C@@H](C)O)NC(=O)[C@H]([C@H](O)C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@@H](N)CCCCN VBMOHECZZWVLFJ-GXTUVTBFSA-N 0.000 description 1
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 108010068904 lysyl-arginyl-alanyl-lysyl-alanyl-lysyl-threonyl-threonyl-lysyl-lysyl-arginine Proteins 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
Abstract
本发明公开一种在移动操作系统中完成数字签名的方法和系统,该方法包括:应用程序对待签名数据进行编码得到第一数据包;以服务程序的地址字符串、应用程序的地址字符串和第一数据包为参数调用系统预设函数;当服务程序被系统预设函数调用时,解析函数参数,保存应用程序的地址字符串;对第一数据包进行解码,成功则将待签名数据和预设签名类型发送到智能密钥设备,否则将解码失败信息作为返回值,以应用程序的地址字符串和返回值为参数,调用系统预设函数;接收智能密钥设备返回的信息;以智能密钥设备返回的信息、应用程序的地址字符串和返回值为参数调用系统预设函数;应用程序解析系统预设函数参数,得到签名结果或返回值,结束。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种在移动操作系统中完成数字签名的方法和系统。
背景技术
iOS(iPhone Operating System,苹果操作系统)设备是使用iOS作为其操作系统的设备,包括iPhone、iPad、 iPod Touch以及AppleTV等苹果产品。随着iOS设备的迅速普及,对iOS设备的应用软件的使用及需求也日益增多。
iOS设备软件开发者在编写软件的时候,由于设计人员考虑不全面或程序功能不完善,在软件发行后,通常需要对软件不断进行修改或升级。软件开发者对程序修改或加入新的功能后,以补丁的形式发布的方式,用户把这些补丁更新,即修改或升级完成。软件修改或升级是为了更好的满足用户的需求和防止病毒的入侵。
现有技术中,系统修改或升级时,需要同时对服务端软件、客户端软件进行升级,修改或升级过程比较繁琐。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种在移动操作系统中完成数字签名的方法和系统,实现了软件的独立部署。
本发明提供的一种在移动操作系统中完成数字签名的方法,包括:
当应用程序被调用时,执行以下步骤:
步骤S1:所述应用程序对待签名数据进行编码,得到第一数据包;
步骤S2:所述应用程序以服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用系统预设函数;
步骤S3:当服务程序被所述系统预设函数调用时,解析所述系统预设函数的参数,保存所述应用程序的地址字符串;
步骤S4:所述服务程序对解析得到的所述系统预设函数的参数中的所述第一数据包进行解码,如解码成功则得到所述待签名数据,执行步骤S5,否则将解码失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8;
步骤S5:所述服务程序将所述待签名数据和预设签名类型发送给智能密钥设备;
步骤S6:所述服务程序接收所述智能密钥设备返回的信息;
步骤S7:所述服务程序以所述智能密钥设备返回的信息、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数;
步骤S8:当所述应用程序被所述系统预设函数调用时,所述应用程序解析所述系统预设函数的参数,得到签名结果或所述返回值,结束。
所述步骤S6至步骤S8替换为:
步骤S6’:所述服务程序接收所述智能密钥设备返回的信息,判断所述智能密钥设备返回的信息是否为签名结果,是则执行步骤S7’,否则将签名错误信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数;
步骤S7’:所述服务程序以所述签名结果、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数;
步骤S8’:当所述应用程序被所述系统预设函数调用时,所述应用程序解析所述系统预设函数的参数,解析得到的返回值是否为表示正确信息的返回值,是则得到所述签名结果,结束,否则得到错误信息,结束。
所述步骤S1包括:
步骤S1-1:所述应用程序等待接收用户输入的信息及第一用户按键信息,并判断是否接收到所述用户输入的信息及第一用户按键信息,是则执行步骤S1-3,否则执行步骤S1-2;所述用户输入的信息包括第一账户、第二账户、传输信息、证书用户名和所述智能密钥设备的序列号;
步骤S1-2:所述应用程序通过显示屏将提示信息输出,返回步骤S1-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’-0:当所述应用程序被系统预设函数调用时,解析所述系统预设函数的参数,认证解析得到的所述第二认证参数并判断是否认证成功,如认证成功则判断解析得到的返回值是否为表示正确信息的返回值,是则得到签名结果,结束,否则得到错误信息,结束;如认证失败则结束。
所述步骤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补位,密钥由多个因子生成,包括内置密钥、会话标识、随机因子,以上因子依次拼接后进行SHA1摘要,取前16字节作为密钥;其中内置密钥预先存储在智能密钥设备中;
步骤204:应用程序根据第一用户按键信息判断用户按键类型,若用户按键为原文签名则执行步骤205,若用户按键为Xml签名则执行步骤209;
步骤205:应用程序将标志位设为1,对显示信息、Xml信息和扩展信息进行组合,得到待签名数据,对待签名数据进行加密;
具体地,本实施例中,显示信息由用户输入,Xml信息由预先设置在应用程序中的信息和用户输入的信息组合而成,扩展信息预先设置在应用程序中;
本实施例中,该步骤加密方法与步骤203相同;优选地,本实施例中,应用程序对显示信息、Xml信息和扩展信息进行TLV组合;
例如,本实施例中,组合报文为:110000000966210000000848<?xmlversion="1.0" encoding="UTF-8"?><TradeData><field name="\u91d1\u989d" value="1\u5143" DisplayOnScreen="TRUE"/><fieldname="\u5927\u5199\u91d1\u989d" value="\u58f9\u4f70\u8d30\u62fe\u53c1\u5143\u6574" DisplayOnScreen="TRUE"/><field name="\u6c47\u6b3e\u5355\u4f4d\u540d\u79f0" value="\u5317\u4eac\u634c\u96f6\u540e\u5e7f\u544a\u5236\u4f5c\u6709\u9650\u516c\u53f8" DisplayOnScreen="TRUE"/><field name="\u6c47\u6b3e\u5355\u4f4d\u8d26\u53f7" value="1222" DisplayOnScreen="TRUE"/><field name="\u6c47\u6b3e\u5355\u4f4d\u5f00\u6237\u884c\u540d\u79f0" value="\u548c\u5e73\u8857\u652f\u884c" DisplayOnScreen="TRUE"/><field name="\u6536\u6b3e\u5355\u4f4d\u540d\u79f0" value="\u591a\u6765\u63d0\u00b7\u7a46\u6d77\u9ea6\u63d0" DisplayOnScreen="TRUE"/><field name="\u6536\u6b3e\u5355\u4f4d\u8d26\u53f7" value="1222" DisplayOnScreen="TRUE"/><field name="\u6536\u6b3e\u5355\u4f4d\u5f00\u6237\u884c\u540d\u79f0" value="xxxx" DisplayOnScreen="TRUE"/><field name="\u767b\u9646ID"value="80hou0.c.0200" DisplayOnScreen="TRUE"/><field name="\u4ea4\u6613\u63d0\u4ea4\u65f6\u95f4" value="2012061416"DisplayOnScreen="TRUE"/></TradeData>220000000082\u91d1\u989d:1\u5143
\u6c47\u6b3e\u8d26\u53f7:1222(\u5de5\u5546\u94f6\u884c)
\u6536\u6b3e\u8d26\u53f7:1222(\u5de5\u5546\u94f6\u884c)230000000000;
步骤206:应用程序对加密后的待签名数据进行编码,得到第一数据包;
优选地,本实施例中,应用程序对加密后的组合报文进行Base64编码;
步骤207:应用程序以服务程序的URL字符串、应用程序的URL字符串、第一认证参数和请求报文信息为参数,调用openURL函数,执行步骤211;
本实施例中,openURL函数为iOS系统的系统函数;
具体地,本实施例中,第一认证参数用于在服务程序中认证应用程序;
具体地,本实施例中,第一认证参数和服务程序的URL字符串预先设置在应用程序中;
本实施例中,请求报文信息包括标志位、应用程序的URL字符串、用户输入的智能密钥设备的序列号、用户输入的CN字段和第一数据包;具体地,标志位为请求报文信息中的报文类型(MessageType),应用程序的URL字符串为请求报文信息中的应用名称(APPURLName),用户输入的智能密钥设备的序列号为请求报文信息中的介质凭证号(U_SerialNumber),用户输入的CN字段为请求报文信息中的客户证书标识(U_CertCN),第一数据包为请求报文信息中的Sign_PlainText;
除此之外,本实施例中,请求报文信息还包括:报文版本号(Version)、会话标识(SessionID)、随机因子(Random、APP)版本号(APPVersion)、U盾介质凭证号(U_SerialNumber)、U盾语言标识(U_Language)、U盾字符集(U_Charset)、签名警告信息(Sign_WarningInfo)和备用字段(Reserve);以上请求报文信息均预先设置在应用程序中;
例如,本实施例中,调用openURL函数的方式为:
openURL:url
openURL函数的参数为:
url=cn.com.xxxx.ftsafe.pad://MessageType=0&Version=1.0.0.0&SessionID=1111111111111111111111111111111111111111&Random=2222222222222222222222222222222222222222&APPURLName=cn.com.xxxx.pad&APPVersion=1.0.0.0&U_SerialNumber=FFFFFFFFFF&U_CertCN=//RWwp6uvnQ=&U_Language=zh_CN&U_Charset=UTF-8&Sign_WarningInfo=Warning&Sign_PlainText=A0IZ2oEy5YjkAk_aHWmnvS4lJ94c0iikwppHANJ9rj2dPui8Fcpoir3d4UbK9xL_s1azL4n5pOwGGkKJtcLrw9qPHeYOd5Ai6PvMniIbKakpUT9whmWftUFXvnOXWrSYtsqlAAjnbUjafgGVgmDxLspLz9ZdeTDxOjrJvDJUzMYGkhrDah6bGhe2acKjXUOXte0W2vBApbScP5avN_QHL3Cqfmqrlo1LDCdtx7mPgRR3twaT0JhI0iNCWru4b6Lg361scWCuWnX-AXvJyXuBso8OuGmUVLqKDX2aBscG98b62ao4PCZNC01VlSfZmZKvtCNpJYlZ-Br1TVQZoSpTfq50je-_2S-tdWI4a3MPN7Fwr55pc1hsF_bGtUfupXo-pENE2XafQ8ANO0vaIHz6p4iydX_4-_EV29aiBwwdSTLZlr2FTvnTdNYjJOBg3a9rlZy9gni78c0S0f7kwG62cUU4xvgz1WcFMwvxhPut7QVOphng4Xi3XDzYp6pqvAamv_9mVKO-27GpLjQ2QHpST0CUzhJDZH15RV8l1BDDuT78I7VBcuGa3bAL7eBXCUA81K7UWpzC-dBVCcD0LmnEaCFOMuLF3EGyak5LSoeGb3Xu4toIVjS_XgbtEKMFaEZo_1ktehAKqPqlvJE3QnDskLo1YQPK3LuDe2AR0YJmB0x6swsKvXPpNInFEQBCsm2cSb3PZGjLzyUBwKDYCfzK4tbZ60PvbYYzJUNYmQgptqPum7inq1i6j000bjrsMFbG-jiXGIRd0-xEZeN6gpuVKWtVI0a5-Jd3TGF9B5tBqjgT4bOoVy9B4R20Vr6HKHMun6_jid3dr9Y1xDG3l4-B9f8KfPKq_ftA4MG2C6ROiXtAhDLNqm17QIRP7MeWBSho7HfiH3FHTIhuXpkJ_v_JZi0rIt83kB5-nnwjSK0sCDCfsvX3zW0090NinNLIct2cnfK3xz6HAdU5Vedl_2T8nID8JAVbyzbFPYPXOb3mcJPpwkFgXTcTawupSVM8___mt_Oa-0GqXFogHTRJRQ4wgnzX6QTK92dsseXNgtAc80iWGLmPP0ERyj99oF8JcIAl35tpdLlqB_WxrtkPgCyT5w80jiTv8sPnPkkxlcM7daMw64rFjauv79CnIIrtS88mdd_1iWMo8xMuZc258GTbrs8aRlocYa1LnwVwx3t97qSy-_O4DH9JcJsywhmy43hmAY17epdZD5U9_z5eBhFccnKg7IYiZVIe9o7rQN8CD_dRwgnduuh_i6D5n4SmzDAGfamLKgGZA-M9kjWSt8D9hNcIRUljQF9JxRUu6QK0a1qiI_YFo28rrfos1JUTTrS5H3VXgqqRcIZDA23M0DJZK4S8xW_-Vp7w&Sign_XMLInfo=&Sign_KeyInfo=&Sign_FileInfo=&Reserve=
步骤208:应用程序将标志位设为0,对显示信息、Xml信息和扩展信息分别进行加密;
本实施例中,该步骤加密方法与步骤203相同;
例如,本实施例中,显示信息为:\u91d1\u989d:12\u5143
\u6c47\u6b3e\u8d26\u53f7:123456789(\u5de5\u5546\u94f6\u884c)
\u6536\u6b3e\u8d26\u53f7:987654321(\u5de5\u5546\u94f6\u884c);
加密后的显示信息为:poNPdZy7rcYeSYECejXLR5E+Xd2lQ8Ofp
MUupuSiJgBtRySw3HcydrCL/XPHYmH1ugdhJO5IFLU1mcFg4XxYCu4L7s81/UBf08EKPA/figdoODV8Nnf/+fFcNJ62SEs/;
步骤209:应用程序对加密结果分别进行编码;
优选地,本实施例中,应用程序对加密结果分别进行Base64编码;
具体地,该步骤中,加密结果包括加密后的CN字段,加密后的显示信息、Xml信息和扩展信息;
例如,本实施例中,对加密后的显示信息进行编码,结果为:poNPdZy7rcYeSYECejXLR5E-Xd2lQ8OfpMUupuSiJgBtRySw3HcydrCL_XPHYmH1ugdhJO5IFLU1mcFg4XxYCu4L7s81_UBf08EKPA_figdoODV8Nnf_-fFcNJ62SEs;
步骤210:应用程序以服务程序的URL字符串、应用程序的URL字符串、第一认证参数和请求报文信息为参数,调用openURL函数;
本实施例中,openURL函数为iOS系统的系统函数;
具体地,本实施例中,第一认证参数用于在服务程序中认证应用程序;
具体地,本实施例中第一认证参数和服务程序的URL字符串预先设置在应用程序中;
具体地,本实施例中,标识位为请求报文信息中的报文类型(MessageType),应用程序的URL字符串为请求报文信息中的应用名称(APPURLName),用户输入的智能密钥设备的序列号为请求报文信息中的介质凭证号(U_SerialNumber),加密编码后的显示信息为请求报文信息中的Sign_KeyInfo,加密编码后的Xml信息为请求报文信息中的Sign_XMLInfo,加密编码后的扩展信息为请求报文信息中的Sign_FileInfo;
除此之外,本实施例中,请求报文信息还包括:报文版本号(Version)、会话标识(SessionID)、随机因子(Random)、APP版本号(APPVersion)、介质凭证号(U_SerialNumber)、客户证书标识(U_CertCN)、U盾语言标识(U_Language)、U盾字符集(U_Charset)、签名警告信息(Sign_WarningInfo)和备用字段(Reserve);以上请求报文信息均预先设置在应用程序中;
步骤211:应用程序获取openURL函数的返回值,判断返回值类型,若为YES则启动服务程序,若为NO则结束;
具体地,本实施例中,openURL函数的返回值是BOOL类型的;
具体地,该步骤中,openURL函数根据服务程序的URL字符串查找注册过的URL Schemes选项的app,找到则openURL函数返回YES,找不到则返回NO;
例如,本实施例中,服务程序的URL为:cn.com.xxxx.ftsafe.phone;
步骤212:当服务程序被openURL函数调用时,认证第一认证参数,判断是否成功认证第一认证参数,是则执行步骤213,否则结束;
具体地,服务程序判断第一认证参数与预先设置在服务程序中的认证参数是否相同,是则执行步骤213,否则结束;
步骤213:当服务程序接收到用户输入的PIN码及第二用户按键信息时,根据第二用户按键信息判断用户按键类型,若是确定则执行步骤214,若是取消则将用户取消信息作为返回值,执行步骤227;
步骤214:服务程序通过显示屏将模态框输出;
例如,本实施例中,模态框的内容为:正在签名,请等待;
步骤215:服务程序解析openURL函数的参数,并将解析得到的APPURLName中应用程序的URL字符串保存在APPURLName_str中,连接智能密钥设备;
例如,本实施例中,openURL函数的参数为:
cn.com.xxxx.ftsafe.pad://MessageType=0&Version=1.0.0.0&SessionID=1111111111111111111111111111111111111111&Random=2222222222222222222222222222222222222222&APPURLName=cn.com.xxxx.pad&APPVersion=1.0.0.0&U_SerialNumber=FFFFFFFFFF&U_CertCN=//RWwp6uvnQ=&U_Language=zh_CN&U_Charset=UTF-8&Sign_WarningInfo=Warning&Sign_PlainText=A0IZ2oEy5YjkAk_aHWmnvS4lJ94c0iikwppHANJ9rj2dPui8Fcpoir3d4UbK9xL_s1azL4n5pOwGGkKJtcLrw9qPHeYOd5Ai6PvMniIbKakpUT9whmWftUFXvnOXWrSYtsqlAAjnbUjafgGVgmDxLspLz9ZdeTDxOjrJvDJUzMYGkhrDah6bGhe2acKjXUOXte0W2vBApbScP5avN_QHL3Cqfmqrlo1LDCdtx7mPgRR3twaT0JhI0iNCWru4b6Lg361scWCuWnX-AXvJyXuBso8OuGmUVLqKDX2aBscG98b62ao4PCZNC01VlSfZmZKvtCNpJYlZ-Br1TVQZoSpTfq50je-_2S-tdWI4a3MPN7Fwr55pc1hsF_bGtUfupXo-pENE2XafQ8ANO0vaIHz6p4iydX_4-_EV29aiBwwdSTLZlr2FTvnTdNYjJOBg3a9rlZy9gni78c0S0f7kwG62cUU4xvgz1WcFMwvxhPut7QVOphng4Xi3XDzYp6pqvAamv_9mVKO-27GpLjQ2QHpST0CUzhJDZH15RV8l1BDDuT78I7VBcuGa3bAL7eBXCUA81K7UWpzC-dBVCcD0LmnEaCFOMuLF3EGyak5LSoeGb3Xu4toIVjS_XgbtEKMFaEZo_1ktehAKqPqlvJE3QnDskLo1YQPK3LuDe2AR0YJmB0x6swsKvXPpNInFEQBCsm2cSb3PZGjLzyUBwKDYCfzK4tbZ60PvbYYzJUNYmQgptqPum7inq1i6j000bjrsMFbG-jiXGIRd0-xEZeN6gpuVKWtVI0a5-Jd3TGF9B5tBqjgT4bOoVy9B4R20Vr6HKHMun6_jid3dr9Y1xDG3l4-B9f8KfPKq_ftA4MG2C6ROiXtAhDLNqm17QIRP7MeWBSho7HfiH3FHTIhuXpkJ_v_JZi0rIt83kB5-nnwjSK0sCDCfsvX3zW0090NinNLIct2cnfK3xz6HAdU5Vedl_2T8nID8JAVbyzbFPYPXOb3mcJPpwkFgXTcTawupSVM8___mt_Oa-0GqXFogHTRJRQ4wgnzX6QTK92dsseXNgtAc80iWGLmPP0ERyj99oF8JcIAl35tpdLlqB_WxrtkPgCyT5w80jiTv8sPnPkkxlcM7daMw64rFjauv79CnIIrtS88mdd_1iWMo8xMuZc258GTbrs8aRlocYa1LnwVwx3t97qSy-_O4DH9JcJsywhmy43hmAY17epdZD5U9_z5eBhFccnKg7IYiZVIe9o7rQN8CD_dRwgnduuh_i6D5n4SmzDAGfamLKgGZA-M9kjWSt8D9hNcIRUljQF9JxRUu6QK0a1qiI_YFo28rrfos1JUTTrS5H3VXgqqRcIZDA23M0DJZK4S8xW_-Vp7w&Sign_XMLInfo=&Sign_KeyInfo=&Sign_FileInfo=&Reserve=
步骤216:服务程序从智能密钥设备中获取序列号,判断获取的智能密钥设备的序列号与应用程序发送的智能密钥设备的序列号是否相同,是则执行步骤217,否则将验证智能密钥设备的序列号失败信息作为返回值,执行步骤227;
步骤217:服务程序判断标志位是否为1,是则执行步骤218,否则执行步骤219;
步骤218:服务程序对第一数据包进行解码,对解码结果进行解密,如解密成功则得到待签名数据,执行步骤221,否则将解码解密失败信息作为返回值,执行步骤227;
步骤219:服务程序对第一数据包进行解码,对解码结果进行解密,成功则得到CN字段、显示信息、Xml信息和扩展信息,执行步骤220,否则将解码解密失败信息作为返回值,执行步骤227;
例如,本实施例中,编码后的数据为:poNPdZy7rcYeSYECejXLR5E-Xd2lQ8
OfpMUupuSiJgBtRySw3HcydrCL_XPHYmH1ugdhJO5IFLU1mcFg4XxYCu4L7s81_UBf08EKPA_figdoODV8Nnf_-fFcNJ62SEs;
进行解密并解码后得到:
\u91d1\u989d:12\u5143
\u6c47\u6b3e\u8d26\u53f7:123456789(\u5de5\u5546\u94f6\u884c)
\u6536\u6b3e\u8d26\u53f7:987654321(\u5de5\u5546\u94f6\u884c);
步骤220:服务程序将解密后的显示信息、Xml信息和扩展信息进行组合,得到待签名数据;
优选地,本实施例中,服务程序对显示信息、Xml信息和扩展信息进行TLV组合;
步骤221:服务程序验证用户输入的PIN码,判断验证是否成功,是则执行步骤222,否则将验证PIN码失败信息作为返回值,执行步骤227;
具体地,该步骤中服务程序验证用户输入的PIN码的方法为:服务程序比较用户输入的PIN码与预先存储在智能密钥设备中的PIN码是否相同,是则执行步骤222,否则将验证PIN码失败信息作为返回值,执行步骤227;
例如,本实施例中PIN码为12345678;
步骤222:服务程序从智能密钥设备中读取证书中的证书公钥和CN字段;
具体地,本实施例中,服务程序通过读取智能密钥设备中证书来获取证书公钥和CN字段;
步骤223:服务程序验证CN字段,判断是否验证成功,是则执行步骤224,否则将验证证书用户名失败信息作为返回值,执行步骤227;
具体地,该步骤中服务程序验证CN字段的方法为:服务程序比较解密后的CN字段与从智能密钥设备中获取的CN字段是否相同,是则执行步骤224,否则将验证证书用户名失败信息作为返回值,执行步骤227;
步骤224:服务程序将待签名数据、待签名数据的长度、证书、证书长度、签名类型和智能密钥设备的序列号发送到智能密钥设备;
具体地,本实施例中,签名类型预先设置在服务程序中;
智能密钥设备接收到服务程序发送的数据后,根据局待签名数据的长度验证待签名数据,验证成功后根据证书、证书长度获取对应用户私钥对待签名数据进行加密,然后使用与签名类型对应的算法对加密加过进行签名得到签名结果并返回给服务程序;如验证失败或没有与签名类型对应的算法则给服务程序返回签名错误信息;
步骤225:服务程序接收智能密钥设备返回的信息,判断智能密钥设备返回的信息是否为签名结果,是则执行步骤226,否则执行步骤227;
步骤226:服务程序以保存在APPURLName_str中应用程序的URL字符串、第二认证参数、应答报文的信息和返回值为参数,调用openURL函数,清除模态框,执行步骤228;
具体地,本实施例中,第二认证参数预先设置在服务程序中,用于在应用程序中认证服务程序;
具体地,本实施例中,该步骤中返回值为0;
本实施例中,应答报文信息包括签名结果和返回值,具体地,签名结果为应答报文信息中的签名包(Sign_PKCS7Info),返回值为应答报文信息中的应答码(ResponseCode);
除此之外,本实施例中,应答报文信息还包括:报文类型(MessageType)、报文版本号(Version)、会话标识(SessionID)、随机因子(Random)、U盾APP版本号(U_APPVersion)、U盾介质凭证号(U_SerialNumber)、U盾公钥密文(U_PublicKeyC)和备用字段(Reserve);其中,报文类型(MessageType)、报文版本号(Version)、会话标识(SessionID)和随机因子(Random)由应用程序通过openURL函数发送给服务程序,服务程序在解析参数时写入相应位置,U盾APP版本号(U_APPVersion)预先设置在服务程序中,获取的智能密钥设备的序列号为U盾介质凭证号(U_SerialNumber),读取的智能密钥设备的证书公钥为U盾公钥密文(U_PublicKeyC);
例如,本实施例中,保存在APPURLName_str中应用程序的URL字符串为:cn.com.xxxx.phone;
步骤227:服务程序以保存在APPURLName_str中应用程序的URL字符串、第二认证参数和返回值为参数,调用openURL函数,清除模态框,执行步骤228;
具体地,该步骤中,服务程序将相应的错误码作为返回值;例如,若服务程序Base64解码失败则返回值为402,若服务程序解密失败则返回值为423,若用户按键为取消则返回值为404,若智能密钥设备签名失败则返回值为420;
步骤228:当应用程序被openURL函数调用时,认证第二认证参数,判断是否成功认证第二认证参数,是则执行步骤229,否则应用程序结束;
具体地,应用程序判断第二认证参数与预先设置在应用程序中的认证参数是否相同,是则执行步骤229,否则应用程序结束;
步骤229:应用程序解析openURL函数的参数,判断解析得到的返回值是否为0,是则执行步骤230,否则执行步骤231;
例如,本实施例中,返回值为0则表示签名成功,返回值不为0则表示错误;
步骤230:应用程序显示签名结果,结束;
步骤231:应用程序根据返回值显示相应错误信息,结束;
本实施例中,服务程序验证PIN码步骤和验证CN字段步骤的顺序可以交换,也可以在步骤216和步骤217之间执行验证PIN码和验证CN字段的步骤。本实施例中提供的一种在移动操作系统中完成数字签名的方法,当应用程序进行修改或升级时,服务程序不需要改变;反之,服务程序进行修改或升级时,应用程序不需要改变,实现了应用程序和服务程序的独立部署。
实施例3
本发明的实施例3提供一种在移动操作系统中完成数字签名的系统,如图5所示,包括:应用装置31和服务装置32;
应用装置31包括编码模块31A、第一调用模块31B和第一响应模块31C;
编码模块31A,用于对待签名数据进行编码,得到第一数据包;
第一调用模块31B,用于以服务程序的地址字符串、应用程序的地址字符串和第一数据包为参数,调用系统预设函数;
第一响应模块31C,用于当应用程序被系统预设函数调用时,解析系统预设函数的参数;
服务装置包括:解析模块32A、存储模块32B、解码模块32C、发送模块32D、第二接收模块32E和第二调用模块32F;
解析模块32A,用于当服务程序被所述系统预设函数调用时,解析系统预设函数的参数;
存储模块32B,用于保存应用程序的地址字符串;
解码模块32C,用于对解析得到的系统预设函数的参数中的第一数据包进行解码;
发送模块32D,用于将待签名数据和预设签名类型发送到智能密钥设备;
第二接收模块32E,用于接收智能密钥设备返回的信息;
第二调用模块32F,以所述智能密钥设备返回的信息、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数,或者,以所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数。
服务装置32中的所述第二接收模块32E包括接收单元和第一判断单元;
接收单元,用于接收所述智能密钥设备返回的信息;
第一判断单元,用于判断所述智能密钥设备返回的信息是否为签名结果;
应用装置31中还包括第一判断模块31D;
第一判断模块31D,用于判断所述返回值是否为表示正确信息的返回值。
应用装置31还包括第一接收模块31E和组合模块31F;
第一接收模块31E包括第一接收单元31E-1、第二判断单元31E-2、第一显示单元31E-3、第一加密单元31E-4和第三判断单元31E-5;
第一接收单元31E-1,用于接收用户输入的信息及第一用户按键信息;
第二判断单元31E-2,用于判断是否接收到用户输入的信息及第一用户按键信息;
第一显示单元31E-3,用于通过显示屏将提示信息输出;
第一加密单元31E-4,用于对用户输入的证书用户名进行加密;
第三判断单元31E-5,用于根据第一用户按键信息判断用户按键类型;
组合模块31F包括标志位单元31F-1、第一组合单元31F-2和第二加密单元31F-3;
标志位单元31F-1,用于将标志位置位或将标志位复位;
第一组合单元31F-2,用于对第一信息、第二信息和第三信息进行组合,得到待签名数据;
第二加密单元31F-3,用于对待签名数据进行加密,或者,对所述第一信息、第二信息和第三信息分别进行加密。
第一调用模块31B还用于以服务程序的地址字符串、应用程序的地址字符串、第一认证参数和第一数据包为参数,调用系统预设函数。
第一调用模块31B包括第一调用单元31B-1、第一获取单元31B-2和第四判断单元31B-3;
第一调用单元31B-1,用于以所述服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用所述系统预设函数;
第一获取单元31B-2,用于获取系统预设函数的返回值;
第四判断单元31B-3,用于判断系统预设函数的返回值类型。
服务装置32包括第二响应模块32G,用于响应系统预设函数;
第二响应模块32G包括第二认证单元32G-1和第五判断单元32G-2;
第二认证单元32G-1,用于认证解析得到的第一认证参数;
第五判断单元32G-2,用于判断是否成功认证第一认证参数。
服务装置32包括验证模块32H,用于验证智能密钥设备的序列号;
验证模块32H包括第二接收单元32H-1、第六判断单元32H-2、第二显示单元32H-3、第二获取单元32H-4和第七判断单元32H-5;
第二接收单元32H-1,用于接收第二用户按键信息;
第六判断单元32H-2,用于根据第二用户按键信息判断用户按键类型;
第二显示单元32H-3,用于通过显示屏将模态框输出;
第二获取单元32H-4,用于获取智能密钥设备的序列号;
第七判断单元32H-5,用于判断获取得到的智能密钥设备的序列号与应用程序发送的智能密钥设备序列号是否相同。
解码模块32C包括第八判断单元32C-1、解码单元32C-2、解密单元32C-3、第二组合单元32C-4、第一验证单元32C-5、第三获取单元32C-6和第二验证单元32C-7;
第八判断单元32C-1,用于判断标志位是否置位;
解码单元32C-2,用于对第一数据包进行解码;
解密单元32C-3,用于对解码结果进行解密;
第二组合单元32C-4,用于当所述解密单元解密成功时将解密得到的第一信息、第二信息和第三信息进行组合,得到待签名数据;
第一验证单元32C-5,用于验证用户输入的PIN码;
第三获取单元32C-6,用于从智能密钥设备中的证书中获取证书公钥和证书用户名;
第二验证单元32C-7,用于验证用户输入的证书用户名。
第二接收单元32H-1还用于接收用户输入的PIN码。
应用装置32还包括连接模块32I,用于连接智能密钥设备。
第二调用模块32F还用于以第二认证参数、保存的应用程序的地址字符串、智能密钥设备返回的信息和返回值为参数,调用系统预设函数,清除所述模态框。
第一响应模块31C包括解析单元31C-1、第一认证单元31C-2和第九判断单元31C-3;
解析单元31C-1,用于当应用程序被系统预设函数调用时,解析系统预设函数的参数;
第一认证单元31C-2,用于认证第二认证参数;
第九判断单元31C-3,用于判断是否成功认证第二认证参数。
应用装置31还包括显示模块31G,用于显示签名结果或根据返回值显示相应错误信息。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (30)
1.一种在移动操作系统中完成数字签名的方法,其特征在于,所述方法包括:
当应用程序被调用时,执行以下步骤:
步骤S1:所述应用程序对待签名数据进行编码,得到第一数据包;
步骤S2:所述应用程序以服务程序的地址字符串、所述应用程序的地址字符串和所述第一数据包为参数,调用系统预设函数;
步骤S3:当服务程序被所述系统预设函数调用时,解析所述系统预设函数的参数,保存所述应用程序的地址字符串;
步骤S4:所述服务程序对解析得到的所述系统预设函数的参数中的所述第一数据包进行解码,如解码成功则得到所述待签名数据,执行步骤S5,否则将解码失败信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8;
步骤S5:所述服务程序将所述待签名数据和预设签名类型发送给智能密钥设备;
步骤S6:所述服务程序接收所述智能密钥设备返回的信息;
步骤S7:所述服务程序以所述智能密钥设备返回的信息、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数,所述返回值为错误码或者表示签名成功的数值;
步骤S8:当所述应用程序被所述系统预设函数调用时,所述应用程序解析所述系统预设函数的参数,得到签名结果或所述返回值,结束。
2.根据权利要求1所述的方法,其特征在于,所述步骤S6至步骤S8替换为:
步骤S6’:所述服务程序接收所述智能密钥设备返回的信息,判断所述智能密钥设备返回的信息是否为签名结果,是则执行步骤S7’,否则将签名错误信息作为返回值,所述服务程序以所述保存的所述应用程序的地址字符串和所述返回值为参数,调用所述系统预设函数,执行步骤S8’;
步骤S7’:所述服务程序以所述签名结果、所述保存的所述应用程序的地址字符串和返回值为参数,调用所述系统预设函数,所述返回值为错误码或者表示签名成功的数值;
步骤S8’:当所述应用程序被所述系统预设函数调用时,所述应用程序解析所述系统预设函数的参数,解析得到的返回值是否为表示正确信息的返回值,是则得到所述签名结果,结束,否则得到错误信息,结束。
3.根据权利要求1所述的方法,其特征在于,所述步骤S1包括:
步骤S1-1:所述应用程序等待接收用户输入的信息及第一用户按键信息,并判断是否接收到所述用户输入的信息及第一用户按键信息,是则执行步骤S1-3,否则执行步骤S1-2;所述用户输入的信息包括第一账户、第二账户、传输信息、证书用户名和所述智能密钥设备的序列号;
步骤S1-2:所述应用程序通过显示屏将提示信息输出,返回步骤S1-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’,否则将签名错误信息作为返回值,所述服务程序以预设的第二认证参数、所述保存的所述应用程序的地址字符串和所述返回值为参数,调用系统预设函数,执行步骤S8’;
步骤S7’-1:所述服务程序以所述第二认证参数、所述保存的所述应用程序的地址字符串、所述智能密钥设备返回的信息和返回值为参数,调用所述系统预设函数;所述返回值为错误码或者表示签名成功的数值。
15.根据权利要求13所述的方法,其特征在于,所述步骤S8包括:
步骤S8-0:当所述应用程序被系统预设函数调用时,解析所述系统预设函数的参数,认证解析得到的所述第二认证参数,判断是否认证成功,是则得到签名结果或返回值,结束,否则结束。
16.根据权利要求14所述的方法,其特征在于,所述步骤S8’包括:
步骤S8’-0:当所述应用程序被系统预设函数调用时,解析所述系统预设函数的参数,认证解析得到的所述第二认证参数并判断是否认证成功,如认证成功则判断解析得到的返回值是否为表示正确信息的返回值,是则得到签名结果,结束,否则得到错误信息,结束;如认证失败则结束。
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所述的系统,其特征在于,所述应用装置还包括显示模块,用于显示所述签名结果或根据返回值显示相应错误信息。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210578627.6A CN103067174B (zh) | 2012-12-27 | 2012-12-27 | 一种在移动操作系统中完成数字签名的方法和系统 |
US14/434,262 US9473308B2 (en) | 2012-12-27 | 2013-12-02 | Method and system for implementing digital signature in mobile operating system |
PCT/CN2013/088308 WO2014101633A1 (zh) | 2012-12-27 | 2013-12-02 | 一种在移动操作系统中完成数字签名的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210578627.6A CN103067174B (zh) | 2012-12-27 | 2012-12-27 | 一种在移动操作系统中完成数字签名的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103067174A CN103067174A (zh) | 2013-04-24 |
CN103067174B true CN103067174B (zh) | 2015-06-17 |
Family
ID=48109645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210578627.6A Active CN103067174B (zh) | 2012-12-27 | 2012-12-27 | 一种在移动操作系统中完成数字签名的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9473308B2 (zh) |
CN (1) | CN103067174B (zh) |
WO (1) | WO2014101633A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067174B (zh) * | 2012-12-27 | 2015-06-17 | 飞天诚信科技股份有限公司 | 一种在移动操作系统中完成数字签名的方法和系统 |
CN106936577B (zh) * | 2015-12-29 | 2020-11-03 | 航天信息股份有限公司 | 一种用于证书申请的方法、终端和系统 |
CN107491954A (zh) * | 2016-06-13 | 2017-12-19 | 邓斌涛 | 信息交互方法、身份认证和电子支付系统和方法 |
CN107231367B (zh) * | 2017-06-21 | 2021-03-19 | 北京奇虎科技有限公司 | 签名消息的自动通知方法、装置以及服务器 |
CN108897531B (zh) * | 2018-06-29 | 2021-11-16 | 播思通讯技术(北京)有限公司 | 一种Carplay开发和调试方法 |
CN109213686B (zh) * | 2018-10-22 | 2022-03-22 | 网易(杭州)网络有限公司 | 应用包体检查方法、装置、存储介质、处理器及服务器 |
CN109886679B (zh) * | 2019-01-24 | 2021-02-23 | 杭州趣链科技有限公司 | 一种基于区块链的密钥扫码签名系统 |
CN111625787B (zh) * | 2020-05-21 | 2023-04-25 | 杭州尚尚签网络科技有限公司 | 一种基于ofd的电子签章多版本可追溯快速验签方法 |
CN113517951B (zh) * | 2021-05-16 | 2022-06-03 | 武汉领普科技有限公司 | 自发电开关及其处理方法、接收器及其处理方法 |
CN116112172B (zh) * | 2022-11-09 | 2023-08-22 | 上海创蓝云智信息科技股份有限公司 | Android客户端gRPC接口安全校验的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576843A (zh) * | 2008-05-07 | 2009-11-11 | 阿里巴巴集团控股有限公司 | 一种测试应用程序接口的方法和装置 |
CN102662692A (zh) * | 2012-03-16 | 2012-09-12 | 北京经纬恒润科技有限公司 | 一种电子控制单元中应用程序的更新方法及系统 |
CN102752104A (zh) * | 2012-06-07 | 2012-10-24 | 中国电子科技集团公司第三十研究所 | 一种基于智能卡cos的对称密码服务实现方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849326B2 (en) * | 2004-01-08 | 2010-12-07 | International Business Machines Corporation | Method and system for protecting master secrets using smart key devices |
US7779269B2 (en) * | 2004-09-21 | 2010-08-17 | Ciena Corporation | Technique for preventing illegal invocation of software programs |
JP4288292B2 (ja) * | 2006-10-31 | 2009-07-01 | 株式会社エヌ・ティ・ティ・ドコモ | オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置 |
US8539131B2 (en) | 2010-09-23 | 2013-09-17 | Intel Corporation | Root hub virtual transaction translator |
JP5882779B2 (ja) * | 2012-02-15 | 2016-03-09 | キヤノン株式会社 | 画像処理装置、画像処理装置の制御方法及びプログラム |
CN103067174B (zh) * | 2012-12-27 | 2015-06-17 | 飞天诚信科技股份有限公司 | 一种在移动操作系统中完成数字签名的方法和系统 |
-
2012
- 2012-12-27 CN CN201210578627.6A patent/CN103067174B/zh active Active
-
2013
- 2013-12-02 WO PCT/CN2013/088308 patent/WO2014101633A1/zh active Application Filing
- 2013-12-02 US US14/434,262 patent/US9473308B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576843A (zh) * | 2008-05-07 | 2009-11-11 | 阿里巴巴集团控股有限公司 | 一种测试应用程序接口的方法和装置 |
CN102662692A (zh) * | 2012-03-16 | 2012-09-12 | 北京经纬恒润科技有限公司 | 一种电子控制单元中应用程序的更新方法及系统 |
CN102752104A (zh) * | 2012-06-07 | 2012-10-24 | 中国电子科技集团公司第三十研究所 | 一种基于智能卡cos的对称密码服务实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US9473308B2 (en) | 2016-10-18 |
WO2014101633A1 (zh) | 2014-07-03 |
CN103067174A (zh) | 2013-04-24 |
US20150295718A1 (en) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067174B (zh) | 一种在移动操作系统中完成数字签名的方法和系统 | |
CN106937274B (zh) | 一种基于EUICC的Profile切换方法及装置 | |
US9008620B2 (en) | Mobile device service authorization system and method | |
CN111246539B (zh) | 一种智能家电的联网绑定方法、智能家电及用户终端 | |
WO2006042469A1 (en) | A dynamic password authentication system and the method thereof | |
WO2007076685A1 (fr) | Procede destine a etendre une adresse url applicable a un systeme de video en contenu | |
CN104298896B (zh) | 数字版权保护与分发方法及系统 | |
CN109672523A (zh) | 基于过滤器的信息加密方法、装置、设备及可读存储介质 | |
CN105376059A (zh) | 基于电子钥匙进行应用签名的方法和系统 | |
CN109257416A (zh) | 一种区块链云服务网络信息管理系统 | |
CN101171860B (zh) | 管理接入多媒体内容的安全方法和设备 | |
JP2008535427A (ja) | データ処理デバイスとセキュリティモジュールとの間のセキュア通信 | |
CN113727058A (zh) | 一种多媒体会议数据处理方法、系统、设备及存储介质 | |
CN109905490B (zh) | 虚拟仿真实验共享平台架构 | |
CN110365688A (zh) | 防盗链方法及装置 | |
CN102547686B (zh) | M2m终端安全接入方法及终端、管理平台 | |
CN101588237A (zh) | 一种基于主动网技术的终端加密通信方法、装置和系统 | |
WO2023116382A1 (zh) | 一键登录业务的实现 | |
KR101329789B1 (ko) | 모바일 디바이스의 데이터베이스 암호화 방법 | |
CN109218009A (zh) | 一种提高设备id安全性的方法、客户端和服务器 | |
CN102149018B (zh) | 一种应用hsml解析引擎的安全保护处理方法及系统 | |
CN112804058A (zh) | 一种会议数据加解密方法、装置、存储介质及电子设备 | |
CN107770130B (zh) | 一种多媒体内容获取方法及装置 | |
CN101883241A (zh) | 移动终端电视业务加密方法、移动终端及服务器 | |
CN108092938B (zh) | 基于指纹的认证方法、基于指纹认证的第一服务器及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085 Patentee after: Feitian Technologies Co.,Ltd. Country or region after: China Address before: 100085 17th floor, block B, Huizhi building, No.9 Xueqing Road, Haidian District, Beijing Patentee before: Feitian Technologies Co.,Ltd. Country or region before: China |