应用程序的保护方法与流程

文档序号:33756568发布日期:2023-04-18 15:41阅读:66来源:国知局
应用程序的保护方法与流程

本技术实施例涉及计算机,特别涉及一种应用程序的保护方法。


背景技术:

1、应用程序是指为完成某项或多项特定工作的计算机程序,它运行在非安全世界的用户模式,可以和用户进行交互,具有可视的用户界面。由于应用程序安装包没有加密,并且安装运行在非安全世界,因此,应用程序的程序代码有被用户恶意窃取、篡改的风险。

2、因此,需要一种应用程序的保护方法,防止应用程序的程序代码被窃取、篡改,进而保护应用程序的机密性和完整性。


技术实现思路

1、本技术实施例提供了一种应用程序的保护方法。所述技术方案如下:

2、第一方面,本技术实施例提供了一种应用程序的保护方法,所述方法包括:

3、终端设备接收服务器发送的目标应用程序的目标程序代码,所述目标程序代码为基于第一密钥对所述目标应用程序的初始程序代码加密得到的程序代码;

4、所述终端设备向所述服务器发送机密计算运行环境对应的公钥;

5、所述服务器接收所述终端设备发送的机密计算运行环境对应的公钥,根据所述公钥对所述第一密钥进行加密,得到加密之后的第二密钥;

6、所述服务器向所述终端设备发送所述第二密钥;

7、所述终端设备接收所述服务器返回的第二密钥,对所述第二密钥进行解密,得到所述第一密钥;

8、所述终端设备根据所述第一密钥对所述目标程序代码进行解密,得到所述初始程序代码,通过所述机密计算运行环境运行所述初始程序代码。

9、第二方面,本技术实施例提供了一种应用程序的保护方法,所述方法包括:

10、接收服务器发送的目标应用程序的目标程序代码,所述目标程序代码为基于第一密钥对所述目标应用程序的初始程序代码加密得到的程序代码;

11、向所述服务器发送机密计算运行环境对应的公钥;

12、接收所述服务器返回的第二密钥,所述第二密钥为基于所述公钥对所述第一密钥加密得到的密钥;

13、对所述第二密钥进行解密,得到所述第一密钥;

14、根据所述第一密钥对所述目标程序代码进行解密,得到所述初始程序代码,通过所述机密计算运行环境运行所述初始程序代码。

15、在一种可能的实现方式中,所述对所述第二密钥进行解密,得到所述第一密钥,包括:

16、获取所述机密计算运行环境对应的私钥;

17、根据所述私钥对所述第二密钥进行解密,得到所述第一密钥。

18、在一种可能的实现方式中,所述方法还包括:

19、确定所述公钥对应的第一签名;

20、所述向所述服务器发送机密计算运行环境对应的公钥,包括:

21、向所述服务器发送所述机密计算运行环境对应的公钥和所述第一签名,所述第一签名用于所述服务器确定所述公钥是否发生变化。

22、在一种可能的实现方式中,所述方法还包括:

23、获取目标信息,所述目标信息包括所述目标程序代码的相关信息、所述机密计算运行环境的相关信息和所述公钥;

24、确定所述目标信息对应的第二签名;

25、所述向所述服务器发送机密计算运行环境对应的公钥,包括:

26、向所述服务器发送所述目标信息和所述第二签名,所述目标程序代码的相关信息用于所述服务器确定所述目标程序代码是否发生变化,所述机密计算运行环境的相关信息用于所述服务器确定所述机密计算运行环境的类型,所述第二签名用于所述服务器确定所述目标信息是否发生变化。

27、第三方面,本技术实施例提供了一种应用程序的保护方法,所述方法包括:

28、接收终端设备发送的机密计算运行环境对应的公钥;

29、根据所述公钥对第一密钥进行加密,得到加密之后的第二密钥;

30、向所述终端设备发送所述第二密钥,所述第二密钥用于所述终端设备确定所述第一密钥,根据所述第一密钥对所述目标应用程序的目标程序代码进行解密,得到所述初始程序代码,通过所述机密运行环境运行所述初始程序代码,所述目标程序代码为基于所述第一密钥对所述初始程序代码进行加密之后得到的程序代码。

