CN105339945A - 安全处理环境中的特征许可 - Google Patents

安全处理环境中的特征许可 Download PDF

Info

Publication number
CN105339945A
CN105339945A CN201480035790.5A CN201480035790A CN105339945A CN 105339945 A CN105339945 A CN 105339945A CN 201480035790 A CN201480035790 A CN 201480035790A CN 105339945 A CN105339945 A CN 105339945A
Authority
CN
China
Prior art keywords
instruction
enclave
feature
license
processor
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.)
Granted
Application number
CN201480035790.5A
Other languages
English (en)
Other versions
CN105339945B (zh
Inventor
V·R·斯卡拉塔
C·V·罗扎斯
S·P·约翰逊
U·R·萨瓦冈卡尔
I·阿纳蒂
F·X·麦基恩
M·A·戈德史密斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105339945A publication Critical patent/CN105339945A/zh
Application granted granted Critical
Publication of CN105339945B publication Critical patent/CN105339945B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

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

Abstract

公开了用于在安全处理环境中进行特征许可的发明实施例。在一个实施例中,处理器包括指令单元和执行单元。所述指令单元接收对安全飞地进行初始化的指令。所述执行单元执行所述指令。所述指令的执行包括确定所请求的特征在所述安全飞地中是否被许可使用。

Description

安全处理环境中的特征许可
技术领域
本公开涉及信息处理领域,并且更特别地,涉及信息处理系统中的安全性领域。
背景技术
许多信息处理系统存储、传输、以及使用机密信息。因此,已经开发了技术来提供对机密信息的安全处理和存储。这些技术包括用于在信息处理系统内建立并且维护安全的、受保护的、或隔离的容器、分区、或环境的各种方案。
附图说明
在附图中,本发明以示例的方式而非限制的方式被示出。
图1示出了根据本发明实施例的用于在安全处理环境中进行特征许可的系统。
图2示出了根据本发明实施例的用于在安全处理环境中进行特征许可的处理器。
图3示出了根据本发明实施例的飞地(enclave)页面高速缓存。
图4示出了根据本发明实施例的用于在安全处理环境中进行特征许可的架构。
图5示出了根据本发明实施例的用于在安全处理环境中进行特征许可的方法。
具体实施方式
描述了用于在安全处理环境中进行特征许可的发明实施例。在此描述中,可能对诸如部件以及系统配置等大量的具体细节进行阐述,以便于提供对本发明的更充分的理解。然而,本领域的技术人员应当意识到,本发明可以在没有这样的具体细节的情况下实施。此外,没有详细地示出一些公知的结构、电路以及其他特征,以避免不必要地使本发明难以理解。
在以下的描述中,对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等的引用指示被如此描述的发明实施例可以但不是每个实施例都一定包括特定的特征、结构、或特性。此外,一些实施例可以具有针对其他实施例描述的特征中的一些、全部,或不包括其中的任何特征。
如在权利要求中使用的,除非另作指定,否则描述元件而使用的“第一”、“第二”、“第三”等序数形容词仅指示当前指代的是元件的特定实例或相似元件的不同实例,而并不是要暗示如此描述的元件必须具有特定的顺序(时间上或空间上)、排列或其他任何方式。
同样,术语“位”、“标志”、“字段”、“条目”、“指示符”等可以用来描述寄存器、表、数据库或其他数据结构中的任何类型的存储位置,不论其以硬件还是软件实现,但是并不是要将发明实施例限制在任何特定类型的存储位置或任何特定存储位置内的位或其他元件的数量。术语“清除”可以用于指示将逻辑值0存储逻辑值0或使得逻辑值0被存储在存储位置中,而术语“设置”可以用于指示存储逻辑值1或全1或一些其它具体的值或使得逻辑值1或全1或一些其它具体的值被存储在存储位置中;然而,这些术语并不是要将本发明的实施例限制于任何特定的逻辑约定,这是因为在本发明的实施例内可以使用任何逻辑约定。
如在背景技术部分描述的,已经开发了在信息处理系统内创建并且维护安全的、受保护的、或隔离的容器、分区、或环境的各种方案。一种这样的方案涉及如在2012年6月19日提交的,序列号为No.13/527,547的名为“MethodandApparatustoProvideSecureApplicationExecution”的共同未决美国专利申请中描述的安全飞地,该专利申请提供了关于安全的、受保护的或隔离的容器、分区、或环境的至少一个实施例的信息。然而,该引用并不是要以任何方式限制本发明的实施例的范围,并且,可以使用其他实施例同时仍然处于本发明的精神和范围内。因此,在本发明的任何实施例中使用的任何安全的、受保护的、或隔离的容器、分区、或环境的任何实例在本文中都可以被称为安全飞地或飞地。
图1示出了系统100,系统100是根据本发明实施例的其中特征可以在安全处理环境下被许可的信息处理系统。系统100可以表示任何类型的信息处理系统,例如服务器、桌面计算机、便携计算机、机顶盒、诸如平板电脑或智能电话等手持设备、或嵌入式控制系统。系统100包括处理器110、外围控制代理120、系统存储器130、以及信息存储设备140。实现本发明的系统可以包括任何数量的这些部件中的每一个以及诸如外围设备和输入/输出设备等任何其他部件或其他元件。除非另作指定,在这样的或任何的系统实施例中的部件或其他元件的任何一个或全部可以通过任何数量的总线、点对点、或其他有线或无线的接口或连接相互连接、耦合或通信。系统100的任何部件或其他部分,不论在图1中被示出或未被示出,都可以被集成或者包括在单个的芯片(片上系统或SOC)、管芯、衬底、或封装之上或之中。
外围控制代理120可以表示任何如下的部件,其包括外围部件、输入/输出、或其它部件或设备,或者,外围部件、输入/输出、或其它部件或设备可以通过其连接或耦合到处理器110,例如,其是芯片组。外围控制代理120可以由接口115连接或者耦合到处理器110,接口115可以表示任何类型的总线、点对点、或其他有线或无线接口或连接,包括互连结构中的链路,所述互连结构诸如快速路径互连或在2012年10月22日提交的序列号No.61/717,091的名为“Method,Apparatus,SystemforaHighPerformanceInterconnectarchitecture”的共同未决美国专利申请中描述的高性能互连(HighPerformanceInterconnect)实施例等、或根据任何其他通信架构的任何其他类型的连接。
系统存储器130可以是可以由处理器110读取的动态随机存取存储器或任何其他类型的介质。信息存储设备140可以包括任何类型的永久性或非易失性存储器或存储装置,例如,闪速存储器和/或固态、磁、或光盘驱动器。
处理器110可以表示集成在单个衬底上的或被封装在单个封装内的一个或多个处理器,其中的每个可以包括任意组合的多个线程和/或多个执行核心。被表示为处理器110的或被表示为在处理器110内部的每个处理器可以是任何类型的处理器,包括通用微处理器(例如处理器系列、处理器系列、或来自公司的其他处理器系列中的处理器、或来自其他公司的其他处理器)、或专用处理器或微控制器。
处理器110可以根据指令集架构来进行操作,所述指令集架构包括创建安全飞地的第一指令、向飞地添加内容的第二指令、对飞地的内容进行测量的第三指令、对飞地进行初始化的第四指令、以及获取用于进行许可的密钥的第五指令。尽管本发明的实施例可以利用具有任何指令集架构的处理器来实践,并且不限于来自公司的处理器系列的架构,但上述指令可以是对现有架构的一组软件保护扩展的一部分,并且在本文中可以分别被称为创建(ECREATE)指令、添加(EADD)指令、扩展(EEXTEND)指令、初始化(EINIT)指令、以及密钥获取(EGETKEY)指令。可以使用如在下文中描述或根据任何其他方式布置的嵌入在硬件中的电路和/或逻辑、微码、固件、和/或结构的任何组合来在处理器中实现对这些指令的支持,并且,在图1中,对这些指令的支持被表示为创建硬件112、添加硬件114、扩展硬件116、初始化硬件118、以及密钥获取硬件119。
图2示出了处理器200,处理器200的实施例可以用作系统100中的处理器110。处理器200可以包括核心210、核心220、以及非核心230。核心210可以包括存储单元212、指令单元214、执行单元270、控制单元218、以及密钥216。核心220可以包括存储单元222、指令单元224、执行单元270、控制单元228、以及密钥226。非核心230可以包括高速缓存单元232、接口单元234、处理器预留存储器范围寄存器250、以及存储器访问控制单元260。处理器200还可以包括未在图2中示出的任何其他电路、结构、或逻辑。如在上文中介绍并在下文中进一步描述的,创建硬件112、添加硬件114、扩展硬件116、初始化硬件118、以及密钥获取硬件119的功能可以分布在处理器200中任何被标示的单元或其他位置上。
在核心210和220内,存储单元212和222可以分别包括可用于任何目的的任何类型的存储装置的任何组合;例如,它们可以分别包括使用任何存储器或存储技术实现的任何数量的可读、可写、和/或可读写的寄存器、缓冲器、和/或高速缓存,以用于存储能力信息、配置信息、控制信息、状态信息、性能信息、指令、数据、以及在核心210和220的操作中可使用的任何其他信息,以及包括可用于访问这样的存储装置的电路。
指令单元214和224可以分别包括用于对分别由核心210和220执行的指令进行取回、接收、解码、解释、和/或调度的任何电路、逻辑、结构、和/或其他硬件。在本发明的范围内可以使用任何指令格式;例如,指令可以包括操作码和一个或多个操作数,其中,操作码可以被分别解码为一个或多个微指令或微操作以用于由执行单元216或226执行。诸如创建、添加、扩展、以及初始化指令等的指令可以是单个操作码的叶子,所述单个操作码例如是特权安全飞地操作码(例如ENCLS),其中,所述叶子指令由处理器寄存器(例如,EAX)中的值指定。诸如密钥获取指令等的指令也可以是单个操作码的叶子,所述单个操作码例如是非特权安全飞地操作码(例如,ENCLU),其中,叶子指令也可以由处理器寄存器(例如EAX)中的值指定。操作数和其他参数可以隐含地、直接地、间接地、或根据任何其他方案与指令相关联。
执行单元270和280可以包括用于处理数据以及执行指令、微指令、和/或微操作的任何电路、逻辑、结构、和/或其他硬件,诸如,算术单元、逻辑单元、浮点单元、移位器等。执行单元270和280可以包括用于根据本发明的实施例来对数据进行测量的专用电路、逻辑、结构、和/或其他硬件,或者,任何这样的测量可以利用处理器200中的执行单元270和280中和/或其他位置上的共享电路、逻辑、结构和/或其他硬件来执行。执行单元270和280可以分别包括加密单元272和282。
加密单元272和282可以表示用于执行任何一个或多个加密算法、相对应的解密算法、和/或散列算法的任何电路、逻辑、结构和/或其他硬件。加密单元272和282可以分别包括SHA逻辑274和284,以分别实现诸如SHA-256、SHA-512、SHA-3、或SM3等的安全散列算法,和/或MAC逻辑276和286,以生成方法认证码(MAC),所述MAC例如是基于高级加密标准密码的MAC(AES-MAC),和/或SHA逻辑274、SHA逻辑284、MAC逻辑276、以及MAC逻辑286中的任一个可以表示用于执行这些功能的处理器200中的其他位置上的任何专用或共享电路、逻辑、结构、和/或其他硬件。为了计算MAC,MAC逻辑276和286可以分别使用密钥216和226,密钥216和226中的每个可以表示任何密钥,例如,以熔断器阵列被编程到处理器200中的、在启动过程期间生成的处理器或平台唯一的密钥,和/或可用于在MAC算法中使用或用于任何其他目的的私密密钥。
控制单元218和228可以分别包括任何微码、固件、电路、逻辑、结构、和/或其他硬件,以对核心210和220的单元以及其他元件的操作,以及核心210和220内的、进入、以及离开核心210和220的数据的传送进行控制。控制单元218和228可以使得核心210和220以及处理器200执行或者参与执行本发明的方法实施例(例如,下文描述的方法实施例),例如,通过使核心210和220执行由指令单元214和224接收的指令以及从由指令单元214和224接收的指令得到的微指令或微操作。
高速缓存单元232可以包括信息处理系统100的存储器层次中的一级或多级高速缓存存储器中的任何数量的高速缓存阵列以及高速缓存控制器,其以静态随机存取存储器或任何其他存储器技术实现。高速缓存单元232可以根据在信息处理系统中进行高速缓存的任何方案来在处理器200内的任何数量的核心和/或逻辑处理器之间共享。如下文进一步描述的,高速缓存单元232还可以包括被用作飞地页面高速缓存(EPC)240的一个或多个存储器阵列。
接口单元234可以表示诸如链接单元、总线单元、或消息接发单元等任何电路、逻辑、结构、和/或其他硬件,以允许处理器200通过任何类型的总线、点对点、或其他连接,直接地或通过诸如桥、集线器、或芯片组等任何其他部件与系统(例如,系统200)中的其他部件进行通信。接口单元234可以包括一个或多个集成的存储器控制器以与诸如系统存储器130等系统存储器进行通信或可以通过处理器200外部的一个或多个存储器控制器来与系统存储器进行通信。
处理器预留存储器范围寄存器(PRMRR)250可以表示存储单元212和222、处理器200的其他位置上的任何一个或多个存储位置、和/或非核心230中的所述任何一个或多个存储位置的副本。例如,PRMRR250可以由诸如基本输入/输出系统等配置固件使用,以预留被称为处理器预留存储器(PMR)的存储器的一个或多个物理上连续的范围。存储器访问控制单元260可以表示可以控制对PRM的访问的处理器200中的任何位置上的任何电路、结构、逻辑、和/或其他硬件,以使得EPC240可以在被定义为PRM的系统存储器空间内被创建。
在实施例中,PRM具有2的整数幂的大小,例如32MB、64MB、或128MB,并且与是该大小倍数的存储器地址对齐。PRMRR250可以包括指示PRM可以被配置为的有效尺寸的只读的PRMRR有效配置寄存器252的一个或多个实例、定义PRM的一个或多个基址和范围的PRMRR基址寄存器254和PRMRR屏蔽寄存器256的一个或多个实例。
EPC240是其中软件可以被保护不受在任何特权层级操作的恶意软件的攻击的安全存储区域。可以创建一个或多个安全飞地以使得每个飞地可以包括EPC240的一个或多个页面或其他区域,在其中可以以只能由运行在该飞地中的软件访问的方式来存储代码、数据、或其他信息。例如,安全飞地可以由软件应用程序使用,以使得只有该软件应用程序在该飞地内部运行时可以访问该飞地的内容。没有其它软件可以,甚至操作系统或虚拟机监视器也不可以在内容被加载到EPC中时访问该飞地的未加密的内容、修改该飞地的内容、或篡改该飞地的内容(假定该飞地是生产飞地,例如,与调试飞地相反)。然而,飞地的内容可以由从系统100中的任何处理器上的飞地内运行的软件来进行访问。这样的保护由根据安全飞地架构进行操作的存储器访问控制单元260来完成。
在图2中,EPC240在高速缓存单元232中示出,其中,EPC240可以是共享高速缓存或专用存储器的被隔离的部分。与处理器200在同一管芯内或上,EPC240可以以静态随机存取存储器、嵌入式动态随机存取存储器、或任何其他存储器技术实现。EPC240还可以或另外被实现在处理器200的外部,例如实现在系统存储器130的安全区域内。为了在安全飞地的内容没有被存储在管芯上时对该安全飞地的内容进行保护,可以使用加密单元272和/或282在内容被传送出管芯之前对内容进行加密以及对被传送回管芯上EPC240的内容进行解密。还可以应用其他保护机制以保护内容免受重放和其他攻击。
图3示出了EPC300,该EPC300的实施例可以用作图2中的EPC240。在图3中,EPC300包括安全飞地控制结构(SECS)310、线程控制结构(TCS)区320、以及数据区330。尽管图3示出了被划分为三个独立区的EPC300,但EPC300可以被划分成任何数量的块、区、或页面,其中的每个可以用于任何类型的内容。在一个实施例中,其被划分为4千字节(KB)的页面并且与系统存储器130中的是4KB的倍数的地址对齐,SECS310可以是EPC300中的4KB页面中的任何一个,TCS区320可以是任何数量的连续或不连续的4KB页面,并且数据区330可以是任何数量的连续或不连续的4KB页面。进一步地,尽管图3示出了与一个安全飞地相对应的一个SECS、一个TCS区、以及一个数据区,但EPC可以包括任何数量的SECS以及任何数量的TCS和数据区,只要每个飞地有且仅有一个SECS、每个有效TCS和有效数据区(例如,页面)属于且仅属于一个飞地、并且所有的SECS、TCS以及数据页面适配于EPC内(或可以被页面调出或调回到EPC)即可。
SECS通过创建指令的执行而被创建,以包括由硬件使用、并且仅能够由硬件访问(即,不能由软件读取、写入、或访问,不论该软件运行在飞地的内部还是外部)的元数据,以对飞地进行定义、维护及保护。例如,SECS310包括第一测量寄存器(MRENCLAVE)312,其可以是SECS310内的任何大小的字段;在一个实施例中,MRENCLAVE312可以是32字节。MRENCLAVE312用于存储飞地的建立测量(如下文描述的),其由创建指令来初始化、由与飞地相关联的每个添加指令和扩展指令来更新、并且由与飞地相关联的初始化指令来锁定。SECS310还可以包括存储标识符的测量的第二测量寄存器(MRSIGNER)314,所述标识符例如是如下文进一步描述的对飞地的创建进行验证的实体的公钥。在一个实施例中,MRSIGNER314可以是32字节。如在下文中描述的,飞地属性可以存储在属性(ATTRIBUTE)字段316中,在一个实施例中,该字段可以具有16字节的大小。
一个或多个TCS也可以与安全飞地相关联。TCS包括由硬件使用的元数据,以在进入或退出飞地时保存并且恢复线程特定信息。
每个页面的安全属性被存储在称为飞地页面高速缓存映射(EPCM)的微架构数据结构中,所述EPCM由存储器访问控制单元260使用以实施由安全飞地架构提供的保护。EPCM针对EPC中的每个页面存储一个条目。每个条目包括该页面所属的SECS(即,飞地)的标识符(例如,64位的字段)。这些标识符可以由诸如添加、扩展、以及初始化等安全飞地指令(例如,SECS的地址可以被存储在诸如RCX等寄存器中,包括该SECS的地址的微架构数据结构的地址可以被存储在诸如RBX等寄存器中)引用,以提供由硬件读取的SECS,以便于执行该指令。
图4示出了架构400,架构400是根据本发明的实施例的用于在安全处理环境中进行特征许可的架构。在一个实施例中,架构400包括平台410、独立软件供应方(ISV)450、特征许可方460、以及许可服务器470。
平台410可以是系统100的实施例,在该实施例中,安全飞地420、430、以及440可以在诸如处理器110等处理器上被创建。许可飞地420可以是进行许可的飞地,其负责根据本发明实施例来对许可进行验证并且授予许可标记(token)(如下文所述)。用户飞地430可以是由在用户飞地430外部运行的软件安装器应用程序432创建的用户飞地。用户软件应用程序434可以在用户飞地430内部运行。平台服务飞地440可以是负责请求使用处理器110外部的平台410的特征的专用飞地,例如,所述特征是特殊存储装置、计数器、受信任的输入/输出、和/或由外围控制代理120提供的或通过外围控制代理120可用的其他特征。
ISV450可以表示能够提供在平台410上被运行、消费、或提供的软件、内容或服务的任何软件开发方、内容提供方、服务提供方或任何其他实体。特征许可方460可以是可以提供由平台410上的软件、内容消费、或服务使用的用于平台410的安全性或其他特征的安全证书的处理器供应方、系统供应方、或任何其他实体。例如,特征许可方460可以表示公司,其中,处理器110是来自公司的处理器系列中的处理器。许可服务器470可以是根据本发明的实施例的批准许可的发布的任何系统。
本发明的实施例可以提供由软件、内容、和/或服务提供方许可的平台特征,以使得提供这些特征的成本可以由这些提供方承担,而不是由平台的购买者承担,并且平台提供方可以针对这些特征的使用,从这些提供方处获得收益。这些特征可以包括用于保护软件应用程序的代码和数据不被未授权用户、即使是具有最高可用特权级别的未授权用户读取、修改、或篡改的能力。提供方可能期望使用这些特征来保护优质的媒介内容、在线金融信息、企业文件生产等。
图5示出了方法500,方法500是根据本发明的实施例的用于在安全处理环境中进行特征许可的方法。尽管本发明的实施例在此方面不受限制,但可以引用图1、2、3、和4中的元件来帮助描述图5的方法实施例。方法500包括使用创建、添加、扩展和初始化指令来建立飞地、以及使用密钥获取指令来请求密钥;然而,本发明的实施例并不被限制于这些被特别命名的指令。
在框510中,ISV450针对包括平台410的平台的一个或多个安全或其他特征的许可证书来与特征许可方460协商。具有针对特定平台特征的许可证书给予ISV450许可平台使用这些特征的权利。根据本发明的实施例,平台的特定特征可以被启用,以供ISV已经针对其获取了许可证书的应用程序所使用,以及相反地,被禁用。根据本发明的实施例的其使用可以被启用或禁用的每个特定特征在本文中都被称为可许可特征。
在框512中,ISV450从特征许可方460针对可许可特征中的一个或多个来获取许可证书。在本文中,许可证书已经被获取的每个特征被称为被许可特征。许可证书可以是表示ISV450与特征许可方460之间的许可协定的被数字签名的数字证书,其包括对哪些特征被许可的指示。
在框514中,ISV450向平台410提供软件安装器应用程序432以及用户软件应用程序434。软件安装器应用程序432包括用户软件应用程序434的测量(如下文描述)当其被预期建立在用户飞地中430时(用户飞地430的预期测量)、ISV450的标识符(例如,公钥)的测量、由用户软件应用程序434或其运行于其中的飞地使用的平台特征的列表(例如,在属性位阵列中)、以及指示该软件应用程序434被许可使用被许可特征的许可证书。许可证书还可以包括两个测量和/或任何其他信息。
在框520中,软件安装器应用程序432开始准备在平台400上安装用户软件应用程序434。在框522中,软件安装器应用程序432从许可飞地420(如本文中使用的,其包括在许可飞地420中运行的许可软件应用程序)来请求(例如,通过发布许可标记请求调用或指令)许可标记。该许可标记可以是针对要建立的飞地(例如,用户飞地430)具有唯一值的微架构数据结构(例如,LICTOKEN)。框522中的请求许可标记可以包括提供(例如,根据框514中提供的信息)用户飞地430的预期测量、被请求用于用户飞地430的平台特征的列表、以及许可证书。
在框524中,许可飞地420对许可证书是否是真实的进行验证,例如,通过验证其数字签名。在框526中,许可飞地420将软件安装器应用程序432正在请求的平台特征的列表与许可证书中的被许可特征的列表相比较。如果每个被请求的平台特征都是被许可特征,则方法500在框528中继续。如果不是,则方法在框590中继续。
在框528中,许可飞地420请求(例如,通过发布密钥获取指令)密钥(例如,诸如密钥276等对处理器或平台唯一密钥)以在创建许可标记中使用。在框530中,许可飞地420创建许可标记,该许可标记包括用户飞地430的预期测量以及属性位阵列,其中许可标记属性(LICTOKENATTRIBUTES)位阵列中的每位与特定平台特征相对应。如果许可标记属性中的位被设置,则表示该飞地被许可使用相应的特征。在框532中,计算MAC(例如,AES-MAC),例如,使用从密钥276中获得的许可密钥来进行计算,其中,该MAC基于许可标记的内容并且被包括在许可标记中。
在框534中,许可标记被提供(例如,从框522中的许可标记调用或指令被返回)给软件安装器应用程序432。
在框540中,平台410上的用户飞地430开始建立,以便于提供在其中运行用户软件应用程序434的受保护的环境。在框542中,由软件安装器应用程序432发布创建指令以创建用户飞地430。在框544中,开始对创建指令的执行(例如,由执行单元270或280执行)。在一个实施例中,创建指令的执行包括分配一系列地址以供用户飞地430使用。在一个实施例中,地址可以是第一类型的地址,例如,虚拟地址或线性地址,其被转换为第二类型地址,例如,诸如系统存储器130等系统存储器中的物理地址。
在框546中,对创建指令的执行还可以包括,建立飞地的属性并且将飞地属性存储在SECS中,例如存储在SECS310的属性字段316中。微架构数据结构(例如,页面信息(PAGEINFO))可以与创建指令(例如,其在RBX寄存器中的地址)相关联。页面信息可以具有指定要被复制到SECS310的源SECS的地址的字段。该源SECS可以包括要被复制到SECS属性字段316的源SECS属性位阵列(例如,在框516中由ISV450提供)。源SECS属性位阵列中的每一位以及SECS属性字段316中的相对应的位可以与特定平台特征相对应。如果源SECS属性位阵列中的位被设置,则飞地的创建者(例如,软件安装器应用程序432)想要在正被创建的飞地(例如,用户飞地430)中启用相对应的特征,换言之,想要使该相应的特征对在该飞地中运行的软件应用程序或应用程序(例如,用户软件应用程序434)可利用、可使用、或被用于所述软件应用程序或应用程序。然而,如下文所述的或根据本发明另一个实施例,除非使用该特征的许可得到验证,否则该特征不会被启用。
在框548中,软件安装器应用程序432可以向飞地添加一个或多个页面(或其他区),例如,通过发布一个或多个添加指令,并且使所述一个或多个页面被测量,例如,通过发布一个或多个扩展指令。向飞地添加页面可以包括将源页面从系统存储器复制到EPC中,并且将EPC页面与飞地的SECS相关联。源页面可以是包括用于飞地的数据区的未加密代码、数据或其他信息的常规页面,或者,源页面可以是包括用于TCS区的数据的TCS页面。使它们被测量可以包括基于页面或多个页面的内容、位置、和/或其他属性来递增地计算或扩展加密散列,并且将所述散列存储在MRENCLAVE312中。在本实施例中,被添加的页面可以包括用于用户软件应用程序434的代码、数据、栈、堆等。
在框550中,软件安装器应用程序发布初始化指令以便于完成用户飞地430的建立,并且对其进行初始化。在一个实施例中,初始化指令是EAX寄存器中的具有值0x2的ENCLS的叶子。在框522中,对初始化指令的执行(例如,由执行单元270或280执行)开始。
在一个实施例中,对初始化指令的执行可以包括,在框554中,对许可标记进行校验以保证相对应的飞地是有效的。框554中使用的许可标记可以与初始化指令(例如,其在RDX寄存器中的地址)相关联。在本实施例中,许可标记可以是在框534中由许可飞地420提供给软件安装器应用程序432的许可标记。
在框556中,对许可标记进行校验可以包括,获取在创建该许可标记中使用的许可密钥(或用于获得该许可密钥的密钥),以及在框558中,使用该许可密钥来基于许可标记的内容计算MAC。在框560中,将在框558中计算的MAC与包括在许可标记中的MAC相比较。如果它们相匹配,则方法500在框562中继续。否则,方法500在框590中继续。
许可标记可以包括属性位阵列,其中,许可标记属性位阵列中的每位与SECS属性字段316中的位以及特定的平台特征相对应,其中,SECS还可以与初始化指令(例如,其在ECX中的地址)相关联。如果许可标记属性位阵列中的位被设置,则表示飞地被许可使用相对应的特征。
在框562中,对许可标记进行校验还可以包括,将许可标记属性位阵列中的每位与SECS属性字段316中的相对应的位相比较,该SECS属性字段316保存有被用于创建飞地的源SECS属性位阵列的副本。如果SECS属性字段中设置的每一位都具有被设置在许可标记属性位阵列中的相对应的位,则方法500在框564中继续。如果没有,则方法500在框590中继续。
在框564中,对许可标记进行校验还可以包括,将MRENCLAVE312中的最终值与对来自许可标记的飞地的预期测量相比较,其中,在一个实施例中,MRENCLAVE312的最终值是唯一的SHA-256摘要,该摘要对位于飞地内部的代码和数据、飞地内部的页面的位置和布局顺序、以及每个页面的安全特性进行加密识别。如果MRENCLAVE312中的值与预期测量相匹配,则方法500在框566中继续,否则,方法500在框590中继续。
在框566中,初始化指令的执行继续进行到锁定MRENCLACE312,以使得其内容保持不变,即使后续的添加或扩展指令的执行也不能改变,以及设置SECS中的属性指示符,以阻止更多的区或页被添加到飞地中。在框568中,用户飞地430的建立完成。
在框570中,可以进入用户飞地430(例如,通过发布进入(EENTER)指令),以便于安全地执行用户软件应用程序434。在框572中,用户软件应用程序434可以发布需要使用可许可特征的指令,例如,针对用于对信息进行加密、解密、密封、开封(或任何其他目的)的密钥的请求。在框574中,SECS属性字段(例如,属性字段316)中的相对应的位被校验。如果该位被设置,则在框576中,允许特征的使用并且指令可以执行(例如,密钥可以被返回给用户软件应用程序434)。如果没有被设置,则方法500在框590中继续。
在框590中,提出错误状况。例如,调用或指令可以返回指示飞地初始化失败或请求使用可许可特征失败的错误码。
在本发明的各种实施例中,图5中示出的方法可以以不同的顺序、组合或省略示出的框、添加额外的框、或者,利用重排、组合、省略或添加框的组合来执行。
在方法500和可替换实施例之间的可能的区别的一个示例可以包括许可飞地420联系外部服务器以获取批准。在一个这样的实施例中,许可证书可以提供有限数量的要被授予的平台许可(许可限度)。在本实施例中,框524还可以包括,许可飞地420与许可服务器470进行连接以请求新的平台许可,许可服务器470保持对被许可的平台(即,平台上的特征的激活)的计数,如果被许可的平台数量小于许可限度,则许可服务器批准授予新的平台许可,以及,如果被许可的平台的数量等于或大于许可限度,则拒绝针对新的平台许可的请求。
如另一个示例,可许可特征不能由处理器110控制(例如,启用或禁用)。例如,可许可特征(例如,特殊存储装置、计数器、或受信任的输入/输出)可以由外围控制代理120控制。在本实施例中,平台服务飞地440可以在处理器110和外围控制代理120之间建立受信任的通道(例如,通过接口125)并且请求特殊特征。在建立通道和进行请求之前,平台服务飞地440可以对来自许可飞地120的特殊标记进行校验,以验证其真实性,以及验证针对进行请求的软件应用程序使用平台100上的特殊特征的许可是否已经被批准。该特殊标记可以由许可飞地420创建,例如,通过使用飞地报告功能(例如,报告(EREPORT)指令),该报告功能生成标记有来源的标识的受保护的数据结构(报告)。特殊标记可以是包括与用户飞地430及其SECS属性有关的信息的报告,该报告被标记有许可飞地420的标识。在本实施例中,除了处理器特定特征,SECS属性字段还可以包括平台特征。
此外,本发明的方法实施例并不限于方法500及其变形。在本发明的范围内,本文中没有描述的许多其他方法实施例(以及装置、系统和其他实施例)是可能的。如上文描述的,本发明的实施例或实施例部分可以存储在任何形式的机器可读介质上。例如,方法500的全部或部分可以实现为存储在可由处理器110读取的介质上的软件或固件指令,所述软件或固件指令当由处理器110执行时,使处理器110执行本发明的实施例。此外,本发明的方面可以被实现为存储在机器可读介质上的数据,其中,数据表示可以用于制造处理器110的全部或部分的设计或其他信息。
由此,已经描述了用于在安全处理环境中进行特征许可的本发明的实施例。尽管某些实施例已经被描述并在附图中示出,但是应该理解的是,这样的实施例仅是对广泛发明进行示出而非限制,并且本发明不限制于所示出和描述的特定构造和布置,这是因为在学习本公开后,本领域的普通技术人员可以想到各种其他的修改。在本发明这样的技术领域中,发展迅速并且进一步的发展不易预见,通过启用技术进步而有利于进行的,本公开的实施例能够容易地在布置和细节上进行修改,而不偏离本公开的原理或所附的权利要求的范围。

Claims (20)

1.一种处理器,包括:
用于接收第一指令的指令单元,其中,所述第一指令用于对安全飞地进行初始化;以及
用于执行所述第一指令的执行单元,其中,所述第一指令的执行包括确定请求的特征在所述安全飞地中是否被许可使用。
2.根据权利要求1所述的处理器,其中,如果所述请求的特征在所述安全飞地中不被许可使用,则初始化失败。
3.根据权利要求1所述的处理器,其中,所述指令单元还从所述安全飞地内的软件接收第二指令,其中,所述第二指令使用所述请求的特征,以及,所述执行单元还仅当所述请求的特征在所述安全飞地中被许可使用时才执行所述第二指令。
4.根据权利要求3所述的处理器,其中,所述第一指令的执行还包括对与所述第一指令相关联的许可标记进行验证,其中,所述许可标记包括许可特征的列表。
5.根据权利要求4所述的处理器,其中,所述处理器还包括用于对所述许可标记进行验证的密钥。
6.根据权利要求3所述的处理器,其中,所述指令单元还接收第三指令,其中,所述第三指令用于创建所述安全飞地,并且所述执行单元还用于执行所述第三指令,其中,所述第三指令的执行包括在与所述安全飞地相关联的控制结构中设置针对所述请求的特征的指示符。
7.根据权利要求6所述的处理器,其中,在所述第一指令的执行期间,确定所述请求的特征在所述安全飞地中是否被许可使用包括将所述指示符与所述许可标记中的所述许可特征的列表中的相对应的位进行比较。
8.根据权利要求6所述的处理器,其中,所述第二指令的执行包括通过对所述控制结构中的指示符进行核对来确定所述请求的特征在所述安全飞地中是否被许可使用。
9.一种方法,包括:
发布用于对安全飞地进行初始化的第一指令;
执行所述第一指令,其中,所述第一指令的执行包括确定请求的特征在所述安全飞地中是否被许可使用。
10.根据权利要求9所述的方法,其中,如果所述请求的特征在所述安全飞地中不被许可使用,则初始化失败。
11.根据权利要求10所述的方法,还包括:由在所述安全飞地内运行的软件发布第二指令,其中,所述第二指令使用所述请求的特征;以及,仅当所述请求的特征在所述安全飞地中被许可使用时才执行所述第二指令。
12.根据权利要求11所述的方法,其中,所述第一指令的执行还包括对与所述第一指令相关联的许可标记进行验证,其中,所述许可标记包括许可特征的列表。
13.根据权利要求12所述的方法,还包括使用对处理器唯一的密钥来校验所述许可标记。
14.根据权利要求11所述的方法,还包括:发布第三指令,其中,所述第三指令用于创建所述安全飞地;以及,执行所述第三指令,其中,所述第三指令的执行包括在与所述安全飞地相关联的控制结构中设置针对所述请求的特征的指示符。
15.根据权利要求14所述的方法,其中,在所述第一指令的执行期间,确定所述请求的特征在所述安全飞地中是否被许可使用包括将所述指示符与所述许可标记中的所述许可特征的列表中的相对应的位进行比较。
16.根据权利要求14所述的方法,其中,所述第二指令的执行包括通过对所述控制结构中的所述指示符进行核对来确定所述请求的特征在所述安全飞地中是否被许可使用。
17.根据权利要求9所述的方法,还包括通过许可飞地来创建所述许可标记,其中,创建所述许可标记包括核对所述请求的特征是否作为许可特征被包括在许可证书中。
18.根据权利要求9所述的方法,其中,确定所述请求的特征在所述安全飞地中是否被许可使用包括联系许可服务器来得到批准。
19.一种系统,包括:
用于提供系统特征的外围控制代理;以及
处理器,包括:
用于接收第一指令的指令单元,其中,所述第一指令用于对用户飞地进行初始化;以及
用于执行所述第一指令的执行单元,其中,所述第一指令的执行包括确定平台特征在所述用户飞地中是否被许可使用。
20.根据权利要求19所述的系统,其中,平台服务飞地通过检查由许可飞地创建的许可标记来确定所述平台特征在所述用户飞地中是否被许可使用。
CN201480035790.5A 2013-07-23 2014-07-15 安全处理环境中的特征许可 Expired - Fee Related CN105339945B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/949,213 2013-07-23
US13/949,213 US9698989B2 (en) 2013-07-23 2013-07-23 Feature licensing in a secure processing environment
PCT/US2014/046610 WO2015013059A1 (en) 2013-07-23 2014-07-15 Feature licensing in a secure processing environment

Publications (2)

Publication Number Publication Date
CN105339945A true CN105339945A (zh) 2016-02-17
CN105339945B CN105339945B (zh) 2019-01-11

Family

ID=52391653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480035790.5A Expired - Fee Related CN105339945B (zh) 2013-07-23 2014-07-15 安全处理环境中的特征许可

Country Status (4)

Country Link
US (1) US9698989B2 (zh)
EP (1) EP3025268B1 (zh)
CN (1) CN105339945B (zh)
WO (1) WO2015013059A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107392011A (zh) * 2017-08-22 2017-11-24 致象尔微电子科技(上海)有限公司 一种内存页转移方法
CN107544918A (zh) * 2017-08-17 2018-01-05 致象尔微电子科技(上海)有限公司 一种内存页共享方法
US10977362B2 (en) 2019-03-26 2021-04-13 Advanced New Technologies Co., Ltd. Program execution and data proof scheme using multiple key pair signatures

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9698989B2 (en) 2013-07-23 2017-07-04 Intel Corporation Feature licensing in a secure processing environment
US20150058926A1 (en) * 2013-08-23 2015-02-26 International Business Machines Corporation Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment
US9875344B1 (en) * 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
US9710622B2 (en) * 2015-02-23 2017-07-18 Intel Corporation Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache
US9749323B2 (en) * 2015-03-27 2017-08-29 Intel Corporation Technologies for secure server access using a trusted license agent
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10664179B2 (en) 2015-09-25 2020-05-26 Intel Corporation Processors, methods and systems to allow secure communications between protected container memory and input/output devices
US10346641B2 (en) 2016-09-23 2019-07-09 Intel Corporation Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory
US10439803B2 (en) * 2016-11-14 2019-10-08 Microsoft Technology Licensing, Llc Secure key management
US11416604B2 (en) 2017-09-25 2022-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Enclave handling on an execution platform
US10970390B2 (en) * 2018-02-15 2021-04-06 Intel Corporation Mechanism to prevent software side channels
US11416605B2 (en) 2018-03-27 2022-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Trusted execution environment instances licenses management
US11704442B2 (en) 2018-03-27 2023-07-18 Telefonaktiebolaget Lm Ericsson (Publ) Instance handling of a trusted execution environment
US11095684B2 (en) * 2019-01-07 2021-08-17 Fortanix, Inc. Providing attributes of a network service

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102473224A (zh) * 2009-12-22 2012-05-23 英特尔公司 提供安全应用执行的方法和装置
US20120159184A1 (en) * 2010-12-17 2012-06-21 Johnson Simon P Technique for Supporting Multiple Secure Enclaves
EP2482220A1 (en) * 2011-01-27 2012-08-01 SafeNet, Inc. Multi-enclave token
US8352740B2 (en) * 2008-05-23 2013-01-08 Microsoft Corporation Secure execution environment on external device
US20130159726A1 (en) * 2009-12-22 2013-06-20 Francis X. McKeen Method and apparatus to provide secure application execution

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US8832452B2 (en) 2010-12-22 2014-09-09 Intel Corporation System and method for implementing a trusted dynamic launch and trusted platform module (TPM) using secure enclaves
US9087196B2 (en) 2010-12-24 2015-07-21 Intel Corporation Secure application attestation using dynamic measurement kernels
US8438631B1 (en) 2013-01-24 2013-05-07 Sideband Networks, Inc. Security enclave device to extend a virtual secure processing environment to a client device
US9698989B2 (en) 2013-07-23 2017-07-04 Intel Corporation Feature licensing in a secure processing environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352740B2 (en) * 2008-05-23 2013-01-08 Microsoft Corporation Secure execution environment on external device
CN102473224A (zh) * 2009-12-22 2012-05-23 英特尔公司 提供安全应用执行的方法和装置
US20130159726A1 (en) * 2009-12-22 2013-06-20 Francis X. McKeen Method and apparatus to provide secure application execution
US20120159184A1 (en) * 2010-12-17 2012-06-21 Johnson Simon P Technique for Supporting Multiple Secure Enclaves
EP2482220A1 (en) * 2011-01-27 2012-08-01 SafeNet, Inc. Multi-enclave token
US20120198538A1 (en) * 2011-01-27 2012-08-02 Safenet, Inc. Multi-enclave token

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107544918A (zh) * 2017-08-17 2018-01-05 致象尔微电子科技(上海)有限公司 一种内存页共享方法
CN107544918B (zh) * 2017-08-17 2021-01-15 海光信息技术股份有限公司 一种内存页共享方法
CN107392011A (zh) * 2017-08-22 2017-11-24 致象尔微电子科技(上海)有限公司 一种内存页转移方法
CN107392011B (zh) * 2017-08-22 2019-11-22 海光信息技术有限公司 一种内存页转移方法
CN111259380A (zh) * 2017-08-22 2020-06-09 海光信息技术有限公司 内存页转移方法和函数调用方法
US10977362B2 (en) 2019-03-26 2021-04-13 Advanced New Technologies Co., Ltd. Program execution and data proof scheme using multiple key pair signatures
TWI725655B (zh) * 2019-03-26 2021-04-21 開曼群島商創新先進技術有限公司 用於在可信執行環境中執行子邏輯代碼的程式執行和資料證明的方法、設備和系統

Also Published As

Publication number Publication date
EP3025268A4 (en) 2017-03-01
EP3025268A1 (en) 2016-06-01
EP3025268B1 (en) 2021-05-05
US20150033316A1 (en) 2015-01-29
CN105339945B (zh) 2019-01-11
US9698989B2 (en) 2017-07-04
WO2015013059A1 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
CN105339945A (zh) 安全处理环境中的特征许可
CN103210396B (zh) 包括用于保护敏感代码和数据的架构的方法和装置
TWI705353B (zh) 用於容許安全通訊之積體電路、方法及製造物件
US10216648B2 (en) Maintaining a secure processing environment across power cycles
US11132468B2 (en) Security processing unit of PLC and bus arbitration method thereof
CN101894224B (zh) 保护客户端平台上的内容
CN101281506B (zh) 数据处理系统内基于存储器域的安全控制
US10999081B2 (en) Dynamic certificate management for a distributed authentication system
TW201713096A (zh) 用以支援保護容器的即時遷移之處理器、方法、系統和指令
CN105339912B (zh) 测量安全区域
CN104813330A (zh) 在运行时测量在安全区域内加载的应用
TWI608378B (zh) 裝置與安全處理環境之間的介面
EP2889794B1 (en) Offloading functionality from a secure processing environment
JP6777288B2 (ja) プロセッサ
US20230017809A1 (en) Indicating a type of secure boot to endpoint devices by a security processor
KR20240006658A (ko) 소프트웨어의 사용을 보안하는 방법
JP2014095959A (ja) システム設定情報更新装置、システム設定情報更新システム、システム設定情報更新方法、及び、システム設定情報更新プログラム
CN103810443A (zh) 保护基本输入输出系统的设备与方法
CN116341025A (zh) 数据遗忘加密计算

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190111

CF01 Termination of patent right due to non-payment of annual fee