CN106096336A - 软件防破解方法和系统 - Google Patents

软件防破解方法和系统 Download PDF

Info

Publication number
CN106096336A
CN106096336A CN201610408988.4A CN201610408988A CN106096336A CN 106096336 A CN106096336 A CN 106096336A CN 201610408988 A CN201610408988 A CN 201610408988A CN 106096336 A CN106096336 A CN 106096336A
Authority
CN
China
Prior art keywords
application
described application
random number
management server
request
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.)
Granted
Application number
CN201610408988.4A
Other languages
English (en)
Other versions
CN106096336B (zh
Inventor
马文翼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610408988.4A priority Critical patent/CN106096336B/zh
Publication of CN106096336A publication Critical patent/CN106096336A/zh
Application granted granted Critical
Publication of CN106096336B publication Critical patent/CN106096336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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

Abstract

本申请公开了一种软件防破解方法和系统,其中方法包括终端设备在需要安装应用的主应用文件时,向应用管理服务器获取应用私钥,如果获取失败,则停止所述安装;当终端设备首次接收到对所述应用的功能执行命令时,向应用管理服务器申请应用功能加载授权,在获得授权后加载应用的类SEC文件,利用应用私钥对SEC文件加密,保存所得到的加密文件FSEC,并删除应用私钥和SEC文件的明文;当所述终端设备非首次接收到对所述应用的功能执行命令时,向应用管理服务器申请所述应用私钥对应的解密密钥,利用申请到的解密密钥对所述加密文件FSEC解密,获得SEC文件的明文并加载,在加载结束后删除解密密钥和SEC文件的明文。采用本发明可以有效避免软件被恶意破解。

Description

软件防破解方法和系统
技术领域
本发明涉及数据安全技术,特别是涉及一种软件防破解方法和系统。
背景技术
目前,随着移动互联技术的不断发展以及android移动设备的大范围使用,各种移动应用也层出不穷。有资料显示到2017年,移动应用的下载量将达到2680亿,移动应用市场的规模将达到770亿。近年来,愈发凸显的问题则是软件被恶意破解。
现有的软件防破解方案中,是通过控制用户对应用的类(SEC)文件的使用来防止对软件的非法使用。具体而言,用户下载的应用将包含两个文件,它们分别为:非完全的主应用文件(IMA)和一个单独且必不可少的SEC文件。用户购买之后,就会下载IMA文件。此后,如果想要使用该应用的所有功能,则会到应用市场下载一个加密的SEC文件,在下载时,应用市场会对用户的合法性进行认证,用户下载到加密的SEC文件后可以自行解密该文件,使应用程序得以动态加载执行。执行之后,动态加载模块会删除SEC文件。
在上述软件防破解方案中,用户每次想使用应用的所有功能都要重新下载一次加密的SEC文件,因此,会增加用户的流量损耗;另外,如果用户将android设备root了,则可以随意访问android的安全空间,从而可以修改APK文件的动态加载删除功能,保留SEC文件,这样,软件就被破解了。
由此可见,现有的软件防破解方案无法有效避免软件被非法破解。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件防破解方法和系统,可以有效避免软件被恶意破解。
为了达到上述目的,本发明提出的技术方案为:
一种软件防破解方法,包括:
终端设备在需要安装应用的主应用文件时,向应用管理服务器获取应用私钥,如果获取失败,则停止所述安装;
当终端设备首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请应用功能加载授权,在获得所述授权后加载所述应用的SEC文件,利用所述应用私钥对所述SEC文件加密,保存所得到的加密文件FSEC,并删除所述应用私钥和所述SEC文件的明文;
当所述终端设备非首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请所述应用私钥对应的解密密钥,利用申请到的所述解密密钥对所述加密文件FSEC解密,获得所述SEC文件的明文并加载,在所述加载结束后删除所述解密密钥和所述SEC文件的明文。
较佳地,所述向应用管理服务器获取应用私钥包括:
s1、所述终端设备向所述应用管理服务器发送应用私钥请求,所述应用私钥请求包含所述终端设备为当前交互生成的随机数s1、用户属性信息和应用属性信息;所述用户属性信息包括用户名、用户密码和终端设备标识;所述应用属性信息包括应用的证书信息码和应用标识码;
s2、所述应用管理服务器根据应用私钥请求消息,对所述应用私钥请求的合法性进行验证,如果合法,则采用加密传输的方式将所述应用私钥发送给所述终端设备,否则,拒绝所述应用私钥请求。
较佳地,步骤s2中对所述应用私钥请求的合法性进行验证包括:
x1、所述应用管理服务器判断所述应用私钥请求携带的所述随机数s1是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤x2,否则,判定所述应用私钥请求非法;
x2、所述应用管理服务器判断是否满足:所述应用私钥请求携带的证书信息码与当前保存的对应应用的证书信息码一致,且所述应用私钥请求携带的用户密码与当前保存的对应用户的用户密码一致,则判断所述应用私钥请求合法,否则,判断所述应用私钥请求非法。
较佳地,步骤s2中所述采用加密传输的方式将所述应用私钥发送给所述终端设备包括:
所述应用管理服务器利用所述应用私钥、所述证书信息码、所述应用标识码、所述终端设备标识和所述随机数s1,生成应用市场初始签名SigAM;将所述应用市场初始签名SigAM加密后发送给所述终端设备;
所述终端设备对所述SigAM解密后,判断其中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述SigAM携带的所述应用私钥,否则,判定所述应用私钥的获取失败。
较佳地,向所述应用管理服务器申请应用功能加载授权包括:
y1、所述终端设备为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;
y2、所述应用管理服务器判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤y3,否则,拒绝所述应用功能加载授权,结束所述申请应用功能加载授权的过程;
y3、所述应用管理服务器根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果一致,则采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2;否则,拒绝所述应用功能加载授权;
y4、所述终端设备判断所述应用功能加载授权消息中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,否则,判定所述应用功能加载授权获取失败。
较佳地,向所述应用管理服务器申请应用功能加载授权包括:
y1、所述终端设备为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符以及所述应用市场初始签名SigAM一起加密后的密文;
y2、所述应用管理服务器判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤y3,否则,拒绝所述应用功能加载授权,结束所述应用功能加载授权的申请过程;
y3、所述应用管理服务器判断所述功能加载授权请求携带的所述应用市场初始签名SigAM是否有效,如果是,则执行步骤y4,否则,拒绝所述应用功能加载授权,结束所述应用功能加载授权的申请过程;
y4、所述应用管理服务器根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则为所述终端设备生成应用市场增强签名SigASE,并采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2和所述应用市场增强签名SigASE;否则,拒绝所述应用功能加载授权;
y5、所述终端设备判断所述应用功能加载授权消息中携带的所述随机数s2是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,保存所述应用市场增强签名SigASE,否则,判定所述应用功能加载授权获取失败。
较佳地,向所述应用管理服务器申请所述应用私钥对应的解密密钥包括:
z1、所述终端设备向所述应用管理服务器发送解密密钥请求;所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;
z2、所述应用管理服务器判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用最新生成的随机数,如果是,则执行步骤z3,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
z3、所述应用管理服务器根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述解密密钥;否则,拒绝所述解密密钥请求;
z4、所述终端设备判断所述解密密钥请求成功消息中携带的所述随机数s3是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,否则,判定所述解密密钥请求成功获取失败。
较佳地,向所述应用管理服务器申请所述应用私钥对应的解密密钥包括:
z1、所述终端设备为当前交互生成随机数s3,向所述应用管理服务器发送解密密钥请求,所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、所述应用市场初始签名SigAM和所述应用市场增强签名SigASE一起加密后的密文;
z2、所述应用管理服务器判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤z3,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
z3、所述应用管理服务器判断所述解密密钥请求携带的所述应用市场初始签名SigAM和所述应用市场增强签名SigASE是否有效,如果是,则执行步骤z4,否则,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
z4、所述应用管理服务器根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则为所述终端设备生成新的应用市场增强签名,并采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述新的应用市场增强签名;否则,拒绝所述解密密钥请求;
z5、所述终端设备判断所述解密密钥请求成功消息中携带的所述随机数s3是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,并将当前保存的所述应用的应用市场增强签名更新为所述新的应用市场增强签名,否则,判定所述解密密钥请求成功获取失败。
一种软件防破解系统,包括:终端设备和应用管理服务器,其中,
终端设备,用于在需要安装应用的主应用文件时,向应用管理服务器获取应用私钥,如果获取失败,则停止所述安装;当首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请应用功能加载授权,在获得所述授权后加载所述应用的SEC文件,利用所述应用私钥对所述SEC文件加密,保存所得到的加密文件FSEC,并删除所述应用私钥和所述SEC文件的明文;当非首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请所述应用私钥对应的解密密钥,利用申请到的所述解密密钥对所述加密文件FSEC解密,获得所述SEC文件的明文并加载,在所述加载结束后删除所述解密密钥和所述SEC文件的明文。
较佳地,所述终端设备,用于向所述应用管理服务器发送应用私钥请求,所述应用私钥请求包含所述终端设备为当前交互生成的随机数s1、用户属性信息和应用属性信息;所述用户属性信息包括用户名、用户密码和终端设备标识;所述应用属性信息包括应用的证书信息码和应用标识码;
所述应用管理服务器,用于根据应用私钥请求消息,对所述应用私钥请求的合法性进行验证,如果合法,则采用加密传输的方式将所述应用私钥发送给所述终端设备,否则,拒绝所述应用私钥请求。
较佳地,所述应用管理服务器,用于判断所述应用私钥请求携带的所述随机数s1是否为所述终端设备针对所述应用新生成的随机数,如果不是,则判定所述应用私钥请求非法;如果是,则判断是否满足:所述应用私钥请求携带的证书信息码与当前保存的对应应用的证书信息码一致,且所述应用私钥请求携带的用户密码与当前保存的对应用户的用户密码一致,则判断所述应用私钥请求合法,否则,判断所述应用私钥请求非法。
较佳地,所述应用管理服务器,用于利用所述应用私钥、所述证书信息码、所述应用标识码、所述终端设备标识和所述随机数s1,生成应用市场初始签名SigAM;将所述应用市场初始签名SigAM加密后发送给所述终端设备;
所述终端设备,用于对所述SigAM解密后,判断其中携带的所述随机数s1是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述SigAM携带的所述应用私钥,否则,判定所述应用私钥的获取失败。
较佳地,所述终端设备,用于为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;用于判断来自应用管理服务器的应用功能加载授权消息中携带的所述随机数s2是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,否则,判定所述应用功能加载授权获取失败;
所述应用管理服务器,用于判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果不是,则拒绝所述应用功能加载授权;如果是,则根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果一致,则采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2,如果不一致,则拒绝所述应用功能加载授权。
较佳地,所述终端设备为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符以及所述应用市场初始签名SigAM一起加密后的密文;判断来自所述应用管理服务器的应用功能加载授权消息中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,保存所述应用市场增强签名SigASE,否则,判定所述应用功能加载授权获取失败;
所述应用管理服务器,用于判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果不是,则拒绝所述应用功能加载授权;如果是,则所述应用管理服务器判断所述功能加载授权请求携带的所述应用市场初始签名SigAM是否有效,如果无效,则拒绝所述应用功能加载授权;如果有效,则根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果一致,则为所述终端设备生成应用市场增强签名SigASE,并采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2和所述应用市场增强签名SigASE,如果不一致,则拒绝所述应用功能加载授权。
较佳地,所述终端设备,用于向所述应用管理服务器发送解密密钥请求;所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;判断接收到的解密密钥请求成功消息中携带的所述随机数s3是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,否则,判定所述解密密钥请求成功获取失败;
所述应用管理服务器,用于判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用新生成的随机数,如果不是,则拒绝所述解密密钥请求;如果是,则根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述解密密钥,否则,拒绝所述解密密钥请求。
较佳地,所述终端设备,用于为当前交互生成随机数s3,向所述应用管理服务器发送解密密钥请求,所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、所述应用市场初始签名SigAM和所述应用市场增强签名SigASE一起加密后的密文;判断接收到的解密密钥请求成功消息中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,并将当前保存的所述应用的应用市场增强签名更新为所述新的应用市场增强签名,否则,判定所述解密密钥请求成功获取失败;
所述应用管理服务器,用于判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用新生成的随机数,如果不是,则拒绝所述解密密钥请求;如果是,则判断所述解密密钥请求携带的所述应用市场初始签名SigAM和所述应用市场增强签名SigASE是否有效,如果不是则拒绝所述解密密钥请求;如果是,则根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则为所述终端设备生成新的应用市场增强签名,并采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述新的应用市场增强签名,否则,拒绝所述解密密钥请求。
综上所述,本发明提出的软件防破解方法和系统,可以有效避免软件被恶意破解。
附图说明
图1为本发明实施例的方法流程示意图;
图2为图1步骤101中获取应用私钥的具体实施示意图;
图3为本发明实施例的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:引入一个密钥,利用该密钥对SEC文件进行加密,用户端将始终保存该经过加密的SEC文件。应用在每次执行时,需要先从应用管理服务器下载用于解密SEC文件的密钥,执行完后,将删除该用于解密SEC文件的密钥,如此,可以避免每次下载SEC文件产生的流量开销,同时,由于用户保存的SEC文件是经过加密的,且没有保存相应的解密密钥,因此,可以避免通过对android设备root所致的软件破解问题。
图1为本发明实施例一的流程示意图,如图1所示,该实施例主要包括:
步骤101、终端设备在需要安装应用的主应用文件时,向应用管理服务器获取应用私钥,如果获取失败,则停止所述安装。
本步骤中,在安装应用时,终端设备需要向应用管理服务器获取应用私钥,该应用私钥将在后续使用过程中用于对用于加载应用功能的SEC文件进行加密保存。本步骤中终端设备如果不能成功获取该应用私钥,将无法完成应用的安装过程,这样,在应用管理服务器可以对应用私钥分配进行控制,确保只有合法用户才可以安装该应用。
需要说明的是,用户购买后,将会下载主应用文件和SEC文件到终端设备中。
较佳地,如图2所示,本步骤中终端设备可以采用下述方法向应用管理服务器获取应用私钥:
步骤1011、所述终端设备向所述应用管理服务器发送应用私钥请求,所述应用私钥请求包含所述终端设备为当前交互生成的随机数s1、用户属性信息和应用属性信息。
所述用户属性信息包括用户名、用户密码和终端设备标识;所述应用属性信息包括应用的证书信息码和应用标识码。
本步骤中,应用私钥请求将包含终端为本次交互生成的随机数s1,该随机数s1将用于确保终端与服务器之间交互的安全性,服务器收到该请求后将根据其携带的随机数s1,来确定所收到请求的合法性,以避免黑客利用所截获的信息欺骗服务器获取应用私钥。
步骤1012~1014、所述应用管理服务器根据应用私钥请求消息,对所述应用私钥请求的合法性进行验证,如果合法,则采用加密传输的方式将所述应用私钥发送给所述终端设备,否则,拒绝所述应用私钥请求。
较佳地,这里可以采用下述方法对所述应用私钥请求的合法性进行验证:
步骤x1、所述应用管理服务器判断所述应用私钥请求携带的所述随机数s1是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤x2,否则,判定所述应用私钥请求非法。
这里需要说明的是,为确保交互的安全性,终端设备每次和服务交互时都生成新的随机数,因此,本步骤中服务器先判断请求携带的随机数s1是否为终端设备此前针对该应用与服务器交互时已使用过的随机数,如果是,则说明该请求不是终端设备发出的,属于非法请求,如果是,则进入后续步骤,通过对用户属性信息和应用属性信息进行验证,来确定请求的合法性。
步骤x2、所述应用管理服务器判断是否满足:所述应用私钥请求携带的证书信息码与当前保存的对应应用的证书信息码一致,且所述应用私钥请求携带的用户密码与当前保存的对应用户的用户密码一致,则判断所述应用私钥请求合法,否则,判断所述应用私钥请求非法。
本步骤中,应用管理服务器将利用预先保存的用户密码和应用的证书信息码,对请求中携带的证书信息码和用户密码进行验证,以进一步确定应用私钥请求的合法性。
较佳地,为了确保应用私钥的传输安全性,步骤1013中可以采用下述方法将所述应用私钥发送给终端设备:
步骤a1、所述应用管理服务器利用所述应用私钥、所述证书信息码、所述应用标识码、所述终端设备标识和所述随机数s1,生成应用市场初始签名SigAM;将所述应用市场初始签名SigAM加密后发送给所述终端设备。
本步骤中,将所述证书信息码、所述应用标识码、所述终端设备标识和所述随机数s1,同时与应用私钥一起生成应用市场初始签名SigAM,一方面可以确保签名足够长,进而可以有效防止被黑客截获破解,另一方面,把随机数s1发送给终端设备,终端设备可以根据该随机数识别出签名SigAM是由应用管理服务器所发送的,确保与管理服务器交互的安全性。
步骤a2、所述终端设备对所述SigAM解密后,判断其中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述SigAM携带的所述应用私钥,否则,判定所述应用私钥的获取失败。
本步骤中,终端设备需要先确定所述SigAM的合法性,即判断其中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果合法,则保存其中应用私钥,以便此后对应用的SEC文件进行加密。
步骤102、当终端设备首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请应用功能加载授权,在获得所述授权后加载所述应用的SEC文件,利用所述应用私钥对所述SEC文件加密,保存所得到的加密文件FSEC,并删除所述应用私钥和所述SEC文件的明文。
在实际应用中,终端设备在每次使用应用时,即执行应用功能时,都需要加载SEC文件。本步骤中,终端设备在首次使用应用时,需要先向应用管理服务器申请应用功能加载授权,只有获得授权才可以执行SEC文件,并利用安装应用时获取的应用私钥对SEC文件进行加密保存,SEC文件加载后将删除SEC文件的明文和应用私钥,这样,之后每次使用应用时,需要向应用管理服务器获取SEC文件的解密密钥。如此,在终端设备中只保存密文而没有相应的密钥,此情况下,即使设备被ROOT了,用户窃取的也仅仅是加密文件,由于解密密钥被应用管理服务器管理控制,因此,黑客是无法获取到类文件的明文,进而可以有效防御软件的破解。
在实际应用中,为了增加加密文件FSEC的破解难度,可以将SEC文件和用户属性信息、应用属性信息组合在一起进行加密,这样,加密文件足够长将很难被解密。
较佳地,步骤102中可以采用下述两种方法向所述应用管理服务器申请应用功能加载授权。
方法一包括下述步骤:
步骤y11、所述终端设备为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文。
步骤y12、所述应用管理服务器判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤y13,否则,拒绝所述应用功能加载授权,结束所述申请应用功能加载授权的过程;
步骤y13、所述应用管理服务器根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果一致,则采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2;否则,拒绝所述应用功能加载授权;
步骤y14、所述终端设备判断所述应用功能加载授权消息中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,否则,判定所述应用功能加载授权获取失败。
在上述方法一中,应用管理服务器将根据功能加载授权请求携带的随机数s2和应用的半可信加载特征字符,对功能加载授权请求的有效性进行验证,从而可以确保只对合法用户进行所述授权,如此,可以有效确保只有合法用户才可以使用应用,避免应用被破解。
方法二将在步骤101采用步骤1011~1014的方案实现且步骤1013中利用步骤a1和a2将应用私钥发送给终端设备的基础上实现的,具体包括下述步骤:
步骤y21、所述终端设备为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符以及所述应用市场初始签名SigAM一起加密后的密文。
步骤y22、所述应用管理服务器判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤y23,否则,拒绝所述应用功能加载授权,结束所述应用功能加载授权的申请过程。
步骤y23、所述应用管理服务器判断所述功能加载授权请求携带的所述应用市场初始签名SigAM是否有效,如果是,则执行步骤y24,否则,拒绝所述应用功能加载授权,结束所述应用功能加载授权的申请过程。
步骤y24、所述应用管理服务器根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则为所述终端设备生成应用市场增强签名SigASE,并采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2和所述应用市场增强签名SigASE;否则,拒绝所述应用功能加载授权。
步骤y25、所述终端设备判断所述应用功能加载授权消息中携带的所述随机数s2是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,保存所述应用市场增强签名SigASE,否则,判定所述应用功能加载授权获取失败。
在上述方法二中,功能加载授权请求中将不仅携带终端为本次交互新生成的随机数s2和应用的半可信加载特征字符,还携带安装应用时应用管理服务器为其生成的应用市场初始签名SigAM,以便应用管理服务器对功能加载授权请求的有效性进行更可靠的验证,从而可以进一步确保只对合法用户进行所述授权,即有效确保只有合法用户才可以使用应用,避免应用被破解。
步骤103、当所述终端设备非首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请所述应用私钥对应的解密密钥,利用申请到的所述解密密钥对所述加密文件FSEC解密,获得所述SEC文件的明文并加载,在所述加载结束后删除所述解密密钥和所述SEC文件的明文。
较佳地,步骤103中可以采用下述两种方法向所述应用管理服务器申请所述应用私钥对应的解密密钥。
方法一包括:
步骤z11、所述终端设备向所述应用管理服务器发送解密密钥请求;所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;
步骤z12、所述应用管理服务器判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用最新生成的随机数,如果是,则执行步骤z13,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
步骤z13、所述应用管理服务器根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述解密密钥;否则,拒绝所述解密密钥请求;
步骤z14、所述终端设备判断所述解密密钥请求成功消息中携带的所述随机数s3是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,否则,判定所述解密密钥请求成功获取失败。
在上述获取解密密钥的方法一中,应用管理服务器将根据解密密钥请求携带的所述随机数s3和应用的半可信加载特征字符,对解密密钥请求的合法性进行验证,以确保只有合法用户可以获取到解密密钥,避免应用被破解使用。
获取解密密钥的方法二将在步骤102采用方法二获取功能加载授权的基础上实现,具体包括下述步骤:
步骤z21、所述终端设备为当前交互生成随机数s3,向所述应用管理服务器发送解密密钥请求,所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、所述应用市场初始签名SigAM和所述应用市场增强签名SigASE一起加密后的密文;
步骤z22、所述应用管理服务器判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤z23,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
步骤z23、所述应用管理服务器判断所述解密密钥请求携带的所述应用市场初始签名SigAM和所述应用市场增强签名SigASE是否有效,如果是,则执行步骤z24,否则,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
步骤z24、所述应用管理服务器根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则为所述终端设备生成新的应用市场增强签名,并采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述新的应用市场增强签名;否则,拒绝所述解密密钥请求;
步骤z25、所述终端设备判断所述解密密钥请求成功消息中携带的所述随机数s3是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,并将当前保存的所述应用的应用市场增强签名更新为所述新的应用市场增强签名,否则,判定所述解密密钥请求成功获取失败。
在上述获取解密密钥的方法二中,解密密钥请求中不仅携带终端设备新生成的随机数s3和应用的半可信加载特征字符,还进一步携带安装应用时应用管理服务器为其生成的应用市场初始签名SigAM以及最近一次使用时应用管理服务器为其生成的应用市场增强签名SigASE,应用管理服务器将基于这些信息对解密密钥请求的合法性进行验证,如此,可以进一步确保只有合法用户可以获取到解密密钥,避免应用被破解使用。
图3为与上述方法相对应的一种软件防破解系统结构示意图,如图3所示,该系统包括:终端设备和应用管理服务器,其中,
终端设备,用于在需要安装应用的主应用文件时,向应用管理服务器获取应用私钥,如果获取失败,则停止所述安装;当首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请应用功能加载授权,在获得所述授权后加载所述应用的SEC文件,利用所述应用私钥对所述SEC文件加密,保存所得到的加密文件FSEC,并删除所述应用私钥和所述SEC文件的明文;当非首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请所述应用私钥对应的解密密钥,利用申请到的所述解密密钥对所述加密文件FSEC解密,获得所述SEC文件的明文并加载,在所述加载结束后删除所述解密密钥和所述SEC文件的明文。
较佳地,所述终端设备,用于向所述应用管理服务器发送应用私钥请求,所述应用私钥请求包含所述终端设备为当前交互生成的随机数s1、用户属性信息和应用属性信息;所述用户属性信息包括用户名、用户密码和终端设备标识;所述应用属性信息包括应用的证书信息码和应用标识码;
所述应用管理服务器,用于根据应用私钥请求消息,对所述应用私钥请求的合法性进行验证,如果合法,则采用加密传输的方式将所述应用私钥发送给所述终端设备,否则,拒绝所述应用私钥请求。
较佳地,所述应用管理服务器,用于判断所述应用私钥请求携带的所述随机数s1是否为所述终端设备针对所述应用新生成的随机数,如果不是,则判定所述应用私钥请求非法;如果是,则判断是否满足:所述应用私钥请求携带的证书信息码与当前保存的对应应用的证书信息码一致,且所述应用私钥请求携带的用户密码与当前保存的对应用户的用户密码一致,则判断所述应用私钥请求合法,否则,判断所述应用私钥请求非法。
较佳地,所述应用管理服务器,用于利用所述应用私钥、所述证书信息码、所述应用标识码、所述终端设备标识和所述随机数s1,生成应用市场初始签名SigAM;将所述应用市场初始签名SigAM加密后发送给所述终端设备;
所述终端设备,用于对所述SigAM解密后,判断其中携带的所述随机数s1是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述SigAM携带的所述应用私钥,否则,判定所述应用私钥的获取失败。
较佳地,所述终端设备,用于为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;用于判断来自应用管理服务器的应用功能加载授权消息中携带的所述随机数s2是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,否则,判定所述应用功能加载授权获取失败;
所述应用管理服务器,用于判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果不是,则拒绝所述应用功能加载授权;如果是,则根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果一致,则采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2,如果不一致,则拒绝所述应用功能加载授权。
较佳地,所述终端设备为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符以及所述应用市场初始签名SigAM一起加密后的密文;判断来自所述应用管理服务器的应用功能加载授权消息中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,保存所述应用市场增强签名SigASE,否则,判定所述应用功能加载授权获取失败。
所述应用管理服务器,用于判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果不是,则拒绝所述应用功能加载授权;如果是,则所述应用管理服务器判断所述功能加载授权请求携带的所述应用市场初始签名SigAM是否有效,如果无效,则拒绝所述应用功能加载授权;如果有效,则根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果一致,则为所述终端设备生成应用市场增强签名SigASE,并采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2和所述应用市场增强签名SigASE,如果不一致,则拒绝所述应用功能加载授权。
较佳地,所述终端设备,用于向所述应用管理服务器发送解密密钥请求;所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;判断接收到的解密密钥请求成功消息中携带的所述随机数s3是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,否则,判定所述解密密钥请求成功获取失败。
所述应用管理服务器,用于判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用新生成的随机数,如果不是,则拒绝所述解密密钥请求;如果是,则根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述解密密钥,否则,拒绝所述解密密钥请求。
较佳地,所述终端设备,用于为当前交互生成随机数s3,向所述应用管理服务器发送解密密钥请求,所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、所述应用市场初始签名SigAM和所述应用市场增强签名SigASE一起加密后的密文;判断接收到的解密密钥请求成功消息中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,并将当前保存的所述应用的应用市场增强签名更新为所述新的应用市场增强签名,否则,判定所述解密密钥请求成功获取失败;
所述应用管理服务器,用于判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用新生成的随机数,如果不是,则拒绝所述解密密钥请求;如果是,则判断所述解密密钥请求携带的所述应用市场初始签名SigAM和所述应用市场增强签名SigASE是否有效,如果不是则拒绝所述解密密钥请求;如果是,则根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则为所述终端设备生成新的应用市场增强签名,并采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述新的应用市场增强签名,否则,拒绝所述解密密钥请求。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种软件防破解方法,其特征在于,包括:
终端设备在需要安装应用的主应用文件时,向应用管理服务器获取应用私钥,如果获取失败,则停止所述安装;
当终端设备首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请应用功能加载授权,在获得所述授权后加载所述应用的SEC文件,利用所述应用私钥对所述SEC文件加密,保存所得到的加密文件FSEC,并删除所述应用私钥和所述SEC文件的明文;
当所述终端设备非首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请所述应用私钥对应的解密密钥,利用申请到的所述解密密钥对所述加密文件FSEC解密,获得所述SEC文件的明文并加载,在所述加载结束后删除所述解密密钥和所述SEC文件的明文。
2.根据权利要求1所述的方法,其特征在于,所述向应用管理服务器获取应用私钥包括:
s1、所述终端设备向所述应用管理服务器发送应用私钥请求,所述应用私钥请求包含所述终端设备为当前交互生成的随机数s1、用户属性信息和应用属性信息;所述用户属性信息包括用户名、用户密码和终端设备标识;所述应用属性信息包括应用的证书信息码和应用标识码;
s2、所述应用管理服务器根据应用私钥请求消息,对所述应用私钥请求的合法性进行验证,如果合法,则采用加密传输的方式将所述应用私钥发送给所述终端设备,否则,拒绝所述应用私钥请求。
3.根据权利要求2所述的方法,其特征在于,步骤s2中对所述应用私钥请求的合法性进行验证包括:
x1、所述应用管理服务器判断所述应用私钥请求携带的所述随机数s1是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤x2,否则,判定所述应用私钥请求非法;
x2、所述应用管理服务器判断是否满足:所述应用私钥请求携带的证书信息码与当前保存的对应应用的证书信息码一致,且所述应用私钥请求携带的用户密码与当前保存的对应用户的用户密码一致,则判断所述应用私钥请求合法,否则,判断所述应用私钥请求非法。
4.根据权利要求2所述的方法,其特征在于,步骤s2中所述采用加密传输的方式将所述应用私钥发送给所述终端设备包括:
所述应用管理服务器利用所述应用私钥、所述证书信息码、所述应用标识码、所述终端设备标识和所述随机数s1,生成应用市场初始签名SigAM;将所述应用市场初始签名SigAM加密后发送给所述终端设备;
所述终端设备对所述SigAM解密后,判断其中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述SigAM携带的所述应用私钥,否则,判定所述应用私钥的获取失败。
5.根据权利要求1所述的方法,其特征在于,向所述应用管理服务器申请应用功能加载授权包括:
y1、所述终端设备为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;
y2、所述应用管理服务器判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤y3,否则,拒绝所述应用功能加载授权,结束所述申请应用功能加载授权的过程;
y3、所述应用管理服务器根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果一致,则采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2;否则,拒绝所述应用功能加载授权;
y4、所述终端设备判断所述应用功能加载授权消息中携带的随机数是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,否则,判定所述应用功能加载授权获取失败。
6.根据权利要求4所述的方法,其特征在于,向所述应用管理服务器申请应用功能加载授权包括:
y1、所述终端设备为当前交互生成随机数s2,向所述应用管理服务器发送功能加载授权请求,所述功能加载授权请求携带对所述随机数s2、所述应用的半可信加载特征字符以及所述应用市场初始签名SigAM一起加密后的密文;
y2、所述应用管理服务器判断所述功能加载授权请求携带的随机数s2是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤y3,否则,拒绝所述应用功能加载授权,结束所述应用功能加载授权的申请过程;
y3、所述应用管理服务器判断所述功能加载授权请求携带的所述应用市场初始签名SigAM是否有效,如果是,则执行步骤y4,否则,拒绝所述应用功能加载授权,结束所述应用功能加载授权的申请过程;
y4、所述应用管理服务器根据所述功能加载授权请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则为所述终端设备生成应用市场增强签名SigASE,并采用加密传输的方式向所述终端设备发送应用功能加载授权消息,所述应用功能加载授权消息中携带所述随机数s2和所述应用市场增强签名SigASE;否则,拒绝所述应用功能加载授权;
y5、所述终端设备判断所述应用功能加载授权消息中携带的所述随机数s2是否为本终端针对所述应用最新生成的随机数,如果是,则判定成功获取所述应用功能加载授权,保存所述应用市场增强签名SigASE,否则,判定所述应用功能加载授权获取失败。
7.根据权利要求1所述的方法,其特征在于,向所述应用管理服务器申请所述应用私钥对应的解密密钥包括:
z1、所述终端设备向所述应用管理服务器发送解密密钥请求;所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、终端设备标识和应用标识码一起加密后的密文;
z2、所述应用管理服务器判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用最新生成的随机数,如果是,则执行步骤z3,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
z3、所述应用管理服务器根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述解密密钥;否则,拒绝所述解密密钥请求;
z4、所述终端设备判断所述解密密钥请求成功消息中携带的所述随机数s3是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,否则,判定所述解密密钥请求成功获取失败。
8.根据权利要求6所述的方法,其特征在于,向所述应用管理服务器申请所述应用私钥对应的解密密钥包括:
z1、所述终端设备为当前交互生成随机数s3,向所述应用管理服务器发送解密密钥请求,所述解密密钥请求携带对所述随机数s3、所述应用的半可信加载特征字符、所述应用市场初始签名SigAM和所述应用市场增强签名SigASE一起加密后的密文;
z2、所述应用管理服务器判断所述解密密钥请求携带的随机数s3是否为所述终端设备针对所述应用新生成的随机数,如果是,则执行步骤z3,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
z3、所述应用管理服务器判断所述解密密钥请求携带的所述应用市场初始签名SigAM和所述应用市场增强签名SigASE是否有效,如果是,则执行步骤z4,否则,否则,拒绝所述解密密钥请求,结束所述解密密钥的申请过程;
z4、所述应用管理服务器根据所述解密密钥请求携带的半可信加载特征字符,确定出相应的开发者签名,判断所确定出的开发者签名是否与当前保存的所述应用的开发者签名一致,如果是,则为所述终端设备生成新的应用市场增强签名,并采用加密传输的方式向所述终端设备发送解密密钥请求成功消息,所述解密密钥请求成功消息中携带所述随机数s3和所述新的应用市场增强签名;否则,拒绝所述解密密钥请求;
z5、所述终端设备判断所述解密密钥请求成功消息中携带的所述随机数s3是否为本终端针对所述应用最新生成的随机数,如果是,则保存所述解密密钥请求成功消息携带的所述解密密钥,并将当前保存的所述应用的应用市场增强签名更新为所述新的应用市场增强签名,否则,判定所述解密密钥请求成功获取失败。
9.一种软件防破解系统,其特征在于,包括:终端设备和应用管理服务器,其中,终端设备,用于在需要安装应用的主应用文件时,向应用管理服务器获取应用私钥,如果获取失败,则停止所述安装;当首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请应用功能加载授权,在获得所述授权后加载所述应用的类SEC文件,利用所述应用私钥对所述SEC文件加密,保存所得到的加密文件FSEC,并删除所述应用私钥和所述SEC文件的明文;当非首次接收到对所述应用的功能执行命令时,向所述应用管理服务器申请所述应用私钥对应的解密密钥,利用申请到的所述解密密钥对所述加密文件FSEC解密,获得所述SEC文件的明文并加载,在所述加载结束后删除所述解密密钥和所述SEC文件的明文。
10.根据权利要求9所述的系统,其特征在于,所述终端设备,用于向所述应用管理服务器发送应用私钥请求,所述应用私钥请求包含所述终端设备为当前交互生成的随机数s1、用户属性信息和应用属性信息;所述用户属性信息包括用户名、用户密码和终端设备标识;所述应用属性信息包括应用的证书信息码和应用标识码;
所述应用管理服务器,用于根据应用私钥请求消息,对所述应用私钥请求的合法性进行验证,如果合法,则采用加密传输的方式将所述应用私钥发送给所述终端设备,否则,拒绝所述应用私钥请求。
CN201610408988.4A 2016-06-13 2016-06-13 软件防破解方法和系统 Active CN106096336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610408988.4A CN106096336B (zh) 2016-06-13 2016-06-13 软件防破解方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610408988.4A CN106096336B (zh) 2016-06-13 2016-06-13 软件防破解方法和系统

Publications (2)

Publication Number Publication Date
CN106096336A true CN106096336A (zh) 2016-11-09
CN106096336B CN106096336B (zh) 2019-01-29

Family

ID=57228863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610408988.4A Active CN106096336B (zh) 2016-06-13 2016-06-13 软件防破解方法和系统

Country Status (1)

Country Link
CN (1) CN106096336B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810894A (zh) * 2018-05-31 2018-11-13 康键信息技术(深圳)有限公司 终端授权方法、装置、计算机设备和存储介质
CN109684790A (zh) * 2018-12-26 2019-04-26 佛山市瑞德物联科技有限公司 软件启动方法、软件授权验证方法、设备和存储介质
CN112398818A (zh) * 2020-11-02 2021-02-23 深圳数联天下智能科技有限公司 一种软件激活方法及其相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101957903A (zh) * 2010-09-13 2011-01-26 中兴通讯股份有限公司 一种保护类文件的方法和装置
CN102694794A (zh) * 2012-05-06 2012-09-26 北京深思洛克软件技术股份有限公司 一种用于安卓应用程序的场景信息保护方法
JP2012215973A (ja) * 2011-03-31 2012-11-08 Hitachi Solutions Ltd 情報漏洩防止方法
CN103595730A (zh) * 2013-11-28 2014-02-19 中国科学院信息工程研究所 一种密文云存储方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101957903A (zh) * 2010-09-13 2011-01-26 中兴通讯股份有限公司 一种保护类文件的方法和装置
JP2012215973A (ja) * 2011-03-31 2012-11-08 Hitachi Solutions Ltd 情報漏洩防止方法
CN102694794A (zh) * 2012-05-06 2012-09-26 北京深思洛克软件技术股份有限公司 一种用于安卓应用程序的场景信息保护方法
CN103595730A (zh) * 2013-11-28 2014-02-19 中国科学院信息工程研究所 一种密文云存储方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810894A (zh) * 2018-05-31 2018-11-13 康键信息技术(深圳)有限公司 终端授权方法、装置、计算机设备和存储介质
CN108810894B (zh) * 2018-05-31 2023-08-25 康键信息技术(深圳)有限公司 终端授权方法、装置、计算机设备和存储介质
CN109684790A (zh) * 2018-12-26 2019-04-26 佛山市瑞德物联科技有限公司 软件启动方法、软件授权验证方法、设备和存储介质
CN112398818A (zh) * 2020-11-02 2021-02-23 深圳数联天下智能科技有限公司 一种软件激活方法及其相关装置
CN112398818B (zh) * 2020-11-02 2023-03-07 深圳数联天下智能科技有限公司 一种软件激活方法及其相关装置

Also Published As

Publication number Publication date
CN106096336B (zh) 2019-01-29

Similar Documents

Publication Publication Date Title
CN103812871B (zh) 一种基于移动终端应用程序安全应用的开发方法及系统
CN102195957B (zh) 一种资源共享方法、装置及系统
CN103138939B (zh) 云存储模式下基于可信平台模块的密钥使用次数管理方法
CN108566381A (zh) 一种安全升级方法、装置、服务器、设备和介质
CN106453361B (zh) 一种网络信息的安全保护方法及系统
CN105260663A (zh) 一种基于TrustZone技术的安全存储服务系统及方法
EP2495932A1 (en) Digital rights management using trusted processing techniques
EP2887576A1 (en) Software key updating method and device
CN105471833A (zh) 一种安全通讯方法和装置
CN105306211B (zh) 一种客户端软件的身份认证方法
CN103974248B (zh) 在能力开放系统中的终端安全性保护方法、装置及系统
CN104767731A (zh) 一种Restful移动交易系统身份认证防护方法
CN107918731A (zh) 用于控制对开放接口进行访问的权限的方法和装置
CN112861089A (zh) 授权认证的方法、资源服务器、资源用户端、设备和介质
CN113114668A (zh) 一种信息传输方法、移动终端、存储介质及电子设备
CN102333068B (zh) 一种基于ssh、sftp隧道智能管控系统及方法
CN102264068B (zh) 共享密钥协商方法与系统、网络平台及终端
CN112559991A (zh) 系统安全登录方法、装置、设备及存储介质
CN106096336B (zh) 软件防破解方法和系统
WO2019085311A1 (zh) 云平台专有网络间安全互联方法、装置、设备及存储介质
CN101938563B (zh) 一种sim卡信息的保护方法、系统及移动终端
CN110572392A (zh) 一种基于Hyperledger网络的身份认证方法
CN109873818A (zh) 一种防止非法访问服务器的方法及系统
CN104901967A (zh) 信任设备的注册方法
CN110807210B (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
GR01 Patent grant
GR01 Patent grant