31、在一种可能的实现方式中,所述接收终端设备发送的机密计算运行环境对应的公钥,包括:

32、接收终端设备发送的机密计算运行环境对应的公钥和第一签名;

33、所述根据所述公钥对第一密钥进行加密,得到加密之后的第二密钥,包括:

34、根据所述第一签名,对所述公钥进行验证;

35、基于所述公钥验证通过,根据所述公钥对第一密钥进行加密,得到加密之后的第二密钥。

36、在一种可能的实现方式中,所述根据所述第一签名,对所述公钥进行验证,包括:

37、确定所述公钥对应的第一参考签名;

38、基于所述第一签名和所述第一参考签名相同,确定所述公钥验证通过;

39、基于所述第一签名和所述第一参考签名不同,确定所述公钥验证不通过。

40、在一种可能的实现方式中,所述接收终端设备发送的机密计算运行环境对应的公钥,包括:

41、接收终端设备发送的目标信息和第二签名,所述目标信息包括所述机密计算运行环境的相关信息、所述目标程序代码的相关信息和所述公钥;

42、所述根据所述公钥对第一密钥进行加密,得到加密之后的第二密钥,包括:

43、根据所述第二签名,对所述目标信息进行验证;

44、基于所述目标信息验证通过,对所述目标信息进行解析,得到所述机密计算运行环境的相关信息、所述目标程序代码的相关信息和所述公钥;

45、基于所述机密计算运行环境的相关信息指示所述机密计算运行环境的类型为目标类型,且所述目标程序代码的相关信息指示所述目标程序代码未发生变化,根据所述公钥对第一密钥进行加密,得到加密之后的第二密钥。

46、在一种可能的实现方式中,所述方法还包括:

47、获取所述目标应用程序的初始程序代码;

48、根据所述第一密钥对所述初始程序代码进行加密,得到所述目标程序代码。

49、在一种可能的实现方式中,所述初始程序代码中的多条语句对应有语句类型;

50、所述根据所述第一密钥对所述初始程序代码进行加密,得到所述目标程序代码,包括:

51、基于所述初始程序代码中的多条语句对应的语句类型,在所述初始程序代码中确定目标语句,所述目标语句的语句类型满足类型要求;

52、根据所述第一密钥对所述目标语句进行加密,得到加密之后的目标语句;

53、将包括所述加密之后的目标语句、所述初始程序代码中除所述目标语句之外的语句的程序代码作为所述目标程序代码。

54、第四方面,本技术实施例提供了一种应用程序的保护装置,所述装置包括:

55、接收模块,用于接收服务器发送的目标应用程序的目标程序代码,所述目标程序代码为基于第一密钥对所述目标应用程序的初始程序代码加密得到的程序代码;

56、发送模块,用于向所述服务器发送机密计算运行环境对应的公钥;

57、所述接收模块,还用于接收所述服务器返回的第二密钥,所述第二密钥为基于所述公钥对所述第一密钥加密得到的密钥;

58、解密模块,用于对所述第二密钥进行解密,得到所述第一密钥;

59、所述解密模块,还用于根据所述第一密钥对所述目标程序代码进行解密,得到所述初始程序代码,通过所述机密计算运行环境运行所述初始程序代码。

60、在一种可能的实现方式中,所述解密模块,用于获取所述机密计算运行环境对应的私钥;根据所述私钥对所述第二密钥进行解密,得到所述第一密钥。

61、在一种可能的实现方式中,所述装置还包括:

62、确定模块,用于确定所述公钥对应的第一签名;

63、所述发送模块,用于向所述服务器发送所述机密计算运行环境对应的公钥和所述第一签名,所述第一签名用于所述服务器确定所述公钥是否发生变化。

64、在一种可能的实现方式中,所述确定模块,还用于获取目标信息,所述目标信息包括所述目标程序代码的相关信息、所述机密计算运行环境的相关信息和所述公钥;确定所述目标信息对应的第二签名;

65、所述发送模块,用于向所述服务器发送所述目标信息和所述第二签名,所述目标程序代码的相关信息用于所述服务器确定所述目标程序代码是否发生变化,所述机密计算运行环境的相关信息用于所述服务器确定所述机密计算运行环境的类型,所述第二签名用于所述服务器确定所述目标信息是否发生变化。

