CN107005402A - 提供对内容的访问 - Google Patents

提供对内容的访问 Download PDF

Info

Publication number
CN107005402A
CN107005402A CN201580070198.3A CN201580070198A CN107005402A CN 107005402 A CN107005402 A CN 107005402A CN 201580070198 A CN201580070198 A CN 201580070198A CN 107005402 A CN107005402 A CN 107005402A
Authority
CN
China
Prior art keywords
equipment
client
whitepack
content
software
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.)
Pending
Application number
CN201580070198.3A
Other languages
English (en)
Inventor
A.E.范福雷斯特
M.绍库普
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.)
Ai Dide Technology Co Ltd
Irdeto BV
Original Assignee
Ai Dide Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ai Dide Technology Co Ltd filed Critical Ai Dide Technology Co Ltd
Publication of CN107005402A publication Critical patent/CN107005402A/zh
Pending legal-status Critical Current

Links

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/002Countermeasures against attacks on cryptographic mechanisms
    • 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]
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)

Abstract

一种在第一设备处提供对内容的访问的方法,所述方法包括:接收内容项,其中,所述内容项的至少一部分被加密,能够使用至少一个解密密钥对内容项的加密的至少一部分进行解密;在第一软件客户端中:获得至少一个解密密钥的变换版本;基于所述至少一个解密密钥对所述内容项的加密的至少一部分实行解密操作,以获得所述内容项的所述至少一部分的中间版本,其中,所述实行解密操作使用解密操作的白盒实现,所述白盒实现形成第一软件客户端的一部分并且通过使用至少一个解密密钥的变换版本来操作;以及基于至少一个加密密钥对所述中间版本的至少一部分实行加密操作以获得重新加密的内容,其中,所述实行加密操作使用加密操作的白盒实现,所述白盒实现形成第一软件客户端的一部分;以及向在第一设备上执行的数字版权管理客户端提供:(a)权利对象,所述权利对象使得数字版权管理客户端能够获得与至少一个加密密钥相对应的一个或多个第二解密密钥,所述一个或多个第二解密密钥使得数字版权管理客户端能够解密所述重新加密的内容,以及(b)重新加密的内容。

Description

提供对内容的访问
技术领域
本发明涉及一种在设备上提供对内容的访问的方法,以及用于执行该方法的装置和计算机程序。
背景技术
保护一个或多个内容项(其可以以例如数据流的形式)的递送是众所周知的。内容项可以包括任何种类的内容,诸如音频内容、图像内容、视频内容、多媒体内容、文本内容等中的一个或多个。例如,对于广播内容递送基础设施,条件访问(conditional access)(CA)系统使得能够将模拟和/或数字信号(诸如电视信号)选择性地递送到广播接收机(诸如机顶盒)。对于宽带基础设施(诸如通过互联网递送内容),数字版权管理(DRM)系统相似地使得能够对宽带接收机(诸如,个人计算机、移动电话等)的内容进行选择性访问和解码。已知的是,在CA和DRM系统两者中,使用硬件防篡改(例如,使用智能卡或所谓的“可信执行环境”或TEE)和/或软件防篡改技术(例如,使用所谓的“白盒保护技术或软件混淆技术),用以加强客户端设备实现方式以防备攻击。
传统上,CA系统已依赖于硬件保护的密钥管理功能,例如以智能卡的形式。为了降低实现成本,在一些CA系统中,通过在接收机设备中执行的安全软件实现,来实现/提供智能卡的功能,而不是使用智能卡来实现/提供智能卡的功能。例如在EP2227014,EP2227015和EP2360918中陈述了这种安全软件实现和相关联的头端功能的示例,其全部公开内容通过引用并入本文。
在不使用智能卡的情况下实现的某些CA系统依赖于形成接收机的一部分(例如,在机顶盒中)的片上系统(SoC)设备中的专有硬件解密模块。该专有硬件解密模块依赖于在SoC设备的制造过程期间加载到该模块中的秘密密钥(参见例如EP2506176,其全部公开内容通过引用并入本文)。该秘密密钥对于SoC设备是唯一的。该秘密密钥的唯一性由CA客户端(在接收机设备上执行的CA软件应用)使用,并将CA客户端链接到设备,这有助于保护CA客户端防备逆向工程攻击。
使用开放操作系统(OS)的消费电子设备的范围越来越广。这样的开放操作系统的示例是Android。由于这种操作系统的开放性,攻击者对此操作系统有充分的了解和控制。这使得这样的操作系统成为对于攻击者非常有吸引力的平台。为了减少基于操作系统的攻击的影响,已经部署了硬件保护机制以加强或保护软件应用防备基于操作系统的攻击。一些SoC设备(诸如当前消费电子设备中使用的一些设备)现在支持TEE,该TEE与固件相结合使得选定的软件应用针对基于操作系统的攻击实现更好的保护。为软件应用部署基于TEE的硬件保护系统要求芯片制造商和CE制造商两者的支持。这意味着实现大范围的设备以实现对应用的保护是非常困难的。
一些内容所有者授权使用基于硬件的DRM系统,以便将其内容发布到相对开放的CE设备,诸如基于Android的装备。这意味着现在许多CE设备支持至少一个DRM系统。示例包括用于电视机的SoC设备,其目前支持用于呈递流内容的DRM系统。
发明内容
CA系统对特定硬件密钥梯形图的依赖不容易定标到大范围的CE设备和它们使用的SoC设备。这种定标的缺乏减少了可以支持任何特定CA系统的总体CE设备(例如,电视和机顶盒)的百分比,因此可能限制特定CE设备能够访问的内容的范围。
根据本发明的第一方面,提供了一种在第一设备处提供对内容的访问的方法,所述方法包括:接收内容项,其中,所述内容项的至少一部分被加密,能够使用至少一个解密密钥对内容项的加密的至少一部分进行解密;在第一软件客户端中:获得至少一个解密密钥的变换版本;基于该至少一个解密密钥对该内容项的加密的至少一部分实行解密操作,以获得该内容项的该至少一部分的中间版本,其中,所述实行解密操作使用解密操作的白盒实现(white-box implementation),其形成第一软件客户端的一部分并且通过使用至少一个解密密钥的变换版本来操作;以及基于至少一个加密密钥对该中间版本的至少一部分实行加密操作以获得重新加密的内容,其中,所述实行加密操作使用加密操作的白盒实现,其形成第一软件客户端的一部分;以及向在第一设备上执行的数字版权管理客户端提供:(a)权利对象,该权利对象使得数字版权管理客户端能够获得与至少一个加密密钥相对应的一个或多个第二解密密钥,该一个或多个第二解密密钥使得数字版权管理客户端能够解密该重新加密的内容,以及(b)重新加密的内容。
第一软件客户端基本上实现了到安装在第一设备上或者在第一设备上执行的DRM客户端的基于软件的桥接。使用用于转码(transcryption)的一个或多个加密密钥基本上将第一软件客户端与DRM客户端结合(tie),以使得第一软件客户端可以与DRM客户端的属性(诸如,锚定到设备并在受保护的硬件环境中执行)和/或DRM客户端206的功能(诸如其根据特定的DRM系统实行DRM处理的能力)相链接或者使用和利用所述DRM客户端的属性和/或DRM客户端206的功能,而第一软件客户端本身不必提供这些属性或该功能。因此,可以在设备上预先安装或预先配置(诸如,在设备的TEE内)具有其有益属性和功能的DRM客户端,然而,用本发明的实施例,可以利用第一软件客户端来处理内容(其中,根据DRM系统或者不一定与DRM客户端兼容的CA系统来保护内容),并且通过已经在设备上的DRM客户端访问该内容。这意味着可以打开设备,以便能够以许多不同的方式访问已经受保护的多得多的内容,同时仍然提供安全的访问(借助于使用DRM客户端)。例如,有可能将多个不同的“第一软件客户端”下载到设备上,以处理设备的用户可能希望访问的许多不同类型的受保护内容-该机制提供灵活性,同时保持高水平的安全性。另一个优点是,例如,如果DRM客户端被锚定或锁定到设备,则第一软件客户端本身不需要以这种方式被锚定或锁定——仍然借助于第一软件客户端与DRM客户端的交互和DRM客户端自己的锚定/锁定来实现锚定/锁定。
在一些实施例中,第一软件客户端在第一设备上执行。替代性地,第一软件客户端可以在不同于第一设备的第二设备上执行。
在一些实施例中,数字版权管理客户端被锚定到第一设备。
在一些实施例中,数字版权管理客户端被布置为在第一设备的受保护的硬件处理环境中执行。
在一些实施例中,至少一个加密密钥:(a)对于第一设备是唯一的,或(b)对于包括第一设备的预定的一组设备是唯一的或(c)对于在第一设备上执行的DRM客户端的实例是唯一的。
在一些实施例中,第一软件客户端是以下之一:(a)条件访问客户端;(b)条件访问客户端的一部分;(c)第二数字版权管理客户端;(d)第二数字版权管理客户端的一部分。
在一些实施例中,第一软件客户端不被锚定到设备,第一软件客户端在该设备上执行。
在一些实施例中,第一软件客户端被布置为在设备(第一软件客户端在该设备上执行)的未受保护的硬件处理环境中执行。
在一些实施例中,该方法包括第一软件客户端接收至少一个加密密钥的变换版本。
在一些实施例中,用于第一软件客户端的代码在其中嵌入了至少一个加密密钥的变换版本。
在一些实施例中,用于第一软件客户端的代码在其中嵌入了权利对象。
在一些实施例中,第一软件客户端被布置为至少部分地基于第一软件客户端是否检测到用以访问内容项的有效授权(entitlement)来控制解密操作和/或加密操作。
在一些实施例中,第一软件客户端从通过广播网络传达的一个或多个授权控制消息获得一个或多个解密密钥的变换版本。
在一些实施例中,通过广播网络接收内容项。替代性地,可以通过宽带网络(其可以包括因特网)接收内容项。
在一些实施例中,该至少一个加密密钥不与内容项相关联。
在一些实施例中,(a)解密操作至少部分地基于AES解密算法或三重DES解密算法;和/或(b)加密操作至少部分地基于AES加密算法或三重DES加密算法。
在一些实施例中,应用于至少一个解密密钥以获得该至少一个解密密钥的变换版本的变换与形成第一客户端软件的一部分的解密操作的特定白盒实现相关联。
在一些实施例中,解密操作和加密操作至少部分地对与用于内容项的数据的域不同的一个或多个变换域中的数据进行操作。
在一些实施例中,解密操作的白盒实现和/或加密操作的白盒实现对于第一软件客户端在其上执行的设备是唯一的或者对于包括第一软件客户端在其上执行的设备的预定的一组设备是唯一的。
在一些实施例中,该方法包括在加密中间版本之前修改中间版本,然后,加密包括对修改的中间版本的至少一部分进行加密。修改可以包括以下中的一个或多个:(a)在中间版本的至少一部分中嵌入水印;(b)在中间版本的至少一部分中嵌入指纹;以及(c)将中间版本从第一格式转换成第二格式。
在一些实施例中,中间版本的至少一部分不是全部中间版本。然后,该方法可以包括向数字版权管理客户端提供与中间版本的至少一部分不对应的至少一些内容项。
在一些实施例中,第一设备包括以下之一:(a)移动电话;(b)平板计算机;(c)便携式个人电子设备;(d)游戏控制台;(e)个人计算机;(f)电视。
在一些实施例中,解密操作的白盒实现和加密操作的白盒实现一起被实现为单个白盒实现。
根据本发明的第二方面,提供了一种装置,该装置被布置为执行根据第一方面的上述方法中的任一个。
根据本发明的第三方面,提供了一个或多个计算机程序,当由一个或多个处理器执行时,使得一个或多个处理器实行根据第一方面的上述方法中的任一个。一个或多个计算机程序可以被存储在一个或多个计算机可读介质上。
根据本发明的第四方面,提供了一种配置设备的方法,所述方法包括:将根据本发明的第三方面的一个或多个计算机程序加载到该设备上。
在一些实施例中,该方法包括从存储多个应用的商店中获得一个或多个计算机程序,该多个应用可用于下载到设备上并且在设备上执行。可以通过网站访问该商店。
附图说明
现在将参照附图仅通过示例的方式描述本发明的实施例,其中:
图1示意性地图示了计算机系统的示例;
图2示意性地图示了根据本发明实施例的设备(或接收机);以及
图3示意性地图示了根据本发明另一实施例的设备(或接收机)。
具体实施方式
在下面的描述和附图中,描述了本发明的某些实施例。然而,应当理解,本发明不限于所描述的实施例,并且一些实施例可以不包括下面描述的所有特征。然而,将显而易见的是,在不脱离如所附权利要求所阐述的本发明的更广泛的精神和范围的情况下,在此可以做出各种修改和改变。
1 - 系统概述
图1示意性地图示了计算机系统100的示例。系统100包括计算机102。计算机102包括:存储介质104,存储器106,处理器108,接口110,用户输出接口112,用户输入接口114以及网络接口116,上述所有部分通过一个或更多通信总线118链接到一起。
存储介质104可以是诸如硬盘驱动器,磁盘,光盘,ROM等中的一种或多种的任何形式的非易失性数据存储设备。存储介质104可以存储用于处理器108来执行以便使计算机102运行的操作系统。存储介质104还可以存储一个或多个计算机程序(或软件或指令或代码)。
存储器106可以是适于存储数据和/或计算机程序(或软件或指令或代码)的任何随机存取存储器(存储单元或易失性存储介质)。
处理器108可以是适于执行一个或多个计算机程序(诸如存储在存储介质104和/或存储器106中的计算机程序)的任何数据处理单元,其中一些计算机程序可以是根据本发明的实施例的计算机程序或当由处理器108执行时使得处理器108实行根据本发明的实施例的方法并将系统100配置为根据本发明实施例的系统的计算机程序。处理器108可以包括单个数据处理单元或多个数据处理单元,该多个数据处理单元并行地、单独地或彼此协作地操作。处理器108在针对本发明的实施例执行数据处理操作时,可以将数据存储到存储介质104和/或存储器106和/或从存储介质104和/或存储器106读取数据。
接口110可以是用于向计算机102外部的设备122或可从计算机102去除的设备122提供接口的任何单元。设备122可以是数据存储设备,例如光盘,磁盘,固态存储设备等中的一个或多个。设备122可以具有处理能力 - 例如,设备可以是智能卡。因此,接口110可以根据从处理器108接收的一个或多个命令来访问来自设备122的数据或者向设备122提供数据或者与设备122接口连接。
用户输入接口114被布置为从系统100的用户或操作者接收输入。用户可以经由系统100的连接到用户输入接口114或与用户输入接口114通信的一个或多个输入设备(诸如鼠标(或其他定点设备)126和/或键盘124)提供该输入。然而,应当理解,用户可以经由一个或多个附加的或替代的输入设备(诸如触摸屏)向计算机102提供输入。计算机102可以将经由用户输入接口114从输入设备接收的输入存储在存储器106中,以用于处理器108随后访问和处理,或者可以将从输入设备接收的输入直接传递给处理器108,以使得处理器108可以因此响应用户输入。
用户输出接口112被布置为向系统100的用户或操作者提供图形/视觉和/或音频输出。这样,处理器108可以被布置为指示用户输出接口112形成表示期望的图形输出的图像/视频信号,并且将该信号提供给系统100的连接到用户输出接口112的监视器(或屏幕或显示单元)120。附加地或替代地,处理器108可以被布置为指示用户输出接口112形成表示期望的音频输出的音频信号,并且将该信号提供给系统100的连接到用户输出接口112的一个或多个扬声器121。
最后,网络接口116为计算机102提供从一个或多个数据通信网络下载数据和/或将数据上传到一个或多个数据通信网络的功能。
应当理解,图1所示和上面描述的系统100的架构仅仅是示例性的,并且可以在本发明的实施例中使用具有不同架构(例如,具有比图1所示的更少的组件或者具有相比于图1所示的附加和/或替代的组件)的其他计算机系统100。作为示例,计算机系统100可以包括以下中的一个或多个:个人计算机;服务器计算机;移动电话;平板;笔记本电脑;电视机;机顶盒;游戏控制台;其他移动设备或消费电子设备;等等。
2 - 白盒实现
白盒环境是用于软件数据处理的执行环境,其中,假设数据处理的攻击者具有对正在被操作的数据(包括中间值)、存储器内容以及软件数据处理的执行/处理流程的完全访问和可见性。此外,在白盒环境中,假设攻击者能够修改正在被操作的数据、存储器内容以及软件数据处理的执行/处理流程,以这种方式,攻击者可以对数据处理进行实验并且尝试操纵数据处理的操作,其目的是规避最初的预期功能和/或识别秘密信息和/或为了其他意图。的确,甚至可以假定攻击者知道由数据处理实行的底层算法。然而,数据处理可能需要使用秘密信息(例如,一个或多个密码密钥),其中,该信息需要保持对攻击者隐藏。类似地,期望防止攻击者修改数据处理的执行/控制流程,例如防止攻击者在决策块而不是合法执行路径之后强制数据处理采取一个执行路径。“白盒”攻击是当在白盒环境中实行数据处理时,攻击者可能对软件数据实行处理的攻击(例如,试图确定秘密信息或试图修改数据处理的执行/控制流程以达到所需的目标/目的)。白盒攻击是众所周知的。白盒攻击是对软件项(或代码或指令)实行的攻击,因为攻击者可以在软件环境(诸如调试器)中执行(或运行或仿真)这些软件项,这使攻击者能够在执行期间监视和修改存储器和/或控制流程中的数据值。
在一些实施例中,将使用一个或多个双射函数(或变换或转换)。双射函数是单射的(即,1对1映射)并且满射的(即,映射到全部特定值范围)函数。如果函数T的可能输入值的域是域Dom,并且如果函数T是单射函数(使得当且仅当a = b时,T(a)= T(b)),则T是从Dom到范围T(Dom)={T(a) : a∈Dom}的双射函数。
一个初步的简单示例将有助于理解如何使用双射函数T可以帮助提供抵抗白盒攻击的保护。在这个示例中,双射函数T是对于一些素数ψ和正整数n的Galois域GF(ψn)中的线性变换,即,T:T:GF(ψn)→GF(ψn)。例如,如果数据值si (i=1,…,m)是Z位数据值,则它们可以被视为Galois域GF(2Z)的元素,使得ψ= 2并且n = Z。
考虑根据r=G(s1,s2)=s1+s2对Galois域GF(ψn)中的元素s1和s2进行操作的预定函数G,其中+是Galois域GF(ψn)中的加法。在该Galois域GF(ψn)中,加法s1+s2与XOR操作相同,使得r = G(s1,s2)= s1 s2。根据Galois域GF(ψn)中的相应的线性变换T1, T2和T3,使s1*,s2* 和r*是 s1, s2 和 r的变换版本,以使得对于Galois域GF(ψn)中的任意非零常量a,c和e,以及Galois域GF(ψn)中的任意常量b,d和f,s1*=T1(s1)=a·s1+b, s2*=T2(s2)=c·s2+d 并且r*=T3(r)=e·r+f(使得常量a,c和e可以从GF(ψn)/{0}中随机选择,并且常量b,d和f可以从GF(ψn)中随机选择)。然后,r* = e·(s1+s2)+f = e·(a-1(s1*+b)+c-1(s2*+d))+f = g·s1*+h·s2*+i,其中,g=e·a-1, h=e·c-1 并且 i=e·(a-1b+c-1d)+f。
因此,考虑到输入s1和s2的变换版本s1*=T1(s1)以及s2*=T2(s2),可以计算结果r的变换版本r*=T3(r),而不必去除任何变换(即,不必从版本s1* 和 s2*导出 s1 和/或 s2)。特别地,已经通过T1、T2和T3各自的参数(用于T1的a和b,用于T2的c和d,用于T3的e和f)定义了T1、T2和T3,可以根据G*(s1*,s2*)=g·s1*+h·s2*+i,其中,g=e·a-1, h=e·c-1并且i=e·(a-1b+c-1d)+f来实现函数G的变换版本G*,以使得可以计算r*=G*(s1*,s2*),而无需作为处理的中间步骤确定/揭露s1 或s2。然后可以从结果r的变换版本r*=G*(s1*,s2*)获得结果r,因为r=e-1(r*+f)),因此,可以使用线性变换T4(其是T3的倒数)来从变换版本r *获得结果r,其中r=T4(r*)=e-1r*+e-1f。替代性地,结果r的变换版本r*可以是后续函数的输入。换言之,考虑到对输入s1和s2进行操作以产生结果r的函数G,如果指定变换T1,T2和T3(例如,通过随机地选择用于变换的参数来随机地指定或者基于一些其他参数/数据来指定),则可以生成/实现函数G的变换版本G*,其中,函数G*对变换输入s1*=T1(s1)和s2*=T2(s2)进行操作,以根据r*=g·s1*+h·s2*+i产生变换结果r*=T3(r)。如果人在白盒环境中实现函数G*,则该人不能够识别底层函数G正在进行什么操作,也不能确定实际结果r,也不能确定输入s1和s2(因为当实行函数G*时,这些值不会被揭露)。
作为另一示例,假设函数G根据r=G(s1)=s1+k在Galois域GF(ψn)中对元素s1进行操作,其中,+是Galois域GF(ψn)中的加法,以及k是预定的秘密值(诸如,密码密钥)。在此Galois域(ψn)中,加法s1+k与XOR操作相同,使得r=G(s1)= s1 k。根据Galois域GF(ψn)中的相应的线性变换T1,和T3,使s1*和r*是 s1,和 r的变换版本,以使得对于Galois域GF(ψn)中的任意非零常量a和e,以及Galois域GF(ψn)中的任意常量b和f,s1*=T1(s1)=a·s1+b,并且r*=T3(r)=e·r+f(使得常量a和e可以从GF(ψn)/{0}中随机选择,并且常量b和f可以从GF(ψn)中随机选择)。然后,r* = e·(s1+k)+f = e·(a-1(s1*+b)+k)+f = g·s1*+h, 其中,g=e·a-1 并且h=e·(a-1b+k)+f。
因此,考虑到输入s1的变换版本s1*=T1(s1),可以计算结果r的变换版本r*=T3(r),而不必去除任何变换(即,不必从版本s1*导出 s1)。特别地,已经通过T1和T3各自的参数(用于T1的a和b,用于T3的e和f)定义了变换T1和T3,可以根据G*(s1*)=g·s1*+h, 其中,g=e·a-1, h=e·(a-1b+k)+f来实现函数G的变换版本G*,以使得可以计算r*=G*(s1*),而无需确定/揭露s1并且无需使得秘密值k对于攻击者可用。然后可以从结果r的变换版本r*=G*(s1*,s2*)获得结果r,因为r=e-1(r*+f)),因此,可以使用线性变换T4(其是T3的倒数)来从变换版本r *获得结果r,其中
r=T4(r*)=e-1r*+e-1f。替代性地,结果r的变换版本r*可以是后续函数的输入。换言之,考虑到对输入s1进行操作以产生结果r的函数G,如果指定变换T1和T3(例如,通过随机地选择用于变换的参数来随机地指定或者基于一些其他参数/数据来指定),则可以生成/实现函数G的变换版本G*,其中,函数G*对变换输入s1*=T1(s1)进行操作,以根据r*=g·s1*+h产生变换结果r*=T3(r)。如果人在白盒环境中实现函数G*,则该人不能够识别底层函数G正在实行什么操作,也不能确定实际结果r,也不能确定输入s1,也不能确定密钥k(因为当实行函数G*作时,这些值不会被揭露)。
注意,在上述示例中,T1和T2中的一个或两者可以是恒等变换(identitytransformation)(即,如果对于所有的s1值,T1(s1)=s1,则T1是恒等变换,使得在上述的示例中,a = 1并且b = 0,并且如果T2(s2)=s2,则T2是恒等变换,使得在上述的示例中,c = 1并且d = 0)。如果是这种情况,则实现函数G*的人可以识别由输入s1假设的值(如果Τ1是恒等变换)和/或由输入s2假设的值(如果T2是恒等变换)。然而,只要T3不是恒等变换,则该人就不能识别底层函数G正在实行什么操作,该人也不能确定实际结果r。
类似地,在上述示例中,T3可以是恒等变换(即,如果对于所有的r值,T3(r)=r,则T3是恒等变换,使得在上述的示例中,e = 1并且f = 0)。如果是这种情况,则实现函数G*的人可以识别由输出r假设的值。然而,只要T1和T2两者或其一不是恒等变换,则该人就不能识别底层函数G正在进行什么操作,也不能确定初始输入s1和s2中的两者或其一。
应当理解,其他函数G可以被实现为相应的“变换版本”G*,其中,到函数G*的(一个或多个)输入是根据相应的单射(1对1)变换的函数G的(一个或多个)输入的变换版本,并且函数G*的(一个或多个)输出是根据相应的单射变换的函数G的(一个或多个)输出的变换版本。该变换不需要一定是上述的线性变换,而是可以是任何其他类型的单射变换。因此,考虑到具有u个输入α1,…,αu和v个输出β1,…,βv的函数G,可以实现函数G的变换版本G*,其中G*将输入α1,…,αu的变换版本α1*,…,α*u作为其输入,并且将输出β1,…,βv的变换版本β1*,…,βv*作为其输出,其中,对于单射函数T1,…,Tu+v,αi*=Tii) 并且βi*=Ti+ui)。有可能两个或多个函数Ti可以彼此相同。对于任何函数G都可以完成这一点的事实讨论如下。
如下所述,XOR操作以及关于常量的条件分支形成图灵完备的系统。这意味着可以仅使用:(a)零个或多个XOR操作以及(b)关于常量的的零个或多个条件分支来实现任何数学函数。
图灵机是根据规则表来操纵带的条上的符号的概念性设备。尽管图灵机具有简单性,但图灵机可以适用于模拟任何计算机算法的逻辑。图灵机在对在带上机械操作的机器进行数学建模。在这个带上具有符号,机器可以通过使用带头一次一个地读取和写入该符号。操作完全由有限的基本指令集确定,诸如“在状态42中,如果看到的符号为0,则写入1;如果看到的符号为1,则改变为状态17;在状态17中,如果看到的符号为0,则写入1并且改变为状态6”等。更准确地,图灵机包括以下内容:
1. 带,该带被划分为一个紧挨另一个的单元格(cell)。每个单元格包含来自一些有限字母表的符号。字母表包含特殊的空白符号(这里写为'B')以及一个或多个其他符号。假设带可以任意扩展到左边和右边,即,图灵机总是被提供有与用于图灵机的计算所需要的一样多的带。假设之前尚未被写入的单元格被填充空白符号。
2. 头,该头可以在带上读取和写入符号并且以一次一个(且仅仅一个)单元格向左和向右移动带。
3.状态寄存器,该状态寄存器存储图灵机的有限许多状态之一的当前状态。存在一个特殊的启动状态,用该特殊的启动状态初始化状态寄存器。
4. 一个或多个指令(每个通常表示为相应的五元组)的有限表(有时称为动作表或转变(transition)函数),该有限表指定:如果图灵机当前处于状态Si,并且当前已经从带读取符号aj(即,目前在头之下的符号是aj),则图灵机应实行以下操作顺序:
•写入aj1代替当前符号。(符号aj1可以是空白符号)。
•如dk所述那样控制头的位置。dk可以具有下述值:“L”,其指示将头向左移动一个单元格,“R”,其指示将头向右移动一个单元格;或“N”,其指示表示不移动头,即,停留在相同的地方。
•将当前状态设置为由Si1指定的状态(其可以与Si相同或不同)。
图灵机是非常众所周知的,并且因此在此不再对其进行更详细的描述。
如果可以示出,可以使用XOR操作和关于常量的条件分支来实现动作表中的任何可能的5元组,那么我们知道基于XOR操作和关于常量的条件分支的处理系统是图灵完备的(因为任何功能或计算机程序都可以被实现或建模为图灵机,并且该图灵机的动作表中的所有5元组都可以使用XOR操作和关于常量的条件分支来实现)。
考虑图灵机中的元素与仅使用XOR和关于常量的条件分支的系统中的元素之间的以下映射:
(a)图灵机的字母大小设置为字母GF(ψn)的大小ψn
(b)每个状态被实现为具有(用于跳转到的)标识符的代码块。因此,可以通过以当前状态和存储器的内容为条件的Go To语句(即,基于常量的条件分支)来实现图灵机中的下一个状态。
(c)带可以被实现为存储器,该存储器保持字母中的元素的二进制表示。因此,可以通过改变指向存储器的地址来实现带中的移动。
(d)称为“地址”的全局变量用于指向等同于头之下的带区段的存储位置。
(e)我们使用存储内容的地址来读取存储内容。为了写入存储器中,我们用存储内容与产生期望值的常量进行XOR。
以下伪代码示出了典型的状态实现(对于具有标识符“i”的状态),其中值X1,X2,…,Xq 是常量,并且“Addr”是指向存储位置的指针。下面所示的示例说明了增加、减小和不改变地址“Addr”变量的三种可能性。
块i:
  {
  Mem = Memory(Addr) //在当前地址Addr处读取存储在带上的数据
  Begin switch (Mem)
    case 1: {Memory(Addr) = XOR(Mem,X1), Addr++, Go to Block j1}
          // 如果读取的数据等于1,则将值1 X 1 写入带,将头向右移动
           并且转到状态j 1
    case 2: {Memory(Addr) = XOR(Mem,X2), Addr--, Go to Block j2}
            //如果读取的数据等于2,则将值2 X 2 写入带,将头向左移动
           并且转到状态j 2
  case q: {Memory(Addr) = XOR(Mem,Xq), Addr, Go to Block jq}
           //如果读取的数据等于q,则将值q X q 写入带,保持头在当前
           位置并且转到状态j q
  end switch (Mem)
  }
