CN107409128A - 使用受信许可证代理进行安全服务器访问的技术 - Google Patents

使用受信许可证代理进行安全服务器访问的技术 Download PDF

Info

Publication number
CN107409128A
CN107409128A CN201680012399.2A CN201680012399A CN107409128A CN 107409128 A CN107409128 A CN 107409128A CN 201680012399 A CN201680012399 A CN 201680012399A CN 107409128 A CN107409128 A CN 107409128A
Authority
CN
China
Prior art keywords
computing device
address space
identifier
user
client computing
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
CN201680012399.2A
Other languages
English (en)
Other versions
CN107409128B (zh
Inventor
O·伦兹
N·米尔施坦恩
I·贝蒂察夫斯基
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 CN107409128A publication Critical patent/CN107409128A/zh
Application granted granted Critical
Publication of CN107409128B publication Critical patent/CN107409128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/103Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for protecting copy right

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

用于安全服务器访问的技术包括将许可证代理加载到由客户端计算设备的处理器建立的安全位址空间中的客户端计算设备。许可证代理从应用接收访问远程服务器设备的请求。许可证代理打开与服务器设备的安全连接,并执行安全位址空间的远程证实。许可证代理认证用户,并将机器标识符和用户标识符发送到服务器设备。机器标识符可以基于客户端计算设备的位址空间密封密钥。服务器设备验证机器标识符和用户标识符绑定到有效的应用许可证。如果机器标识符和用户标识符被成功验证,则应用程序使用安全连接与服务器设备进行通信。其他实施例也被描述且要求保护。

Description

使用受信许可证代理进行安全服务器访问的技术
相关申请的交叉引用
本申请要求于2015年3月27日提交的题为“TECHNOLOGIES FOR SECURE SERVERACCESS USING A TRUSTED LICENSE AGENT”的美国实用新型专利申请14/670,959的优先权。
背景技术
许多现代计算应用包括在线特征,允许应用访问存储在远程服务器上的数据。例如,多人游戏可以访问远程服务器,并且许多内容应用程序也可以访问远程服务器。服务提供商可能会对在线数据的访问收费,从而可以认证客户端应用。典型的解决方案可以在客户端设备和远程服务器之间创建受信的通信信道,例如使用安全网络连接。然而,客户端应用可以是由客户端设备执行的普通的、不受保护的客户端应用,因此服务器可能不能保证客户端应用的真实性。
附图说明
这里描述的概念在附图中通过示例而不是限制的方式来进行说明。为了说明的简单和清楚,附图中所示的元件不一定按比例绘制。在适当的情况下,图中已经重复了参考标签以表明相应或相似的元件。
图1是用于安全服务器访问的系统的至少一个实施例的简化框图;
图2是可以由图1的系统建立的各种环境的至少一个实施例的简化框图;
图3是可以由图1和图2的系统的客户端计算设备执行的用于安全服务器访问的方法的至少一个实施例的简化流程图;和
图4是可以由图1和图2的系统的服务器设备执行的用于安全服务器访问的方法的至少一个实施例的简化流程图。
具体实施方式
虽然本公开的概念易于进行各种修改和替代形式,但是其具体实施例已经附图中通过示例的方式示出,并且将在本文中进行详细描述。然而,应当理解,并不意图将本公开的概念限制为所公开的特定形式,相反,本发明旨在涵盖与本公开和所附权利要求一致的所有修改、等同方案和替代方案。
说明书中对“一个实施例”,“实施例”,“说明性实施例”等的提及表明所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以或可以不必然包括特定的特征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例来实现这种特征、结构或特性在本领域技术人员的知识范围内,无论是否明确描述。另外,应当理解,以“至少一个A,B和C”的形式包括在列表中的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。类似地,以“A,B或C中的至少一个”的形式列出的项目可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A,B和C)。
在一些情况下,可以以硬件、固件、软件或其任何组合实现所公开的实施例。所公开的实施例还可以被实现为由可由一个或多个处理器读取和执行的暂时或非暂时机器可读(例如,计算机可读)存储介质所承载或存储的指令。机器可读存储介质可以被实现为用于以机器可读的形式(例如,易失性或非易失性存储器、介质盘或其他介质设备)存储或发送信息的任何存储设备、机制或其他物理结构。
在附图中,可以以具体的布置和/或顺序示出一些结构或方法特征。然而,应当理解,可能不需要这种具体的布置和/或排序。相反,在一些实施例中,这些特征可以以与说明性图中所示的不同的方式和/或顺序排列。另外,在特定图形中包括结构或方法特征并不意味着在所有实施例中都需要这样的特征,并且在一些实施例中可以不包括这些特征或者可以与其他特征组合。
现在参考图1,在说明性实施例中,用于安全服务器访问的系统100包括通过网络106通信的若干客户端计算设备102和服务器设备104。在使用中,如下面更详细描述的,每个客户端计算设备102加载受信许可证代理到由相应的客户端计算设备102的处理器保护的安全位址空间(enclave)中。在使用中,受信许可证代理接收由客户端计算设备102执行的应用的访问由服务器设备104提供的应用和/或数据的请求。在安全位址空间内执行的受信许可证代理打开与服务器设备104的安全连接,并执行远程证实过程以证明安全位址空间(因此许可证代理)是完好无缺且真实的。在远程证实之后,受信许可证代理将与客户端计算设备102相关联的机器标识符和用户标识符发送到服务器设备104,并且服务器设备104确定用户和机器的组合是否被允许访问应用和/或数据。如果允许访问,则客户端计算设备102的应用通过由受信许可证代理建立的安全连接访问服务器设备104。因此,系统100允许服务器设备104将对应用的访问权限于机器和用户的特定组合。此外,服务器设备104验证由客户端计算设备102执行的应用程序的完好性,这可以防止未经授权的客户端的访问(例如,通过阻止被修改或以其他方式受到攻击的客户端应用程序的访问)。
每个客户端计算设备102可以体现为能够执行本文描述的功能的任何类型的计算或计算机设备,包括但不限于计算机,台式计算机,工作站,膝上型计算机,笔记本计算机,平板计算机,移动计算设备,可穿戴计算设备,网络设备,web设备,分布式计算系统,基于处理器的系统和/或消费者电子设备。如图1所示,客户端计算设备102示例性地包括处理器120、输入/输出子系统124、存储器126、数据存储设备128和通信电路130。当然,在其它实施例中,客户端计算设备102可以包括其他或附加组件,例如在台式计算机中常见的那些(例如,各种输入/输出设备)。另外,在一些实施例中,一个或多个说明性组件可以并入或以其他方式形成另一组件的一部分。例如,在一些实施例中,存储器126或其部分可并入一个或多个处理器120中。
处理器120可以被实现为能够执行本文所描述的功能的任何类型的处理器。处理器120可以被实现为单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。在一些实施例中,处理器120包括安全位址空间支持122。安全位址空间支持122允许处理器120建立被称为安全位址空间的受信执行环境,其中可以测量、验证和/或以其他方式确定执行代码是真实的。此外,包括在安全位址空间中的代码和数据可以被加密或以其他方式保护,以防止被在安全位址空间之外执行的代码访问。例如,包括在安全位址空间中的代码和数据可以被处理器120的硬件保护机制保护,同时被执行或者被存储在处理器120的特定受保护的高速缓冲存储器中。包括在安全位址空间中的代码和数据可以在存储在共享高速缓存或主存储器126中时被加密。安全位址空间支持122可被实施为一组处理器指令扩展,其允许处理器120在存储器126中建立一个或多个安全位址空间。例如,安全位址空间支持122可以体现为软件防护扩展(SGX)技术。
存储器126可以被实施为能够执行本文描述的功能的任何类型的易失性或非易失性存储器或数据存储。在操作中,存储器126可以存储在客户端计算设备102的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动器。存储器126经由I/O子系统124通信地耦合到处理器120,I/O子系统124可被实现为促进与处理器120、存储器126和客户端计算设备102的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统124可以被实施或为以其它方式包括存储器控制器集线器、输入/输出控制集线器、固件设备、通信链路(即,点到点链路,总线链路,电线,电缆,光导,印刷电路板迹线等)和/或其他组件和子系统以促进输入/输出操作。在一些实施例中,I/O子系统124可以形成片上系统(SoC)的一部分,并且与处理器120、存储器126和客户端计算设备102的其他组件一起并入到单个集成电路芯片上。
数据存储设备128可以被实施为被配置用于数据的短期或长期存储的任何类型的一个设备或多个设备,例如存储器设备和电路,存储卡,硬盘驱动器,固态驱动器或其他数据存储设备。在一些实施例中,数据存储设备128可用于存储一个或多个安全位址空间的内容。当由数据存储设备128存储时,可以对安全位址空间的内容加密,以防止未经授权的访问。
客户端计算设备102的通信电路130可以被实现为能够实现客户端计算设备102,服务器设备104和/或其他远程设备之间通过网络106的通信的任何通信电路、设备或其集合。通信电路130可以被配置为使用任何一种或多种通信技术(例如,有线或无线通信)和相关联的协议(例如,以太网,WiMAX等)来实现这样的通信。
服务器设备104被配置为验证并向每个客户端计算设备102的受信许可证代理提供应用服务和/或数据。服务器设备104可被实现为能够执行本文所描述的功能的任何类型的计算或计算机设备,包括但不限于计算机,多处理器系统,服务器,机架式服务器,刀片服务器,膝上型计算机,笔记本计算机,平板计算机,可穿戴计算设备,网络设备,web设备,分布式计算系统,基于处理器的系统和/或消费电子设备。示例性地,服务器设备104包括处理器140、I/O子系统142、存储器144、数据存储设备146、通信电路148和/或在服务器或类似计算设备中通常所见的其他组件和设备。服务器设备104的这些单独组件可以类似于客户端计算设备102的相应组件,其描述适用于服务器设备104的相应组件,并且在本文中不重复,以免使本公开内容变得不清楚。另外,在一些实施例中,服务器设备104可被实施为由跨越网络106分布并在公共或私有云中操作的多个计算设备形成的“虚拟服务器”。因此,尽管图1中示出了服务器设备104实施为单个服务器计算设备,应当理解,服务器设备104可以被实现为协作以促进下面描述的功能的多个设备。
如下面更详细地讨论的,客户端计算设备102和服务器设备104可以被配置为通过网络106彼此之间和/或与系统100的其他设备发送和接收数据。网络106可以被实施为任何数量的各种有线和/或无线网络。例如,网络106可以被实施为或以其它方式包括有线或无线局域网(LAN)、有线或无线广域网(WAN),蜂窝网络和/或可公共访问的全球网络如因特网。因此,网络106可以包括任何数量的附加设备,诸如附加计算机、路由器和交换机,以促进系统100的设备之间的通信。
现在参考图2,在说明性的实施例中,客户端计算设备102在操作期间建立环境200。说明性环境200包括应用202、许可证代理加载器模块204和安全位址空间206。环境200的各种模块可以实施为硬件、固件、软件或其组合。例如,环境200的各种模块、逻辑和其他组件可以形成客户端计算设备102的处理器120或其他硬件组件的一部分,或以其他方式由客户端计算设备102的处理器120或其他硬件组件建立。因此,在一些实施例中,环境200的任意一个或多个模块可被实施为电气设备的电路或集合(例如,许可证代理加载器电路,安全位址空间电路等)。
应用202可以被实现为被配置为访问由服务器设备104提供的服务或数据的任何用户应用、系统应用、模块、脚本或其他计算机程序。应用202可以被实现为本地应用、Web应用、字节码、源代码或可由客户端计算设备102执行的任何其他代码。例如,应用202可以被实现为内容应用(例如,新闻门户,地图应用,旅行指南,健康门户,金融门户等),其访问由服务器设备104存储的数据。作为另一示例,应用202可以被实现为访问由服务器设备104维护的游戏状态的游戏。
许可证代理加载器模块204被配置为将许可证代理208加载到由客户端计算设备102的处理器120建立的安全位址空间206中。许可证代理加载器模块204可以包括在应用202中或与应用202一起安装。许可证代理加载器模块204在安全位址空间206外部执行,并且因此可能不是安全的或由客户端计算设备102以其他方式验证。
安全位址空间206被配置为在环境200内提供隔离且安全的执行环境。在一些实施例中,安全位址空间206可以被实施为基于软件的受信执行环境;即,使用客户端计算设备102的处理器120安全地执行软件的受信执行环境。例如,安全位址空间206可被实施为使用处理器120的安全位址空间支持122建立的一个或多个安全位址空间,例如使用SGX技术建立的安全位址空间。安全位址空间206还建立许可证代理208。说明性的许可证代理208包括应用请求模块210、证明模块212、用户认证模块214和服务器访问模块216。安全位址空间206的各种模块和组件可以被实现为硬件、固件、软件或其组合。例如,安全位址空间206的各种模块、逻辑和其他组件可以形成客户端计算设备102的处理器120或其他硬件组件的一部分,或以其他方式由其构建。因此,在一些实施例中,安全位址空间206的任何一个或多个模块可被实施为电气设备的电路或集合(例如,许可证代理电路、应用请求电路、证明电路等)。
应用请求模块210被配置为从应用202接收访问远程服务器设备104的请求。应用请求模块210可以被配置为响应于接收到访问远程服务器设备104的请求而打开与远程服务器设备104的安全连接。
证明模块212被配置为使用客户端计算设备102和远程服务器设备104之间的安全连接来执行安全位址空间206向远程服务器设备104的远程证实。远程证实可以包括生成安全位址空间206的测量并将该测量发送到远程服务器设备104。该测量可以指示与安全位址空间206相关联的安全日志,并且安全日志可以指示安全位址空间206的内容和安全位址空间206的创建顺序。
用户认证模块214被配置为认证计算设备102的用户。用户认证模块214可以被配置为从用户接收用户凭证,并且在一些实施例中可以使用客户端计算设备102的受信的I/O路径来接收凭证。
服务器访问模块216被配置为在认证用户之后使用安全连接将机器标识符和用户标识符发送到远程服务器设备104。服务器访问模块216还被配置为允许应用202在发送机器标识符和用户标识符之后访问与远程服务器设备104的安全连接,并且在一些实施例中,从远程服务器设备104接收成功响应。机器标识符可以被实现为被配置为安全且唯一地标识特定计算设备102的任何类型的数据。服务器访问模块216可以被配置为根据唯一的密钥生成机器标识符,该唯一密钥对于特定安全位址空间206和客户端计算设备102的组合是唯一的。例如,唯一密钥可被实现为位址空间密封密钥。类似地,用户标识符可以实施为被配置为识别计算设备102的特定用户的任何凭证或其他类型的数据。
仍然参考图2,在说明性实施例中,服务器设备104在操作期间建立环境220。说明性的环境220包括应用222、应用许可证模块226、客户端计算设备模块230、证实模块232和访问验证模块234。环境220的各种模块可以实施为硬件、固件、软件或其组合。例如,环境220的各种模块、逻辑和其他组件可以形成服务器设备104的处理器140或其他硬件组件的一部分,或以其他方式由其建立。这样,在一些实施例中,环境220的任何一个或多个模块可以被实现为电气设备的电路或集合(例如,应用许可证电路、客户端计算设备电路等)。
应用222可以实施为被配置为向客户端计算设备102提供服务或数据的任何用户应用、系统应用、模块、脚本或其他计算机程序。应用222可以被实施为本机应用、Web应用、字节码、源代码或可能由服务器设备104执行的任何其他代码。例如,应用222可以被实施为内容门户、在线游戏或其他应用。如图所示,应用222可以存储、维护或以其他方式访问可以包括内容数据、游戏状态数据或应用222使用的其他数据的应用数据224。
应用许可证模块226被配置为将机器标识符和用户标识符绑定到应用许可证。如上所述,机器标识符指示特定客户端计算设备102和由客户端计算设备102的处理器120建立的安全位址空间206的组合。机器标识符可以根据唯一密钥来生成,唯一密钥对于客户端计算设备102和客户端计算设备102的安全位址空间206(例如位址空间密封密钥)的组合而言是独一无二的。应用许可证模块226可以被配置为将服务器挑战数据项发送到客户端计算设备102,并且机器标识符可以进一步指示服务器挑战数据项。应用许可证模块226可以被配置为从客户端计算设备102接收机器标识符和用户标识符。机器标识符和/或用户标识符可以存储在许可证数据228中或以其他方式与许可证数据228相关联。
客户端计算设备模块230被配置为在机器标识符和用户标识符被绑定到应用许可证之后打开与客户端计算设备102的安全连接。如下面进一步描述的,客户端计算设备模块230被配置为允许客户端计算设备102在成功地远程证实安全位址空间206之后使用安全连接来访问应用222和/或应用数据224,并成功地验证由客户端计算设备102提供的机器标识符和用户标识符。
证明模块232被配置为使用安全连接来执行客户端计算设备102的安全位址空间206的远程证实。远程证实可以包括接收安全位址空间206的测量并且基于该测量来验证安全位址空间206是完好的。安全位址空间206的测量可以指示与安全位址空间206相关联的安全日志,并且安全日志可以指示安全位址空间206的内容和安全位址空间206的创建顺序。
访问验证模块234被配置为使用安全连接从客户端计算设备102接收机器标识符和用户标识符,并验证机器标识符和用户标识符。访问验证模块234可以被配置为确定机器标识符和用户标识符是否与先前与应用许可证绑定的机器标识符和用户标识符匹配。如上所述,在机器标识符和用户标识符成功验证之后,客户端计算设备102可以使用安全连接访问应用222和/或应用数据224。
现在参考图3,在使用中,客户端计算设备102可以执行用于安全服务器访问的方法300。方法300从框302开始,其中客户端计算设备102为应用202安装受信的许可证代理208。受信许可证代理208可以与应用202一起安装或作为应用202的一部分安装。代码和/或与受信许可证代理208相关联的数据可以包括在应用202中,并且可以以不受保护的格式(例如,不经加密)来传送和/或存储。
在框304中,客户端计算设备102将受信许可证代理208加载到安全位址空间206中。在被加载到安全位址空间206中之后,受信许可证代理208可以不被篡改或以其他方式通过未经授权的进程访问。另外,如下面进一步描述的,在加载到安全位址空间206中之后,可以使用远程证实过程来验证受信许可证代理208是未被改变的。在说明性实施例中,安全位址空间206保持打开,并且在方法300的执行期间受信许可证代理208保持加载。然而,在一些实施例中,受信许可证代理208可以被卸载(例如,加密和交换到磁盘,或关闭完全脱离(close out of)存储器),然后根据需要被安全地重新加载到安全位址空间206中。
客户端计算设备102可以使用任何适当的技术来将受信许可证代理208加载到安全位址空间206中。例如,客户端计算设备102可以使用处理器120的安全位址空间支持122在存储器126内建立一个或多个安全位址空间。可以例如使用SGX技术来建立安全位址空间。为了建立安全位址空间,客户端计算设备102可以执行一个或多个处理器指令来创建安全位址空间,将存储器页面添加到安全位址空间中,并且完成安全位址空间的测量。当存储器页面被添加到安全位址空间中时,安全位址空间支持122可以基于存储器页面的内容和添加存储器页面的顺序来更新安全日志。完成安全位址空间可以基于安全日志生成测量,例如通过基于安全日志生成安全散列值。安全位址空间完成后,额外的存储器页面可能不会被添加到安全位址空间中。可以使用安全位址空间的测量来识别和区分由客户端计算设备102建立的不同的安全位址空间。
在框306中,客户端计算设备102将用户标识符和机器标识符绑定到应用202的许可证。用户标识符可以被实施为任何用户凭证或标识客户端计算设备的特定用户的其他数据。用户标识符可以包括认证因素(authentication factor),例如用于认证用户的密码。机器标识符可以被实施为安全且唯一地识别特定客户端计算设备102的任何数据。在执行应用202之前,例如在应用202的安装期间或在另一个配置过程中,用户标识符和机器标识符可以被绑定到应用许可证。在一些实施例中,在框308中,客户端计算设备102可以使用位址空间密封密钥来生成机器标识符。位址空间密封密钥可以被实施为在制造时嵌入在安全位址空间支持122中的秘密加密密钥。处理器120可以使用位址空间密封密钥在数据离开处理器120之前对与安全位址空间206相关联的数据进行加密。机器标识符可以被生成为加密散列、签名、派生密钥或从位址空间密封钥匙得到的其它数据。在一些实施例中,可以生成机器标识符作为从服务器设备104接收的位址空间密封密钥和服务器挑战数据项的加密散列。在框310中,客户端计算设备102发送机器标识符和/或用户标识符到服务器设备104。
在框312中,客户端计算设备102监测应用202以获得访问服务器设备104的请求。客户端计算设备102可以使用任何技术来监测访问服务器设备104的请求。例如,应用202可以例如使用网络请求或其他进程间通信信道向安全位址空间206的受信许可证代理208发出请求。作为另一示例,安全位址空间206的受信许可证代理208可以拦截应用202产生的请求。在框314中,客户端计算设备102确定应用202是否已经生成请求。如果不是,则该方法300循环回到框312以继续监测请求。如果已经生成对服务器设备104的请求,则方法300前进到框316。
在框316中,客户端计算设备102的受信许可证代理208与服务器设备104建立安全网络连接。安全网络连接允许在安全位址空间206内执行的受信许可证代理208与远程服务器设备104安全地通信。可以使用任何适当的通信协议或其他技术来建立安全网络连接。例如,可以使用SSL/TLS协议建立安全网络连接。
在框318中,客户端计算设备102利用远程服务器设备104执行安全位址空间206的远程证实。远程证实向服务器设备104证明,受信许可证代理208正在有效的安全位址空间206中执行,以及受信许可证代理208是真实的(即,受信许可证代理208未被篡改)。为了执行远程证实,客户端计算设备102可以执行SGX技术安全位址空间远程证实流程。
在框320中,客户端计算设备102生成安全位址空间206的测量。该测量可以被实施为密码学安全值,其取决于添加到安全位址空间206的存储器页面的内容以及存储器页面被添加到安全位址空间206的顺序。例如,测量可以实施为在安全位址空间206的构建期间生成的安全日志的加密散列。可以使用处理器120的专门的处理器指令来生成测量,例如作为EREPORT指令。测量还可以绑定到客户端计算设备102的硬件。例如,测量可以包括使用与由客户端计算设备102建立的特定安全位址空间相关联的加密密钥(例如,报告密钥)产生的消息认证码(MAC)。在一些实施例中,客户端计算设备102可以使用与客户端计算设备102相关联的特定于设备的私有密钥创建的签名来替换测量的MAC。在生成测量之后,在框322中,客户端计算设备102经由安全网络连接将测量发送到服务器设备104。如下面进一步描述的,服务器设备104可以使用测量来验证安全位址空间206是有效的安全位址空间,并且受信许可证代理208是真实的。
在框324中,客户端计算设备102认证客户端计算设备102的用户。对用户的认证由受信许可证代理208从安全位址空间206内执行。在对用户进行认证之后,客户端计算设备102生成与经认证的用户相关联的用户标识符,例如用户凭证。客户端计算设备102可以使用任何技术来认证用户。在一些实施例中,在框326中,客户端计算设备102可以从客户端计算设备102的操作系统或其他普通软件接收用户认证数据。例如,受信许可证代理208可以接收用户认证凭证或从操作系统提供的交互式登录提示中收集的其他认证因素。在这些实施例中,用户认证过程的安全性取决于由操作系统提供的安全级别。附加地或替代地,在一些实施例中,在框328中,客户端计算设备102可以使用受保护的I/O路径来接收用户认证数据。例如,客户端计算设备102可以从受信输入设备(例如受信PIN垫)接收认证数据。作为另一示例,客户端计算设备102可以使用受保护的音频/视频路径(例如,PAVP)显示加扰的PIN垫,并且基于加扰的PIN垫接收用户输入。在这些实施例中,受保护的I/O路径可以提供超出由操作系统提供的安全性的附加安全性。
在框330中,客户端计算设备102经由安全连接将用户标识符和机器标识符发送到服务器设备104。如上所述,用户标识符基于用户认证的结果。类似地,如上所述,机器标识符唯一地标识客户端计算设备102。在一些实施例中,机器标识符还可以标识安全位址空间206和受信许可证代理208。如下面进一步描述的,服务器设备104可以确定由用户标识符和机器标识符描述的用户和机器的特定组合是否被允许访问由服务器设备104维护的应用222和/或应用数据224。
在框332中,客户端计算设备102从服务器设备104接收指示是否允许对应用222和/或应用数据224的访问的响应。在框334中,客户端计算设备102基于来自服务器设备104的响应来确定访问是否被允许。如果不是,则方法300循环回到框312以继续监测访问服务器设备104的请求。如果访问已经被允许,则方法300前进到框336。在框336中,客户端计算设备102允许应用202使用安全网络连接访问服务器设备104。应用202可以通过由受信许可证代理208建立的安全网络连接向服务器设备104发出请求和从服务器设备104接收数据。在允许访问安全网络连接之后,方法300循环回到框312以继续监测访问服务器设备104的请求。
现在参考图4,在使用中,服务器设备104可以执行用于安全服务器访问的方法400。方法400从框402开始,其中服务器设备104将机器标识符和用户标识符绑定到由客户端计算设备102执行的应用202的许可证。服务器设备104可以将用户标识符和机器标识符的特定组合与应用许可证相关联,例如通过将用户标识符和机器标识符存储在许可证数据228中。如上所述,用户标识符可以实施为标识客户端计算设备102的特定用户的任何用户凭证或其他数据。机器标识符可以被实施为安全且唯一地标识特定客户端计算设备102的任何数据。在一些实施例中,机器标识符还可以标识客户端计算设备102的安全位址空间206和许可证代理208。例如,机器标识符可以从在制造时嵌入在客户端计算设备102的安全位址空间支持122中的位址空间密封密钥导出或以其他方式基于在制造时嵌入在客户端计算设备102的安全位址空间支持122中的位址空间密封密钥。在一些实施例中,服务器设备104可以在服务来自客户端计算设备102的任何请求之前将用户标识符和机器标识符绑定到应用许可证,例如作为供应过程的一部分。另外或替代地,服务器设备104可以与客户端计算设备102进行通信,以将用户标识符和机器标识符绑定到应用许可证。
在一些实施例中,在框404中,服务器设备104可以将服务器挑战数据项发送到客户端计算设备102。挑战数据项可以被实施为任何时间戳、随机数、随机值或服务器设备104所知的其他值,并且可以用于防止重放攻击。可以根据服务器挑战数据项生成机器标识符。例如,机器标识符可以实施为服务器挑战数据项的密码散列和客户端计算设备102的位址空间密封密钥。在一些实施例中,在框406中,服务器设备104可以从客户端计算设备102接收机器标识符和/或用户标识符。另外或替代地,在一些实施例中,可以将服务器设备104配置有或接收来自不同的源(例如企业目录服务器)的机器标识符和/或用户标识符。
在框408中,服务器设备104侦听由客户端计算设备102打开的安全网络连接。在框410中,服务器设备104确定是否已经打开了与客户端计算设备102的安全连接。如果不是,则方法400循环回到框408以继续监测安全连接。如果已经打开了安全连接,方法400前进到框412。
在框412中,服务器设备104执行对客户端计算设备102的远程证实。如上所述,远程证实允许服务器设备104验证客户端计算设备102执行的受信许可证代理208正在有效的安全位址空间206中执行,并且受信许可证代理208是真实的(即,受信许可证代理208未被篡改)。为了执行远程证实,服务器设备104可以执行SGX技术安全位址空间远程证实流程。
在框414中,服务器设备104从客户端计算设备102接收安全位址空间206的测量。如上所述,该测量可被实施为一个安全值,其取决于添加到安全位址空间206的存储器页面的内容以及存储器页面被添加到安全位址空间206的顺序。例如,测量可以实施为在安全位址空间206的构建期间生成的安全日志的密码散列。可以使用客户端计算设备102的处理器120的专用处理器指令,例如EREPORT指令来生成测量。测量还可以绑定到客户端计算设备102的硬件。例如,测量可以包括使用与由客户端计算设备102建立的特定安全位址空间相关联的加密密钥(例如,报告密钥)生成的消息认证码(MAC)。在一些实施例中,客户端计算设备102可以使用与客户端计算设备102相关联的特定于设备的私有密钥创建的签名来替换测量的MAC。在框416中接收到测量之后,服务器设备104基于测量来验证安全位址空间是否完好。例如,服务器设备104可以将测量中包括的消息认证码、签名或其他数据与期望值进行比较。
在框418中,服务器设备104确定客户端计算设备102的安全位址空间206是否被成功验证。如果不是,则方法400循环回到框408以侦听附加的安全连接。在一些实施例中,服务器设备104可以关闭安全连接,向客户端计算设备102发送否定响应,记录错误,或者基于验证安全位址空间206的失败来执行任何其他适当的安全响应。如果安全位址空间206被成功验证,则方法400前进到方框420。
在框420中,服务器设备104从客户端计算设备102接收机器标识符和用户标识符。如上所述,机器标识符唯一地描述特定客户端计算设备102,并且可以绑定到客户端计算设备102的硬件,例如通过从位址空间密封密钥导出。用户标识符描述客户端计算设备102的当前认证的用户,并且可以包括用户认证因素(例如用户凭证)或从用户认证因素(例如用户凭证)导出。
在框422中,服务器设备104基于机器标识符和用户标识符来验证应用许可证。服务器设备104可以确定机器标识符和用户标识符的特定组合是否已被授权访问应用222和/或应用数据224。服务器设备104可以例如使用机器标识符和/或用户标识符来搜索许可证数据228。在框424中,服务器设备104确定应用许可证是否已被验证。如果不是,则方法400循环回到框408以侦听附加的安全连接。在一些实施例中,服务器设备104可以基于验证应用许可证的失败而关闭安全连接,向客户端计算设备102发送否定响应,记录错误,或执行任何其他适当的安全响应。如果应用许可证被成功验证,则方法400前进到框426。
在框426中,服务器设备104允许客户端计算设备102使用安全网络连接访问应用222和/或应用数据224。发送到客户端计算设备102的数据由安全网络连接进行发送保护。客户端计算设备102可以在应用会话的寿命期间使用安全网络连接来继续访问应用222和/或应用数据224。在允许客户端计算设备102访问应用222和/或应用数据224之后,方法400循环回到框408以侦听附加的安全连接。
示例
本文公开的技术的说明性示例在下面提供。技术的一个实施例可以包括以下描述的示例中的任何一个或多个以及任何组合。
示例1包括用于安全服务器访问的计算设备,所述计算设备包括:处理器,其包括安全位址空间支持;许可证代理加载器模块,用于将许可证代理加载到安全位址空间中;应用请求模块,用于由所述许可证代理从所述计算设备的应用接收访问远程服务器的请求;证实模块,由所述许可证代理经由在许可证代理和远程服务器之间的安全连接来执行安全位址空间向远程服务器的远程证实;用户认证模块,用于由所述许可证代理认证所述计算设备的用户;和服务器访问模块,用于(i)响应于对用户的认证,由所述许可证代理将机器标识符和用户标识符经由所述安全连接发送到远程服务器,其中所述机器标识符标识所述计算设备并且所述用户标识符标识所述计算设备的用户;以及(ii)由所述许可证代理响应于对所述机器标识符和用户标识符的认证而允许应用访问与远程服务器的安全连接。
示例2包括示例1的主题,并且其中应用请求模块进一步响应于接收到访问远程服务器的请求而由许可证代理打开与远程服务器的安全连接。
示例3包括示例1和2中任一项的主题,并且其中服务器访问模块进一步由许可证代理响应于机器标识符和用户标识符的发送而接收来自远程服务器的成功响应;其中允许所述应用响应于对所述机器标识符和用户标识符的认证来访问所述安全连接包括响应于对所述成功响应的接收而允许所述应用访问所述安全连接。
示例4包括示例1-3中任一项的主题,并且其中服务器访问模块进一步由许可证代理根据唯一密钥生成机器标识符,其中唯一密钥对安全位址空间和计算设备的组合是唯一的。
示例5包括示例1-4中任一项的主题,其中唯一密钥包括位址空间密封密钥。
示例6包括示例1-5中任一项的主题,并且其中生成机器标识符还包括根据从远程服务器接收的服务器挑战数据项生成机器标识符。
示例7包括示例1-6中任一项的主题,并且其中执行安全位址空间的远程证实包括由许可证代理生成安全位址空间的测量;并由许可证代理将安全位址空间的测量发送到远程服务器。
示例8包括示例1-7中任一项的主题,并且其中生成安全位址空间的测量包括生成指示与安全位址空间相关联的安全日志的测量,其中安全日志指示安全位址空间的内容和安全位址空间的创建顺序。
示例9包括示例1-8中任一个的主题,并且其中认证计算设备的用户包括从用户接收用户凭证。
示例10包括示例1-9中任一项的主题,并且其中从用户接收用户凭证包括使用计算设备的受信I/O路径接收用户凭证。
示例11包括用于安全服务器访问的计算设备,所述计算设备包括将第一机器标识符和第一用户标识符绑定到应用许可证的应用许可证模块,其中所述第一机器标识符标识客户端计算设备和由客户端计算设备的处理器建立的安全位址空间的特定组合,并且所述第一用户标识符标识所述客户端计算设备的特定用户;客户端计算设备模块,用于打开与所述客户端计算设备的安全连接;证实模块,用于经由所述安全连接来执行所述客户端计算设备的安全位址空间的远程证实;以及访问验证模块,用于(i)经由所述安全连接从所述客户端计算设备接收第二机器标识符和第二用户标识符,以及(ii)确定所述第二机器标识符是否匹配所述第一机器标识符以及所述第二用户标识符是否匹配第一用户标识符;其中所述客户端计算设备模块进一步用于响应于(i)所述安全位址空间的远程证实的执行和(ii)所述第二机器标识符与第一机器标识符匹配并且第二用户标识符与第一用户标识符匹配的确定而允许所述客户端计算设备经由所述安全连接访问所述计算设备的数据。
示例12包括示例11的主题,并且其中允许客户端计算设备访问数据包括向客户端计算设备发送成功响应。
示例13包括示例11和12中任一项的主题,并且其中第一机器标识符是根据唯一密钥而生成的,其中唯一密钥对于客户端计算设备和客户端计算设备的所述安全位址空间的组合是唯一的。
示例14包括示例11-13中任一项的主题,并且其中唯一密钥包括位址空间密封密钥。
示例15包括示例11-14中任一项的主题,并且其中将第一机器标识符和第一用户标识符绑定到应用许可证包括从客户端计算设备接收第一机器标识符和第一用户标识符。
示例16包括示例11-15中任一项的主题,并且其中将第一机器标识符和第一用户标识符绑定到应用许可证包括将服务器挑战数据项发送到客户端计算设备,其中,机器标识符进一步指示服务器挑战数据项。
示例17包括示例11-16中任一项的主题,并且其中执行客户端计算设备的安全位址空间的远程证实包括经由安全连接接收安全位址空间的测量;并且基于安全位址空间的测量来验证安全位址空间是完好的。
示例18包括示例11-17中任一项的主题,并且其中安全位址空间的测量指示与安全位址空间相关联的安全日志,其中安全日志指示安全位址空间的内容,以及创建安全位址空间的顺序。
示例19包括用于安全服务器访问的方法,该方法包括由计算设备将许可证代理加载到由计算设备的处理器建立的安全位址空间中;由许可证代理从计算设备的应用接收访问远程服务器的请求;由许可证代理经由在许可证代理和远程服务器之间的安全连接来执行安全位址空间向远程服务器的远程证实;由所述许可证代理认证所述计算设备的用户;响应于对所述用户进行认证,所述许可证代理通过所述安全连接向所述远程服务器发送机器标识符和用户标识符,其中所述机器标识符标识所述计算设备,并且所述用户标识符标识所述计算设备的用户;并且由所述许可证代理响应于认证所述机器标识符和所述用户标识符而允许应用访问与所述远程服务器的安全连接。
示例20包括示例19的主题,并且还包括响应于接收到访问远程服务器的请求而由许可证代理打开与远程服务器的安全连接。
示例21包括示例19和20中任一项的主题,并且还包括由许可证代理响应于发送机器标识符和用户标识符而接收来自远程服务器的成功响应;其中响应于认证机器标识符和用户标识符而允许应用访问安全连接包括响应于接收到成功响应而允许应用访问安全连接。
示例22包括示例19-21中任一项的主题,并且还包括由许可证代理根据唯一密钥生成的机器标识符,其中唯一密钥对于安全位址空间和计算设备的组合是唯一的。
示例23包括示例19-22中任一项的主题,并且其中唯一密钥包括位址空间密封密钥。
示例24包括示例19-23中任一项的主题,并且其中生成机器标识符还包括根据从远程服务器接收的服务器挑战数据项生成机器标识符。
示例25包括示例19-24中任一项的主题,并且其中执行安全位址空间的远程证实包括由许可证代理生成安全位址空间的测量;并且由许可证代理将安全位址空间的测量发送到远程服务器。
示例26包括示例19-25中任一项的主题,并且其中生成安全位址空间的测量包括生成指示与安全位址空间相关联的安全日志的测量,其中安全日志指示安全位址空间的内容和安全位址空间的创建顺序。
示例27包括示例19-26中任一项的主题,并且其中认证计算设备的用户包括从用户接收用户凭证。
示例28包括示例19-27中任一项的主题,并且其中从用户接收用户凭证包括使用计算设备的受信I/O路径来接收用户凭证。
示例29包括用于安全服务器访问的方法,该方法包括:由计算设备将第一机器标识符和第一用户标识符绑定到应用许可证,其中所述第一机器标识符标识客户端计算设备和由客户端计算设备的处理器建立的安全位址空间的特定组合,并且其中所述第一用户标识符标识所述客户端计算设备的特定用户;由所述计算设备打开与所述客户端计算设备的安全连接;由所述计算设备经由所述安全连接执行所述客户端计算设备对所述安全位址空间的远程证实;由所述计算设备经由所述安全连接从所述客户端计算设备接收第二机器标识符和第二用户标识符;由所述计算设备确定所述第二机器标识符是否与所述第一机器标识符匹配以及所述第二用户标识符是否与所述第一用户标识符匹配;并且响应于(i)执行所述安全位址空间的远程证实,以及(ii)确定所述第二机器标识符与所述第一机器标识符匹配并且所述第二用户标识符与所述第一用户标识符匹配,所述计算设备允许所述客户端计算设备经由所述安全连接访问所述计算设备的数据。
示例30包括示例29的主题,并且其中允许客户端计算设备访问数据包括向客户端计算设备发送成功响应。
示例31包括示例29和30中任一项的主题,并且其中第一机器标识符是根据唯一密钥而生成的,其中唯一密钥对于客户端计算设备和客户端计算设备的安全位址空间的组合是唯一的。
示例32包括示例29-31中任一项的主题,并且其中唯一密钥包括位址空间密封密钥。
示例33包括示例29-32中任一项的主题,并且其中将第一机器标识符和第一用户标识符绑定到应用许可证包括从客户端计算设备接收第一机器标识符和第一用户标识符。
示例34包括示例29-33中任一项的主题,并且其中将第一机器标识符和第一用户标识符绑定到应用许可证包括向客户端计算设备发送服务器挑战数据项,其中机器标识符进一步指示服务器挑战数据项。
示例35包括示例29-34中任一项的主题,并且其中执行客户端计算设备的安全位址空间的远程证实包括:经由安全连接接收安全位址空间的测量;并基于安全位址空间的测量来验证安全位址空间是完好的。
示例36包括示例29-35中任一项的主题,其中安全位址空间的测量指示与安全位址空间相关联的安全日志,其中安全日志指示安全位址空间的内容和安全位址空间的创建顺序。
示例37包括计算设备,计算设备包括处理器;以及存储器,存储器中存储有多个指令,当由处理器执行时,使得计算设备执行示例19-36中任一个的方法。
示例38包括一个或多个机器可读存储介质,其包括存储在其上的多个指令,响应于指令执行而使得计算设备执行示例19-36中任一项的方法。
示例39包括计算设备,其包括用于执行示例19-36中任一项的方法的单元。
示例40包括用于安全服务器访问的计算设备,所述计算设备包括:用于将许可证代理加载到由所述计算设备的处理器建立的安全位址空间中的单元;用于由所述许可证代理从所述计算设备的应用接收访问远程服务器的请求的单元;由许可证代理经由许可证代理和远程服务器之间的安全连接来执行安全位址空间向远程服务器的远程证实的单元;用于由所述许可证代理认证所述计算设备的用户的单元;用于响应于认证所述用户而通过所述许可证代理将将机器标识符和用户标识符经由安全连接发送到所述远程服务器的单元,其中所述机器标识符标识所述计算设备,并且所述用户标识符标识所述计算设备的用户;以及用于由许可证代理响应于认证机器标识符和用户标识符而允许应用而访问与远程服务器的安全连接的单元。
示例41包括示例40的主题,并且还包括用于响应于接收到访问远程服务器的请求而由许可证代理打开与远程服务器的安全连接的单元。
示例42包括示例40和41中任一项的主题,并且还包括用于响应于发送机器标识符和用户标识符而由许可证代理从远程服务器接收成功响应的单元;其中用于响应于认证机器标识符和用户标识符而允许应用访问安全连接的单元包括用于响应于成功响应而允许应用访问安全连接的单元。
示例43包括示例40-42中任一项的主题,并且还包括用于由许可证代理根据唯一密钥生成机器标识符的单元,其中唯一密钥对于安全位址空间和计算设备的组合是唯一的。
示例44包括示例40-43中任一项的主题,并且其中唯一密钥包括位址空间密封密钥。
示例45包括示例40-44中任一项的主题,并且其中用于生成机器标识符的单元还包括用于根据从远程服务器接收的服务器挑战数据项生成机器标识符的单元。
示例46包括示例40-45中任一项的主题,并且其中用于执行安全位址空间的远程证实的单元包括用于由许可证代理生成安全位址空间的测量的单元;以及用于由许可证代理将安全位址空间的测量发送到远程服务器的单元。
示例47包括示例40-46中任一项的主题,并且其中用于生成安全位址空间的测量的单元包括用于生成指示与安全位址空间相关联的安全日志的测量的单元,其中安全日志表示安全位址空间的内容和安全位址空间的创建顺序。
示例48包括示例40-47中任一项的主题,并且其中用于认证计算设备的用户的单元包括用于从用户接收用户凭证的单元。
示例49包括示例40-48中任一项的主题,并且其中用于从用户接收用户凭证的单元包括用于使用计算设备的受信I/O路径接收用户凭证的单元。
示例50包括用于安全服务器访问的计算设备,所述计算设备包括:用于将第一机器标识符和第一用户标识符绑定到应用许可证的单元,其中所述第一机器标识符标识客户端计算设备和由所述客户端计算设备的处理器建立的安全位址空间的特定组合,并且其中所述第一用户标识符标识所述客户端计算设备的特定用户;用于打开与所述客户端计算设备的安全连接的单元;用于经由所述安全连接来执行所述客户端计算设备的安全位址空间的远程证实的单元;用于经由所述安全连接从所述客户端计算设备接收第二机器标识符和第二用户标识符的单元;用于确定所述第二机器标识符是否与所述第一机器标识符匹配以及所述第二用户标识符是否与所述第一用户标识符匹配的单元;以及用于响应于(i)执行所述安全位址空间的远程证实,以及(ii)确定第二机器标识符与第一机器标识符匹配以及第二用户标识符与第一用户标识符匹配而允许客户端计算设备经由安全连接访问计算设备的数据的单元。
示例51包括示例50的主题,并且其中用于允许客户端计算设备访问数据的单元包括用于向客户端计算设备发送成功响应的单元。
示例52包括示例50和51中任一个的主题,并且其中第一机器标识符是根据唯一密钥生成的,其中唯一密钥对于客户端计算设备和客户端计算设备的安全位址空间的组合是唯一的。
示例53包括示例50-52中任一项的主题,并且其中唯一密钥包括位址空间密封密钥。
示例54包括示例50-53中任一个的主题,并且其中用于将第一机器标识符和第一用户标识符绑定到应用许可证的单元包括用于从客户端计算设备接收第一机器标识符和第一用户标识符的单元。
示例55包括示例50-54中任一项的主题,并且其中用于将第一机器标识符和第一用户标识符绑定到应用许可证的单元包括用于将服务器挑战数据项发送到客户端计算设备的单元,其中所述机器标识符进一步指示服务器挑战数据项。
示例56包括示例50-55中任一项的主题,并且其中用于执行客户端计算设备的安全位址空间的远程证实的单元包括用于经由安全连接接收安全位址空间的测量的单元;以及用于基于安全位址空间的测量来验证安全位址空间是完好的单元。
示例57包括示例50-56中任一项的主题,其中安全位址空间的测量指示与安全位址空间相关联的安全日志,其中安全日志指示安全位址空间的内容和安全位址空间的创建顺序。

