CN109154972B - 使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊 - Google Patents

使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊 Download PDF

Info

Publication number
CN109154972B
CN109154972B CN201780032010.5A CN201780032010A CN109154972B CN 109154972 B CN109154972 B CN 109154972B CN 201780032010 A CN201780032010 A CN 201780032010A CN 109154972 B CN109154972 B CN 109154972B
Authority
CN
China
Prior art keywords
application
electronic device
hardware
server
encrypted
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
CN201780032010.5A
Other languages
English (en)
Other versions
CN109154972A (zh
Inventor
L·T·陈
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109154972A publication Critical patent/CN109154972A/zh
Application granted granted Critical
Publication of CN109154972B publication Critical patent/CN109154972B/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
    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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
    • 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/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Pinball Game Machines (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

使用安全隔离技术来防止电子设备上的盗版和作弊的系统和方法。在一些示例中,电子设备可以使用基于硬件的安全隔离技术来将应用程序的第一部分存储在计算机存储器中,并且将应用程序的第二部分存储在计算机存储器的基于硬件的安全隔离区域中,应用程序的第二部分包括加密部分和明文部分。电子设备还可以使用基于硬件的安全隔离技术建立与服务器的安全加密通信信道,通过安全加密通信信道向服务器发送数据,通过安全加密通信信道从服务器接收解密密钥,并使用解密密钥对加密部分进行解密。然后,电子设备可以使用应用程序的第一部分和应用程序的第二部分来执行应用程序。

Description

使用基于硬件的安全隔离区域来防止电子设备上的盗版和 作弊
背景技术
当设计电子设备时,开发者试图为电子设备创建反盗版措施(例如,软件技术)保护应用免受恶意用户危害。然而,即使是安置的当前的反盗版措施,恶意用户往往仍然能够操纵电子设备以盗取应用程序。常规地,电子设备的恶意用户将修改电子设备的操作系统、管理程序和/或固件。然后,使用修改的电子设备,恶意用户能够提取用户需要的应用程序的代码以在电子设备上恶意执行应用程序。
发明内容
本公开描述了使用安全隔离技术来防止对电子设备盗版和作弊的技术。在一些示例中,电子设备包括安全隔离技术,其使得电子设备的处理器能够以安全模式操作并且将数据和/或代码存储在计算机存储器的基于硬件的安全隔离区域中。例如,电子设备可以将应用程序的第一部分存储在计算机存储器中,并将应用程序的第二部分存储在计算机存储器的基于硬件的安全隔离区域中。应用程序的第二部分可以包括明文部分和加密部分。在一些示例中,加密部分包括对于应用程序的使用至关重要的应用程序的代码。如果没有准确地解密和执行加密部分,则限制应用程序正确运行,从而限制盗版。
为了执行应用程序,电子设备可以利用应用程序的明文部分经由网络与服务器建立安全加密通信信道。电子设备还可以利用应用程序的明文部分将数据发送到服务器,并通过安全加密通信信道从服务器接收解密密钥。在一些示例中,数据包括证明信息,例如电子设备上的中央处理单元(CPU) 芯片的标识符,证明电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,和/或安全隔离区域的摘要。然后,电子设备可以使用解密密钥来解密基于硬件的安全隔离区域内的应用的加密部分。在解密之后,电子设备可以使用应用程序的第一部分和应用程序的第二部分来执行应用程序。
通过使用安全隔离技术使处理器能够以安全模式运行并在计算机存储器的基于硬件的安全隔离区域中执行代码,限制电子设备的操作系统、管理程序和/或固件访问在计算机存储器的基于硬件的安全隔离区域内的数据。这样,即使用户操纵电子设备,基于硬件的安全隔离区域内的应用程序的部分(例如,应用程序的关键代码)仍然是安全的而无法提取。另外,使用被操纵的电子设备,用户被限制修改基于硬件的安全隔离区域内的应用程序的部分。因此,在电子设备执行应用程序的同时,电子设备的用户被限制盗版应用程序和/或作弊。
提供本发明内容是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容不旨在确定所要求保护的主题的关键或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。例如,术语“技术”可以指以上和整个文件所描述的上下文所允许的系统、方法、计算机可读指令、模块、算法、硬件逻辑和/或操作。
附图说明
参考附图描述了具体实施方式。在附图中,附图标记的最左边的数字标识首次出现附图标记的图。不同图中的相同附图标记表示相似或相同的项目。
图1是示出其中使用基于硬件的安全隔离技术来防止电子设备上的盗版和作弊的技术可以在其中操作的示例环境的框图。
图2是示出被配置为利用基于硬件的安全隔离技术来防止盗版和作弊的示例客户端计算设备的框图。
图3是示出被配置为执行与防止利用基于硬件的安全隔离技术的电子设备上的盗版和作弊相关联的技术的示例计算设备的框图。
图4是利用基于硬件的安全隔离技术来防止应用程序盗版的电子设备的示例方法的流程图。
图5是电子设备在计算机存储器的基于硬件的安全隔离区域内执行应用程序的一部分的示例方法的流程图。
图6是利用基于硬件的安全隔离技术来保护解密密钥的示例方法的流程图。
图7是电子设备利用与应用程序相关联的浮动权限的示例方法的流程图。
图8是服务器验证电子设备上的基于硬件的安全隔离技术的第一示例方法的流程图。
图9是服务器验证电子设备上的基于硬件的安全隔离技术的第二示例方法的流程图。
图10是利用基于硬件的安全隔离技术来防止作弊的第一示例方法的流程图。
图11是利用基于硬件的安全隔离技术来防止作弊的第二示例方法的流程图。
具体实施方式
概述
这里描述的示例提供了使用安全隔离技术来防止电子设备上的盗版和作弊的技术。在一些示例中,电子设备包括基于硬件的安全隔离技术,其保护电子设备上的数据和/或代码。安全隔离技术通过使电子设备的处理器能够以安全模式操作,以及通过将数据和/或代码存储在计算机存储器的基于硬件的安全隔离区域中来保护数据和/或代码。在一些示例中,限制电子设备的操作系统、管理程序和/或固件访问计算机存储器的安全隔离区域内的数据和/或代码。这样,即使用户操纵电子设备(例如,电子设备的操作系统、管理程序和/或固件),基于硬件的安全隔离区域内的数据和/或代码仍然安全不能被提取和操纵。基于硬件的安全隔离技术的一个例子是英特尔的软件保护扩展(SGX),但这些技术也可能来自其他硬件制造商。安全隔离技术的功能包括以下:
·将基于硬件的安全隔离区域中的代码和数据对计算机系统的其余部分包括OS监督程序和管理程序保密的能力。
·能够在基于硬件的安全隔离区域内向服务器证明该区域确实在具有基于硬件的安全隔离区域的机器上运行的能力。
·能够在基于硬件的安全隔离区域内向服务器证明当前正在执行的基于硬件的安全隔离区域的加密摘要/测量的能力。
·能够在基于硬件的安全隔离区域内向服务器证明唯一ID的能力,该唯一 ID唯一标识该电子设备区别于利用基于硬件的安全隔离技术的其他电子设备。
·能够在基于硬件的安全隔离区域内生成密钥的能力,该密钥可用作密封密钥,只有在完全相同的基于硬件的安全隔离区域再次在完全相同的硬件上执行时才能重新生成该密封密钥。
在一些示例中,电子设备将应用的第一部分(例如,代码的第一部分) 存储在计算机存储器内并且将应用的第二部分(例如,代码的第二部分) 存储在计算机存储器的基于硬件的安全隔离区域中。应用程序的第二部分可以包括明文部分和加密部分。在一些示例中,明文部分可以包括电子设备用于从服务器取回解密密钥的代码。例如,明文部分可以包括应用程序的许可代码。在一些示例中,加密部分可以包括对于应用程序正确执行至关重要的代码。例如,游戏的加密部分可以包括用于应用程序的AI启发式、 3D物理计算、定制图形处理单元命令生成等的代码。
在一些示例中,为了执行应用程序,电子设备使用明文部分与服务器 (例如,许可服务器)建立安全加密通信信道。电子设备还可以使用明文部分经由安全加密通信信道向服务器发送数据。例如,电子设备可以通过向服务器发送特定数据(例如,证明信息)来向服务器证明。在一些示例中,数据可以包括电子设备的中央处理单元(CPU)芯片的标识符(例如, CPU芯片号),电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,和/或基于硬件的安全隔离区域中的代码和数据的摘要。在这样的示例中,安全隔离区域的摘要可以包括明文部分和加密部分二者。使用该数据,服务器可以验证基于硬件的安全隔离区域正在支持基于硬件的安全隔离技术的电子设备上运行。另外,在一些示例中,服务器可以通过查找支付记录数据库来进一步验证电子设备和/或电子设备的用户是否具有该应用程序的许可。如果应用程序被适当许可,则服务器可以通过安全加密通信信道向电子设备发送解密密钥。
在一些示例中,电子设备使用解密密钥来解密基于硬件的安全隔离区域内的加密部分。在解密之后,电子设备可以使用第一部分、明文部分和解密部分来执行应用。例如,电子设备可以使用CPU来执行存储在计算机存储器中的应用程序的第一部分。电子设备还可以使用CPU来执行存储在计算机存储器的基于硬件的安全隔离区域内的明文部分和解密部分。
在一些示例中,当电子设备完成执行应用程序时,基于硬件的安全隔离区域可以生成密封密钥,明文部分可以使用该密封密钥来加密解密密钥。电子设备可以将加密的解密密钥存储在非易失性计算机可读存储介质中。这使得解密密钥能够在重新启动之后被恢复,从而使得在最初获取解密密钥之后应用程序能够离线使用(无需访问许可服务器)。在一些示例中,完全相同的密封密钥只能再次通过在完全相同的电子设备上运行的完全相同的基于硬件的安全隔离区域来恢复,从而防止其他电子设备上的盗版。
另外或替代地,开发者可以使电子设备将代码存储在基于硬件的安全隔离区域中,以防止用户作弊。例如,在一些示例中,应用程序的加密部分可以包括确认应用程序的其他部分(例如,应用程序的第一部分)正在正确运行并且未被恶意修改的代码。例如,加密部分可以包括定期检查并确认应用程序的第一部分未被篡改的代码。附加地或替代地,在一些示例中,加密部分可以包括用户将操纵以便作弊的数据。例如,如果应用程序包括每个玩家包括健康状态的视频游戏,则加密部分可以包括跟踪玩家健康状态的可变数据。因为此健康状态数据现在存储在基于硬件的安全隔离区域中,所以限制其被想要在游戏中作弊的用户修改。
参考图1-10进一步描述各种示例、场景和方面。
说明性的环境
图1示出了示例环境100,其中可以操作用于使用基于硬件的安全隔离技术来防止电子设备上的盗版和作弊的技术。在一些示例中,环境100的各种设备和/或组件包括分布式计算资源102,其可以经由一个或多个网络 104彼此通信并与外部设备进行通信。
网络104可以包括,例如,诸如因特网的公共网络,诸如机构和/或个人内联网的专用网络,或者专用网络和公共网络的某种组合。网络104还可以包括任何类型的有线和/或无线网络,包括但不限于局域网(LAN)、广域网(WAN)、卫星网络、有线网络、Wi-Fi网络、WiMax网络、移动通信网络(例如,3G,4G等)或其任何组合。网络104可以利用通信协议,包括基于分组和/或基于数据报的协议,诸如因特网协议(IP)、传输控制协议 (TCP)、用户数据报协议(UDP)或其他类型的协议。此外,网络104还可以包括多个便于网络通信和/或形成网络硬件基础的设备,例如交换机、路由器、网关、接入点、防火墙、基站、中继器、骨干设备等等。
在一些示例中,网络104还可以包括能够连接到无线网络的设备,例如无线接入点(WAP)。示例支持通过在各种电磁频率(例如,无线电频率) 上发送和接收数据的WAP的连接性,包括支持电气和电子工程师协会 (IEEE)802.11标准(例如,802.11g,802.11n等等)的WAP,以及其他标准。
在各种示例中,分布式计算资源102包括设备106(1)-106(M)。示例支持这样的场景,其中设备106可以包括一个或多个计算设备,这些计算设备在集群或其他分组配置中操作,以共享资源,平衡负载,提高性能,提供故障转移支持或冗余,或用于其他目的。设备106可以属于各种类别或类的设备,诸如传统的服务器类型设备、台式计算机类型设备、移动类型设备、专用类型设备、嵌入式设备和/或可穿戴类型设备。因此,尽管示出为单一类型的设备,但是设备106可以包括各种各样的设备类型,并且不限于特定类型的设备。设备106可以表示但不限于台式计算机、服务器计算机、web服务器计算机、个人计算机、移动计算机、膝上型计算机、平板计算机、可穿戴计算机、植入式计算设备、电信设备、汽车计算机、网络电视、瘦客户端、终端、个人数据助理(PDA)、游戏机、游戏设备、物联网(IoT)设备、工作站、媒体播放器、个人视频录像机(PVR)、机顶盒、相机,用于包含在计算设备中的集成组件(即,外围设备)、器具或任何其他种类的计算设备。
设备106可以包括具有一个或多个处理单元108的任何计算设备,所述处理单元108可操作地连接到计算机可读介质110,例如通过总线112,在某些情况下,总线112可以包括系统总线、数据总线、地址总线、PCI 总线、Mini-PCI总线以及任何各种本地、外围设备和/或独立总线中的一个或多个。存储在计算机可读介质110上的可执行指令可以包括例如操作系统114、安全隔离技术(SIT)验证实用程序116,以及可由处理单元108 加载和执行的其他模块、程序或应用程序。可替代地或另外地,本文中功能性描述的内容可以至少部分地由诸如加速器的一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统式系统(SOC)、复杂可编程逻辑器件(CPLD)等。例如,加速器可以代表混合设备,例如ZYLEX或ALTERA中的一个,包括嵌入在FPGA 结构中的CPU。
设备106还可以包括一个或多个网络接口118,以实现计算设备106与诸如客户端计算设备120之类的其他联网设备之间的通信。这样的网络接口118可以包括一个或多个网络接口控制器(NIC)或其他类型的收发机设备,用于通过网络发送和接收通信。为简单起见,从所示设备106中省略了其他组件。
被配置为实现使用安全隔离技术来防止电子设备上的盗版和作弊的技术的其他设备可以包括客户端计算设备,例如客户端计算设备120(1)-120 (N)中的一个或多个。客户端计算设备120可以属于各种类别或类的设备,其可以与设备106相同或不同,诸如传统的客户端类型设备、台式计算机类型设备、移动型设备、专用型设备、嵌入式设备和/或可穿戴型设备。客户端计算设备120可以包括但不限于膝上型计算机120(1),平板计算机 120(2),诸如移动电话的电信设备120(3),计算机导航型客户端计算设备,诸如基于卫星的导航系统,包括全球定位系统(GPS)设备和其他基于卫星的导航系统设备,移动电话/平板电脑混合设备,个人数据助理(PDA),个人计算机,其他移动计算机,可穿戴计算机,植入计算设备,台式计算机,汽车计算机,支持网络的电视,瘦客户端,终端,游戏控制台,游戏设备120(4),网络连接的车辆120(5),物联网(IoT)设备120(N),工作站,媒体播放器,个人视频记录器(PVR),机顶盒,相机,用于包含在计算设备中的集成组件(例如,外围设备),器具或任何其他种类的计算设备。
各种类别或类的客户端计算设备120和设备类型(例如膝上型计算机 120(1))可以表示具有例如通过总线126可操作地连接到计算机存储器124 的一个或多个处理单元122的任何类型的计算设备,在某些情况下总线126 可以包括系统总线、数据总线、地址总线、PCI总线、Mini-PCI总线以及任何种类的本地、外围设备和/或独立总线中的一个或多个。
存储在计算机存储器124上的可执行指令可以包括例如操作系统128、应用程序130的第一部分以及可由处理单元122加载和执行的其他模块、程序或应用程序。
客户端计算设备120还可以包括一个或多个网络接口132,以实现客户端计算设备120与其他联网设备(例如其他客户端计算设备120或设备106) 之间通过网络104的通信。这样的网络接口132可以包括一个或多个网络接口控制器(NIC)或其他类型的收发机设备,以通过网络发送和接收通信。
在图1的示例中,客户端计算设备120可以包括基于硬件的安全隔离技术,其保护客户端计算设备120上的数据和/或代码。基于硬件的安全隔离技术通过使得客户端计算设备120的处理单元122能够以安全模式操作,并且通过将数据和/或代码存储在计算机存储器124的基于硬件的安全隔离区域(HBSIR)132中来保护数据和/或代码。在一些示例中,一个或多个客户端计算设备120的操作系统128、管理程序和/或固件被限制访问计算机存储器124的基于硬件的安全隔离区域134内的数据和/或代码。因此,即使用户操纵客户端计算设备120(例如,计算设备120的操作系统128、管理程序和/或固件),基于硬件的安全隔离区域134内的数据和/或代码仍然是安全的而不受提取和操纵的影响。
例如,在一些示例中,客户端计算设备120的处理单元122可以包括来自INTEL的、包括SECURE GUARD EXTENSIONS(SGX)的SKYLAKE CHIPS。在这样的示例中,SGX可以使处理单元122能够以“飞地(enclave)”模式执行,在“飞地”模式中在可以包括基于硬件的安全隔离区域134的飞地内的数据和/或代码仍可以保密,而不管恶意的操作系统128、管理程序和/或固件。
在图1的示例中,基于硬件的安全隔离区域134存储应用程序136的第二部分。例如,在图1的示例中,应用程序130的第一部分和应用程序 136的第二部分可以包括用于单个应用程序的代码。在一些示例中,应用程序130的第一部分包括明文,并且应用程序136的第二部分包括明文部分和加密部分。这样,客户端计算设备120可以使用存储在计算机存储器123 中的应用程序130的第一部分和存储在基于硬件的安全隔离区域134中的应用程序136的第二部分来执行应用程序。
例如,在一些示例中,客户端计算设备120可以使用应用程序的第二部分(例如,明文)来与设备106建立安全加密通信信道。例如,处理单元122可以执行包括在明文部分中的计算机可读指令,该指令使得处理单元122建立安全加密通信信道。使用安全加密通信信道,基于硬件的安全隔离区域134可以经由客户端计算设备120与设备106间接通信。
例如,客户端计算设备120可以通过经由安全加密通信信道向设备106 发送数据来向设备106证明。在一些示例中,数据可以包括处理单元122 的标识(例如,CPU芯片号)、证明计算设备120上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,和/或基于硬件的安全隔离区域 134的摘要。在这样的示例中,基于硬件的安全隔离区域134的摘要包括明文部分和加密部分。使用该数据,设备106可以验证基于硬件的安全隔离区域134正在支持基于硬件的安全隔离技术的客户端计算设备120上运行。另外,在一些示例中,设备106可以验证客户端计算设备120和/或客户端计算设备120的用户包括应用程序的许可。然后,设备106可以经由安全加密通信信道将解密密钥138发送到客户端计算设备120。
在接收到解密密钥138之后,客户端计算设备120可以使用解密密钥 138来解密应用程序的加密部分。例如,处理单元122可以执行包括在明文部分中的计算机可读指令,该指令使得处理单元122使用解密密钥138对加密部分进行解密。客户端计算设备120可以然后在基于硬件的安全隔离区域134内执行应用程序的加密的第二部分。
图2是示出被配置为利用基于硬件的安全隔离技术来防止盗版和作弊的示例客户端计算设备200的框图。计算设备200可以表示客户端计算设备120。示例计算设备200包括一个或多个处理单元202、计算机存储器204、输入/输出接口206和网络接口208。计算设备200的组件可操作地连接,例如,通过总线210,总线210可以代表总线126。
在示例计算设备200中,处理单元202可以对应于处理单元122,并且可以表示例如CPU类型处理单元、GPU类型处理单元、现场可编程门阵列 (FPGA)、另一类数字信号处理器(DSP)或其他硬件逻辑组件,在某些情况下可由CPU驱动。例如但不限于,可以使用的说明性类型的硬件逻辑组件包括专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统式系统(SOC)、复杂可编程逻辑器件(CPLD)等。
计算机存储器204可以对应于计算机存储器124,并且可以存储可由处理单元202执行的指令。计算机存储器204还可以存储可由外部处理单元执行的指令,例如通过外部CPU、外部GPU,和/或可由外部加速器执行的指令,例如FPGA类型加速器、DSP类型加速器或任何其他内部或外部加速器。在各种示例中,至少一个CPU、GPU和/或加速器并入计算设备200 中,而在一些示例中,CPU、GPU和/或加速器中的一个或多个在计算设备 200外部。
计算机存储器204可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性存储器、非易失性存储器和/或其他持久性和/ 或辅助计算机存储介质、可移动和不可移动的计算机存储器中的一个或多个。因此,计算机存储介质包括作为设备的一部分或在设备外部的设备和/ 或硬件组件中包括的有形和/或物理形式的介质,包括但不限于随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、相变存储器(PRAM)、只读存储器(ROM)、可擦除可编程只读存储器 (EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存或任何其他存储存储器、存储设备和/或可用于存储和维护信息以供计算设备访问的存储介质。
输入/输出(I/O)接口206允许计算设备200与输入/输出设备通信,例如包括外围输入设备的用户输入设备(例如,键盘、鼠标、笔、游戏控制器、语音输入设备、触摸输入设备、手势输入设备等)和/或包括外围输出设备(例如,显示器、打印机、音频扬声器、触觉输出等)的输出设备。
可以对应于网络接口132的网络接口208可以表示例如网络接口控制器(NIC)或其他类型的收发机设备,以通过网络发送和接收通信。
在所示示例中,计算机存储器204包括非易失性存储介质212。非易失性存储介质212可以存储用于存储在计算机存储器204中和/或由处理单元 202和/或加速器执行的过程、应用程序、组件和/或模块的操作的数据。另外,在一些示例中,上述参考数据中的一些或全部可以存储在一个或多个处理单元202板上的分离的存储器214上,例如CPU型处理器板上的存储器,GPU型处理器、FPGA型加速器、DSP型加速器和/或其他加速器。
在图2所示的示例中,计算机存储器204还包括操作系统216,其可以代表操作系统128。另外,计算机存储器204包括基于硬件的安全隔离区域 218和应用程序220的第一部分,其可以分别表示基于硬件的安全隔离区域 134和应用程序130的第一部分。此外,计算机存储器204包括加密的解密密钥222。
在图2的示例中,基于硬件的安全隔离区域218存储应用程序224的第二部分(其可以表示应用程序136的第二部分)、解密密钥226和密封密钥228 。在一些示例中,存储在计算机存储器204中的应用程序220的第一部分和存储在基于硬件的安全隔离区域218中的应用程序224的第二部分包括用于软件应用程序的数据和代码。例如,应用程序220的第一部分可以包括用于应用程序的明文。应用程序224的第二部分可以包括应用程序的明文部分230和应用程序的加密部分232。在一些示例中,明文部分230 包括标准许可代码,其下载解密密钥226以用于解密加密部分230。在一些示例中,加密部分232包括对于正确执行应用程序而言至关重要的代码。例如,用于游戏的加密部分232可以包括用于AI启发式、物理计算、定制图形处理单元命令生成等的代码。
基于硬件的安全隔离区域218可以进一步包括一个或多个模块,其被示为块234、236、238、240、242,尽管这仅是示例,并且数量可以更高或更低。与块234、236、238、240、242相关联描述的功能可以组合为由较少数量的模块执行,或者可以分割并且由较多数量的模块执行。另外,在一些示例中,与块234、236、238、240、242相关联的一些功能可以由未包括在基于硬件的安全隔离区域218中的模块来执行。
块234包括用于对计算设备200的处理单元202进行编程以执行本文描述的用于计算设备200的证明过程的逻辑。例如,处理单元202可以执行证明模块234以向例如图1中的设备106的服务器证明。在一些示例中,为了向服务器证明,计算设备200使用基于硬件的安全隔离区域218内的明文部分230来与服务器建立安全加密通信信道。例如,Diffie-Hellman密钥交换算法可用于建立该安全加密通信信道。例如,处理单元202可以执行明文部分230中包括的代码,该代码使得处理单元202经由网络接口208 与服务器建立安全加密通信信道。
在一些示例中,计算设备200响应于用户使用计算设备200来执行应用程序而建立安全加密通信信道。在建立安全加密通信信道之后,基于硬件的安全隔离区域218可以经由计算设备200间接地与服务器通信。例如,通过安全加密通信信道,计算设备200可以使用证明模块234来发送数据到服务器进行证明。在一些示例中,数据包括电子设备的处理单元202的标识符(例如,CPU芯片号),证明电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,和/或基于硬件的安全隔离区域218 的摘要。在这样的示例中,基于硬件的安全隔离区域218的摘要包括明文部分230和加密部分232。使用该数据,服务器可以验证基于硬件的安全隔离区域218在支持基于硬件的安全隔离技术的计算设备200上运行。另外,在一些示例中,服务器可以验证计算设备200和/或计算设备200的用户包括应用程序的许可。然后,服务器可以经由安全加密通信信道向计算设备 200发送解密密钥226(其可以表示解密密钥138)。
块236包括用于对计算机设备200的处理单元202进行编程以与服务器建立安全信道的逻辑。例如,处理单元202可以执行安全通信模块236,安全通信模块236可以利用网络接口208来与服务器(例如图1中的设备 106)建立安全加密通信信道。在一些示例中,安全通信模块236可以利用 Diffie-Hellman密钥交换算法来设置与服务器的安全加密通信信道。在一些示例中,处理单元202执行安全通信模块236以响应于用户使用计算设备 200执行应用程序来建立安全加密通信信道。
块238包括对计算设备200的处理单元202进行编程以解密基于硬件的安全隔离区域218内的数据和/或代码的逻辑。例如,计算设备200可以利用安全隔离区域(SIR)解密模块238来解密基于硬件的安全隔离区域218 内的应用程序的加密部分232。解密加密部分232可以生成应用程序的解密部分。在一些示例中,解密部分可以包括处理单元202在应用程序的执行期间在基于硬件的安全隔离区域218内执行的代码。在一些示例中,每当计算设备200尝试执行应用时,计算设备200利用SIR解密模块238使用解密密钥226对加密部分232进行解密。
计算设备200还可以利用SIR解密模块238来解密基于硬件的安全隔离区域218内的加密的解密密钥222。例如,在一些示例中,计算设备200 使用密封密钥228来加密解密密钥226并将加密的解密密钥222存储在计算机存储器204中。在这样的示例中,计算设备200可以利用SIR解密模块238使用密封密钥228解密基于硬件的安全隔离区域218内的加密的解密密钥222,从而取回解密密钥226。
块240包括对计算设备200的处理单元202进行编程以生成密封密钥 228的逻辑。例如,计算设备200可以利用密封密钥生成模块240来生成密封密钥228。例如,密封密钥228必须特定于处理单元202和/或基于硬件的安全隔离区域218。例如,在这样的示例中,仅包括处理单元202的计算设备200和基于硬件的安全隔离区域218可以生成密封密钥228。在一些示例中,计算设备200利用密封密钥生成模块240在计算设备200每次需要加密解密密钥226时和/或在计算设备200每次需要解密加密的解密密钥 222时生成密封密钥228。
块242包括用于对计算设备200的处理单元202进行编程以使用密封密钥228加密解密密钥226的逻辑。例如,计算设备200可以利用安全隔离区域加密模块242来使用密封密钥228加密解密密钥226以便于生成加密的解密密钥222。在一些示例中,计算设备200然后可以将加密的解密密钥222保存在计算机存储器204中。例如,在一些示例中,计算设备200将加密的解密密钥222存储在非易失性存储介质212中。
应当注意,在一些示例中,计算设备200可以从服务器接收浮动许可。在这样的示例中,计算设备200不使用密封密钥228对解密密钥226进行加密,并且从不将解密密钥(无论是否加密)存储在基于硬件的安全隔离区域218之外。相反,系统将需要确保使用该应用程序的该许可一次仅由一个电子设备使用。为了做到这一点,当计算设备200接收浮动许可时,计算设备200和/或基于硬件的安全隔离区域218可以从服务器接收指令以周期性地与服务器通信(例如,时间间隔,例如,每分钟、每十分钟等等)。然后,当(1)计算设备200和/或基于硬件的安全隔离区域218不能与服务器进行通信时,或(2)计算设备200的用户使用不同的计算设备来利用与用户在计算设备200上使用的许可相同的许可来许可应用程序时,基于硬件的安全隔离区域218可以使明文部分230和/或应用程序的解密部分终止执行。
图3是示出被配置为执行与防止电子设备上的盗版和作弊相关联的技术的示例服务器计算设备的框图,其验证基于硬件的安全隔离技术。计算设备300可以表示设备106。示例计算设备300包括一个或多个处理单元 302、计算机可读介质304、输入/输出接口306和网络接口308。计算设备 300的组件可操作地连接,例如,通过总线310,总线310可以代表总线112。
在示例计算设备300中,处理单元302可以对应于处理单元108,并且可以表示例如CPU类型处理单元、GPU类型处理单元、现场可编程门阵列 (FPGA)、另一类数字信号处理器(DSP)或其他硬件逻辑组件,在某些情况下可由CPU驱动。例如但不限于,可以使用的说明性类型的硬件逻辑组件包括专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统式系统(SOC)、复杂可编程逻辑器件(CPLD)等。
计算机可读介质304可以对应于计算机可读介质110,并且可以存储可由处理单元302执行的指令。计算机可读介质304还可以存储可由外部处理单元执行的指令,例如通过外部CPU、外部GPU,和/或可由外部加速器执行的指令,例如FPGA类型加速器、DSP类型加速器或任何其他内部或外部加速器。在各种示例中,至少一个CPU、GPU和/或加速器并入计算设备300中,而在一些示例中,CPU、GPU和/或加速器中的一个或多个在计算设备300外部。
计算机可读介质304可包括计算机存储介质和/或通信介质。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性存储器、非易失性存储器和/或其他持久性和/或辅助计算机存储介质、可移动和不可移动计算机存储介质中的一个或多个。因此,计算机存储介质包括作为设备的一部分或在设备外部的设备和/或硬件组件中包括的有形和/或物理形式的介质,包括但不限于随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、相变存储器(PRAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器 (EEPROM)、闪存、光卡或其他光存储介质、磁带盒、磁带、磁盘存储、磁卡或其他磁存储设备或介质、固态存储器设备、存储阵列、网络附加存储、存储区域网络、托管计算机存储或任何其他存储存储器、存储设备和/ 或可用于存储和维护信息以供计算设备访问的存储介质。
与计算机存储介质相反,通信介质可以体现计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据,例如载波或其他传输机制。如这里所定义的,计算机存储介质不包括通信介质。也就是说,计算机存储介质本身不包括仅由调制数据信号、载波或传播信号组成的通信介质。
输入/输出(I/O)接口306允许计算设备300与输入/输出设备通信,例如包括外围输入设备(例如,键盘、鼠标、笔、游戏控制器、语音输入设备、触摸输入设备、手势输入设备等)的用户输入设备和/或包括外围输出设备(例如,显示器、打印机、音频扬声器、触觉输出等)的输出设备。
可以对应于网络接口118的网络接口308可以表示例如网络接口控制器(NIC)或其他类型的收发机设备,用于通过网络发送和接收通信。
在所示的示例中,处理单元302 包括分离的存储器312。在一些示例中,上述参考数据中的一些或全部可以存储在一个或多个处理单元302板上的分离的存储器312上,例如CPU型处理器、GPU型处理器、FPGA型加速器、DSP型加速器和/或其他加速器板上的存储器。
在图3所示的示例中,计算机可读介质304包括操作系统314,其可以代表操作系统114。另外,计算机可读介质304包括安全隔离技术验证实用程序316。安全隔离技术验证实用程序316可以包括一个或多个模块,其被示出作为块318、320、322和324,尽管这只是一个例子,并且数量可以变化更高或更低。与块318、320、322和324相关联描述的功能可以组合为由较少数量的模块执行,或者其可以被分割并且由更多数量的模块执行。另外,在一些示例中,与块318、320、322和324相关联的一些功能可以由未包括在安全隔离技术验证实用程序116中的模块执行。
块318包括用于对计算设备300的处理单元302进行编程以执行本文描述的用于计算设备300的证明过程的逻辑。例如,计算设备300可以通过安全的加密通信信道从电子设备(例如,来自图1的客户端计算设备120) 接收数据(例如,证明信息)。计算设备300可以利用证明验证模块318来执行证明验证,以便于使用数据验证电子设备正在运行基于硬件的安全隔离技术。在一些示例中,数据可以包括电子设备的中央处理单元(CPU) 芯片的标识符(例如,CPU芯片号),证明电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,和/或基于硬件的安全隔离区域的摘要值。
例如,计算设备300可以通过验证电子设备包括受信任的CPU芯片并且包括基于硬件的安全隔离技术来执行证明。例如,服务器可以使用安全隔离技术(SIT)数据库326来验证CPU芯片的身份和基于硬件的安全隔离区域的身份。SIT数据库326可以包括将电子设备与基于硬件的安全隔离技术相关联的数据。这样,计算设备300可以使用SIT数据库326来验证电子设备的CPU芯片与电子设备上的基于硬件的安全隔离技术匹配。在一些示例中,如果计算设备300确定CPU芯片与电子设备上的基于硬件的安全隔离技术匹配,则计算设备300可以验证电子设备上的基于硬件的安全隔离技术。然而,如果计算设备确定CPU芯片与电子设备上的基于硬件的安全隔离技术不匹配,则计算设备300不验证电子设备上的基于硬件的安全隔离技术。
块320包括用于对计算设备300的处理单元302进行编程以确定与关于电子设备的应用相关联的权限的逻辑。例如,在一些示例中,在验证电子设备之后,计算设备300可以执行权限模块320以确定电子设备是否包括执行应用程序的权限。
例如,在一些示例中,计算设备300可以利用权限数据库328来确定电子设备是否包括执行应用程序的权限。权限数据库328可以包括指示包括与各种应用程序相关联的权限的用户和/或电子设备的数据。这样,计算设备300可以使用权限数据库328来确定电子设备和/或电子设备的用户是否包括与应用程序相关联的权限。在一些示例中,计算设备300可以使用 CPU芯片的身份来确定电子设备是否具有与应用程序相关联的许可权限。在一些示例中,如果计算设备300接收用户的凭证(例如,用户账户信息) 以及数据,则计算设备300可以确定用户是否具有与应用程序相关联的许可权限。
在一些示例中,与应用程序相关联的权限可以包括应用程序的永久许可或浮动许可。基于包括用于应用程序的永久许可的用户和/或电子设备,计算设备300可以向电子设备发送用于应用程序的解密密钥330(其可以表示解密密钥138)。基于包括用于应用程序的浮动许可的用户和/或电子设备,计算设备300可以向电子设备发送用于应用程序的解密密钥330和与浮动许可相关联的浮动许可指令332二者。
在一些示例中,浮动许可指令332可以使电子设备上的基于硬件的安全隔离技术周期性地与计算设备300验证浮动许可。例如,浮动许可指令 332可以使基于硬件的安全隔离技术以给定时间间隔(例如,每30秒、每分钟、每小时等)与计算设备300通信,以验证电子设备上的应用程序的浮动许可仍然有效。在一些示例中,计算设备300可以基于计算设备300 在附加电子设备上从用户接收类似凭证(例如,用户账户信息)来确定浮动许可不再有效。在这样的示例中,计算设备300可以向电子设备发送指示浮动许可在电子设备上不再有效的消息。
块322包括对计算设备300的处理单元302进行编程以加密计算设备 300和电子设备之间的通信的逻辑。另外,块324包括用于对计算设备300 的处理单元302进行编程以解密计算设备300与电子设备之间的通信的逻辑。例如,在一些示例中,计算设备300使用安全加密通信信道与电子设备进行通信。这样,计算设备300可以利用加密模块322在通过安全加密通信信道向电子设备发送通信之前对通信进行加密。另外,计算设备300 可以利用解密模块324来解密经由安全加密通信信道从电子设备接收的通信。
应当注意,在一些示例中,安全隔离技术验证实用程序316可以不包括加密模块322或解密模块 324中的一个或多个。例如,在一些示例中,计算设备300可以存储计算设备300的计算机可读介质304中的加密模块和/或解密模块。在这样的示例中,计算设备300可以使用计算机可读介质 304中的加密模块和解密模块来加密和/或解密通信。
图4-10示出了使用基于硬件的安全隔离技术来防止在电子设备上盗版和作弊的示例过程。示例过程被示为逻辑流程图中的块的集合,其表示可以以硬件、软件或其组合实现的操作序列。块由数字引用。在软件的上下文中,块表示存储在一个或多个计算机存储器上的计算机可执行指令,当由一个或多个处理单元(例如硬件微处理器)执行时,执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且可以以任何顺序和/或并行地组合任何数量的所描述的块以实现该过程。
图4是电子设备利用基于硬件的安全隔离技术来防止应用程序盗版的示例方法的流程图400。在块402处,电子设备可以将应用程序的第一部分存储在计算机存储器中。例如,应用程序的开发者可以指定电子设备的应用程序的哪些部分将从电子设备的计算机存储器执行,以及电子设备的应用程序的哪些部分将从电子设备的计算机存储器的基于硬件的安全隔离区域执行。这样,当准备执行应用程序时,电子设备可以将应用程序的第一部分存储在计算机存储器中(例如,电子设备从计算机存储器执行的应用程序的部分)。在一些示例中,应用程序的第一部分包括明文。
在块404处,电子设备可以将应用程序的第二部分存储在计算机存储器的基于硬件的安全隔离区域中。例如,电子设备可以将应用程序的第二部分存储在基于硬件的安全隔离区域中,其中第二部分包括明文部分和加密部分。在一些示例中,明文部分包括电子设备用于从服务器取回解密密钥的代码。例如,明文部分可以包括下载解密密钥的标准许可代码。在一些示例中,加密部分包括对于应用程序正确执行至关重要的代码。例如,加密部分可以包括用于Al启发式、物理计算、自定义图形处理单元命令生成等的代码。
在块406处,电子设备可以使用明文部分与服务器建立安全加密通信信道。例如,电子设备(例如,处理器)可以执行包括在明文部分中的计算机可读指令,该指令使电子设备与服务器建立安全加密通信信道。在一些示例中,基于硬件的安全隔离区域可以间接使用安全加密通信信道来经由电子设备与服务器发送和接收数据。
在块408处,电子设备可以经由安全加密通信信道将数据发送到服务器。例如,电子设备(例如,处理器)可以执行包括在基于硬件的安全隔离区域中的计算机可读指令(例如,代码),该安全隔离区域使得电子设备经由安全加密通信信道向服务器发送证明信息。在一些示例中,证明信息可以包括电子设备的处理器的标识符(例如,CPU芯片号),证明电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,和/或基于硬件的安全隔离区域的摘要值。在一些示例中,服务器可以使用证明信息来执行证明,以验证电子设备、处理器和/或基于硬件的安全隔离区域中的一个或多个。另外,在一些示例中,服务器可以确定电子设备和/或电子设备的用户关于应用程序具有的一个或多个权限。例如,服务器可以确定电子设备和/或电子设备的用户是否包括永久许可或浮动许可。
在块410处,电子设备可以经由安全加密通信信道从服务器接收解密密钥,并且在块412,电子设备可以使用解密密钥对第二部分的加密部分进行解密。例如,基于服务器的验证和权限确定,电子设备可以经由安全加密通信信道从服务器接收解密密钥。然后,电子设备可以使用解密密钥对基于硬件的安全隔离区域内的加密部分进行解密。例如,电子设备(例如,处理器)可以执行包括在明文部分中的计算机可读指令,该指令使电子设备使用解密密钥对加密部分进行解密。
应注意,在一些示例中,电子设备然后可以执行应用程序。例如,电子设备(例如,处理器)可以从计算机存储器执行应用程序的第一部分,并且在计算机存储器的基于硬件的安全隔离区域内执行明文部分和解密部分二者。在一些示例中,应用程序的第一部分可以在执行期间对基于硬件的安全隔离区域内的应用程序的第二部分进行调用。
应进一步注意,在一些示例中,应用程序的第二部分可以防止在应用程序的执行期间作弊。例如,应用程序的第二部分(例如,加密部分)可以包括周期性地确定应用程序的第一部分的代码是否正确执行的代码。确定第一部分的代码是否正确执行可以包括确定代码是否已被电子设备的用户修改。附加地或可替代地,在一些示例中,应用程序的第二部分(例如,加密部分)可以包括应用程序的恶意用户在作弊时通常修改的代码。通过将代码放置在基于硬件的安全隔离区域中,恶意用户被限制为作弊而修改代码。
图5是电子设备在计算机存储器的基于硬件的安全隔离区域内执行应用程序的一部分的示例方法的流程图500。在块502处,电子设备可以与服务器建立通信信道。
在块504处,电子设备可以经由通信信道从服务器接收解密密钥。例如,电子设备可以使用应用程序的一部分来与服务器建立通信信道。应用程序的该部分可以包括存储在计算机存储器的基于硬件的安全隔离区域中的明文部分。在一些示例中,明文部分包括电子设备用于从服务器下载解密密钥的标准许可代码。
在块506处,电子设备可以使用解密密钥在计算机存储器的基于硬件的安全隔离区域内解密应用程序的加密部分。例如,电子设备可以将应用的加密部分存储在基于硬件的安全隔离区域中。然后,电子设备可以使用解密密钥来解密基于硬件的安全隔离区域内的加密部分。在一些示例中,限制电子设备的操作系统、管理程序和/或固件访问计算机存储器的基于硬件的安全隔离区域内的应用程序的解密部分。
应注意,在一些示例中,电子设备然后可以执行应用程序。例如,在解密加密部分之后,电子设备可以在基于硬件的安全隔离区域内执行应用程序的该部分。另外,电子设备可以执行存储在基于硬件的安全隔离区域之外的应用的任何部分。
图6是利用基于硬件的安全隔离技术来保护解密密钥的示例方法的流程图600。当电子设备从服务器接收永久许可时,电子设备可以执行图6的方法。通过安全地存储解密密钥,电子设备可以以离线模式执行应用程序。
在块602处,基于硬件的安全隔离技术可以使电子设备在计算机存储器的基于硬件的安全隔离区域内生成密封密钥。例如,电子设备的处理器可以执行包括在基于硬件的安全隔离区域中的计算机可读指令(例如,代码),其使得处理器在基于硬件的安全隔离区域内生成密封密钥。在一些示例中,电子设备基于电子设备的处理器和/或基于硬件的安全隔离区域生成密封密钥。在这样的示例中,仅包括处理器和基于硬件的安全隔离区域的电子设备可以生成相同的密封密钥。
在块604,电子设备的基于硬件的安全隔离技术可以使用密封密钥加密解密密钥,并且在块606,基于硬件的安全隔离技术可以使电子设备将加密的解密密钥存储在计算机存储器中。例如,电子设备可以执行包括在应用程序的明文部分内的计算机可读指令,该明文部分存储在基于硬件的安全隔离区域内,其中计算机可读指令使得电子设备对基于硬件的安全隔离区域内的解密密钥进行加密。然后,电子设备可以将加密的解密密钥存储在计算机存储器中。在一些示例中,电子设备将加密的解密密钥存储在非易失性存储器中。
应当注意,为了在离线模式下执行应用程序,基于硬件的安全隔离技术可以从计算机存储器中取回存储的加密的解密密钥。然后,电子设备可以使用密封密钥对基于硬件的安全隔离区域内的加密的解密密钥进行解密,并使用解密密钥来解密应用程序的已加密部分。
图7是电子设备利用与应用程序相关联的浮动权限的示例方法的流程图700。在一些示例中,浮动权限可以包括跟随电子设备的用户的浮动许可。例如,每次用户使用电子设备向服务器提供凭证(例如,用户名和密码) 时,服务器可以向该电子设备发送浮动许可以运行应用程序。
在块702处,电子设备可以从服务器接收与应用程序的浮动权限相关联的指令。例如,电子设备可以从服务器接收指令以及用于应用的解密密钥。在一些示例中,浮动权限包括应用程序的浮动许可。在这样的示例中,指令可以使电子设备的基于硬件的安全隔离区域连续地和/或周期性地与服务器进行通信以确定浮动许可是否仍然有效。
在块704处,电子设备可以使用存储在计算机存储器中的应用程序的第一部分和存储在计算机存储器的基于硬件的安全隔离区域中的应用程序的第二部分来执行应用程序。在一些示例中,应用程序的第一部分包括明文,并且应用程序的第二部分包括明文部分和加密部分。在这样的示例中,明文部分使用解密密钥对加密部分进行解密,使得电子设备可以执行该应用程序。
在块706处,基于硬件的安全隔离区域可以与服务器通信以确定浮动权限是否仍然有效。例如,在一些示例中,浮动权限可以指定电子设备的用户一次只能在单个电子设备上执行应用。在这样的示例中,基于硬件的安全隔离区域可以周期性地(例如,每分钟、每小时等)与服务器通信以确定用户是否正在使用另一电子设备来执行应用程序。如果服务器确定用户正在使用另一电子设备来执行应用程序,则服务器可以确定电子设备的浮动权限不再有效。然而,如果用户没有使用其他电子设备来执行应用程序,则服务器可以确定电子设备的浮动权限仍然有效。
在块708处,基于硬件的安全隔离区域可以使得电子设备基于浮动权限无效来终止第二部分的执行,或者在块710处,基于硬件的安全隔离区域可以基于浮动权限仍然有效来允许电子设备继续执行应用程序的第二部分。
另外,当浮动许可仍然有效时,在块712,基于硬件的安全隔离区域可以继续与服务器通信以确定浮动权限在延迟之后是否仍然有效。在一些示例中,延迟可以包括周期性延迟,诸如每分钟、每小时等。当与服务器通信时,基于硬件的安全隔离区域可以基于浮动权限不再有效来终止执行应用程序(块708),或者基于浮动权限有效而继续执行应用程序(块710)。
图8是如本文所述的服务器验证电子设备上的基于硬件的安全隔离技术的第一示例方法的流程图800。在块802处,服务器可以从电子设备接收数据。例如,在一些示例中,服务器可以从电子设备接收证明信息,例如电子设备的中央处理单元(CPU)芯片的标识符,证明电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,和/或基于硬件的安全隔离区域的摘要。
在块804处,服务器可以使用该数据确定电子设备确定电子设备被配置为运行基于硬件的安全隔离技术。例如,服务器可以使用CPU的标识符来确定电子设备包括具有安全隔离技术的可信CPU。在一些示例中,服务器可以使用存储将CPU芯片与基于硬件的安全隔离技术相关联的信息的数据库,以便确定电子设备包括基于硬件的安全隔离技术。
在块806处,服务器可使用数据确定电子设备的基于硬件的安全隔离区域包括应用程序的至少一部分。例如,服务器可以确定基于硬件的安全隔离区域的摘要与许可的应用程序匹配。在一些示例中,服务器可以使用基于硬件的安全隔离技术的摘要(来自数据)来确定应用程序(和/或应用程序的一部分)实际上在基于硬件的安全隔离技术(例如,基于硬件的安全隔离区域)中运行。
在块808处,服务器将与应用程序相关联的解密密钥发送到电子设备。在一些示例中,当许可包括浮动许可时,服务器还可以发送与应用程序相对应的电子设备指令。
图9是服务器验证电子设备上的基于硬件的安全隔离技术的示例方法的流程图900。在块902处,服务器可以从电子设备接收数据。例如,在一些示例中,服务器可以从电子设备接收证明信息,例如电子设备的中央处理单元(CPU)芯片的标识符、证明电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,和/或基于硬件的安全隔离区域的摘要。
在块904处,服务器确定电子设备是否包括具有基于硬件的安全隔离技术的可信CPU。在一些示例中,服务器使用数据库来确定电子设备是否包括具有基于硬件的安全隔离技术的可信CPU。数据库可以存储将CPU芯片与电子设备上的基于硬件的安全隔离技术相关联的信息。如果在块904,服务器确定为否,则该方法前进到块906,其中服务器不向电子设备发送与应用程序相关联的解密密钥。然而,如果在块904处,服务器确定为是,则该方法前进到块908。
在块908,服务器确定电子设备上的基于硬件的安全隔离技术的摘要是否与许可应用程序匹配。例如,服务器可以使用基于硬件的安全隔离技术的摘要(来自数据)来确定应用程序(和/或应用程序的一部分)是否实际上在基于硬件的安全隔离技术(例如,基于硬件的安全隔离区域)中运行。如果在块908,服务器确定为否,则该方法前进到块906,其中服务器不向电子设备发送与应用程序相关联的解密密钥。然而,如果在块908处,服务器确定为是,则该方法前进到块910。
在块910处,服务器确定电子设备的用户和/或电子设备具有使用该应用程序的许可。例如,在一些示例中,服务器确定电子设备和/或电子设备的用户是否包括应用程序的许可。在一些示例中,服务器可以确定电子设备和/或电子设备的用户包括永久许可,而在其他示例中,服务器可以确定电子设备和/或电子设备的用户包括浮动许可。如果在块910处服务器确定为否,则该方法前进到块906,其中服务器不向电子设备发送与应用程序相关联的解密密钥。然而,如果在块910处,服务器确定为是,则该方法前进到块912。
在块912处,服务器将与应用程序相关联的解密密钥发送到电子设备。在一些示例中,当许可包括浮动许可时,服务器还可以向电子设备发送与应用程序相对应的指令。
图10是用于利用基于硬件的安全隔离技术来防止作弊的第一示例方法的流程图1000。在块1002处,电子设备可以将安全代码存储在电子设备的基于硬件的安全隔离区域内。例如,电子设备可以存储电子设备用于监视在电子设备上执行的应用程序的代码的安全代码。在一些示例中,安全代码可以包括电子设备正在监视的应用程序的一部分。
在块1004处,电子设备可以执行应用程序,并且在块1006,电子设备可以使用安全代码来监视应用程序的代码。例如,电子设备可以使用安全代码来(1)确定应用程序是否未正确执行,(2)检查代码变量以确定变量是否正确,和/或(3)检查应用程序的代码的不同部分。在一些示例中,电子设备可以周期性在执行期间监视应用程序。例如,电子设备可以每秒钟、每分钟等确定应用程序是否正确执行。
图11是用于利用基于硬件的安全隔离技术来防止作弊的第二示例方法的流程图。在块1102处,电子设备和/或开发者可以确定要存储在电子设备的基于硬件的安全隔离区域中的应用程序的数据部分,并且在块1104,电子设备可以将应用程序的数据部分存储在基于硬件的安全隔离区域。例如,应用程序的数据部分可以包括恶意用户可能操纵以便作弊的数据。在一些示例中,应用程序的数据部分可以包括应用程序的可变数据。例如,如果应用程序包括游戏状态包括用户的健康级别的游戏,则电子设备可以将与健康级别相关联的可变数据存储在基于硬件的安全隔离区域中。
示例条款
A:一种方法,包括:将应用程序的第一部分存储在电子设备的计算机存储器中;将所述应用程序的第二部分存储在所述电子设备的计算机存储器的安全隔离区域中,所述应用程序的第二部分包括加密部分和明文部分;使用所述明文部分建立与服务器的安全加密通信信道;使用所述安全加密通信信道向所述服务器发送数据;至少部分地基于发送数据,使用所述安全加密通信信道从服务器接收解密密钥;以及使用所述解密密钥解密加密部分。
B:如段落A所述的方法,其中所述数据包括证明信息,所述证明信息允许所述服务器验证所述电子设备包括可信中央处理单元(CPU)芯片和所述安全隔离区域。
C:如段落B所述的方法,其中所述证明信息包括所述CPU芯片的标识符、电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,或所述安全隔离区域的摘要中的至少一个。
D:如段落A-C中任一段所述的方法,还包括使用所述应用程序的第一部分、所述第二部分的明文部分和所述第二部分的解密部分来执行所述应用程序。
E:如段落A-D中任一段所述的方法,其进一步包括:使用所述安全隔离区域生成密封密钥;并使用所述密封密钥来加密所述解密密钥。
F:如段落E所述的方法,还包括将加密的解密密钥存储在非易失性存储器中。
G:如段落A-F中任一段所述的方法,其中所述明文部分包括用于从所述服务器取回所述解密密钥的许可代码。
H:如段落A-G中任一段所述的方法,其中加密部分包括对应用程序的使用至关重要的代码。
I:如段落A-H中任一段所述的方法,还包括从服务器接收指令,该指令使得安全隔离区域周期性地与服务器通信,以便确定安全隔离区域是否应该终止。
J:具有存储在其上的计算机可执行指令的存储器,该计算机可执行指令用于配置电子设备以执行如段落A-J中任何段落所述的方法。
K:一种设备,包括:至少一个处理单元;以及计算机存储器,其上存储有计算机可执行指令,当由至少一个处理单元执行时,配置设备执行如段落A-J中任何段落所述的方法。
L:一种电子设备,包括:至少一个处理器;存储器,存储有:应用程序的第一部分;以及应用程序的第二部分,位于所述存储器的安全隔离区域中,所述第二部分包括用于保护应用程序不被提取的加密部分和用于打开与服务器的通信信道的明文部分,所述明文部分包括计算机可读指令,当由所述至少一个处理器执行时,所述计算机可读指令使所述至少一个处理器:与所述服务器建立通信信道;经由所述通信信道从所述服务器接收与所述应用程序相关联的解密密钥;以及使用所述解密密钥来解密所述加密部分。
M:如段落L所述的设备,其中所述安全隔离区域包括计算机可读指令,当由所述至少一个处理器执行时,所述计算机可读指令使所述至少一个处理器经由所述通信信道向所述服务器发送数据,所述数据包括允许服务器验证电子设备包括安全隔离技术的证明信息。
N:如段落M所述的设备,其中所述证明信息包括用于所述处理器的标识符、所述电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据、以及所述安全隔离区域的摘要中的至少一个。
O:如段落L-N中任一段所述的设备,所述计算机可读指令在由所述至少一个处理器执行时还使所述至少一个处理器使用由所述安全隔离区域生成的密封密钥来加密所述解密密钥。
P:如段落O所述的设备,所述计算机可读指令在由所述至少一个处理器执行时还使所述至少一个处理器将所述加密的解密密钥存储在非易失性存储器中。
Q:如段落L-P中任一段落所述的设备,所述计算机可读指令在由所述至少一个处理器执行时还使所述至少一个处理器:经由所述通信信道从所述服务器接收指令,所述指令包括与服务器通信的时间间隔;并且至少部分地基于时间间隔,与服务器进行通信以确定应用程序的许可仍然有效。
R:一种系统,包括:一个或多个处理器;以及存储器,存储计算机可执行指令,当由所述一个或多个处理器执行时,使得所述一个或多个处理器:从电子设备接收数据,该数据至少包括所述电子设备的中央处理单元 (CPU)芯片的标识符、电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据,以及所述安全隔离区域的摘要;使用所述电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据来确定所述电子设备被配置为运行安全隔离技术;使用所述安全隔离区域的摘要,确定所述电子设备的安全隔离区域包括应用程序的至少一部分;以及将解密密钥发送给所述电子设备。
S:如段落R所述的系统,所述计算机可读指令在由所述一个或多个处理器执行时进一步使所述一个或多个处理器确定所述电子设备具有执行所述应用程序的许可。
T:如段落S所述的系统,该操作还包括向电子设备发送指令,该指令使得安全隔离区域周期性地检查许可在电子设备上仍然有效。
U:如段落R-T中任一段落所述的系统,其中:接收数据包括经由安全隔离区域与服务器之间的安全加密通信信道接收数据;并且发送解密密钥包括通过安全加密通信信道发送解密密钥。
V:如段落R-U中任一段落所述的系统,其中安全隔离区域的摘要包括应用程序的明文部分和应用程序的加密部分。
W:一种方法,包括:在计算机存储器的基于硬件的安全隔离区域内生成密封密钥;在基于硬件的安全隔离区域内使用密封密钥对解密密钥进行加密;并将加密的解密密钥存储在计算机存储器中。
X:具有存储在其上的计算机可执行指令的存储器,计算机可执行指令用于配置电子设备以执行段落W所述的方法。
Y:一种设备,包括:至少一个处理单元;以及存储器,其上存储有计算机可执行指令,当由至少一个处理单元执行时,配置设备执行如段落W 所述的方法。
Z:一种方法,包括:从服务器接收与应用程序的浮动权限相关联的指令;使用存储在计算机存储器中的应用程序的第一部分和存储在计算机存储器的基于硬件的安全隔离区域中的应用程序的第二部分来执行应用程序;与服务器通信以确定浮动权限是否仍然有效;以及执行以下中的至少一个:至少部分地基于浮动权限无效来终止应用程序的第二部分的执行,或者至少部分地基于浮动权限有效来继续执行应用程序。
AA:其上存储有计算机可执行指令的存储器,所述计算机可执行指令用于配置电子设备以执行段落Z所述的方法。
AB:一种设备,包括:至少一个处理单元;以及存储器,其上存储有计算机可执行指令,当由至少一个处理单元执行时,计算机可执行指令配置设备执行如段落Z所述的方法。
AC:一种方法,包括:将安全代码存储在电子设备的基于硬件的安全隔离区域内;执行应用程序;以及使用安全代码监视应用程序的代码。
AD:具有存储在其上的计算机可执行指令的存储器,所述计算机可执行指令用于配置电子设备以执行段落AC所述的方法。
AE:一种设备,包括:至少一个处理单元;以及存储器,其具有存储在其上的计算机可执行指令,当由所述至少一个处理单元执行时,计算机可执行指令配置所述设备执行如段落AC所述的方法。
结论
尽管已经用结构特征和/或方法动作专用的语言描述了这些技术,但是应该理解,所附权利要求不必限于所描述的特征或动作。相反,特征和动作被描述为这种技术的示例实现方式。
在各个块中示出了示例过程的操作,并参考那些块进行了总结。这些过程被示为块的逻辑流,其每个块可以表示可以用硬件、软件或其组合实现的一个或多个操作。在软件的上下文中,操作表示存储在一个或多个计算机存储器上的计算机可执行指令,当由一个或多个处理器执行时,使得一个或多个处理器能够执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序执行,以任何顺序组合,细分为多个子操作,和/或并行执行实现所描述的过程。所描述的过程可以由与一个或多个设备106、 120、200和/或300相关联的资源(诸如一个或多个内部或外部CPU或GPU) 和/或一个或多个硬件逻辑块(诸如FPGA,DSP)或其他类型的加速器来执行。
上述所有方法和过程可以通过由一个或多个通用计算机或处理器执行的软件代码模块来体现并且完全自动化。代码模块可以存储在任何类型的计算机可读存储介质或其他计算机存储设备中。可替代地,一些或所有方法可以体现在专用计算机硬件中。
除非另外特别说明,否则诸如“能够”、“可”、“可能”或“可以”之类的条件语言在上下文中被理解为表示某些示例包括而其他示例不包括某些特征、元素和/或步骤。因此,这种条件语言通常不旨在暗示某些特征、元素和/或步骤对于一个或多个示例是以任何方式所需的,或者一个或多个示例必须包括用于在有或没有用户输入或提示的情况下决定在任何特定示例中是否包括或将要执行某些特征、元素和/或步骤的逻辑。除非另外特别说明,否则诸如短语“X、Y或Z中的至少一个”的联合语言应被理解为表示项目、项等可以是X、Y或Z,或者它们的组合。
本文描述和/或附图中描绘的流程图中的任何例程描述、元素或块应当被理解为潜在地表示包括用于实现例程中的特定逻辑功能或元素的一个或多个可执行指令的模块、片段或代码部分。替换实现方式包括在本文描述的示例的范围内,其中元素或功能可以被删除,或者不按示出或讨论的顺序执行,包括基本上同步或相反的顺序,这取决于所涉及的功能,如本领域技术人员将理解的。应该强调的是,可以对上述示例进行许多变化和修改,其中的元素应被理解为是其他可接受的示例之中。所有这些修改和变化旨在包括在本公开的范围内并且由所附权利要求保护。

Claims (11)

1.一种方法,包括:
将应用程序的第一部分存储在电子设备的计算机存储器中,其中,所述应用程序还包括执行所述应用程序所需要的第二部分;
将所述应用程序的所述第二部分存储在所述电子设备的所述计算机存储器的安全隔离区域中,所述应用程序的所述第二部分包括加密部分和明文部分,其中,所述加密部分防止所述应用程序的所述第一部分和所述第二部分正确运行,直到所述加密部分被准确地解密为止;
使用所述明文部分建立与服务器的安全加密通信信道;
使用所述安全加密通信信道向所述服务器发送数据;
至少部分地基于发送所述数据,使用所述安全加密通信信道从所述服务器接收解密密钥;
使用所述解密密钥解密所述加密部分;以及
响应于对所述加密部分进行解密,执行来自所述电子设备的所述计算机存储器的所述应用的所述第一部分,以及来自所述计算机存储器的所述安全隔离区域的所述应用程序的所述第二部分中的所述加密部分和所述明文部分。
2.如权利要求1所述的方法,其中,所述数据包括证明信息,所述证明信息允许所述服务器验证所述电子设备包括可信中央处理单元(CPU)芯片和所述安全隔离区域。
3.如权利要求2所述的方法,其中,所述证明信息包括以下中的至少一个:所述CPU芯片的标识符、证明所述电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据、或所述安全隔离区域的摘要。
4.如权利要求1-3中任一项所述的方法,还包括:
使用所述安全隔离区域生成密封密钥;以及
使用所述密封密钥来加密所述解密密钥。
5.如权利要求4所述的方法,还包括将加密的解密密钥存储在非易失性存储器中。
6.如权利要求1-3中任一项所述的方法,其中,所述明文部分包括用于从所述服务器取回所述解密密钥的许可代码。
7.一种电子设备,包括:
至少一个处理器;
存储器,其存储有:
应用程序的第一部分,其中,所述应用程序还包括执行所述应用程序所需要的第二部分;以及
所述应用程序的所述第二部分位于所述存储器的安全隔离区域中,所述第二部分包括用于保护应用程序不被提取的加密部分和用于打开与服务器的通信信道的明文部分,其中,所述加密部分防止所述应用程序的所述第一部分和所述第二部分正确运行,直到所述加密部分被准确地解密为止,
所述明文部分包括计算机可读指令,当由所述至少一个处理器执行时,所述计算机可读指令使所述至少一个处理器:
建立与所述服务器的所述通信信道;
经由所述通信信道从所述服务器接收与所述应用程序相关联的解密密钥;
使用所述解密密钥来解密所述加密部分;以及
响应于对所述加密部分进行解密,执行来自所述电子设备的所述计算机存储器的所述应用的所述第一部分,以及来自所述计算机存储器的所述安全隔离区域的所述应用程序的所述第二部分中的所述加密部分和所述明文部分。
8.如权利要求7所述的设备,其中,所述安全隔离区域包括计算机可读指令,当由所述至少一个处理器执行时,所述计算机可读指令使所述至少一个处理器经由所述通信信道向所述服务器发送数据,所述数据包括允许所述服务器验证所述电子设备包括安全隔离技术的证明信息。
9.如权利要求8所述的设备,其中,所述证明信息包括以下中的至少一个:用于所述至少一个处理器的标识符、证明所述电子设备上的代码确实在支持基于硬件的安全隔离技术的设备上运行的证据、以及所述安全隔离区域的摘要。
10.如权利要求7-9中任一项所述的设备,所述计算机可读指令在由所述至少一个处理器执行时还使所述至少一个处理器使用由所述安全隔离区域生成的密封密钥来加密所述解密密钥。
11.如权利要求10所述的设备,所述计算机可读指令在由所述至少一个处理器执行时还使所述至少一个处理器将所述加密的解密密钥存储在非易失性存储器中。
CN201780032010.5A 2016-05-24 2017-05-18 使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊 Active CN109154972B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/163,443 2016-05-24
US15/163,443 US10257189B2 (en) 2016-05-24 2016-05-24 Using hardware based secure isolated region to prevent piracy and cheating on electronic devices
PCT/US2017/033198 WO2017205155A1 (en) 2016-05-24 2017-05-18 Using hardware based secure isolated region to prevent piracy and cheating on electronic devices

Publications (2)

Publication Number Publication Date
CN109154972A CN109154972A (zh) 2019-01-04
CN109154972B true CN109154972B (zh) 2022-01-11

Family

ID=58773002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780032010.5A Active CN109154972B (zh) 2016-05-24 2017-05-18 使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊

Country Status (18)

Country Link
US (1) US10257189B2 (zh)
EP (1) EP3465530B1 (zh)
JP (1) JP7009393B2 (zh)
KR (1) KR102361884B1 (zh)
CN (1) CN109154972B (zh)
AU (1) AU2017269163B2 (zh)
BR (1) BR112018071634A2 (zh)
CA (1) CA3021094C (zh)
CL (1) CL2018003279A1 (zh)
CO (1) CO2018012253A2 (zh)
IL (1) IL262894B (zh)
MX (1) MX2018014312A (zh)
NZ (1) NZ746952A (zh)
PH (1) PH12018550176A1 (zh)
RU (1) RU2744849C2 (zh)
SG (1) SG11201809872TA (zh)
WO (1) WO2017205155A1 (zh)
ZA (1) ZA201806649B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10311217B2 (en) 2016-12-09 2019-06-04 Microsoft Technology Licensing, Llc Application piracy prevention with secure enclave protection of automatically modularized functions
US11120140B2 (en) * 2018-06-27 2021-09-14 International Business Machines Corporation Secure operations on encrypted data
US11251942B2 (en) * 2019-01-09 2022-02-15 Alibaba Group Holding Limited Secure communication channel between encryption/decryption component and trusted execution environment
US11295008B2 (en) * 2019-02-13 2022-04-05 Nec Corporation Graphics processing unit accelerated trusted execution environment
CN110457925B (zh) * 2019-08-12 2023-05-09 深圳市网心科技有限公司 内外部存储中应用数据隔离方法、装置、终端及存储介质
CN111143857B (zh) * 2019-12-27 2022-04-22 达闼机器人有限公司 一种数据分享方法、机器人控制器及存储介质
CN113139175A (zh) * 2020-01-19 2021-07-20 阿里巴巴集团控股有限公司 处理单元、电子设备以及安全控制方法
JP7337763B2 (ja) 2020-09-11 2023-09-04 株式会社東芝 通信システム、通信方法およびプログラム
US11266911B1 (en) 2020-09-21 2022-03-08 Nintendo Co., Ltd. Systems and method for identifying modified program data
CN112463720A (zh) * 2020-12-18 2021-03-09 中国计量大学上虞高等研究院有限公司 一种嵌入式SoC软件的在线保护系统和在线保护方法
CN115391845B (zh) * 2022-10-28 2023-01-06 摩尔线程智能科技(北京)有限责任公司 密钥管理设备和方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488958A (zh) * 2012-06-20 2014-01-01 微软公司 管理具有隔离组件的现场可编程门阵列的使用

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182770A (en) 1991-04-19 1993-01-26 Geza Medveczky System and apparatus for protecting computer software
EP0880840A4 (en) 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
US20020087883A1 (en) 2000-11-06 2002-07-04 Curt Wohlgemuth Anti-piracy system for remotely served computer applications
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
KR100361869B1 (ko) 2001-03-02 2002-11-22 정지혜 암호화키를 이용한 소프트웨어 설치 및 실행방법
US20030233547A1 (en) 2001-09-25 2003-12-18 Global Anti-Piracy Systems, Inc. Systems and methods for preventing and detecting unauthorized copying of software
US20040025033A1 (en) 2002-08-02 2004-02-05 Todd Luke B. System and method for preventing unauthorized installation, use and reproduction of software
CA2415334C (en) 2002-12-31 2012-04-24 Protexis Inc. System for persistently encrypting critical software data to control operation of an executable software program
US8266710B2 (en) 2004-08-09 2012-09-11 Jasim Saleh Al-Azzawi Methods for preventing software piracy
US7552341B2 (en) 2004-09-01 2009-06-23 Microsoft Corporation Licensing the use of software on a particular CPU
JP2008269088A (ja) * 2007-04-17 2008-11-06 Toshiba Corp プログラム情報提供システム、プログラム情報提供方法、プログラム情報提供方法に用いられる記録媒体
US8433927B2 (en) 2007-05-29 2013-04-30 International Business Machines Corporation Cryptographically-enabled privileged mode execution
US8578510B2 (en) 2008-06-26 2013-11-05 Valve Corporation Anti-piracy measures for a video game using hidden secrets
US20100119068A1 (en) 2008-11-11 2010-05-13 Harris Scott C Digital File Anti pirating
RU84594U1 (ru) * 2009-03-10 2009-07-10 Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации Накопитель с защитой от несанкционированного доступа к памяти
JP2010217975A (ja) * 2009-03-13 2010-09-30 Nec System Technologies Ltd 情報処理装置、アプリケーションプログラム、及びアプリケーションプログラムの実行方法
EP2543215A2 (en) 2010-03-05 2013-01-09 InterDigital Patent Holdings, Inc. Method and apparatus for providing security to devices
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
JP6343869B2 (ja) * 2013-02-20 2018-06-20 凸版印刷株式会社 携帯端末装置及び復号処理プログラム
US20150026483A1 (en) 2013-07-17 2015-01-22 Marvell World Trade Ltd. Systems and Methods for Mobile Application Protection
KR20150032970A (ko) * 2013-09-23 2015-04-01 삼성전자주식회사 보안 기능을 제공하는 저장 매체 및 그 보안 방법
EP3084667A4 (en) 2013-12-19 2017-07-26 Intel Corporation Policy-based trusted inspection of rights managed content

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488958A (zh) * 2012-06-20 2014-01-01 微软公司 管理具有隔离组件的现场可编程门阵列的使用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Intel SGX Explained";VICTOR COSTAN ET AL;《INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH》;20160131;全文 *
"Shielding Applications from an Untrusted;ANDREW BAUMANN ET AL;《ACM TRANSACTIONS ON COMPUTER SYSTEMS》;20150831;全文 *

Also Published As

Publication number Publication date
BR112018071634A2 (pt) 2019-02-19
RU2018141237A3 (zh) 2020-08-20
MX2018014312A (es) 2019-03-14
PH12018550176A1 (en) 2019-03-25
EP3465530A1 (en) 2019-04-10
JP7009393B2 (ja) 2022-01-25
CA3021094A1 (en) 2017-11-30
IL262894A (en) 2018-12-31
CN109154972A (zh) 2019-01-04
US20170346814A1 (en) 2017-11-30
EP3465530B1 (en) 2020-12-23
CA3021094C (en) 2024-05-21
CO2018012253A2 (es) 2018-11-22
CL2018003279A1 (es) 2019-03-01
NZ746952A (en) 2022-05-27
KR20190009755A (ko) 2019-01-29
AU2017269163B2 (en) 2021-08-12
US10257189B2 (en) 2019-04-09
RU2018141237A (ru) 2020-05-25
ZA201806649B (en) 2019-12-18
WO2017205155A1 (en) 2017-11-30
KR102361884B1 (ko) 2022-02-10
SG11201809872TA (en) 2018-12-28
JP2019517080A (ja) 2019-06-20
IL262894B (en) 2021-09-30
RU2744849C2 (ru) 2021-03-16
AU2017269163A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
CN109154972B (zh) 使用基于硬件的安全隔离区域来防止电子设备上的盗版和作弊
US11489678B2 (en) Platform attestation and registration for servers
EP3362939B1 (en) Migrating secrets using hardware roots of trust for devices
EP3362936B1 (en) Trusted platforms using minimal hardware resources
US9768951B2 (en) Symmetric keying and chain of trust
CN112889052A (zh) 外围设备
KR20200075451A (ko) 디바이스 고유암호키 생성기 및 방법
CN107077568B (zh) 对称密钥和信任链
CN107077560B (zh) 用于建立安全工作空间的所有权的系统
US11520859B2 (en) Display of protected content using trusted execution environment
CN109960935B (zh) 确定tpm可信状态的方法、装置及存储介质
Hao et al. Trusted block as a service: Towards sensitive applications on the cloud

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40001870

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant