掌桥专利:专业的专利平台
掌桥专利
首页

一种防破解方法及装置

文献发布时间:2023-06-19 11:52:33


一种防破解方法及装置

本申请要求于2019年12月31日提交国家知识产权局、申请号为201911418601.3、申请名称为“一种防破解方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及计算机技术领域,尤其涉及一种防破解方法及装置。

背景技术

应用(application,APP)厂商在将APP出售给使用者之后,会采用一些额外的措施APP的使用权限,也就是进行APP防破解的约束。目前,常用的APP防破解的手段有两种:

一、采用通用串行总线(universal serial bus,USB)狗的方式进行保护,每个APP购买者在购买APP的同时,APP厂商会附带一个与之匹配的USB狗。APP购买者使用APP时,将USB狗插在APP安装所在的计算机上,APP才能正常运行。具体方式如图1所示,APP中集成有加密狗代理,在APP运行过程中,加密狗代理会向USB狗请求指纹(如:预期的字符串或数据等),USB狗接收到该请求后,生成指纹,并将生成的指纹反馈给加密狗代理,若加密狗代理收到的指纹满足预设条件,则本次操作合法,APP正常运行。

二、APP厂商将APP与指定硬件信息进行绑定,只允许在指定硬件信息的计算机上运行。具体方式是:APP使用者将待安装APP的计算机硬件信息上报给APP厂商,APP厂商将硬件信息写入的APP license,APP使用者将绑定有硬件信息的license输入APP,APP读取运行环境中的硬件信息,并与存储的license中的硬件信息进行比对,若发现不一致则停止激活或运行。

目前,随着计算机技术和通信技术的发展,移动边缘计算(mobile edgecomputing,MEC)成为第五代(5th generation,5G)移动网络的关键技术。在MEC场景下,APP厂商会将APP部署在运营商提供的移动边缘平台(mobile edge platform,MEC)上,此时APP厂商也存在同样的APP防破解诉求。如果仍然采用以上两种方案进行保护,则存在以下问题:1、USB狗需要硬件USB口,在多APP共同部署在MEP上时,服务器提供的USB口有限,无法满足所有APP的防破解要求。2、MEC场景,APP会部署在虚拟机(virtual machine,VM)或容器中,VM和容器均会发生迁移,此时服务器的硬件信息无法进行绑定,即现有两种防破解手段均不适用于MEC场景下的APP防破解。

发明内容

本申请提供一种防破解方法及装置,解决了MEC场景下APP防破解的问题。

为达到上述目的,本申请采用如下技术方案:

第一方面,本申请提供了一种防破解方法,所述方法包括:边缘狗模块接收用于请求第一消息认证码(message authentication code,MAC)的、包括APP的运行环境信息的第一请求,根据APP的运行环境信息,计算得到用于验证边缘狗模块是否合法的第一MAC,并发送第一MAC。

可替换的,边缘狗模块还可以采用非对称密钥方式利用边缘狗模块的私钥对APP的运行环境信息进行签名,并发送签名后的信息,以便代理模块或者APP接收到签名后的信息后,根据边缘狗模块的公钥对签名后的信息后进行解密处理,根据解密后的信息验证边缘狗模块是否合法,根据边缘狗模块的合法情况对APP执行相应操作。

基于第一方面所述的方法,可以由边缘狗模块在接收到请求MAC的请求后,根据APP的运行环境信息生成MAC,并将MAC反馈给对端,如:代理模块或者APP,以便代理模块或者APP比较自身生成的MAC以及接收到的MAC,验证边缘狗模块是否合法,如:当代理模块生成的MAC以及边缘狗模块生成的MAC相同,表示边缘狗模块是合法的,可以对APP执行相应操作。如此,将边缘狗模块与APP的运行环境绑定,合法使用者只有在允许的运行环境上运行APP时边缘狗模块才能计算出期望的MAC,验证成功,而非法使用者即使获取到了该APP,也会因未在允许的运行环境上运行APP而计算出与接收到的MAC不同的MAC,验证失败,无法盗用该APP。与现有技术相比,第一方面提供的方法可以保证MEC场景下APP使用的安全性。

第二方面,本申请提供了一种防破解方法,所述方法还包括:边缘狗模块接收用于请求获取第一MAC的、且包括第四MAC以及APP的运行环境信息的第一请求,第四MAC用于验证边缘狗模块是否合法;边缘狗模块根据APP的运行环境信息,计算得到第一MAC,比较第一MAC和第四MAC,发送第一请求的响应。其中,当第一MAC和第四MAC相同时,第一请求的响APP于指示边缘狗模块是合法的,当第一MAC和第四MAC不同时,第一请求的响APP于指示边缘狗模块是非法的。

基于第二方面所述的方法,可以由边缘狗模块在接收到获取MAC的请求后,根据APP的运行环境信息生成MAC,并将生成的MAC与代理模块生成的MAC进行比较,验证边缘狗模块是否合法,如:当代理模块生成的MAC以及边缘狗模块生成的MAC相同,表示边缘狗模块是合法的,可以对APP执行相应操作。如此,将边缘狗模块与APP的运行环境绑定,合法使用者只有在允许的运行环境上运行APP时边缘狗模块才能计算出期望的MAC,验证成功,而非法使用者即使获取到了该APP,也会因未在允许的运行环境上运行APP而计算出与接收到的MAC不同的MAC,验证失败,无法盗用该APP。与现有技术相比,第二方面提供的方法可以保证MEC场景下APP使用的安全性。

一种可能的设计中,边缘狗模块根据APP的运行环境信息,计算得到第一MAC包括:边缘狗模块将APP的运行环境信息作为输入参数,计算得到第一MAC。

基于该可能的设计,可以根据APP的运行环境信息衍生出第一MAC,将APP的运行环境信息与第一MAC绑定,以便在APP运行在允许的环境时,边缘狗模块生成与代理模块生成的MAC一致的MAC,保证APP的正常运行,提高APP在MEC场景下的安全性。

一种可能的设计中,所述方法还包括:边缘狗模块确定APP的运行环境信息与表征APP合法的运行环境的预设的运行环境信息匹配。

基于该可能的设计,可以当APP在允许的环境运行时生成第一MAC,进而基于生成的第一MAC对APP的第一操作进行合法性验证,避免因APP未部署在允许的运行环境上而仍执行本申请上述方面提供的防破解方法所带来的功耗。

一种可能的设计中,边缘狗模块根据APP的运行环境信息,计算得到第一MAC包括:边缘狗模块根据APP的运行环境信息和安全参数,计算得到第一MAC。

基于该可能的设计,边缘狗模块除将APP的运行环境信息与APP绑定之外,还可以将安全参数与APP绑定,基于安全参数、APP的运行环境信息共同计算出用于验证APP的操作合法性的MAC,保证只有拥有合法的安全参数以及在指定运行环境上运行APP的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的安全参数以及未在指定的运行环境上运行APP,无法计算出与接收到的MAC相同的MAC,验证失败,无法盗用该APP。该可能的设计基于多种参数计算MAC,提高MEC场景下APP使用的安全等级。

第三方面,本申请提供了一种防破解方法,所述方法包括:边缘狗模块接收用于请求第一MAC的第一请求,根据安全参数,计算得到用于验证边缘狗模块是否合法的第一MAC,并发送第一MAC。

可替换的,边缘狗模块还可以采用非对称密钥方式利用边缘狗模块的私钥对安全参数进行签名,并发送签名后的信息,以便代理模块或者APP接收到签名后的信息后,根据边缘狗模块的公钥对签名后的信息后进行解密处理,根据解密后的信息验证边缘狗模块是否合法,根据边缘狗模块的合法情况对APP执行相应操作。

基于第三方面所述的方法,可以由边缘狗模块在接收到获取MAC的请求后,根据安全参数生成MAC,并将生成的MAC反馈给对端,如:代理模块或者APP,以便代理模块或者APP比较代理模块生成的MAC以及边缘狗模块生成的MAC,验证边缘狗模块是否合法,如:当代理模块生成的MAC以及边缘狗模块生成的MAC相同,表示边缘狗模块是合法的,可以对APP执行相应操作。如此,合法使用者通过边缘狗模块使用合法的安全参数计算出期望的MAC,在保证边缘狗模块的合法的情况下,对APP执行相应操作。实现只有拥有合法的安全参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的安全参数生成与代理模块生成的MAC一致的MAC,导致验证失败,无法盗用该APP。与现有技术相比,第三方面提供的方法保证MEC场景下APP使用的安全性。

第四方面,本申请提供了一种防破解方法,所述方法还包括:边缘狗模块接收包括第四MAC的第一请求,第四MAC用于验证边缘狗模块是否合法;边缘狗模块根据安全参数,计算得到第一MAC,比较第一MAC和第四MAC,发送第一请求的响应。其中,当第一MAC和第四MAC相同时,第一请求的响APP于指示第一操作是合法的,第一操作成功,当第一MAC和第四MAC不同时,第一请求的响APP于指示第一操作时不合法的,第一操作失败。

基于第四方面所述的方法,可以由边缘狗模块在接收到获取MAC的请求后,根据安全参数生成MAC,并将生成的MAC与代理模块生成的MAC进行比较,验证边缘狗模块是否合法,如:当代理模块生成的MAC以及边缘狗模块生成的MAC相同,表示边缘狗模块是合法的,可以对APP执行相应操作。如此,合法使用者可以通过边缘狗模块使用合法的安全参数计算出期望的MAC,在保证边缘狗模块的合法的情况下,对APP执行相应操作。实现只有拥有合法的安全参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的安全参数而生成与代理模块生成的MAC一致的MAC,导致验证失败,无法盗用该APP。与现有技术相比,第四方面提供的方法可以保证MEC场景下APP使用的安全性。

一种可能的设计中,边缘狗模块根据安全参数,计算得到第一MAC包括:边缘狗模块将安全参数作为输入参数,计算得到第一MAC。

基于该可能的设计,可以根据安全参数衍生出第一MAC,将安全参数与第一MAC绑定,以便在边缘狗模块拥有合法的安全参数时生成与代理模块生成的MAC一致的MAC,保证APP的正常运行,提高APP在MEC场景下的安全性。

一种可能的设计中,边缘狗模块根据安全参数,计算得到第一MAC包括:边缘狗模块根据安全参数和APP的运行环境信息,计算得到第一MAC。

基于该可能的设计,边缘狗模块除将安全参数与APP绑定之外,还可以将APP的运行环境信息与APP绑定,基于安全参数、APP的运行环境信息共同计算出用于验证APP的操作合法性的MAC,保证只有拥有合法的安全参数以及在指定运行环境上运行APP的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的安全参数以及未在指定的运行环境上运行APP,无法计算出与接收到的MAC相同的MAC,验证失败,无法盗用该APP。该可能的设计基于多种参数计算MAC,提高MEC场景下APP使用的安全等级。

一种可能的设计中,上述边缘狗模块根据安全参数和APP的运行环境信息,计算得到第一MAC包括:边缘狗模块将安全参数和APP的运行环境信息作为输入参数,计算得到第一MAC。

基于该可能的设计,可以根据安全参数和APP的运行环境信息衍生出第一MAC,将安全参数和APP的运行环境信息与第一MAC绑定,以便在边缘狗模块拥有合法的安全参数时以及APP运行在允许的环境时,生成与代理模块生成的MAC一致的MAC,保证APP的正常运行,提高APP在MEC场景下的安全性。

一种可能的设计中,上述APP的运行环境信息包括以下任意一项或多项:APP所在移动边缘平台(mobile edge platform,MEP)的标识、APP所在虚拟机(virtual machine,VM)或者容器的信息、所述APP运行平台的可信平台模块(trusted platform module,TPM)信息、所述APP运行所在的VM或者容器所在硬件信息。

基于该可能的设计,可以将MEP的标识、APP所在虚拟机/容器的信息、APP运行平台的TPM信息、APP运行所在的VM或者容器所在硬件信息作为APP的运行环境信息,增加APP的运行环境信息的多样性,利用APP的多样化的运行环境信息提高APP在MEC上运行的安全等级。

一种可能的设计中,上述安全参数由APP的厂商预先配置给边缘狗模块。

基于该可能的设计,可以由APP的厂商将安全参数预先配置给边缘狗模块,由第三方厂商授权使用合法的安全参数,防止边缘狗模块被未经第三方厂商授权使用的其他人复制,提高通过边缘狗模块验证APP合法使用的安全等级。

一种可能的设计中,所述方法还包括:若第一请求还携带激活APP指示,则边缘狗判断APP的激活次数小于最大允许激活次数。

基于该可能的设计,可以在APP的激活次数小于最大允许激活次数的情况下,执行本申请上述方面提供的防破解方法,避免因APP已无剩余激活次数而仍执行本申请上述方面提供的防破解方法所带来的功耗。

一种可能的设计中,所述方法还包括:边缘狗模块接收用于指示APP被成功激活的激活成功消息,根据激活成功消息,更新APP的激活次数,将APP的激活次数加1。

基于该可能的设计,可以在APP被成功激活时,更新APP的激活次数,将APP的激活次数加1,保证本地存储的APP的激活次数及时得到更新,与APP实际被成功激活的次数一致,提高对APP的激活次数监控的准确性。

一种可能的设计中,所述方法还包括:边缘狗模块接收来自代理模块的包括APP的激活次数的状态同步请求,将本地存储的APP的激活次数更新为APP的激活次数。

基于该可能的设计,可以同步边缘狗模块与代理模块中存储的APP的激活次数,使二者对APP的激活次数理解一致,避免因二者对APP的激活次数理解不一致所导致的验证失败的问题。

一种可能的设计中,所述方法还包括:边缘狗模块接收用于请求去激活APP的、包括第二MAC的第二请求,第二MAC用于验证去激活APP的操作是否合法,根据安全参数,计算得到第三MAC,比较第二MAC和第三MAC,发送去激活响应。其中,当第二MAC和第三MAC相同时,去激活响应用于指示APP去激活成功,当第二MAC和第三MAC不同时,去激活响应用于指示APP去激活失败。

基于该可能的设计,可以由边缘狗模块根据安全参数校验去激活APP的操作是否合法,将安全参数与去激活APP的操作绑定,使得只有拥有合法的安全参数的使用者才能成功去激活APP,避免非法人员恶意去激活APP所带来的问题。

一种可能的设计中,APP与代理模块合一部署,边缘狗模块接收第一请求包括:边缘狗模块接收来自代理模块的第一请求。结合第一方面至第二方面中的任一方面或者第一方面至第二方面中任一方面的任一可能的设计,边缘狗模块发送第一MAC包括:边缘狗模块向代理模块发送第一MAC。结合第三方面至第四方面中的任一方面或者第三方面至第四方面中任一方面的任一可能的设计,边缘狗模块发送第一请求的响应包括:边缘狗模块向代理模块发送第一请求的响应。

基于该可能的设计,可以在代理模块与APP合一部署的情况下,边缘狗模块模块接收来自代理模块的第一请求,以及向代理模块发送第一MAC/第一请求的响应,即通过边缘狗模块与APP中的代理模块的交互实现对APP的第一操作进行验证,简单易行。

一种可能的设计中,APP与代理模块分开部署,边缘狗模块接收第一请求包括:边缘狗接收来自APP的第一请求。结合第一方面至第二方面中的任一方面或者第一方面至第二方面中任一方面的任一可能的设计,边缘狗模块发送第一MAC包括:边缘狗模块向APP发送第一MAC。结合第三方面至第四方面中的任一方面或者第三方面至第四方面中任一方面的任一可能的设计,边缘狗模块发送第一请求的响应包括:边缘狗模块向APP发送第一请求的响应。

基于该可能的设计,可以在代理模块与APP分开部署的情况下,边缘狗模块接收来自APP的第一请求,以及向APP发送第一MAC/第一请求的响应,无需边缘狗模块通过与代理模块的交互对APP的第一操作进行验证,降低代理模块的功耗。

第五方面,本申请提供一种防破解方法,所述方法包括:边缘狗模块接收用于请求去激活APP的、包括第二MAC的第二请求,第二MAC用于验证去激活APP的操作是否合法,根据安全参数,计算得到第三MAC,比较第二MAC和第三MAC,发送去激活响应。其中,当第二MAC和第三MAC相同时,去激活响应用于指示APP去激活成功,当第二MAC和第三MAC不同时,去激活响应用于指示APP去激活失败。

基于第五方面提供的方法,可以由边缘狗模块根据安全参数校验去激活APP的操作是否合法,将安全参数与去激活APP的操作绑定,使得只有拥有合法的安全参数的使用者才能成功去激活APP,避免非法人员恶意去激活APP所带来的问题。

