CN105683982B - 用于将通信信任链延伸到客户机应用的技术 - Google Patents

用于将通信信任链延伸到客户机应用的技术 Download PDF

Info

Publication number
CN105683982B
CN105683982B CN201380080501.9A CN201380080501A CN105683982B CN 105683982 B CN105683982 B CN 105683982B CN 201380080501 A CN201380080501 A CN 201380080501A CN 105683982 B CN105683982 B CN 105683982B
Authority
CN
China
Prior art keywords
application routine
hash
server
voucher
routine
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
CN201380080501.9A
Other languages
English (en)
Other versions
CN105683982A (zh
Inventor
A·沙立维
J·沃克
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 CN105683982A publication Critical patent/CN105683982A/zh
Application granted granted Critical
Publication of CN105683982B publication Critical patent/CN105683982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

各实施例总体上涉及用于在两个计算设备之间形成安全通信的技术,其中,那些通信的信任链被延伸到由这两个计算设备中的一个计算设备执行的特定的应用例程。一种装置包括:处理器组件;验证组件,用于:验证从服务器接收到链路认证凭证以验证服务器形成安全流水线的能力;以及用信号向应用例程通知由验证组件进行的验证的结果的指示;以及散列组件,用于:生成与应用例程相关联的返回签名的返回散列,从而向服务器指示应用例程也已经验证链路认证凭证以便在服务器与应用例程之间形成安全流水线。描述了其他实施例并要求保护这些实施例。

Description

用于将通信信任链延伸到客户机应用的技术
技术领域
本文中描述的实施例总体上涉及将服务器与客户机设备之间的通信中的信任链延伸到客户机设备的客户机应用。
背景技术
已经变得常见的是采用各种安全协议和认证方案中的任一种来使两个设备中的每一个设备都能够评估另一个的可信度且随后在它们之间形成并维护安全的通信“流水线”或“信道”以便甚至通过可公共访问的网络(例如,互联网)来安全地交换数据。此类方法频繁地用于金融交易、在线购物、流式音频/视觉程序等中。
寻求由此类方法寻求解决的关键担忧是防止所谓的“中间人”场景出现,在这种场景中,另一计算设备可以捕捉命令和/或数据和/或将命令和/或数据注入到此类通信中,或者可以甚至插入到此类通信中以便选择性地中继和/或更改此类通信。换言之,此类方式的主要目标在于,在寻求参与安全通信的两个设备之间直接形成信任链,以便在它们之间形成安全的流水线或信道。
遗憾的是,允许两个设备之间的此类安全通信的此类信任链的成功形成无助于解决对这两个设备中的一个或另一个设备内的关于安全漏洞的担忧。在复杂的设备中,可能存在旨在与其发生安全通信的特定的应用例程,但是可能存在众多方式,通过这些方式,另一例程可内插在那个特定的应用与那个设备通过其参与同另一设备之间的安全通信的接口之间。也存在以下可能性:旨在与其发生安全通信的应用可能实际上不在参与那个安全通信的这两个设备中的一个设备上执行,而是实际上可以在通过不安全的通信而与这两个设备中的一个设备通信的第三个设备上执行。
附图说明
图1示出安全通信系统的实施例。
图2示出安全通信系统的替代实施例。
图3示出交换安全凭证的实施例。
图4至图6各自示出安全通信系统的实施例的部分。
图7至图9各自示出根据实施例的逻辑流。
图10示出根据实施例的处理架构。
具体实施方式
各个实施例总体上涉及用于在两个计算设备之间形成安全通信的技术,其中,那些通信的信任链被延伸到由这两个计算设备中的一个计算设备执行的特定的应用例程。更具体而言,在两个计算设备之间形成安全通信,随后在这些计算设备中的一个计算设备内将此安全通信延伸到特定的应用例程,以便确保安全通信不由那个计算设备内的另一例程干扰,并且确保在那个计算设备内而不是在另一计算设备内执行此特定的应用。
形成此类安全通信以在安全通信系统的两个计算设备之间形成单向的安全流水线或信道开始。当在这两个计算设备之间形成之后,随后使此单向的安全流水线进一步延伸到这些计算设备中的一个中,并且延伸到在那个计算设备内执行的特定的应用例程。现在经延伸的单向的安全流水线随后被制成为双向的安全流水线,由此在较低的链路或流水线层级上、在这些端点中的一个端点处、与那个应用例程建立双向的安全通信。这之后是在较高的应用层级上、通过那个双向的安全流水线来验证双向的安全通信的建立。
可使用用于建立此类流水线的各种已知的协议中的任何协议来执行在这两个计算设备之间形成此初始的单向安全流水线,其中,存在对某种形式的安全凭证的交换,包括但不限于,传输层安全(TLS)。在这两个计算设备中的一个计算设备内提供安全处理环境的形式,并且这个安全处理环境充当这个初始的单向安全流水线的端点中的一个端点。正是这一个计算设备的这个安全处理环境从另一个计算设备接收到安全凭证。
在那个安全处理环境内执行应用例程,以便提供某种程度的保护而免受也在相同的计算设备内执行的其他例程对此应用例程的执行的干扰。提供给此安全处理环境的相同安全凭证也被提供给此应用例程,以便允许此应用例程独立地验证此凭证。由此应用例程对那个安全凭证的成功的验证有效地将那个单向的安全流水线延伸到此应用例程。
响应于由此应用例程进行的此类验证,在此安全处理环境内、从以下各项中的一项或多项中生成签名:由此应用例程接收到的凭证;表示此应用例程的执行上下文的方面的数据(例如,此应用例程本身的部分或部分的散列);以及此安全处理环境的安全凭证(例如,密钥等)。随后计算那个签名的散列,并且将那个散列提供给另一个计算设备。此散列被认为是对另一个计算设备的、稍后将实际的签名发送给所述另一个计算设备的“承诺”。
尽管另一个计算设备可能不拥有可以用于分析此散列的安全凭证,但是接收到此散列足以触发所述另一个计算设备使用与较早时用于形成原始的单向安全流水线的的安全凭证相同的安全凭证来对此散列签名。此散列以其原始的未签名额形式被存储在所述另一个计算设备内,并且将经签名的散列往回提供给应用例程。如果此经签名的散列能够被验证,则将此类验证视为以下证据:与其形成安全流水线的另一个计算设备是在应用层级上在那个安全流水线的另一端处的计算设备的相同的计算设备。
响应于此类验证,从其推导出原始的未签名的散列的较早时生成的签名随后被提供给所述另一个计算设备,以便向所述另一个计算设备证明将安全流水线延伸至其的应用例程是与在应用层级上在那个安全流水线的另一端处的应用例程相同的应用例程。对这个签名的供应可以被认为对较早时的“承诺”的“履行”以便将较早时生成的签名提供给所述另一计算设备。
随后,所述另一计算设备独立地推导出那个签名的散列,并且将那个散列与它稍早时接收的原始的未签名的散列进行比较。如果这两个散列匹配,则已经在较低的流水线层级以及应用层级这两个层级上、在所述另一个计算设备与此应用例程之间建立了安全通信。如果此签名也是从此安全处理环境的安全凭证中生成的,则可以进一步由所述另一个计算设备以验证此安全处理环境的此安全凭证的方式验证,以便证明在那个安全处理环境内执行此应用例程。
对于本文中使用的注释和命名法总体上而言,可以根据在计算机或计算机网络上执行的程序流程来呈现下文中的具体实施方式的多个部分。由本领域技术人员使用这些流程描述和表示以便最有效地将他们的工作的实质传达给本领域的其他技术人员。流程在此通常被认为是导致所期望的结果的自洽的操作序列。这些操作是要求对物理量的物理操纵的那些步骤。通常而非必需地,这些量采取能够被存储、传输、组合、比较以及以其他方式操纵的电信号、磁信号或光信号的形式。主要出于常见用途的原因,时不时地将这些信号称为位、值、元素、符号、字符、项、数字等被证明是方便的。然而,应当注意的是,所有这些和类似的项旨在与适当的物理量相关联,并且仅是适用于那些量的方便的标签。
此外,经常以术语(诸如,相加或比较)来提及这些操纵,这些术语通常与由人类操作员执行的手动操作相关联。然而,在本文中描述的形成一个或多个实施例的部分的操作中的任何一个操作中,,在任何情况下,没有人类操作员的此类能力是必需的或期望的。相反,这些操作是机器操作。对用于执行各实施例的操作有用的机器包括通用数字计算机和/或包括为所需的目的专门构建的装置,所述通用数字计算机由存储在其中的计算机程序选择性地激活或配置,所述计算机程序根据本文中描述的教导而编写。各实施例还涉及用于执行这些操作的装置或系统。这些装置可以专门为所需的目的构建,或者可以包括通用计算机。通过给定的描述,各种各样的这些机器的所需结构将是明显的。
现在参照附图,在附图中,贯穿本申请,相同的参考号用于指代相同的元件。在以下描述中,为了解释的目的,陈述了许多特定的细节以便提供对描述的透彻的理解。然而,可能明显的是,可以在没有这些特定细节的情况下来实现新颖的实施例。在其他实例中,以框图的形式示出公知的结构和设备,以便便于对其的描述。意图在于将所有的修改、等效方案和替代方案都涵盖在权利要求书的范围内。
图1是安全通信系统1000的实施例的框图,安全通信系统1000合并了链路凭证服务器100、环境凭证服务器300、服务器500和客户机设备700中的一个或多个。这些计算设备100、300、500和700各自都可以是各种类型的计算设备中的任一种,包括但不限于,台式计算机、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持式个人数字助理、智能电话、数码相机、并入到衣服中的身体穿戴计算设备、集成到车辆(例如,汽车、自行车、轮椅等)中的计算设备、服务器、服务器集群、服务器群,等等。
如图所描绘,这些计算设备100、300、500和700中的一个或多个交换与在计算设备500与700之间建立安全通信相关联的信号。然而,这些计算设备中的一个或多个可以交换经由网络999、与彼此和/或与其他计算设备(未示出)之间的安全通信完全不相关的其他数据。在各实施例中,网络999可以是可能仅限于在单个建筑物或其他相对受限的区域内延伸的单个网络、可能延伸相当的距离的多个经连接的网络的组合,和/或可以包括互联网。因此,网络999可以基于可以通过其交换信号的各种通信技术(或其组合)中的任一种,这些通信技术包括但不限于,采用电气和/或光学导电线缆的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
为了准备在服务器500与客户机设备700之间建立安全通信,由凭证服务器100将凭证数据(未专门示出)提供给这两者,所述凭证服务器100由发布供用于在设备之间形成安全流水线的凭证的证书机构操作。取决于用于在服务器500与客户机设备700之间形成安全流水线的特定协议,可由链路凭证服务器100将各种类型的凭证中的任一种提供给这些计算设备中的每一个计算设备。作为示例,服务器500可以提供有私钥,而客户机设备700可以提供有匹配公钥,此匹配公钥使客户机设备700能够验证凭证,此凭证是作为建立与服务器500之间的至少单向的安全流水线以准备好接收由服务器500提供的一些服务的部分而由此服务器500提供给客户机设备700的。
同样为了准备在应用层级上在服务器500与客户机设备700之间建立安全通信的工作,由环境凭证服务器将凭证数据(未专门示出)提供给这两者,环境凭证服务器300由发布用于验证客户机设备中安全处理环境的存在的凭证的证书机构操作。取决于用于验证客户机设备700提供可在其中安全地存储数据并且可在其中安全地执行应用例程的安全处理环境的特定的协议,可由环境凭证服务器300将各种类型的凭证中的任一种提供给这些计算设备中的每一个计算设备。作为示例,客户机设备700的安全处理环境可以提供有私钥,而服务器500可以提供有匹配公钥,此匹配公钥使服务器500能够验证凭证,此凭证是作为认证客户机设备700未提供此类安全处理环境的部分而由客户机设备700提供给服务器500的。
应当注意,向计算设备500和700供应此类凭证数据可以经由网络999和/或通过完全不同的机制。作为示例,可以在制造这些计算设备时和/或在制造至少其组件(例如,其芯片组和/或固件)中的一个或多个时,将此类凭证数据的至少子集提供给这些计算设备中的一个或两个。作为另一个示例,可以在制造时将初始的凭证数据(例如,私钥或其他安全凭证)提供给这些计算设备中的一个或两个,以便稍后在通过稍后联系链路凭证服务器100和/或环境凭证服务器300来获取安全凭证的至少子集时使用。此类稍后的联系可以经由网络999。
在各实施例中,服务器500合并了处理器组件550、存储设备560和接口590中的一个或多个,接口590用于将服务器500耦合到网络999。存储设备560存储以下各项中的一项或多项:控制例程540、链路认证凭证531、环境验证凭证335、返回散列735、经签名的散列537、返回签名734以及返回散列535。
在各实施例中,客户机设备700合并了处理器组件750、存储设备760、控制器800和接口790中的一个或多个,接口790用于将客户机设备器700耦合到网络999。存储设备760存储以下各项中的一项或多项:控制例程740、链路认证凭证531、链路验证凭证137、应用例程770、返回散列770、经签名的散列537和返回签名734。控制器800合并了处理器组件850和存储设备860中的一个或多个。存储设备860存储以下各项中的一项或多项:控制例程840、链路认证凭证531、链路验证凭证137、环境认证凭证733、返回散列735和返回签名734。
控制例程540和740以及应用例程770各自都合并了指令序列,这些指令序列在角色为计算设备500和700中的相应的计算设备的主处理器组件的处理器组件550和750中的对应的处理器组件上是可操作的以实现用于执行各种功能的逻辑。控制例程840合并了指令序列,此指令序列在角色为计算设备700的控制器800的控制器处理器组件的处理器组件850上是可操作的以实现用于执行各种功能的逻辑。
服务器500可以是经由网络999可用于通过安全通信而将各种服务中的任一种提供给其他计算设备(例如,客户机设备,诸如,客户机设备700)的计算设备。因此,控制例程540可以实现在处理器组件500上可操作以提供服务的逻辑,这些服务可以包括但不限于,电子邮件主存、数据存储、音频/视频流式传输、在线金融服务、基于web的产品购买,等等。
客户机设备700可以是服务器500为其提供无论什么类型的服务的那些其他计算设备中的一个。因此,应用例程770可以实现在处理器组件750上可操作以(经由网络999)与服务器500协作来利用那些服务的逻辑。然而,所提供的这些服务的性质可能要求在安全处理环境中执行应用例程770,在所述安全处理环境中,至少在某种程度上保护应用例程770的执行免受其他例程(例如,恶意例程,诸如,所谓的“病毒”或“间谍软件”)的干扰。因此,控制器800可以利用其自身的独立的处理器组件850和存储设备860来提供与处理器组件750和存储设备760的操作环境隔离的操作环境,从而允许以显著地被保护不受由处理器组件750执行的任何例程干扰的方式来执行控制例程840。此外,控制例程840可以实现在处理器组件850上可操作以与处理器组件750协作来定义安全飞地765的逻辑,所述安全飞地765构成存储设备760的子集,当由处理器组件750执行应用例程770时,此应用例程770可以存储在所述子集中。
安全飞地765可以被定义为存储设备760的部分,在此部分上施加提高的访问限制和/或其他限制以防止由处理器组件750执行的至少一些其他例程进行的访问。替代地或附加地,安全飞地765可由处理器组件850以各种方式中的任一种来监测,或安全飞地765可使对其的访问由处理器组件850以各种方式中的任一种来限制。在各实施例中,控制例程740可以包括同样由处理器组件750执行但不在安全处理环境(诸如,安全飞地765)中的操作系统和/或其他应用。因此,控制例程740可能易于受到其他恶意例程的攻击和/或可能包括恶意例程,使得需要保护对应用例程770的执行免受控制例程740的影响。
然而,在安全处理环境(诸如,安全飞地765)内执行应用例程770的事实可能被认为对于支持使用由服务器500提供的服务而言不是足够的。可能令人期望的是实现相对严格的安全性,其中,能够确保服务器500和应用例程770两者它们参与同彼此的安全通行,所述安全通信既不通过网络999由另一计算设备危害,也不在客户机设备770内由另一例程危害。如现在将解释的,此类安全通信可能需要在它们之间形成安全流水线,随后是在它们之间建立安全应用层级的通信。
在执行应用例程540时,作为联系客户机设备700的部分或响应于由客户机设备700联系,处理器组件550可以操作接口590以将链路认证凭证531传输到客户机设备700。取决于用于在服务器500与客户机设备700之间建立安全的单向流水线的协议(例如,TLS),链路认证凭证531可以是各种类型的安全凭证中的任一种,包括但不限于,公钥或私钥、用密钥创建的签名、散列、经签名的散列、证书等。因此,链路认证凭证531可以被包括在由链路凭证服务器100提供给服务器500的无论什么凭证数据中,或者可以从此类凭证数据中生成。
在执行控制例程840时,响应于经由接口790接收到链路认证凭证531,控制器800的处理器组件850可以采用链路验证凭证137来验证链路认证凭证531。链路验证凭证531旨在充当链路认证凭证531的对照物,并且像链路认证凭证531那样,链路验证凭证137可以是各种类型的安全凭证中的任一种,包括但不限于,公钥或私钥、用密钥创建的签名、散列、经签名的散列、证书,等等。因此,链路验证凭证137可以被包括在提供给客户机设备700的控制器800的无论什么凭证数据中,或者可以从此类凭证数据中生成。
由服务器500将链路认证凭证531提供给客户机设备700,以便认证服务器500是可以与其形成将服务器500链接到客户机设备的单向的安全流水线以便将命令和/或数据从服务器500安全地传送至客户机设备的计算设备。在执行控制例程840时,由处理器组件850对链路认证凭证531的成功验证在服务器500与客户机设备700之间建立信任链,此信任链有效地导致在服务器500与客户机设备700之间形成此类单向的安全流水线。假设能以链路验证凭证137来验证链路认证凭证531,则处理器组件850可以将此链路验证凭证137提供给应用例程770,使得链路验证凭证137可以存储在存储设备760的安全飞地765内,从而允许由应用例程770来访问它。可以将指示从控制例程840传送到应用例程770,其意思是验证是成功的。
在一些实施例中,处理器组件850还可以提供它从服务器500接收到的链路认证凭证531,以便使处理器组件750在执行应用例程770时能够用链路验证凭证137独立地验证此链路认证凭证531。在其他实施例中,处理器组件750在执行应用例程770时可以独立地联系服务器500,以便使服务器500重新发送链路认证凭证531以允许由处理器组件750进行的此类独立的验证。假设服务器500重新发送链路认证凭证531且是不同的凭证,结果应当是另一成功的验证。在执行应用例程770时,由处理器组件750对链路认证凭证的成功的验证延伸已经在服务器500与客户机设备700之间形成的信任链延伸以包括应用例程770。这有效地将已经在服务器500与客户机设备700之间形成的单向的安全流水线进一步延伸到客户机设备700中,并且直接延伸至应用例程770。作为结果,服务器500和应用例程770现在位于链接它们的安全流水线的相对端处,并且服务器500可以通过此安全流水线将命令和/或数据传输至应用例程770。
响应于成功地独立地验证了链路认证凭证531,处理器组件750在执行应用例程770时可以用信号通知处理器组件850至少从提供给应用例程770的链路认证凭证531中生成返回签名734。还可以从指示对应用例程770的执行的“上下文”的方面的数据中生成返回签名734,诸如但不限于,应用例程770的尺寸的指示(例如,按字节计)、应用例程770的至少部分的散列,等等。替代地或附加地,还可以从环境认证凭证733生成返回签名734。取决于用于确立客户机设备700能够提供在其中执行特定的例程的安全处理环境的协议,环境认证凭证733可以是各种类型的安全凭证中的任一种,包括但不限于,公钥或私钥、用密钥创建的签名、散列、经签名的散列、证书,等等。因此,环境认证凭证733可以被包括在由环境凭证服务器300提供给客户机设备700的无论什么凭证数据中,或者可以从此类凭证数据中生成。作为示例,可以使用基于用于将可信度作为直接匿名认证(DAA)的此类方式的协议,并且环境认证凭证733可以是被分配给控制器800的唯一的私钥。
在生成返回签名734之后,可以使用本领域技术人员熟悉的各种散列生成技术中的任一种来对返回签名734进行散列以生成返回散列735。在一些实施例中,可将返回签名734提供给应用例程770(使得将返回签名734存储在安全飞地765中,以便可由应用例程770访问)以使处理器组件750能够在执行应用例程770时从中生成返回散列735。在其他实施例中,处理器组件850在执行控制例程840时生成返回散列735。在由处理器组件750和850中的任一个生成返回散列735之后,操作接口790以将返回散列735传输到服务器500。在一些实施例中,可将返回散列735提供给应用例程770(使得将返回散列735存储在安全飞地765中,以便可由应用例程770访问)以使处理器组件750能够在执行应用例程770时将返回散列735传输到服务器500。在其他实施例中,处理器组件850在执行控制例程840时将返回散列735传输到服务器500,并且可以响应于接收到请求从处理器组件750对返回散列735的传输的信号而这样做(作为执行应用例程770的结果)。
服务器500可能不拥有处理器组件550可以通过其来验证返回散列735的任何种类的凭证。相反,返回散列735可以被视为当在服务器500与应用例程770之间形成安全流水线期间对服务器500作出的、稍后在应用层级建立安全通信期间将发送另一凭证(例如,返回签名734)以便由服务器500来验证的“承诺”。响应于接收到返回散列735,处理器组件550在执行控制例程540时可以将返回散列735存储在存储设备560中。处理器组件550还可以用链路认证凭证531对返回散列735签名以生成经签名的散列537,随后操作接口590以便经由较早时在它们之间创建的安全流水线来将经签名的散列537传输到应用例程770。处理器组件550可使对返回散列735的此类存储和/或使用和/或对经签名的散列537的发送取决于链路认证凭证531稍早是否被传输至客户机设备700。
响应于接收到经签名的散列537,处理器组件750在执行应用例程770时可以至少使用链路验证凭证137来验证此经签名的散列537。在验证经签名的散列537时,处理器组件还可以使用返回散列735,由服务器500假设性地从返回散列735中生成经签名的散列537。假设服务器500用它较早时在形成安全流水线时发送的相同的链路认证凭证对返回散列735签名,则结果应当是另一验证。对经签名的散列537的成功的验证有助于至少验证:已由应用例程770在较低的层级上与其建立信任链以延伸在它们之间的安全流水线的相同的服务器(例如,服务器500)是与现在寻求在它们之间在应用层级上建立信任链的相同的服务器。因此,在执行应用例程770时由处理器组件750对经签名的散列537的成功验证开始允许在除安全流水线的较低层级上的安全通信之外,还允许应用层级上的安全通信。
响应于成功地验证了经签名的散列537,可操作接口790以传输返回签名734,由此“兑现”较早时的“承诺”以如此将通过返回散列735的较早的传输隐式地作出的返回签名734传输至服务器500。在一些实施例中,可将返回签名734提供给应用例程770(使得将返回签名734存储在安全飞地765内,以便可由应用例程770访问)以使得处理器组件750能够在执行应用例程770时将返回签名734传输到服务器500。在其他实施例中,处理器组件850在执行控制例程840时将返回签名734传输到服务器500,并且可以响应于接收到请求从处理器组件750对返回签名734的传输的信号而这样做(作为执行应用例程770的结果)。
响应于接收到返回签名734,处理器组件550在执行控制例程540时可以从返回签名734中生成返回散列535,随后比较返回散列735与535以验证返回签名734。假设服务器500接收到的返回签名734是与稍早时从中生成返回散列735相同的返回签名且不是另一签名,则结果应当是对返回签名734的成功的验证。对返回签名的此类成功的验证将至少验证:已由服务器500在较低的层级上与其建立信任链以延伸在它们之间的安全流水线的相同的应用例程(例如,应用例程770)是与现在寻求完成在应用层级上在它们之间建立信任链相同的应用例程。
然而,在使用环境认证凭证733(除使用由应用例程770接收到的链路认证凭证531之外)生成返回签名734的实施例中,可使完成建立此类信任链取决于用环境验证凭证335对返回签名进行的进一步的验证。环境验证凭证335旨在充当环境认证凭证733的对照物,并且像环境认证凭证733那样,环境验证凭证335可以是各种类型的安全凭证中的任一种,包括但不限于,公钥或私钥、用密钥创建的签名、散列、经签名的散列、证书,等等。因此,链路验证凭证335可以被包括在由环境凭证服务器300提供给服务器500的无论什么凭证数据中,或者可以从此类凭证数据中生成。可由客户机设备700在生成返回签名734时采用环境认证凭证733以认证此客户机设备700提供了用于在其中执行应用例程(例如,应用例程770)的安全处理环境。在执行控制例程540时由处理器组件550用环境验证凭证335对返回签名734的成功的验证确立了应用例程770在此类安全处理环境中执行。
图2示出包括客户机设备700的替代实施例的安全处理系统1000的替代实施例的框图。图2的替代实施例以许多方式与图1的实施例类似,因此,自始至终,相同的参考号用于指代相同的组件。然而,为应用例程770的执行提供安全处理环境的方式在客户机设备700的两个所描绘的实施例之间有所不同。具体而言,不像图1的客户机设备700那样(其中,应用例程770存储在定义在存储设备760内的安全飞地765中,并且由处理器组件750执行),应用例程770存储在存储设备860内,并且由图2的客户机设备700中的控制器800的处理器组件850执行。因此,在图2中,对应用例程770的执行通过它在控制器800的隔离的操作环境中的执行而被保护免受由处理器组件750执行的其他例程(包括控制例程740)影响。考虑到应用例程770存储在存储设备860内,不需要将返回签名734也不需要将返回散列735复制到存储设备760的任何部分中。
在各实施例中,处理器组件550、750和850中的每一个都可以包括各种各样的商用处理器中的任一种。此外,这些处理器组件中的一个或多个可以包括多个处理器、多线程处理器、多核处理器(无论多个核共存于相同的管芯上还是在分开的管芯上)和/或多个物理上分开的处理器通过其以某种方式被链接的某个其他种类的多处理器架构。
在各实施例中,存储设备560、760和860中的每一个都可以基于各种各样的信息存储技术中的任一种,可能包括要求不中断地提供电力的易失性技术,并且可能包括需要使用可以是或可以不是可移除的机器可读存储介质的技术。因此,这些存储设备中的每一个都可以包括各种各样类型的存储设备(或它们的组合)中的任一种,包括但不限于,只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EEPROM)、闪存、聚合物存储器(例如,铁电聚合物存储器)、奥式存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、一个或多个单独的铁磁盘驱动器或被组织成一个或多个阵列的多个存储设备(例如,被组织成独立磁盘冗余阵列的阵列或RAID阵列的多个铁磁盘驱动器)。应当注意,尽管这些存储设备中的每一个都被描绘为单个块,但是这些存储设备中的一个或多个可以包括可以基于不同的存储技术的多个存储设备。因此,例如,这些所描绘的存储设备中的每一种中的一个或多个可以表示以下各项的组合:可通过其在某种形式的机器可读存储介质上存储并传送程序和/或数据的光驱动器或闪存卡读取器、用于在本地存储程序和/或数据达相对延长的时间段的铁磁盘驱动器以及允许对程序和/或数据的相对快速的访问的一个或多个易失性固态驱动器设备(例如,SRAM或DRAM)。还应当注意,这些存储设备中的每一个都可以由基于完全相同的存储技术的多个存储组件组成,但是由于使用中的专业化可以分开地维护它们(例如,一些DRAM设备被用作主存储设备,而其他DRAM设备被用作图形控制器的不同的帧缓冲器)。
在各实施例中,接口590和790中的每一个都可以采用使计算设备能够耦合到已经描述的其他设备的各种各样的信令技术中的任一种。这些接口中的每一个都可以包括提供实现此类耦合的所需功能中的至少一些功能的电路。然而,这些接口中的每一个还可以至少部分地用由处理器组件中的对应的组件执行的指令序列来实现(例如,以便实现协议栈或其他特征)。在采用电气布线和/或光导布线的情况下,这些接口可以采用符合各种工业标准中的任一种的信令和/或协议,包括但不限于,RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在需要使用无线信号传输的情况下,这些接口可以采用符合各种工业标准中的任一种的信令和/或协议,包括但不限于,IEEE 802.11a、802.11b、802.11g、802.16、802.20(统称为“移动宽带无线接入”);蓝牙;ZigBee;或蜂窝无线电话服务,诸如,GMS与通用分组无线服务(GSM/GPRS)、CDMA/1xRTT、全球演进的增强型数据速率(EDGE)、仅演进数据/优化(EV-DO)、数据和语音演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4G LTE,等等。
图3描绘在分别由处理器组件550和850执行的控制例程540和840以及由处理器组件750或850中的任一个执行的应用例程770之间的凭证交换的实施例。同样,采用凭证交换以在较低的流水线层级上且随后在较高的应用层级上建立信任链。
由控制例程540将链路认证凭证531从服务器500传输到客户机设备700的控制器800的控制例程840,以便由处理器组件850验证,从而形成从服务器500到客户机设备700的控制器800的单向的安全流水线。在一些实施例中,处理器组件850可以将链路认证凭证531中继到应用例程770,以便由处理器组件750(或由执行应用例程770的处理器组件850)独立地验证,从而将此单向的安全流水线延伸到应用例程770。在其他实施例中,处理器750或850在执行应用例程770时请求服务器500重新发送链路认证凭证531以实现此类独立的验证。
假设链路认证凭证531被验证两次,则将返回散列735传输到服务器500的控制例程540。在一些实施例中,处理器组件850在执行控制例程840时将返回散列735传输到服务器500。在其他实施例中,处理器组件750或850在执行应用例程770时从控制例程840接收返回散列735,随后将此返回散列735传输到服务器500(如用循环通过应用例程770的箭头所描绘)。
处理器组件550在执行控制例程540时接收返回散列735,并且对此返回散列735签名,由此生成经签名的散列537。随后,处理器组件550将经签名的散列传输到应用例程770以进行验证。
处理器组件750或850在执行应用例程770时接收经签名的散列537,并且验证它。假设成功地验证了经签名的散列537,则返回签名734被传输到服务器500。在一些实施例中,处理器组件850在执行控制例程840时将返回签名734传输到服务器500。在其他实施例中,处理器组件750或850在执行应用例程770时从控制例程840接收返回签名734,随后将此返回签名734传输到服务器500(如用循环通过应用例程770的另一箭头所描绘)。
图4更详细地示出图1或图2的安全通信系统1000的实施例的部分的框图。更具体而言,图4描绘服务器500的操作环境的多个方面,其中,处理器组件550在执行控制例程540时与客户机设备700协作在服务器500与应用例程770之间建立安全通信。图5更详细地示出图1的安全通信系统1000的实施例的部分的框图,而图6更详细地示出图2的安全通信系统1000的实施例的对应部分的框图。更具体而言,图5和图6都描绘客户机设备700的不同实施例的操作环境的多个方面,其中,处理器组件750和/或850在执行控制例程840和应用例程770中的对应的例程时与服务器500协作来建立此类安全通信。图5和图6以镜像图1和图2不同的方式而有所不同。具体而言,像图1那一样,图5描绘客户机设备700的实施例,其中,应用例程770存储在存储设备760内,并且由处理器组件750执行。对应地,像图2那样,图6描绘客户机设备700的实施例,其中,应用例程770存储在存储设备860内,并且由处理器组件850执行。
如可由本领域技术人员认识到的那样,控制例程540、740和840以及应用例程770(包括组成上述每一项的组件)经选择以在被选择为实现处理器组件550、750或850中的适用的处理器组件的无论什么类型的处理器上是可操作的。在各实施例中,这些例程中的每一个都可以包括以下各项中的一项或多项:操作系统、设备驱动器和/或应用层级例程(例如,在盘介质上提供的所谓的“软件套件”、从远程服务器获取的“小应用程序”,等等)。在包括操作系统的情况下,此操作系统可以是适用于处理器组件550、750或850中的无论什么对应的处理器组件的各种可用的操作系统中的任一种。在包括一个或多个设备驱动器的情况下,那些设备驱动器可以提供对计算设备500或700中的对应的计算设备以及控制器800的各种其他组件中的任一组件(无论是硬件还是软件组件)的支持。
控制例程540和840以及应用例程770各自可以包括通信组件549、849和/或779,所述通信组件549、849和/或779可由处理器组件550、750或850中的适用的处理器组件执行以操作接口590或790中的适用的接口,从而经由如已经描述的网络999来传输并接收信号。在所交换的信号之间的可以是经由网络999而在计算设备100、300、500和/或700中的一个或多个之间传送各种安全凭证的信号。如可由本领域技术人员认识的那样,这些通信组件被选择为可与经选择以实现接口590和790中的对应的接口的无论什么类型的接口技术操作。
更确切地转向图4,控制例程540可以包括发起组件514,此发起组件可由处理器组件550执行以作为与应用例程770建立安全通信的开始的部分,至少将链路认证凭证531传输到客户机设备700(经由通信组件549)。发起组件541可以响应于由客户机设备700联系服务器500或作为发起与客户机设备700的安全通信的部分而这样做。如已经讨论的那样,链路认证凭证531可以作为从链路凭证服务器100接收到的凭证数据的部分而被提供给服务器500,或者可以由发起组件541从此类数据中生成。
控制例程540可以包括签名组件547,此签名组件547可由处理器组件550执行以对返回散列735签名,从而在从客户机设备700接收到返回散列753时生成经签名的散列537。如已经讨论的那样,用链路认证凭证531对返回散列735签名以向客户机设备700提供以下认证:在已经形成的安全流水线一端的服务器500是与寻求在应用层级上形成信任链的服务器的相同服务器。当被生成时,将经签名的散列537往回传输至安全流水线另一端处的应用例程770(经由通信组件549)。应当注意,签名组件547将使对返回散列537签名和/或将经签名的散列537提供给客户机设备700取决于从发起组件541接收到指示链路认证凭证531稍早被提供给客户机设备700的信号。
控制例程540可以包括验证组件545,此验证组件545可由处理器组件550执行以便在从客户机设备700接收到返回签名734时验证此返回签名734。验证组件545对返回签名734执行散列操作以生成返回散列535,随后比较返回散列735与535以判定它们是否匹配。如果它们匹配,则认为返回签名734至少在以下程度上经验证,证明在应用层级上的信任链的另一端处的应用例程770是与稍早形成的安全流水线另一端处的应用例程相同的应用例程。
然而,如已经讨论的那样,还可能已经使用环境认证凭证733、在客户机设备700内生成了返回签名734以认证客户机设备700提供用于执行应用例程(诸如,应用例程770)的安全处理环境的能力。因此,在此类实施例中,验证组件545还可以采用环境验证凭证335来进一步验证返回签名734。假设此类进一步的验证是成功的,则认为证明了正在由客户机设备700提供的安全处理环境内执行应用例程770,由此完成在应用层级上在服务器500与应用例程770之间形成信任链。如先前所讨论,环境验证凭证355是环境认证凭证733的对照物,并且可以在从环境凭证服务器300接收到的凭证中数据中而被提供给服务器500,或者可从此类数据中导出。应当注意,验证组件545可以使它对返回签名734的这些验证中的一者或两者的执行取决于从签名组件547接收到指示返回散列735稍早时已被接收到且经签名和/或经签名的散列537稍早时已被提供给客户机设备700的信号。
更确切地转向图5和图6,控制例程840可以包括验证组件841,此验证组件841可由处理器组件850执行以便将至少采用链路验证凭证137来验证从服务器500接收到的链路认证凭证531作为与服务器500建立安全通信的开始的部分。如已经讨论的那样,链路验证凭证137可以作为从链路凭证服务器100接收到的凭证数据的部分而被提供给客户机设备700的控制器800。
应用例程770可以包括验证组件771,此验证组件774可由处理器组件750或850执行以至少采用链路验证凭证137独立于由控制例程840的验证组件841执行的验证来验证链路认证凭证531。应当注意,验证组件771可以使它对验证的执行依赖于从验证组件841接收到指示由验证组件841对验证的执行导致了成功的验证的信号。如已经讨论的那样,验证组件771可以从控制例程840(例如,从验证组件841)或者在链路认证凭证531的分开的传输中、从服务器500接收链路认证凭证531。像验证组件841那样,验证组件771使用链路验证组件137来执行验证,验证组件771可以从控制例程840(例如,从验证组件841)接收此链路验证组件137。
应用例程770可以包括散列组件775,此散列组件775可由处理器组件750或850执行,并且控制例程840可以包括散列组件845,此散列组件845可由处理器组件850执行以便协作以生成返回签名734且随后从中生成返回散列735并将此返回散列735提供给服务器500。散列组件775可用信号通知散列组件845生成返回签名734并返回散列735,随后可从散列组件845接收返回散列735,且随后将返回散列735传输到服务器500(经由通信组件779)。如已经讨论的那样,至少从由应用例程770(经由通信组件779)从服务器500接收到的链路认证凭证531中生成返回签名734。然而,还可以从环境认证凭证733和/或从指示应用例程770的执行上下文的数据(例如,应用例程按位或字节计的尺寸、应用例程770的部分的散列,等等)中生成返回签名734。如已经讨论的那样,环境认证凭证733可以作为从环境凭证服务器200接收到的凭证数据的部分而被提供给客户机设备700的控制器800,或者可以由散列组件845从此类数据中生成。应当注意,散列组件845可以使它对返回签名734和/或返回散列735的生成依赖于从请求返回散列735的散列组件775接收到信号。进而,散列组件775可以使用信号通知散列组件845此类请求和/或将返回散列735传输到服务器500依赖于从验证组件771接收到它对链路认证凭证531的验证是成功的信号。
应用例程770可以包括验证组件777,此验证组件777可由处理器组件750或850执行以采用由应用例程770接收到的返回散列735和/或链路认证凭证531来验证从服务器500接收到的经签名的散列537。应当注意,验证组件777可以使它对验证的执行依赖于从散列组件775接收到指示返回散列735稍早时被提供给服务器500的信号。
应用例程770可以包括签名组件774,此签名组件可由处理器组件750或850执行以响应于对签名散列537的成功验证而将返回签名734传输到服务器500。可以通过从验证组件777接收到成功地验证了经签名的散列537的信号以触发签名散列774这样做。
图7示出逻辑流2100的一个实施例。逻辑流2100可表示由本文中描述的一个或多个实施例执行的操作中的一些或全部。更具体而言,逻辑流2100可以示出由处理器组件550在至少执行控制例程540时执行的操作和/或由服务器500的其他(多个)组件执行的操作。
在2110处,安全通信系统的服务器的处理器组件(例如,安全通信系统1000的服务器500的处理器组件550)将链路认证凭证传输到安全通信系统的客户机设备(例如,客户机设备700)。如先前所讨论,取决于当在服务器与客户机设备之间形成安全流水线时使用的协议的性质,链路认证凭证可以是各种类型的安全凭证中的任一种,。同样如先前所讨论,服务器可以从客户机设备接收第二次将链路认证凭证传输到客户机设备以便分离地直接将链路认证凭证提供给客户机设备的应用例程的请求。
在2120处,从客户机设备接收返回散列。如先前所讨论,返回散列向服务器的传输用作已经在服务器与客户机设备之间形成了安全流水线以及已经进一步在客户机设备内将安全流水线延伸到应用例程的指示。
在2130处,服务器用链路认证凭证对返回散列签名以生成经签名的散列,并且在2140处,服务器将经签名的散列传输到客户机设备。如先前所讨论,服务器可能不具有以任何方式验证经签名的散列的能力,但是仍将接收到经签名的散列作为已经在安全流水线的较低的层级上在服务器与应用例程之间建立了信任链的指示。因此,服务器将经签名的散列传输到客户机设备,以便开始在较高的应用层级上在服务器与应用例程之间形成另一信任链。
在2150处,服务器从客户机设备接收返回签名,并且在2160处,从返回签名中生成分开的返回签名。在2170处,服务器随后将稍早时从客户机设备接收到的返回散列与它已经生成的分开的返回散列进行比较以验证稍早时接收到的返回散列是从返回签名中生成的。
在2180处,服务器可以使用环境验证凭证来进一步验证返回签名。如先前所讨论,可能已经附加于认证了客户机设备提供用于应用例程的执行的安全处理环境的能力的环境认证凭证而形成返回签名。如果在2170和2180处的两个验证都是成功的,则认为证明了:在来自服务器的安全流水线的相对端处的相同的应用例程是与现在已经在应用层级上与其形成了信任链的应用例程相同的应用例程;以及正在客户机设备的安全处理环境中执行应用例程。
图8示出逻辑流2200的一个实施例。逻辑流2200可以表示由本文中描述的一个或多个实施例执行的操作中的一些或全部。更具体而言,逻辑流2200可以示出由处理器组件850在至少执行控制例程840时执行的操作和/或由控制器800和/或客户机设备700的其他(多个)组件执行的操作。
在2210处,提供安全通信系统的客户机设备的安全处理环境的处理器组件(例如,安全通信系统1000的客户机设备700的控制器800的处理器组件850)从安全通信系统的服务器(例如,服务器500)接收链路认证凭证。如先前所讨论,取决于当在服务器与客户机设备之间形成安全流水线时使用的协议的性质,链路认证凭证可以是各种类型的安全凭证中的任一种,。
在2220处,处理器组件使用与链路认证凭证相关联的链路验证凭证来验证此链路认证凭证,这两个凭证已经被创建为彼此的对照物。假设验证是成功的,则在2230处,处理器组件用信号通知控制例程此成功的验证。如先前所讨论,这个可以充当对应用例程独立地使用链路验证凭证来执行其自身对链路认证凭证的验证的触发。同样如先前所讨论,可以由处理器组件提供这些凭证中的一个或两个,和/或可以用信号通知服务器第二次分开地将链路认证凭证传输至应用例程。
在2240处,处理器组件从应用例程接收请求从至少有应用例程接收到的链路认证凭证中生成返回散列的信号。在2250处,在准备生成返回散列时,处理器组件使用至少由应用例程接收到的链路认证凭证来生成返回签名。如先前所讨论的,还可以从认证了处理器组件提供用于执行应用例程的安全处理环境的能力的环境认证凭证中生成返回签名。同样如先前所讨论,还可以从指示应用例程的执行上下文的方面的数据中生成返回签名。
在2260处,处理器组件对返回签名执行散列以生成返回散列,并随后在2270处,将返回散列提供给应用例程。如先前所解释,返回散列被传输到服务器以将以下指示提供给服务器:已由处理器组件和应用例程两者验证了链路认证凭证,使得充当用于在服务器与应用例程之间形成安全流水线的基础的信任链不存在。同样如先前所讨论,在其他实施例中,处理器组件自身可以替代地代表应用例程将返回散列传输到服务器。
在2280处,处理器组件从应用例程接收请求返回签名的请求,随后在2290处,处理器组件将此返回签名提供给应用例程。同样如先前所讨论,在其他实施例中,处理器组件自身可以替代地代表应用例程将返回签名传输到服务器。
图9示出逻辑流2300的一个实施例。逻辑流2300可以表示由本文中描述的一个或多个实施例执行的操作中的一些或全部。更具体而言,逻辑流2300可以示出由处理器组件750或850在至少执行应用例程770时执行的操作和/或由控制器800和/或客户机设备700的其他(多个)组件执行的操作。
在2310处,执行安全通信系统的客户机设备的安全处理环境中的应用例程的处理器组件(例如,安全通信系统1000的客户机设备700的处理器组件750或850)接收指示对链路认证凭证的成功验证的信号。如先前所讨论,在用信号通知应用例程这样做的结果之前,提供安全处理环境的处理器组件执行对链路认证凭证的验证以触发应用例程分开地执行此类验证。同样如先前所讨论,在用信号通知应用执行其自身的验证之前,执行这个第一验证的处理器组件可以是或可以不是与在安全处理环境内执行应用例程的处理器组件相同的处理器组件。同样,链路认证凭证认证服务器形成安全流水线的能力,并且可以是各种类型的安全凭证中的任一种。在2320处,处理器组件从服务器接收链路认证凭证,并且在2322处执行其对链路认证凭证的独立验证。
在2330处,应用例程请求从由处理器组件接收到的链路认证凭证中生成的返回散列,以便由应用例程在执行其对链路认证凭证的独立验证中使用。如先前所讨论,应用例程对返回散列的请求指示链路认证凭证由应用例程成功地验证。同样如先前所讨论,在执行应用例程的处理器组件与提供安全处理环境的处理器的组件不是相同的处理器组件的实施例中,来自应用例程的、请求返回散列的信号可以是从执行应用例程的处理器组件到提供安全处理环境的处理器组件的信号。
在2340处,返回散列由应用例程接收,并且在2342处,应用例程将此返回散列传输到服务器。然而,如先前所讨论,在其他实施例中,可代表应用例程将返回散列传输到服务器,由无论什么处理器组件实施那个传输提供了安全处理环境。
在2350处,应用例程从服务器接收签名散列,并且使用链路验证凭证和返回散列中的一者或两者来验证经签名的散列。如先前所讨论,链路验证凭证是链路认证凭证的对照物,并且其在验证经签名的散列中的用途在于,验证对返回散列的签名以通过服务器使用链路认证凭证来生成经签名的散列。
假设对经签名的散列的验证是成功的,则随后在2360处,应用例程请求在返回散列的生成期间生成的返回签名。同样,在执行应用例程的处理器组件与提供安全处理环境的处理器组件不是相同的处理器组件的实施例中,来自应用例程的、请求返回签名的信号可以是从执行应用例程的处理器组件到提供安全处理环境的处理器组件的信号。
在2370处,返回签名由应用例程接收,并且在2372处,应用例程将此返回签名传输到服务器。然而,如先前所讨论,在其他实施例中,可代表应用例程将返回签名传输到服务器,由无论什么处理器组件实施那个传输提供了安全处理环境。
图10示出适合用于实现如先前所描述的各实施例的处理架构3000的实施例。更具体而言,处理架构3000(或其变体)可以实现为计算设备100、300或500中的一个或多个的部分。应当注意,处理架构3000的组件被给定参考编号,其中,最后两位数字对应于稍早时被描绘并描述为这些计算设备的部分的组件中的至少一些组件的参考编号的最后两位数字。这样做作为对使组件彼此关联的辅助。
处理架构3000可以包括通常用于数字处理中的各种元件,包括但不限于,一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源,等等。如在本申请中所使用,术语“系统”和“组件”旨在是指在其中执行数字处理的计算设备的实体,那个实体是硬件、硬件和软件的组合、软件、或执行中的软件,所有这些的示例由这个所描绘的示例性处理架构来提供。例如,组件可以是但不限于是在处理器组件上运行的进程、处理器组件本身、可以采用光和/或磁存储介质的存储设备(例如,硬盘驱动器、以阵列安排的多个存储设备驱动器,等等)、软件对象、可执行指令序列、执行线程、程序和/或整个计算设备(例如,整个计算机)。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在执行进程和/或线程中,并且组件可以局部化在一个计算设备上和/或分布在两个或更多个计算设备之间。此外,组件可以通过各种类型的通信介质通信地耦合到彼此以协调操作。这种协可调涉及单向或双向的信息交换。例如,这些组件可以传递在通信介质上传递的信号形式的信息。此信息可以实现为分配给一个或多个信号线的信号。消息(包括命令、状态、地址或数据消息)可以是此类信号中的一种信号,或者可以是多个此类信号,并且可以通过各种连接和/或接口中的任一种串行或基本上并行地传输。
如图所描绘,在实现处理架构3000时,计算设备可以至少包括处理器组件950、存储设备960、到其他设备的接口990和耦合装置959。如将解释的那样,取决于实现处理架构3000的计算设备的各个方面(包括其预期用途和/或使用条件),此类计算设备可以进一步包括附加的组件,诸如但不限于,显示接口985或一个或多个处理子系统900。
耦合装置959可以包括一条或多条总线、点到点互连、收发机、缓冲器、交叉点开关和/或至少将处理器组件950通信地耦合到存储设备960的其他导体和/或逻辑。耦合装置959可以进一步将处理器组件950耦合到接口990、音频子系统970和显示接口985中的一个或多个(取决于这些和/或其他组件中的哪些组件也存在)。通过处理器组件950由耦合装置959如此耦合,处理器组件950能够执行以上详细地描述的任务中的各个任务,为以上描述的计算设备中的任何(多个)计算设备实现处理架构3000。可以用通过其光学地和/或电气地传送信号的各种技术中的任一种或技术组合来实现耦合装置959。此外,耦合装置959的至少各部分可以采用符合各种各样的行业标准中的任一种的定时和/或协议,包括但不限于,加速图形端口(AGP)、CardBus、扩展式行业标准架构(E-ISA)、微信道架构(MCA)、NuBus、外围组件互连(扩展式)(PCI-X)、PCI快速(PCI-E)、个人计算机存储器卡国际协会(PCMCIA)总线、超传输TM(HyperTransportTM)、快速路径(QuickPath),等等。
如先前所讨论,处理器组件950(对应于处理器组件550、750或850中的一个或多个)可以包括各种各样的可商购处理器中的任一种,这些可商购处理器采用各种各样的技术中的任一种,并且利用以多种方式中的任一种物理上组合的一个或多个核来实现。
如先前所讨论的,存储设备960(对应于存储设备560、760或860中的一个或多个)可以由基于各种各样的技术中的任一种或技术组合的一个或多个不同的存储设备组成。更具体而言,如图所描绘,存储设备960可以包括易失性存储设备961(例如,基于一种或多种形式的RAM技术的固态存储设备)、非易失性存储设备962(例如,固态、铁磁或不要求恒定提供电力以保持其内容的其他存储设备)和可移除介质存储设备963(例如,可以通过其在计算设备之间传送信息的可移除盘或固态存储器卡存储设备)中的一个或多个。将存储设备960描绘为可能包括多种不同类型的存储设备的这种描绘承认了在计算设备中的对多于一种类型的存储设备的常见的使用,其中,一种类型提供相对快速的读取和写入能力,从而允许处理器组件950对数据的更快速的操纵(但是可能使用恒定地要求电力的“易失性”技术),而另一类型提供相对高的非易失性存储密度(但是可能提供相对缓慢的读取和写入能力)。
考虑到采用不同技术的不同的存储设备的经常不同的特性,通过不同的存储设备控制器将此类不同的存储设备耦合到计算设备的其他部分也是常见的,所述不同的存储控制器通过不同的接口耦合到它们不同的存储设备。作为示例,在易失性存储设备961存在并且基于RAM技术的情况下,易失性存储设备961可以通过存储控制器965a通信地耦合到耦合装置959,此存储控制器965a提供到可能采用行寻址和列寻址的易失性存储设备961的适当的接口,并且其中,存储设备控制器965a可以执行行刷新和/或其他维护任务以协助保持存储在易失性存储设备961内的信息。作为另一示例,在非易失性存储设备962存在并且包括一个或多个铁磁和/或固态盘驱动器的情况下,非易失性存储设备962可以通过存储控制器965b通信地耦合到耦合装置959,此存储控制器965b提供到可能采用对信息块和/或磁柱和扇区的寻址的非易失性存储设备962的适当的接口。作为又一示例,在可移除介质存储设备963存在并且包括采用一片或多片机器可读存储介质969的一个或多个光和/或固态盘驱动器的情况下,可移除介质存储设备963可以通过存储控制器965c通信地耦合到耦合装置959,此存储控制器965c提供到可能采用对信息块的寻址的可移除介质存储设备963的适当的接口,并且其中存储控制器965c能以专用于延长机器可读存储介质969的寿命的方式来协调读取、擦除和写入操作。
取决于每一者所基于的技术,易失性存储设备961或非易失性存储设备962中的一个或另一个可以包括处于机器可读存储介质形式的制品,在此机器可读存储介质上可存储包括指令序列的例程,所述指令序列可由处理器组件950执行以实现各实施例。作为示例,在非易失性存储设备962包括基于铁磁的盘驱动器(例如,所谓的“硬盘驱动器”)时,每一个此类盘驱动器典型地采用一个或多个旋转式盘,在所述一个或多个旋转式盘上,沉积磁性响应性颗粒涂层并且在使磁性响应性颗粒涂层以各种图案进行磁取向以便以与存储介质(诸如,软盘)类似的方式来存储信息(诸如,指令序列)。作为另一示例,非易失性存储设备962可以由固态存储设备的区块组成,以便以与致密闪存卡类似的方式来存储信息(诸如,指令序列)。同样,在不同的时刻,在计算设备中采用不同类型的存储设备来存储可执行例程和/或数据是常见的。因此,包括将由处理器组件950执行以实现各个实施例的指令序列的例程最初可存储在机器可读存储介质969上,并且后续可将可移除介质存储设备963用于将那个例程复制到非易失性存储设备962供较长期的存储而不要求机器可读存储介质969和/或易失性存储设备961的继续存在,从而允许当执行那个例程时可由处理器组件950进行的更快的访问。
如先前所讨论的,接口990(对应于接口590或790中的一个或多个)可以采用对应于可以用于将计算设备通信地耦合到一个或多个其他设备的各种通信技术中的任一种的各种信令技术中的任一种。同样,可采用各种形式的有线或无线信令中的一者或两者,以便使处理器组件950可能通过网络(例如,网络999)或经互连的网络集合而能够与输入/输出设备(例如,所描绘的示例键盘920或打印机925)和/或其他计算设备交互。鉴于经常必须由任何一个计算设备支持的多种类型的信令和/或协议的经常非常不同的特征,接口990被描绘为包括多个不同的接口控制器995a、995b和995c。接口控制器995a可以采用各种类型的有线数字串行接口或射频无线接口中的任一种类以从用户输入设备(诸如,所描绘的键盘920)接收串行传输的消息。接口控制器995b可以采用各种基于线缆布线的或无线的信令、定时或协议中的任一种以通过所描绘的网络(可能是由一个或多个链路组成的网络、更小的网络,或可能是互联网)来访问其他计算设备。接口995c可以采用导电线缆布线,所述导电线缆布线允许使用串行或并行的信号传输来将数据传送到所描绘的打印机925。可以通过接口990的一个或多个接口控制器而被通信地耦合的设备的其他示例包括但不限于,话筒、遥控器、触控笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板计算机、控制杆、其他键盘、视网膜扫描仪、触摸屏的触摸输入组件、轨迹球、各种传感器、用于监测人员的移动以接受那些人员经由姿势和/或面部表情来用信号通知的命令和/或数据的相机或相机阵列、激光打印机、喷墨打印机、机械机器人、研磨机器,等等。
在计算设备通信地耦合到(或可能实际上合并了)显示器(例如,所描绘的示例显示器980)时,实现处理架构3000的此类计算设备还可以包括显示接口985。尽管更通用类型的接口可以用于通信地耦合到显示器,但是当在显示器上可视地显示各种形式的内容时经常所需的某种程度上专业化的附加处理以及所使用的基于线缆布线的某种程度上专业化的性质经常使得供应不同的显示接口是所期望的。可以由显示接口985用于显示器980的通信耦合的有线和/或无线信令技术可以利用符合各种行业标准中的任一种的信令和/或协议,包括但不限于各种模拟视频接口、数字视频接口(DVI)、显示端口等中的任一种。
更一般而言,本文中描述和描绘的计算设备的各种元件可以包括各种硬件元件、软件元件或这两者的组合。硬件元件的示例可包括器件、逻辑器件、组件、处理器、微处理器、电路、处理器组件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组,等等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或上述各项的任何组合。然而,如对于给定的实现所期望的,确定使用硬件元件和/或还是软件元件来实现实施例可以根据任何数量的因素而不同,这些因素诸如,所期望的计算速率、功率等级、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
可以使用表述“一个实施例”或“实施例”及其衍生词来描述一些实施例。这些术语意味着结合此实施例所描述的特定的特征、结构或特性被包括在至少一个实施例中。在本说明书中的各处出现短语“在一个实施例中”不一定全都是指相同的实施例。此外,可使用表述“耦合的”和“连接的”及其衍生词来描述一些实施例。这些术语不一定旨在作为彼此的同义词。例如,可以使用术语“连接的”和/或“耦合的”来描述一些实施例以指示两个或更多个元件彼此直接物理接触或电接触。然而,术语“耦合的”还可以意味着两个或更多个元件彼此可以不直接接触但是可仍彼此协作或交互。此外,可组合来自不同实施例的多个方面或元件。
强调的是,提供本公开的摘要以允许读者快速地确定本技术公开的性质。提交摘要且要理解,本摘要将不用于解释或限制权利要求书的范围或含义。附加地,在前述具体实施方式中,可以看到,为了使本公开流畅而将各种特征组合在单个实施例中。这种公开方法不应被解释为反映以下意图:所要求保护的实施例要求比在每项权利要求中明确陈述的特征更多的特征。相反,如所附权利要求书所反映,发明性主题少于单个公开的实施例的全部特征。因此,所附权利要求书由此被合并到具体实施方式中,其中,每项权利要求以其自身作为单独的实施例。在所附权利要求书中,术语“包括(including)”和“其中(inwhich)”分别用作相应的术语“包括(comprising)”和“其中(wherein)”的简明英语的等效词。此外,术语“第一”、“第二”和“第三”等仅用作标记,并且不旨在对其对象强加数字要求。
以上已经描述的内容包括所公开的架构的示例。当然,描述组件和/或方法的每一个可想到的组合是不可能的,但是本领域技术人员可以意识到,许多进一步的组合和排列是可能的。相应地,新颖的架构旨在涵盖落入所附权利要求书的精神和范围内的所有此类更改、修改和变体。本详细公开现在转向提供涉及进一步的实施例的示例。以下提供的示例不旨在是限制性的。
在示例1中,一种用于建立安全通信的装置包括:处理器组件;验证组件,用于由所述处理器组件执行以:验证接收到的链路认证凭证以验证该服务器形成安全流水线的能力;以及用信号向应用例程通知由所述验证组件进行的验证的结果的指示;以及散列组件,用于由所述处理器组件执行以生成与所述应用例程相关联的返回签名的返回散列,所述返回散列指示所述应用例程也已经验证了所述链路认证凭证以便与所述应用例程形成所述安全流水线。
在包括示例1所述的主题的示例2中,所述装置可以包括接口,所述接口用于将所述处理器组件耦合到网络以从服务器接收所述链路认证凭证,所述链路认证凭证用于认证所述服务器形成所述安全流水线的能力,并且对所述链路认证凭证的验证用于验证所述服务器形成所述安全流水线的能力。
在包括示例1至2中的任一项的主题的示例3中,所述验证组件可使用与所述链路认证凭证相关联的链路验证凭证来验证所述链路认证凭证,并且可将所述链路认证凭证或所述链路验证凭证中的至少一项提供给所述应用例程以使所述应用例程能够验证所述链路认证凭证。
在包括示例1至3中的任一项的主题的示例4中,所述散列组件可基于由所述应用例程进行的验证的结果的指示来生成所述返回签名。
在包括示例1至4中的任一项的主题的示例5中,所述散列组件可从由所述应用例程提供给所述散列组件的所述链路认证凭证中生成所述返回签名。
在包括示例1至5中的任一项的主题的示例6中,所述散列组件可附加地从以下各项中的至少一项中生成所述返回签名:环境认证凭证,用于服务器认证在由所述处理器组件提供的安全处理环境中执行所述应用例程,所述安全流水线是与所述服务器形成的;或数据,所述指示所述应用例程的执行上下文,所述数据包括所述应用例程的尺寸的指示或所述应用例程的部分的散列中的至少一项。
在包括示例1至6中的任一项的主题的示例7中,所述散列组件可响应于来自所述应用例程的、对所述返回签名的请求来将所述返回签名提供给所述应用例程。
在包括示例1至7中的任一项的示例8中,所述装置可以包括:存储设备;以及控制例程,所述控制例程用于由所述处理器组件执行以将所述存储设备的部分分配给所述应用例程,从而提供用于由所述处理器组件执行所述应用例程的安全处理环境。
在包括示例1至8中的任一项的主题的示例9中,所述装置可以包括:另一处理器组件;存储设备;以及控制例程,所述控制例程用于由所述处理器组件执行以与所述另一个处理器组件协作,从而将所述存储设备的部分分配给所述应用例程以提供用于由所述另一处理器组件执行所述应用例程的安全处理环境。
在包括示例1至9中的任一项的主题的示例10中,所述装置可以包括所述应用例程,所述应用例程包括另一验证组件,所述另一验证组件用于验证由服务器使用由所述应用例程接收到的所述链路认证凭证从所述返回散列中生成的经签名的散列,从而除了在所述服务器与所述应用例程之间形成的所述安全流水线之外还在所述服务器与所述应用例程之间在应用层级上形成信任链,所述安全流水线是与所述服务器形成的。
在包括如示例1至10中的任一项的主题的示例11中,所述装置可以包括签名组件,所述签名组件用于基于对所述经签名的散列的验证而将所述返回签名传输至所述服务器,以便向所述服务器指示所述应用例程已经验证了所述签名散列以便在应用层级上形成所述信任链。
在示例12中,一种用于建立安全通信的装置包括:处理器组件;发起组件,所述发起组件用于由所述处理器组件执行以将链路认证凭证传输至客户机设备,从而认证形成与客户机设备形成安全流水线的能力;以及签名组件,所述签名组件用于由所述处理器组件执行以:用所述链路认证凭证对从所述客户机设备接收到的返回散列签名以生成经签名的散列;以及将所述经签名的散列传输到所述客户机设备以认证在应用层级上与所述客户机设备的应用例程形成信任链的能力。
在包括示例12所述的主题的示例13中,所述装置可以包括接口,所述接口用于将所述处理器组件耦合到网络以从所述客户机设备接收所述返回散列。
在包括示例12至13中的任一项的主题的示例14中,所述装置可以包括验证组件,所述验证组件用于由所述处理器组件执行以:从接收自所述客户机设备的返回签名生成另一返回散列;以及将所述返回散列与所述另一个返回散列进行比较以验证从所述返回签名中生成的所述返回散列。
在包括示例12至14中的任一项的主题的示例15中,所述验证组件可使用环境验证凭证来验证所述返回签名以验证在所述客户机设备的安全处理环境内执行所述应用例程,从而形成所述信任链,所述环境验证凭证与由所述客户机设备用于生成所述返回签名的环境认证凭证相关联。
在示例16中,一种用于建立安全通信的计算实现的方法包括以下步骤:验证经由网络接收到的链路认证凭证以验证通过所述网络形成安全流水线的能力;用信号向应用例程通知所述验证的结果的指示;以及生成与所述应用例程相关联的返回签名的返回散列,所述返回散列指示所述应用例程也已经验证所述链路认证凭证以便与所述应用例程形成所述安全流水线。
在包括示例16的主题的示例17中,所述方法可以包括以下步骤:使用与所述链路认证凭证相关联的链路验证凭证来验证所述链路认证凭证;以及将所述链路认证凭证或所述链路验证凭证中的至少一者提供给所述应用例程以使所述应用例程能够验证所述链路认证凭证。
在包括示例16至17中的任一项的主题的示例18中,所述方法可以包括以下步骤:基于由所述应用例程进行的验证的结果的指示来生成所述返回签名。
在包括示例16至18中的任一项的主题的示例19中,所述方法可以包括以下步骤:从由所述应用例程提供给所述散列组件的所述链路认证凭证中生成所述返回签名。
在包括示例16至19中的任一项的主题的示例20中,所述方法可以包括附加地从以下各项中的至少一项中生成所述返回签名:环境认证凭证,所述环境认证凭证用于向服务器认证在由所述处理器组件提供的安全处理环境中执行所述应用例程,所述安全流水线是与所述服务器形成的;或数据,所述数据指示所述应用例程的执行上下文,所述数据包括所述应用例程的尺寸的指示或所述应用例程的部分的散列中的至少一项。
在包括示例16至20中的任一项的主题的示例21中,所述方法可以包括以下操作:响应于来自所述应用例程的、对所述返回签名的请求来将所述返回签名提供给所述应用例程。
在包括示例16至21中的任一项的主题的示例22中,所述方法可以包括以下步骤:在安全处理环境中执行所述应用例程。
在包括示例16至22中的任一项的主题的示例23中,所述方法可以包括以下步骤:将存储设备的部分分配给所述应用例程以便执行所述应用例程;以及限制对所述存储设备的所述部分的访问由另一例程访问。
在包括示例16至23中的任一项的主题的示例24中,所述方法可以包括以下步骤验证由服务器使用由所述应用例程接收到的所述链路认证凭证从所述返回散列中生成的经签名的散列,从而除了在所述服务域所述应用例程之间形成的所述安全流水线之外还在所述服务器与所述应用例程之间在应用层级上形成信任链,所述安全流水线是与所述服务器形成的。
在包括示例16至24中的任一项的主题的示例25中,所述方法可以包括以下步骤:基于对所述散列的所述验证来将所述返回签名传输至所述服务器,从而向所述服务器指示所述应用例程已经验证所述经签名的散列以便在所述应用层级上形成所述信任链。
在示例26中,至少一种机器可读存储介质包括指令,当由计算设备执行所述指令时,所述指令使所述计算设备:验证经由耦合到所述计算设备的网络接收到链路认证凭证以验证通过所述网络形成安全流水线的能力;用信号向应用例程通知所述验证的结果的指示;以及生成与所述应用例程相关联的返回签名的返回散列,所述返回散列指示所述应用例程也已经验证所述链路认证凭证以便与所述应用例程形成所述安全流水线。
在包括示例26中的任一项的主题的示例27中,可使所述计算设备:使用与所述链路认证凭证相关联的链路验证凭证来验证所述链路认证凭证;以及将所述链路认证凭证或所偶数链路验证凭证中的至少一者提供给所述应用例程以使所述应用例程能够验证所述链路认证凭证。
在包括示例26至27中的任一项的主题的示例28中,可使所述计算设备:基于由所述应用例程进行的验证的结果的指示来生成所述返回签名。
在包括示例26至28中的任一项的主题的示例29中,可使所述计算设备:从由所述应用例程提供给所述散列组件的所述链路认证凭证中生成所述返回签名。
在包括示例26至29中的任一项的主题的示例30中,可使所述计算设备:附加地从以下各项中的至少一项中生成所述返回签名:环境认证凭证,所述环境认证凭证用于向服务器认证在由所述处理器组件提供的安全处理环境中执行所述应用例程的,所述安全流水线是与所述服务器形成的;或数据,所述数据指示所述应用例程的执行上下文,所述数据包括所述应用例程的尺寸的指示或所述应用例程的部分的散列中的至少一项。
在包括示例26至30中的任一项的主题的示例31中,可使所述计算设备:响应于来自所述应用例程的、对所述返回签名的请求来将所述返回签名提供给所述应用例程。
在包括示例26至31中的任一项的主题的示例32中,可使所述计算设备:在安全处理环境中执行所述应用例程。
在包括示例26至32中的任一项的主题的示例33中,可使所述计算设备:将存储设备的部分分配给所述应用例程以执行所述应用例程;以及限制对所述存储器的所述部分的访问由另一个例程访问。
在包括示例26至33中的任一项的示例34中,可使所述计算设备:验证由服务器使用由所述应用例程接收到的所述链路认证凭证从所述返回散列中生成的经签名的散列,从而除了在所述服务器与所述应用例程之间形成的所述安全流水线之外还在所述服务器与所述应用例程之间在应用层级上形成信任链。
在包括示例26至34中的任一项的主题的示例35中,可使所述计算设备:基于对所述经签名的散列的验证来将所述返回签名传输至所述服务器,从而向所述服务器指示所述应用例程已经验证所述签名散列以便在应用层级上形成所述信任链。
在示例36中,一种用于接收命令的装置包括:用于验证经由网络接收到的链路认证凭证以验证通过所述网络形成安全流水线的能力的设备;用于用信号向应用例程通知所述验证的结果的指示的设备;以及用于生成与所述应用例程相关联的返回签名的返回散列的设备,所述返回散列指示所述应用例程也已经验证所述链路认证凭证以便与所述应用例程形成所述安全流水线。
在包括示例36的主题的示例37中,所述装置可以包括:用于使用与所述链路认证凭证相关联的链路验证凭证来验证所述链路认证凭证的设备;以及用于将所述链路认证凭证或所述链路验证凭证中的至少一者提供给所述应用例程以使所述应用例程能够验证所述链路认证凭证的设备。
在包括示例36至37中的任一项的主题的示例38中,所述装置可以包括用于基于由所述应用例程进行的验证额结果的指示来生成所述返回签名的设备。
在包括示例36至38中的任一项的主题的示例39中,所述装置可以包括用于从由所述应用例程提供给所述散列组件的所述链路认证凭证中生成所述返回签名的设备。
在包括示例36至39中的任一项的主题的示例40中,所述装置可以包括用于附加地从以下各项中的至少一项中生成所述返回签名的设备:环境认证凭证,所述环境认证凭证用于向服务器认证在由所述处理器组件提供的安全处理环境中执行所述应用例程,所述安全流水线是与所述服务器形成的;或数据,所述数据指示所述应用例程的执行上下文,所述数据包括所述应用例程的尺寸的指示或所述应用例程的部分的散列中的至少一项。
在包括示例36至40中的任一项的主题的示例41中,所述装置可以包括用于响应于来自所述应用例程的、对所述返回签名的请求来将所述返回签名提供给所述应用例程的设备。
在包括示例36至41中的任一项的主题的示例42中,所述装置可以包括用于在安全处理环境中执行所述应用例程的设备。
在包括示例36至42中的任一项的主题的示例43中,所述装置可以包括:用于将存储设备的部分分配给所述应用例程以便执行所述应用例程的设备;以及用于限制对所述存储器的所述部分的访问由另一个例程访问的设备。
在包括示例36至43中的任一项的主题的示例44中,所述装置可以包括用于以下操作的装置:验证由服务器使用由所述应用例程接收到的所述链路认证凭证从所述返回散列中生成的经签名的散列,从而除了在所述服务器与所述应用例程之间形成的所述安全流水线之外还在所述服务器与所述应用例程之间在应用层级上形成信任链,所述安全流水线是与所述服务器形成的。
在包括示例36至44中的任一项的主题的示例45中,所述装置可以包括用于以下操作的设备:基于对所述经签名的散列的验证来将所述放回签名传输至所述服务器,从而向所述服务器指示所述应用例程已经验证所述签名散列以便在所述应用层级上形成所述信任链。
在示例46中,至少一种机器可读存储介质可以包括指令,当由计算设备执行所述指令时,所述指令使所述计算设备执行以上各项中的任一项。
在示例47中,一种用于分配处理器组件核以执行多个任务部分的装置可以包括用于执行以上各项中任一项的设备。