Claims (25)

1.一种用于安全服务器访问的计算设备,所述计算设备包括:
处理器,其包括安全位址空间支持;
许可证代理加载器模块,用于将许可证代理加载到安全位址空间中;
应用请求模块,用于由所述许可证代理从所述计算设备的应用接收访问远程服务器的请求;
证实模块,由所述许可证代理经由在所述许可证代理和所述远程服务器之间的安全连接来执行所述安全位址空间向所述远程服务器的远程证实;
用户认证模块,用于由所述许可证代理认证所述计算设备的用户;以及
服务器访问模块,用于(i)由所述许可证代理响应于对所述用户的认证而将机器标识符和用户标识符经由所述安全连接发送到所述远程服务器,其中所述机器标识符标识所述计算设备,并且所述用户标识符标识所述计算设备的所述用户;以及(ii)由所述许可证代理响应于对所述机器标识符和所述用户标识符的认证而允许所述应用访问与所述远程服务器的所述安全连接。
2.根据权利要求1所述的计算设备,其中:
所述服务器访问模块进一步用于由所述许可证代理响应于对所述机器标识符和所述用户标识符的发送而从所述远程服务器接收成功响应;
其中,响应于对所述机器标识符和所述用户标识符的认证而允许所述应用访问所述安全连接包括:响应于对所述成功响应的接收而允许所述应用访问所述安全连接。
3.根据权利要求1所述的计算设备,其中,所述服务器访问模块进一步用于由所述许可证代理根据唯一密钥生成所述机器标识符,其中,所述唯一密钥包括对于所述安全位址空间和所述计算设备的组合是唯一的位址空间密封密钥。
4.根据权利要求3所述的计算设备,其中,生成所述机器标识符还包括根据从所述远程服务器接收的服务器挑战数据项来生成所述机器标识符。
5.根据权利要求1-4中任一项所述的计算设备,其中,执行所述安全位址空间的远程证实包括:
由所述许可证代理生成所述安全位址空间的测量,其中,所述测量指示与所述安全位址空间相关联的安全日志,其中,所述安全日志指示所述安全位址空间的内容和所述安全位址空间的创建顺序;以及
由所述许可证代理将所述安全位址空间的所述测量发送到所述远程服务器。
6.根据权利要求1-4中任一项所述的计算设备,其中,认证所述计算设备的所述用户包括使用所述计算设备的受信I/O路径从所述用户接收用户凭证。
7.一种用于安全服务器访问的计算设备,所述计算设备包括:
应用许可证模块,用于将第一机器标识符和第一用户标识符绑定到应用许可证,其中所述第一机器标识符标识客户端计算设备和由所述客户端计算设备的处理器建立的安全位址空间的特定组合,并且所述第一用户标识符标识所述客户端计算设备的特定用户;
客户端计算设备模块,用于打开与所述客户端计算设备的安全连接;
证实模块,用于经由所述安全连接来执行所述客户端计算设备的所述安全位址空间的远程证实;以及
访问验证模块,用于(i)经由所述安全连接从所述客户端计算设备接收第二机器标识符和第二用户标识符,以及(ii)确定所述第二机器标识符是否与所述第一机器标识符匹配,以及所述第二用户标识符是否与所述第一用户标识符匹配;
其中所述客户端计算设备模块进一步用于响应于(i)所述安全位址空间的远程证实的执行以及(ii)所述第二机器标识符与所述第一机器标识符匹配以及所述第二用户标识符与所述第一用户标识符匹配的确定,而允许所述客户端计算设备经由所述安全连接访问所述计算设备的数据。
8.根据权利要求7所述的计算设备,其中,允许所述客户端计算设备访问所述数据包括向所述客户端计算设备发送成功响应。
9.根据权利要求7所述的计算设备,其中,所述第一机器标识符是根据唯一密钥而生成的,其中所述唯一密钥包括对于所述客户端计算设备和所述客户端计算设备的所述安全位址空间的组合是唯一的位址空间密封密钥。
10.根据权利要求7所述的计算设备,其中,将所述第一机器标识符和所述第一用户标识符绑定到所述应用许可证包括从所述客户端计算设备接收所述第一机器标识符和所述第一用户标识符。
11.根据权利要求7所述的计算设备,其中,将所述第一机器标识符和所述第一用户标识符绑定到所述应用许可证包括将服务器挑战数据项发送到所述客户端计算设备,其中所述机器标识符进一步指示所述服务器挑战数据项。
12.根据权利要求7-11中任一项所述的计算设备,其中,执行所述客户端计算设备的所述安全位址空间的远程证实包括:
经由所述安全连接接收所述安全位址空间的测量,所述测量指示与所述安全位址空间相关联的安全日志,其中,所述安全日志指示所述安全位址空间的内容和所述安全位址空间的创建顺序;并且
基于所述安全位址空间的测量来验证所述安全位址空间是完好的。
13.一种用于安全服务器访问的方法,所述方法包括:
由计算设备将许可证代理加载到由所述计算设备的处理器建立的安全位址空间中;
由所述许可证代理从所述计算设备的应用接收访问远程服务器的请求;
由所述许可证代理经由在所述许可证代理和所述远程服务器之间的安全连接来执行所述安全位址空间向所述远程服务器的远程证实;
由所述许可证代理认证所述计算设备的用户;
由所述许可证代理响应于对所述用户进行认证而将机器标识符和用户标识符经由所述安全连接发送到所述远程服务器,其中所述机器标识符标识所述计算设备,并且所述用户标识符标识所述计算设备的所述用户;以及
由所述许可证代理响应于对所述机器标识符和所述用户标识符的认证而允许所述应用访问与所述远程服务器的所述安全连接。
14.根据权利要求13所述的方法,还包括由所述许可证代理根据唯一密钥生成所述机器标识符,其中,所述唯一密钥包括对于所述安全位址空间和所述计算设备的组合是唯一的位址空间密封密钥。
15.根据权利要求14所述的方法,其中,生成所述机器标识符还包括根据从所述远程服务器接收的服务器挑战数据项来生成所述机器标识符。
16.根据权利要求13所述的方法,其中,执行所述安全位址空间的远程证实包括:
由所述许可证代理生成所述安全位址空间的测量,所述测量指示与所述安全位址空间相关联的安全日志,其中,所述安全日志指示所述安全位址空间的内容和所述安全位址空间的创建顺序;以及
由所述许可证代理将所述安全位址空间的所述测量发送到所述远程服务器。
17.根据权利要求13所述的方法,其中,认证所述计算设备的用户包括使用所述计算设备的受信I/O路径从所述用户接收用户凭证。
18.一种用于安全服务器访问的方法,所述方法包括:
由计算设备将第一机器标识符和第一用户标识符绑定到应用许可证,其中所述第一机器标识符标识客户端计算设备和由所述客户端计算设备的处理器建立的安全位址空间的特定组合,并且其中所述第一用户标识符标识所述客户端计算设备的特定用户;
由所述计算设备打开与所述客户端计算设备的安全连接;
由所述计算设备经由所述安全连接来执行所述客户端计算设备的所述安全位址空间的远程证实;
由所述计算设备经由所述安全连接从所述客户端计算设备接收第二机器标识符和第二用户标识符;
由所述计算设备确定所述第二机器标识符是否与所述第一机器标识符匹配以及所述第二用户标识符是否与所述第一用户标识符匹配;以及
响应于(i)执行所述安全位址空间的远程证实,以及(ii)确定所述第二机器标识符与所述第一机器标识符匹配并且所述第二用户标识符与所述第一用户标识符匹配,所述计算设备允许所述客户端计算设备经由所述安全连接访问所述计算设备的数据。
19.根据权利要求18所述的方法,其中,所述第一机器标识符是根据唯一密钥而生成的,其中所述唯一密钥包括对于所述客户端计算设备和所述客户端计算设备的所述安全位址空间的组合是唯一的位址空间密封密钥。
20.根据权利要求18所述的方法,其中,将所述第一机器标识符和所述第一用户标识符绑定到所述应用许可证包括从所述客户端计算设备接收所述第一机器标识符和所述第一用户标识符。
21.根据权利要求18所述的方法,其中,将所述第一机器标识符和所述第一用户标识符绑定到所述应用许可证包括将服务器挑战数据项发送到所述客户端计算设备,其中所述机器标识符进一步指示所述服务器挑战数据项。
22.根据权利要求18所述的方法,其中,执行所述客户端计算设备的所述安全位址空间的远程证实包括:
经由所述安全连接接收所述安全位址空间的测量,所述测量指示与所述安全位址空间相关联的安全日志,其中,所述安全日志指示所述安全位址空间的内容和所述安全位址空间的创建顺序;并且
基于所述安全位址空间的测量来验证所述安全位址空间是完好的。
23.一种计算设备,包括:
处理器;和
存储器,具有存储在其上的多个指令,所述指令当由所述处理器执行时使所述计算设备执行根据权利要求13-22中任一项所述的方法。
24.一种或多种机器可读存储介质,包括存储在其上的多个指令,所述指令响应于被执行而导致计算设备执行根据权利要求13-22中任一项所述的方法。
25.一种计算设备,包括用于执行根据权利要求13-22中任一项所述的方法的模块。
CN201680012399.2A 2015-03-27 2016-02-26 使用受信许可证代理进行安全服务器访问的技术 Active CN107409128B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/670,959 US9749323B2 (en) 2015-03-27 2015-03-27 Technologies for secure server access using a trusted license agent
US14/670,959 2015-03-27
PCT/US2016/019791 WO2016160209A1 (en) 2015-03-27 2016-02-26 Technologies for secure server access using a trusted license agent