一种可能的设计中,APP与代理模块合一部署,边缘狗模块接收第二请求包括:边缘狗模块接收来自代理模块的第二请求,边缘狗模块发送去激活响应包括:边缘狗模块向代理模块发送去激活响应。

基于该可能的设计,可以在代理模块与APP合一部署的情况下,边缘狗模块模块接收来自代理模块的第二请求,以及向代理模块发送去激活响应,通过边缘狗模块与APP中的代理模块的交互实现对APP的去激活操作进行验证,简单易行。

一种可能的设计中,APP模块与代理模块分开部署;边缘狗模块接收第二请求包括:边缘狗模块接收来自APP的第二请求,边缘狗模块发送去激活响应包括:边缘狗模块向APP发送去激活响应。

基于该可能的设计,可以在代理模块与APP分开部署的情况下,边缘狗模块接收来自APP的第二请求,以及向APP发送去激活响应,无需边缘狗模块通过与代理模块的交互对APP的去激活操作进行验证,降低代理模块的功耗。

第六方面,本申请提供一种边缘狗模块,该边缘狗模块可以为用于实现第一方面至第五方面中任一方面或者第一方面至第五方面中任一方面的任一可能的设计所述的方法的功能模块。该边缘狗模块可以实现上述第一方面至第五方面中任一方面或者第一方面至第五方面中任一方面的任一可能的设计中边缘狗模块所指定的功能,所述功能可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。该边缘狗模块包括:接收单元,处理单元、发送单元;

一种可能的设计中,接收单元,用于接收用于请求第一MAC的、包括APP的运行环境信息的第一请求;处理单元,用于根据APP的运行环境信息,计算得到用于验证边缘狗模块是否合法的第一MAC;发送单元,用于发送第一MAC。

又一种可能的设计中,接收单元,用于接收用于请求获取第一MAC的、且包括第四MAC的第一请求,第四MAC用于验证边缘狗模块是否合法;处理单元,用于根据APP的运行环境信息,计算得到第一MAC,比较第一MAC和第四MAC;发送单元,用于发送第一请求的响应。其中,当第一MAC和第四MAC相同时,第一请求的响APP于指示边缘狗模块是合法的,当第一MAC和第四MAC不同时,第一请求的响APP于指示边缘狗模块是非法的。

一种可能的设计中,接收单元,用于接收用于请求第一MAC的第一请求;处理单元,用于根据安全参数,计算得到用于验证边缘狗模块是否合法的第一MAC;发送单元,用于发送第一MAC。

又一种可能的设计中,接收单元,用于接收用于请求获取第一MAC的、且包括第四MAC的第一请求,第四MAC用于验证边缘狗模块是否合法;处理单元,用于根据安全参数,计算得到第一MAC,比较第一MAC和第四MAC;发送单元,用于发送第一请求的响应。其中,当第一MAC和第四MAC相同时,第一请求的响APP于指示边缘狗模块是合法的,当第一MAC和第四MAC不同时,第一请求的响APP于指示边缘狗模块是非法的。

再一种可能的设计中,接收单元,用于接收用于请求去激活APP的、包括第二MAC的第二请求,第二MAC用于验证去激活APP的操作是否合法;处理单元,用于根据安全参数,计算得到第三MAC,比较第二MAC和第三MAC;发送单元,用于发送去激活响应。其中,当第二MAC和第三MAC相同时,去激活响应用于指示APP去激活成功,当第二MAC和第三MAC不同时,去激活响应用于指示APP去激活失败。

其中,安全参数、APP的运行环境信息的相关描述可参照上述第一方面至第五方面中任一方面的任一可能的设计中所述;接收单元、处理单元、发送单元的具体执行过程可参照上述第一方面至第五方面中任一方面的任一可能的设计中所述的相应动作,不予赘述。

第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质可以为可读的非易失性存储介质,该计算机可读存储介质存储有计算机指令或者程序,当其在计算机上运行时,使得计算机执行上述第一方面至第五方面中任一方面或者第一方面至第五方面中任一方面的任一可能的设计所述的防破解方法。

第八方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面至第五方面中任一方面或者第一方面至第五方面中任一方面的任一可能的设计所述的防破解方法。

其中,第六方面至第八方面中任一种设计方式所带来的技术效果可参见上述第一方面至第五方面中任一方面或者第一方面至第五方面中任一方面的任一可能的设计所带来的技术效果,不予赘述。

第九方面,本申请提供一种防破解方法,所述方法包括:代理模块向边缘狗模块发送用于请求第一MAC的、包括APP的运行环境信息的第一请求;代理模块接收来自边缘狗模块的用于验证边缘狗模块是否合法的第一MAC;代理模块根据APP的运行环境信息,计算得到第四MAC,比较第一MAC与第四MAC,若第一MAC与第四MAC相同,则确定边缘狗模块合法,若第一MAC与第四MAC不同,则确定边缘狗模块非法。

可替换的,代理模块还可以接收到边缘狗模块利用边缘狗模块的私钥对APP的运行环境信息进行签名后的信息,根据边缘狗模块的公钥对签名后的信息后进行解密处理,根据解密后的信息验证边缘狗模块是否合法,根据边缘狗模块的合法情况对APP执行相应操作。

基于第九方面所述的方法,可以由代理模块在接收到获取第一MAC的、包括APP的运行环境信息的请求后,根据APP的运行环境信息的自身生成一个MAC,并比较自身生成的MAC以及接收到的MAC,验证边缘狗模块是否合法,如:当自身生成的MAC与接收到的MAC相同时,表示边缘狗模块是合法的,对APP执行相应操作。如此,将边缘狗模块与APP的运行环境绑定,合法使用者只有在允许的运行环境上运行APP时边缘狗模块才能计算出期望的MAC,验证成功,而非法使用者即使获取到了该APP,也会因未在允许的运行环境上运行APP而计算出与接收到的MAC不同的MAC,验证失败,无法盗用该APP。与现有技术相比,第九方面提供的方法可以保证MEC场景下APP使用的安全性。

第十方面,本申请提供一种防破解方法,所述方法包括:代理模块向边缘狗模块发送用于请求第一MAC的第一请求,接收来自边缘狗模块的用于验证边缘狗模块是否合法的第一MAC,根据安全参数计算得到第四MAC,比较第一MAC与第四MAC,若第一MAC与第四MAC相同,则确定边缘狗模块合法,反之,则确定边缘狗模块非法。

可替换的,代理模块还可以接收到边缘狗模块利用边缘狗模块的私钥对安全参数进行签名后的信息,根据边缘狗模块的公钥对签名后的信息后进行解密处理,根据解密后的信息验证边缘狗模块是否合法,根据边缘狗模块的合法情况对APP执行相应操作。

基于第十方面所述的方法,可以由代理模块在接收到获取第一MAC的请求后,根据安全参数生成一个MAC,并比较自身生成的MAC以及接收到的MAC,验证边缘狗模块是否合法,如:当自身生成的MAC与接收到的MAC相同时,表示边缘狗模块是合法的,对APP执行相应操作。如此,合法使用者通过边缘狗模块使用合法的安全参数计算出期望的MAC,在保证边缘狗模块的合法的情况下,对APP执行相应操作。实现只有拥有合法的安全参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的安全参数生成与代理模块生成的MAC一致的MAC,导致验证失败,无法盗用该APP。与现有技术相比,第十方面提供的方法保证MEC场景下APP使用的安全性。

一种可能的设计中,代理模块根据安全参数,计算得到第四MAC包括:代理模块将安全参数作为输入参数,计算得到第四MAC。

基于该可能的设计,可以根据安全参数衍生出第四MAC,将安全参数与第四MAC绑定,以便在代理模块拥有合法的安全参数时生成与代理模块生成的MAC一致的MAC,保证APP的正常运行,提高APP在MEC场景下的安全性。

一种可能的设计中,代理模块根据安全参数,计算得到第四MAC包括:代理模块根据安全参数和APP的运行环境信息,计算得到第四MAC。

基于该可能的设计,代理模块除将安全参数与APP绑定之外,还可以将APP的运行环境信息与APP绑定,基于安全参数、APP的运行环境信息共同计算出用于验证APP的操作合法性的MAC,保证只有拥有合法的安全参数以及在指定运行环境上运行APP的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的安全参数以及未在指定的运行环境上运行APP,无法计算出与接收到的MAC相同的MAC,验证失败,无法盗用该APP。该可能的设计基于多种参数计算MAC,提高MEC场景下APP使用的安全等级。

第十一方面,本申请提供一种防破解方法,代理模块接收来自APP的用于请求第四MAC的第三请求,根据安全参数,计算得到用于验证边缘狗模块是否合法的第四MAC,向APP发送第四MAC。

基于第十一方面所述的方法,代理模块在接收到获取第四MAC的请求后,根据安全参数自身生成一个MAC,并向APP发送生成的MAC,以便APP将代理模块生成的MAC发送给边缘狗模块,边缘狗模块比较代理模块生成的MAC以及边缘狗模块生成的MAC,验证边缘狗模块是否合法。如此,实现只有拥有合法的安全参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的安全参数生成与代理模块生成的MAC一致的MAC,导致验证失败,无法盗用该APP。与现有技术相比,第十方面提供的方法保证MEC场景下APP使用的安全性。

第十二方面,本申请提供一种防破解方法,代理模块接收来自APP的用于请求第四MAC的、包括APP的运行环境信息的第三请求,根据APP的运行环境信息,计算得到用于验证边缘狗模块是否合法的第四MAC,向APP发送第四MAC。

基于第十二方面所述的方法,代理模块在接收到获取第四MAC的请求后,根据APP的运行环境信息自身生成一个MAC,并向APP发送生成的MAC,以便APP将代理模块生成的MAC发送给边缘狗模块,边缘狗模块比较代理模块生成的MAC以及边缘狗模块生成的MAC,验证边缘狗模块是否合法。如此,将APP与APP的运行环境绑定,合法使用者只有在允许的运行环境上运行APP时才能计算出期望的MAC,验证成功,而非法使用者即使获取到了该APP,也会因未在允许的运行环境上运行APP而计算出与接收到的MAC不同的MAC,验证失败,无法盗用该APP。与现有技术相比,第九方面提供的方法可以保证MEC场景下APP使用的安全性。

一种可能的设计中,代理模块根据APP的运行环境信息,计算得到第四MAC包括:代理模块将APP的运行环境信息作为输入参数,计算得到第四MAC。

基于该可能的设计,可以根据APP的运行环境信息衍生出第四MAC,将APP的运行环境信息与第四MAC绑定,以便在APP运行在允许的环境时,代理模块生成与代理模块生成的MAC一致的MAC,保证APP的正常运行,提高APP在MEC场景下的安全性。

一种可能的设计中,所述方法还包括:代理模块确定APP的运行环境信息与表征APP合法的运行环境的预设的运行环境信息匹配。

基于该可能的设计,可以当APP在允许的环境运行时生成第四MAC,进而基于生成的第四MAC对APP的第一操作进行合法性验证,避免因APP未部署在允许的运行环境上而仍执行本申请上述方面提供的防破解方法所带来的功耗。

一种可能的设计中,代理模块根据APP的运行环境信息,计算得到第四MAC包括:代理模块根据APP的运行环境信息和安全参数,计算得到第四MAC。

基于该可能的设计,代理模块除将APP的运行环境信息与APP绑定之外,还可以将安全参数与APP绑定,基于安全参数、APP的运行环境信息共同计算出用于验证APP的操作合法性的MAC,保证只有拥有合法的安全参数以及在指定运行环境上运行APP的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的安全参数以及未在指定的运行环境上运行APP,无法计算出与接收到的MAC相同的MAC,验证失败,无法盗用该APP。该可能的设计基于多种参数计算MAC,提高MEC场景下APP使用的安全等级。

一种可能的设计中,上述代理模块根据安全参数和APP的运行环境信息,计算得到第四MAC包括:代理模块将安全参数和APP的运行环境信息作为输入参数,计算得到第四MAC。

基于该可能的设计,可以根据安全参数和APP的运行环境信息衍生出第四MAC,将安全参数和APP的运行环境信息与第四MAC绑定,以便在代理模块拥有合法的安全参数时以及APP运行在允许的环境时,生成与代理模块生成的MAC一致的MAC,保证APP的正常运行,提高APP在MEC场景下的安全性。

一种可能的设计中,安全参数由APP的厂商预先配置给边缘狗模块。

基于该可能的设计,可以由APP的厂商将安全参数预先配置给代理模块,由第三方厂商授权使用合法的安全参数,防止边缘狗模块被未经第三方厂商授权使用的其他人复制,提高通过边缘狗模块验证APP合法使用的安全等级。

一种可能的设计中,APP所在MEP的标识、APP所在VM或者容器的信息、所述APP运行平台的TPM信息、所述APP运行所在的VM或者容器所在硬件信息。

基于该可能的设计,可以将MEP的标识、APP所在虚拟机/容器的信息、APP运行平台的TPM信息、APP运行所在的VM或者容器所在硬件信息作为APP的运行环境信息,增加APP的运行环境信息的多样性,利用APP的多样化的运行环境信息提高APP在MEC上运行的安全等级。

一种可能的设计中,所述方法还包括:若第一请求还携带激活APP指示,代理模块判断APP的激活次数小于最大允许激活次数。

基于该可能的设计,可以在APP的激活次数小于最大允许激活次数的情况下,执行本申请上述方面提供的防破解方法,避免因APP已无剩余激活次数而仍执行本申请上述方面提供的防破解方法所带来的功耗。

一种可能的设计中,所述方法还包括:代理模块根据安全参数,计算得到用于验证去激活APP的操作是否合法的第二MAC,向边缘狗模块发送包括第二MAC的第二请求。或者,代理模块接收来自APP的用于请求去激活APP的第四请求,根据安全参数,计算得到用于验证去激活APP的操作是否合法的第二MAC,向APP发送第二MAC。

基于该可能的设计,可以由代理模块根据安全参数校验计算得到用于验证去激活APP的操作是否合法的MAC,如此,将安全参数与去激活APP的操作绑定,使得只有拥有合法的安全参数的使用者才能成功去激活APP,避免非法人员恶意去激活APP所带来的问题。

一种可能的设计中,结合第七方面至第十方面中的任一方面或者第七方面至第十方面中任一方面的任一可能的设计,所述方法还包括:代理模块向边缘狗模块发送状态同步请求,其中,状态同步请求包括APP的激活次数。

基于该可能的设计,可以同步边缘狗模块与代理模块中存储的APP的激活次数,使二者对APP的激活次数理解一致,避免因二者对APP的激活次数理解不一致所导致的验证失败的问题。

第十三方面,本申请提供一种代理模块,该代理模块可以为用于实现第九方面至第十二方面中任一方面或者第九方面至第十二方面中任一方面的任一可能的设计所述的方法的功能模块。该代理模块可以实现上述第九方面至第十二方面中任一方面或者第九方面至第十二方面中任一方面的任一可能的设计中代理模块所指定的功能,所述功能可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。该代理模块包括:接收单元,处理单元、发送单元;

一种可能的设计中,发送单元,用于向边缘狗模块发送用于请求第一MAC的、包括APP的运行环境信息的第一请求;接收单元,用于接收来自边缘狗模块的用于验证边缘狗模块是否合法的第一MAC;处理单元,用于根据APP的运行环境信息,计算得到第四MAC,比较第一MAC与第四MAC,若第一MAC与第四MAC相同,则确定边缘狗模块合法,若第一MAC与第四MAC不同,则确定边缘狗模块非法。

又一种可能的设计中,接收单元,用于接收来自APP的用于请求第四MAC的第三请求;处理单元,用于根据安全参数,计算得到用于验证边缘狗模块是否合法的第四MAC;发送单元,用于向APP发送第四MAC。

又一种可能的设计中,发送单元,用于向边缘狗模块发送用于请求第一MAC的第一请求;接收单元,用于接收来自边缘狗模块的用于验证边缘狗模块是否合法的第一MAC;处理单元,用于根据安全参数计算得到第四MAC,比较第一MAC与第四MAC,若第一MAC与第四MAC相同,则确定边缘狗模块合法,反之,则确定边缘狗模块非法。

再一种可能的设计中,接收单元,用于接收来自APP的用于请求第四MAC的、包括APP的运行环境信息的第三请求;处理单元,用于根据APP的运行环境信息,计算得到用于验证边缘狗模块是否合法的第四MAC;发送单元,用于向APP发送第四MAC。

