用于将通信信任链延伸到客户机应用的技术的制作方法

文档序号:9916605阅读:324来源:国知局
用于将通信信任链延伸到客户机应用的技术的制作方法
【技术领域】
[0001]本文中描述的实施例总体上涉及将服务器与客户机设备之间的通信中的信任链延伸到客户机设备的客户机应用。
【背景技术】
[0002]已经变得常见的是采用各种安全协议和认证方案中的任一种来使两个设备中的每一个设备都能够评估另一个的可信度且随后在它们之间形成并维护安全的通信“流水线”或“信道”以便甚至通过可公共访问的网络(例如,互联网)来安全地交换数据。此类方法频繁地用于金融交易、在线购物、流式音频/视觉程序等中。
[0003]寻求由此类方法寻求解决的关键担忧是防止所谓的“中间人”场景出现,在这种场景中,另一计算设备可以捕捉命令和/或数据和/或将命令和/或数据注入到此类通信中,或者可以甚至插入到此类通信中以便选择性地中继和/或更改此类通信。换言之,此类方式的主要目标在于,在寻求参与安全通信的两个设备之间直接形成信任链,以便在它们之间形成安全的流水线或信道。
[0004]遗憾的是,允许两个设备之间的此类安全通信的此类信任链的成功形成无助于解决对这两个设备中的一个或另一个设备内的关于安全漏洞的担忧。在复杂的设备中,可能存在旨在与其发生安全通信的特定的应用例程,但是可能存在众多方式,通过这些方式,另一例程可内插在那个特定的应用与那个设备通过其参与同另一设备之间的安全通信的接口之间。也存在以下可能性:旨在与其发生安全通信的应用可能实际上不在参与那个安全通信的这两个设备中的一个设备上执行,而是实际上可以在通过不安全的通信而与这两个设备中的一个设备通信的第三个设备上执行。
【附图说明】
[0005]图1示出安全通信系统的实施例。
[0006]图2示出安全通信系统的替代实施例。
[0007]图3示出交换安全凭证的实施例。
[0008]图4至图6各自示出安全通信系统的实施例的部分。
[0009 ]图7至图9各自示出根据实施例的逻辑流。
[0010]图10示出根据实施例的处理架构。
【具体实施方式】
[0011]各个实施例总体上涉及用于在两个计算设备之间形成安全通信的技术,其中,那些通信的信任链被延伸到由这两个计算设备中的一个计算设备执行的特定的应用例程。更具体而言,在两个计算设备之间形成安全通信,随后在这些计算设备中的一个计算设备内将此安全通信延伸到特定的应用例程,以便确保安全通信不由那个计算设备内的另一例程干扰,并且确保在那个计算设备内而不是在另一计算设备内执行此特定的应用。
[0012]形成此类安全通信以在安全通信系统的两个计算设备之间形成单向的安全流水线或信道开始。当在这两个计算设备之间形成之后,随后使此单向的安全流水线进一步延伸到这些计算设备中的一个中,并且延伸到在那个计算设备内执行的特定的应用例程。现在经延伸的单向的安全流水线随后被制成为双向的安全流水线,由此在较低的链路或流水线层级上、在这些端点中的一个端点处、与那个应用例程建立双向的安全通信。这之后是在较高的应用层级上、通过那个双向的安全流水线来验证双向的安全通信的建立。
[0013]可使用用于建立此类流水线的各种已知的协议中的任何协议来执行在这两个计算设备之间形成此初始的单向安全流水线,其中,存在对某种形式的安全凭证的交换,包括但不限于,传输层安全(TLS)。在这两个计算设备中的一个计算设备内提供安全处理环境的形式,并且这个安全处理环境充当这个初始的单向安全流水线的端点中的一个端点。正是这一个计算设备的这个安全处理环境从另一个计算设备接收到安全凭证。
[0014]在那个安全处理环境内执行应用例程,以便提供某种程度的保护而免受也在相同的计算设备内执行的其他例程对此应用例程的执行的干扰。提供给此安全处理环境的相同安全凭证也被提供给此应用例程,以便允许此应用例程独立地验证此凭证。由此应用例程对那个安全凭证的成功的验证有效地将那个单向的安全流水线延伸到此应用例程。
[0015]响应于由此应用例程进行的此类验证,在此安全处理环境内、从以下各项中的一项或多项中生成签名:由此应用例程接收到的凭证;表示此应用例程的执行上下文的方面的数据(例如,此应用例程本身的部分或部分的散列);以及此安全处理环境的安全凭证(例如,密钥等)。随后计算那个签名的散列,并且将那个散列提供给另一个计算设备。此散列被认为是对另一个计算设备的、稍后将实际的签名发送给所述另一个计算设备的“承诺”。
[0016]尽管另一个计算设备可能不拥有可以用于分析此散列的安全凭证,但是接收到此散列足以触发所述另一个计算设备使用与较早时用于形成原始的单向安全流水线的的安全凭证相同的安全凭证来对此散列签名。此散列以其原始的未签名额形式被存储在所述另一个计算设备内,并且将经签名的散列往回提供给应用例程。如果此经签名的散列能够被验证,则将此类验证视为以下证据:与其形成安全流水线的另一个计算设备是在应用层级上在那个安全流水线的另一端处的计算设备的相同的计算设备。
[0017]响应于此类验证,从其推导出原始的未签名的散列的较早时生成的签名随后被提供给所述另一个计算设备,以便向所述另一个计算设备证明将安全流水线延伸至其的应用例程是与在应用层级上在那个安全流水线的另一端处的应用例程相同的应用例程。对这个签名的供应可以被认为对较早时的“承诺”的“履行”以便将较早时生成的签名提供给所述另一计算设备。
[0018]随后,所述另一计算设备独立地推导出那个签名的散列,并且将那个散列与它稍早时接收的原始的未签名的散列进行比较。如果这两个散列匹配,则已经在较低的流水线层级以及应用层级这两个层级上、在所述另一个计算设备与此应用例程之间建立了安全通信。如果此签名也是从此安全处理环境的安全凭证中生成的,则可以进一步由所述另一个计算设备以验证此安全处理环境的此安全凭证的方式验证,以便证明在那个安全处理环境内执行此应用例程。
[0019]对于本文中使用的注释和命名法总体上而言,可以根据在计算机或计算机网络上执行的程序流程来呈现下文中的【具体实施方式】的多个部分。由本领域技术人员使用这些流程描述和表示以便最有效地将他们的工作的实质传达给本领域的其他技术人员。流程在此通常被认为是导致所期望的结果的自洽的操作序列。这些操作是要求对物理量的物理操纵的那些步骤。通常而非必需地,这些量采取能够被存储、传输、组合、比较以及以其他方式操纵的电信号、磁信号或光信号的形式。主要出于常见用途的原因,时不时地将这些信号称为位、值、元素、符号、字符、项、数字等被证明是方便的。然而,应当注意的是,所有这些和类似的项旨在与适当的物理量相关联,并且仅是适用于那些量的方便的标签。
[0020]此外,经常以术语(诸如,相加或比较)来提及这些操纵,这些术语通常与由人类操作员执行的手动操作相关联。然而,在本文中描述的形成一个或多个实施例的部分的操作中的任何一个操作中,,在任何情况下,没有人类操作员的此类能力是必需的或期望的。相反,这些操作是机器操作。对用于执行各实施例的操作有用的机器包括通用数字计算机和/或包括为所需的目的专门构建的装置,所述通用数字计算机由存储在其中的计算机程序选择性地激活或配置,所述计算机程序根据本文中描述的教导而编写。各实施例还涉及用于执行这些操作的装置或系统。这些装置可以专门为所需的目的构建,或者可以包括通用计算机。通过给定的描述,各种各样的这些机器的所需结构将是明显的。
[0021]现在参照附图,在附图中,贯穿本申请,相同的参考号用于指代相同的元件。在以下描述中,为了解释的目的,陈述了许多特定的细节以便提供对描述的透彻的理解。然而,可能明显的是,可以在没有这些特定细节的情况下来实现新颖的实施例。在其他实例中,以框图的形式示出公知的结构和设备,以便便于对其的描述。意图在于将所有的修改、等效方案和替代方案都涵盖在权利要求书的范围内。
[0022]图1是安全通信系统1000的实施例的框图,安全通信系统1000合并了链路凭证服务器100、环境凭证服务器300、服务器500和客户机设备700中的一个或多个。这些计算设备100、300、500和700各自都可以是各种类型的计算设备中的任一种,包括但不限于,台式计算机、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持式个人数字助理、智能电话、数码相机、并入到衣服中的身体穿戴计算设备、集成到车辆(例如,汽车、自行车、轮椅等)中的计算设备、服务器、服务器集群、服务器群,等等。
[0023]如图所描绘,这些计算设备100、300、500和700中的一个或多个交换与在计算设备500与700之间建立安全通信相关联的信号。然而,这些计算设备中的一个或多个可以交换经由网络999、与彼此和/或与其他计算设备(未示出)之间的安全通信完全不相关的其他数据。在各实施例中,网络999可以是可能仅限于在单个建筑物或其他相对受限的区域内延伸的单个网络、可能延伸相当的距离的多个经连接的网络的组合,和/或可以包括互联网。因此,网络999可以基于可以通过其交换信号的各种通信技术(或其组合)中的任一种,这些通信技术包括但不限于,采用电气和/或光学导电线缆的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
[0024]为了准备在服务器500与客户机设备700之间建立安全通信,由凭证服务器100将凭证数据(未专门示出)提供给这两者,所述凭证服务器100由发布供用于在设备之间形成安全流水线的凭证的证书机构操作。取决于用于在服务器500与客户机设备700之间形成安全流水线的特定协议,可由链路凭证服务器100将各种类型的凭证中的任一种提供给这些计算设备中的每一个计算设备。作为示例,服务器500可以提供有私钥,而客户机设备700可以提供有匹配公钥,此匹配公钥使客户机设备700能够验证凭证,此凭证是作为建立与服务器500之间的至少单向的安全流水线以准备好接收由服务器500提供的一些服务的部分而由此服务器500提供给客户机设备700的。
[0025]同样为了准备在应用层级上在服务器500与客户机设备700之间建立安全通信的工作,由环境凭证服务器将凭证数据(未专门示出)提供给这两者,环境凭证服务器300由发布用于验证客户机设备中安全处理环境的存在的凭证的证书机构操作。取决于用于验证客户机设备700提供可在其中安全地存储数据并且可在其中安全地执行应用例程的安全处理环境的特定的协议,可由环境凭证服务器300将各种类型的凭证中的任一种提供给这些计算设备中的每一个计算设备。作为示例,客户机设备700的安全处理环境可以提供有私钥,而服务器500可以提供有匹配公钥,此匹配公钥使服务器500能够验证凭证,此凭证是作为认证客户机设备700未提供此类安全处理环境的部分而由客户机设备700提供给服务器500的。
[0026]应当注意,向计算设备500和700供应此类凭证数据可以经由网络999和/或通过完全不同的机制。作为示例,可以在制造这些计算设备时和/或在制造至少其组件(例如,其芯片组和/或固件)中的一个或多个时,将此类凭证数据的至少子集提供给这些计算设备中的一个或两个。作为另一个示例,可以在制造时将初始的凭证数据(例如,私钥或其他安全凭证)提供给这些计算设备中的一个或两个,以便稍后在通过稍后联系链路凭证服务器100和/或环境凭证服务器300来获取安全凭证的至少子集时使用。此类稍后的联系可以经由网络999。
[0027]在各实施例中,服务器500合并了处理器组件550、存储设备560和接口 590中的一个或多个,接口 590用于将服务器500耦合到网络999。存储设备560存储以下各项中的一项或多项:控制例程540、链路认证凭证531、环境验证凭证335、返回散列735、经签名的散列537、返回签名734以及返回散列535。
[0028]在各实施例中,客户机设备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。
[0029]控制例程540和740以及应用例程770各自都合并了指令序列,这些指令序列在角色为计算设备500和700中的相应的计算设备的主处理器组件的处理器组件550和750中的对应的处理器组件上是可操作的以实现用于执行各种功能的逻辑。控制例程840合并了指令序列,此指令序列在角色为计算设备700的控制器800的控制器处理器组件的处理器组件850上是可操作的以实现用于执行各种功能的逻辑。
[0030]服务器500可以是经由网络999可用于通过安全通信而将各种服务中的任一种提供给其他计算设备(例如,客户机设备,诸如,客户机设备700)的计算设备。因此,控制例程540可以实现在处理器组件500上可操作以提供服务的逻辑,这些服务可以包括但不限于,电子邮件主存、数据存储、音频/视频流式传输、在线金融服务、基于web的产品购买,等等。
[0031]客户机设备700可以是服务器500为其提供无论什么类型的服务的那些其他计算设备中的一个。因此,应用例程770可以实现在处理器组件750上可操作以(经由网络999)与服务器500协作来利用那些服务的逻辑。然而,所提供的这些服务的性质可能要求在安全处理环境中执行应用例程770,在所述安全处理环境中,至少在某种程度上保护应用例程770的执行免受其他例程(例如,恶意例程,诸如,所谓的“病毒”或“间谍软件”)的干扰。因此,
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1