66、第五方面,本技术实施例提供了一种应用程序的保护装置,所述装置包括:

67、接收模块,用于接收终端设备发送的机密计算运行环境对应的公钥;

68、加密模块,用于根据所述公钥对第一密钥进行加密,得到加密之后的第二密钥;

69、发送模块,用于向所述终端设备发送所述第二密钥,所述第二密钥用于所述终端设备确定所述第一密钥,根据所述第一密钥对所述目标应用程序的目标程序代码进行解密,得到所述初始程序代码,通过所述机密运行环境运行所述初始程序代码,所述目标程序代码为基于所述第一密钥对所述初始程序代码进行加密之后得到的程序代码。

70、在一种可能的实现方式中,所述接收模块,用于接收终端设备发送的机密计算运行环境对应的公钥和第一签名;

71、所述装置还包括:

72、验证模块,用于根据所述第一签名,对所述公钥进行验证;

73、所述加密模块,用于基于所述公钥验证通过,根据所述公钥对第一密钥进行加密,得到加密之后的第二密钥。

74、在一种可能的实现方式中,所述验证模块,用于确定所述公钥对应的第一参考签名;基于所述第一签名和所述第一参考签名相同,确定所述公钥验证通过;基于所述第一签名和所述第一参考签名不同,确定所述公钥验证不通过。

75、在一种可能的实现方式中,所述接收模块,用于接收终端设备发送的目标信息和第二签名,所述目标信息包括所述机密计算运行环境的相关信息、所述目标程序代码的相关信息和所述公钥;

76、所述验证模块,用于根据所述第二签名,对所述目标信息进行验证;基于所述目标信息验证通过,对所述目标信息进行解析,得到所述机密计算运行环境的相关信息、所述目标程序代码的相关信息和所述公钥;

77、所述加密模块,用于基于所述机密计算运行环境的相关信息指示所述机密计算运行环境的类型为目标类型,且所述目标程序代码的相关信息指示所述目标程序代码未发生变化,根据所述公钥对第一密钥进行加密,得到加密之后的第二密钥。

78、在一种可能的实现方式中,所述装置还包括:

79、获取模块,用于获取所述目标应用程序的初始程序代码;

80、所述加密模块,还用于根据所述第一密钥对所述初始程序代码进行加密,得到所述目标程序代码。

81、在一种可能的实现方式中,所述初始程序代码中的多条语句对应有语句类型;

82、所述加密模块,用于基于所述初始程序代码中的多条语句对应的语句类型,在所述初始程序代码中确定目标语句,所述目标语句的语句类型满足类型要求;根据所述第一密钥对所述目标语句进行加密,得到加密之后的目标语句;将包括所述加密之后的目标语句、所述初始程序代码中除所述目标语句之外的语句的程序代码作为所述目标程序代码。

83、第六方面,本技术实施例提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以使电子设备实现上述第二方面和/或第二方面的任一种实现方式所述的应用程序的保护方法,或者,以使电子设备实现上述第三方面和/或第三方面的任一种实现方式所述的应用程序的保护方法。

84、第七方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以使计算机实现上述任一所述的应用程序的保护方法。

85、第八方面,还提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品中存储有至少一条计算机指令,所述至少一条计算机指令由处理器加载并执行,以使计算机实现上述任一种应用程序的保护方法。

86、第九方面,还提供了一种应用程序的保护系统,所述系统包括终端设备和服务器,所述终端设备用于执行上述第二方面和/或第二方面的任一种实现方式所述的应用程序的保护方法,所述服务器用于执行上述第三方面和/或第三方面的任一种实现方式所述的应用程序的保护方法。

87、本技术实施例提供的技术方案至少带来如下有益效果:

88、本技术实施例提供的技术方案获取到目标应用程序的目标程序代码之后,由于目标程序代码加密,因此通过向服务器发送机密计算运行环境对应的公钥的方式,来获取第二密钥;根据第二密钥来确定第一密钥,进而根据第一密钥对目标程序代码进行解密,以得到能够在终端设备中运行的初始程序代码。该方法能够保证目标应用程序的初始程序代码不被窃取和篡改,保证了目标应用程序的初始程序代码的完整性和机密性,进而保护了目标应用程序。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1