其中,安全参数、APP的运行环境信息的相关描述可参照上述第九方面至第十二方面中任一方面的任一可能的设计中所述;接收单元、处理单元、发送单元的具体执行过程可参照上述第九方面至第十二方面中任一方面的任一可能的设计中的相应动作,不予赘述。

第十四方面,提供了一种计算机可读存储介质,该计算机可读存储介质可以为可读的非易失性存储介质,该计算机可读存储介质存储有计算机指令或者程序,当其在计算机上运行时,使得计算机执行上述第九方面至第十二方面中任一方面或者第九方面至第十二方面中任一方面的任一可能的设计所述的防破解方法。

第十五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第九方面至第十二方面中任一方面或者第九方面至第十二方面中任一方面的任一可能的设计所述的防破解方法。

其中,第十三方面至第十五方面中任一种设计方式所带来的技术效果可参见上述第九方面至第十二方面中任一方面或者第九方面至第十二方面中任一方面的任一可能的设计所带来的技术效果,不予赘述。

第十六方面,本申请还提供一种移动边缘主机,所述服务器包括一个或者多个处理器,存储器,所述一个或者多个处理器上运行有VM或者容器,所述一个或者多个容器包括代理模块以及边缘狗模块,代理模块与APP合一部署或者代理模块与APP分开部署;

边缘狗模块用于执行第一方面至第五方面中任一方面或者第一方面至第五方面中任一方面的任一可能的设计所述的防破解方法;

当所述代理模块与APP合一部署时,代理模块用于执行第九方面或第十方面或者第九方面的任一可能的设计或者第十方面的任一可能的设计所述的防破解方法。当所述代理模块与APP分开部署时,代理模块用于执行第十一方面或第十二方面或者第十一方面的任一可能的设计或者第十二方面的任一可能的设计所述的防破解方法。

第十七方面,本申请还提供一种防破解方法,所述方法由终端执行,该终端上部署有应用APP客户端,该方法包括:终端接收来自APP服务器的用于请求第一MAC的、携带MEP的标识第一请求,根据MEP的标识计算得到第一MAC,其中,第一MAC用于验证APP是否合法,终端向APP服务器发送第一MAC。

基于第十七方面所述的方法,终端可以计算得到用于校验APP是否合法的MAC,并向APP服务器提供校验MAC值,以便APP服务器根据自身计算的MAC与终端计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

一种可能的设计中,结合第十七方面,终端根据MEP的标识,计算得到第一MAC包括:终端根据MEP的标识和硬件安全参数,计算得到第一MAC,其中,硬件安全参数预先配置在网络功能虚拟化基础设施NFVI中,或,硬件安全参数预先配置在终端中。

基于该可能的设计,终端除将MEP的标识与APP绑定之外,还可以将硬件安全参数与APP绑定,基于硬件安全参数、MEP的标识共同计算出用于验证APP的合法性的MAC,保证只有拥有合法的硬件安全参数以及在指定MEP运行环境上运行APP的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的硬件安全参数以及未在指定的MEP运行环境上运行APP,无法计算出与接收到的MAC相同的MAC,验证失败,无法盗用该APP。该可能的设计基于多种参数计算MAC,提高APP使用的安全等级。

一种可能的设计中,结合第十七方面或第十七方面的任一可能的设计,硬件安全参数包括安全芯片标识ID、安全芯片预置参数、安全芯片中处理器ID中的一种或者多种参数,安全芯片预置参数包括随机数或者根秘钥。

基于该可能的设计,将硬件安全参数配置为安全芯片本身固有的参数,使硬件安全参数具有不变、且不可复制、不易破解的特性,使得根据硬件安全参数验证合法的APP也具备防复制和破解特性。

第十八方面,本申请提供一种防破解装置,该防破解装置可以为终端或者终端中的芯片或者片上系统,还可以为终端中用于实现本申请实施例所述的防破解方法的模块或者单元。该防破解装置可以实现上述各方面或者各可能的设计中终端所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。如:该防破解装置可以包括:代理模块、处理模块。进一步的,处理模块可以包括安全模块或者安全芯片,安全模块或者安全芯片可以预先配置硬件安全参数。

代理模块,用于接收来自APP服务器的用于请求第一MAC的、携带MEP的标识第一请求,其中,第一MAC用于验证APP是否合法。

处理模块,用于根据MEP的标识计算得到第一MAC,并通过代理模块向APP服务器发送第一MAC。

其中,该防破解装置的具体实现方式可以参考第十七方面或第十七方面的任一可能的设计提供的防破解方法中终端的行为功能,在此不再重复赘述。因此,该提供的防破解装置可以达到与第十七方面或者第十七方面的任一可能的设计相同的有益效果。

第十九方面,提供了一种防破解装置,该防破解装置可以为终端或者终端中的芯片或者片上系统。该防破解装置可以实现上述各方面或者各可能的设计中终端所执行的功能,所述功能可以通过硬件实现。一种可能的设计中,该防破解装置可以包括:处理器、通信接口以及安全芯片,安全芯片可以预先配置有硬件安全参数。处理器可以用于支持防破解装置实现上述第十七方面或者第十七方面的任一种可能的设计中所涉及的功能,例如:处理器用于通过通信接口接收来自APP服务器的用于请求第一MAC的、携带MEP的标识第一请求,根据MEP的标识计算得到第一MAC,并向APP服务器发送第一MAC。在又一种可能的设计中,防破解装置还可以包括存储器,存储器用于保存防破解装置必要的计算机执行指令和数据。当该防破解装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该防破解装置执行上述第十七方面或者第十七方面的任一种可能的设计所述的防破解方法。

第二十方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第十七方面或者上述方面的任一可能的设计所述的防破解方法。

第二十一方面,提供了一种包含指令的计算机程序产品,该计算机程序产品可以包括程序指令,当该计算机程序产品在计算机上运行时,使得计算机可以执行上述第十七方面或者上述方面的任一可能的设计所述的防破解方法。

第二十二方面,提供了一种芯片系统,该芯片系统包括处理器、通信接口;进一步的,还可以包括安全芯片,安全芯片可以预先配置有硬件安全参数。该芯片系统可以用于实现上述第十七方面或第十七方面的任一可能的设计中终端所执行的功能,例如处理器用于通过通信接口接收来自APP服务器的用于请求第一MAC的、携带MEP的标识第一请求,根据MEP的标识计算得到第一MAC,并向APP服务器发送第一MAC。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存程序指令和/或数据。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件,不予限制。

其中,第十九方面至第二十二方面中任一种设计方式所带来的技术效果可参见上述第十七方面或者第十七方面的任一可能的设计所带来的技术效果,不再赘述。

第二十三方面,本申请还提供一种防破解方法,所述方法应用于应用APP服务器,所述方法包括:APP服务器向终端发送第一请求,其中,第一请求用于请求第一消息认证码MAC;第一请求携带移动边缘平台MEP的标识;

APP服务器接收来自终端的第一MAC,第一MAC用于验证APP是否合法;

APP服务器获取第二MAC,第二MAC用于验证APP是否合法;

APP服务器比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

基于第二十三方面所述的方法,APP服务器可以从终端接收用于校验APP是否合法的MAC,根据获取到MAC与终端计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

一种可能的设计中,结合第二十三方面,APP服务器获取第二MAC,包括:APP服务器根据MEP的标识计算得到第二MAC。

基于该可能的设计,APP服务器将MEP的标识与APP绑定计算得到MAC,保证只有在指定MEP运行环境上运行APP的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因未在指定的MEP运行环境上运行APP,无法计算出与接收到的MAC相同的MAC,验证失败,无法盗用该APP。

一种可能的设计中,结合第二十三方面或第二十三方面的任一可能的设计,APP服务器根据MEP的标识计算得到第二MAC包括:APP服务器根据MEP的标识和硬件安全参数计算得到第二MAC,其中,APP服务器接收来自NFVI的硬件安全参数,或者,APP服务器接收来自终端的硬件安全参数。

基于该可能的设计,APP服务器除将MEP的标识与APP绑定之外,还可以将硬件安全参数与APP绑定,基于硬件安全参数、MEP的标识共同计算出用于验证APP的合法性的MAC,保证只有拥有合法的硬件安全参数以及在指定MEP运行环境上运行APP的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的硬件安全参数以及未在指定的MEP运行环境上运行APP,无法计算出与接收到的MAC相同的MAC,验证失败,无法盗用该APP。该可能的设计基于多种参数计算MAC,提高APP使用的安全等级。

一种可能的设计中,结合第二十三方面或第二十三方面的任一可能的设计,APP服务器获取第二MAC,包括:APP服务器发送第二请求,其中,第二请求用于请求第二MAC;APP服务器接收第二MAC。

基于该可能的设计,APP服务器可以从其他网元接收第二MAC,无需自身计算得到MAC,降低了APP服务器计算MAC带来的功率消耗。

一种可能的设计中,结合第二十三方面或第二十三方面的任一可能的设计,第二请求携带MEP的标识,或者,第二请求携带MEP的标识和硬件安全参数。

基于该可能的设计,APP服务器可以将MEP的标识和/或硬件安全参数发送给其他网元,便于其他网元根据MEP的标识和/或硬件安全参数计算得到MAC,提高APP校验的安全等级。

一种可能的设计中,结合第二十三方面或第二十三方面的任一可能的设计,APP服务器发送第二请求包括:APP向MEP发送第二请求;APP服务器接收第二MAC包括:APP服务器接收来自MEP的第二MAC;或者,APP服务器发送第二请求包括:APP向网络功能虚拟化基础设施NFVI发送第二请求;APP服务器接收第二MAC包括:APP服务器接收来自NFVI的第二MAC。

基于该可能的设计,APP服务器可以请求MEP或者NFVI计算得到第二MAC,无需自身计算得到MAC,降低了APP服务器计算MAC带来的功率消耗。由MEP或者NFVI计算得到第二MAC,使计算MAC需要的输入参数,如:MEP的ID、硬件安全参数不用通过信令交互传输给MEP或NFVI,防止输入参数被篡改,提高APP校验的准确性。

一种可能的设计中,结合第二十三方面或第二十三方面的任一可能的设计,硬件安全参数包括安全芯片标识ID、安全芯片预置参数、安全芯片中处理器ID中的一种或者多种参数,安全芯片预置参数包括随机数或者根秘钥。

基于该可能的设计,将硬件安全参数配置为安全芯片本身固有的参数,使硬件安全参数具有不变、且不可复制、不易破解的特性,使得根据硬件安全参数验证合法的APP也具备防复制和破解特性。

第二十四方面,本申请提供一种防破解装置,该防破解装置可以为APP服务器或者APP服务器中的芯片或者片上系统,还可以为APP服务器中用于实现本申请实施例所述的防破解方法的模块或者单元。该防破解装置可以实现上述各方面或者各可能的设计中APP服务器所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。如:该防破解装置可以包括:代理模块、处理模块。

代理模块,用于向终端发送第一请求,接收来自终端的第一MAC,其中,第一请求用于请求第一MAC;第一请求携带MEP的标识;

代理模块,还用于获取取第二MAC,第二MAC用于验证APP是否合法;

处理模块,用于比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

其中,该防破解装置的具体实现方式可以参考第二十三方面或第二十三方面的任一可能的设计提供的防破解方法中终端的行为功能,在此不再重复赘述。因此,该提供的防破解装置可以达到与第二十三方面或者第二十三方面的任一可能的设计相同的有益效果。

第二十五方面,提供了一种防破解装置,该防破解装置可以为APP服务器或者APP服务器中的芯片或者片上系统。该防破解装置可以实现上述各方面或者各可能的设计中APP服务器所执行的功能,所述功能可以通过硬件实现。一种可能的设计中,该防破解装置可以包括:处理器、通信接口以及安全芯片,安全芯片可以预先配置有硬件安全参数。处理器可以用于支持防破解装置实现上述第二十三方面或者第二十三方面的任一种可能的设计中所涉及的功能,例如:处理器用于通过通信接口向终端发送第一请求,接收来自终端的第一MAC,其中,第一请求用于请求第一MAC;第一请求携带MEP的标识;并获取取第二MAC,第二MAC用于验证APP是否合法,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。在又一种可能的设计中,防破解装置还可以包括存储器,存储器用于保存防破解装置必要的计算机执行指令和数据。当该防破解装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该防破解装置执行上述第二十三方面或者第二十三方面的任一种可能的设计所述的防破解方法。

第二十六方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第二十三方面或者上述方面的任一可能的设计所述的防破解方法。

第二十七方面,提供了一种包含指令的计算机程序产品,该计算机程序产品可以包括程序指令,当该计算机程序产品在计算机上运行时,使得计算机可以执行上述第二十三方面或者上述方面的任一可能的设计所述的防破解方法。

第二十八方面,提供了一种芯片系统,该芯片系统包括处理器、通信接口;进一步的,还可以包括安全芯片,安全芯片可以预先配置有硬件安全参数。该芯片系统可以用于实现上述第二十三方面或第二十三方面的任一可能的设计中APP服务器所执行的功能,例如处理器用于通过通信接口向终端发送第一请求,接收来自终端的第一MAC,其中,第一请求用于请求第一MAC;第一请求携带MEP的标识,并获取取第二MAC,第二MAC用于验证APP是否合法,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存程序指令和/或数据。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件,不予限制。

其中,第二十五方面至第二十八方面中任一种设计方式所带来的技术效果可参见上述第二十三方面或者第二十三方面的任一可能的设计所带来的技术效果,不再赘述。

第二十九方面,本申请还提供一种防破解方法,所述方法应用于MEP或者NFVI,所述方法包括:接收第二请求,其中,第二请求用于请求第二MAC;第二请求包括MEP的标识;根据MEP的标识,计算得到第二MAC,其中,第二MAC用于验证APP是否合法。

基于第二十九方面所述的方法,MEP或者NFVI可以根据MEP或者NFVI计算得到用于校验APP是否合法的MAC,并向APP服务器提供校验MAC值,以便APP服务器根据MEP或者NFVI计算的MAC与终端计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

一种可能的设计中,结合第二十九方面或者第二十九方面的任一可能的设计,第二请求还包括硬件安全参数;根据MEP的标识,计算得到第二MAC,包括:MEP根据MEP的标识和硬件安全参数,计算得到第二MAC。

基于该可能的设计,除将MEP的标识与APP绑定之外,还可以将硬件安全参数与APP绑定,基于硬件安全参数、MEP的标识共同计算出用于验证APP的合法性的MAC,保证只有拥有合法的硬件安全参数以及在指定MEP运行环境上运行APP的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的硬件安全参数以及未在指定的MEP运行环境上运行APP,无法计算出与接收到的MAC相同的MAC,验证失败,无法盗用该APP。该可能的设计基于多种参数计算MAC,提高APP使用的安全等级。

一种可能的设计中,结合第二十九方面或者第二十九方面的任一可能的设计,硬件安全参数包括安全芯片标识ID、安全芯片预置参数、安全芯片中处理器ID中的一种或者多种参数,安全芯片预置参数包括随机数或者根秘钥。

基于该可能的设计,将硬件安全参数配置为安全芯片本身固有的参数,使硬件安全参数具有不变、且不可复制、不易破解的特性,使得根据硬件安全参数验证合法的APP也具备防复制和破解特性。

一种可能的设计中,结合第二十九方面或者第二十九方面的任一可能的设计,所述方法还包括:发送第二MAC。

基于该可能的设计,MEP或者NFVI可以将自身计算得到用于校验APP是否合法的MAC发送出去,以便APP服务器接收到该MAC值,根据MEP或者NFVI计算的MAC与终端计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

一种可能的设计中,结合第二十九方面或者第二十九方面的任一可能的设计,所述发送第二MAC包括:向APP服务器发送第二MAC;或者,向MEP发送第二MAC。

基于该可能的设计,MEP或者NFVI可以直接与APP服务器交互将计算得到的MAC发送给APP服务器,也可以通过MEP发送给APP服务器,发送方式灵活多样,适应多种应用场景。

一种可能的设计中,结合第二十九方面或者第二十九方面的任一可能的设计,当所述方法应用于NFVI时,第二请求还包括第一MAC,所述方法还包括:比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

基于该可能的设计,还可以由NFVI根据MAC校验APP的合法性,无需由APP服务器校验APP的合法性,降低APP服务器校验APP合法性带来的功率消耗。

一种可能的设计中,结合第二十九方面或者第二十九方面的任一可能的设计,接收第二请求包括:接收来自APP服务器的第二请求;或者,当方法应用于NFVI时,接收第二请求包括:接收来自MEP的第二请求。