因此,可以使用XOR操作和条件分支来实现动作表中的任何可能的5元组。因此,基于XOR操作和条件分支的系统是图灵完备的,即,可以仅使用XOR(对于上面的点(e))和条件跳转(对于上面的点(b))来实现任何图灵机。
如上所示,可以在(通过函数G*)变换的域中实行等同于r=s1 s2的操作,而永远无需去除r*,s1*或者 s2*上的变换。使用编程语言的能力来实现条件跳转。这意味着可以在变换的域中实现任何数学运算,而无需去除正在被处理的数据元素上的变换。换言之,考虑到具有u个输入α1,…,αu (u≥1)和v个输出β1,…,βv, (v≥1)的函数G,可以实现函数G的变换版本G*,其中,G*是将输入α1,…,αu的变换版本α1*,…,α*u作为其(一个或多个)输入并且输出(一个或多个)输出β1,…,βv的变换版本β1*,…,βv*的函数,其中,对于单射函数T1,…,Tu+v,αi*=Tii) 并且βi*=Ti+ui)。可能的是,两个或多个函数Ti可能彼此相同。如上所述,单射函数T1,…,Tu+v可以被定义(例如,随机生成的单射函数),并且考虑到具体的被限定的单射函数T1,…,Tu+v,产生(或者限定/获得/实现)函数G的具体的变换版本G*。
使用双射函数T来模糊预定函数的实现以及此类使用的各种方法在这个技术领域中是公知的,例如参见:2002年8月15-16日,加拿大纽芬兰圣约翰SAC 2002第9期国际研讨会,密码学所选区域中,Stanley Chow, Philip Eisen, Harold Johnson, 以及Paul C.Van Oorschot 的“White-Box Cryptography and an AES Implementation”;2002年11月18日,美国华盛顿特区,在ACM CCS-9工作组,DRM 2002的数字版权管理中,Stanley Chow,Phil Eisen, Harold Johnson,以及Paul C. vanOorschot的“A White-Box DES Implementation for DRM Applications”;US61/055,694; WO2009/140774; US6779114;US7350085; US7397916; US6594761; 以及US6842862,其全部公开内容通过引用并入本文。
3 - 软件CA和DRM客户端
本发明的实施例使得能够提供可以部署在非托管的设备上的仅软件的CA客户端,即,在没有(或不实现或暴露给第三方实现者)硬件密钥梯形图的设备上。
本发明的实施例利用在非托管设备上执行的DRM客户端(例如,本机,OEM强化或“设备供应商”强化的DRM客户端)。这样的DRM客户端通常存在于非托管设备上。在一些实施例中,这样的DRM客户端可以利用设备的设备专有技术来将DRM客户端(和任何DRM密钥)锚定或锁定到特定设备。这意味着DRM客户端的特定实例或版本只能在该特定设备上执行(即,如果DRM客户端的该实例或版本被复制到不同的设备,则它将不会正确地执行,或者可能在该不同的设备上根本不执行)。这样的DRM客户端可以利用设备供应商专有的并且不作为公共API暴露给第三方供应商的硬件钩子(hardware hook),这被认为是提供DRM客户端到设备的强的锚定。
在本发明的一些实施例中涉及的DRM技术的示例是在非托管设备上在Android OS上执行的WideVine DRM。因此,在本发明的一些实施例中,DRM客户端是WideVine DRM客户端。然而,应当理解,这仅仅是示例,并且本发明的实施例可以利用其他DRM技术。
在本发明的实施例中,所使用的CA客户端不一定实现其自身的锚定机制,而是将该责任委托给DRM客户端。换言之,在本发明一些实施例中,CA客户端不被锚定或者锁定到执行CA客户端的设备。
将显而易见的是,在一些实施例中,DRM客户端和CA客户端在同一设备上执行。在其他实施例中,DRM客户端和CA客户端在不同的设备中执行,例如,在针对家庭网络场景的实施例中,可以在CA客户端在其上执行并且其不具有本机、强化的DRM客户端的非管理设备上接收内容;然后可以(在已经使用CA客户端处理之后)将内容重新分配到其上存在本机、强化的DRM客户端的另一非管理设备。
图2示意性地图示了根据本发明的实施例的设备(或接收机)200。设备200包括或被布置为执行输入202、CA客户端204、DRM客户端206和解码器208。
DRM客户端206和/或解码器208可以在可信执行环境207(或受保护的硬件处理环境)中实现或者作为可信执行环境207(或受保护的硬件处理环境)的一部分或者可以在可信执行环境207(或受保护的硬件处理环境)中执行。该可信执行环境是设备200的处理器的安全区域,例如设备200的SoC设备的安全部分。这种可信执行环境是公知的,并且因此将不在此进行详细描述。
DRM客户端206可以是例如1级平台DRM客户端。DRM客户端206可以是例如WideVineDRM客户端。然而,通常,DRM客户端206被布置为接收受保护的(或安全的或加密的)内容项和权利对象(或DRM许可证)。权利对象包含信息(诸如,一个或多个密码密钥),该信息允许或使得DRM客户端206能够访问(或解密)所接收到的受保护内容项并使用该内容项(其中,使用可能受限制或者受到通常被称为“输出保护”的一个或多个限制或条件的影响)。DRM客户端206可以是独立的DRM客户端206;替代性地,DRM客户端206可能需要与外部DRM服务器(图2中未示出)进行交互,以便执行其DRM功能。由于DRM客户端、权利对象和DRM功能通常是众所周知的,所以在此将不对其进行更详细描述。
解码器208是内容解码器,该内容解码器能够接收从DRM客户端206输出的解密/访问的内容项并实行一个或多个内容解码操作(诸如解压缩,格式转换等)。如所述,内容项可以包括任何种类的内容,诸如音频内容,图像内容,视频内容,多媒体内容,文本内容等中的一个或多个。因此,由解码器208实行的(一个或多个)操作可以取决于内容的性质,例如,如果内容项包含压缩的视频内容,则解码器208可以实行视频解压缩操作。因此,可以具有单个解码器208或者在不同的相应类型的内容上操作的多个解码器208。
DRM客户端206和解码器208可以被实现为用于在设备200的可信执行环境中执行的软件或固件。在其他实施例中,DRM客户端206和解码器208中的一个或两者可以被实现为设备200的一个或多个安全硬件组件。
CA客户端204被实现为一个或多个软件模块/组件(或计算机程序)。设备200不在可信执行环境中执行CA客户端204,即,设备200在诸如设备200的SoC设备的主处理器的未受保护的硬件处理环境中执行CA客户端204。因此,CA客户端204在白盒环境中操作或执行。因此,CA客户端204被实现为安全或受保护的CA客户端204,CA客户端204的实现可以使用上述技术(在第2部分中)中的一个或多个或任何其他白盒保护技术,以提供免受白盒攻击的保护。类似地,可以使用在该技术领域中已知的其他软件保护技术(诸如,节点锁定,混淆等)来实现CA客户端204。
设备200被布置为在输入202处接收内容项(C)。内容项(C)以该内容(C)的至少一部分被加密的形式在所述输入处被接收,可使用至少一个解密密钥(这里称为控制字)对该内容项的加密的至少一部分进行解密。在图2中,至少一个解密密钥被表示为CWn(其中n是用于一个或多个解密密钥的索引)。至少部分被加密的内容项(C)被表示为{C}CWn。通常,在本说明书中,至少部分被加密并且可以使用密钥K解密的数据D被表示为{D}K。因此,输入接收以{C}CWn的形式的内容项(C)。
所接收的内容项{C}CWn不一定为适合于DRM客户端206进行处理的格式。例如,所接收的内容项{C}CWn可以是根据DVB标准(例如具有MPEG2视频)的广播流的一部分,并且DRM客户端206不能处理该形式的这种内容。如下文将描述的,CA客户端204对所接收(受保护的)内容项{C}CWn实行CA处理,并且可以向DRM客户端206输出适当的信息,以使DRM客户端能够访问/处理内容项(C)。当DRM客户端206是设备200的预先安装的组件并且用户在购买设备200之后希望使用设备200来访问与该DRM客户端206不兼容的受保护内容项时,这尤其有用,本发明的实施例使得用户能够以安全的方式访问受保护的内容项。
CA客户端206包括(或实现)解密操作210的白盒实现和加密操作212的白盒实现。这些实现210和220可以是CA客户端206的分开的组件或者可以被实现为CA客户端206内的单个白盒实现。
CA客户端206被布置为获得至少一个解密密钥CWn的变换版本,该获得将在后面更详细地描述。在本文中将至少一个解密密钥CWn的变换版本称为Ti(CWn),说明了至少一个解密密钥CWn的变换版本Ti(CWn)对应于应用到至少一个解密密钥CWn的一个或多个变换Ti下的至少一个解密密钥CWn。一个或多个变换Ti是在上面的第2部分中阐述的类型的变换,用于实现白盒保护的目的。
解密操作210的白盒实现接收或被提供或访问至少一个解密密钥CWn的变换版本Ti(CWn)。解密操作210的白盒实现还接收或被提供或访问所接收的内容项{C}CWn。然后,白盒实现210基于至少一个解密密钥CWn对内容项{C}CWn的加密的至少一部分实行解密操作,以获得该内容项的至少一部分的中间版本(图2中示出为Tj(C))。为此,解密操作210的白盒实现使用至少一个解密密钥CWn的变换版本Ti(CWn)进行操作,以便根据(或基于)至少一个解密密钥CWn实行解密操作。上述第2部分提供了有关可如何将这样的解密操作实现为白盒实现的细节。此外,EP2369778(其全部内容通过引用并入本文)提供了关于解密操作210如何以白盒保护方式来实现的细节,该白盒保护方式使用至少一个解密密钥CWn的变换版本Ti(CWn)。
由于使用白盒实现210来实现解密操作,即使解密操作基于或者根据一个或多个解密密钥CWn进行,一个或多个解密密钥CWn的(一个或多个)值也不会对攻击者保持隐藏。
优选地,中间版本Tj(C)是基于一个或多个变换Tj在变换域中的内容项(C)的至少一部分的表示。为了实现白盒保护的目的,该一个或多个变换Tj是上述第2部分所述类型的变换。例如,一个或多个变换Tj可以被实现,或者与使用白盒实现210实现的解密操作的一个或多个处理步骤组合/合并(使得这些一个或多个变换Tj的应用不能够被攻击者去除或发现)。这有助于防止攻击者在解密操作210的白盒实现的输出处访问内容项(C)的至少一部分的明文版本。
一个或多个变换Tj可以是唯一的,或者特定于设备200(或特定于包括特定设备200的一组设备),这可以例如通过向设备200提供其自己的定制版本的CA客户端204来获取(即,对应于具体设备或一组设备的CA客户端204的特定/唯一实现)。
加密操作212的白盒实现接收或被提供或访问中间版本Tj(C)。然后,白盒实现212基于至少一个加密密钥(对应于一个或多个解密密钥DK)对中间版本Tj(C)实行加密操作,以获得重新加密的内容(在图2中示为{C}DK)。如果加密操作使用或基于对称加密算法,则至少一个加密密钥可以与对应的一个或多个解密密钥DK相同。借助于被嵌入到用于加密操作212的白盒实现的代码内(例如,以转换的形式),可以保护一个或多个加密密钥免受白盒攻击。替代性地,设备200可以被布置为接收这些一个或多个加密密钥的变换版本,并且被布置为以与下述方式相似的方式将这些一个或多个加密密钥的变换版本作为输入提供给加密操作212的白盒实现,所述方式为:其中,解密操作210的白盒实现获得一个或多个解密密钥的变换版本。
如从上面在第2部分中的讨论将显而易见的,加密操作212的白盒实现可以补偿用于中间版本Tj(C)的一个或多个变换Tj。再次,一个或多个变换Tj的“撤销(undoing)”可以与加密操作212的其他数据操作合并,使得攻击者不能够从加密操作212的白盒实现发现一个或多个变换Tj
因此,加密操作212的白盒实现输出重新加密的内容{C}DK
CA客户端204还包括图2中所示的权利对象(或DRM许可证)或将图2中所示的权利对象(或DRM许可证)储存为RO(DK)。权利对象包括以受保护形式(例如,以加密形式)的一个或多个解密密钥DK,或者使得DRM客户端206能够获得一个或多个解密密钥DK(例如,DRM服务器的URL,可以从该URL下载解密密钥)的其他信息。例如,一个或多个解密密钥DK可以使用密钥KDRM来加密(该DRM客户端知道或者访问该密钥KDRM),使得DRM客户端206在接收到权利对象时可以获得一个或多个解密密钥DK。
在一些实施例中,权利对象被存储为用于CA客户端204的(受保护的)代码的一部分。在其他实施例中,CA客户端204被布置为(例如,从DRM系统的DRM服务器或头端)接收权利对象,以使得然后CA客户端204可以存储或访问权利对象。权利对象可以在与接收一个或多个加密密钥的变换版本的同时(即,与其一起)以这种方式由设备200接收。
因此,CA客户端204可以输出:(a)权利对象,该权利对象使得DRM客户端206能够获得对应于由加密操作212的白盒实现所使用的至少一个加密密钥的一个或多个解密密钥DK,其中这些一个或多个解密密钥DK使得DRM客户端206能够解密重新加密的内容{C}DK和(b)重新加密的内容{C}DK本身。然后可以将权利对象和重新加密的内容{C}DK提供给DRM客户端206,以使DRM客户端206正常进行处理。设备200(可能是CA客户端204)可以包括或可以被布置为执行DRM包装程序,该DRM包装程序被布置为接收权利对象和重新加密的内容{C}DK并且创建DRM对象,该DRM对象包含权利对象和重新加密的内容{C}DK并且适合于(或者符合)DRM客户端206的输入接口或标准,然后其可以是被提供给DRM客户端206的该DRM对象。
如上所述,CA客户端204获得一个或多个解密密钥CWn的变换版本Ti(CWn)。在一些实施例中,设备200(在输入202处)接收一个或多个解密密钥CWn的变换版本Tj(CWn)(例如,内容项(C)的提供者或者CA系统的头端可以将变换的版本Tj(CWn)提供给设备200,例如在一个或多个授权控制消息中)。
替代性地,CA客户端204可以包括密钥管理器模块214(其也可以被实现为白盒实现)。密钥管理器模块214可以被布置为(例如,经由一个或多个授权控制消息和/或一个或多个授权管理消息)接收密钥信息并且基于接收到的密钥信息生成一个或多个解密密钥CWn的变换版本Tj(CWn)。在EP2227015(其全部公开内容通过引用并入本文中)中阐述了此情况的示例,应当理解,可以使用其他方法。优选地,由密钥管理器模块214生成的一个或多个解密密钥CWn的明文值不在任何点处。
一个或多个变换Ti可以是唯一的,或者特定于设备200(或特定于包括特定设备200的一组设备)-这可以例如通过向设备200提供其自己的定制版本的CA客户端204来实现(即,对应于具体设备或一组设备的CA客户端204的特定/唯一实现)。
在输入202处接收到的密钥数据可以与(例如,在相同的传输流中的)内容项{C}CWn一起被接收。替代性地,在输入202处接收的密钥数据可以与内容项{C}CWn分开地被接收。
在图2所示的示例实施例中,CA客户端204 包括密钥管理器214(用以实行通常/已知的CA密钥管理功能)以及解密操作210和加密操作212的白盒实现。因此,由于现有技术的CA客户端不涉及或提供由解密操作210和加密操作212实行的内容转码,因此,图2的CA客户端204可以被视为“扩展”CA客户端或“CA桥接”客户端。在图3所示的替代实施例中,解密操作210和加密操作212的白盒实现是与CA客户端204分开的转码模块300的一部分(CA客户端将一个或更多的解密密钥的变换版本提供给转码模块300)。因此,更“标准的”CA客户端204可以与转码模块300一起使用,从而形成CA客户端204与DRM客户端206之间的桥接。
因此,在一个实施例中,提供了一种提供对第一设备200处的内容的访问的方法M,所述方法包括:
接收内容项{C}CWn,其中,所述内容项的至少一部分被加密,能够使用至少一个解密密钥对内容项的加密的至少一部分进行解密;
在第一软件客户端中:
获得至少一个解密密钥的变换版本Ti(CWn);
基于至少一个解密密钥对内容项的加密的至少一部分实行解密操作,以获得内容项的至少一部分的中间版本Tj(C),其中,所述实行解密操作使用形成第一软件客户端的一部分并且使用至少一个解密密钥的变换版本进行操作的解密操作210的白盒实现;
基于至少一个加密密钥对中间版本的至少一部分实行加密操作以获得重新加密的内容{C}DK,其中所述实行加密操作使用形成第一软件客户端的一部分的加密操作212的白盒实现;
向在第一设备上执行的DRM客户端206提供:(a)权利对象,该权利对象使得DRM客户端206能够获得与至少一个加密密钥相对应的一个或多个第二解密密钥,该一个或多个第二解密密钥使得DRM客户端206能够解密重新加密的内容,以及(b)重新加密的内容。
这里,第一软件客户端可以是转码模块300,CA客户端204或CA客户端204的一部分(至少部分地由解密操作210的白盒实现以及加密操作212的白盒实现形成)。
4 - 修改
在一些实施例中,CA客户端204可以被布置为在加密中间版本Tj(C)的加密操作212的白盒实现之前修改中间版本Tj(C)。这样的修改可以包括以下中的一个或多个:(a)在中间版本的至少一部分中嵌入水印;(b)在中间版本的至少一部分中嵌入指纹(这里,指纹可以识别例如设备200和/或CA客户端204和/或DRM客户端206);以及(c)将中间版本Tj(C)从第一格式转换成第二格式(例如,从一种数据压缩格式(其可以是DRM客户端206不能够处置/处理的格式)移动到一数据压缩格式(DRM客户端206被配置为处置/处理该数据压缩格式)。
一般来说,DRM客户端206和解码器208将预先安装在设备200上(因为在本发明的大多数实施例中,它们将在可信执行环境中实现)。然而,CA客户端204本身可以在任何时间点(包括在用户已经购买(并且持有)设备200之后)被下载到设备200上或者加载/安装在设备200上。例如,CA客户端204可以是可用于从网站(诸如,移动电话的应用商店)下载的软件应用,设备200的用户然后可以将CA客户端204下载到设备上,使得可以获取上述的益处。类似地,关于图3的实施例,转码模块300(或用于执行上述方法M的任何计算机程序)可以是可用于从网站(诸如,移动电话的应用商店)下载的软件应用,设备200的用户然后可以将转码模块300下载到设备上,使得可以获取上述的益处。
上述所有示例性实施例涉及在与DRM客户端206和解码器208相同的设备上执行的CA客户端204。在替代实施例中,CA客户端204(和输入202)在与DRM客户端206和解码器208在其上执行的设备200不同/分开的第二设备上执行。例如,输入202和CA客户端204可以在经由家庭网络连接到一个或多个设备的接收机(或机顶盒)上执行,其中,这些设备中的至少一个被布置为执行DRM客户端206和解码器208。替代性地,输入202和CA客户端204可以在接收机(或机顶盒)上执行,该接收机(或机顶盒)将重新加密的内容存储在中间设备(诸如,视频服务器或家庭媒体服务器)上-然后可以由设备在稍后的阶段访问该重新加密的内容,该设备被布置为执行DRM客户端206和解码器208。
优选地,由加密操作212的白盒实现使用的一个或多个加密密钥是唯一的,或者特定于设备200(或者特定于包括特定设备200的一组设备)或者特定于设备200上的DRM客户端206的具体实例-这可以例如通过向设备200提供其自己的定制版本的CA客户端204来实现(即,对应于具体设备或一组设备或者对应于设备200上的DRM客户端的具体实例的CA客户端204的特定/唯一实现)。
优选地,一个或多个加密密钥不与内容项相关联-一个或多个加密密钥的目的是将CA客户端204与DRM客户端206绑定,使得CA客户端204可以与DRM客户端206的属性(诸如,锚定到设备200)和/或DRM客户端206的功能(诸如,其根据具体的DRM系统实行DRM处理的能力)链接或使用和利用DRM客户端206的属性和/或DRM客户端206的功能,而CA客户端204本身不必提供这些属性或者该功能。一个或多个加密密钥可以是静态的。替代性地,可以更新一个或多个加密密钥,但是这不需要频繁地发生,因此(例如,到DRM服务器的)连接要求是最小的。
在一些实施例中,输入202经由广播网络(诸如,卫星通信网络或有线网络)接收由CA客户端204使用的内容项{C}CWn和/或变换密钥(或密钥信息)。在一些实施例中,输入202经由宽带网络(其可以包括例如因特网)接收由CA客户端204使用的内容项{C}CWn和/或变换密钥(或密钥信息)。
CA客户端204可以实行任何相关联的CA处理。例如,CA客户端204可以使用密钥管理器214来实行已知的密钥管理功能。例如,CA客户端204可以至少部分地基于CA客户端204是否检测到访问内容项(C)的有效授权来控制解密操作210和/或加密操作212。这样的授权可以由CA客户端204经由本技术领域中已知的例如授权管理消息来接收。例如,如果CA客户端204检测到有效授权,则CA客户端204可以仅向解密操作210提供一个或多个解密密钥(CWn)的变换版本Ti(CWn),或者,如果CA客户端204没有检测到有效授权,则CA客户端204可以向解密操作210提供一个或多个解密密钥的无效变换版本。
解密操作210可以至少部分地基于适合于经由白盒实现(诸如,AES解密算法或三重DES解密算法)来实现的任何解密算法。类似地,加密操作212可以至少部分地基于适合于通过白盒实现(诸如,AES加密算法或三重DES加密算法)来实现的任何加密算法。一些实施例可以利用非对称加密或解密操作210,212,其也可以被实现为白盒实现。
如上所述,中间版本Tj(C)的至少一部分由加密操作212重新加密。在一些实施例中,该部分不是全部中间版本Tj(C)。在这种情况下,在尚未被重新加密的情况下,可以向DRM客户端206提供不对应于该部分的内容项C的至少一些(或可能全部),例如,解密操作210可以生成未被加密操作212重新加密的内容项C的解密/明文部分,内容项C的那些解密/明文部分被传递给DRM客户端206(潜在地作为DRM对象的一部分,即,与重新加密的内容{C}DK一起)。这有助于节省由设备200实行的处理量。作为示例,重新加密可以是电影的视频部分(内容项),其中,电影的音频部分不被重新加密。
上述所有示例性实施例都利用CA客户端204。在替代实施例中,由第二DRM客户端替代CA客户端204。这使得第二DRM系统(第二DRM客户端对应于该第二DRM系统)能够使用第一DRM系统(第一DRM客户端对应于该第一DRM系统)来提供对内容的访问。在任一情况下(即,无论使用CA客户端204还是使用第二DRM客户端204),本发明的实施例使得与设备200上的预先安装的DRM客户端206不兼容的内容能够被以安全/受保护的方式在设备200上访问。
应当理解,所描述的方法已经被示出为以特定顺序执行的各个步骤。然而,技术人员将理解,这些步骤可以以不同的顺序组合或执行,同时仍然实现期望的结果。
应当理解,可以使用各种不同的信息处理系统来实现本发明的实施例。特别地,尽管附图及其讨论提供了示例性的计算系统和方法,但提出这些仅仅是为了在讨论本发明的各个方面时提供有用的参考。本发明的实施例可以在诸如个人计算机,膝上型计算机,个人数字助理,移动电话,机顶盒,电视机,服务器计算机等的任何合适的数据处理设备上实现。当然,为了讨论的目的,已经简化了系统和方法的描述,并且它们仅仅是可用于本发明的实施例的许多不同类型的系统和方法之一。应当理解,逻辑块之间的边界仅仅是说明性的,并且替代实施例可以合并逻辑块或元件,或者可以根据各种逻辑块或元件来施加功能的替代分解。
应当理解,上述功能可以作为硬件和/或软件实现为一个或多个相应的模块。例如,上述功能可以被实现为用于由系统的处理器执行的一个或多个软件组件。替代性地,上述功能可以被实现为诸如在一个或多个现场可编程门阵列(FPGA)和/或一个或多个专用集成电路(ASIC)上的硬件,和/或一个或多个数字信号处理器(DSP)和/或其他硬件布置。在此处包含的或如上所述的流程图中实现的方法步骤可各自由相应的各个模块实现;可以由单个模块一起实现在此处包含的或如上所述的流程图中实现的多个方法步骤。
应当理解,只要本发明的实施例由计算机程序实现,则存储或载有计算机程序的一个或多个存储介质和/或一个或多个传输介质形成本发明的方面。计算机程序可以具有一个或多个程序指令或程序代码,当由一个或多个处理器(或一个或多个计算机)执行时,程序指令或程序代码实行本发明的实施例。如本文所使用的术语“程序”可以是设计用于在计算机系统上执行的指令序列,并且可以包括子例程,函数,过程,模块,对象方法,对象实现,可执行应用,小程序,小服务程序,源代码,目标代码,字节代码,共享库,动态链接库和/或设计用于在计算机系统上执行的其他指令序列。存储介质可以是磁盘(诸如,硬盘驱动器或软盘),光盘(诸如CD-ROM,DVD-ROM或BluRay盘)或存储器(诸如ROM,RAM,EEPROM,EPROM,闪存或便携式/可移动存储设备)等。传输介质可以是通信信号,数据广播,两台或多台计算机之间的通信链路等。

Claims (34)

1.一种在第一设备处提供对内容的访问的方法,所述方法包括:
接收内容项,其中,所述内容项的至少一部分被加密,能够使用至少一个解密密钥对内容项的加密的至少一部分进行解密;
在第一软件客户端中:
获得至少一个解密密钥的变换版本;
基于所述至少一个解密密钥对所述内容项的加密的至少一部分实行解密操作,以获得所述内容项的所述至少一部分的中间版本,其中,所述实行解密操作使用解密操作的白盒实现,所述白盒实现形成第一软件客户端的一部分并且通过使用至少一个解密密钥的变换版本来操作;以及
基于至少一个加密密钥对所述中间版本的至少一部分实行加密操作以获得重新加密的内容,其中,所述实行加密操作使用加密操作的白盒实现,所述白盒实现形成第一软件客户端的一部分;以及
向在第一设备上执行的数字版权管理客户端提供:(a)权利对象,所述权利对象使得数字版权管理客户端能够获得与至少一个加密密钥相对应的一个或多个第二解密密钥,所述一个或多个第二解密密钥使得数字版权管理客户端能够解密所述重新加密的内容,以及(b)重新加密的内容。
2.根据权利要求1所述的方法,其中,所述第一软件客户端在第一设备上执行。
3.根据权利要求1所述的方法,其中,所述第一软件客户端可以在不同于第一设备的第二设备上执行。
4.根据前述权利要求中任一项所述的方法,其中,所述数字版权管理客户端被锚定到所述第一设备。
5.根据前述权利要求中任一项所述的方法,其中,所述数字版权管理客户端被布置为在所述第一设备的受保护的硬件处理环境中执行。
6.根据前述权利要求中任一项所述的方法,其中,所述至少一个加密密钥:(a)对于所述第一设备是唯一的,或(b)对于包括所述第一设备的预定的一组设备是唯一的或(c)对于在所述第一设备上执行的DRM客户端的实例是唯一的。
7.根据前述权利要求中任一项所述的方法,其中,所述第一软件客户端是以下之一:
(a)条件访问客户端;
(b)条件访问客户端的一部分;
(c)第二数字版权管理客户端;
(d)第二数字版权管理客户端的一部分。
8.根据前述权利要求中任一项所述的方法,其中,所述第一软件客户端不被锚定到所述第一软件客户端在其上执行的设备。
9.根据前述权利要求中任一项所述的方法,其中,所述第一软件客户端被布置为在所述设备的未受保护的硬件处理环境中执行,所述第一软件客户端在所述设备上执行。
10.根据前述权利要求中任一项所述的方法,包括所述第一软件客户端接收所述至少一个加密密钥的变换版本。
11.根据权利要求1至9中任一项所述的方法,其中,用于所述第一软件客户端的代码在其中嵌入了所述至少一个加密密钥的变换版本。
12.根据前述权利要求中任一项所述的方法,其中,用于所述第一软件客户端的代码在其中嵌入了权利对象。
13.根据前述权利要求中任一项所述的方法,其中,所述第一软件客户端被布置为至少部分地基于所述第一软件客户端是否检测到用以访问内容项的有效授权来控制解密操作和/或加密操作。
14.根据前述权利要求中任一项所述的方法,包括所述第一软件客户端从通过广播网络传达的一个或多个授权控制消息获得所述一个或多个解密密钥的变换版本。
15.根据前述权利要求中任一项所述的方法,其中,通过广播网络接收所述内容项。
16.根据权利要求1至14中任一项所述的方法,其中,通过宽带网络接收所述内容项。
17.根据权利要求16所述的方法,其中,所述宽带网络包括因特网。
18.根据前述权利要求中任一项所述的方法,其中,所述至少一个加密密钥不与所述内容项相关联。
19.根据前述权利要求中任一项所述的方法,其中:
(a)解密操作至少部分地基于AES解密算法或三重DES解密算法;和/或
(b)加密操作至少部分地基于AES加密算法或三重DES加密算法。
20.根据前述权利要求中任一项所述的方法,其中,应用于所述至少一个解密密钥以获得所述至少一个解密密钥的变换版本的变换与形成第一客户端软件的一部分的解密操作的具体白盒实现相关联。
21.根据前述权利要求中任一项所述的方法,其中,所述解密操作和所述加密操作至少部分地对与用于内容项的数据的域不同的一个或多个变换域中的数据进行操作。
22.根据前述权利要求中任一项所述的方法,其中,所述解密操作的白盒实现和/或所述加密操作的白盒实现对于所述第一软件客户端在其上执行的设备是唯一的或者对于包括第一软件客户端在其上执行的设备的预定的一组设备是唯一的。
23.根据前述权利要求中任一项所述的方法,包括在加密所述中间版本之前修改所述中间版本,然后所述加密包括对修改的中间版本的至少一部分进行加密。
24.根据权利要求23所述的方法,其中,所述修改包括以下中的一个或多个:
(a)在中间版本的至少一部分中嵌入水印;
(b)在中间版本的至少一部分中嵌入指纹;以及
(c)将中间版本从第一格式转换为第二格式。
25.根据前述权利要求中任一项所述的方法,其中,所述中间版本的所述至少一部分不是全部中间版本。
26.根据权利要求25所述的方法,包括向所述数字版权管理客户端提供与所述中间版本的所述至少一部分不对应的所述内容项中的至少一些。
27.根据前述权利要求中任一项所述的方法,其中,所述第一设备包括以下之一:
(a)移动电话;
(b)平板计算机;
(c)便携式个人电子设备;
(d)游戏控制台;
(e)个人计算机;
(f)电视。
28.根据前述权利要求中任一项所述的方法,其中,所述解密操作的白盒实现和所述加密操作的白盒实现被一起实现为单个白盒实现。
29.一种装置,其被布置成执行根据权利要求1至28中任一项所述的方法。
30.一个或多个计算机程序,所述一个或多个计算机程序当被一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1至28中任一项所述的方法。
31.一种或多种计算机可读介质,其存储根据权利要求30所述的一个或多个计算机程序。
32.一种配置设备的方法,所述方法包括:
将根据权利要求31所述的一个或多个计算机程序加载到所述设备上。
33.根据权利要求32所述的方法,包括从存储多个应用的商店中获得一个或多个计算机程序,所述多个应用可用于下载到设备上并且在设备上执行。
34.根据权利要求33所述的方法,其中,经由网站访问所述商店。
CN201580070198.3A 2014-10-22 2015-10-15 提供对内容的访问 Pending CN107005402A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1418815.5 2014-10-22
GBGB1418815.5A GB201418815D0 (en) 2014-10-22 2014-10-22 Providing access to content
PCT/EP2015/073872 WO2016062609A1 (en) 2014-10-22 2015-10-15 Providing access to content

Publications (1)

Publication Number Publication Date
CN107005402A true CN107005402A (zh) 2017-08-01

Family

ID=52013449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580070198.3A Pending CN107005402A (zh) 2014-10-22 2015-10-15 提供对内容的访问

Country Status (6)

Country Link
US (1) US10303857B2 (zh)
EP (1) EP3210332B1 (zh)
CN (1) CN107005402A (zh)
CA (1) CA2965032A1 (zh)
GB (1) GB201418815D0 (zh)
WO (1) WO2016062609A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107465504A (zh) * 2017-08-15 2017-12-12 上海与德科技有限公司 一种提高密钥安全性的方法及装置
CN111757176A (zh) * 2020-06-11 2020-10-09 青岛海信传媒网络技术有限公司 流媒体文件安全播放方法及显示设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201418815D0 (en) 2014-10-22 2014-12-03 Irdeto Bv Providing access to content
WO2016112338A1 (en) * 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
US10061905B2 (en) * 2016-01-26 2018-08-28 Twentieth Century Fox Film Corporation Method and system for conditional access via license of proprietary functionality
US10223511B2 (en) * 2016-03-30 2019-03-05 Nxp B.V. Watermarking input and output of a white-box implementation
US10389517B2 (en) * 2016-06-27 2019-08-20 Nxp B.V. Using secure key storage to bind a white-box implementation to one platform
US10778654B2 (en) 2016-09-16 2020-09-15 Arris Enterprises Llc Method and apparatus for protecting confidential data in an open software stack
US10944572B2 (en) 2017-01-02 2021-03-09 Western Digital Technologies, Inc. Decryption and variant processing
WO2019028547A1 (en) 2017-08-08 2019-02-14 Crypto4A Technologies Inc. METHOD AND SYSTEM FOR DEPLOYING AND EXECUTING EXECUTABLE CODE BY SECURE MACHINE
CN110166425B (zh) * 2019-04-09 2021-08-20 北京奇艺世纪科技有限公司 数据处理方法、装置、系统及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2273405A1 (en) * 2009-07-07 2011-01-12 Irdeto Access B.V. Processing recordable content in a stream
WO2011120125A1 (en) * 2010-03-31 2011-10-06 Irdeto Canada Corporation System and method for protecting cryptographic assets from a white-box attack
CN103258152A (zh) * 2012-02-14 2013-08-21 汤姆森特许公司 执行包括已加密指令的软件应用程序的系统、装置和方法
CN103608819A (zh) * 2011-03-30 2014-02-26 耶德托公司 使软件应用能够在移动台上执行

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966441A (en) * 1996-11-18 1999-10-12 Apple Computer, Inc. Method and apparatus for creating a secure autonomous network entity of a network component system
CN100426263C (zh) * 1998-10-16 2008-10-15 松下电器产业株式会社 记录媒体装置和存取装置
US6594761B1 (en) 1999-06-09 2003-07-15 Cloakware Corporation Tamper resistant software encoding
US6779114B1 (en) 1999-08-19 2004-08-17 Cloakware Corporation Tamper resistant software-control flow encoding
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
US6996720B1 (en) * 1999-12-17 2006-02-07 Microsoft Corporation System and method for accessing protected content in a rights-management architecture
CA2305078A1 (en) 2000-04-12 2001-10-12 Cloakware Corporation Tamper resistant software - mass data encoding
US7017189B1 (en) * 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US6981262B1 (en) * 2000-06-27 2005-12-27 Microsoft Corporation System and method for client interaction in a multi-level rights-management architecture
CA2327911A1 (en) 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
US7995603B2 (en) * 2001-05-22 2011-08-09 Nds Limited Secure digital content delivery system and method over a broadcast network
US7363244B2 (en) * 2002-11-08 2008-04-22 Palo Alto Research Center Incorporated Methods, apparatus, and program products for inferring service usage
US7296158B2 (en) * 2002-11-08 2007-11-13 Palo Alto Research Center Incorporated Methods, apparatus, and program products for inferring service usage
US7089425B2 (en) * 2003-03-18 2006-08-08 Ci4 Technologies, Inc. Remote access authorization of local content
CN102047220B (zh) 2008-05-23 2014-12-17 爱迪德加拿大公司 生成软件应用程序的白盒实现的系统和方法
EP2227014B1 (en) 2009-03-02 2019-10-02 Irdeto B.V. Securely providing secret data from a sender to a receiver
EP2227015B1 (en) 2009-03-02 2018-01-10 Irdeto B.V. Conditional entitlement processing for obtaining a control word
EP2280544A1 (en) 2009-07-07 2011-02-02 Irdeto Access B.V. Secure transmition and recording of a content
US8401188B1 (en) * 2009-10-30 2013-03-19 Adobe Systems Incorporated System and method for partial encryption of frame-based electronic content
EP2348725A1 (en) 2010-01-26 2011-07-27 Irdeto Access B.V. Computational efficiently obtaining a control word in a receiver using transformations
EP2369778B1 (en) 2010-03-26 2018-08-15 Irdeto B.V. Personalized whitebox descramblers
EP2506176A1 (en) 2011-03-30 2012-10-03 Irdeto Corporate B.V. Establishing unique key during chip manufacturing
CN104221023B (zh) 2012-02-17 2017-11-03 爱迪德技术有限公司 用于数字权利管理的方法、装置和系统
GB201210472D0 (en) 2012-06-13 2012-07-25 Irdeto Corporate Bv Obtaining control words
WO2016026532A1 (en) 2014-08-21 2016-02-25 Irdeto B.V. User authentication using a randomized keypad over a drm secured video path
WO2016045746A1 (en) 2014-09-26 2016-03-31 Irdeto B.V. A challenge-response method and associated computing device
GB201418815D0 (en) 2014-10-22 2014-12-03 Irdeto Bv Providing access to content

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2273405A1 (en) * 2009-07-07 2011-01-12 Irdeto Access B.V. Processing recordable content in a stream
WO2011120125A1 (en) * 2010-03-31 2011-10-06 Irdeto Canada Corporation System and method for protecting cryptographic assets from a white-box attack
CN103608819A (zh) * 2011-03-30 2014-02-26 耶德托公司 使软件应用能够在移动台上执行
CN103258152A (zh) * 2012-02-14 2013-08-21 汤姆森特许公司 执行包括已加密指令的软件应用程序的系统、装置和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SUSAN HOHENBERGER: "《Securely Obfuscating Re-Encryption》", 《THEORY OF CRYPTOGRAPHY,4TH THEORY OF CRYPTOGRAPHY CONFERENCE,TCC 2007,AMSTERDAM, THE NETHERLANDS》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107465504A (zh) * 2017-08-15 2017-12-12 上海与德科技有限公司 一种提高密钥安全性的方法及装置
CN111757176A (zh) * 2020-06-11 2020-10-09 青岛海信传媒网络技术有限公司 流媒体文件安全播放方法及显示设备
CN111757176B (zh) * 2020-06-11 2021-11-30 青岛海信传媒网络技术有限公司 流媒体文件安全播放方法及显示设备

Also Published As

Publication number Publication date
CA2965032A1 (en) 2016-04-28
GB201418815D0 (en) 2014-12-03
US10303857B2 (en) 2019-05-28
WO2016062609A1 (en) 2016-04-28
EP3210332B1 (en) 2020-01-29
EP3210332A1 (en) 2017-08-30
US20170237551A1 (en) 2017-08-17

Similar Documents

Publication Publication Date Title
CN107005402A (zh) 提供对内容的访问
JP5036187B2 (ja) コンテンツ権利管理システムにおける、柔軟なライセンス供与アーキテクチャ
KR101744748B1 (ko) 화이트박스 암호 테이블을 이용한 콘텐츠 보호 장치, 콘텐츠 암호화 및 복호화 장치
JP2020527305A (ja) デバイスに匿名性を与えるキー認証ステートメントの生成
CN106888080B (zh) 保护白盒feistel网络实施方案以防错误攻击
Zou et al. Phosphor: A cloud based DRM scheme with sim card
US20110185179A1 (en) System And Method For Digital Rights Management With A Lightweight Digital Watermarking Component
CN105721135B (zh) 使用替换盒实施加密操作的方法
CN101286994B (zh) 多设备内容共享的数字版权管理方法、服务器及系统
WO2006080754A1 (en) Contents encryption method, system and method for providing contents through network using the encryption method
JP5185271B2 (ja) デジタルコンテンツの配信制御
US7805616B1 (en) Generating and interpreting secure and system dependent software license keys
JP2009302887A (ja) 情報秘匿化方法および情報秘匿化装置
US20150121073A1 (en) Software fingerprinting
CN105718763A (zh) 将白盒实现与精简安全单元绑定
CN107273724A (zh) 为白盒实施方案的输入和输出加水印
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
CN105024992A (zh) 在单个白箱实现中实现使用相关安全性设置
CN105007256A (zh) 用于在非信任平台上执行安全功能的安全模块
CN105721134B (zh) 使用带有多个外部编码的单个白盒实现
CN105978680A (zh) 在白盒实现方案中实现填充
US10546155B2 (en) Protecting an item of software
US8706635B2 (en) Use of licensed content without identification thereof
Bahaa-Eldin et al. A comprehensive software copy protection and digital rights management platform
CN112019502A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170801