CN110752929B - 应用程序的处理方法及相关产品 - Google Patents

应用程序的处理方法及相关产品 Download PDF

Info

Publication number
CN110752929B
CN110752929B CN201910935759.1A CN201910935759A CN110752929B CN 110752929 B CN110752929 B CN 110752929B CN 201910935759 A CN201910935759 A CN 201910935759A CN 110752929 B CN110752929 B CN 110752929B
Authority
CN
China
Prior art keywords
module
service module
service
terminal
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910935759.1A
Other languages
English (en)
Other versions
CN110752929A (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.)
Petal Cloud Technology Co Ltd
Original Assignee
Huawei Device 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 Huawei Device Co Ltd filed Critical Huawei Device Co Ltd
Priority to CN201910935759.1A priority Critical patent/CN110752929B/zh
Publication of CN110752929A publication Critical patent/CN110752929A/zh
Priority to EP20869324.2A priority patent/EP4030680A4/en
Priority to PCT/CN2020/118165 priority patent/WO2021057982A1/zh
Priority to US17/764,777 priority patent/US20220335107A1/en
Application granted granted Critical
Publication of CN110752929B publication Critical patent/CN110752929B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • G06F21/121Restricting unauthorised execution of programs
    • 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]
    • 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
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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/3236Cryptographic 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 cryptographic hash functions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Telephone Function (AREA)

Abstract

本申请公开了一种应用程序的处理方法及相关产品。方法包括:当非业务模块获取到用户触发的运行目标第一业务模块的第一运行指令时,终端利用非业务模块向数字版权管理(Digital Rights Management,DRM)服务器发送秘钥获取请求。秘钥获取请求用于请求目标第一业务模块对应的秘钥信息。秘钥信息是DRM服务器确认用户具有目标第一业务模块的使用权限时反馈的。终端利用非业务模块根据秘钥信息对目标第一业务模块进行解密,并执行目标第一业务模块对应的业务功能。这样,只有具备第一业务模块的使用权限的用户才能使用该应用程序的第一业务模块的业务功能,从而可有效地对应用程序的业务功能的使用权限进行保护。

Description