基于该可能的设计,MEP或者NFVI可以直接与APP服务器,接收APP发送的第二请求;或者,NFVI通过MEP接收APP服务器发送第二请求,发送方式灵活多样,适应多种应用场景。

第三十方面,本申请提供一种防破解装置,该防破解装置可以为MEP或者MEP中的芯片或者片上系统,还可以为MEP中用于实现本申请实施例所述的防破解方法的模块或者单元。还可以为NFVI或者NFVI中的芯片或者片上系统,还可以为NFVI中用于实现本申请实施例所述的防破解方法的模块或者单元。该防破解装置可以实现上述各方面或者各可能的设计中MEP或者NFVI所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。如:该防破解装置可以包括:接收模块、处理模块。当防破解装置为NFVI或者NFVI中的芯片或者片上系统时,还可以包括安全芯片,安全芯片中预配置由硬件安全参数。

接收模块,接收第二请求,其中,第二请求用于请求第二MAC;第二请求包括MEP的标识。

处理模块,用于根据MEP的标识,计算得到第二MAC,其中,第二MAC用于验证APP是否合法。

其中,该防破解装置的具体实现方式可以参考第二十九方面或第二十九方面的任一可能的设计提供的防破解方法中终端的行为功能,在此不再重复赘述。因此,该提供的防破解装置可以达到与第二十九方面或者第二十九方面的任一可能的设计相同的有益效果。

第三十一方面,提供了一种防破解装置,该防破解装置可以为MEP或者MEP中的芯片或者片上系统,还可以为MEP中用于实现本申请实施例所述的防破解方法的模块或者单元。还可以为NFVI或者NFVI中的芯片或者片上系统,还可以为NFVI中用于实现本申请实施例所述的防破解方法的模块或者单元。该防破解装置可以实现上述各方面或者各可能的设计中MEP或者NFVI所执行的功能,一种可能的设计中,该防破解装置可以包括:处理器、通信接口以及安全芯片,安全芯片可以预先配置有硬件安全参数。处理器可以用于支持防破解装置实现上述第二十九方面或者第二十九方面的任一种可能的设计中所涉及的功能,例如:处理器用于通过通信接口接收第二请求,其中,第二请求用于请求第二MAC;第二请求包括MEP的标识,根据MEP的标识,计算得到第二MAC,其中,第二MAC用于验证APP是否合法。在又一种可能的设计中,防破解装置还可以包括存储器,存储器用于保存防破解装置必要的计算机执行指令和数据。当该防破解装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该防破解装置执行上述第二十九方面或者第二十九方面的任一种可能的设计所述的防破解方法。

第三十二方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第二十九方面或者上述方面的任一可能的设计所述的防破解方法。

第三十三方面,提供了一种包含指令的计算机程序产品,该计算机程序产品可以包括程序指令,当该计算机程序产品在计算机上运行时,使得计算机可以执行上述第二十九方面或者上述方面的任一可能的设计所述的防破解方法。

第三十四方面,提供了一种芯片系统,该芯片系统包括处理器、通信接口;进一步的,还可以包括安全芯片,安全芯片可以预先配置有硬件安全参数。该芯片系统可以用于实现上述第二十九方面或第二十九方面的任一可能的设计中MEP或者NFVI所执行的功能,例如处理器用于通过通信接口接收第二请求,其中,第二请求用于请求第二MAC;第二请求包括MEP的标识,根据MEP的标识,计算得到第二MAC,其中,第二MAC用于验证APP是否合法。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存程序指令和/或数据。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件,不予限制。

其中,第三十一方面至第三十四方面中任一种设计方式所带来的技术效果可参见上述第二十九方面或者第二十九方面的任一可能的设计所带来的技术效果,不再赘述。

第三十五方面,本申请还提供一种防破解系统,该系统可以包括第十八方面至第二十二方面任一方面所述的防破解装置、第二十四方面至第二十八方面任一方面的防破解装置、以及第三十方面至第三十四方面任一方面所述的防破解装置。

附图说明

图1为现有技术提供的一种防破解方法的示意图;

图2为本申请提供的一种MEC系统的架构示意图;

图3为本申请提供的一种移动边缘主机的组成示意图;

图4为本申请实施例提供的一种防破解方法的流程图;

图5为本申请实施例提供的一种激活APP时的防破解方法的流程图;

图6为本申请实施例提供的一种运行APP时防破解方法的流程图;

图7为本申请实施例提供的一种去激活APP时防破解方法的流程图;

图8为本申请实施例提供的一种防破解方法的流程图;

图9为本申请实施例提供的一种激活APP时的防破解方法的流程图;

图10为本申请实施例提供的一种运行APP时防破解方法的流程图;

图11为本申请实施例提供的一种去激活APP时防破解方法的流程图;

图12为本申请实施例提供的一种同步方法的流程图;

图13为本申请实施例提供的一种边缘狗模块130的结构图;

图14为本申请实施例提供的一种代理模块140的结构图;

图15为本申请提供的一种APP部署在客户端以及服务器的系统架构示意图;

图16为本申请实施例提供的又一种防破解方法的流程图;

图17为本申请实施例提供的又一种防破解方法的流程图;

图18为本申请实施例提供的又一种防破解方法的流程图;

图19为本申请实施例提供的又一种防破解方法的流程图;

图20为本申请实施例提供的又一种防破解方法的流程图;

图21为本申请实施例提供的又一种防破解方法的流程图;

图22为本申请实施例提供的又一种防破解方法的流程图。

具体实施方式

下面将结合附图对本申请实施例的实施方式进行详细描述。

本申请提供的防破解方法可适用于移动边缘计算(mobile edge computing,MEC)系统,用于实现MEC场景下的APP防破解。图2为MEC系统的架构示意图,如图2所示,MEC系统可以包括:多个移动边缘主机(mobile edge host)、移动边缘平台管理器(mobile edgeplatform manager,MEPM)。还可以包括虚拟化基础架构管理器(virtualisationinfrastructure manager,VIM)以及容器基础架构管理器(container infrastructuremanager,CIM)等。

其中,动边缘平台管理器,主要具有如下功能:管理移动边缘应用的生命周期,如:将移动边缘应用的相关事件通知给移动边缘协调器/编排器;为移动边缘平台提供元素管理功能;管理移动边缘应用的规则和要求,如:管理移动边缘应用的服务授权、流量规则、域名系统(domain name system,DNS)配置和解决冲突等。

其中,VIM,可以支持VM的虚拟化管理和容器的管理,主要具有如下两大功能,第一:分配、管理和释放虚拟化基础设施上的虚拟化资源(如:计算、存储和网络资源);为运行软件映像准备虚拟化基础架构,如:配置虚拟化基础设施、接收和存储软件映像等;快速配置移动边缘应用,如:收集和上报虚拟化资源的性能和故障信息;执行移动边缘程序重定位等。

其中,CIM可以支持容器的管理。主要具有如下功能:分配、管理和释放容器相关的资源(如:计算、存储和网络资源);接收和存储容器映像;支持快速配置移动边缘应用,并收集和上报容器相关的资源的性能和故障信息等。需要说明的是,CIM可以和VIM独立部署在图2所示MEC系统中,也可以集中部署在同一功能实体中,不予限制。

其中,移动边缘主机,可以是一台物理主机或者服务器,主要用于为移动边缘应用提供计算、存储和网络资源。如图2所示,移动边缘主机可以包括/安装有移动边缘平台(mobile edge platform,MEP)、多个应用(application,APP)、虚拟化基础架构(virtualisation infrastructure,VI)以及容器基础架构(container infrastructure,CI)。VI具有VM引擎的功能,CI具有容器引擎的功能,如:具有docker engine的功能。在MEC系统中,APP还可以称为移动边缘应用(mobile edge application,ME APP)或者其他名称,不予限制。本申请以APP为例进行说明。

其中,移动边缘平台,主要用于为移动边缘应用提供移动边缘服务(mobile edgeservice)以及为移动边缘应用提供居间服务,如:可以为移动边缘应用间的发现和使用提供服务等。

其中,APP可以包括运行在虚拟化基础架构之上的虚拟机(virtual machine,VM)中的应用(application,APP),也可以包括运行在容器基础架构之上的容器中的APP。APP可以与移动边缘平台进行交互以提供移动边缘服务,还可以与移动边缘平台交互,以执行与移动边缘应用生命周期相关的过程,如:指示移动边缘应用的可用性,重新定位用户状态等。除此之外,移动边缘应用还具有与其相关联的一定数量的规则和要求,如:还具有移动边缘应用所需的资源、最大延迟、所需的服务或者有用的服务等。

本申请中,为了保证APP不被破解,可以在移动边缘主机中安装部署与APP对应的代理模块以及边缘狗模块,采用对称密钥方式,由代理模块、边缘狗模块根据安全参数和/或APP的运行环境信息等一系列参数计算MAC,通过比较代理模块生成的MAC以及边缘狗模块生成的MAC来验证边缘狗模块是否是合法的,进而根据验证结果保证APP不被破解;或者,采用非对称密钥方式,由边缘狗模块利用边缘狗模块的私钥对安全参数和/或APP的运行环境信息等一系列参数进行签名,代理模块利用边缘狗模块的公钥对边缘狗模块的签名进行认证来验证边缘狗模块是否是合法的,进而根据验证结果保证APP不被破解。具体的,代理模块可以用于执行下述图4~图11中代理模块所指定的动作,边缘狗模块可以用于执行下述图4~图11中边缘狗模块所指定的动作。

其中,如图2所示,一个APP对应一个代理模块,代理模块可以与APP合一部署,也可以与APP分开部署,如:代理模块、APP独立部署在VM/容器中。当代理模块与APP分开部署时,APP中可以安装有软件开发工具包(software development kit,SDK),代理模块可以通过SDK与APP进行交互。一个或者多个APP对应一个边缘狗模块,通过验证APP对应的边缘狗模块的合法性来保证APP不被破解。在图2所示MEC系统中,边缘狗模块可以与APP部署在同一VM/容器中,也可以部署在不同VM/容器中,不予限制。例如,如图2所示,APP1与代理模块1合一部署,APP1与边缘狗模块1对应,部署在同一VM/容器中,APP2与代理模块2分开部署,APP2与边缘狗模块2对应,部署在不同VM/容器中。

在图2所示的MEC系统中,移动边缘主机之间以及移动边缘主机内各部件间可以通过移动边缘平台的接口(mobile edge point,Mp)相互通信,移动边缘主机与MEC系统中的其他设备可以通过移动边缘管理(mobile edge management,Mm)相互通信,MEC系统中除移动边缘主机外的其他设备间也可以通过Mm接口相互通信,不予限制。例如,如图2所示,移动边缘平台与移动边缘应用之间可以通过Mp1相互通信,移动边缘平台与虚拟化基础架构中的数据平面间可以通过Mp2相互通信,移动边缘主机间可以通过Mp3相互通信。移动边缘平台管理器与移动边缘平台间可以通过Mm5相互通信,移动边缘平台管理器与虚拟化基础架构管理器间可以通过Mm6相互通信。虚拟化基础架构管理器与虚拟化基础架构间可以通过Mm7相互通信。

需要指出的是,图2仅为示例性附图,图2所示MEC系统包括的网元的数量不受限制,除图2所示网元之外,该MEC系统还可以包括其他设备等。此外,图2中各个设备的名称、设备间接口的名称不受限制,除图2所示名称之外,各个设备、设备间的接口还可以命名为其他名称,不予限制。

具体的,图2中的移动边缘主机可以包括图3所示部件,如图3所示,移动边缘主机300可以包括处理器301以及网络资源302。进一步的,该移动边缘主机300还可以包括存储器303。其中,处理器301,存储器303以及网络资源302之间可以通过通信线路(图3中未示出)连接。在图3所示的移动边缘主机中,处理器301可以提供计算资源,存储器303可以提供存储资源。实际应用中,可以将存储资源、计算资源、网络资源根据需要划分出来构成VM/容器,在VM/容器上运行包括代理模块的APP以及边缘狗模块;或者,代理模块与APP分开部署,单独运行代理模块、APP,不予限制。具体的,构建VM/容器的过程可参照现有技术,不予赘述。

其中,处理器301可以是中央处理器(central processing unit,CPU)、通用处理器网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器301还可以是其它具有处理功能的装置,如电路、器件或软件模块等。

网络资源302,用于与其他设备或其它通信网络进行通信。该其它通信网络可以为以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。网络资源302可以是射频模块或者任何能够实现通信的装置。本申请实施例仅以网络资源302为射频模块为例进行说明,其中,射频模块可以包括天线、射频电路等,射频电路可以包括射频集成芯片、功率放大器等。

存储器303,用于存储程序指令以及APP对应的安装包。其中,程序指令可以是计算机程序,可以包括用于实现代理模块所指定的功能的程序指令、以及用于实现边缘狗模块所指定的功能的程序指令等,不予限制。