Publications (2)

Publication Number Publication Date
CN107409128A true CN107409128A (zh) 2017-11-28
CN107409128B CN107409128B (zh) 2020-12-04

Family

ID=56974458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680012399.2A Active CN107409128B (zh) 2015-03-27 2016-02-26 使用受信许可证代理进行安全服务器访问的技术

Country Status (4)

Country Link
US (2) US9749323B2 (zh)
EP (1) EP3275159B1 (zh)
CN (1) CN107409128B (zh)
WO (1) WO2016160209A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749323B2 (en) * 2015-03-27 2017-08-29 Intel Corporation Technologies for secure server access using a trusted license agent
CN105187282B (zh) * 2015-08-13 2018-10-26 小米科技有限责任公司 智能家居设备的控制方法、装置、系统及设备
US9578054B1 (en) * 2015-08-31 2017-02-21 Newman H-R Computer Design, LLC Hacking-resistant computer design
CN106960148B (zh) * 2016-01-12 2021-05-14 阿里巴巴集团控股有限公司 一种设备标识的分配方法和装置
US11290425B2 (en) * 2016-02-01 2022-03-29 Airwatch Llc Configuring network security based on device management characteristics
US10338957B2 (en) * 2016-12-27 2019-07-02 Intel Corporation Provisioning keys for virtual machine secure enclaves
US10911451B2 (en) 2017-01-24 2021-02-02 Microsoft Technology Licensing, Llc Cross-platform enclave data sealing
US10530777B2 (en) * 2017-01-24 2020-01-07 Microsoft Technology Licensing, Llc Data unsealing with a sealing enclave
US10749690B2 (en) 2017-03-10 2020-08-18 Samsung Electronics Co., Ltd. System and method for certificate authority for certifying accessors
US10726120B2 (en) * 2017-03-31 2020-07-28 Intel Corporation System, apparatus and method for providing locality assertion between a security processor and an enclave
US10798103B2 (en) 2017-11-21 2020-10-06 VWware, Inc. Adaptive device enrollment
US10986078B2 (en) * 2017-11-21 2021-04-20 Vmware, Inc. Adaptive device enrollment
US10972468B2 (en) 2017-11-21 2021-04-06 Vmware, Inc. Adaptive device enrollment
US10749870B2 (en) 2017-11-21 2020-08-18 Vmware, Inc. Adaptive device enrollment
KR102537788B1 (ko) 2018-11-28 2023-05-30 삼성전자주식회사 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법
ES2870823T3 (es) * 2019-04-19 2021-10-27 Advanced New Technologies Co Ltd Métodos y dispositivos para ejecutar aplicaciones confiables en un procesador que admite entornos de ejecución protegidos
US20230177171A1 (en) * 2021-12-03 2023-06-08 Paypal, Inc. Implementing a cryptography agent and a secure hardware-based enclave to prevent computer hacking of client applications
US11736461B1 (en) * 2022-12-29 2023-08-22 Garantir LLC Sharing secrets over one or more computer networks using proxies

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080086777A1 (en) * 2006-10-06 2008-04-10 Macrovision Corporation Computer-implemented method and system for binding digital rights management information to a software application
CN101183417A (zh) * 2006-11-16 2008-05-21 达诺媒体有限公司 用于协作内容分发和生成的系统和方法
US20110142510A1 (en) * 2008-08-06 2011-06-16 Kabushiki Kaisha Toshiba Fixing device
US20120166795A1 (en) * 2010-12-24 2012-06-28 Wood Matthew D Secure application attestation using dynamic measurement kernels
CN103037312A (zh) * 2011-10-08 2013-04-10 阿里巴巴集团控股有限公司 消息推送方法及装置
US8601550B2 (en) * 2004-06-24 2013-12-03 Aventail Llc Remote access to resources over a network
US20160251816A1 (en) * 2015-02-26 2016-09-01 Zhen Li Subsea System for the Installation, Suspension and Removal of Production and Processing Equipment
US20170237501A1 (en) * 2015-11-02 2017-08-17 Zte Usa (Tx) System and methods for high symbol-rate optical nyquist signal generation with roll-off factor approaching zero

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2403108A (en) * 2003-06-20 2004-12-22 Sharp Kk Remote access via a holding area
GB0520836D0 (en) * 2005-10-13 2005-11-23 Scansafe Ltd Remote access to resources
WO2009050583A2 (en) * 2007-08-29 2009-04-23 Youtility Software, Inc. Secure network interactions using desktop agent
JP5904616B2 (ja) * 2011-12-16 2016-04-13 インテル・コーポレーション リモートサーバーに対するセキュアなユーザ認証および証明
US9887983B2 (en) * 2013-10-29 2018-02-06 Nok Nok Labs, Inc. Apparatus and method for implementing composite authenticators
WO2014196966A1 (en) * 2013-06-04 2014-12-11 Intel Corporation Technologies for hardening the security of digital information on client platforms
US9276750B2 (en) * 2013-07-23 2016-03-01 Intel Corporation Secure processing environment measurement and attestation
US9698989B2 (en) * 2013-07-23 2017-07-04 Intel Corporation Feature licensing in a secure processing environment
US9860187B2 (en) * 2014-02-28 2018-01-02 Mobile Iron, Inc. Enrolling a mobile device with an enterprise mobile device management environment
US9621547B2 (en) * 2014-12-22 2017-04-11 Mcafee, Inc. Trust establishment between a trusted execution environment and peripheral devices
US9749323B2 (en) * 2015-03-27 2017-08-29 Intel Corporation Technologies for secure server access using a trusted license agent

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601550B2 (en) * 2004-06-24 2013-12-03 Aventail Llc Remote access to resources over a network
US20080086777A1 (en) * 2006-10-06 2008-04-10 Macrovision Corporation Computer-implemented method and system for binding digital rights management information to a software application
CN101183417A (zh) * 2006-11-16 2008-05-21 达诺媒体有限公司 用于协作内容分发和生成的系统和方法
US20110142510A1 (en) * 2008-08-06 2011-06-16 Kabushiki Kaisha Toshiba Fixing device
US20120166795A1 (en) * 2010-12-24 2012-06-28 Wood Matthew D Secure application attestation using dynamic measurement kernels
CN103270519A (zh) * 2010-12-24 2013-08-28 英特尔公司 使用动态量度内核的安全应用证明
CN103037312A (zh) * 2011-10-08 2013-04-10 阿里巴巴集团控股有限公司 消息推送方法及装置
US20160251816A1 (en) * 2015-02-26 2016-09-01 Zhen Li Subsea System for the Installation, Suspension and Removal of Production and Processing Equipment
US20170237501A1 (en) * 2015-11-02 2017-08-17 Zte Usa (Tx) System and methods for high symbol-rate optical nyquist signal generation with roll-off factor approaching zero