Claims (25)

1.一种用于建立安全通信的装置,所述装置包括:
计算设备,所述计算设备包括第一处理器组件和第二处理器组件,所述第二处理器组件在安全处理环境内而所述第一处理器组件在所述安全处理环境外部;
验证组件,所述验证组件用于由所述第二处理器组件执行以:验证接收到的链路认证凭证以验证服务器通过网络形成安全流水线的能力,所述链路认证凭证通过链路验证凭证来验证;以及用信号向应用例程通知由所述验证组件进行的验证的结果的指示;
所述应用例程,所述应用例程用于由所述第一处理器组件执行以:验证第二接收到的链路认证凭证以验证所述服务器通过所述网络形成安全流水线的能力,所述链路认证凭证通过所述链路验证凭证来验证;以及发信号通知散列组件来生成返回散列;以及
所述散列组件,所述散列组件用于由所述第二处理器组件执行以生成与所述应用例程相关联的返回签名的所述返回散列,所述返回散列指示所述应用例程也已经验证所述链路认证凭证以便在所述服务器与所述应用例程形成所述安全流水线。
2.如权利要求1所述的装置,包括接口,所述接口用于将所述第一处理器组件耦合到网络以从所述服务器接收所述链路认证凭证,所述链路认证凭证用于认证所述服务器形成所述安全流水线的能力,并且对所述链路认证凭证的验证用于验证所述服务器形成所述安全流水线的能力。
3.如权利要求1所述的装置,所述验证组件用于:使用与所述链路认证凭证相关联的链路验证凭证来验证所述链路认证凭证;以及将所述链路认证凭证或所述链路验证凭证中的至少一者提供给所述应用例程以使所述应用例程能够验证所述链路认证凭证。
4.如权利要求1所述的装置,所述散列组件用于基于由所述应用例程进行的验证的结果的指示来生成所述返回签名。
5.如权利要求1所述的装置,所述散列组件用于从由所述应用例程提供给所述散列组件的所述链路认证凭证中生成所述返回签名。
6.如权利要求5所述的装置,所述散列组件用于附加地从以下各项中的至少一项中生成所述返回签名:环境认证凭证,所述环境认证凭证用于向服务器认证由第二所述处理器组件在安全处理环境中执行所述应用例程,所述安全流水线是与所述服务器形成的;或数据,所述数据指示所述应用例程的执行上下文,所述数据包括所述应用例程的尺寸的指示或所述应用例程的部分的散列中的至少一项。
7.如权利要求1所述的装置,所述散列组件用于:响应于来自所述应用例程的、对所述返回签名的请求而将所述返回签名提供给所述应用例程。
8.如权利要求1所述的装置,所述装置包括:
存储设备;以及
控制例程,所述控制例程用于由所述第二处理器组件执行以将所述存储设备的部分分配给所述应用例程,从而提供用于由所述第二处理器组件执行所述应用例程的安全处理环境。
9.如权利要求1所述的装置,所述装置包括:
存储设备;以及
控制例程,所述控制例程用于由所述第一处理器组件执行以与所述第二处理器组件协作,从而将所述存储设备的部分分配给所述应用例程以提供用于由所述第二处理器组件执行所述应用例程的安全处理环境。
10.如权利要求1所述的装置,包括所述应用例程,所述应用例程包括另一验证组件,所述另一验证组件用于验证由服务器使用由所述应用例程接收到的所述链路认证凭证而从所述返回散列中生成的经签名的散列,从而除了在所述服务器与所述应用例程之间形成的所述安全流水线之外还在所述服务器与所述应用例程之间在应用层级上形成信任链,所述安全流水线是与所述服务器形成的。
11.一种用于建立安全通信的装置,所述装置包括:
计算设备,所述计算设备包括第一处理器组件和第二处理器组件,所述第二处理器组件在安全处理环境内而所述第一处理器组件在所述安全处理环境外部;
发起组件,所述发起组件用于由所述第二处理器组件执行以将链路认证凭证传输至客户机设备,从而认证与所述客户机设备形成安全流水线的能力,以及用于由所述第一处理器组件执行以将第二链路认证凭证传输至客户机设备,从而认证与所述客户机设备形成安全流水线的能力;以及
签名组件,所述签名组件用于由所述第二处理器组件执行以:用所述链路认证凭证对从所述客户机设备接收到的返回散列签名以生成经签名的散列;以及将所述经签名的散列传输到所述客户机设备以认证在应用层级上与所述客户机设备的应用例程形成信任链的能力。
12.如权利要求11所述的装置,包括接口,所述接口用于将所述第一处理器组件耦合到网络以从所述客户机设备接收所述返回散列。
13.如权利要求11所述的装置,包括验证组件,所述验证组件用于由所述处理器组件执行以:从接收自所述客户机设备的返回签名中生成另一返回散列;以及将所述返回散列与所述另一返回散列进行比较以验证从所述返回签名中生成的所述返回散列。
14.如权利要求13所述的装置,所述验证组件用于使用环境验证凭证来验证所述返回签名以验证在所述客户机设备的安全处理环境内执行所述应用例程,从而形成所述信任链,所述环境验证凭证与由所述客户机设备用于生成所述返回签名的环境认证凭证相关联。
15.一种用于建立安全通信的计算机实现的方法,所述方法包括以下步骤:
通过计算设备的控制器处理器组件验证经由网络接收到的链路认证凭证以验证服务器通过所述网络形成安全流水线的能力,所述链路认证凭证通过链路验证凭证来验证,计算设备,所述计算设备包括主处理器组件和所述控制器处理器组件,所述控制器处理器组件在安全处理环境内而所述主处理器组件在所述安全处理环境外部;
用信号向应用例程通知所述验证的结果的指示;
通过所述应用例程验证经由所述网络从所述服务器接收的所述链路认证凭证的副本,以独立地验证所述服务器通过所述网络形成安全流水线的能力,所述链路认证凭证通过所述链路验证凭证来验证;
通过所述应用例程用信号通知所述控制器处理器组件来生成返回散列;以及
通过所述控制器处理器组件生成与所述应用例程相关联的返回签名的所述返回散列,所述返回散列指示所述应用例程也已经验证所述链路认证凭证以便在所述服务器与所述应用例程之间形成所述安全流水线。
16.如权利要求15所述的计算机实现的方法,包括以下步骤:
使用与所述链路认证凭证相关联的链路验证凭证来验证所述链路认证凭证;以及
将所述链路认证凭证或所述链路验证凭证中的至少一者提供给所述应用例程以使所述应用例程能够验证所述链路认证凭证。
17.如权利要求15所述的计算机实现的方法,包括以下步骤:基于由所述应用例程进行的验证的结果的指示来生成所述返回签名。
18.如权利要求15所述的计算机实现的方法,包括以下步骤:从由所述应用例程提供的所述链路认证凭证中生成所述返回签名。
19.如权利要求15所述的计算机实现的方法,进一步包括附加地从以下各项中的至少一项中生成所述返回签名的步骤:环境认证凭证,所述环境认证凭证用于向服务器认证在由所述处理器组件提供的安全处理环境中执行所述应用例程,所述安全流水线是与所述服务器形成的;或数据,所述数据指示所述应用例程的执行上下文,所述数据包括所述应用例程的尺寸的指示或所述应用例程的部分的散列中的至少一项。
20.如权利要求15所述的计算机实现的方法,包括以下步骤:响应于来自所述应用例程的、对所述返回签名的请求来将所述返回签名提供给所述应用例程。
21.如权利要求15所述的计算机实现的方法,包括以下步骤:在安全处理环境中执行所述应用例程。
22.如权利要求21所述的计算机实现的方法,包括以下步骤:
将存储设备的部分提供给所述应用例程以便执行所述应用例程;以及
限制对所述存储设备的所述部分的访问由另一例程访问。
23.如权利要求21所述的计算机实现的方法,包括以下步骤:验证由服务器使用由所述应用例程接收到的所述链路认证凭证从所述返回散列中生成的经签名的散列,从而除了在所述服务器与所述应用例程之间形成的所述安全流水线之外还在所述服务器与所述应用例程之间在应用层级上形成信任链,所述安全流水线是与所述服务器形成的。
24.如权利要求23所述的计算机实现的方法,包括以下步骤:基于对所述经签名的散列的所述验证来将所述返回签名传输至所述服务器,从而向所述服务器指示所述应用例程已经验证所述经签名的散列以便在所述应用层级上形成所述信任链。
25.一种用于建立安全通信的装置,所述装置包括用于执行如权利要求15至24中的任一项所述的方法的设备。
CN201380080501.9A 2013-11-26 2013-11-26 用于将通信信任链延伸到客户机应用的技术 Active CN105683982B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/071902 WO2015080698A1 (en) 2013-11-26 2013-11-26 Techniques for extending communications chain of trust to client applications