其中,存储器303可以是只读存储器(read-only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是随机存取存储器(random accessmemory,RAM)或者可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储、磁盘存储介质或其他磁存储设备,光碟存储包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等。

需要说明的是,存储器303可以独立于处理器301存在,也可以和处理器301集成在一起。存储器303可以用于存储指令或者程序代码或者一些数据等。存储器303可以位于移动边缘主机300内,也可以位于移动边缘主机300外,不予限制。处理器301,用于执行存储器303中存储的指令,以实现本申请下述实施例提供的防破解方法。

在一种示例中,处理器301可以包括一个或多个CPU,例如图3中的CPU0和CPU1。

作为一种可选的实现方式,移动边缘主机300包括多个处理器,例如,除图3中的处理器301之外,还可以包括处理器304。

作为一种可选的实现方式,移动边缘主机300还包括输出设备和输入设备。示例性地,输入设备是键盘、鼠标、麦克风或操作杆等设备,输出设备是显示屏、扬声器(speaker)等设备。

需要说明的是,移动边缘主机300可以是台式机、便携式电脑、网络服务器、平板电脑、嵌入式设备、芯片系统或有图3中类似结构的设备。此外,图3中示出的组成结构并不构成对该移动边缘主机的限定,除图3所示部件之外,该移动边缘主机可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。

下面结合图2所示MEC系统,以代理模块与APP合一部署,由代理模块比较自身生成的MAC以及边缘狗模块生成的MAC,根据比较结果验证边缘狗模块是否合法为例,对本申请提供的防破解方法进行说明:

图4为本申请提供的一种防破解方法的流程图,如图4所示,所述方法包括:

步骤401:代理模块向边缘狗模块发送第一请求。

其中,代理模块可以与APP合一部署,APP可以为图2中的任一APP。边缘狗模块可以与APP关联,边缘狗模块与代理模块配套使用,以实现对APP的保护。例如,代理模块可以为图2中的代理模块1,边缘狗模块为图2中的边缘狗模块1,APP为图2中的APP1。

其中,第一请求可以用于请求第一MAC,第一请求可以在APP使用者对APP执行第一操作时触发,第一操作可以为激活APP或者运行APP,第一请求还可以命名为激活请求或者运行请求或者指纹请求或者其他名称,不予限制。

其中,第一请求可以包括APP的运行环境信息,还可以包括APP的序列号(serialno),APP的标识(identifier,ID)、时间戳(timestamp)等其他参数中一个或者多个参数。APP的运行环境信息、APP的序列号、APP的标识、时间戳可以预先配置在代理模块中。

其中,APP的运行环境信息可以用于指示APP的运行环境,APP的运行环境信息可以包括以下任意一项或多项:APP所在MEP的标识、APP所在VM或者容器的信息、所述APP运行平台的TPM信息、所述APP运行所在的VM或者容器所在硬件信息。MEP的标识可以用于标识MEP,MEP的标识可以为MEP在MEC系统中的编号,还可以为MEP的数据网络接入标识(datanetwork access identifier,DNAI)等,不予限制。VM的信息可以用于唯一标识VM,VM的信息可以包括VM ID、VM的通用唯一识别码(universally unique identifier,UUID)或者中央处理器标识(central processing unit identifier,ID),网卡的媒体接入控制(mediaaccess control,MAC)地址、硬盘信息、卷序号、内存ID、主板ID、处理器核ID等。容器的信息可以用于唯一标识容器,容器的信息可以包括容器的标识(Pod ID)、UUID或者CPU ID、网卡的MAC地址、硬盘信息、卷序号、内存ID、主板ID、处理器核ID等等,APP运行平台的VM或者容器所在的硬件信息可以包括主机ID、或者CPU ID、网卡的MAC地址、硬盘信息、卷序号、内存ID、主板ID、处理器核ID,不予限制。

其中,APP的序列号可以指APP的出厂编号,APP的序列号可以由APP的厂商配置。

其中,APP的标识可以用于标识MEC系统中的一个APP,APP的标识可以由MEC系统的使用者配置给代理模块。

其中,时间戳可以指上一次对APP成功执行第一操作的时间。需要说明的是,本申请中,时间戳的初始值为零或者为空,后续,每成功执行一次第一操作,将本地存储的时间戳更新为成功执行第一操作的时间。

示例性的,代理模块可以在接收到APP使用者发出的激活对APP或者运行APP的操作请求后,向边缘狗模块发送第一请求。其中,操作请求可以为APP使用者点击移动边缘主机的人机交互界面上的APP图标发出的操作请求。

其中,代理模块中可以预先存储有边缘狗模块的因特网协议(internetprotocol,IP)地址,代理模块向边缘狗模块发送第一请求可以包括:代理模块根据边缘狗模块的IP地址,向边缘狗模块发送第一请求。

其中,在执行步骤401之前,需要判断是否满足下述条件一和/或条件二,若满足,执行步骤401,反之,则不执行步骤401:

条件一、APP的激活次数小于最大允许激活次数。

示例性的,若第一请求还携带激活APP指示,则在代理模块接收到APP发出的操作请求后,判断APP的激活次数是否小于最大允许激活次数,若APP的激活次数小于最大允许激活次数,则执行步骤401,反之,则返回APP的激活次数已超过最大允许激活次数。

其中,最大允许激活次数可以由APP的厂商根据需要设置,且预先配置在代理模块中。

其中,APP的激活次数可以指该APP被成功激活的总次数,APP的激活次数可以与APP的标识对应保存在代理模块中。初始时,APP的激活次数为零或者空,每成功激活一次APP,更新本地存储的APP的激活次数,将APP的激活次数加1。

条件二、APP的运行环境信息包括在预设的运行环境信息。

示例性的,代理模块判断APP的运行环境信息是否包括在预设的运行环境信息中,若APP的运行环境信息包括在预设的运行环境信息中,表示APP运行在安全环境中,则执行步骤401,反之,则表示APP未运行在安全环境中,不执行步骤401。

其中,预设的运行环境信息可以表征允许APP运行的环境,预设的运行环境信息可以预先配置在代理模块中。

步骤402:边缘狗模块接收第一请求,根据APP的运行环境信息,计算得到第一MAC。

一种示例中,边缘狗模块根据APP的运行环境信息,计算得到第一MAC可以包括:边缘狗模块将APP的运行环境信息作为输入参数,输入到预设算法f得到第一MAC。如:第一MAC=f(APP的运行环境信息)。

又一种示例中,边缘狗模块根据APP的运行环境信息,计算得到第一MAC可以包括:边缘狗模块根据安全参数以及APP的运行环境信息,计算得到第一MAC。

例如,边缘狗模块可以将安全参数以及APP的运行环境信息作为输入参数,输入到预设算法f得到第一MAC。如:第一MAC=f(安全参数,APP的运行环境信息)。

其中,安全参数可以由APP的厂商预先配置给边缘狗模块。安全参数可以为由数字、字母或者其他符合组合成的参数。

例如,边缘狗模块根据安全参数和/或APP的运行环境信息得到第一MAC可以包括:边缘狗模块将安全参数和/或APP的运行环境信息作为输入参数,输入到预设算法f得到第一MAC。如:第一MAC=f(安全参数),或者,第一MAC=f(APP的运行环境信息),或者,第一MAC=f(安全参数,APP的运行环境信息)。

其中,本申请各实施例中,预设算法f可以为HMEC算法,如:可以为HMEC-安全散列算法(secure hash algorithm,SHA)-256,也可以为其他CMEC算法或者其他算法,不予限制。预设算法f可以预先配置在代理模块和边缘狗模块中。

需要说明的是,步骤402还可以替换为边缘狗模块接收第一请求,根据安全参数得到第一MAC,即以安全参数作为输入参数得到第一MAC,不予限制。

再一种示例中,边缘狗模块根据APP的运行环境信息得到第一MAC可以包括:边缘狗模块确定APP的运行环境信息与预设的运行环境信息匹配时,计算得到第一MAC。

例如,边缘狗模块可以确定APP的运行环境信息是否包括在预设的运行环境信息中,若APP的运行环境信息包括在预设的运行环境信息中,则将安全参数和/或APP的运行环境信息作为输入参数,输入到预设算法f中得到第一MAC,反之,若APP的运行环境信息未包括在预设的运行环境信息中,则表示APP未运行在允许的运行环境中,为不合法的操作,此时,边缘狗模块可以向代理模块返回运行环境信息不合法,流程结束。

其中,若第一请求还携带激活APP指示,则在边缘狗模块接收到第一请求后,判断APP的激活次数是否小于最大允许激活次数,若APP的激活次数小于最大允许激活次数,执行步骤402,反之,则向代理模块返回APP的激活次数已超过最大允许激活次数,流程结束。

其中,最大允许激活次数可以由APP的厂商根据需要设置,且预先配置在边缘狗模块中。APP的激活次数可以指APP被成功激活的总次数,APP的激活次数可以保存在边缘狗模块中。初始时,APP的激活次数为零或者空,每成功激活一次APP,则代理模块向边缘狗模块发送用于指示APP被成功激活的激活成功消息,以便边缘狗模块根据接收到激活成功消息,更新本地存储的APP的激活次数,将APP的激活次数加1。

本申请实施例中,为了保证MAC验证的准确性,代理模块、边缘狗模块两个模块上存储的APP的激活次数需要保持同步。具体的,可通过下述图12所述方法同步代理模块存储的APP的激活次数与边缘狗模块存储的APP的激活次数。

需要说明的是,本申请不限于将安全参数、APP的运行环境信息中的一个或者多个作为输入参数得到第一MAC,还可以当第一请求包括APP的序列号,APP的标识、时间戳中的一个或者多个参数时,将安全参数、APP的运行环境信息、以及APP的序列号,APP的标识、时间戳中的一个或者多个参数共同作为输入参数输入到预设算法f得到第一MAC。即边缘狗模块可以根据下述(1)~(16)几种方式中的任一方式得到第一MAC:

(1)将安全参数作为输入参数得到第一MAC。

(2)将APP的运行环境信息作为输入参数得到第一MAC。

(3)将安全参数、APP的序列号,APP的标识、时间戳作为输入参数得到第一MAC。

(4)将APP的运行环境信息、APP的序列号,APP的标识、时间戳作为输入参数得到第一MAC。

(5)将安全参数、APP的序列号作为输入参数得到第一MAC。

(6)将APP的运行环境信息、APP的序列号作为输入参数得到第一MAC。

(7)将安全参数、APP的标识作为输入参数得到第一MAC。

(8)将APP的运行环境信息、APP的标识作为输入参数得到第一MAC。

(9)将安全参数、时间戳作为输入参数得到第一MAC。

(10)将APP的运行环境信息、时间戳作为输入参数得到第一MAC。

(11)将安全参数、APP的序列号,APP的标识作为输入参数得到第一MAC。

(12)将APP的运行环境信息、APP的序列号,APP的标识作为输入参数得到第一MAC。

(13)将安全参数、APP的序列号、时间戳作为输入参数得到第一MAC。

(14)将APP的运行环境信息、APP的序列号、时间戳作为输入参数得到第一MAC。

(15)将安全参数、APP的标识、时间戳作为输入参数得到第一MAC。

(16)将APP的运行环境信息、APP的标识、时间戳作为输入参数得到第一MAC。

此外,在上述方式(1)~方式(16)中还可以将密钥k作为输入参数,密钥k可以预先配置给代理模块以及边缘狗模块。当第一操作为运行APP时,还可以将APP的激活次数作为输入参数,不予限制。

步骤403:边缘狗模块向代理模块发送第一MAC。

示例性的,边缘狗模块可以向代理模块发送第一请求的响应,该第一请求的响应可以包括第一MAC。当第一请求还携带激活APP指示时,第一请求的响应可以为激活响应。当第一操作为运行APP时,第一请求的响应可以为指纹响应。

步骤404:代理模块接收第一MAC,根据APP的运行环境信息,计算得到第四MAC。

示例性的,代理模块根据APP的运行环境信息计算得到第四MAC可参照边缘狗模块根据APP的运行环境信息得到第一MAC的过程。

具体的,代理模块可以参照上述方式(1)~方式(16)中任一方式得到第四MAC。

其中,代理模块计算第四MAC时采用的预设算法f以及输入参数与边缘狗模块计算第一MAC是采用的预设算法f以及输入参数是相同的,双发事先约定好的。

需要说明的是,上述代理模块计算第四MAC时采用的输入参数与边缘狗模块计算第一MAC时采用的输入参数相同是指:代理模块计算第四MAC时采用的输入参数与边缘狗模块计算第一MAC时采用的输入参数为同类型的参数,如:均为安全参数,或者,均为APP的运行环境信息,或者均为安全参数和APP的运行环境信息、以及下述一种或者多种参数APP的序列号,APP的标识、时间戳。

步骤405:代理模块比较第一MAC以及第四MAC,验证边缘狗模块是否合法。

示例性的,当第一MAC与第四MAC相同时,边缘狗模块是合法的,允许对APP执行相应操作,如:激活APP或者继续运行APP等;当第一MAC与第四MAC不同时,边缘狗模块是非法的,阻止对APP进行第一操作。

例如,若边缘狗模块计算出的第一MAC为10,代理模块计算出的第四MAC为11,则第一MAC与第四MAC不同,边缘狗模块是非法的,不允许对APP执行相应操作。

进一步的,若第一请求还携带激活APP指示,且边缘狗模块是合法的,则所述方法还可以包括:代理模块对APP进行激活,并在激活成功后,将APP的状态设置为“已激活”,同时,将本地存储的APP的激活次数加1,并向边缘狗模块用于指示APP被成功激活的激活成功消息,以便边缘狗模块接收到激活成功消息后,更新边缘狗模块中本地存储的APP的激活次数,将本地存储的APP的激活次数加1。

进一步的,若第一操作为运行APP,且边缘狗模块是合法的,则所述方法还可以包括:代理模块触发APP继续运行。

图4所示方法中,通过比较MAC判断边缘狗模块是否合法,即通过对称密钥方式验证边缘狗模块是否合法。可替换的,还可以通过非对称密钥方式验证边缘狗模块是否合法。例如,边缘狗模块还可以利用边缘狗模块的私钥对APP的运行环境信息等一系列参数进行签名,并向代理模块或者APP发送签名后的信息,以便代理模块或者APP接收到签名后的信息后,根据边缘狗模块的证书获取边缘狗模块的公钥,利用边缘狗模块的公钥对签名后的信息后进行解密处理,根据解密后的信息验证边缘狗模块是否合法,根据边缘狗模块的合法情况对APP执行相应操作。

其中,边缘狗模块的私钥、边缘狗模块的公钥为一对非对称密钥,边缘狗模块的私钥、边缘狗模块的公私可以由APP的厂商或边缘狗模块的厂商预先配置在边缘狗模块。边缘狗模块的证书可以由APP的厂商预先配置在代理模块。

基于图4所示方法,可以由边缘狗模块在接收到获取第一MAC的请求后,根据APP的运行环境信息生成MAC,并将MAC反馈给代理模块,代理模块比较自身生成的MAC以及接收到的MAC,验证边缘狗模块是否合法,如:当自身生成的MAC与接收到的MAC相同时,表示边缘狗模块是合法的,对APP执行相应操作。如此,将边缘狗模块与APP的运行环境绑定,合法使用者只有在允许的运行环境上运行APP时边缘狗模块才能计算出期望的MAC,验证成功,而非法使用者即使获取到了该APP,也会因未在允许的运行环境上运行APP而计算出与接收到的MAC不同的MAC,验证失败,无法盗用该APP。与现有技术相比,图4所示方法可以保证MEC场景下APP使用的安全性。

下面以代理模块与APP合一部署,第一请求还携带激活APP指示,安全参数以及APP的运行环境信息为输入参数为例,对图4所示方法进行详细说明。

图5为本申请提供的又一种防破解方法的流程图,如图5所示,所述方法包括:

步骤501:代理模块接收来自APP使用者的激活请求。

其中,激活请求可以用于请求激活APP。该激活请求可以为APP使用者点击移动边缘主机上的人机交互界面而发出的请求。

步骤502:代理模块判断APP的激活次数是否小于最大允许激活次数以及APP的运行环境信息是否包括在预设的运行环境信息中;若APP的激活次数小于最大允许激活次数,且包括在预设的运行环境信息中,执行步骤502~步骤513;反之,则代理模块向APP使用者返回APP的激活次数已超过最大允许激活次数和/或未在合法的运行环境中,流程结束。

步骤503:代理模块向边缘狗模块发送第一请求。

其中,步骤503可参照步骤401所述,不予赘述。

步骤504:边缘狗模块接收第一请求,判断APP的运行环境信息是否包括在预设的运行环境信息中,若APP的运行环境信息包括在预设的运行环境信息中,则执行步骤505~步骤513;反之,则向代理模块发送运行环境信息不合法,流程结束。

步骤505:边缘狗模块判断APP的激活次数是否小于最大允许激活次数;若APP的激活次数小于最大允许激活次数,执行步骤506~步骤513;反之,若APP的激活次数等于或大于最大允许激活次数,则边缘狗模块向代理模块返回APP的激活次数已超过最大允许激活次数,流程结束。

步骤506:边缘狗模块将安全参数以及APP的运行环境信息作为输入参数,计算得到第一MAC。

其中,步骤506的执行过程可参照步骤402所述,不予赘述。

步骤507:边缘狗模块向代理模块发送第一MAC。

其中,步骤507的执行过程可参照步骤403所述,不予赘述。

步骤508:代理模块接收第一MAC,将安全参数以及APP的运行环境信息作为输入参数,计算得到第四MAC。

其中,步骤508的执行过程可参照步骤404所述,不予赘述。

步骤509:代理模块比较第一MAC以及第四MAC,验证是否允许激活APP。

其中,步骤509的执行过程可参照步骤405所述,不予赘述。

步骤510:若允许激活APP,则代理模块对APP进行激活。

步骤511:APP激活成功后,代理模块将本地存储的APP的激活次数加1,同时,代理模块将APP的状态设置为“已激活”。

步骤512:代理模块向边缘狗模块用于指示APP被成功激活的激活成功消息。

步骤513:边缘狗模块接收激活成功消息,将APP的状态设置为“已激活”,同时,更新边缘狗模块中本地存储的APP的激活次数,将本地存储的APP的激活次数加1。

基于图5所示方法,可以由边缘狗模块在接收到对APP执行激活APP的请求后,根据安全参数和APP的运行环境信息生成MAC,并将MAC反馈给代理模块,代理模块比较自身生成的MAC以及接收到的MAC,验证边缘狗模块是否合法,如:当自身生成的MAC与接收到的MAC相同时,表示边缘狗模块是合法的,激活APP。如此,合法使用者可以通过边缘狗模块使用合法的安全参数以及APP的运行环境信息计算出期望的MAC,保证APP的合法使用,实现只有拥有合法的安全参数等输入参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到该合法的输入参数而计算出与接收到的MAC不同的MAC,无法盗用该APP,并激活该APP。

下面以代理模块与APP合一部署,第一操作为运行APP,安全参数以及APP的运行环境信息为输入参数为例,对图4所示方法进行详细说明。

图6为本申请提供的又一种防破解方法的流程图,如图6所示,所述方法包括:

步骤601:代理模块接收来自APP使用者的运行请求。

其中,运行请求可以用于请求运行APP。该运行请求可以为APP使用者点击移动边缘主机上的人机交互界面而发出的请求。

步骤602:代理模块判断APP是否已激活,且APP的运行环境信息是否包括在预设的运行环境信息中;若APP已激活且APP的运行环境信息包括在预设的运行环境信息中,执行步骤602~步骤513;反之,则代理模块向APP使用者返回APP未被激活和/运行环境信息不合法,流程结束。

步骤603:代理模块向边缘狗模块发送第一请求。

其中,步骤603可参照步骤401所述,不予赘述。

步骤604:边缘狗模块接收第一请求,判断APP的运行环境信息是否包括在预设的运行环境信息中,若APP的运行环境信息包括在预设的运行环境信息中,则执行步骤605~步骤513;反之,则向代理模块发送运行环境信息不合法,流程结束。

步骤605:边缘狗模块判断APP是否已激活;若APP已激活,执行步骤606~步骤513;反之,若APP未激活,则边缘狗模块向代理模块返回未被激活,流程结束。

步骤606:边缘狗模块将安全参数以及APP的运行环境信息作为输入参数,计算得到第一MAC。

其中,步骤606的执行过程可参照步骤402所述,不予赘述。

步骤607:边缘狗模块向代理模块发送第一MAC。

其中,步骤607的执行过程可参照步骤403所述,不予赘述。

步骤608:代理模块接收第一MAC,根据安全参数以及APP的运行环境信息作为输入参数,计算得到第四MAC。

其中,步骤608的执行过程可参照步骤404所述,不予赘述。

步骤609:代理模块比较第一MAC以及第四MAC,验证是否允许运行APP。

其中,步骤609的执行过程可参照步骤405所述,不予赘述。

步骤610:若允许运行APP,则代理模块继续运行APP。

基于图6所示方法,可以由边缘狗模块在接收到对APP执行运行APP的请求后,根据安全参数和APP的运行环境信息生成MAC,并将MAC反馈给代理模块,代理模块比较自身生成的MAC以及接收到的MAC,验证是否允许运行APP,如:当自身生成的MAC与接收到的MAC相同时,表示允许运行APP。如此,合法使用者可以通过边缘狗模块使用合法的安全参数以及APP的运行环境信息计算出期望的MAC,保证边缘狗模块的合法使用,实现只有拥有合法的安全参数等输入参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到该合法的输入参数而计算出与接收到的MAC不同的MAC,无法盗用并运行该APP。

下面以代理模块与APP合一部署,对APP去激活时的防破解过程进行描述:

图7为本申请提供的又一种防破解方法的流程图,如图7所示,所述方法包括:

步骤701:代理模块确定去激活APP的条件满足。

其中,去激活APP的条件包括下述一种或者多种条件:条件(一)、接收到APP使用者发送的APP卸载请求,APP卸载请求用于请求卸载APP。条件(二)、到达APP的使用有效期。APP的使用有效期可以预先设置,不予限制。

步骤702:代理模块根据安全参数,计算得到第二MAC。

其中,第二MAC可以用于验证去激活APP的操作是否合法。

示例性的,代理模块可以将安全参照作为输入参数输入到预设算法f中得到第二MAC。

其中,在对去激活APP进行防破解时,本申请不限于将安全参数作为输入参数,还可以将APP的标识、密钥k、APP的激活次数、APP的序列号、时间戳等一个或者多个参数作为输入参数,计算得到第二MAC。

步骤703:代理模块向边缘狗模块发送第二请求。

其中,第二请求可以用于请求去激活APP,第二请求可以包括第二MAC,还可以包括APP的标识、APP的激活次数、APP的序列号、时间戳等一个或者多个参数。第二请求还可以命名为去激活请求。

示例性的,代理模块向边缘狗模块发送第二请求可参照步骤401中代理模块向边缘狗模块发送第一请求的过程,不予赘述。

步骤704:边缘狗模块接收第二请求,将安全参数作为输入参数,计算得到第三MAC。

其中,步骤706的执行过程可参照步骤702所述,不予赘述。

步骤705:边缘狗模块比较第二MAC以及第三MAC,验证是否允许去激活APP。

其中,步骤706的执行过程可参照步骤405所述,不予赘述。

步骤706:边缘狗模块向代理模块发送去激活响应。

其中,去激活响应可以用于指示是否允许去激活APP,如:当第二MAC与第三MAC相同时,去激活响应用于指示允许去激活APP,反之,当第二MAC与第三MAC不同时,去激活响应可以用于指示不允许去激活APP。

步骤707:若允许去激活APP,且去激活APP的条件为条件(一)时,边缘狗模块将本地存储的APP的激活次数减1,同时,将APP的状态标记为“去激活”;若允许去激活APP,且去激活APP的条件为条件(二)时,边缘狗模块将APP的状态标记为“去激活”。

需要说明的是,本申请不限定步骤706、步骤707的执行顺序,可以先执行步骤706,再执行步骤707,也可以先执行步骤707,再执行步骤706,不予限制。

基于图7所示方法,可以由边缘狗模块在接收到对APP执行去激活APP的请求后,根据安全参数生成MAC,并将自身生成的MAC以及接收到的MAC进行比较,验证是否允许去激活APP,如:当自身生成的MAC与接收到的MAC相同时,表示允许去激活APP。如此,合法使用者可以通过边缘狗模块使用合法的安全参数以及APP的去激活环境信息计算出期望的MAC,保证边缘狗模块的合法使用,实现只有拥有合法的安全参数等输入参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到该合法的输入参数而计算出与接收到的MAC不同的MAC,无法盗用并去激活该APP。

上述图4~图7,以代理模块与APP合一部署为例,对APP激活时的防破解过程、APP运行时的防破解过程以及APP去激活时的防破解过程进行了描述。下面以代理模块与APP分开部署为例,对APP激活时的防破解过程、APP运行时的防破解过程以及APP去激活时的防破解过程进行描述。

图8为本申请提供的一种防破解方法的流程图,如图8所示,所述方法包括:

步骤801:APP向代理模块发送第三请求。

其中,APP可以与代理模块分开部署,例如,代理模块可以为图2中的代理模块2,边缘狗模块可以为图2中的边缘狗模块2,APP可以为图2中的APP2。

其中,第三请求可以用于请求第四MAC。

其中,第三请求可以包括APP的运行环境信息,还可以包括APP的序列号,APP的标识、时间戳等参数中一个或者多个参数。其中,APP的序列号、APP的标识、时间戳的相关描述可参照步骤401中所述,不予赘述。

示例性的,APP可以在接收到APP使用者发出的对APP执行第一操作的操作请求后,向代理模块发送第三请求。其中,第一操作的相关描述可参照上述步骤401中所述。操作请求可以为APP使用者点击移动边缘主机的人机交互界面上的APP图标发出的操作请求。

示例性的,APP可以通过SDK向代理模块发送第三请求。

步骤802:代理模块接收第三请求,根据APP的运行环境信息计算得到第四MAC。

示例性的,若第一请求还携带激活APP指示,则在代理模块接收到APP发出的操作请求后,判断APP的激活次数是否小于最大允许激活次数,若APP的激活次数小于最大允许激活次数,则根据安全参数计算得到第四MAC,反之,则返回APP的激活次数已超过最大允许激活次数。

其中,代理模块可以参照上述方式(1)~方式(16)中任一方式得到第四MAC。

其中,代理模块计算第四MAC时采用的预设算法f以及输入参数与边缘狗模块计算第一MAC是采用的预设算法f以及输入参数是相同的,双发事先约定好的。

需要说明的是,上述代理模块计算第四MAC时采用的输入参数与边缘狗模块计算第一MAC时采用的输入参数相同是指:代理模块计算第四MAC时采用的输入参数与边缘狗模块计算第一MAC时采用的输入参数为同类型的参数,如:均为安全参数,或者,均为APP的运行环境信息,或者均为安全参数和/或APP的运行环境信息、以及下述一种或者多种参数APP的序列号,APP的标识、时间戳。

步骤803:代理模块向APP发送第四MAC。

示例性的,代理模块可以通过SDK向APP发送第四MAC。

步骤804:APP向边缘狗模块发送第一请求。

其中,第一请求可以用于请求获取第一MAC,第一请求可以包括第四MAC,还可以包括步骤401中所述的APP的运行环境信息、APP的标识、APP的序列号、时间戳中的一种或者多种参数。

步骤805:边缘狗模块接收第一请求,根据APP的运行环境信息,计算得到第一MAC。

其中,边缘狗模块可参照方式(1)~方式(16)中任一方式得到第一MAC,不予赘述。

步骤806:边缘狗模块比较第一MAC以及第四MAC,验证边缘狗模块是否合法。

示例性的,当第一MAC与第四MAC相同时,边缘狗模块是合法的,允许对APP执行相应操作;当第一MAC与第四MAC不同时,边缘狗模块是非法的。

步骤807:边缘狗模块向APP发送验证结果。

进一步的,若第一请求还携带激活APP指示,且边缘狗模块是合法的,则所述方法还可以包括:APP对APP进行激活,并在激活成功后,向代理模块、边缘狗模块发送APP被成功激活的激活成功消息。代理模块接收激活成功消息,将APP的状态设置为“已激活”,同时,将本地存储的APP的激活次数加1。边缘狗模块接收到激活成功消息后,更新边缘狗模块中本地存储的APP的激活次数,将本地存储的APP的激活次数加1。

进一步的,若第一操作为运行APP,且边缘狗模块是非法的,则表示APP的运行环境不安全,退出APP的运行。

需要说明的是,在图8所示方法中,可替换的,还可以由APP比较第一MAC以及第四MAC,验证边缘狗模块是否合法,如:可以将上述步骤806~步骤807替换为:边缘狗模块向APP发送第一MAC,APP比较第一MAC以及第四MAC,验证边缘狗模块是否合法。

基于图8所示方法,可以由边缘狗模块在接收到APP发送的获取第一MAC的请求后,根据安全参数和/或APP的运行环境信息生成MAC,比较自身生成的MAC以及接收到的MAC,验证边缘狗模块是否合法,如:当自身生成的MAC与接收到的MAC相同时,表示边缘狗模块是合法的,并将验证结果反馈给APP,以便APP执行后续操作。如此,合法使用者可以通过边缘狗模块使用合法的安全参数以及其他参数计算出MAC,并匹配代理模块生成的MAC以及自身生成的MAC,验证对APP的操作是否合法,保证边缘狗模块的合法使用,实现只有拥有合法的安全参数等输入参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到该合法的输入参数而计算出与接收到的MAC不同的MAC,无法盗用该APP,与现有技术相比,图8所示方法可以保证MEC场景下APP使用的安全性。

下面以代理模块与APP分开部署,第一请求还携带激活APP指示,安全参数以及APP的运行环境信息为输入参数为例,对图8所示方法进行详细说明。

图9为本申请提供的又一种防破解方法的流程图,如图9所示,所述方法包括:

步骤901:APP接收来自APP使用者的激活请求。

其中,激活请求可以用于请求激活APP。该激活请求可以为APP使用者点击移动边缘主机上的人机交互界面而发出的请求。

步骤902:APP向代理模块发送第三请求。

其中,第三请求的相关描述、步骤902的执行过程可参照步骤801所述,不予赘述。

步骤903:代理模块接收第三请求,判断APP的激活次数是否小于最大允许激活次数;若APP的激活次数小于最大允许激活次数,执行步骤904~步骤914;反之,若APP的激活次数等于或大于最大允许激活次数,则代理模块向APP返回APP的激活次数已超过最大允许激活次数,流程结束。

步骤904:代理模块根据安全参数计算得到第四MAC。

其中,步骤904的执行过程可参照步骤802所述,不予赘述。

步骤905:代理模块向APP发送第四MAC。

其中,步骤905的执行过程可参照步骤803所述,不予赘述。

步骤906:APP向边缘狗模块发送第一请求。

其中,步骤906可参照步骤804所述,不予赘述。

步骤907:边缘狗模块接收第一请求,判断APP的运行环境信息是否包括在预设的运行环境信息中,若APP的运行环境信息包括在预设的运行环境信息中,则执行步骤908~步骤914;反之,则向APP发送运行环境信息不合法,流程结束。

步骤908:边缘狗模块判断APP的激活次数是否小于最大允许激活次数;若APP的激活次数小于最大允许激活次数,执行步骤909~步骤914;反之,若APP的激活次数等于或大于最大允许激活次数,则边缘狗模块向APP返回APP的激活次数已超过最大允许激活次数,流程结束。

步骤909:边缘狗模块将安全参数以及APP的运行环境信息作为输入参数,计算得到第一MAC。

其中,步骤909的执行过程可参照步骤805所述,不予赘述。

步骤910:边缘狗模块比较第一MAC以及第四MAC,验证边缘狗模块是否合法。

其中,步骤910的执行过程可参照步骤806所述,不予赘述。

步骤911:边缘狗模块向APP发送验证结果。

步骤912:若允许激活APP,则APP对APP进行激活,并在激活成功后,向代理模块、边缘狗模块发送APP被成功激活的激活成功消息。

步骤913:代理模块接收激活成功消息,将本地存储的APP的激活次数加1,同时,代理模块将APP的状态设置为“已激活”。

步骤914:边缘狗模块接收激活成功消息,将本地存储的APP的激活次数加1,同时,代理模块将APP的状态设置为“已激活”。

需要说明的是,在图9所示方法中,可替换的,还可以由APP比较第一MAC以及第四MAC,验证边缘狗模块是否合法,如:可以将上述步骤910~步骤911替换为:边缘狗模块向APP发送第一MAC,APP比较第一MAC以及第四MAC,验证是否允许激活APP。

基于图9所示方法,可以由边缘狗模块在接收到来自APP的对APP执行激活APP的请求后,根据安全参数和APP的运行环境信息生成MAC,比较自身生成的MAC以及接收到的MAC,验证边缘狗模块是否合法,如:当自身生成的MAC与接收到的MAC相同时,表示边缘狗模块是否合法,激活APP。如此,合法使用者可以通过边缘狗模块使用合法的安全参数以及APP的运行环境信息计算出期望的MAC,保证边缘狗模块的合法使用,实现只有拥有合法的安全参数等输入参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到该合法的输入参数而计算出与接收到的MAC不同的MAC,无法盗用该APP,并激活该APP。

下面以代理模块与APP分开部署,第一操作为运行APP,安全参数以及APP的运行环境信息为输入参数为例,对图8所示方法进行详细说明。

图10为本申请提供的又一种防破解方法的流程图,如图10所示,所述方法包括:

步骤1001:APP接收来自APP使用者的运行请求。

其中,运行请求可以用于请求运行APP。该运行请求可以为APP使用者点击移动边缘主机上的人机交互界面而发出的请求。

步骤1002:APP向代理模块发送第三请求。

其中,第三请求的相关描述、步骤1002的执行过程可参照步骤801所述,不予赘述。

步骤1003:代理模块接收第三请求,判断APP是否被激活;若APP被激活,执行步骤1004~步骤1011;反之,则代理模块向APP返回APP未被激活,流程结束。

步骤1004:代理模块根据安全参数以及APP的运行环境信息计算得到第四MAC。

其中,步骤1004的执行过程可参照步骤802所述,不予赘述。

步骤1005:代理模块向APP发送第四MAC。

其中,步骤1005的执行过程可参照步骤803所述,不予赘述。

步骤1006:APP向边缘狗模块发送第一请求。

其中,第一请求的相关描述以及步骤1006可参照步骤804所述,不予赘述。

步骤1007:边缘狗模块接收第一请求,判断APP的运行环境信息是否包括在预设的运行环境信息中,若APP的运行环境信息包括在预设的运行环境信息中,则执行步骤1008~步骤1011;反之,则向APP发送运行环境信息不合法,流程结束。

步骤1008:边缘狗模块判断APP是否被激活;若APP被激活,执行步骤1009~步骤1011;反之,则代理模块向APP返回APP未被激活,流程结束。

步骤1009:边缘狗模块将安全参数以及APP的运行环境信息作为输入参数,计算得到第一MAC。

其中,步骤1009的执行过程可参照步骤805所述,不予赘述。

步骤1010:边缘狗模块向APP发送第一MAC。

步骤1011:APP比较第一MAC以及第四MAC,验证边缘狗模块是否合法。

示例性的,若第一MAC与第四MAC相同,表示边缘狗模块是合法的,允许运行APP,继续运行APP。反之,若第一MAC与第四MAC不相同,表示边缘狗模块是非法的,停止运行APP。

需要说明的是,在图10所示方法中,可替换的,还可由边缘狗模块比较第一MAC以及第四MAC,验证边缘狗模块是非法的,如:可以将上述步骤1010~步骤1011替换为:边缘狗模块比较第一MAC以及第四MAC,验证是否允许运行APP,并将验证结果发送给APP。

基于图10所示方法,可以由代理模块在接收到来自APP的运行APP的请求后,根据安全参数和APP的运行环境信息生成MAC,并将MAC反馈给APP,由边缘狗模块在接收到来自APP的运行APP的请求后,根据安全参数和APP的运行环境信息生成MAC,并将MAC反馈给APP,APP比较代理模块生成的MAC以及边缘狗模块生成的MAC,验证是否允许运行APP。如此,合法使用者可以通过边缘狗模块使用合法的安全参数以及APP的运行环境信息计算出期望的MAC,保证边缘狗模块的合法使用,实现只有拥有合法的安全参数等输入参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到合法的输入参数而计算出与接收到的MAC不同的MAC,无法盗用并运行该APP。

下面以代理模块与APP分开部署,对APP去激活时的防破解过程进行描述:

图11为本申请提供的又一种防破解方法的流程图,如图11所示,所述方法包括:

步骤1101:APP确定去激活APP的条件满足。

其中,去激活APP的条件、以及APP确定去激活APP的条件满足的过程可参照上述步骤701中所述,不予赘述。

步骤1102:APP向代理模块发送第四请求。

其中,第四请求可以用于请求去激活APP。第四请求可以包括APP的标识、APP的序列号、时间戳等一个或者多个参数。

步骤1103:代理模块接收第四请求,根据安全参数,计算得到第二MAC。

其中,第二MAC可以用于验证去激活APP的操作是否合法。

示例性的,代理模块可以参照上述步骤702执行步骤1103,不予赘述。

步骤1104:若去激活APP的条件为条件(一)时,代理模块将本地存储的APP的激活次数减1,同时,将APP的状态标记为“去激活”;若去激活APP的条件为条件(二)时,代理模块将APP的状态标记为“去激活”。

需要说明的是,本申请不限定步骤1103、步骤1104的执行顺序,可以先后执行,也可以同时执行,还可以先执行步骤1104,再执行步骤1103,不予限制。

步骤1105:代理模块向APP发送第二MAC。

步骤1106:APP向边缘狗模块发送第二请求。

其中,第二请求可以用于请求去激活APP,第二请求可以包括第二MAC。第二请求还可以命名为去激活请求。

其中,代理模块向边缘狗模块发送第二请求可参照步骤401中代理模块向边缘狗模块发送第一请求的过程,不予赘述。

步骤1107:边缘狗模块接收第二请求,将安全参数作为输入参数,计算得到第三MAC。

其中,步骤1106的执行过程可参照步骤706所述,不予赘述。

步骤1108:边缘狗模块比较第二MAC以及第三MAC,验证是否允许去激活APP。

其中,步骤1108的执行过程可参照步骤405所述,不予赘述。

步骤1109:边缘狗模块向代理模块发送去激活响应。

其中,去激活响应可以用于指示是否允许去激活APP,如:当第二MAC与第三MAC相同时,去激活响应用于指示允许去激活APP,反之,当第二MAC与第三MAC不同时,去激活响应可以用于指示不允许去激活APP。

步骤1110:若允许去激活APP,且去激活APP的条件为条件(一)时,边缘狗模块将本地存储的APP的激活次数减1,同时,将APP的状态标记为“去激活”;若允许去激活APP,且去激活APP的条件为条件(二)时,边缘狗模块将APP的状态标记为“去激活”。

需要说明的是,本申请不限定步骤1109、步骤1110的执行顺序,可以先执行步骤1109,再执行步骤1110,也可以先执行步骤1110,再执行步骤1109,不予限制。

基于图11所示方法,可以由边缘狗模块在接收到对APP执行去激活APP的请求后,根据安全参数生成MAC,并将自身生成的MAC以及接收到的MAC进行比较,验证是否允许去激活APP,如:当自身生成的MAC与接收到的MAC相同时,表示允许去激活APP。如此,合法使用者可以通过边缘狗模块使用合法的安全参数以及APP的去激活环境信息计算出期望的MAC,保证边缘狗模块的合法使用,实现只有拥有合法的安全参数等输入参数的使用者才能使用该APP,而非法使用者即使获取到了该APP,也会因无法获取到该合法的输入参数而计算出与接收到的MAC不同的MAC,无法盗用并去激活该APP。

为了保证代理模块与边缘狗模块两端的APP的激活次数同步,本申请还提供了一种同步方法。图12为本申请提供的又一种状态同步方法的流程图,如图12所示,包括:

步骤1201:代理模块向边缘狗模块发送状态同步请求。

其中,状态同步请求可以包括APP的激活次数。

示例性的,代理模块可以在APP的激活状态未成功通知给边缘狗模块的情况下,向边缘狗模块发送状态同步请求;或者,周期性地向边缘狗模块发送状态同步请求,不予限制。

步骤1202:边缘狗模块接收来自代理模块的状态同步请求,将本地存储的APP的激活次数更新为APP的激活次数。

步骤1203:边缘狗模块向代理模块发送状态同步响应。

其中,状态同步响应可以用于指示边缘狗模块将自身的APP的激活次数同步为与代理模块的APP的激活次数一致。

基于图12所述的方法,可以同步代理模块、边缘狗模块上存储的APP的激活次数,使二者对APP的激活次数的理解保持一致。

上述本申请提供的实施例中,分别从代理模块、边缘狗模块之间交互的角度对本申请实施例提供的方法进行了介绍。可以理解的是,各个网元,例如代理模块、边缘狗模块为了实现上述本申请实施例提供的方法中的各功能,网络设备和终端设备包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对代理模块、边缘狗模块进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图13示出了一种边缘狗模块130的结构图,该边缘狗模块130可以部署在移动边缘主机的VM/容器上。该边缘狗模块130可以用于执行上述方法实施例中涉及的边缘狗模块的功能。图13所示边缘狗模块130包括:接收单元1301,处理单元1302、发送单元1303;

一种可能的设计中,接收单元1301,用于接收用于请求第一MAC的、包括APP的运行环境信息的第一请求。例如,接收单元1301用于支持边缘狗模块130执行步骤402、步骤805。

处理单元1302,用于根据APP的运行环境信息,计算得到用于验证边缘狗模块是否合法的第一MAC。例如,处理单元1302用于支持边缘狗模块130执行步骤402、步骤805、步骤806。

发送单元1303,用于发送第一MAC。例如,发送单元1303用于支持边缘狗模块130执行步骤403、步骤807。

又一种可能的设计中,接收单元1301,用于接收用于请求获取第一MAC的、且包括第四MAC的第一请求,第四MAC用于验证边缘狗模块是否合法;处理单元1302,用于根据APP的运行环境信息,计算得到第一MAC,比较第一MAC和第四MAC;发送单元1303,用于发送第一请求的响应。其中,当第一MAC和第四MAC相同时,第一请求的响APP于指示边缘狗模块是合法的,当第一MAC和第四MAC不同时,第一请求的响APP于指示边缘狗模块是非法的。

又一种可能的设计中,接收单元1301,用于接收用于请求第一MAC的第一请求;处理单元1302,用于根据安全参数,计算得到用于验证边缘狗模块是否合法的第一MAC;发送单元1303,用于发送第一MAC。

又一种可能的设计中,接收单元1301,用于接收用于请求获取第一MAC的、且包括第四MAC的第一请求,第四MAC用于验证边缘狗模块是否合法;处理单元1302,用于根据安全参数,计算得到第一MAC,比较第一MAC和第四MAC;发送单元1303,用于发送第一请求的响应。其中,当第一MAC和第四MAC相同时,第一请求的响APP于指示边缘狗模块是合法的,当第一MAC和第四MAC不同时,第一请求的响APP于指示边缘狗模块是非法的。

再一种可能的设计中,接收单元1301,用于接收用于请求去激活APP的、包括第二MAC的第二请求,第二MAC用于验证去激活APP的操作是否合法;处理单元1302,用于根据安全参数,计算得到第三MAC,比较第二MAC和第三MAC;发送单元1303,用于发送去激活响应。其中,当第二MAC和第三MAC相同时,去激活响应用于指示APP去激活成功,当第二MAC和第三MAC不同时,去激活响应用于指示APP去激活失败。

其中,安全参数、APP的运行环境信息的相关描述可参照上述图4~图12所示方法中所述,接收单元1301、处理单元1302、发送单元1303的具体执行过程可参照上述图4~图12所示方法中边缘狗模块所指定的动作,不予赘述。

在采用对应各个功能划分各个功能模块的情况下,图14示出了一种代理模块140的结构图,该代理模块140可以部署在移动边缘主机的VM/容器上。该代理模块140可以用于执行上述方法实施例中涉及的代理模块的功能。图14所示代理模块140包括:接收单元1401,处理单元1402、发送单元1403;

一种可能的设计中,发送单元1403,用于向边缘狗模块发送用于请求第一MAC的、包括APP的运行环境信息的第一请求。例如,发送单元1403可以支持代理模块140执行步骤401。

接收单元1401,用于接收来自边缘狗模块的用于验证边缘狗模块是否合法的第一MAC。例如,接收单元1401可以支持代理模块140执行步骤404。

处理单元1402,用于根据APP的运行环境信息,计算得到第四MAC,比较第一MAC与第四MAC,若第一MAC与第四MAC相同,则确定边缘狗模块合法,若第一MAC与第四MAC不同,则确定边缘狗模块非法。例如,处理单元1402可以支持代理模块140执行步骤404、步骤405。

又一种可能的设计中,接收单元1401,用于接收来自APP的用于请求第四MAC的第三请求;处理单元1402,用于根据安全参数,计算得到用于验证边缘狗模块是否合法的第四MAC;发送单元1403,用于向APP发送第四MAC。

又一种可能的设计中,发送单元1403,用于向边缘狗模块发送用于请求第一MAC的第一请求;接收单元1401,用于接收来自边缘狗模块的用于验证边缘狗模块是否合法的第一MAC;处理单元1402,用于根据安全参数计算得到第四MAC,比较第一MAC与第四MAC,若第一MAC与第四MAC相同,则确定边缘狗模块合法,反之,则确定边缘狗模块非法。

再一种可能的设计中,接收单元1401,用于接收来自APP的用于请求第四MAC的、包括APP的运行环境信息的第三请求。例如,接收单元1401可以支持代理模块140执行步骤802。

处理单元1402,用于根据APP的运行环境信息,计算得到用于验证边缘狗模块是否合法的第四MAC。例如,处理单元1402可以支持代理模块140执行步骤802。

发送单元1403,用于向APP发送第四MAC。例如,发送单元1403支持代理模块140执行步骤803。

其中,安全参数、APP的运行环境信息的相关描述可参照上述图4~图12所示方法中所述,接收单元1401、处理单元1402、发送单元1403的具体执行过程可参照上述图4~图12所示方法中代理模块所指定的动作,不予赘述。

本申请实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机程序来指令相关的硬件完成,该程序可存储于上述计算机可读存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。计算机可读存储介质可以是前述任一实施例的通信装置(包括数据发送端和/或数据接收端)的内部存储单元,例如通信装置的硬盘或内存。上述计算机可读存储介质也可以是上述通信装置的外部存储设备,例如上述通信装置上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,上述计算机可读存储介质还可以既包括上述通信装置的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述通信装置所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

在又一种可能的设计中,在某种应用场景下,APP可能部署在客户端(client)和服务器(server)。客户端通常部署在位于前端的终端中,客户端上部署的APP具备较强的防复制和破解特性,而服务器部署在后端的虚拟环境,如:部署在MEC系统中,其内部署的APP易被复制和破解,降低服务器上部署的APP的安全性。

为解决APP部署在客户端、服务器时,APP在后端服务器中易被复制和破解的风险,本申请实施例还提供一种防破解方法,该方法中,由前端的终端提供校验MAC值供后端的服务器校验服务器上部署的APP是否合法,以便在APP不合法的情况下,采用相应补救措施或者处理措施,提高服务器上部署的APP的安全性。通过该防破解方法可以有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

需要说明的是,本申请实施例中,下述终端可以指部署有客户端,客户端上部署有APP的终端,该客户端可以称为APP客户端;此外,为了便于描述,可以将部署有APP的服务器称为APP服务器。

下面结合说明书附图15-图22,为本申请提供的又一种防破解方法进行描述。

图15为本申请实施例提供的又一种系统架构图,该系统适用于APP部署在客户端和服务器的场景。如图15所示,该系统可以包括:终端、APP服务器,还可以包括MEP以及NFVI。其中终端上部署有APP客户端,APP客户端上部署有代理模块,该代理模块可以用于执行下述方法实施例中终端的执行过程,此外,该终端还可以部署有安全模块,该安全模块存储有硬件安全参数,该安全模块可以为第五代(5

其中,本申请实施例中,硬件安全参数可以用于验证APP服务器上的APP是否合法,硬件安全参数可以预先配置在终端中的安全模块中和/或预先配置在NFVI的安全模块中。具体的,硬件安全参数可以包括但不限于安全芯片标识(indentifier,ID)、安全芯片预置参数,安全芯片中处理器ID中的一种或者多种参数,安全芯片预置参数可以包括但不限于随机数或者根秘钥。

需要说明的是,图15仅为示例性附图,图15中MEP和APP服务器可以部署在NFVI中,也可以部署在NFVI之外,不予限制,本申请以MEP和APP服务器独立部署在NFVI之外为例进行说明,当MEP和APP服务器独立部署在NFVI之外时,APP服务器可以通过MEP与NFVI交互。此外,除图15中所述部件之外,该系统还包括其他部件,不予限制。

其中,终端可以为为终端设备(terminal equipment)或者用户设备(userequipment,UE)或者移动台(mobile station,MS)或者移动终端(mobile terminal,MT)等。具体的,终端可以是手机(mobile phone)、平板电脑或带无线收发功能的电脑,还可以是虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制中的无线终端、无人驾驶中的无线终端、远程医疗中的无线终端、智能电网中的无线终端、智慧城市(smart city)中的无线终端、智能家居、车载终端等。

APP服务器可以用于为用户提供APP服务,如图15所述,该APP服务器可以包括代理模块,该代理模块可以执行下述图16~图22所示方法实施例中APP服务器所指定的动作。

其中,NFVI包含了虚拟化层(hypervisor或者容器管理系统,如Docker,以及vSwitch)以及物理资源,如交换机、存储设备等。NFVI可以跨越若干个物理位置进行部署,此时,为这些物理站点提供数据连接的网络也称为NFVI的一部分。为了兼容基于现有的网络架构,NFVI的网络接入点要能够跟其它物理网络互联互通。NFV支持多vendor,NFVI是一种通用的虚拟化层,所有虚拟资源应该是在一个统一共享的资源池中,不应该受制或者特殊对待某些运行其上的虚拟网络功能(virtualized network function,VNF)。

下面结合图15所述系统,对本申请实施例的又一种防破解方法进行描述。

图16为本申请实施例提供的一种防破解方法的流程图,该方法可以由部署有APP客户端的终端、APP服务器以及MEP平台交互执行,终端、APP服务器之间建立有安全传输层协议(transport layer security,TLS)连接,APP服务器与MEP之间建立有TLS连接;如图16所示,所述方法可以包括:

步骤1601:APP服务器向终端发送第一请求。

其中,第一请求可以用于请求第一MAC,第一MAC可以用于验证APP是否合法。

需要说明的是,本申请各实施例中,验证APP是否合法还可以描述成/替换成验证APP服务器上的APP是否合法,或者,验证APP服务器是否运作在安全环境中,或者,验证前端的APP客户端和MEP是否合法。

具体的,第一请求可以包括MEP的标识,还可以包括APP的序列号、APP的ID、时间戳(timestamp)、计数器(counter)等其他参数中一个或者多个参数。

其中,MEP的标识可以用于唯一标识MEP。APP的序列号、APP的ID、时间戳的相关描述可参照图4中所述,不予赘述。计数器可以为成功请求第一MAC的次数,每成功请求第一MAC一次,该计数器的取值对应加1。

具体的,第一请求可以是指纹请求,该指纹请求可以用来校验服务器上的APP或者APP服务器是否运作在安全环境,或者校验前端的APP客户端和MEP的合法性。

步骤1602:终端接收第一请求,根据MEP的标识计算得到第一MAC。

其中,终端根据MEP的标识计算得到第一MAC可以包括:终端根据MEP的标识和硬件安全参数,计算得到第一MAC。如:将MEP的标识作为输入参数输入到上述预设算法f得到第一MAC。进一步的,终端还可以根据密钥、APP的序列号、APP的ID、时间戳、计数器等其他参数中一个或者多个参数计算第一MAC,如:将密钥、APP的序列号、APP的ID、时间戳、计数器等其他参数中一个或者多个参数作为输入参数输入到上述预设算法f得到第一MAC。

步骤1603:终端向APP服务器发送第一MAC。

示例性的,终端向APP服务器发送第一请求的响应,第一请求的响应可以包括第一MAC。除携带第一MAC之外,第一请求的响应还可以包括其他信息,不予限制。

步骤1604:APP服务器接收第一MAC,向MEP发送第二请求。

其中,第二请求可以用于请求第二MAC;第二请求可以携带MEP的标识,还可以携带其他信息,如:APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤1605:MEP接收第二请求,根据MEP的标识计算得到第二MAC。

其中,MEP根据MEP的标识计算得到第二MAC可参照步骤1602中终端根据MEP的标识计算得到第二MAC的过程,不予赘述。

步骤1606:MEP向APP服务器发送第二MAC。

示例性的,MEP可以向APP服务器发送第二请求的响应,第二请求的响应可以包括第二MAC。

步骤1607:APP服务器接收第二MAC,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法,APP服务器的运行环境不安全。

需要说明的是,图16所述终端的执行动作可以由终端中APP客户端内的代理模块执行。

基于图16所示方法,可以由前端的终端向APP服务器提供校验MAC值,以便APP服务器根据自身计算的MAC与终端计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

图17为本申请实施例提供的一种防破解方法的流程图,该方法可以由部署有APP客户端的终端、APP服务器以及NFVI交互执行,终端、APP服务器之间建立有TLS连接,NFVI中部署有安全模块,安全模块中预先配置有硬件安全参数。如图17所示,所述方法可以包括:

步骤1701:NFVI向APP服务器发送硬件安全参数。

其中,硬件安全参数可以预先配置在NFVI内的安全模块中,硬件安全参数的相关描述可参照上述方法实施例中所述,不予赘述。

具体的,图17所示方法中NFVI指定的动作可以由NFVI内的安全模块执行。

步骤1702:APP服务器接收硬件安全参数,向终端发送第一请求。

其中,第一请求可以用于请求第一MAC,第一MAC可以用于验证APP是否合法。

具体的,第一请求可以包括MEP的标识和硬件安全参数,还可以包括APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤1703:终端接收第一请求,根据MEP的标识和硬件安全参数计算得到第一MAC。

其中,终端根据MEP的标识计算得到第一MAC可以包括:终端根据MEP的标识和硬件安全参数,计算得到第一MAC。如:将MEP的标识和硬件安全参数作为输入参数输入到上述预设算法f得到第一MAC。进一步的,终端还可以根据密钥、APP的序列号、APP的ID、时间戳、计数器等其他参数中一个或者多个参数计算第一MAC,如:将密钥、APP的序列号、APP的ID、时间戳、计数器等其他参数中一个或者多个参数作为输入参数输入到上述预设算法f得到第一MAC。

步骤1704:终端向APP服务器发送第一MAC。

示例性的,终端向APP服务器发送第一请求的响应,第一请求的响应可以包括第一MAC。除携带第一MAC之外,第一请求的响应还可以包括其他信息,不予限制。

步骤1705:APP服务器接收第一MAC,向NFVI发送第二请求。

其中,第二请求可以用于请求第二MAC;第二请求可以携带MEP的标识,还可以携带其他信息,如:APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤1706:NFVI接收第二请求,根据MEP的标识和硬件安全参数计算得到第二MAC。

其中,NFVI根据MEP的标识和硬件安全参数计算得到第二MAC的过程可参照步骤1703中终端计算第一MAC的过程,不予赘述。

步骤1707:NFVI向APP服务器发送第二MAC。

示例性的,NFVI可以向APP服务器发送第二请求的响应,第二请求的响应可以包括第二MAC。

步骤1708:APP服务器接收第二MAC,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

可替换的,还可以不执行步骤1707、步骤1708,而是将第一MAC携带在第二请求中发送给NFVI,由NFVI在计算得到第二MAC后,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

需要说明的是,图17所述终端的执行动作可以由终端中APP客户端内的代理模块执行。

基于图17所示方法,可以由APP服务器将NFVI中的硬件安全参数发送给终端,由前端的终端根据硬件安全参数计算MAC值,并向APP服务器提供校验MAC值,以便APP服务器根据NFVI计算的MAC与终端计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

图18为本申请实施例提供的一种防破解方法的流程图,该方法可以由部署有APP客户端的终端、APP服务器、MEP以及NFVI交互执行,终端、APP服务器之间建立有TLS连接,APP服务器与MEP之间建立有TLS连接;如图18所示,所述方法可以包括:

步骤1801:NFVI向MEP发送硬件安全参数。

其中,硬件安全参数可以预先配置在NFVI内的安全模块中,硬件安全参数的相关描述可参照上述方法实施例中所述,不予赘述。

具体的,图18所示方法中NFVI指定的动作可以由NFVI内的安全模块执行。

步骤1802:MEP接收硬件安全参数,向APP服务器发送硬件安全参数。

步骤1803:APP服务器接收硬件安全参数,向终端发送第一请求。

其中,第一请求可以用于请求第一MAC,第一MAC可以用于验证APP是否合法。

具体的,第一请求可以包括MEP的标识和硬件安全参数,还可以包括APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤1804:终端接收第一请求,根据MEP的标识和硬件安全参数计算得到第一MAC。

其中,终端根据MEP的标识和硬件安全参数计算得到第一MAC的过程如上述图17所示方法中步骤1703所述,不予赘述。

步骤1805:终端向APP服务器发送第一MAC。

示例性的,终端向APP服务器发送第一请求的响应,第一请求的响应可以包括第一MAC。除携带第一MAC之外,第一请求的响应还可以包括其他信息,不予限制。

步骤1806:APP服务器接收第一MAC,向MEP发送第二请求。

其中,第二请求可以用于请求第二MAC;第二请求可以携带MEP的标识,还可以携带其他信息,如:APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤1807:MEP接收第二请求,向NFVI发送第二请求。

步骤1808:NFVI接收第二请求,根据MEP的标识和硬件安全参数计算得到第二MAC。

其中,NFVI根据MEP的标识和硬件安全参数计算得到第二MAC与步骤1804中终端根据MEP的标识和硬件安全参数计算得到第二MAC的过程相同,不予赘述。

步骤1809:NFVI向MEP发送第二MAC。

步骤1810:MEP向APP服务器发送第二MAC。

示例性的,MEP可以向APP服务器发送第二请求的响应,第二请求的响应可以包括第二MAC。

步骤1811:APP服务器接收第二MAC,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

可替换的,还可以不执行步骤1809~步骤1811,而是将第一MAC携带在第二请求中发送给MEP,由MEP发送给NFVI,由NFVI在计算得到第二MAC后,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

需要说明的是,图18所述终端的执行动作可以由终端中APP客户端内的代理模块执行。

基于图18所示方法,可以由NFVI将NFVI中的硬件安全参数通过MEP、APP服务器发送给终端,由前端的终端根据硬件安全参数计算MAC值,并向APP服务器提供校验MAC值,同时NFVI服务器根据硬件安全参数计算MAC值,并通过MEP向APP服务器提供校验MAC值,以便APP服务器根据终端计算的MAC与NFVI计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

图19为本申请实施例提供的一种防破解方法的流程图,该方法可以由部署有APP客户端的终端、APP服务器以及NFVI交互执行,终端、APP服务器之间建立有TLS连接,终端内的安全模块、NFVI内的安全模块中均预先配置有硬件安全参数,硬件安全参数的相关描述可参照上述,不予赘述;如图19所示,所述方法可以包括:

步骤1901:APP服务器向APP客户端内的代理模块发送第一请求。

其中,第一请求可以用于请求第一MAC,第一MAC可以用于验证APP是否合法。

具体的,第一请求可以包括MEP的标识,还可以包括APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤1902:APP客户端内的代理模块接收第一请求,向终端的安全模块发送第一请求。

步骤1903:终端的安全模块接收第一请求,根据MEP的标识和硬件安全参数计算得到第一MAC。

其中,终端的安全模块根据MEP的标识和硬件安全参数计算得到第一MAC的过程如上述图17所示方法中步骤1703所述,不予赘述。

步骤1904:终端内的安全模块向APP客户端内的代理模块发送第一MAC。

步骤1905:APP客户端内的代理模块接收第一MAC,向APP服务器发送第一MAC。

示例性的,APP客户端内的代理模块向APP服务器发送第一请求的响应,第一请求的响应可以包括第一MAC。

步骤1906:APP服务器接收第一MAC,向NFVI发送第二请求。

其中,第二请求可以用于请求第二MAC;第二请求可以携带MEP的标识,还可以携带其他信息,如:APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤1907:NFVI接收第二请求,根据MEP的标识和硬件安全参数计算得到第二MAC。

其中,NFVI根据MEP的标识和硬件安全参数计算得到第二MAC可参照步骤1903中终端的安全模块根据MEP的标识和硬件安全参数计算得到第二MAC的过程,不予赘述。

具体的,图19所示方法中NFVI指定的动作可以由NFVI内的安全模块执行。

步骤1908:NFVI向APP服务器发送第二MAC。

示例性的,NFVI可以向APP服务器发送第二请求的响应,第二请求的响应可以包括第二MAC。

步骤1909:APP服务器接收第二MAC,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

可替换的,还可以不执行步骤1906~步骤1907,而是将第一MAC携带在第二请求中发送给MEP,由MEP发送给NFVI,由NFVI在计算得到第二MAC后,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

需要说明的是,图19所述终端的执行动作可以由终端中APP客户端内的代理模块执行。

基于图19所示方法,可以由前端的终端根据硬件安全参数计算MAC值,并向APP服务器提供校验MAC值,同时NFVI服务器根据硬件安全参数计算MAC值,并向APP服务器提供校验MAC值,以便APP服务器根据终端计算的MAC与NFVI计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

图20为本申请实施例提供的一种防破解方法的流程图,该方法可以由部署有APP客户端的终端、APP服务器交互执行,终端、APP服务器之间建立有TLS连接;终端内的安全模块的安全模块中预先配置有硬件安全参数,硬件安全参数的相关描述可参照上述,不予赘述;如图20所示,所述方法可以包括:

步骤2001:APP服务器向APP客户端内的代理模块发送第一请求。

其中,第一请求可以用于请求第一MAC,第一MAC可以用于验证APP是否合法。

具体的,第一请求可以包括MEP的标识,还可以包括APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤2002:APP客户端的代理模块接收第一请求,向终端内的安全模块发送第一请求。

步骤2003:终端的安全模块接收第一请求,根据MEP的标识和硬件安全参数计算得到第一MAC。

其中,终端的安全模块根据MEP的标识和硬件安全参数计算得到第一MAC的过程如上述图17所示方法中步骤1703所述,不予赘述。

步骤2004:终端内的安全模块向APP客户端内的代理模块发送第一MAC。

步骤2005:APP客户端内的代理模块接收第一MAC,向APP服务器发送第一MAC。

示例性的,APP客户端内的代理模块向APP服务器发送第一请求的响应,第一请求的响应可以包括第一MAC,除包括第一MAC之外,第一请求的响应还包括硬件安全参数。

步骤2006:APP服务器接收第一MAC,根据MEP的标识和硬件安全参数计算得到第二MAC。

其中,APP服务器根据MEP的标识和硬件安全参数计算得到第二MAC的过程可参照上述终端根据MEP的标识和硬件安全参数计算得到第一MAC的过程,不予赘述。

步骤2007:APP服务器比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

需要说明的是,图20所述终端的执行动作可以由终端中APP客户端内的代理模块执行。

基于图20所示方法,可以由前端的终端根据硬件安全参数计算MAC值,并向APP服务器提供校验MAC值,同时APP服务器根据硬件安全参数计算MAC值,并根据终端计算的MAC与自己计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

图21为本申请实施例提供的一种防破解方法的流程图,该方法可以由部署有APP客户端的终端、APP服务器、MEP以及NFVI交互执行,终端、APP服务器之间建立有TLS连接,APP服务器与MEP之间建立有TLS连接,终端、NFVI中均预配置由硬件安全参数,硬件安全参数的相关描述可参照上述,不予赘述;如图21所示,所述方法可以包括:

步骤2101:APP服务器向APP客户端内的代理模块发送第一请求。

其中,第一请求可以用于请求第一MAC,第一MAC可以用于验证APP是否合法。

具体的,第一请求可以包括MEP的标识,还可以包括APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤2102:APP客户端的代理模块接收第一请求,向终端内的安全模块发送第一请求。

步骤2103:终端的安全模块接收第一请求,根据MEP的标识和硬件安全参数计算得到第一MAC。

其中,终端的安全模块根据MEP的标识和硬件安全参数计算得到第一MAC的过程如上述图17所示方法中步骤1703所述,不予赘述。

步骤2104:终端内的安全模块向APP客户端内的代理模块发送第一MAC。

步骤2105:APP客户端内的代理模块接收第一MAC,向APP服务器发送第一MAC。

示例性的,APP客户端内的代理模块向APP服务器发送第一请求的响应,第一请求的响应可以包括第一MAC。

步骤2106:APP服务器接收第一MAC,向MEP发送第二请求。

其中,第二请求可以用于请求第二MAC;第二请求可以携带MEP的标识,还可以携带其他信息,如:APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤2107:MEP接收第二请求,向NFVI发送第二请求。

步骤2108:NFVI接收第二请求,根据MEP的标识和硬件安全参数计算得到第二MAC。

其中,NFVI根据MEP的标识和硬件安全参数计算得到第二MAC与终端根据MEP的标识和硬件安全参数计算得到第二MAC的过程相同,不予赘述。

具体的,图21所示方法中NFVI指定的动作可以由NFVI内的安全模块执行。

步骤2109:NFVI向MEP发送第二MAC。

步骤2110:MEP向APP服务器发送第二MAC。

示例性的,MEP可以向APP服务器发送第二请求的响应,第二请求的响应可以包括第二MAC。

步骤2111:APP服务器接收第二MAC,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

可替换的,还可以不执行步骤2107~步骤2109,而是将第一MAC携带在第二请求中发送给MEP,由MEP发送给NFVI,由NFVI在计算得到第二MAC后,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

需要说明的是,图21所述终端的执行动作可以由终端中APP客户端内的代理模块执行。

基于图21所示方法,可以由前端的终端根据硬件安全参数计算MAC值,并向APP服务器提供校验MAC值,同时APP服务器请求NFVI根据硬件安全参数计算MAC值,并根据终端计算的MAC与NFVI计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

图22为本申请实施例提供的一种防破解方法的流程图,该方法可以由部署有APP客户端的终端、APP服务器以及MEP平台交互执行,终端、APP服务器之间建立有TLS连接,APP服务器与MEP之间建立有TLS连接,终端中预配置由硬件安全参数,硬件安全参数的相关描述可参照上述,不予赘述;如图22所示,所述方法可以包括:

步骤2201:APP服务器向APP客户端内的代理模块发送第一请求。

其中,第一请求可以用于请求第一MAC,第一MAC可以用于验证APP是否合法。

具体的,第一请求可以包括MEP的标识,还可以包括APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤2202:APP客户端的代理模块接收第一请求,向终端内的安全模块发送第一请求。

步骤2203:终端的安全模块接收第一请求,根据MEP的标识和硬件安全参数计算得到第一MAC。

其中,终端内的安全模块根据MEP的标识和硬件安全参数计算得到第一MAC的过程如上述图17所示方法中步骤1703所述,不予赘述。

步骤2204:终端内的安全模块向APP客户端内的代理模块发送第一MAC。

步骤2205:APP客户端内的代理模块接收第一MAC,向APP服务器发送第一MAC。

示例性的,终端向APP服务器发送第一请求的响应,第一请求的响应可以包括第一MAC、硬件安全参数。

步骤2206:APP服务器接收第一MAC,向MEP发送第二请求。

其中,第二请求可以用于请求第二MAC;第二请求可以携带MEP的标识和硬件安全参数,还可以携带其他信息,如:APP的序列号,APP的ID、时间戳、计数器等其他参数中一个或者多个参数。MEP的标识、APP的序列号,APP的ID、时间戳、计数器的相关描述可参照上述,不予赘述。

步骤2207:MEP接收第二请求,根据MEP的标识和硬件安全参数计算得到第二MAC。

其中,MEP根据MEP的标识和硬件安全参数计算得到第二MAC与终端根据MEP的标识和硬件安全参数计算得到第二MAC的过程相同,不予赘述。

步骤2208:MEP向APP服务器发送第二MAC。

示例性的,MEP可以向APP服务器发送第二请求的响应,第二请求的响应可以包括第二MAC。

步骤2209:APP服务器接收第二MAC,比较第一MAC与第二MAC,若第一MAC与第二MAC相同,则确定APP合法,若第一MAC与第二MAC不同,则确定APP非法。

基于图22所示方法,可以由前端的终端根据硬件安全参数计算MAC值,并向APP服务器提供校验MAC值,同时APP服务器根据硬件安全参数计算MAC值,并根据终端计算的MAC与自身计算得到的MAC进行APP合法性的校验,有效地将前后端进行绑定,借助前端的终端使得后端部署有APP的服务器也具备防复制和破解特性。

需要说明的是,本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分开部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、终端或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,SSD)等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种防破解方法及装置
  • 一种遥控密码装置防破解方法
技术分类

06120113083686