Also Published As

Publication number Publication date
US9749323B2 (en) 2017-08-29
WO2016160209A1 (en) 2016-10-06
US20160285875A1 (en) 2016-09-29
US10135828B2 (en) 2018-11-20
EP3275159B1 (en) 2020-07-29
EP3275159A4 (en) 2018-10-31
US20180041513A1 (en) 2018-02-08
EP3275159A1 (en) 2018-01-31
CN107409128B (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
CN107409128A (zh) 使用受信许可证代理进行安全服务器访问的技术
US10958437B2 (en) Object signing within a cloud-based architecture
US9325708B2 (en) Secure access to data in a device
CN103747036B (zh) 一种桌面虚拟化环境下的可信安全增强方法
CN105164633B (zh) 由可信提供商进行的配置和验证
CN101682628A (zh) 安全通信
CN105072125B (zh) 一种http通信系统及方法
CN112671779B (zh) 基于DoH服务器的域名查询方法、装置、设备及介质
JP2013516685A (ja) コンピューターポリシーを施行するためのシステムおよび方法
CN102355467B (zh) 基于信任链传递的输变电设备状态监测系统安全防护方法
Jeong et al. An efficient authentication system of smart device using multi factors in mobile cloud service architecture
CN111538977B (zh) 云api密钥的管理、云平台的访问方法、装置及服务器
CN102833745B (zh) 一种软件安全升级的方法、通信设备和通信系统
CN114128212A (zh) 用于认证到设备的安全凭证传输的方法和系统
CN105872848A (zh) 一种适用于非对称资源环境的可信双向认证方法
CN111431840A (zh) 安全处理方法和装置
CN117063174A (zh) 用于通过基于app的身份的app间相互信任的安全模块及方法
CN104144054A (zh) 基于服务器的登录系统、登录服务器及其验证方法
CN115146284A (zh) 数据处理方法、装置、电子设备和存储介质
TWI472189B (zh) 網路監控系統及管理金鑰的方法
EP2479696A1 (en) Data security
Huang et al. Research on Linux trusted boot method based on reverse integrity verification
KR102086739B1 (ko) 보안 소켓 계층 복호화 장치에서 다양한 전자 서명 알고리즘을 지원하기 위한 전자 재서명 방법
KR20180113292A (ko) 외부 저장 장치에 저장되는 파일을 보안하는 보안 브로커 시스템 및 그 방법
CN117478422A (zh) 基于解耦状态下免密登录的接口数据获取方法及系统

Legal Events

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