Publications (2)

Publication Number Publication Date
CN105683982A CN105683982A (zh) 2016-06-15
CN105683982B true CN105683982B (zh) 2019-11-05

Family

ID=53199482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380080501.9A Active CN105683982B (zh) 2013-11-26 2013-11-26 用于将通信信任链延伸到客户机应用的技术

Country Status (4)

Country Link
US (2) US10187385B2 (zh)
EP (2) EP3074906B1 (zh)
CN (1) CN105683982B (zh)
WO (1) WO2015080698A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096887B (zh) 2019-03-22 2020-06-30 阿里巴巴集团控股有限公司 一种可信计算方法及服务器

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010050990A1 (en) * 1997-02-19 2001-12-13 Frank Wells Sudia Method for initiating a stream-oriented encrypted communication
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
CN1879434A (zh) * 2003-09-29 2006-12-13 瑞姆系统公司 移动设备
US7574600B2 (en) 2004-03-24 2009-08-11 Intel Corporation System and method for combining user and platform authentication in negotiated channel security protocols
US8522018B2 (en) * 2006-08-18 2013-08-27 Fujitsu Limited Method and system for implementing a mobile trusted platform module
US8219805B1 (en) * 2007-12-11 2012-07-10 Adobe Systems Incorporated Application identification
US8099764B2 (en) 2007-12-17 2012-01-17 Microsoft Corporation Secure push and status communication between client and server
GB2464966B (en) * 2008-10-31 2012-08-29 Hewlett Packard Development Co Policy enforcement in trusted platforms
ES2660541T3 (es) * 2009-09-30 2018-03-22 Amazon Technologies, Inc. Marco de autenticación de dispositivo modular
EP2334008A1 (en) * 2009-12-10 2011-06-15 Tata Consultancy Services Limited A system and method for designing secure client-server communication protocols based on certificateless public key infrastructure
GB2482652B (en) * 2010-05-21 2016-08-24 Hewlett Packard Development Co Lp Extending integrity measurements in a trusted device using a policy register
US8826010B2 (en) * 2010-09-17 2014-09-02 Skype Certificate revocation
US20160035539A1 (en) 2014-07-30 2016-02-04 Lauri SAINIEMI Microfabrication
US10436958B2 (en) 2016-10-05 2019-10-08 Magic Leap, Inc. Fabricating non-uniform diffraction gratings
EP4286900A3 (en) 2017-11-06 2024-06-12 Magic Leap, Inc. Method and system for tunable gradient patterning using a shadow mask
US10818499B2 (en) 2018-02-21 2020-10-27 Varian Semiconductor Equipment Associates, Inc. Optical component having variable depth gratings and method of formation
US10732351B2 (en) 2018-04-23 2020-08-04 Facebook Technologies, Llc Gratings with variable depths formed using planarization for waveguide displays