应用程序的处理方法及相关产品
技术领域
本申请涉及应用程序技术领域,尤其涉及一种应用程序的处理方法及相关产品。
背景技术
随着电子技术以及计算机技术的不断发展,手机、平板电脑、智能可穿戴设备等终端已得到普及。终端通过各种应用程序可以帮助用户实现各种各样的功能。应用程序的版权保护也逐渐受到重视。
目前,对应用程序的版权保护主要是针对应用程序的使用权限的保护,具体的保护方式是,应用程序包括数字版权管理(digital rights management,DRM)模块和业务模块,DRM模块用于对业务模块的使用权限进行管理,业务模块用于实现应用程序的业务功能,例如图片处理应用程序的业务模块用于实现图片处理功能。终端响应于用户的操作启动应用程序时,先由该应用程序的DRM模块向DRM服务器请求获取DRM签名,在该应用程序的DRM模块获取到DRM签名后,DRM模块校验DRM签名是否有效,如有效则DRM模块返回DRM鉴权成功的鉴权结果给该应用程序的业务模块。业务模块接收到鉴权成功的鉴权结果之后,实现该应用程序的业务功能。但是,若采用这种这种保护方式,未授权的用户只需要修改DRM模块返回的鉴权结果为鉴权成功,即可随意运行该应用程序的业务模块以实现该应用程序的业务功能,这样,对应用程序的业务功能的使用权限的保护方式存在较大的漏洞。
发明内容
本申请提供了一种应用程序的处理方法及相关产品,可以有效地对应用程序的业务模块的使用权限进行保护。
第一方面,本申请提供了一种应用程序的处理方法,所述应用程序包括一个或多个加密的第一业务模块和未加密的非业务模块。所述方法包括:首先,当所述非业务模块获取到用户触发的运行目标第一业务模块的第一运行指令时,终端利用所述非业务模块向数字版权管理(Digital Rights Management,DRM)服务器发送秘钥获取请求。所述秘钥获取请求,用于请求所述目标第一业务模块对应的秘钥信息。其中,所述秘钥信息是所述DRM服务器在确认所述用户具有所述目标第一业务模块的使用权限时反馈的。然后,所述终端利用所述非业务模块获取所述DRM服务器发送的所述秘钥信息。所述终端利用所述非业务模块根据所述秘钥信息对所述目标第一业务模块进行解密,并执行所述目标第一业务模块对应的业务功能。
本申请的技术方案中,由于需要被保护的第一业务模块是加密的,终端要运行第一业务模块以实现该对应的业务功能,须获得对应的秘钥信息,而获得秘钥信息的条件是使用该终端的用户须具备该第一业务模块的使用权限。这样,可以使得只有具备第一业务模块的使用权限的用户才能使用该应用程序的第一业务模块的业务功能,从而可以有效地对应用程序的业务功能的使用权限进行保护。
在一些可能的实施方式中,所述秘钥获取请求包括所述用户的用户信息和所述目标第一业务模块的模块信息,以用于所述DRM服务器根据所述用户信息查询所述用户的应用程序权限信息,并根据所述应用程序权限信息以及所述模块信息确定判断所述用户是否具有所述目标第一业务模块的使用权限。如此,DRM服务器可以根据用户信息查找到该用户对应的应用程序权限信息,从而使得DRM服务器可以权限库中每个用户的应用程序权限信息,对每个用户使用应用程序的业务模块的使用权限进行管控。
在一些可能的实施方式中,所述秘钥获取请求还包括所述用户提供的与所述用户信息对应的验证信息,所述验证信息用于DRM服务器在所述查询步骤之前,确认所述用户信息与所述验证信息匹配。这样DRM服务器可以验证该第一运行指令是不是由该用户信息对应的用户触发的,避免非法用户获得具备该目标第一业务模块的使用权限的第一用户的户信息之后,利用该第一用户的用户信息从DRM服务器获得目标第一业务模块的秘钥信息。
在一些可能的实施方式中,所述终端利用所述非业务模块向DRM服务器发送秘钥获取请求之前,所述方法还包括:所述终端利用所述非业务模块确定所述终端中不具有所述目标第一业务模块对应的秘钥信息。那么,当终端中具有所述目标第一业务模块对应的秘钥信息时,非业务模块则可以不必向DRM服务器发送秘钥获取请求,而是可以利用终端中的秘钥信息对目标第一业务模块进行解密,这样终端可以可以更快速地运行目标第一业务模块。
在一些可能的实施方式中,所述应用程序还包括未加密的第二业务模块;所述方法还包括:当所述非业务模块获取到用户触发的运行所述第二业务模块的第二运行指令时,所述终端通过所述非业务模块执行所述第二业务模块对应的业务功能。其中一个或多个第一业务模块用于实现应用程序的一部分业务功能,第二业务模块用于实现应用程序的另一部分业务功能。这样可以实现仅对应用程序的部分业务功能的使用权限进行管控,使得应用程序的权限管理方式更加灵活。
在一些可能的实施方式中,所述非业务模块包括控制模块和DRM模块;所述终端利用所述非业务模块向DRM服务器发送秘钥获取请求,具体包括:所述终端利用所述控制模块向所述DRM模块发送鉴权请求;和所述终端利用所述DRM模块根据所述鉴权请求向DRM服务器发送秘钥获取请求。所述终端利用所述非业务模块接收所述DRM服务器发送的秘钥信息,具体包括:所述终端利用所述DRM模块接收所述DRM服务器发送的秘钥信息。所述终端利用所述非业务模块根据所述秘钥信息对所述目标第一业务模块进行解密,并执行所述目标第一业务模块对应的业务功能包括:所述终端利用所述DRM模块根据所述秘钥信息对所述目标第一业务模块进行解密,并在解密成功时发送鉴权成功的鉴权响应至所述控制模块;和在所述控制模块接收到所述鉴权成功的鉴权响应时,所述终端利用所述控制模块执行所述目标第一业务模块对应的业务功能。如此,由于需要被保护的第一业务模块是加密的,即使非法用户通过修改应用程序代码,使得DRM模块发送鉴权成功的鉴权结果给控制模块,只要DRM模块没有获得第一业务模块的秘钥信息,就无法对第一业务模块进行解密,从而可以使得只有具备权限的用户才能使用第一业务模块对应的业务功能,有效地保护应用程序的业务功能的使用权限。
在一些可能的实施方式中,所述终端利用所述控制模块向所述DRM模块发送鉴权请求包括:所述终端显示预设画面,并通过所述控制模块向所述DRM模块发送鉴权请求。所述在所述控制模块接收到所述鉴权成功的鉴权响应时,所述终端利用所述控制模块执行所述目标第一业务模块对应的业务功能,具体包括:在所述控制模块接收到鉴权成功的鉴权响应时,所述终端停止显示所述预设画面,并利用所述控制模块执行所述目标第一业务模块对应的业务功能。这样,在DRM模块发送秘钥获取请求,请求DRM服务器下发秘钥信息的过程中,终端显示预设画面,可以避免终端因获取秘钥信息无法马上运行目标第一业务模块,而让用户误认为应用程序卡顿。
第二方面,本申请提供了一种终端,包括显示屏、存储器、一个或多个处理器,以及多个应用程序。存储其中存储一个或多个程序,一个或多个处理器运行所述一个或多个程序时,使得终端执行上述第一方面任一项可能的实施方式中的应用程序的处理方法。
第三方面,本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行上述第一方面任一项可能的实施方式中的应用程序的处理方法。
第四方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端上运行时,使得终端执行上述第一方面任一项可能的实施方式中的应用程序的处理方法。
附图说明
图1为本申请实施例的网络架构示意图;
图2为本申请实施例提供的终端的结构示意图;
图3为本申请实施例提供的终端的软件结构框图;
图4为现有技术的应用程序的鉴权方法的流程示意图;
图5为本申请实施例提供的应用程序的处理方法的流程示意图;
图6为本申请实施例提供的应用程序的处理方法的应用场景示意图;
图7为本申请实施例提供的应用程序的处理方法的另一应用场景示意图;
图8为本申请实施例提供的应用程序的处理方法的又一应用场景示意图;
图9为本申请实施例提供的应用程序的处理方法的再一应用场景示意图;
图10为本申请实施例提供的应用程序的处理方法的再又一应用场景示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
请参阅图1,图1为本申请实施例提供的一种网络架构图。如图1所示,该网络架构100包括终端10、数字版权管理(DRM)服务器20和通信链路30。通信链路30可以是有线通信链路也可以是无线通信链路。
终端10可以包括但不限于个人电脑、智能手机、智能穿戴设备、智能电视、平板电脑、个人数字助理等等。
图2示出了终端10的结构示意图。
下面以终端10为例对实施例进行具体说明。应该理解的是,图2所示终端10仅是一个范例,并且终端10可以具有比图2中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
终端10可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端10的具体限定。在本申请另一些实施例中,终端10可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端10的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端10的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端10的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端10的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端10充电,也可以用于终端10与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端10的结构限定。在本申请另一些实施例中,终端10也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端10的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端10的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端10中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端10上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端10上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端10的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端10可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端10通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端10可以包括1个或N个显示屏194,N为大于1的正整数。
终端10可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端10可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端10在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端10可以支持一种或多种视频编解码器。这样,终端10可以播放或录制多种编码格式的视频,例如:动态图像专家组(movingpicture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端10的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端10的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端10的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端10使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
终端10可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端10可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端10接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端10可以设置至少一个麦克风170C。在另一些实施例中,终端10可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端10还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端10根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端10根据压力传感器180A检测所述触摸操作强度。终端10也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定终端10的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端10围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测终端10抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端10的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,终端10通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。终端10可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当终端10是翻盖机时,终端10可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测终端10在各个方向上(一般为三轴)加速度的大小。当终端10静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。终端10可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端10可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端10通过发光二极管向外发射红外光。终端10使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端10附近有物体。当检测到不充分的反射光时,终端10可以确定终端10附近没有物体。终端10可以利用接近光传感器180G检测用户手持终端10贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。终端10可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测终端10是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。终端10可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,终端10利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,终端10执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端10对电池142加热,以避免低温导致终端10异常关机。在其他一些实施例中,当温度低于又一阈值时,终端10对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端10的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端10可以接收按键输入,产生与终端10的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端10的接触和分离。终端10可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端10通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端10采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端10中,不能和终端10分离。
终端10的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明终端10的软件结构。
图3是本发明实施例的终端10的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,其中一个应用程序包括控制模块,DRM模块和加密的一个或多个第一业务模块,第一业务模块用于实现该应用程序的业务功能,控制模块用于控制DRM模块对该第一业务模块进行解密并在解密之后控制运行该第一业务模块。控制模块例如可包括Application类及其调用的初始化代码,例如读取配置项、初始化数据库连接等。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端10的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在安卓虚拟机中(DALVIK)。安卓虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。安卓虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
数字版权管理(Digital Rights Management,DRM),指的是出版者用来控制被保护对象的使用权的一些技术,用于对数字化内容(例如:软件、音乐、电影)以及处理数字化产品的使用权限进行管理。DRM保护技术使用以后可以控制和限制这些数字化内容的使用权。相关技术中,对软件或应用程序的版权保护的关键是防止未授权用户执行受保护的应用程序部分或全部功能,也即对软件或应用程序的版权保护的关键是对软件或应用程序的使用权限进行管理,而并不限制软件/应用程序的复制。
在现有技术中,为了防止未授权用户利用终端使用受保护的应用程序实现该应用程序对应的功能,通常是采用数字签名的方式来对应用程序进行数字版权管理。如图4所示,图4是现有技术中的应用程序数字版权管理的流程示意图,应用程序包括DRM模块和业务模块。DRM模块用于通过管理业务模块的使用权限对业务模块进行版权保护,业务模块用于实现该应用程序的业务功能,例如图片处理应用软件的业务模块用于实现图片处理的功能。具体的版权保护方式为:
S401、终端的业务模块获取用户针对应用程序的启动操作。
S402、终端响应于用户针对应用程序的启动操作启动应用程序,应用程序中的业务模块向DRM模块发送鉴权请求,鉴权请求用于指示DRN模块鉴定该用户是否具备该业务模块的使用权限。
S403、DRM模块根据鉴权请求,发送DRM签名获取请求至DRM服务器。
S404、DRM服务器在确认该用户购买了该应用程序之后,向终端发送该应用程序的DRM签名。
S405、DRM模块验证DRM签名是否合法;
S406、若DRM签名合法,则DRM模块发送鉴权成功的鉴权结果给业务模块;若DRM签名不合法,则DRM模块发送鉴权失败的鉴权结果给业务模块。
S407;业务模块接收到鉴权成功的鉴权结果时,执行应用程序对应的业务功能。
由此可见,在上述方案中,业务模块是根据鉴权结果来确认是否执行对应的业务功能,这样未授权的用户可通非法手段修改DRM模块发送给业务模块的验证结果为验证成功,那么即使DRM模块没有获取到DRM签名,业务模块仍然可以正常运行。未授权的用户只需要修改DRM模块发送给业务模块的验证结果即可以随意使用应用程序的业务功能,应用程序业务模块的使用权限无法得到保护。
基于上述问题,本申请提供了一种应用程序的处理方法,该应用程序包括控制模块、DRM模块和一个或多个加密的第一业务模块。控制模块和DRM模块是未加密的。控制模块用于控制第一业务模块的运行以实现应用程序的部分或全部业务功能。例如图片处理应用程序的业务功能包括打开图片、编辑图片和保存图片。DRM模块用于获取第一业务模块的秘钥并对第一业务模块进行解密。
在该方法中,当应用程序的控制模块获取到用户触发的运行目标第一业务模块的第一运行指令时,控制模块向DRM模块发送鉴权请求。DRM模块根据鉴权请求向DRM服务器发送秘钥获取请求。其中,秘钥获取请求中可包含该用户的用户信息和该目标第一业务模块的模块信息。DRM服务器在根据该用户信息和该模块信息确认该用户具备该目标第一业务模块的使用权限之后,向终端发送该目标第一业务模块的秘钥信息。DRM模块获取到秘钥信息之后对该目标第一业务模块进行解密并在解密成功时发送鉴权成功鉴权响应给控制模块。控制模块再执行该目标第一业务模块对应的业务功能。如此,由于需要被保护的第一业务模块是加密的,即使非法用户通过修改应用程序代码,使得DRM模块发送鉴权成功的鉴权结果给控制模块,只要DRM模块没有获得第一业务模块的秘钥信息,就无法对第一业务模块进行解密,从而可以使得只有具备权限的用户才能使用第一业务模块对应的业务功能,有效地保护应用程序的业务功能的使用权限。
需要说明的是,本申请实施例中,控制模块和DRM模块可以合并一个模块,例如,控制模块和DRM模块可以合并为非业务模块。这样,当非业务模块获取到用户触发的运行目标第一业务模块的第一运行指令时,终端利用非业务模块向DRM服务器发送秘钥获取请求。该秘钥获取请求用于请求DRM服务器在确认该用户具有目标第一业务模块的使用权限时,返回目标第一业务模块的秘钥信息。利用非业务模块获取DRM服务器发送的秘钥信息,再根据秘钥信息对第一业务模块进行解密,并执行目标第一业务模块对应的业务功能。下面具体介绍本申请中提供的一种应用程序的处理方法。
请参图5,图5为本申请实施例的应用程序的处理方法的流程示意图。其中,应用程序包括控制模块、DRM模块和分别加密的一个或多个第一业务模块。控制模块用于控制DRM模块对第一业务模块进行解密并在解密之后控制运行该第一业务模块,以实现第一业务模块对应的业务功能。控制模块例如可包括Application类及其调用的初始化代码,例如读取配置项、初始化数据库连接等。
当应用程序包括一个第一业务模块时,该一个第一业务模块用于实现应用程序的业务功能。当应用程序包括多个第一业务模块时,每个第一业务模块用于实现不同的业务功能。
例如图片处理应用程序中,包括用于实现打开图片的业务功能的打开业务模块、用于实现编辑图片的业务功能的编辑业务模块和用于实现保存图片业务功能的保存业务模块。若打开业务模块、编辑业务模块和保存业务模块是一并加密的,则可认为该图片处理应用程序包括一个第一业务模块。该一个第一业务模块用于实现打开图片的业务功能、编辑图片的业务功能和保存图片的业务功能。若打开业务模块、编辑业务模块和保存业务模块是分别加密的,则图片处理应用程序包括多个第一业务模块,分别为打开业务模块、编辑业务模块和保存业务模块,且每个第一业务模块用于实现图片处理应用程序的不同的业务功能。
该方法包括但不限于以下步骤:
501、控制模块获取用户触发的运行目标第一业务模块的第一运行指令。
例如在图6所示的示例中,应用程序为图片处理应用程序。图片处理应用程序包括分别加密的三个第一业务模块,分别为用于实现打开图片的业务功能的打开业务模块、用于实现编辑图片的业务功能的编辑业务模块和用于实现保存图片业务功能的保存业务模块。终端的触控显示屏显示有图片处理应用程序的界面600,该界面包括用于触发运行打开业务模块的打开控件601、用于触发运行编辑业务模块的编辑控件602和用于触发运行保存业务模块的保存控件603。当用户在该触控显示屏点击打开控件601时,控制模块通过触控显示屏获取到该点击操作,则确认获取到了运行打开业务模块的第一运行指令,该打开业务模块则为目标第一业务模块。可以理解的是,虽然本申请以触控显示屏作为示例来介绍,但是这并不构成对其的限定。
当应用程序仅包括一个第一业务模块,且该第一业务模块用于实现应用程序的全部业务功能时,控制模块可将用户触发的启动该应用程序的启动指令作为第一运行指令,并将该一个第一业务模块作为目标第一业务模块。
例如,图片处理应用程序包括打开图片、编辑图片、保存图片这三个业务功能。图片处理应用程序包括控制模块、DRM模块和一个加密的第一业务模块。该第一业务模块用于实现图片处理应用程序的全部业务功能。也即是说,图片处理应用程序中,用于实现打开图片业务功能的打开业务模块、用于实现编辑图片业务功能的编辑业务模块和用于实现保存图片业务功能的保存业务模块为一并加密的第一业务模块。控制模块则可将用户触发的启动该图片处理应用程序的启动指令作为第一运行指令。如图7所示,终端可以显示出主界面700,包括图片处理应用程序的图片处理应用图标701、第一聊天应用图标702、第二聊天应用图标703、图库应用图标704、设置应用图标705、相机应用图标706。用户可通过点击图片处理应用图标701,触发启动该图片处理应用程序的启动指令。终端的操作系统获取到用户触发的启动该图片处理应用程序的启动指令之后,启动该应用程序,先运行该图片处理应用程序的控制模块,将控制模块加载至安卓虚拟机中运行。控制模块根据该启动指令确认获取到第一运行指令。
502、控制模块响应于第一运行指令,向DRM模块发送鉴权请求。
控制模块根据该运行指令向DRM模块发送鉴权请求。鉴权请求用于请求DRM模块鉴定该用户是否具备该目标第一业务模块的使用权限。鉴权请求中包括目标第一业务模块对应的的模块信息。该模块信息例如可以是目标第一业务模块的业务模块标识。该业务模块标识为能够表示该目标第一业务模块的唯一标识。
控模块可在Application类的attachBaseContext方法中调用com.huawei.DrmSDK.decryptPackage方法。这样控制模块可实现调用DRM模块,并向该控制模块发送鉴权请求。
503、DRM模块根据鉴权请求向DRM服务器发送秘钥获取请求。
秘钥获取请求中包括所述用户的用户信息和所述模块信息。用户信息可包括能够表示该用户的身份的用户标识信息。这样DRM服务器可以根据用户信息找到该用户对应的应用程序权限信息。用户标识信息可以是该用于表示该用户身份的唯一标识信息。该唯一标识信息例如可以是但不限于该终端的用户身份识别卡(SIM卡)的卡标识信息、该用户从应用下载平台下载该应用程序时的用户账号、该用户的邮箱账户、该用户的支付平台的支付ID、银行卡号、身份证号等。
DRM模块根据鉴权请求向DRM服务器发送秘钥获取请求之前,可以通过调用操作系统提供的用于显示输入框的标准函数接口,在终端的显示屏上显示用户信息输入框。用户可通过操作终端在用户信息输入框输入用户标识信息。
例如在如图8所示所示的示例中,图片处理应用程序的包括分别加密的多个第一业务模块,分别为打开业务模块、编辑业务模块和保存业务模。终端打开图片处理应用程序之后,终端的触控显示屏显示有界面800,该界面800包括用于触发运行打开业务模块的打开控件801、用于触发运行编辑业务模块的编辑控件802和用于触发运行保存业务模块的保存控件803。当用户需要使用图片处理应用程序的打开图片的业务功能时,在触控显示屏点击打开控件801,图片处理应用程序的控制模块确认获取到运行打开业务模块的第一运行指令,将该打开业务模块作为目标第一业务模块。控制模块向图片处理应用程序的DRM模块发送鉴权请求。
然后该DRM模块通过调用操作系统用于显示输入框的标准函数接口,在界面800显示用户信息输入框804,用户可通过操作终端在该用户信息输入框804输入用户标识信息,该用户标识信息例如可以为用户账号。DRM模块再根据该标准函数接口获得用户在输入框804输入的用户标识信息。
当然在其他例子中,不限于在上述界面显示输入框,也可以在其他界面显示输入框。例如,基于图7的示例,图片处理应用程序仅包括一个第一业务模块,且该第一业务模块用于实现应用程序的全部业务功能时,控制可将用户触发的启动该应用程序的启动指令作为第一运行指令,并将该一个第一业务模块作为目标第一业务模块。当控制模块根据该第一运行指令向DRM模块发送鉴权请求之后,在将用户触发的启动该应用程序的启动指令时终端显示的界面(如图7中的界面700)显示输入框。上述用于显示输入框的界面仅用于举例说明,本申请中,对用于显示输入框的界面不做限定。
在一些实施例中,DRM模块获得目标第一业务模块对应的秘钥信息之后,可将该目标第一业务模块对应的模块信息及秘钥信息在所述终端中保存预设时长(例如0.5小时、1小时、2小时、3.5小时、6小时、24小时等)。具体地,DRM模块可将该目标第一业务模块对应的模块信息及秘钥信息保存至终端的存储器中。当该模块信息及秘钥信息在终端中保存的时长超过预设时长时,DRM模块将该模块信息及秘钥信息删除。
DRM模块在接收到控制模块发送的鉴权请求之后,在步骤503之前,DRM模块可以在终端中查找鉴权请求中的模块信息对应的秘钥信息。当终端中存在该模块信息对应的秘钥信息时,DRM模块根据秘钥信息对目标第一业务模块进行解密,并在解密成功时发送鉴权成功的鉴权响应至控制模块。当终端中中不存在该模块信息对应的秘钥信息时,DRM模块执行步骤503,根据鉴权请求向DRM服务器发送秘钥获取请求。
如此,在获得目标第一业务模块对应的秘钥信息之后的预设时长之内,控制模块再次获取到运行该目标第一业务模块的运行指令时,DRM模块可以从终端中查找该目标第一业务模块对应的秘钥信息,而不需要从DRM服务器获取秘钥信息。这样可以提升应用程序的运行效率。而且,当秘钥信息在所述终端中保存的时长超过预设时长时,DRM模块将该秘钥信息删除,这样可以避免秘钥信息长时间存储在终端中导致秘钥信息泄露。例如,用户可能在退出应用程序之后,短时间内又重新打开该应用程序并运行该目标第一业务模块,这种情况下,DRM模块则不需要从DMR服务器重新获取秘钥信息,从而使得终端可以更快速地运行目标第一业务模块。
504、DRM服务器接收秘钥获取请求,根据秘钥获取请求判断该用户是否具备该目标第一业务模块的使用权限;
在一个例子中,DRM服务器可从权限库中查询该用户信息对应的应用程序权限信息,然后通过判断该用户信息对应的应用程序权限信息是否包括秘钥获取请求中的模块信息,来判断该用户是否具备目标第一业务模块的使用权限。
具体地,权限库中存储有多个用户的用户信息及每个用户信息对应的应用程序权限信息。每个用户信息对应的应用程序权限信息包括,该用户信息对应的用户拥有使用权限的第一业务模块的模块信息。第一业务模块的模块信息例如可以包括第一业务模块的唯一标识信息,也可以包括该第一业务模块对应的应用程序的应用程序唯一标识信息和该第一业务模块的业务模关键词。每个用户信息对应的应用程序权限信息可以是根据该用户信息对应的用户的购买记录确定的。例如,用户Y购买了应用程序M获得了应用程序M的一个第一业务模块K的使用权限,那么在权限库该用户Y的用户信息对应的应用程序权限信息中,包括该第一业务模块K的模块信息。
当该用户信息对应的应用程序权限信息中包含秘钥获取请求中的模块信息时,确认该用户具备该目标第一业务模块的使用权限;当该用户信息对应的模块信息中不包括秘钥获取请求中的模块信息时,确认该用户不具备该目标第一业务模块的使用权限。
在另一个例子中,DRM服务器可以根据用户信息得到用户的用户身份信息,并根据该用户身份信息,确定该用户是否具备该目标第一业务模块的使用权限。用户身份信息例如可包括但不限于用户的年龄、性别、居住地区中的任意一种或多种。
具体地,权限库中存储有具备各个应用程序的第一业务模块的使用权限所需的身份信息要求。DRM服务器可根据用户信息获得该用户的用户身份信息。例如,当用户信息中包含用户身份信息时,DRM服务器可从用户信息中提取出用户身份信息;当用户信息中不包含用户身份信息时,DRM服务器也可以根据用户信息(例如用户标识信息),从身份信息数据库中查询该用户的用户身份信息。DRM服务器可根据秘钥获取请求中的模块信息从权限库中获取该目标第一业务模块对应的身份信息要求,并判断该用户身份信息是否符合该目标第一业务模块对应的身份信息要求。若符合,则DRM服务器可确认该用户具有该目标第一业务模块的使用权限;若不符合,则DRM服务器确认该用户不具有该目标第一业务模块的使用权限。
在一个可选实施例中,秘钥获取请求中还可包括用户信息对应的验证信息。验证信息例如可以包括密码信息、生物特征信息、手势信息中的一种或多种。生物特征信息可包括但不限于指纹信息、面部特征信息、静脉信息、虹膜信息等。
当验证信息为密码信息时,DRM模块可通过调用操作系统用于提供输入框的标准函数接口,在终端显示信息输入框。DRM模块获取用户在用户信息输入框内输入的用户信息和验证信息。用户输入的用户信息例如可以是该用户的用户标识信息。
当验证信息为生物特征信息时,DRM模块可调用操作系统用于采集生物特征的标准函数接口,采集用户的生物特征信息。例如,当验证信息为指纹信息时,DRM模块可以调用用于采集指纹信息的标准函数接口,采集用户的指纹信息。
较佳地,DRM模块获取到用户信息和用户信息对应的验证信息之后,可将用户信息及对应的验证信息保存在终端的存储器中并设置有效期。当该用户信息及对应的验证信息在终端的存储器中的存储时间超过有效期时,DRM模块删除该用户信息及该验证信息。如此,DRM模块在该有效期内需要再次获取该用户的用户信息及对应的验证信息时,可直接从终端的存储器中获取,而不需要用户再次输入。这样可以简化用户操作,也能够使得终端可以更快速地运行目标第一业务模块。
DRM模块获取到用户信息和对应的验证信息之后,将该用户信息及该该验证信息随秘钥获取请求发送至DRM服务器。DRM服务器验证该秘钥获取请求中的验证信息和用户信息是否匹配。若匹配,则DRM服务器确认该用户信息与发出该运行指令的用户是对应的,并进一步判断该用户是否具备该目标第一业务模块的使用权限;若不匹配DRM服务器则可以不必判断继续该用户是否具备该目标第一业务模块的使用权限。这样DRM服务器可以验证该第一运行指令是不是由该用户信息对应的用户触发的,避免非法用户获得具备该目标第一业务模块的使用权限的第一用户的户信息之后,利用该第一用户的用户信息从DRM服务器获得目标第一业务模块的秘钥信息。
DRM服务器中,存储有多个用户信息及与每个用户信息匹配的预存验证信息。当DRM服务器判断该秘钥获取请求中的验证信息和用户信息是否匹配时,可先判断该秘钥获取请求中的验证信息是否和该用户信息对应的预存验证信息相符。若相符,则判定该密钥获取请求中的验证信息和用户信息匹配;若不相符,则判定该秘钥获取请求中的验证信息和用户信息不匹配。
例如,当验证信息为指纹时,DRM服务器中存储有多个用户信息及与每个用户信息匹配的预存指纹信息。DRM模块通过操作系统的标准函数接口调用终端的指纹识别模组采集该用户的指纹信息作为验证信息,并将该用户信息及该指纹信息随秘钥获取请求发送至DRM服务器。DRM服务器判断该秘钥获取请求中的指纹信息是否与该用户信息对应的预存指纹信息相符,若相符,则判定该密钥获取请求中的验证信息和用户信息匹配;若不相符,则判定该秘钥获取请求中的验证信息和用户信息不匹配。
需要说明的是,用户信息不限于仅包含用户标识信息,验证信息也不限于密码信息和生物特征信息。获取用户信息的方式和获取验证信息的方式也不限于上述举例的方式,上述举例仅用于解释说明,不构成对本申请的限定。
在一个可选的实施例中,秘钥获取请求中还可以包括该终端的终端信息,终端信息可以包括用于标识该终端的终端唯一标识,终端唯一标识可以是但不限于终端的物理地址,终端序列号等。
在另一个可选的实施例中,秘钥获取请求中还包括DRM模块的认证信息,该认证信息可以是该应用程序的开发人员预设的。DRM服务器可根据该认证信息验证DRM模块的合法性,这样可以避免非法程序从DRM服务器窃取秘钥信息。
DRM服务器在确认该用户具有该目标第一业务模的使用权限之后,还可以根据终端信息进一步地判断是否可以在该终端运行该目标第一业务模块,这样DRM服务器可实现仅允许具有使用权限的用户在符合预设条件的终端运行目标第一业务模块。
预设条件可以是但不限于是终端的配置参数。配置参数例如可以是内存大小、CPU型号等。这样可以使得目标第一业务模块在符合配置参数符合要求的终端上运行,以保证目标第一业务模块的运行效果。当然,在其他实施例中,预设条件可以为其他条件,在此不作限定。
505、当DRM服务器确认该用户具备该目标第一业务模块的使用权限时,DRM服务器获取该目标第一业务模块的秘钥信息。
DRM服务器中存储有多个第一业务模块的约定的加密方式。DRM服务器可根据秘钥获取请求中的模块信息获取该目标第一业务模块对应的约定的加密方式。例如,模块信息包括目标第一业务模块的业务模块标识时,DRM服务器可根据该业务模块标识获得该目标第一业务模块的约定的加密方式,然后根据该约定的加密方式得到该目标第一业务模块的秘钥信息。DRM服务器再将该秘钥信息发送至终端。秘钥信息例如可以包括该约定的加密方式或根据该加约定的密方式得到的解密算法。
在本申请技术方案中,开发人员可将应用程序的业务模块的代码利用约定的加密方式加密得到一个或多个第一业务模块,再将该应用程序的控制模块、DRM模块和一个或多个第一业务模块打包得到该应用程序的安装包。然后再将该应用程序的安装包发布至应用商店或其他应用下载平台供用户下载。
例如,图片处理应用程序包括打开业务模块、编辑业务模块和保存业务模块。当图片处理应用程序的开发人员需要对打开业务模块、编辑业务模块和保存业务模块一并设置使用权限时,开发人员可将打开业务模块、编辑业务模块和保存业务模块利用约定的加密方式一并加密之后,再将控制模块、DRM模块和一并加密的打开业务模块、编辑业务模块和保存业务模块打包得到该图片处理应用程序的安装包。其中,该一并加密的打开业务模块、编辑业务模块和保存业务模块可理解为一个第一业务模块。当图片处理应用程序的开发人员需要对打开业务模块、编辑业务模块和保存业务模块分别设置使用权限时,开发人员可将打开业务模块、编辑业务模块和保存业务模块利用约定的加密方式分别加密之后,再将控制模块、DRM模块、加密的打开业务模块、加密的编辑业务模块和加密的保存业务模块打包得到该图片处理应用程序的安装包。其中,加密的打开业务模块可理解一个第一业务模块,加密的编辑业务模块可理解为一个第一业务模块,加密的保存业务模块也可理解为一个第一业务模块,那么该应用程序则包括三个第一业务模块。
在一种可选的实施例中,开发人员可将应用程序的业务模块的代码利用约定的加密方式加密得到一个或多个第一业务模块之后,将该应用程序的控制模块、DRM模块和一个或多个第一业务模块打包并进行数字签名得到该应用程序的安装包,然后再将该应用程序的安装包发布至应用商店或其他应用下载平台供用户下载。具体地,开发人员可将业务模块的代码打包为一个新的安卓Dex文件,并利用约定的加密方式对该Dex文件进行加密,该加密的Dex文件包括一个或多个第一业务模块。然后开发人员再将该加密后的Dex文件、控制模块和DRM模块打包并进行签名得到该应用程序的安装包。该数字签名用于标记该应用程序的合法性。若非法用户对合法的应用程序进行修改并重新打包,则会导致数字签名失效。终端在运行该应用程序之前,可通过验证该应用程序的安装包中的数字签名是否有效来验证该应用程序是否为合法的应用程序。
约定的加密方式为开发人员与DRM服务器约定的加密方式。约定的加密方式可以是由应用下载平台提供的,也可以是DRM服务器预存的,还可以是开发人员自行设定的。
约定的加密方式由应用下载平台提供时,应用下载平台将约定的加密方式发送给DRM服务器,并将该约定的加密方式提供给开发人员。这样DRM服务器可以从应用下载平台获得该应用下载平台提供的约定的加密方式,开发人员也可以通过该应用下载平台提供的约定的加密方式对应用程序的业务模块采用该加密方式加密。例如,可以在开发人员将第一业务模块是由约定的加密方式A加密的应用程序发布至应用下载平台时,应用下载平台将该第一业务模块的模块信息及该约定的加密方式A发送至DRM服务器,DRM服务器将该约定的加密方式A及该第一业务模块的模块信息的对应关系存储至DRN服务器的存储器中。
约定的加密方式为DRM服务器的提供的加密方式时,DRM服务器接收到开发终端发送的加密方式获取请求,将约定的加密方式提供给开发终端。开发人员通过开发终端获取到该约定的加密方式,按照该约定的加密方式对业务模块加密得到第一业务模块。DRM服务器可在接收加密方式获取请求时从加密方式获取请求中获得该第一业务模块的模块信息,也可以在开发人员完成应用程序的开发后,获得开发人员通过开发终端反馈的该第一业务模块的模块信息。DRM服务获取到该第一业务模块的模块信息之后将该第一业务模块的模块信息与该约定的加密方式关联,并存储在DRM服务器的存储器中。
当约定的加密方式由开发人员提供时,开发人员可利用自己设定的约定的加密方式对业务模块进行加密得到第一业务模块。开发人员可通过开发终端将该第一业务模块的模块信息和该约定的加密方式发送至DRM服务器,DRM服务器获得并存储该第一业务模块的模块信息及该约定的加密方式。
这样,DRM服务器中存储有多个第一业务模块的模块信息和与每个模块信息对应的约定的加密方式。当DRM服务器接收到终端发送的,用于获取目标第一业务模块的秘钥信息的秘钥获取请求时,DRM服务器根据该秘钥获取请求中的用户信息和模块信息,确认该用户信息对应的用户具备该模块信息对应的目标第一业务模块的使用权限之后,根据该模块信息从DRM服务器的存储器中查询与该模块信息对应的约定的加密方式,然后根据查询得到的约定的加密方式得到该目标第一业务模块的秘钥信息并发送给终端。
约定的加密方式可以是但不限于RSA算法、高级加密标准(AES)、椭圆曲线数字签名算法(ECDSA)。需要说明的是,上述约定的加密方式的设置方案的举例仅用于解释说明,并不构成对本申请的限定,在其他实施例中,也可以采用其他的约定方式得到约定的加密方式。
当应用程序包括多个第一业务模块时,每个第一业务模块的加密方式可以相同也可以不同。
在一个可选实施例中,多个第一业务模块中,存在至少两个不同第一业务模块的加密方式是相同的,这样开发人员可利用相同的加密方式对需要加密的业务模块进行加密,可以减少约定加密方式的次数。
需要说明的是,不同的第一业务模块的加密方式相同时,DRM模块也只会利用获取到的秘钥信息对与第一运行指令对应的目标第一业务模块进行解密。例如,第一业务模块P和第一业务模块Q的加密方式相同,DRM根据运行第一业务模块P的第一运行指令得到的秘钥信息,只会用于解密第一业务模块P,而不会用于解密第一业务模块Q。这样虽然不同的第一业务模块加密方式是相同的,但是DRM模块仍然可以分别管理每个业第一业务模块的使用权限。
在另一个可选实施例中,不同的第一业务模块的加密方式是不同的。如此,可以避免非法程序截取到一个第一业务模块对应的秘钥信息之后,利用该秘钥信息解密其他第一业务模块,从而可以更有效地管理应用程序的各个第一业务模块的使用权限。
506、DRM服务器将秘钥信息发送至终端。
507、DRM模块接收DRM服务器发送的秘钥信息,根据秘钥信息对业务模块进行解密。
当秘钥信息中包含该约定的加密方式时,DRM模块可根据该约定的加密方式得到解密算法,并利用解密算法对目标第一业务模块进行解密得到解密后的业务模块。当秘钥信息中包含根据该约定的加密方式得到的解密算法时,DRM模块则可以利用秘钥信息中的解密算法对目标第一业务模块进行解密得到解密后的目标第一业务模块。具体地,DRM模块可从应用程序中读取包含了目标第一业务模块执行代码的Dex文件,并利用秘钥信息对该Dex文件解密得到解密后的Dex文件。
508、DRM模块在解密成功时,发送鉴权成功的鉴权响应至控制模块。
具体地,终端启动应用程序之后,先运行控制模块,将控制模块加载至安卓虚拟机中运行。解密成功时,DRM模块可以将解密后的Dex文件加载至按照虚拟机中,以使得控制模块能够在该安卓虚拟机中控制执行该Dex文件的业务代码。
509、控制模块接收到鉴权成功的鉴权响应时,控制运行解密后的目标第一业务模块,以实现所述目标第一业务模块对应的业务功能。
例如,基于上述图6的实施例,DRM模块根据控制模块发送的鉴权请求从DRM服务器获得了该打开业务模块的秘钥信息,并利用该秘钥信息对该打开业务模块解密,得到解密后的打开业务模块。然后DRM模块发送鉴权成功的鉴权响应至控制模块。控制模块接收到该鉴权响应之后,控制运行该打开业务模块。这样用户就可以通过该图片处理应用程序打开图片,例如可打开如图9所示的图片604。
又例如,基于上述图7的实施例,图片处理应用程序中,用于实现打开图片业务功能的打开业务模块、用于实现编辑图片业务功能的编辑业务模块和用于实现保存图片业务功能的保存业务模块为一并加密的第一业务模块。DRM模块根据控制模块发送的鉴权请求从DRM服务器获得了该第一业务模块的秘钥信息,并利用该秘钥信息对该打开业务模块、编辑业务模块和保存业务模块解密,得到解密后的第一业务模块。然后DRM模块发送鉴权成功的鉴权响应至控制模块。控制模块接收到该鉴权响应之后,控制运行该第一业务模块。这样终端就可以进入该应用程序的主界面,使得用户可以通过该图片处理应用程序实现打开图片、编辑图片和保存图片的业务功能。
本申请实施例中,由于需要被保护的第一业务模块是加密的,即使非法用户通过修改应用程序代码,使得DRM模块发送鉴权成功的鉴权响应给控制模块,只要DRM模块没有获得第一业务模块对应的秘钥信息,就无法对第一业务模块进行解密,那么也就无法在终端运行第一业务模块。终端要运行第一业务模块以实现该对应的业务功能,须获得对应的秘钥信息,而获得秘钥信息的条件是使用该终端的用户须具备该第一业务模块的使用权限。这样,可以使得只有具备第一业务模块的使用权限的用户才能使用该应用程序的第一业务模块的业务功能,从而可以有效地对应用程序的业务功能的使用权限进行保护。
本申请实施例的技术方案可用于支持动态加载的应用程序。支持动态加载的应用程序可以理解为,运行该应用程序时可以分多次加载,而不必一次全部加载完再运行的应用程序。例如,当应用程序为安卓程序时,安卓程序可先加载一部分至安卓虚拟机(DALVIK)并运行,然后再加载一部分至安卓虚拟机并运行。结合本实施例,先加载应用程序的控制模块和DRM模块至安卓虚拟机并运行,然后在DRM模块对加密的目标第一业务模块解密之后,再将解密后的目标第一业务模块加载至安卓虚拟机并运行,这种先加载应用程序的一部分并运行,然后再加载应用程序的另一部分并运行的过程就是动态加载的过程,支持这种加载方式的应用程序则为支持动态加载的应用程序。
由此可见,本申请的技术方案不受操作系统的限制。本申请是通过对应用程序内的业务模块进行加密来实现对应用程序的业务功能的使用权限进行保护,而不需要依赖于操作系统。本申请的可应用于但不限于安卓系统、Windows系统、Linux系统或其他能够支持动态加载的应用程序的系统。
需要说明的是,在上述实施例中,控制模块和DRM模块可以合并一个模块,例如,控制模块和DRM模块可以合并为非业务模块。也即步骤501-503可由非业务模块实现,当非业务模块获取到用户触发的运行所述目标第一业务模块的指令时,非业务模块向DRM服务器发送秘钥获取请求。上述步骤507-步骤509也可由非业务模块实现,非业务模块接收DRM服务器发送的秘钥信息,根据秘钥信息对目标第一业务模块进行解密,并在解密成功时,控制运行该解密后的目标第一业务模块,以实现该目标第一业务模块对应的业务功能。
在进一步的实施例中,终端包括可信执行环境(trusted executionenvironment,TEE)和富执行环境(rich execution environment,REE)。TEE提供了可信应用(trusted application,TA)的安全行环境,同时也保护TA的资源和数据的保密性、完整性和访问权限。富执行环境REE中运行有终端的操作系统,例如安卓系统、Windows系统等。
控制模块获取到运行指令之后,控制模块将DRM模块加载至TEE中,再向DRM模块发送鉴权请求。这样DRM模块在TEE中根据鉴权请求向DRM服务器发送秘钥获取请求,并接收DRM服务器发送的秘钥信息,从而可以提升秘钥信息的安全性,避免秘钥信息被非法程序获取。这样TEE可以保证DRM模块的资源和数据的保密性、完整性和访问权限,从而可以提升权应用程序的使用权限管理的安全性。
在一些实施例中,控制模块获取到用户触发的运行目标第一业务模块的运行指令时,在终端的显示屏显示预设画面,并向DRM模块发送鉴权请求。在控制模块接收到DRN模块发送的鉴权成功的鉴权响应时,控制模块停止在终端显示预设画面,并控制运行目标第一业务模块,以实现业务模块对应的业务功能。这样,在DRM模块发送秘钥获取请求,请求DRM服务器下发秘钥信息的过程中,终端显示预设画面,可以避免终端因获取秘钥信息无法马上运行目标第一业务模块,而让用户误认为应用程序卡顿。
基于上述实施例,在一个可选实施例中,应用程序还包括未加密的第二业务模块。加密的一个或多个第一业务模块用于实现该应用程序的一部分业务功能,未加密的业务模块用于实现该应用程序的另一部分业务功能。当控制模块获取到用户触发的运行运行第二业务模块的运行指令时,控制模块控制运行第二业务模块,以实现第二业务模块对应的业务功能。这样应用程序的开发人员可以通过部分加密的方式设置部分业务功能的使用权限。
例如,图片处理应用程序包括用于实现打开图片的业务功能的打开业务模块、用于实现编辑图片的业务功能的编辑业务模块、用于实现保存图片业务功能的保存业务模块和用于实现图片拼接业务功能的拼接业务模块。其中,打开业务模块、编辑业务模块和保存业务模块是加密的,该拼接业务模块是未加密的。那么该打开业务模块、编辑业务模块和保存业务模块可理解为第一业务模块,拼接业务模块则可理解为第二业务模块。
如图10所示,终端运行图片处理应用程序之后,显示界面1000,该界面1000包括与打开业务模块对应的打开控件1001、与编辑业务模块对应的编辑控件1002、与保存业务模块对应的保存控件1003和与拼接业务模块对应的拼接控件1004。
当用户通过在终端的触控显示屏点击打开业控件1001、编辑控件1002或保存控件1003中的任意一个控件时,则触发了第一运行指令,控制模块可根据该点击操作确认获取到了第一运行指令。当用户通过在终端的触控显示屏点击拼接控件1004时,则触发了第二运行指令,控制模块可根据该点击操作确认获取到了第二运行指令。
本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得终端执行上述任一可能的实施例中的应用程序的处理方法。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端上运行时,使得终端执行上述任一可能的实施例中的应用程序的处理方法。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (9)

1.一种应用程序的处理方法,其特征在于,所述应用程序包括一个或多个加密的第一业务模块和未加密的非业务模块;所述方法包括:
当所述非业务模块获取到用户触发的运行目标第一业务模块的第一运行指令时,终端利用所述非业务模块向数字版权管理(Digital Rights Management,DRM)服务器发送秘钥获取请求,所述秘钥获取请求,用于请求所述目标第一业务模块对应的秘钥信息,其中,所述秘钥信息是所述DRM服务器在确认所述用户具有所述目标第一业务模块的使用权限时反馈的;所述秘钥获取请求包括所述用户的用户信息和所述目标第一业务模块的模块信息,以用于所述DRM服务器根据所述用户信息查询所述用户的应用程序权限信息,并根据所述应用程序权限信息以及所述模块信息确定所述用户具有所述目标第一业务模块的使用权限;
所述终端利用所述非业务模块获取所述DRM服务器发送的所述秘钥信息;
所述终端利用所述非业务模块根据所述秘钥信息对所述目标第一业务模块进行解密,并执行所述目标第一业务模块对应的业务功能。
2.根据权利要求1所述的方法,其特征在于,所述秘钥获取请求还包括所述用户提供的与所述用户信息对应的验证信息,所述验证信息用于DRM服务器在所述查询步骤之前,确认所述用户信息与所述验证信息匹配。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述终端利用所述非业务模块向DRM服务器发送秘钥获取请求之前,所述方法还包括:所述终端利用所述非业务模块确定所述终端中不具有所述目标第一业务模块对应的秘钥信息。
4.根据权利要求1-2任一项所述的方法,其特征在于,所述应用程序还包括未加密的第二业务模块;
所述方法还包括:当所述非业务模块获取到用户触发的运行所述第二业务模块的第二运行指令时,所述终端通过所述非业务模块执行所述第二业务模块对应的业务功能。
5.根据权利要求3所述的方法,其特征在于,所述应用程序还包括未加密的第二业务模块;
所述方法还包括:当所述非业务模块获取到用户触发的运行所述第二业务模块的第二运行指令时,所述终端通过所述非业务模块执行所述第二业务模块对应的业务功能。
6.根据权利要求1所述的方法,其特征在于,所述非业务模块包括控制模块和DRM模块;所述终端利用所述非业务模块向DRM服务器发送秘钥获取请求,具体包括:
所述终端利用所述控制模块向所述DRM模块发送鉴权请求;
所述终端利用所述DRM模块根据所述鉴权请求向DRM服务器发送秘钥获取请求;
所述终端利用所述非业务模块接收所述DRM服务器发送的秘钥信息,具体包括:
所述终端利用所述DRM模块接收所述DRM服务器发送的秘钥信息;
所述终端利用所述非业务模块根据所述秘钥信息对所述目标第一业务模块进行解密,并执行所述目标第一业务模块对应的业务功能包括:
所述终端利用所述DRM模块根据所述秘钥信息对所述目标第一业务模块进行解密,并在解密成功时发送鉴权成功的鉴权响应至所述控制模块;
在所述控制模块接收到所述鉴权成功的鉴权响应时,所述终端利用所述控制模块执行所述目标第一业务模块对应的业务功能。
7.根据权利要求6所述的方法,其特征在于,所述终端利用所述控制模块向所述DRM模块发送鉴权请求包括:
所述终端显示预设画面,并通过所述控制模块向所述DRM模块发送鉴权请求;
所述在所述控制模块接收到所述鉴权成功的鉴权响应时,所述终端利用所述控制模块执行所述目标第一业务模块对应的业务功能,具体包括:
在所述控制模块接收到鉴权成功的鉴权响应时,所述终端停止显示所述预设画面,并利用所述控制模块执行所述目标第一业务模块对应的业务功能。
8.一种终端,包括显示屏,存储器,一个或多个处理器,以及多个应用程序,其中,所述存储器中存储一个或多个程序;其特征在于,所述一个或多个处理器在运行所述一个或多个程序时,使得所述终端执行如权利要求1至7任一项所述的方法。
9.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行如权利要求1至7任一项所述的方法。
CN201910935759.1A 2019-09-29 2019-09-29 应用程序的处理方法及相关产品 Active CN110752929B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910935759.1A CN110752929B (zh) 2019-09-29 2019-09-29 应用程序的处理方法及相关产品
EP20869324.2A EP4030680A4 (en) 2019-09-29 2020-09-27 APPLICATION TREATMENT METHOD AND ASSOCIATED PRODUCT
PCT/CN2020/118165 WO2021057982A1 (zh) 2019-09-29 2020-09-27 应用程序的处理方法及相关产品
US17/764,777 US20220335107A1 (en) 2019-09-29 2020-09-27 Method for Processing Application Program and Related Product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910935759.1A CN110752929B (zh) 2019-09-29 2019-09-29 应用程序的处理方法及相关产品

Publications (2)

Publication Number Publication Date
CN110752929A CN110752929A (zh) 2020-02-04
CN110752929B true CN110752929B (zh) 2022-04-22

Family

ID=69277458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910935759.1A Active CN110752929B (zh) 2019-09-29 2019-09-29 应用程序的处理方法及相关产品

Country Status (4)

Country Link
US (1) US20220335107A1 (zh)
EP (1) EP4030680A4 (zh)
CN (1) CN110752929B (zh)
WO (1) WO2021057982A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110752929B (zh) * 2019-09-29 2022-04-22 华为终端有限公司 应用程序的处理方法及相关产品
CN115189953B (zh) * 2022-07-13 2024-02-06 深圳微言科技有限责任公司 基于隐私保护的双向通讯装置
CN115865729B (zh) * 2022-11-24 2024-07-12 杭州米络星科技(集团)有限公司 程序服务健康性判断方法和装置、存储介质和终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729550A (zh) * 2009-11-09 2010-06-09 西北大学 基于透明加解密的数字内容安全防护系统及加解密方法
CN101833623A (zh) * 2010-05-07 2010-09-15 华为终端有限公司 数字版权管理方法及系统
CN106230777A (zh) * 2016-07-12 2016-12-14 珠海市魅族科技有限公司 一种防止文件被破解的方法及终端
CN106603230A (zh) * 2016-12-30 2017-04-26 北京奇艺世纪科技有限公司 一种drm密钥保存、读取方法和保存、读取系统
CN109728912A (zh) * 2017-10-30 2019-05-07 中国电信股份有限公司 播放内容安全传输方法、系统以及终端

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110093468A (ko) * 2010-02-12 2011-08-18 삼성전자주식회사 사용자 단말 장치, 서버 및 그 제어 방법
US9805350B2 (en) * 2012-07-16 2017-10-31 Infosys Limited System and method for providing access of digital contents to offline DRM users
US20140047557A1 (en) * 2012-07-16 2014-02-13 Infosys Limited Providing access of digital contents to online drm users
US9892239B2 (en) * 2013-01-29 2018-02-13 Mobitv, Inc. Digital rights management for HTTP-based media streaming
GB201505438D0 (en) * 2015-03-30 2015-05-13 Irdeto Bv Accessing content at a device
CN110752929B (zh) * 2019-09-29 2022-04-22 华为终端有限公司 应用程序的处理方法及相关产品

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729550A (zh) * 2009-11-09 2010-06-09 西北大学 基于透明加解密的数字内容安全防护系统及加解密方法
CN101833623A (zh) * 2010-05-07 2010-09-15 华为终端有限公司 数字版权管理方法及系统
CN106230777A (zh) * 2016-07-12 2016-12-14 珠海市魅族科技有限公司 一种防止文件被破解的方法及终端
CN106603230A (zh) * 2016-12-30 2017-04-26 北京奇艺世纪科技有限公司 一种drm密钥保存、读取方法和保存、读取系统
CN109728912A (zh) * 2017-10-30 2019-05-07 中国电信股份有限公司 播放内容安全传输方法、系统以及终端

Also Published As

Publication number Publication date
CN110752929A (zh) 2020-02-04
EP4030680A4 (en) 2022-10-26
WO2021057982A1 (zh) 2021-04-01
EP4030680A1 (en) 2022-07-20
US20220335107A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
CN111466099B (zh) 一种登录方法、令牌发送方法、设备及存储介质
KR102503341B1 (ko) 보안 서비스 삭제 방법 및 전자 장치
WO2021057982A1 (zh) 应用程序的处理方法及相关产品
CN111093183B (zh) 一种移动设备管理方法及设备
CN113408016B (zh) 保存密文的方法和装置
CN114553814B (zh) 处理推送消息的方法和装置
CN113821767A (zh) 应用程序的权限管理方法、装置和电子设备
CN114741720B (zh) 一种权限管理方法及终端设备
CN114817939A (zh) 权限控制方法和电子设备
CN112966297B (zh) 数据保护方法、系统、介质及电子设备
CN114546969A (zh) 一种文件共享方法、装置及电子设备
CN114692119A (zh) 校验应用的方法和电子设备
CN116527266A (zh) 数据归集方法及相关设备
CN115017498A (zh) 小应用程序的操作方法和电子设备
CN114254334A (zh) 数据处理方法、装置、设备及存储介质
CN113691671B (zh) 安全信息的开放方法、系统及电子设备
WO2022042273A1 (zh) 密钥使用方法及相关产品
CN116669020B (zh) 一种密码管理方法、系统和电子设备
US20240233933A1 (en) Contact tracing method and related device
RU2809740C2 (ru) Способ обработки файла, хранящегося во внешней памяти
WO2022227979A1 (zh) 接触追踪方法及相关设备
CN115202559A (zh) 权限管理方法及相关设备
CN114117455A (zh) 一种电子设备的安全启动方法及电子设备
CN114637441A (zh) 空间管理的方法、装置、电子设备和可读存储介质
CN116992401A (zh) 账户间应用隔离的方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220507

Address after: 523799 Room 101, building 4, No. 15, Huanhu Road, Songshanhu Park, Dongguan City, Guangdong Province

Patentee after: Petal cloud Technology Co.,Ltd.

Address before: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee before: HUAWEI DEVICE Co.,Ltd.