Also Published As

Publication number Publication date
US11374930B2 (en) 2022-06-28
EP3770783A1 (en) 2021-01-27
US20150358320A1 (en) 2015-12-10
US10187385B2 (en) 2019-01-22
EP3074906A4 (en) 2017-05-17
US20190141035A1 (en) 2019-05-09
CN105683982A (zh) 2016-06-15
WO2015080698A1 (en) 2015-06-04
EP3074906A1 (en) 2016-10-05
EP3074906B1 (en) 2020-11-11
EP3770783B1 (en) 2022-06-08

Similar Documents

Publication Publication Date Title
CN107924445B (zh) 保留隐私的计算的相互认可
US11785002B2 (en) Synthetic genomic variant-based secure transaction devices, systems and methods
CN107077553B (zh) 用于对受保护资源的认证的多用户生物测定
CN105723377B (zh) 供内核模式应用使用的安全区域
US9208354B2 (en) Techniques for securing use of one-time passwords
US20200302432A1 (en) Using a contactless card to securely share personal data stored in a blockchain
RU2676231C2 (ru) Функция выработки ключа на основе изображения
CN107408175B (zh) 用于自加密驱动的挑战响应认证
US11165583B2 (en) Multi-factor authentication in virtual, augmented, and mixed reality (xR) applications
CN104380299B (zh) 用于用户验证的近程相互认证的技术
JP5608081B2 (ja) 安全な金融取引を行うための装置および方法
JP6374119B2 (ja) 統合型近距離無線通信インフラストラクチャのためのセキュリティプロトコル
CN108475249A (zh) 分布式、分散式数据聚合
CN107431694A (zh) 加密密钥取回
CN104025105A (zh) 连续多因素认证
US20180285857A1 (en) Mobile payment method using a barcode, device and server for implementing the method
US20220292515A1 (en) System and method for minimal contact in - person business transactions using a code generator and a mobile device
CN105683982B (zh) 用于将通信信任链延伸到客户机应用的技术
JP2021108088A (ja) 認証リクエストシステム及び認証リクエスト方法
TWM539668U (zh) 於線上完成開戶並申請行動銀行之系統
US11645428B1 (en) Quantum phenomenon-based obfuscation of memory
US10810298B2 (en) Password spying protection system

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